Veri tabanı normalizasyonu, verilerin düzenli ve verimli bir şekilde saklanmasını sağlamak için kullanılan bir tekniktir. Normalizasyon, veri tekrarı ve anomalilerini azaltarak veri bütünlüğünü artırır. Bu işlem, veri tabanının çoklu tabloya bölünmesi ve her tablonun belirli bir amacı olmasıyla gerçekleştirilir.
Normalizasyon Nedir?
Normalizasyon, veri tabanındaki her bir tablonun yalnızca bir konuya odaklanmasını sağlamak amacıyla verilerin tekrarı azaltılır ve bağımlılıkları yönetilir. Bu sayede veri bütünlüğü korunur ve güncelleme, silme gibi işlemlerle ilgili olası hatalar (anomaliler) engellenir.
Normalizasyon süreci, verinin belirli kurallara göre düzenlenmesini içerir ve genellikle beş temel aşamadan (1NF, 2NF, 3NF, BCNF, 4NF) oluşur. Bu aşamalara her biri daha az veri tekrarı ve daha fazla veri bütünlüğü sağlar.
1. Normal Form (1NF) – Birinci Normal Form
Bir tabloyu Birinci Normal Form (1NF) olarak düzenlemek, verilerin şu özelliklere sahip olmasını sağlar:
- Her hücrede sadece bir değer bulunur.
- Her sütun benzersiz bir isim taşımalıdır.
- Tablonun her satırı benzersiz olmalıdır.
Örnek:
Aşağıdaki tabloyu 1NF’ye getirelim.
Öğrenci ID | Ad | Dersler |
---|---|---|
1 | Ahmet | Matematik, Fizik |
2 | Ayşe | Kimya, Biyoloji |
1NF’yi sağlamak için, birden fazla ders adı aynı hücrede bulunamaz, bu yüzden dersler ayrı satırlara alınır:
Öğrenci ID | Ad | Ders |
---|---|---|
1 | Ahmet | Matematik |
1 | Ahmet | Fizik |
2 | Ayşe | Kimya |
2 | Ayşe | Biyoloji |
2. Normal Form (2NF) – İkinci Normal Form
Bir tabloyu İkinci Normal Form (2NF) seviyesine getirmek için, Birinci Normal Form‘u sağladıktan sonra, kısmi bağımlılıklar ortadan kaldırılmalıdır. Yani, bir tabloda herhangi bir sütun sadece birincil anahtara bağlı olmalıdır.
Örnek:
1NF tablosu üzerinden giderek, aşağıdaki gibi bir kısmi bağımlılık var:
Öğrenci ID | Ad | Ders | Öğretmen |
---|---|---|---|
1 | Ahmet | Matematik | Dr. Ali |
1 | Ahmet | Fizik | Dr. Veli |
2 | Ayşe | Kimya | Dr. Zeynep |
Bu tabloda Öğrenci Adı ve Öğretmen bilgileri Öğrenci ID ve Ders sütunlarına bağlıdır. Yani, Ad ve Öğretmen yalnızca birincil anahtarın bir kısmına bağlıdır. Bu bağımlılığı ortadan kaldırmak için Öğrenci ve Ders bilgilerini ayrı tablolara ayırarak 2NF’ye geçebiliriz:
- Öğrenciler Tablosu:
| Öğrenci ID | Ad |
|————|——|
| 1 | Ahmet|
| 2 | Ayşe | - Dersler Tablosu:
| Ders | Öğrenci ID | Öğretmen |
|———–|————|————|
| Matematik | 1 | Dr. Ali |
| Fizik | 1 | Dr. Veli |
| Kimya | 2 | Dr. Zeynep |
3. Normal Form (3NF) – Üçüncü Normal Form
Bir tabloyu Üçüncü Normal Form (3NF) seviyesine getirmek için, İkinci Normal Form‘u sağladıktan sonra, geçerli bağımlılıkları ortadan kaldırmalıyız. Bu, bir sütunun başka bir sütuna olan bağımlılığını ifade eder. Yani, tabloda geçiş bağımlılıkları olmamalıdır.
Örnek:
Aşağıdaki tabloda, Öğretmen ve Derslik arasında geçiş bağımlılığı vardır:
Öğrenci ID | Ad | Ders | Öğretmen | Derslik |
---|---|---|---|---|
1 | Ahmet | Matematik | Dr. Ali | A1 |
1 | Ahmet | Fizik | Dr. Veli | B2 |
2 | Ayşe | Kimya | Dr. Zeynep | C3 |
Bu durumda, Derslik bilgisi Öğretmen bilgisine bağımlıdır. Bu bağımlılığı ortadan kaldırmak için, Dersler ve Öğretmenler ile ilgili bilgileri ayrı tablolara ayırarak 3NF’ye geçebiliriz:
- Öğrenciler Tablosu:
| Öğrenci ID | Ad |
|————|——|
| 1 | Ahmet|
| 2 | Ayşe | - Dersler Tablosu:
| Ders | Öğrenci ID | Öğretmen ID |
|———–|————|————-|
| Matematik | 1 | 1 |
| Fizik | 1 | 2 |
| Kimya | 2 | 3 | - Öğretmenler Tablosu:
| Öğretmen ID | Öğretmen Adı | Derslik |
|————–|—————-|———|
| 1 | Dr. Ali | A1 |
| 2 | Dr. Veli | B2 |
| 3 | Dr. Zeynep | C3 |
Normalizasyonun Faydaları
- Veri tekrarı azalır. Aynı bilgi birden fazla yerde saklanmaz.
- Veri bütünlüğü korunur. Veriler tutarlı ve güncel olur.
- Veri manipülasyon işlemleri daha kolay yapılır. (Güncelleme, silme, ekleme)
- Veri tabanı boyutları küçülür. Çünkü gereksiz veri saklanmaz.
- Anomaliler ortadan kalkar. (Güncelleme, silme ve ekleme anomalileri)
Sonuç
Veri tabanı normalizasyonu, veri tabanının daha sağlıklı, tutarlı ve verimli bir şekilde çalışmasını sağlamak için önemlidir. Verileri her seviyede doğru şekilde normalize ederek, veritabanının performansını ve veri bütünlüğünü artırabilirsiniz.