Sıra | DOSYA ADI | Format | Bağlantı |
---|---|---|---|
01. | Bütünlük Kısıtlamaları Ve İlişkisel Tasarım | pptx | Sunumu İndir |
Transkript
Veri Tabanı Yönetim Sistemleri Bütünlük Kısıtlamaları ve İlişkisel Tasarım
R (A1, A2 A3, ...., An) nitelik kümesi,F işlevsel bağımlılık kümesi (X ⊆ R) ise; X+, X’ in belirlediği niteliklerin tümüdür.X+ hesaplama algoritması1. Başlangıçta T = { X } yap2. F'deki her W Z işlevsel bağımlılığı için: Eğer {W} ⊆ T ise => T=T ∪ { Z } yap3. T değiştiği sürece 2. adımı tekrarlaSonuçta X+ = T olarak bulunur.F. Bir Nitelik Kümesinin Kapanışı
Örnek 4.11: Nitelik kümesi :R(A,B,C,D,E,G) İşlevsel bağımlılık kümesi:F: A BCDE G BD BC E CG A BDE ACGA+ =ABCDEG (AB) + = ABCDEGB+ =B (BC)+ = BCEC+=C (CG)+ = ABCDEGD+=D (CDE)+ = CDEE+=E (DEG)+ = ABCDEGG+=BDG (BCDE)+ = ABCDEG
5. İlişki Anahtarlarıİşlevsel bağımlılıklara göre, ilişki anahtarları tanımı.Süper anahtar: Nitelik alt kümesi (K), ilişkideki tüm nitelikleri işlevsel belirliyorsa Süper Anahtarıdır.K ⊆ R : K R ise K+=R Anahtar ya da anahtar adayı: Bir nitelik altkümesi (K), ilişkideki tüm nitelikleri işlevsel belirliyorsa ve hiçbir altkümesi tüm nitelikleri belirlemiyorsa, K ilişkinin anahtar adayı ya da kısaca anahtarıdır. K ⊆ R : K R ise K+=R ve Z ⊆ K : ! K R ise K+≠R Anahtar tanımını, süper anahtara dayalı olarak:K, R‘ nin bir süper anahtarı ve K‘ nın hiçbir öz altkümesi R’nin süper anahtarı değilse, K, R‘ nin anahtar adayı, ya da kısaca anahtarıdır.(K ⊆ R : K R) ve ( ƎK1 K : K1 R ) K ilişkinin anahtarıdır. Önemli! Her anahtar bir bütünlük kısıtlamasıdır. İlişkinin tüm örneklerinde, anahtarı değeri tüm çoklularında farklı olmalıdır.
İlişki kuramında anahtar bir erişim mekanizması değil, bir bütünlük kısıtlamasıdır. Bütünlük ve tutarlık için anahtarların bilinmesi gerekir. \Anahtar adayı\, \anahtar\ ve \ilişki anahtarı\ eşanlamlıdır. «Superkey» = «süper set of key»Her anahtarın, üst kümesi süper anahtardır. Önemli olan süper anahtarlar değil anahtarlardır.Her anahtar, süper anahtardır.Her süper anahtar, anahtar değildir.
Örnek 4.12. R(A, B, C, D, E) F={A C, B D , D AE, CE B} İlişkinin 4 anahtarı(ya da anahtar adayı) vardır: B, D, AE ve CE B, D, AE ve CE' nin tüm üst kümeleri ilişkinin süper anahtarıdır.Örnek: B, AB, ABC, DC, ADE, ABCDE
6. İlişkiler İçin Normal Biçimler Sorunsuz ilişkiler oluşturabilmek için normal formlar tanımlanmıştır.Normal formların, çoğu işlevsel bağımlılıklara göre, bir kısmı ise diğer bütünlük kısıtlamalarına (örneğin anahtarlara göre) tanımlanmıştır.En çok kullanılanları:1NF, 2NF, 3NF ve BCNF
6.1. Birinci Normal Biçim (1NF) 1NF İlişki Tanımı: Değer alanları yalın ise ilişki Birinci Normal Biçimdedir. Dizi, Matris (bir başka ilişki) veya karmaşık bir değer (mahalle, cadde, sokak, kapı numarası, …değerlerinden oluşan adres gibi) olmamalıdır. Birinci Normal Biçimde değilse, N1NF (Non 1NF) ilişki denir.
Örnek: ÖĞRENCİ (ÖNO, ÖADI, DERS (DADI, NOTU))DERS niteliği tek değerli yalın bir nitelik olmadığı için N1NF dir. ÖĞRDERS (ÖNO, ÖADI, DADI, NOTU)Olursa 1NF olur.
Çizim 4.5 Normal Biçimde Olmayan (N1NF) Bir İlişkinin Normal Biçime(1NF) Dönüştürülmesi DERSÖNO ÖADI DADI NOTU123 ALİ MAT. 87FİZ. 69KİM. 93207 KAYA KİM. 64186 NUR FİZ. 75MAT. 45316 AYŞE BİO. 59KİM. 87MAT. 60FİZ. 77İNG. 98ÖNO ÖADI DADI NOTU123 ALİ MAT. 87123 ALİ FİZ. 69123 ALİ KİM. 93207 KAYA KİM. 64186 NUR FİZ. 75186 NUR MAT. 45316 AYŞE BİO. 59316 AYŞE KİM. 87316 AYŞE MAT 60316 AYŞE FİZ. 77316 AYŞE İNG 98
6.2. İkinci Normal Biçim (2NF) Asal ve Asal Olmayan Nitelik Tanımları: 2NF için asal ve asal olmayan nitelik tanımı gerekir.Nitelik bir ilişki anahtarlarında varsa asal yoksa asal olmayan nitelik denir.2NF İlişki Tanımı: Bir ilişki (1NF) ve asal olmayan niteliklerden hiçbiri anahtara kısmi işlevsel bağımlı değilse 2NF’dir.2NF, asal olmayan tüm niteliklerin tüm anahtarlara tam işlevsel bağımlı olmasını ister.Asal olmayan nitelik herhangi bir anahtara kısmi işlevsel bağımlı olmasına izin vermez.
Örnek:SATICI (ÜKODU, FNO, FADI, FADRESİ, SFİYATI)1NF: Nitelikler tek değerli yalınİlişkinin tek anahtarı ÜKODU, FNO çiftidir.Yani, ÜKODU ve FNO : Asal nitelikler; FADI, FADRESİ ve SFİYATI : Asal olmayan niteliklerAsal olmayan FADI ve FADRESİ nitelikleri anahtarlara kısmi işlevsel bağımlı olduğundan 2NF değildir.
6.3. Üçüncü Normal Biçim (3NF) 3NF İlişki Tanımı: 2NF ve asal olmayan hiçbir nitelik hiçbir anahtara geçişli bağımlı değilse 3NF’dir. 2NF asal olmayan niteliklerin anahtarlara tam işlevsel bağımlı olması koşulunu getiriyordu.3NF, ek olarak asal olmayan niteliklerin anahtarlara geçişli bağımlı olmama koşulunu getirir.Buna göre eğer bir İlişkideki asal olmayan niteliklerin tümü, anahtarlara tam işlevsel bağımlı ise ve asal olmayan nitelikler birbirinden bağımsız ise (hiçbiri hiçbir anahtara geçişli bağımlı değilse) bu ilişki 3. Normal Biçimdedir.
Örnek:TAŞIT (PLAKANO, MARKA, MODEL, YIL, AĞIRLIK, RENK)1NF: Tüm nitelikler tek değerli yalın.2NF: İlişkinin tek anahtarı PLAKANO' dur.PLAKANO dışındaki 5 nitelik asal nitelik değildir.Asal olmayan bu niteliklerin hepsi anahtara (PLAKANO) tam işlevsel bağımlıdır. Zaten tek nitelikten oluşan bir anahtara niteliklerin kısmi işlevsel bağımlı olması söz konusu olamaz.N3NF: Ancak asal olmayan nitelikler birbirinden bağımsız değildir.Bu nitelikler arasında MARKA, MODEL AĞIRLIK işlevsel bağımlılığı da vardır.3NF değildir.
6.4. Boyce Codd Normal Biçimi (BCNF) BCNF İlişki Tanımı: 1NF ve tüm belirleyenler ilişkinin anahtarı BCNF’ir.Yani, K anahtar ise, BCNF’de tüm işlevsel bağımlılıklar K X biçimindedir.Önemli her işlevsel bağımlılığın sol tarafında yer alan her nitelik ya da nitelik grubunun ilişkideki tüm nitelikleri belirlemesi, dolayısıyla ilişkinin anahtarı olması gerekir.
3NF asal olmayan niteliklerin birbirinden bağımsız olmasını ve anahtara tam işlevsel bağımlı olmasını zorlar.3NF asal niteliklere zorlama getirmez.3NF bir ilişkide asal nitelikler birbirinden bağımsız olmayabilir ve anahtarlara kısmi bağımlı olabilir.Bu serbestlik birden çok anahtarı bulunan ve anahtarlarından en az ikisi birden çok nitelikten oluşan ilişkilerde sorunlar oluşmasına yol açabilir.
Örnek:R(A, B, C, D, E) F={A C, B D , D AE, CE B} İlişkinin 4 anahtarı(ya da anahtar adayı) vardır: B, D, AE ve CE Bu durumda ilişkinin tüm nitelikleri asal niteliklerdir.İlişkide asal olmayan hiçbir nitelik bulunmadığından otomatik olarak 3NF'dir. Ancak bu ilişkide A C işlevsel bağımlılığı vardır. A bir belirleyen olmasına karşın anahtar değildir. Dolayısıyla BCNF değildir.
Örnek 4.13.ÖĞRDERS (ÖĞRNO, DKODU, DADI, NOTU)DKODU DADI DADI DKODU DKODU, ÖĞRNO NOTUDADI, ÖĞRNO NOTUDKODUÖGRNODADINOTU
İlişkinin anahtarları DKODU, ÖĞRNO ve DADI, ÖĞRNO’ dur. İlişkinin asal olmayan tek niteliği (NOTU) anahtarlara tam işlevsel bağımlıdır. Geçişli bağımlı değildir (zaten asal olmayan tek nitelik bulunduğuna göre, geçişli bağımlılık söz konusu olamaz).İlişki 3NF bir ilişkidir. Ancak anahtar olmayan DKODU ve DADI birer belirleyen olduğu için ilişki BCNF değildir.
Örnek:KURS (ÖĞRNO, DKODU, ÖĞRETMEN, NOTU) ÖĞRETMEN DKODUÖĞRNO,DKODUNOTUHer öğretmen yalnız bir ders verir.Her dersin şubeler halinde birçok öğretmen tarafından verilir.Şubelerin ayırımının sorumlu öğretmen ile yapılır.Bir öğrenci bir dersi yalnız bir öğretmenden alır.ÖĞRNODKODUÖĞRETMENNOTU
İlişkinin tek anahtarı ÖĞRNO, ÖĞRETMEN ikilisidir. İlişkide asal olmayan DKODU niteliği anahtara kısmi işlevsel bağımlı olduğu için İlişkinin biçimi 1NF'dir. Dolayısıyla ilişki BCNF değildir. İlişkinin BCNF bir ilişki olmadığı anahtar olmayan ÖĞRETMEN ve ÖĞRNO ile DKODU’nun birer belirleyen olmasından da anlaşılabilir.
7. İlişkilerin Ayrıştırılması R ilişki şeması ve F işlevsel bağımlılık kümesi ise;Aşağıdaki koşullan sağlayan {R1, R2, R3, ... , Rn} ilişki kümesi R' nin bir ayrıştırmasıdır.K1. R‘ deki niteliklerin her biri en az bir Ri ' de bulunmalıdır. R = R1 ∪ R 2 ∪ R3 ∪ … RnK2. Ayrıştırma yitimsiz-birleştirme ayrıştırması (lossless-join decomposition) olmalıdır. Yani, her r ilişkisinin Ri’lere göre izdüşümlerinin doğal birleştirmesi r'ye eşit olmalıdır.r= p R1 (r) p R2 (r) p R3 (r) ….. p Rn (r)K3. Ayrıştırma F' deki işlevsel bağımlılıkları korumalıdır.
K1 gereksizdir. Geçerli bir ayrıştırma için:1. Yitimsiz-birleştirme ayrıştırması olması,2. İşlevsel bağımlılıktan koruması, gerekli ve yeterlidir.
7.1. Yitimsiz-Birleştirme Ayrıştırması Bir ilişkiyi belirli sayıda BCNF (ya da 3NF) ilişkiye ayrıştırarak aykırılıklara yol açmayan, oluşturulması ve bakımı kolay bir şema elde edebilir.Bu işleme normalleştirme (normalization) denir.Ancak ayrıştırma yitimsiz olmalıdır.Ayrıştırmanın yitimsiz olup olmadığı test edilmelidir.
Örnek:R (A, B, C) F = { A B , C B} R1 (A, B) ve R2 (B, C) ilişkilerine ayrıştırılırsa;Şekilde, F'deki işlevsel bağımlılıkları sağlayan bir örneği ( r ) verilmiştir.AB ve BC niteliklerine göre izdüşümleri: r1 ve r2 r3 , r1 ve r2 doğal birleştirilmesi ile elde edilir.r ve r3 eşit değildir. Ayrıştırma yitimsiz değildir. Olumlu bir örnek, ayrıştırmanın yitimsiz olduğunu göstermez.
A B C A B B C A B C a1 b1 c1 a1 b1 b1 c1 a1 b1 c1 a2 b2 c3 a2 b2 b2 c3 a1 b1 c2 a3 b1 c2 a3 b1 b1 c2 a2 b2 c3 a4 b2 c4 a4 b2 b2 c4 a2 b2 c4 a)r b)r1 =∏AB c) r2 =∏BC (r) a3 b1 c1 a3 b1 c2 a4 b2 c3 a4 b2 c4 d)r3= r1 r3Ayrıştırmanın Yitimsizliğinin İncelenmesi
İkili Bir Ayrıştırma İçin Yitimsizlik KoşuluTanım: Bir R, {R1, R2} ikili ayrıştırması için aşağıdaki koşullar sağlanıyorsa yitimsizdir.K1: R1 ve R2' de ortak nitelik ya da nitelikler bulunmalıdır.(Eğer R(X,Y,Z) ise R1 (X,Y) ve R2(X,Z)olmalıdır).K2 : Ortak nitelik ya nitelikler (X), R1 ve R2'den en az birinin anahtarı olmalıdır. ( X R1 ya da X R2 ’den en az biri F+ da bulunmalıdır). Yani,(R1 ∩ R2) R1 ve ( R1∩ R2) R2 en az biri F+ da olmalıdır.
Örnek:R (A, B, C) F = { A B , C B} R1 (A, B) ve R2 (B, C) Ayrıştırmasında, ortak nitelik B, R1 veya R2 ’nin anahtarı değildir. B A veya B C, F+ ’da yoktur. Ayrıştırma yitimsiz-birleştirme ayrıştırması değildir. Örnek:R (A, B, C, D, E)F: A BC D B E A CD E R1 (A, B, C) ve R2 (A, D, E) ilişkilerine ayrıştırılıyor. Bu ayrıştırma yitimsiz midir? R1 ve R2 ilişkilerindeki ortak nitelik A' dır. A, R1 ilişkisinin anahtarı olduğu için bu ayrıştırma yitimsizdir.AE C DB
Ayrıştırmaların Yitimsizlik SınamasıÇoklu ayrıştırma için, Yitimsiz Ayrıştırma AlgoritmasıR (Aı, A2, A3 ,..., An) bir ilişki şeması, F işlevsel bağımlılık kümesi R‘nin {R1 , R2 , R3 , ... , Rk} ayrıştırmasının yitimsizliği şu algoritma ile bulunabilir.1. Ayrıştırmadaki her Ri ilişkisi için bir satırı; her Aj niteliği için de bir kolonu bulunan n satır, k kolonlu bir çizelge oluştur. Her satır başlığına bir ilişkinin (Ri) adını, her kolon başlığına da bir niteliğin (Aj) adını yaz. Eğer ilişki/nitelik adları sıradan dizinli (1'den n'e ; 1'den k'ya) adlar değilse, satırlara/kolonlara 1'den başlayarak sıra numarası ver.2. Çizelgenin i. Satır j. Kolonundaki elemanına: Eğer Ri ilişkisinde Aj niteliği varsa : aj yaz.Eğer Ri ilişkisinde Aj niteliği yoksa : bij yaz.3. F ‘deki her (f: X Y) işlevsel bağımlılığı için:Eğer 2 ya da daha çok satırda, X'i oluşturan tüm kolonlardaki değerleri aynı ise: bu satırlarda Y'yi oluşturan tüm kolonlardaki değerleri eşitle (eğer eşitlenecek değerlerden enaz biri aj ise hepsini aj yap; hiçbiri aj değil hepsi b'lerden oluşuyorsa, aralarından rastgele birini seç ve diğerlerini buna eşitle).4. Çizelgede değişiklik olduğu sürece, satırlardan biri tüm a'lardan oluşuncaya kadar 3. adımı tekrarla.5. Sonuçta eğer satırlardan biri tüm a'lardan (a1 , a2 , a3 , ... , ak) oluşuyorsa ayrıştırma yitimsizdir; değilse ayrıştırma yitimsiz değildir.
Örnek:R (A, B, C, D, E)F ={ A BC, D B, E A, CD E}Ayrıştırma yitimsiz midir?R1 (A, B, C) , R2(A,E), R3 (C, D, E)Eğer Ri ilişkisinde Aj niteliği varsa : aj yaz.Eğer Ri ilişkisinde Aj niteliği yoksa : bij yaz. 1 2 3 4 5 A B C D E R1 R2 R3 a1 a2 a3 b14 b15 a1 b22 b23 b24 a5 b31 b32 a3 a4 a5
A BC ise, R1 ve R2 satırlarının A kolonu eşit olduğundan, bu satırların B ve C kolonundaki değerler de eşitlenir (b22 yerine a2 , b23 yerine de a3 yazılır)E A kullanılarak, R2 ve R3 satırlarının E kolonundaki değerler eşit olduğu İçin, bu satırların A kolonundaki değerler de eşitlenir (b31 yerine a1 yazılır).A BC kullanılarak, R1 ve R3 satırlarının A kolonundaki değerler eşit olduğu için, bu satırların B kolonundaki değerler de eşitlenir (b32yerine a2 yazılır; C kolonundaki değerler zaten eşit olduğu için herhangi bir değişiklik yapılmaz.). Sonuçta R3 satırı tüm a'lardan oluştuğu için ayrıştırma yitimsizdir 1 2 3 4 5 A B C D E R1 R2 R3 a1 a2 a3 b14 b15 a1 b22 a2 b23 a3 b24 a5 b31 a1 b32 a2 a3 a4 a5
7.2. Ayrıştırmanın İşlevsel Bağımlılıkları KorumasıR ilişkisinin {R1, R2, R3,…, Rk} ayrıştırmasının işlevsel bağımlılıkları koruma testi şöyledir:İşlevsel Bağımlılıkların Korunması Algoritması1.F+ nın her Ri üzerindeki izdüşümü bulunur.Fi = pRi (F +) = { f (X Y) : f ∈ F + ve X, Y ⊆ R}2. F lerin küme birleşimi bulunur. G=F1 ∪ F2 ∪ … ∪ Fk3. Sonuçta eğer G F’ e eşdeğer ise (F’ deki her işlevse bağımlılık G ‘ de varsa, ya da G’ dekilerden türetilebiliyorsa, başka bir deyişle F + = G + ise) ayrıştırma işlevsel bağımlılıkları korumaktadır. Değilse ayrıştırma da bazı işlevsel bağımlılıklar yitirilmiştir. Yitirilen işlevsel bağımlılıklar F’ de bulunup G’ de bulunmayan ve de G’ de ki işlevsel bağımlılıklardan türetilemeyenlerdir.
R (A, B, C, D, E)F ={ A BC, D B, E A, CD E}Ayrıştırma yitimsiz midir?R1 (A, B, C) , R2(A,E), R3 (C, D, E)İşlevsel bağımlılıkları koruyor mu?Önce F+bulunur. F+ : A BC D B E ABC CD AE
Şimdi de F+ nın Ri'lere göre izdüşümleri ve küme birleşimini bulunur:F1={A BC }F2={E A}F3={CD E}G= F1 ∪ F2 ∪ F3 = {A BC, E A, CD E}F’ deki işlevsel bağımlılıklardan biri (D B) G’ de yoktur.G’ deki işlevsel bağımlılıklardan türetilemez.Bu nedenle, yitimsiz olan bu ayrıştırma işlevsel bağımlılıkları korumamaktadır. Geçerli bir ayrıştırma değildir.
Örnek 4: R (A,B,C,D) F ={ A B, B C, C D, D A}R, {R1(A,B), R2(B,C), R 3(C,D)} ayrıştırması yitimsiz bir ayrıştırmadır. İşlevsel bağımlılıkları koruyor mu?F+ :A BCDB CDAC DABD ABCA B C D
F+ : A BCDB CDAC DABD ABCF1={A B, BA}F2={B C, C B}F3={C D, D C}G : A BB ACC BDD CF’ deki işlevsel bağımlılıklardan ilk üçü G’ de vardır. Sonuncu işlevsel bağımlılık ise (D A) G’ de yoktur. İlk bakışta ayrıştırmanın bu işlevsel bağımlılığı koruyamadığı sanılabilir.Ancak türetme kuralları ile G’ deki işlevsel bağımlılıklardan bu işlevsel bağımlılık türetilebilir ( D C A D A). Bu nedenle de bu ayrıştırma işlevsel bağımlılıkları korumaktadır.
7.3. BCNF Ayrıştırma AlgoritmasıBCNF Ayrıştırma Algoritması1.R1 = R , k=1 T={R1}2.F+ yı hesapla 3. T’ deki ilişkilerden BCNF olmayan her Ri için:F+’ daki işlevsel bağımlılıklardan, Ri de tanımlı önemli her X Y işlevsel bağımlılığı için eğer X Ri‘nin anahtarı değilse (X Ri F+‘ da yoksa) Ri’ den Y’ deki nitelikleri çıkar, k’ yı 1 arttır, T’ ye Rk (X,Y) ilişki şemasını ekle.4. T ‘deki tüm ilişkiler BCNF oluncaya dek 3. adımı tekrarla. BCNF arıştırma:Yitimsizdir. İşlevsel bağımlılıkları koruma güvencesi yoktur.
Örnek: R (A, B, C, D, E) F: A CDE E B CD ER ‘nin tek anahtarı A olup BCNF değildir. F+ : A BCDE E B CD BEBCNF ayrıştırma: R1 (A, C, D)R2 (C, D, E)R3 (E, B)Bu ayrıştırma yitimsizdir. Ayrıca ayrıştırma İşlevsel bağımlılıkları da korumaktadırAEDCB
Örnek: R (A,B,C) ve F ={AB C, C A } Anahtarlar AB ve BC,Tüm nitelikler asal nitelik olduğundan ilişki 3NF, Ancak anahtar olmayan bir belirleyen olduğu için ilişkinin BCNF değil.F+ yı bulunarak BCNF ayrıştırma yapılırsa; F+ : AB C C ABCNF ayrıştırma:R1 (B,C)R2 (C,A)Bu ayrıştırma yitimsizdir. Ayrıştırmada AB C bağımlılığı korunamamıştır.
7.4. 3NF Ayrıştırma Algoritmasıİilişki formu 1NF ya da 2NF ise olan, R‘nin 3NF ilişkilere ayrıştırılması; 3NF ayrıştırma algoritması1. k=1, T={ }2. Fc yi hesapla3.Fc deki her X Y işlevsel bağımlılığı için: eğer T’ deki Ri ilişki şemalarından hiçbiri XY niteliklerini içermiyorsa: k’yı 1 arttır, T’ ye Rk (X, Y) ilişki şemasını ekle.
3NF yitimsiz ve işlevsel bağımlılıkları koruyan ayrıştırma üretir.BCNF ayrıştırma algoritması ile her zaman işlevsel bağımlılıkları koruyan bir ayrıştırma bulmak mümkün değildir.3NF ayrıştırma algoritması ile her zaman işlevsel bağımlılıkları koruyan bir ayrıştırma bulur.Bir ilişki için işlevsel bağımlılıkları koruyan bir BCNF ayrıştırma bulunmaya çalışılır. Eğer BCNF bir ayrıştırma olmuyorsa bir 3NF ayrıştırma bulunur.
Farklı BCNF ayrıştırmaları bulunabilir.BCNF ayrıştırmaları yitimsizdir.Ayrıştırmaların bazıları veya tamamı işlevsel bağımlılıkları korumayabilir. 3NF ayrıştırma algoritması ile her Fc için tek bir ayrıştırma elde edilir. 3NF ayrıştırma yitimsiz ve işlevsel bağımlılıkları korur.Birden çok 3NF ayrıştırma elde edilebilmesi için F' nin birden çok kanonik örtüsünün (Fc) bulunması gereklidir.
Örnek: R (A,B,C,D,E,G)F : AB CD AC E DE GTek anahtarının AB,Geçişli bağımlılıklar nedeniyle 2NF,F zaten kanonik biçimdedir (Fc=F).3NF Ayrıştırma R1 (A,B,C,D) R2 (A,C,E) R3(D,E,G)DA CB GE
R için BCNF ayrıştırması:F+ yı hesaplanıp ayyıp algoritmayı uyguladığımızda, aşağıdaki 2 ayrıştırmadan birini bulabiliriz.F+ :AB CDEGAC EDE GACD G
BCNF Ayrıştırmalar:1.Ayrıştırma 2.AyrıştırmaR1 (A,B,C,D) R1 (A,B,C,D)R2 (A,C,E,) R2 (A,C,E,)R3 (D,E,G) R3 (A,B,G)Ayrıştırma 1, işlevsel bağımlılıkları korumaktadır. Ayrıştırma 2, DE G işlevsel bağımlılığı yitirilmektedir.
7.5 BCNF ve 3NF Normal Biçimlerinin Karşılaştırılması1. BCNF, 3NF’ye göre daha sorunsuz, aykırılıklara yol açmayan ve bakımı daha kolay ilişkilerdir. Ancak BCNF, yitimsizliğini koruyabilmekte işlevsel bağımlılıkların koruyamayabilir. İşlevsel bağımlılıkların korunmaması ise sakıncalıdır.BCNF işlevsel bağımlılıkları koruyorsa öncelikle tercih edilmelidir. Elde edilemiyorsa, 3NF daha uygun olabilir.
2. 3NF, hem yitimsiz olması hem de işlevsel bağımlılıkları koruması bir üstünlüktür. Ancak BCNF koşulunu sağlamayan 3NF ilişkilerin kimi sakıncaları vardır. Bu sakıncaların bir bölümü veri tekrarı ve günleme aykırılıklarıdır. Diğer bir bölümü ise “null” değeri kullanılarak aşılabilecek ekleme silme aykırılıklardır. Öncelik BCNF’tir. Elde edilemiyorsa aşağıdaki seçeneklerden kullanılmalıdır.A. İşlevsel bağımlılıkları korumayan(birkaç işlevsel bağımlılığı yitiren) BCNF ayrıştırma ile elde edilen BCNF ilişkilerdir.B. İşlevsel bağımlılıkları koruyan 2NF ayrıştırma ile elde edilen 3NF ilişkiler.
A seçeneğinde yitirilen işlevsel bağımlılıkların denetimi yapılamayacaktır. Mutlaka yapılmak istenirse de bu denetimlerin yapılması çok güç ve çok pahalı olacaktır. B seçeneğinde ise günleme, ekleme ve silme aykırılıkları oluşabilir. Genel değerlendirmede, B seçeneğinde “null” değerler kullanılarak ekleme ve silme aykırılıklarının aşılabileceği günleme aykırılıklarının oluşmaması içinde gerekli önlemlerin alınabileceği; böylece B seçeneğinin sakıncalarının azaltılabileceği ve A seçeneğine tercih edilebileceği söylenebilir.