- Bir ilişki 2NF'deyse ve herhangi bir geçişli kısmi bağımlılık içermiyorsa 3NF'de olacaktır.
- 3NF, veri tekrarını azaltmak için kullanılır. Ayrıca veri bütünlüğünü sağlamak için de kullanılır.
- Asal olmayan nitelikler için geçişli bağımlılık yoksa ilişki üçüncü normal formda olmalıdır.
Bir ilişki, her önemsiz olmayan fonksiyon bağımlılığı X → Y için aşağıdaki koşullardan en az birini sağlıyorsa üçüncü normal formdadır.
- X süper bir anahtardır.
- Y bir asal özelliktir, yani Y'nin her öğesi bir aday anahtarın parçasıdır.
Örnek:
Aktör Rekha
EMPLOYEE_DETAIL tablosu:
EMP_ID | EMP_NAME | EMP_ZIP | EMP_STATE | EMP_CITY |
---|---|---|---|---|
222 | Harry | 201010 | YUKARI | Noida |
333 | Stephan | 02228 | BİZ | Boston |
444 | Ve | 60007 | BİZ | Chicago |
555 | Katharine | 06389 | İngiltere | Norwich |
666 | John | 462007 | Milletvekili | Bhopal |
Yukarıdaki tabloda süper anahtar:
{EMP_ID}, {EMP_ID, EMP_NAME}, {EMP_ID, EMP_NAME, EMP_ZIP}....so on
Aday anahtarı: {EMP_ID}
Asal olmayan nitelikler: Verilen tabloda EMP_ID dışındaki tüm özellikler asal değildir.
c'de iki boyutlu dizi programı
Burada, EMP_STATE ve EMP_CITY, EMP_ZIP'e bağlıdır ve EMP_ZIP, EMP_ID'ye bağlıdır. Asal olmayan nitelikler (EMP_STATE, EMP_CITY) geçişli olarak süper anahtara (EMP_ID) bağımlıdır. Üçüncü normal form kuralını ihlal etmektedir.
Bu nedenle EMP_CITY ve EMP_STATE'i, Birincil anahtar olarak EMP_ZIP olacak şekilde yeni tabloya taşımamız gerekiyor.
ÇALIŞAN tablosu:
EMP_ID | EMP_NAME | EMP_ZIP |
---|---|---|
222 | Harry | 201010 |
333 | Stephan | 02228 |
444 | Ve | 60007 |
555 | Katharine | 06389 |
666 | John | 462007 |
EMPLOYEE_ZIP tablosu:
EMP_ZIP | EMP_STATE | EMP_CITY |
---|---|---|
201010 | YUKARI | Noida |
02228 | BİZ | Boston |
60007 | BİZ | Chicago |
06389 | İngiltere | Norwich |
462007 | Milletvekili | Bhopal |