Veritabanında normalizasyon nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Veritabanı normalizasyonu, verilerdeki gereksiz tekrarları (düplikasyonları) azaltmak ve veri bütünlüğünü artırmak amacıyla veritabanındaki verilerin düzenlenmesi sürecidir. Bu, büyük tabloların daha küçük tablolara bölünmesi ve aralarındaki ilişkilerin tanımlanmasıyla gerçekleştirilir.
Normalizasyonun temel amacı:
- Veri tekrarını azaltmak: Aynı bilginin farklı yerlerde tekrar edilmesini önlemek.
- Veri bütünlüğünü artırmak: Verilerin doğruluğunu ve tutarlılığını sağlamak.
- Esneklik sağlamak: Veritabanı yapısında değişiklikleri ve genişletmeleri kolaylaştırmak.
Normalizasyon, normal form adı verilen bir dizi kuralla tanımlanır. En yaygın üç normal form şunlardır:
-
Birinci Normal Form (1NF):
- Her sütun atomik (bölünemez) değerler içermelidir.
- Tekrarlayan sütun grupları olmamalıdır.
- Her satır benzersiz olmalıdır (birincil anahtar aracılığıyla).
-
İkinci Normal Form (2NF):
- Tablo 1NF'dedir.
- Tüm anahtar olmayan öznitelikler (birincil anahtar dışındaki sütunlar), tam olarak birincil anahtara bağlıdır (bileşik anahtar varsa). Kısmi bağımlılıklar olmamalıdır.
-
Üçüncü Normal Form (3NF):
- Tablo 2NF'dedir.
- Transitif bağımlılıklar yoktur. Anahtar olmayan öznitelikler, diğer anahtar olmayan özniteliklere bağlı değildir.
Daha yüksek normal formlar (BCNF, 4NF, 5NF, 6NF) de vardır, ancak genellikle 3NF çoğu pratik amaç için yeterlidir.
Örnek (basitleştirilmiş):
Müşteri siparişleri için normalize edilmemiş tablo:
| Sipariş ID | Müşteri Adı | Müşteri Adresi | Ürünler | Miktar | Birim Fiyat |
|---|---|---|---|---|---|
| 101 | Ivan | Moskova | Dizüstü Bilgisayar | 1 | 50000 |
| 101 | Ivan | Moskova | Fare | 2 | 1000 |
| 102 | Maria | Saint Petersburg | Klavye | 1 | 3000 |
Normalizasyon sonrası (örneğin, 3NF'ye kadar):
Siparişler Tablosu:
| Sipariş ID | Müşteri ID | Sipariş Tarihi |
|---|---|---|
| 101 | 1 | 2023-10-26 |
| 102 | 2 | 2023-10-26 |
Müşteriler Tablosu:
| Müşteri ID | Müşteri Adı | Müşteri Adresi |
|---|---|---|
| 1 | Ivan | Moskova |
| 2 | Maria | Saint Petersburg |
Sipariş Detayları Tablosu:
| Detay ID | Sipariş ID | Ürün ID | Miktar | Birim Fiyat |
|---|---|---|---|---|
| 1 | 101 | 10 | 1 | 50000 |
| 2 | 101 | 20 | 2 | 1000 |
| 3 | 102 | 30 | 1 | 3000 |
Ürünler Tablosu:
| Ürün ID | Ürün Adı |
|---|---|
| 10 | Dizüstü Bilgisayar |
| 20 | Fare |
| 30 | Klavye |
Denenormalizasyon, normalizasyonun tersidir ve bazen veri okuma performansını artırmak için kullanılır, ancak bu, gereksiz tekrarların artması pahasına olur.