3Nf Kuralı Nedir ?

Akdemir

Global Mod
Global Mod
3NF Kuralı Nedir?

Veritabanı tasarımında, verilerin doğru şekilde düzenlenmesi ve gereksiz tekrarların önlenmesi büyük önem taşır. Bu amaca ulaşmak için veritabanı tasarımcıları, "normalizasyon" adı verilen bir süreç kullanır. Normalizasyon, veritabanındaki verilerin bir düzene sokulması ve daha etkin bir şekilde depolanması için yapılan çeşitli işlemleri içerir. Bu süreç, veritabanının "anomalilerden" arındırılmasını ve veri tutarlılığının sağlanmasını amaçlar. Normalizasyonun çeşitli aşamaları vardır ve bu aşamalardan biri de üçüncü Normal Form (3NF) kuralıdır. Peki, 3NF kuralı nedir ve nasıl uygulanır?

3NF Kuralının Tanımı

3NF, bir ilişkisel veritabanı tablosunun belirli bir düzeyde normalizasyonu ifade eder. 3NF'ye ulaşmak için, tablodaki her sütun, yalnızca ve yalnızca "anahtar" (primary key) ile doğrudan ilişkili olmalıdır. Bu, her veri öğesinin yalnızca bir anahtar tarafından belirlendiği ve başka hiçbir öğeyle ilişkili olmadığı anlamına gelir. Eğer bir tablo, 3NF'ye ulaşmamışsa, veri tekrarları, güncelleme anomalileri veya silme anomalileri gibi çeşitli sorunlar ortaya çıkabilir.

3NF kuralını açıklamak için önce veritabanı normalizasyonunun temel aşamalarını gözden geçirelim.

1NF, 2NF ve 3NF Arasındaki Farklar

Veritabanı normalizasyonu, genellikle üç temel aşamaya ayrılır: Birinci Normal Form (1NF), İkinci Normal Form (2NF) ve Üçüncü Normal Form (3NF). Bu aşamalar, sırasıyla veritabanını daha fazla düzene sokarak, veri tutarlılığını artırmayı hedefler.

1. Birinci Normal Form (1NF): Bir tablonun 1NF'ye ulaşabilmesi için, her hücrede yalnızca bir değer bulunmalı ve her satırda benzersiz bir anahtar (primary key) olmalıdır. Ayrıca, her sütun atomik olmalı, yani bir sütunda birden fazla değer yer alamaz.

2. İkinci Normal Form (2NF): 2NF, 1NF'yi temel alır. 2NF'ye ulaşan bir tablo, her sütunun yalnızca ve yalnızca birincil anahtar ile ilişkili olmasını gerektirir. Ayrıca, 2NF'de her sütun, tablonun birincil anahtarına tam olarak bağımlı olmalıdır (yani, kısmi bağımlılıklar ortadan kaldırılmalıdır).

3. Üçüncü Normal Form (3NF): 3NF, 2NF'yi temel alır ancak daha ileri bir aşamadır. 3NF'ye göre, bir tablodaki her sütun yalnızca ve yalnızca birincil anahtar ile ilişkili olmalıdır. Ancak burada ek bir kısıtlama vardır: Tablodaki hiçbir sütun, başka bir sütunla transitif bir şekilde bağlı olmamalıdır. Yani, bir sütunun değeri başka bir sütunun değerine bağlı olmamalıdır.

3NF Uygulama Örneği

Bir örnekle 3NF'nin ne anlama geldiğini daha iyi anlayabiliriz. Farz edelim ki, aşağıdaki gibi bir "Öğrenciler" tablosuna sahibiz:

| Öğrenci No | Adı | Soyadı | Bölüm | Öğretmen Adı | Öğretmen Soyadı |

|------------|--------|--------|----------|---------------|-----------------|

| 101 | Ahmet | Yılmaz | Bilgisayar | Dr. Ali | Aksoy |

