الدرس 36: الشكل العادي الثالث (3NF)
3NF هو المستوى الأكثر رغبة في التطبيع لقواعد بيانات المعاملات. يكون الجدول في 3NF إذا كان في 2NF ويلبي معيارًا إضافيًا واحداً.
قاعدة 3NF
لا توجد خاصية غير مفتاحية تعتمد متعديًا على المفتاح الأساسي.
- الاعتمادية المتعدية (Transitive Dependency): تحدث عندما تحدد خاصية غير مفتاحية خاصية غير مفتاحية أخرى.
PK -> NonKeyAttribute1وNonKeyAttribute1 -> NonKeyAttribute2
مثال على الانتهاك: بيانات موقع الموظف
افترض مفتاحًا أساسيًا: EmployeeID.
| EmployeeID (PK) | EmployeeName | DeptID | DeptName | DeptManager |
|---|---|---|---|---|
| 101 | Alice | D01 | Sales | John |
| 102 | Bob | D01 | Sales | John |
EmployeeID -> DeptID(اعتمادية عادية)DeptID -> DeptName(اعتمادية متعدية، حيث يعتمدDeptNameعلى الخاصية غير المفتاحيةDeptID).
إذا غيرنا اسم القسم D01، يجب علينا تحديث سجلات موظفين متعددين (شذوذ التحديث).
التصحيح (تحقيق 3NF)
نفصل الخصائص التي تعتمد متعديًا (DeptName، DeptManager) إلى جدول جديد (Departments).
- جدول
Employees: PK:EmployeeID. يحتوي على FK:DeptID. - جدول
Departments: PK:DeptID. يحتوي علىDeptName،DeptManager.
الآن، تظهر البيانات المتعلقة بالقسم مرة واحدة فقط، ويتم إدارة الاعتمادية بشكل مباشر عبر المفتاح الخارجي.