3NF ve BCNF Arasındaki Fark

Yazar: Laura McKinney
Yaratılış Tarihi: 1 Nisan 2021
Güncelleme Tarihi: 17 Mayıs Ayı 2024
Anonim
3NF -BCNF AYRIŞTIRMASI / VERİ TABANI NORMALLEŞTİRME
Video: 3NF -BCNF AYRIŞTIRMASI / VERİ TABANI NORMALLEŞTİRME

İçerik


normalleştirme kaldırır bir yöntemdir fazlalık bu sayede bir ilişkinin veri tabanının performansını azaltan ekleme, silme ve güncelleme işlemlerini en aza indirmesi. Bu makalede, iki yüksek normal form arasında, yani 3NF ve BCNF arasında ayrım yapacağız. 3NF ve BCNF arasındaki temel fark şudur: 3NF BCNF'de olması gereken bir ilişkiden ve bir tablodan geçiş bağımlılığını ortadan kaldırır, bir ilişkideki önemsiz fonksiyonel bağımlılık X-> Y'nin, sadece X süper anahtar ise, tutması gerekir.

Aşağıda gösterilen karşılaştırma tablosu yardımıyla 3NF ve BCNF arasındaki farkları tartışalım.

  1. Karşılaştırma Tablosu
  2. Tanım
  3. Anahtar Farklılıklar
  4. Sonuç

Karşılaştırma Tablosu

Karşılaştırma için temel3NFBCNF
kavramAsal 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ıkTüm bağımlılıkları feda etmeden 3NF elde edilebilir.Bağımlılıklar BCNF'de korunmayabilir.
ayrışmaKayı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 içinde olduğu kabul edilir. Üçüncü Normal Form sadece masa zaten içindeyse 2NF ve yok olmayan asal nitelik geçişli bağlı aday anahtar bir ilişkinin

Bu yüzden, 3NF'deki bir masayı normalleştirme sürecini ele almadan önce, aday anahtarını tartışmama izin verin. bir Aday Anahtar olduğu en az süper anahtar yani bir ilişkinin tüm niteliklerini tanımlayabilen minimum niteliklere sahip bir süper anahtar. 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 özellikler asal niteliklerve aday anahtarın parçası olmayan özellikler asal olmayan özellikler.

Şimdi eğer R (A, B, C, D, E, F) ilişkimiz varsa ve R ilişkisi için işlev bağımlılıklarımız varsa


İşlevsel bağımlılıkları gözlemleyerek, şunu söyleyebiliriz: AB R ilişkisi için aday bir anahtardır çünkü AB anahtarını kullanarak R ilişkisindeki tüm özniteliğin değerini arayabiliriz. A, B olur asal nitelikler birlikte aday anahtar olarak yaptıkları gibi. Özellikleri C, D, E, F olur olmayan asal Nitelikleri, hiçbiri bir aday anahtarın parçası olmadığı için.

Asal olmayan bir özellik kısmen aday anahtarına bağlı olmadığından, tablo 2NF'dedir

Ancak, sağlanan işlevsel bağımlılıklar arasında geçiş niteliğinde bir bağımlılık görülmektedir. F doğrudan aday anahtarına bağlı değildir AB. Bunun yerine, nitelik F olduğu geçişli aday anahtara bağlı AB öznitelik yoluyla D. 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 özellikleri ikinci ilişkide yerleştireceğiz.

Şimdi, R1 ve R2 tabloları kısmi ve geçişli bağımlılıkları kalmadığından 3NF içindedir. ilişki R1 (A, B, C, D, E) aday anahtarı var AB oysa ilişki R2 (D, E) vardır D aday anahtarı olarak.

BCNF'un tanımı

BCNF, 3NF'den daha güçlü olarak kabul edilir. BCNF’de olması gereken R’nin 3NF. Ve her nerede önemsiz olmayan fonksiyonel bağımlılık A -> B sonra R ilişkisini tutar bir olmalı SuperKey R'nin bildiği gibi, Süper anahtar, bir ilişkinin tüm özelliklerini belirleyen, tek bir niteliğe veya bir dizi niteliğe sahip olan bir anahtardır.

Şimdi BCNF'yi daha iyi anlamak için bir örneğe geçelim. Bir ilişkimizin olduğunu varsayalım R (A, B, C, D, F), aşağıdaki fonksiyonel bağımlılıkları var.

R ilişkisini gözlemleyerek bunu söyleyebiliriz. bir ve BF Hangi aday anahtarlar R ilişkisinde, çünkü onlar yalnız R ilişkisindeki tüm niteliklerin değerini arayabilirler. A, B, F onlar asal Oysa nitelikler, C ve D Hangi olmayan asal Öznitellikler. Yukarıdaki mevcut fonksiyonel bağımlılıklarda geçişli bir bağımlılık gözlenmemektedir. Bu nedenle, R tablosu 3NF içerisindedir.

Fakat bir işlevsel bağımlılık, yani. D -> F BCNF tanımını ihlal ediyor, buna göre, eğer D -> F varsa D olmalı süper anahtar burada durum böyle değil. Öyleyse ilişki R'yi böleriz.

Şimdi, R1 ve R2 tabloları BCNF içerisindedir. ilişki R1, iki tane var aday anahtarlar bir ve BR1, yani A-> BCD ve B -> ACD'nin önemsiz fonksiyonel bağımlılığı, BCNF'yi A ve B olarak tutar, ilişki için süper anahtarlardır. ilişki R2, vardır D onun gibi aday anahtar ve fonksiyonel bağımlılık D -> F ayrıca D bir Süper Anahtar olduğundan BCNF için de geçerlidir.

  1. 3NF, asal olmayan hiç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ı.
  2. 3NF, ilişkinin bağımlılığından ödün vermeden elde edilebilir. Bununla birlikte, BCNF elde edilirken bağımlılık korunmayabilir.
  3. 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şkinin, BCNF tarafından daha da uzaklaştırılan kalan minimum artıklığı vardır.