Konu Anlatımı
Normalizasyon ve İlişkisel Modelleme
Bir veritabanı tasarlanırken en sık karşılaşılan sorun, aynı bilginin birden çok yerde tutulmasıdır. Müşteri adı hem sipariş tablosunda hem de arşiv tablosunda yazıldığında, ad değiştirildiğinde biri güncellenip diğeri eski kalır. Normalizasyon, verileri gereksiz tekrardan arındıran tasarım ilkeleri bütünüdür; amacı veri tutarsızlığını azaltmaktır.
Varlıklar ve İlişkiler
Modelleme, gerçek dünyadaki kavramları varlıklar ve aralarındaki bağlantılar biçiminde ifade eder. Müşteri, ürün ve sipariş birer varlıktır; siparişin bir müşteriye ait olması ise bir ilişkidir. Model önce varlıkları ayırır, sonra her varlığın alanlarını belirler ve en son ilişki kurallarını tanımlar. Bu sırayı bozmak, sonradan düzeltilmesi zor tasarımlara yol açar.
- Varlık: tek başına anlamı olan bilgi kümesi.
- Alan: varlığın bir özelliği.
- İlişki: varlıklar arasındaki bağlantı.
Anahtarlar
Birincil anahtar, bir satırı benzersiz biçimde tanımlayan ve null olmayan alan ya da alan grubudur. Yabancı anahtar ise başka bir tablodaki kayda bağlanan alandır ve ilişki kurallarını tanımlar. Benzersiz değer kümeleri taşıyan her aday sütun aday anahtar olabilir; bunlar arasından birincil anahtar seçilir. Birden çok sütunun birlikte oluşturduğu anahtar birleşik anahtar olarak adlandırılır.
Normal Biçimler
İlk normal biçim, her sütunda yalnızca tek tip değer bulunmasını ve tekrarlayan grupların ayrı satırlara açılmasını ister. İkinci normal biçim, birleşik olmayan her anahtarın yalnızca birincil anahtar alanlarına bağımlı olmasını şart koşar; birleşik anahtarın yalnızca bir bölümüne bağlı kalan alan kısmi bağımlılıktır. Üçüncü normal biçim ise kayıt kimliği olmayan bir alanın başka bir kayda ait alanlara bağımlı olmasını engeller. Bu kural, birbiriyle ilişkisiz konuların aynı tabloda birleştirilmesini gereksiz kılar.
Ayrıştırma ve Çoklu İlişkiler
Kurallara uymayan bir tablo bağımlılıkları izlenerek birden çok tabloya ayrılır. Bir müşterinin birden çok siparişi, bir öğrencinin birden çok derse kaydolması gibi çoklu ilişkilerde ara tablo kurulur; ilişki tek bir satırda değil, birden çok satırda tutulur. Birden çok ilişki bulunan tablolarda ara tablo zorunlu hâle gelir.
Bütünlük Kuralları
Bütünleştirme bütünlüğü, bir kayda bağlı satırların yalnızca o kayıt üzerinden güncellenebilmesini gerektirir. Referans bütünlüğü ise bağlantılı kayıtların birbirine referans değerleriyle bağlanmasının bozulmamasını ifade eder. Silme ve güncelleme kuralları tanımlanmadığında, bir kaydı silmek başka tablolarda geçersiz bağlantılar bırakabilir. Veri sözlüğünde alan adları, veri tipleri, uzunluklar, zorunluluk ve varsayılan değerler tek yerde tanımlanır.
Denge ve Gerekçelendirme
Normal biçimlere tam uyum her durumda en iyi seçenek değildir. Okuma ağırlıklı ve çok sayıda birleştirme içeren sistemlerde bilinçli olarak kısmen sapılabilir; bu durumda tekrarın bilinçli olduğu belgelenmelidir. Aşırı ayrıştırma ise çok sayıda küçük tablo ve karmaşık birleştirme zincirleri oluşturarak performansı düşürebilir. Bu nedenle her sapma için bir gerekçe yazılır ve etkisi ölçülerek karar verilir.
Ne Öğreneceğiz
Varlıkları ve ilişkileri doğru kurarak gereksiz tekrarları önler, tutarlı veri bütünlüğünün sağlanmasını sağlayan modelleme kurallarını uygular. Bu konuda ögrenme çıktıları:
- Normalizasyonun amacını ve ilkelerini açıklar.
- Normal biçim kurallarını ayırt eder.
- Varlıkları, alanları ve ilişkileri modele dönüştürür.
- Birleşik anahtar ve aday anahtar kavramlarını çıkar.
- Ayrıştırma yaparak tekrarları giderir.
- Bütünlük kurallarını ilişkisel modele uygular.
Ön Bilgi
Bu konuya başlamadan önce temel kavram ve ön koşulları kavramanız yardımcı olacaktır. Konunun çerçevesinde şu kavramlar dikkat ister:
- Normalizasyonun temel amacı gereksiz tekrarı azaltarak tutarsızlığı önlemektir.
- Her sütun yalnızca bir değer kümesi taşımalı, anahtar değerleri null olmamalıdır.
- Yabancı anahtar, bir tablodaki alanın başka bir tablodaki kayda bağlanmasını sağlar.
- Kısmi bağımlılık ikinci normal biçime aykırıdır ve alanın ayrı tabloya taşınması gerekir.
- Çoklu ilişkilerde ara tablo kurulur, ilişki satırlarla temsil edilir.
- Silme ve güncelleme kuralları tanımlanmazsa beklenmeyen kayıplar oluşabilir.
Basit Örnek ve Günlük Yaşam
Günlük yaşamda ve mesleki bağlamda bir uygulama:
Soru: Müşteri adı sipariş tablosunda saklanıyor. Müşteri adı değiştiğinde ne olur?
- Adım 1: Müşteri adının kaç tabloda tutulduğunu belirle.
- Adım 2: Değişikliğin bütün satırlara uygulanma zorunluluğunu gör.
- Adım 3: Adı tek bir tabloda tutup siparişten yabancı anahtarla bağla.
Sonuç/cevap: Ad tek yerde tutulduğunda tek bir güncelleme yeterli olur.
İleri Örnek
Daha ileri bir uygulama:
Soru: Okuma ağırlıklı bir raporda alan bilinçli olarak tekrarlanacaktır. Nasıl bir karar verilir?
- Adım 1: Beklenen sorgu sayısını ve birleştirme derinliğini ölç.
- Adım 2: Sapmanın sağlayacağı kazancı yaz.
- Adım 3: Kararı ve ölçüm sonucunu belgeleyerek uygula.
Sonuç/cevap: Sapma, gerekçesi ve ölçümü belgelenerek bilinçli biçimde yapılır.
Adım Adım Çözülmüş Örnek
Örnek 1: Tekrarın Yarattığı Sorun konusunun adımları:
- Adım 1: Müşteri adının kaç tabloda tutulduğunu belirle.
- Adım 2: Değişikliğin bütün satırlara uygulanma zorunluluğunu gör.
- Adım 3: Adı tek bir tabloda tutup siparişten yabancı anahtarla bağla.
Karşılaştırma Tablosu
| Kavram | Açıklama |
|---|
| Normalizasyonun temel amacı gereksiz tek | Normalizasyonun temel amacı gereksiz tekrarı azaltarak tutarsızlığı önlemektir. |
| Her sütun yalnızca bir değer kümesi taşı | Her sütun yalnızca bir değer kümesi taşımalı, anahtar değerleri null olmamalıdır. |
| Yabancı anahtar, bir tablodaki alanın ba | Yabancı anahtar, bir tablodaki alanın başka bir tablodaki kayda bağlanmasını sağlar. |
| Kısmi bağımlılık ikinci normal biçime ay | Kısmi bağımlılık ikinci normal biçime aykırıdır ve alanın ayrı tabloya taşınması gerekir. |
| Çoklu ilişkilerde ara tablo kurulur, ili | Çoklu ilişkilerde ara tablo kurulur, ilişki satırlarla temsil edilir. |
| Silme ve güncelleme kuralları tanımlanma | Silme ve güncelleme kuralları tanımlanmazsa beklenmeyen kayıplar oluşabilir. |
Sık Yapılan Hatalar
Tekrarı azaltmadan tabloyu büyütmek: Aynı bilgiyi satır içinde tekrarlamak güncelleme sırasında eski kayıt bırakır; tekrarlar ayrıştırılmalıdır.
Birleşik anahtarın bütün parçalarını doldurmayı unutmak: Anahtarın bir parçası boş bırakılırsa satır benzersiz olmaktan çıkar ve ilişkiler bozulur.
Yabancı anahtar kullanmadan yalnızca ad yazmak: Adı yazmak ilişkiyi taşımaz; yabancı anahtar olmadan bağlantı kurulamaz.
Çoklu ilişkileri tek sütunda toplamaya çalışmak: Virgülle ayrılmış değerler süzme ve birleştirme işlemlerini bozar; ara tablo kullanılmalıdır.
Her normal biçim kuralını hiçbir gerekçe olmadan delmek: Ölçülmemiş sapmalar tutarsızlığa yol açar; her sapmanın gerekçesi yazılmalıdır.
Özet
Normalizasyon, veritabanı tasarımında gereksiz tekrarları azaltarak veri tutarsızlığını önleyen ilkeler bütünüdür. Modelleme varlıkların, alanların ve ilişkilerin tanımlanmasıyla başlar; birincil anahtar satırı benzersiz biçimde tanımlar, yabancı anahtar tablolar arasında bağlantı kurar, birleşik anahtar birden çok sütunun birlikte oluşturduğu anahtardır. Birinci normal biçim tek tip değer ve tekrarsız satır ister; ikinci normal biçim, birleşik anahtarın yalnızca bir bölümüne bağlı kalan alanları yani kısmi bağımlılıkları ortadan kaldırır; üçüncü normal biçim ise kayıt kimliği olmayan alanların başka kayda ait alanlara bağımlı olmasını engeller. Çoklu ilişkilerde ara tablo kurulur. Örneğin 800 satır ve 12 sütunlu bir tabloda 800 × 12 = 9600 hücre bulunur. Kurallara uyulmazsa aynı bilginin birden çok yerde tutulması, bir yerde güncellendiğinde diğerlerinin eski kalmasına yol açar. Bütünleştirme ve referans bütünlüğü kuralları ile silme davranışları tanımlanmalıdır; bilinçli sapmalar gerekçesiyle belgelenmelidir.
Kendini Dene
Soru: Yönerge: Bir kütüphane uygulamasının veri modelini yaz. Planda varlıkları, aralarındaki ilişkileri, birincil ve yabancı anahtarları, çoklu ilişki için kurulacak ara tabloyu ve uygulanacak normal biçim kurallarını ayrı maddeler hâlinde belirt.
Örnek cevap: Puanlama anahtarı: varlıkların doğru sayıda ve doğru adlarla yazılması 4 puan; ilişkilerin ve yabancı anahtarların belirtilmesi 5 puan; ara tablo gereksiniminin gerekçesiyle açıklanması 4 puan; normal biçim kurallarının uygulanma biçiminin yazılması 5 puan; ilişkilerin okunabilir biçimde verilmesi 2 puan. Toplam 20 puan. Model cevap: Kitap, üye ve ödünç varlıkları vardır. Kitabın kitap numarası, üyenin üye numarası birincil anahtardır. Ödünç kaydı ara tablodur ve kitap ile üye numarasını yabancı anahtar olarak taşır. Bir üye birden çok kitap ödünç alabilir. Ad, yazar ve adres gibi tekrarlayan alanlar ilgili varlıklara taşınarak üçüncü normal biçim sağlanır.