Verinin Normal Formu
Verinin Normal Formu
Çoğumuz normalde 3NF’de dururuz. Bazılarımız 3NF sonrası normalleşme seviyelerini tam olarak anlamadığımız için duruyoruz. Graeme Simsion, Data Modeling Essentials adlı kitabında, “Daha yüksek normal biçimler, uygulayıcılar tarafından sıklıkla yanlış anlaşılır ve bu nedenle göz ardı edilir veya sağlam olmayan modelleme uygulamalarını desteklemek için alıntılanır.”
Bununla birlikte, bu daha yüksek normalleştirme düzeylerini anlamamız gerekir, çünkü bu daha yüksek düzeyler, normalleşme için ek fırsatlar sunar ve fazlalığı azaltmaya ve esnekliği artırmaya devam etmemize yardımcı olur. Sonraki üç normalleşme seviyesi, zamanın yalnızca küçük bir yüzdesinde değişikliklere neden olsa da, bazı esneklik ve verimlilik fırsatları hala keşfedilmeyi bekliyor.
Tüm birincil anahtara (3NF) bağımlı olduklarından emin olmak için tüm anahtar olmayan veri öğelerini zaten kontrol ettik. BCNF, kalan veri öğelerine aynı düzeyde titizlik uygulanması anlamına gelir: alternatif anahtarlar. Kendi başına bir alternatif anahtar olan bir veri öğemiz varsa, tanım gereği birincil anahtarın tamamına bağımlıdır.
Bununla birlikte, alternatif anahtarda iki veya daha fazla veri öğesinin bulunması, bir veya daha fazlasının birincil anahtarın tamamı yerine birincil anahtarın bir alt kümesine (çakışan anahtarlar) bağlı olma potansiyeli oluşturur. Bu durumlar 3NF’de olabilir ama BCNF’de olmayabilir. Bu nedenle BCNF 3NF aşağıdaki kuraldır.
Her veri öğesi tamamen anahtara, tüm anahtara ve anahtardan başka bir şeye bağımlı değildir. Yalnızca anahtar olmayan veri öğelerini değil, tüm veri öğelerini içermesi dışında 3NF ile aynı olduğunu unutmayın. Bileşik alternatif anahtarları incelememiz gerekiyor. Örneğin, bir ayakkabı mağazası için müşterinin soyadını ve ayakkabı numarasını, müşteri tablosuna bileşik alternatif anahtar olarak kullandığımızı varsayalım.
Ayakkabı numarası, bu müşteri tablosunun birincil anahtarına doğrudan bağlı olmayan bu alternatif anahtarın bir parçasıdır. Bu nedenle, bu örnek 3NF’de ama BCNF’de değil. Bu örneği BCNF’de geçerli kılmak için, bu alternatif tanımlayıcıyı parçalamamız ve muhtemelen yeni bir varlık oluşturmamız veya tablo için alternatif tanımlayıcıyı yeniden tanımlamamız gerekecektir.
Veri modelimizi BCNF’de gösterir. 3NF modelimizde Check varlığımızda tanımlanmış bir bileşik alternatif anahtarımız olduğunu varsayalım. Aşağıdaki veri öğelerini içerir.
Bu dördü, çek için çok iyi bir alternatif anahtardır. Ancak burada neyin çek olarak kabul edildiği konusunda çok dikkatli olmamız gerekiyor. Görünüşe göre çekle ilişkili tatlıyla ilgili veri öğeleri de var. Aynı siparişteki her yeni tatlı için yeni bir kontrol tanımlayıcısının oluşturulması mümkün olabilir (ancak muhtemelen olası değildir).
İkinci normal form nedir
1nf 2nf, 3nf örnekleri
Normalizasyon formları
Normalizasyon Örnekleri
Boyce Codd normal form
Üçüncü normal Form
Normalizasyon formülü
Veri tabanı Normalizasyon
Bu nedenle, daha önce tanımlanan alternatif anahtar bir çek içindir, ancak KONTROL TANIMLAYICISI hem çek hem de tatlı için benzersiz görünmektedir. Bu nedenle, bu alternatif anahtarın birincil anahtara tamamen bağımlı olması için tatlıyla ilgili veri öğelerini kendi varlıklarına taşımamız gerekir. Çek ve Tatlı İkramı arasındaki ilişkinin oldukça abartılı olabileceğini unutmayın, çünkü çoğu restoranın aynı siparişte her tatlı için ayrı bir çek oluşturacağından şüpheliyim; ancak, BCNF’yi güzel bir şekilde göstermektedir.
Dördüncü Normal Form, birincil anahtarının bir parçası olarak üç veya daha fazla yabancı anahtar veri öğesine sahip varlıkları ilişkileri olan iki veya daha fazla ayrı varlığa ayırdığımız zamandır. 4NF’nin püf noktası, yalnızca birincil anahtar içindeki veri öğeleri arasında hiçbir kısıtlamanın olmadığı varlıkları parçalayabilmemizdir. Bu nedenle 4NF 3NF kuralı şu şekildedir.
Birincil anahtarlarında aralarında kısıtlama olmayan üç veya daha fazla yabancı anahtar veri öğesi bulunan varlıkları iki veya daha fazla varlığa ayırın. Peki bu ne anlama geliyor? İlk olarak, bu, yalnızca bir varlığa gelen üç veya daha fazla tanımlayıcı ilişkiye sahip varlıklarla ilgilenmemiz gerektiği anlamına gelir.
Bu genellikle modelimizdeki toplam varlık sayısının çok küçük bir yüzdesidir. Ardından kendimize şunu soruyoruz: “Bu varlığın birincil anahtarını oluşturan bu üç veya daha fazla veri öğesi arasında herhangi bir kısıtlama var mı?” Örneğin, bir çalışan ile onun becerileri ve hedefleri arasındaki ilişkileri yakalayan Çalışan Beceri Hedefi varlığına sahip olduğumuzu varsayalım.
Diyelim ki bu varlığın birincil anahtarı Çalışan Kimliği, Beceri Kimliği ve Amaç Kimliği, bu da onu 4NF için inceleme altına alıyor. Şimdi soru şu: “Bu üç veri öğesi arasında kısıtlamalar var mı?” Başka bir deyişle, bir Çalışan herhangi bir Hedef seti ile herhangi bir Beceri setine sahip olabilir mi?
Çalışan, iyi bir jonglör olma becerisine sahip olabilir ve yıl için bir dizi veri modelleme hedefi atanabilirse, bu üç veri öğesi arasında herhangi bir kısıtlama yoktur. Bu veri öğelerinden herhangi ikisi arasında kısıtlamalar olabileceğini unutmayın, örneğin, bir veri modelleme hedefi, veri modelleme becerilerini gerektirir.
Yalnızca D harfi ile başlayan çalışan adları veri modelleme becerisine sahipse ve veri modelleme hedeflerine sahipse, o zaman üç veri öğesinin tümü arasında kısıtlamalarımız olur ve varlığı 4NF için olduğu gibi tutmamız gerekir.
Bu bölümün sonunda ise 4NF’deki veri modelimiz yer almaktadır. Çoğu zaman bu normalleşme sürecinden geçerken fazlalığı en aza indirmenin ve bazen de esnekliği artırmanın ek yollarını keşfederiz. Örneğin, şu anda her restorandaki her tatlı için önerilen tek bir sos ve içeceğe sahibiz.
Tatlı Teklifi varlığına bakın. Diyelim ki işletme kullanıcısı, belirli bir tatlı için birden fazla önerilen içeceğe ve malzemeye izin verme esnekliği istiyor. Bu ilave esnekliği istiyorsak, onları kendi ilişkilerine ayırmalıyız. Bu yeni ilişki, belirli bir tatlı için herhangi bir sayıda tavsiye edilen içecek ve sosları tanımlamamıza izin verir. Bu güncellenmiş model gösterilmektedir.
Bu daha esnek iş kuralının zamanlaması bundan daha iyi olamazdı çünkü 4NF’yi uygulamak üzereyiz ve İçecek Tatlı Kombinasyonu kuruluşu 4NF kapsamında incelenecek kriterleri karşılıyor. Bu nedenle, bu genişletilmiş iş kuralı, artan normalizasyonla esneklik ve daha az fazlalık için nasıl yeni yollar keşfettiğimizi göstermekle kalmayacak, aynı zamanda 4NF için iyi bir test sağlayacaktır.
Malzemeler, içecekler ve tatlı teklifleri arasında herhangi bir kısıtlama var mı? Örneğin, muzlu tatlı için her zaman sos olarak sıcak şekerleme ve içecek olarak kahve önermeli miyiz? Bunun gibi durumlar mümkünse, o zaman bu varlığı parçalayamayız ve 4NF tanımını karşılar (ama belki 5NF değildir; bizi izlemeye devam edin). Bu yabancı anahtarların üçü arasında kısıtlamalarımız yoksa, varlığı yeni varlıklarda gösterildiği gibi bölebiliriz.
1nf 2nf 3nf örnekleri Boyce Codd normal form İkinci normal form nedir Normalizasyon formları Normalizasyon formülü Normalizasyon Örnekleri Üçüncü normal Form Veri tabanı Normalizasyon