- 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 |