Normalizasyon nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Veritabanı bağlamında veri normalizasyonu, verilerin fazlalığını azaltmak ve veri bütünlüğünü artırmak için verilerin düzenlenmesi sürecidir. Bu, büyük tabloların daha küçük tablolara bölünmesi ve ilişkilerin kurulmasıyla sağlanır.
Ana hedef:
- Veri çoğaltmasını ortadan kaldırmak.
- Veri bütünlüğünü artırmak (ekleme, güncelleme ve silme anomalilerini önlemek).
- Depolama ve sorgu verimliliğini artırmak (bazı durumlarda).
Normalizasyon süreci, normal formlar ilkelerine dayanır. En yaygın olanlar:
- Birinci Normal Form (1NF): Hücrelerde atomik veri, yinelenen sütun gruplarının olmaması.
- İkinci Normal Form (2NF): 1NF'dedir ve her non-anahtar öznitelik, tüm birincil anahtara tam bağımlıdır.
- Üçüncü Normal Form (3NF): 2NF'dedir ve non-anahtar özniteliklerin transitif fonksiyonel bağımlılıkları yoktur.
Örnek:
Orijinal tablo "Siparişler_Ürünler":
| Sipariş ID | Sipariş Tarihi | Ürün ID | Ürün Adı | Ürün Fiyatı | Miktar | Müşteri Adı | Müşteri Adresi |
|---|---|---|---|---|---|---|---|
| 1 | 2023-10-27 | 101 | Telefon | 500 | 1 | Ivan Pétrov | Pushkina Cad. 10 |
| 1 | 2023-10-27 | 102 | Kulaklık | 100 | 2 | Ivan Pétrov | Pushkina Cad. 10 |
| 2 | 2023-10-27 | 101 | Telefon | 500 | 1 | Maria Ivanova | Lermontova Cad. 5 |
Normalizasyon sonrası (3NF'ye kadar):
"Siparişler" tablosu:
| Sipariş ID | Sipariş Tarihi | Müşteri ID |
|---|---|---|
| 1 | 2023-10-27 | 1 |
| 2 | 2023-10-27 | 2 |
"Sipariş Satırları" tablosu:
| Satır ID | Sipariş ID | Ürün ID | Miktar |
|---|---|---|---|
| 1 | 1 | 101 | 1 |
| 2 | 1 | 102 | 2 |
| 3 | 2 | 101 | 1 |
"Ürünler" tablosu:
| Ürün ID | Ürün Adı | Ürün Fiyatı |
|---|---|---|
| 101 | Telefon | 500 |
| 102 | Kulaklık | 100 |
"Müşteriler" tablosu:
| Müşteri ID | Müşteri Adı | Müşteri Adresi |
|---|---|---|
| 1 | Ivan Pétrov | Pushkina Cad. 10 |
| 2 | Maria Ivanova | Lermontova Cad. 5 |
Ancak, aşırı normalizasyon, sorgular sırasında JOIN sayısının artmasına neden olabilir ve bu da performansı azaltabilir. Bu nedenle, veritabanı tasarımında genellikle normalizasyon derecesi ile performans arasında bir denge aranır. Denormalizasyon, performansı artırmak için kasıtlı olarak normal formların ihlal edilmesi sürecidir ve genellikle fazladan veri eklenmesiyle yapılır.