الموضوع
:
دروس اوراكال مصوره
عرض مشاركة واحدة
#
6
02-22-2010, 07:03 PM
ليالى111
مراقب عام
تاريخ التسجيل: Feb 2010
المشاركات: 115
Normalization
ماذا تعنى هذة الكلمة(Normalization) ؟؟
معنى هذة الكلمة حرفيا هو جعل الشئ طبيعيا او ارجاعة لطبيعتة
والغرض منها فى مجال قواعد البيانات هو جعل كل مايوجد فى قاعدة البيانات من كائنات اى كان نوعها مقننة وتخضع لقوانين معينة ومصنفة لتحقيق الهدف المنشود من تلك القوانين او القوالب المفروض ان تخرج هذة الكائنات على الشكل المطلوب والصحيح
ما فائدة Normalization وكيف تخدم قواعد البيانات؟؟
الفائدة من Normalization هوة انها تنقسم الى عدة اصناف
لكل نوع او صنف منها قوانين محددة الهدف منها جعل قاعدة البيانات صحيحة وخالية من الاخطاء
او التداخلات
وايضا الحفاظ على كل ما يدخل من بيانات الى قاعدة البيانات من الضياع او دخولها فى مكان غير المخصص لها
وهذة الفوائد والاهداف تتلخص فى الاتى
1- تنظيم وترتيب مابداخل قاعدة البيانات من جداول وغيرها من الكائنات.
2- تنظيم وترتيب وتصحيح العلاقات بين الجداول او اى كائن اخر.
3- تخليص قاعدة البيانات من مشاكل تكرار البيانات المدخلة والتى تسبب مشاكل لا حصر لها اثناء التعامل مع قاعدة البيانات.
4- تسهيل عملية ادخال البيانات بشكل صحيح ومرتب وبدون ظهور اخطاء اثناء عملية الادخال بان البرنامج غير قادر على الحفظ وخلافة من الاخطاء.
5- تسهيل عملية البحث واستخراج البيانات اثناء العملية بدقة متناهية دون اخطاء.
6- الحفاظ على المساحات التخزينية لقاعدة البيانات وذلك لشدة التنظيم وعدم السماح للتكرار.
وينقسم Normalization الى خمسة اجزاء وهم :
1- First Normal Form
2- Second normal form
3- Third normal form
4- Fourth normal form
5- Fifth normal form
وسنقوم فقط بدراسة الثلاث حالات الاولى
1- First Normal Form
2- Second normal form
3- Third normal form
لان تلك الحالات هى ماتهمنا دراستها
.
والان نبدا بدراسة كل حالة على حدة
اولا: First Normal Form :
والقاعدة الاساسية لعمل هذة الحالة هى
1- القضاء على الازدواجيه في الاعمده من الجدول نفسه.
2- انشاء جداول منفصلة لكل مجموعة من البيانات ذات الصلة وتحديد كل صف مع عمود فريد
واداة الربط بين الجداول المنشأة هى (المفتاح الأساسي).
مثال على هذة الحالة :
نفرض انة عندنا جدول فى قاعدة البيانات بالشكل دة
زى مواضح فى الصورة ان عندنا الجدول دة وفية الشخص اللى اسمة James عندة رقمين للتليفون
طيب علشان نطبق الشرط الاول اللى هوة
First Normal Form
هنلغى الجدول دة خالص من قاعدة البيانات ونعمل بدالة جدولين باسمين مختلفين وليكن ان دة جدول العملاء
الجدول الاول هيكون بالشكل دة واسمة العملاء
والجدول الثانى هيكون بالشكل دة واسمة ارقام تليفونات العملاء وحلقة الوصل هيا المفتاح الاساسى فى الجدولين اللى هوة هوة نفسة
customer id
دة هيكون المفتاح الاساسى الجدول الاول اللى هوة جدول العملاء وهيكون مفتاح اجنبى فى جدول ارقام
تليفونات العملاء
كدة احنا استفدنا من الموضوع دة فى اننا حلينا مشكلة تداخل البيانات ودة بيزود قاعدة البيانات مرونة وخاصة عند البحث
ثانيا : Second normal form:
والقاعدة الاساسية للحالة هى:
1
- ازالة مجموعات فرعية من البيانات التي تنطبق على متعددة الصفوف من الجدول ووضعها في جداول منفصلة.
2- انشاء علاقات جديدة بين هذه الجداول وأسلافهم من خلال استخدام مفاتيح الاجنبية.
ودى شبيهة بالاولى ولكن مع بعض الاختلاف
والاختلاف اللى بينها وبين الحالة الاولى ان الحالة الاولى فيها تكرار فى فى بيانات عمود واحد
اللى هوة ان James لة اكتر من تليفون وان التليفونات دى مفيش حد غيرة واخدها
يعنى التكرار اللى موجود دة مش موجود الا مرة واحدة
انما فى احالة التانية
التكرار بيكون فى اكتر من عمود
شوف هنا اكثر من تكرار فى نفس العمود
والمشكلة دى بتحلها الحالة التانية
طيب هتتحل ازاى??
هنعمل جدولين واحد بيعرض employees
ومفتاحة الاساسى employee
وهيكون بالشكل دة
والجدول التانى هيكون فية مفتاح اجنبى هوة employee والمفتاح دة بيشير للجدول Employees وبكدة الجدولين اتكونت بينهم علاقة
واسم الجدول هيكون employee's skills والجدول هيكون بالشكل دة
وبكدة نكون تخلصنا من المشكلة اللى هيا تكرار البيانات فى عمود واحد
ثالثا : Third normal form:
القاعدة الساسية للحالة :
1
- لابد من تطبيق شروط الحالتين الاولى والثانية (First Normal Form ,Second normal form) .
2- ازالة الاعمده التي لا تعتمد اعتمادا كاملا على المفتاح الأساسي.
والحالة دى قمة فى التطور وبتحل مشاكل لا حصر لها ولكن نتعامل معها بحرص شديد جدااا
ولو حد طلب منى انى اعملة قاعدة بيانات بالنظام دة بيدفعة دم قلبة
الحالة دى لازم وشرط ولابد يكون مطبق الحالتين لالولى والثانية
والشرط الثانى للحالة
شوف الصورة للجدول دة
فى الجدول دة عمود لا يعتمد مطلقا على المفتاح الاساسى
اية هوة العمود دة؟
اللى هوة تاريخ ميلاد الفائز winner date of birth
طيب لما نحذفة هنودية فين؟؟؟؟
هنعمل جدول جدولين
الاول هيكون Tournament Winners اللى هوة المسابقات الفائزة اة التنظيمات
وهيكون بالشكل دة
والجدول الثانى هنعملة
بمراعاة حذف اى تكرار
وهيكون مثلا اسم الجدول Player Dates of Birth
وهيكون بالشكل دة
انظر: لايوجد اى تكرار لاسماء اللاعيبين
وبكدة احبائى نكون انتهينا من موضوع قواعد البيانات العلائقية بالكامل
والمحاضرة الجاية مهمة جدا جدا جدا جداااااااااااااااا لاننا هنتعرف على حاجات كتيرة حلوة ومفيدة فى شغلنا
ليالى111
مشاهدة ملفه الشخصي
إرسال رسالة خاصة إلى ليالى111
البحث عن كل مشاركات ليالى111