BCNF (Boyce Codd Normal Form)


Yazan : Şadi Evren ŞEKER

Veritabanı tasarım şekillerinden birisi olan BCNF, üçüncü normal şekil ile (third normal form, 3NF) karşılaştıırlabilir. Yapı olarak normal şekillerde üst sayıdaki normal şekiller, alt normal şekilleri kapsar. Yani 2. normal şekilde olan bütün veri tabanı tasarımları 1. normal şekilde ve benzer şekilde 3. normal şekilde olan bütün veri tabanı tasarımları 2. normal şekilde kabul edilebilir.

Bu durumda BCNF şeklinde olan veritabanı tasarımları da 1. , 2. ve 3. normal şekillerin şartlarını sağlamak zorundadır.

BCNF ile3NF arasındaki farkı şu şekilde açıklayabiliriz:

Veri tabanı tasarımında A → B şeklinde bir functional bağlılık bulunuyorsa (functional dependency), bu bağımlılıktaki B birincil anahtar olmak zorundadır. 3NF tasarımında A anahtarı bir aday anahtar (candidate key) olmak zorunda değildir ancak BCNF şeklinde bunun tersine A →  B şeklindeki bir fonksiyonel bağımlılık durumunda A bir aday anahtar olmalıdır.

Bu durumu aşağıdaki örnek üzerinden anlamaya çalışalım. Örneğin 3. normal şekilde olan aşağıdaki tabloyu ele alalım:

Müşteri No Görüşme Tarihi Görüşme saati Personel No Oda No
CR76 13-May-09 10.30 SG5 B301
CR76 13-May-09 12.00 SG5 B301
CR74 13-May-09 12.00 SG37 B302
CR56 1-Haz-09 10.30 SG5 B302

Yukarıdaki tablodaki fonksiyonel bağımlılıklar aşağıdaki şekilde sıralanabilir:

  1. FD1   “Müşteri No”, “Görüşme Tarihi” → “Görüşme Saati”, “Personel No”, “Oda No”      (Birincil Anahtar, Primary Key)
  2. FD2   “Personel No”, “Görüşme Tarihi”, “Görüşme Saati” →  “Müşteri No”         (Adah Anahtar, Candidate key)
  3. FD3   “Oda No”, “Görüşme Tarihi”, “Görüşme Saati” → “Müşteri No”, “Personel No”     (Aday Anahtar, Candidate key)
  4. FD4   “Personel No”, “Görüşme Tarihi” → “Oda No”     (Aday anahtar DEĞILDIR)

Yukarıdaki fonksiyonel bağımlılıklardan 4.’sü bir aday anahtar değildir. Dolayısıyla veri bütünlüğü (data integrity) açısından sorun olabilir. Örneğin herhangi bir personel için oda değişikliği veri tabanından birden fazla değişikliğin kontrolünü gerektirir.

Örneğin SG5 personeli, B301 odasındadır, bu personelin odasının değişmesi durumunda veri tabanında ya veri bütünlüğü sorunu olur ya da birden fazla erişim gerekir.

Bu sorunun çözümü olarak BCNF şeklinde olan aşağıdaki iki tabloya bölünmesi gerekir:

Müşteri No Görüşme Tarihi Görüşme saati Personel No
CR76 13-May-09 10.30 SG5
CR76 13-May-09 12.00 SG5
CR74 13-May-09 12.00 SG37
CR56 1-Haz-09 10.30 SG5

ikinci bir tablo ile de toplantılar tutulabilir:

Personel No Görüşme Tarihi Oda No
SG5 13-May-09 B301
SG37 13-May-09 B302
SG5 1-Haz-09 B302


« Üçüncü normal şekil (Third Normal Form, 3NF)   |   Elektronik kod defteri şekli (Electronic Code Book Mode) »



Yorumlar

Kullanıcı girişi yaparak ya da zorunlu olan * alanlarını doldurarak yorum yapabilirsiniz.

İsminiz *

Email adresiniz *

Web siteniz

Mesajınızı buraya yazabilirsiniz:

Bu Yazı Hakkında

Bilgisayar Kavramları üzerinde şu anda okumakta olduğunuz 'BCNF (Boyce Codd Normal Form)' isimli yazı 05 Mar 2009 tarihinde, saat: 13:06 'de Şadi Evren ŞEKER tarafından gönderilmiş, toplam 1241 defa okunmuştur.

Benzer yazıları Veri Tabanı (Database) kategorilerinden okuyabilirsiniz. Yazar ile irtibat kurmak için email gönderebilirsiniz. Yazıya yorum yapabilir ya da yapılan yorumları RSS 2.0 ile takibe alabilirsiniz.


Yazarın Kitabı

Bu yazının yazarı Şadi Evren ŞEKER'in son çıkan kitabı "Programlama ve Veri Yapılarına giriş (C, C++ ve JAVA ile)" hakkında bilgi almak için Buraya tıklayabilirsiniz.
Eklenen Son Yazılar
Yapılan Son Yorumlar
Yakın Yazılar
Bağlantılar