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:
- FD1 “Müşteri No”, “Görüşme Tarihi” → “Görüşme Saati”, “Personel No”, “Oda No” (Birincil Anahtar, Primary Key)
- FD2 “Personel No”, “Görüşme Tarihi”, “Görüşme Saati” → “Müşteri No” (Adah Anahtar, Candidate key)
- FD3 “Oda No”, “Görüşme Tarihi”, “Görüşme Saati” → “Müşteri No”, “Personel No” (Aday Anahtar, Candidate key)
- 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
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
- Visual Basic ile Gösterici (Pointer) Kullanımı
- Hasse Çizgeleri (Hasse Diagrams)
- Zeki Vekiller (Akıllı Ajanlar, Intelligent Agents, Zeki Etmenler )
- Integral Kriptoanalizi ( Toplam Tecessüsü , Integral Cryptoanalysis)
- Diferansiyel Kriptoanalizi ( Fark Tecessüsü , Differential Cryptoanalysis)
- Sierpinski Üçgeni (Sierpinski Triangle)
- C ile programlamaya giriş final sınavı çözümleri
- Çok Seviyeli Sıralar (Multi Level Queues)
- Çift Özetleme (Double Hashing)
- İkinci Dereceden Sondalama (Quadratic Probing)
Yapılan Son Yorumlar
- Abdurrahman ulusoy: merhaba hocam. gelişigüzel...
- Oguz Okutan: Merhaba hocam.. Fonksiyonlarda degere göre...
- Şadi Evren ŞEKER: Null, NULL, nil veya null olarak...
- Fatih Kabakci: hocam merhabalar,...
- kara: Çok güzel anlatılmış gerçekten teşekkürler...
- Şadi Evren ŞEKER: Bahsettiğiniz şekil dönüşümü...
- Caner: Kullanıcıdan açı girdisi almıyorsanız...
- Furkan Yediyildiz: Algoritmanin mantigi cok güzel...
- havva: çok sağolun çok güzel açıklamalar var tşk...
- Şadi Evren ŞEKER: typedef komutu, bir yapıdan yeni bir...
- fatih kabakci: hocam ben structures ile ilgili bir sorum...
- Şadi Evren ŞEKER: evet, yukarıda açıklanan, herhangi...
- Abdurrahman ulusoy: fi açısından teta kadar döndürme...
- Şadi Evren ŞEKER: Hayır yok, bir noktanın, herhangi...
- Abdurrahman ulusoy: Bu durumda yukarıdaki formüllerin...
- Abdurrahman ulusoy: Merhaba hocam Üstteki mesajımda...
- mustafa ekmekcioğlu: merhaba şadi bey ben hacettepe...
- Şadi Evren ŞEKER: Talebiniz üzerine...
- Evren Kocaturk: ve bunu matlab üzerinde, gerekli...
- Evren Kocaturk: teşekkürler, işime yarayacak gibi,...
Yakın Yazılar
İkinci Normal Şekil (Second Normal Form) 2NF
Üçüncü normal şekil (Third Normal Form, 3NF)
Uzatılmış Öklit Algoritması (Extended Euclid Algorithm)
EBNF (Uzatılmış BNF, Extended Backus Normal Form)
extended euclidean ( uzatılmış öklit veya öklid ) bağlantısı ve algoritması
ilk normal şekil (First Normal Form) 1NF
Ortak Bölenlerin En Büyüğü (OBEB, GCD, Greatest Common Divisor)
Veri Bütünlüğü (Data Integrity)
Bağlantılar