- ستكون العلاقة في 3NF إذا كانت في 2NF ولا تحتوي على أي تبعية جزئية متعدية.
- يتم استخدام 3NF لتقليل ازدواجية البيانات. كما أنها تستخدم لتحقيق سلامة البيانات.
- إذا لم يكن هناك تبعية متعدية للسمات غير الأولية، فيجب أن تكون العلاقة في الشكل الطبيعي الثالث.
تكون العلاقة في الشكل الطبيعي الثالث إذا كانت تحتوي على الأقل على أحد الشروط التالية لكل تبعية دالة غير تافهة X → Y.
- X هو مفتاح فائق.
- Y هي سمة أولية، أي أن كل عنصر من عناصر Y هو جزء من بعض المفاتيح المرشحة.
مثال:
ج مجموعة سلسلة البرنامج
جدول EMPLOYEE_DETAIL:
EMP_ID | EMP_NAME | EMP_ZIP | EMP_STATE | EMP_CITY |
---|---|---|---|---|
222 | هاري | 201010 | أعلى | نويدا |
333 | ستيفان | 02228 | نحن | بوسطن |
444 | و | 60007 | نحن | شيكاغو |
555 | كاثرين | 06389 | المملكة المتحدة | نورويتش |
666 | جون | 462007 | النائب | بوبال |
المفتاح الفائق في الجدول أعلاه:
{EMP_ID}, {EMP_ID, EMP_NAME}, {EMP_ID, EMP_NAME, EMP_ZIP}....so on
مفتاح مرشح: {EMP_ID}
الصفات غير الأولية: في الجدول المحدد، كافة السمات باستثناء EMP_ID غير أولية.
هنا، يعتمد EMP_STATE وEMP_CITY على EMP_ZIP وEMP_ZIP يعتمد على EMP_ID. السمات غير الأولية (EMP_STATE، EMP_CITY) تعتمد بشكل عابر على المفتاح الفائق (EMP_ID). إنه ينتهك قاعدة الشكل الطبيعي الثالث.
ولهذا السبب نحتاج إلى نقل EMP_CITY وEMP_STATE إلى الجدول الجديد، مع استخدام EMP_ZIP كمفتاح أساسي.
جدول الموظفين:
جافا قراءة ملف CSV
EMP_ID | EMP_NAME | EMP_ZIP |
---|---|---|
222 | هاري | 201010 |
333 | ستيفان | 02228 |
444 | و | 60007 |
555 | كاثرين | 06389 |
666 | جون | 462007 |
جدول EMPLOYEE_ZIP:
EMP_ZIP | EMP_STATE | EMP_CITY |
---|---|---|
201010 | أعلى | نويدا |
02228 | نحن | بوسطن |
60007 | نحن | شيكاغو |
06389 | المملكة المتحدة | نورويتش |
462007 | النائب | بوبال |