| 102 | Mehmet | Özkan | Elektrik | Dr. Ahmet | Demir |

Bu tablo, 1NF'ye uygundur çünkü her hücrede tek bir değer vardır ve her satırda benzersiz bir öğrenci numarası bulunmaktadır. Ancak, bu tablo 2NF'ye ve 3NF'ye uymaz çünkü "Öğretmen Adı" ve "Öğretmen Soyadı" sütunları, "Öğrenci No" (birincil anahtar) ile doğrudan ilişkili olmamakta, fakat "Bölüm" ile transitif bir bağıntıya sahiptir. Yani, her bölümün bir öğretmeni vardır ve bu öğretmenin adı ve soyadı her öğrencinin kaydında tekrar etmektedir.

Bu durumda, tablomuzu 3NF'ye ulaşacak şekilde aşağıdaki gibi yeniden düzenleyebiliriz:

1. "Öğrenciler" tablosundan öğretmen bilgilerini ayırarak yeni bir "Öğretmenler" tablosu oluşturabiliriz.

| Öğrenci No | Adı | Soyadı | Bölüm |

|------------|--------|--------|----------|

| 101 | Ahmet | Yılmaz | Bilgisayar |

| 102 | Mehmet | Özkan | Elektrik |

2. "Öğretmenler" tablosu şu şekilde olabilir:

| Bölüm | Öğretmen Adı | Öğretmen Soyadı |

|----------|---------------|-----------------|

| Bilgisayar | Dr. Ali | Aksoy |

| Elektrik | Dr. Ahmet | Demir |

Bu düzenleme, her tablonun yalnızca kendi anlamını taşıyan bilgileri içermesini sağlar. Artık "Öğretmen Adı" ve "Öğretmen Soyadı" sütunları sadece "Bölüm" ile ilişkili olup, öğrencilerin her bir kaydında gereksiz yere tekrarlanmamaktadır. Bu yapıyla, tablomuz 3NF'ye ulaşmıştır.

3NF Kuralının Avantajları

3NF'ye geçmek, veritabanı tasarımının verimli olmasına katkı sağlar. Bunun başlıca avantajları şunlardır:

- **Veri Redundansının Azaltılması:** 3NF, verilerin gereksiz tekrarlarını ortadan kaldırır. Bu da veritabanının daha küçük ve verimli olmasını sağlar.

- **Anomalilerin Önlenmesi:** 3NF, güncelleme, ekleme ve silme anomalilerini önler. Örneğin, bir öğretmenin adı değiştiğinde sadece ilgili "Öğretmenler" tablosunda güncelleme yapılması yeterlidir. Bu sayede tüm "Öğrenciler" tablosunda öğretmenin adı değiştirilemez.

- **Veri Tabanı Tutarlılığı:** 3NF, veri tutarlılığını artırır. Artık her bilgi kendi tablosunda yer alır ve tablolar arasındaki bağımlılıklar netleşir.

3NF'ye Ulaşamamanın Sonuçları

Eğer bir veritabanı 3NF'ye ulaşmamışsa, çeşitli olumsuzluklarla karşılaşılabilir. Bunlar şunlardır:

- **Veri Redundansı:** Aynı veri birden çok kez saklandığında, veritabanı gereksiz yere büyür.

- **Güncelleme Anomalisi:** Bir veri parçasının değiştirilmesi gerektiğinde, bu değişiklik birden fazla yerde yapılmak zorunda kalır.

- **Silme Anomalisi:** Gereksiz veriler silindiğinde, bu durum başka verilerin de kaybolmasına yol açabilir.

Sonuç olarak, 3NF kuralı, veritabanı tasarımında önemli bir aşamadır ve veritabanlarının düzenli, tutarlı ve verimli olmasını sağlar. Normalizasyonun bu seviyeye ulaşması, özellikle büyük ve karmaşık veritabanlarında veri bütünlüğünü sağlamak için kritik öneme sahiptir.