Aşağıda gösterilen karşılaştırma tablosu yardımıyla 3NF ve BCNF arasındaki farkları tartışalım.
Karşılaştırma Tablosu
Karşılaştırma için temel | 3NF | BCNF |
---|---|---|
kavram | Asal olmayan bir öznitelik, geçişsel olarak Aday anahtarına bağlı olmamalıdır. | R ilişkisindeki önemsiz bağımlılık için, X-> Y diyelim ki, X, R ilişkisinin süper anahtarı olmalıdır. |
Bağımlılık | Tüm bağımlılıkları feda etmeden 3NF elde edilebilir. | Bağımlılıklar BCNF'de korunmayabilir. |
ayrışma | Kayıpsız bozunma 3NF'de sağlanabilir. | Kayıpsız ayrışmanın BCNF'de elde edilmesi zordur. |
3NF'un tanımı
Bir tablo veya bir ilişki, yalnızca tablo zaten 2NF'deyse ve ilişkinin aday anahtarına geçişli olarak bağımlı olmayan bir öznitelik yoksa, Üçüncü Normal Form'da kabul edilir.
Bu yüzden, 3NF'deki bir masayı normalleştirme sürecini ele almadan önce, aday anahtarını tartışmama izin verin. Bir Aday Anahtar, minimum bir süper anahtar yani bir ilişkinin tüm özelliklerini tanımlayabilen minimum özelliklere sahip bir süper anahtardır. Bu nedenle, tablonuzu normalleştirme sürecinde önce belirli bir ilişkinin aday anahtarını tanırsınız. Aday anahtarın bir parçası olan öznitelikler asal özniteliklerdir ve aday anahtarın parçası olmayan öznitelikler asal olmayan özniteliklerdir .
Şimdi eğer R (A, B, C, D, E, F) ilişkimiz varsa ve R ilişkisi için fonksiyon bağımlılıklarımız varsa
Asal olmayan bir özellik kısmen aday anahtarına bağlı olmadığından, tablo 2NF’dedir
Ancak, F özelliği doğrudan A aday anahtarına bağlı olmadığından, sağlanan fonksiyonel bağımlılıklar arasında geçişli bir bağımlılık gözlenmektedir. Bunun yerine, F niteliği, geçiş niteliği taşıyan AB A aday anahtarına D niteliğince bağlıdır. D özniteliği D'ye, AB aday anahtarından F öznitelik değerine ulaşabileceğimiz bir değere sahiptir. D özelliğinin değerinin NULL olması durumunda AB aday anahtarının yardımı ile F'nin değerini asla bulamıyoruz / arayamıyoruz. 3NF'nin geçici bağımlılığı ilişkilerden kaldırmak istemesinin nedeni budur.
Bu yüzden, bu geçişli bağımlılığı ortadan kaldırmak için, ilişkiyi R bölmeliyiz. Bir ilişkiyi bölerken, her zaman aday anahtarını ve o aday anahtarına bağlı olan tüm nitelikleri ilk ilişkide yerleştirin. Bir sonraki bölünmüş ilişkide, geçişli bağımlılığa neden olan özelliği ve ayrıca ona bağlı olan nitelikleri ikinci ilişkide yerleştireceğiz.
BCNF'un tanımı
BCNF, 3NF'den daha güçlü olarak kabul edilir. BCNF'de olacak R ilişkisi 3NF'de olmalıdır. Ve önemsiz olmayan bir işlevsel bağımlılığın A -> B'nin R ile ilişkili olduğu her yerde, o zaman A, A'nın R'nin bir üstkuşu olması gerekir. Bildiğimiz gibi, Süper anahtar tek bir niteliğe veya belirleyici özelliklere sahip olan bir anahtardır. ilişkinin öznitelikleri.
Şimdi BCNF'yi daha iyi anlamak için bir örneğe geçelim. Diyelim ki, aşağıdaki işlevsel bağımlılıkları olan bir ilişkimizin R (A, B, C, D, F) olduğunu varsayalım.
Ancak bir işlevsel bağımlılık, yani D -> F, BCNF'nin tanımını ihlal ediyor, buna göre, eğer D -> F varsa, D burada böyle olmayan süper anahtar olmalıdır. Öyleyse ilişki R'yi böleriz.
3NF ve BCNF Arasındaki Temel Farklar
- 3NF, asal olmayan bir özniteliğin, ilişkinin aday anahtarına geçiş yoluyla bağımlı olması gerekmediğini belirtir. Diğer taraftan, BCNF, bir ilişki için önemsiz bir işlevsel bağımlılık X -> Y bulunduğunu belirtir; o zaman X bir süper anahtar olmalı.
- 3NF, ilişkinin bağımlılığından ödün vermeden elde edilebilir. Bununla birlikte, BCNF elde edilirken bağımlılık korunmayabilir.
- Eski tablodan hiçbir bilgi kaybetmeden 3NF'ye ulaşılabilir, oysa BCNF'yi elde ederken eski tablodan bazı bilgileri kaybedebiliriz.
Sonuç:
BCNF, tabloyu daha fazla normalleştirmeye yardımcı olan 3NF'den çok kısıtlayıcıdır. 3NF'deki ilişki, BCNF tarafından daha da uzaklaştırılan geriye kalan asgari fazlalığa sahiptir.