Veritabanı Tasarımı ve Normalizasyonu
Veritabanı tasarımı ve normalizasyonu, ilişkisel şemaları verileri doğru bir şekilde temsil edecek, aynı zamanda fazlalığı ve bunun neden olduğu güncelleme, ekleme ve silme anormalliklerini ortadan kaldıracak şekilde yapılandırma disiplinidir.
Tanım
Normalizasyon, öznitelikler arasında geçerli olan işlevsel ve çok değerli bağımlılıklar rehberliğinde, orijinal şemanın bilgi içeriğini korurken, fazlalığı azaltmak ve anormallikleri önlemek amacıyla ilişkileri ayrıştırma sürecidir.
Kapsam
Bu alan, ilişkisel şemaların iyileştirilmesinin teorisini ve pratiğini kapsamaktadır: tasarımı yönlendiren anlamsal kısıtlamalar olarak işlevsel ve çok değerli bağımlılıklar, normal formların hiyerarşisi (1NF'den BCNF, 4NF'ye kadar) ve kayıpsız birleştirmeleri ve mümkün olduğunda bağımlılıkları korurken fazlalığı gidermek için ilişkilerin ayrıştırılması. Varlık-ilişki diyagramları (veri modelleri ve sorgu dillerinde ele alınmıştır) gibi kavramsal modelleme gösterimleri ve indeksleme gibi fiziksel tasarım seçimleri bu kapsamın dışındadır.
Alt konular
Temel sorular
- Bir ilişkinin öznitelikleri arasında hangi işlevsel ve çok değerli bağımlılıklar geçerlidir?
- Fazlalık hangi anormalliklere — güncelleme, ekleme, silme — neden olmaktadır?
- Her normal formu hangi koşullar tanımlar ve her biri hangi fazlalığı ortadan kaldırır?
- Bir ilişki bilgi kaybı olmadan nasıl ayrıştırılabilir?
- Bağımlılık koruma, daha yüksek bir normal forma karşı ne zaman ödün verilmelidir?
Anahtar kavramlar
- işlevsel bağımlılık
- Armstrong aksiyomları ve kapanım
- aday anahtarlar ve asal öznitelikler
- güncelleme, ekleme, silme anormallikleri
- birinci, ikinci, üçüncü normal form
- Boyce-Codd normal form
- çok değerli bağımlılıklar ve 4NF
- kayıpsız birleştirme ayrıştırması
- bağımlılık koruma
Temel kuramlar
- İşlevsel bağımlılıklar ve kapanım
- Bir işlevsel bağımlılık X → Y, X'in Y'yi belirlediğini ileri sürmektedir; Armstrong aksiyomları, anahtar bulma ve normal formların test edilmesinin temelini oluşturan bir bağımlılık kümesinin kapanımını hesaplamaya olanak tanır.
- Normal formlar
- Birinci ila üçüncü normal form ve Boyce-Codd normal form, fazlalığı ortadan kaldırmak için işlevsel bağımlılıklara giderek daha katı koşullar getirmektedir; dördüncü normal form bunu çok değerli bağımlılıklara genişletmektedir.
- Kayıpsız birleştirme ve bağımlılık koruyan ayrıştırma
- Bir ayrıştırma, yalnızca kayıpsız ise (orijinal ilişki parçaları birleştirilerek yeniden oluşturulabilir) ve ideal olarak bağımlılık koruyucu ise (tüm orijinal bağımlılıklar parçalar üzerinde uygulanabilir) arzu edilir; bu kriterler şemaların nasıl bölüneceğini kısıtlamaktadır.
Klinik önem
Normalizasyon, güvenilir bilgi sistemleri oluşturmada temel bir beceridir: iyi normalleştirilmiş şemalar tutarsız verileri önlemekte ve işlemsel uygulamalarda bakımı basitleştirmektedir; uygulayıcılar ise yoğun okuma gerektiren analitik ve raporlama için kasıtlı olarak denormalizasyon yapmaktadır, bu da ödünleşimleri gerçek dünya veritabanı mühendisliğinin merkezine yerleştirmektedir.
Tarihçe
Codd, 1970'lerin başında birinci, ikinci ve üçüncü normal formları ve Boyce ile birlikte daha güçlü Boyce-Codd normal formunu tanıtmıştır. Ronald Fagin daha sonra çok değerli ve birleştirme bağımlılıklarına dayalı dördüncü ve beşinci normal formları tanımlamıştır. Bu sonuçlar bir araya gelerek şema tasarımını bir sanattan, bağımlılık kısıtlamalarına dayalı bir kurama dönüştürmüştür.
Tartışmalar
- Pratikte ne kadar normalleştirilmeli
- Katı normalizasyon fazlalığı ve anormallikleri ortadan kaldırmaktadır ancak yoğun okuma gerektiren iş yüklerini yavaşlatan birçok birleştirmeyi gerektirebilir; uygulayıcılar, performans için kontrollü denormalizasyonun ne zaman haklı olduğunu ve ne zaman normalizasyonun önlemek için tasarlandığı tutarsızlıkları davet ettiğini tartışmaktadır.
Öne çıkan isimler
- Edgar F. Codd
- Raymond F. Boyce
- Ronald Fagin
İlgili konular
Temel eserler
- codd1972
- silberschatz2019
- garciamolina2008
Sıkça sorulan sorular
- Dikkatli olsam bile fazlalık neden sorunlara yol açar?
- Aynı bilginin birden fazla satırda yedekli depolanması anormalliklere yol açar: bir güncelleme bazı kopyaları değiştirebilirken diğerlerini değiştirmeyebilir (güncelleme anormalliği), ilgisiz veriler olmadan bir bilgiyi kaydedemeyebilirsiniz (ekleme anormalliği) veya bir satırı silmek, saklamak istediğiniz bilgiyi kaybetmenize neden olabilir (silme anormalliği). Normalizasyon, bunları mümkün kılan fazlalığı ortadan kaldırır.
- BCNF ile üçüncü normal form arasındaki fark nedir?
- Her ikisi de işlevsel bağımlılıklardan kaynaklanan fazlalığı ele almaktadır, ancak BCNF daha katıdır: her önemsiz bağımlılığın sol tarafının bir süper anahtar olmasını gerektirir. Bir şema 3NF'de olabilir ancak BCNF'de olmayabilir. BCNF her zaman kayıpsız bir ayrıştırma sağlar ancak bağımlılık koruyucu olmayabilir, bu nedenle 3NF bazen korunmaktadır.