SQL Veri Tabanı Normalizasyonu

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 IDAdDersler
1AhmetMatematik, Fizik
2AyşeKimya, 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 IDAdDers
1AhmetMatematik
1AhmetFizik
2AyşeKimya
2AyşeBiyoloji

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 IDAdDersÖğretmen
1AhmetMatematikDr. Ali
1AhmetFizikDr. Veli
2AyşeKimyaDr. 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 IDAdDersÖğretmenDerslik
1AhmetMatematikDr. AliA1
1AhmetFizikDr. VeliB2
2AyşeKimyaDr. ZeynepC3

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ı

  1. Veri tekrarı azalır. Aynı bilgi birden fazla yerde saklanmaz.
  2. Veri bütünlüğü korunur. Veriler tutarlı ve güncel olur.
  3. Veri manipülasyon işlemleri daha kolay yapılır. (Güncelleme, silme, ekleme)
  4. Veri tabanı boyutları küçülür. Çünkü gereksiz veri saklanmaz.
  5. 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.

guest
0 Yorum
Eskiler
En Yeniler Beğenilenler
Inline Feedbacks
View all comments
0
YORUM YAPx