VERĐTABANI YÖNETĐM SĐSTEMLERĐ Öğr.Gör. Sedat Telçeken ANADOLU ÜNĐVERSĐTESĐ FEN FAKÜLTESĐ MATEMATĐK BÖLÜMÜ 2005 2006 Bahar Dönemi Varlık-Bağıntı modeli için en önemli derece bağıntıların 1NF olmasıdır. Geri kalan tüm NF seçime kalmıştır ancak güncelleme bozukluklarından tamamen kaçınmak için tablolar en az 3NF olmalıdır. 1 4 Normalizasyon, birincil anahtarları ve işlevsel bağımlılıkları kullanarak bağıntıları analiz etme tekniğidir. Bu teknik, bir takım kuralların dizisini içerir ve kurallar uygulanarak bir VT herhangi bir derecede normal hale getirilir. Normalize Edilmemiş Form(NF): Bir tablo bir yada çok tekrar eden gruba sahiptir. Tekrar eden grup, tabloda anahtar özniteliğin bir değerine karşılık birkaç farklı değeri bir arada alan özniteliklerdir. 2 5 Her bir normal biçimin belli bir takım özellikleri vardır. Derece yükseldikçe bağıntılar biçim açısından daha kısıtlı ve güncelleme bozukluklarından zarar görmeyecek duruma gelir. MüşteriNo madı EvNo EvAdres KiraBaşlangıç KiraBitiş Kira SahipNo sadı CR76 Ali Koç PG4 PK55 01.02.2000 31.08.2001 350 CO40 Ayşe Yaşar PG16 PK36 01.09.2001 01.09.2002 450 CO93 Ahmet Güner CR56 Fatoş Serez PG4 PK55 01.09.1999 10.01.2000 350 CO40 Ayşe Yaşar PG36 PK60 10.10.2000 01.12.2001 375 CO93 Ahmet Güner PG16 PK36 01.11.2002 10.08.2003 450 CO93 Ahmet Güner 3 6 1
1. Normal Form (1NF): Bir tabloda her satır ve her sütunun kesişiminde bir ve yalnız bir değer vardır. Normalize Edilmemiş Formdan 1.NF e ulaşmak için iki farklı yol izlenebilir: 2. Tekrarlayan grup ve anahtar öznitelik alınarak ayrı bir tablo oluşturulur. Yeni tablo için birincil anahtar tanımlanır. 7 10 Normalize Edilmemiş Formdan 1.NF e ulaşmak için iki farklı yol izlenebilir: 1. Tekrarlayan gruplar için tekrarlamayan öznitelikler tekrarlanarak ayrı varlıklar oluşturulur. Oluşan tekrarlarla her satır ve her sütunda bir değer bulunacak yani tablo 1.NF e ulaşacaktır. Müşteri(MüşteriNo,mAdı) KiraÖzellikleri( MüşteriNo, EvNo, EvAdres, KiraBaşlangıç, KiraBitiş, Kira, SahipNo, sadı) 8 11 Kira - Müşteri MüşteriNo madı EvNo EvAdres KiraBaşlangıç KiraBitiş Kira SahipNo sadı CR76 Ali Koç PG4 PK55 01.02.2000 31.08.2001 350 CO40 Ayşe Yaşar CR76 Ali Koç PG16 PK36 01.09.2001 01.09.2002 450 CO93 Ahmet Güner CR56 Fatoş Serez PG4 PK55 01.09.1999 10.01.2000 350 CO40 Ayşe Yaşar CR56 Fatoş Serez PG36 PK60 10.10.2000 01.12.2001 375 CO93 Ahmet Güner CR56 Fatoş Serez PG16 PK36 01.11.2002 10.08.2003 450 CO93 Ahmet Güner MüşteriNo madı CR76 Ali Koç CR56 Fatoş Serez MüşteriNo EvNo EvAdres KiraBaşlangıç KiraBitiş Kira SahipNo sadı CR76 PG4 PK55 01.02.2000 31.08.2001 350 CO40 Ayşe Yaşar CR76 PG16 PK36 01.09.2001 01.09.2002 450 CO93 Ahmet Güner CR56 PG4 PK55 01.09.1999 10.01.2000 350 CO40 Ayşe Yaşar CR56 PG36 PK60 10.10.2000 01.12.2001 375 CO93 Ahmet Güner CR56 PG16 PK36 01.11.2002 10.08.2003 450 CO93 Ahmet Güner 9 12 2
Bazen normalize edilmemiş tablo birden çok tekrarlayan gruba sahip olabilir. Bu durumda buradaki yaklaşım tekrar eden grup kalmayana kadar uygulanır! Kısmi Bağımlılık Eğer B, A ya tam işlevsel bağımlı ise A dan herhangi bir öznitelik çıkarıldığında B ile A arasında işlevsel bağımlılık kalmaz. A dan herhangi bir öznitelik çıkarıldığında B ile A arasında işlevsel bağımlılık devam ediyorsa B, A ya kısmi bağımlıdır diyoruz. 13 16 Bölüm/Görev GörevID Đsim Görev Ücret BölümNo BAdres Her iki yaklaşım da doğrudur ancak ikinci yaklaşım daha az tekrara izin veren tablolar elde edilmesini sağlar. SL21 SG37 SG14 Ali Koç Ahmet Kar Veli Sağlam Müdür Danışman 3000 1200 1800 B005 PK 22 SA9 Fatma Turan 900 B007 PK 16 SG5 Ayşe Bilen Müdür 2400 SL41 Sedat Duran 900 B005 PK 22 14 17 Tam Đşlevsel Bağımlılık Tam Đşlevsel Bağımlılık: GörevID, Adı BölümNo A, B bir R tablosunun öznitelikleri kümesi olsun. B, A ya işlevsel bağımlı ve A nın herhangi bir C özalt kümesi için B, C ye işlevsel bağımlı olmuyorsa B, A ya tam işlevsel bağımlıdır diyoruz. A B ve her C C B ise A için Bu işlevsel bağımlılık doğrudur ancak GörevID BölümNo Đşlevsel bağımlılığı da geçerli olduğu için ilk bağımlılık kısmidir. 15 18 3
MüşteriNo EvNo madı EvAdres KiraBaşlangıç KiraBitiş Kira SahipNo sadı Birincil Anahtar Kısmi Bağımlılık Müşteri(MüşteriNo,mAdı) Kira (MüşteriNo, EvNo, KiraBaşlangıç, KiraBitiş) Ev(EvNo, EvAdres, Kira, SahipNo, sadı) Aday Anahtar 19 22 2. Normal Form (2NF): Bir tablo 1NF ve birincil anahtar olmayan her öznitelik birincil anahtara tam işlevsel bağımlı ise 2NF dedir diyoruz. Kira Müşteri MüşteriNo EvNo KiraBaşlangıç KiraBitiş MüşteriNo madı CR76 PG4 01.02.2000 31.08.2001 CR76 PG16 01.09.2001 01.09.2002 CR76 Ali Koç CR56 PG4 01.09.1999 10.01.2000 CR56 Fatoş Serez CR56 PG36 10.10.2000 01.12.2001 Ev CR56 PG16 01.11.2002 10.08.2003 EvNo EvAdres Kira SahipNo sadı PG4 PK55 350 CO40 Ayşe Yaşar PG16 PK36 450 CO93 Ahmet Güner PG36 PK60 375 CO93 Ahmet Güner 20 23 1NF den 2NF e geçilebilmesi için tüm kısmi bağımlılıklar kaldırılmalıdır. Eğer tablo kısmi bağımlılıklar içeriyorsa, kısmi bağımlı öznitelikler, belirleyicileriyle alınıp yeni bir tablo oluşturulmalıdır. 2NF, birincil anahtarı birden çok özniteliğe sahip tablolara uygulanır. Birincil anahtarı tek özniteliğe sahip 1NF tablolar aynı zamanda 2NF dedir. 21 24 4
2NF tablolarda güncelleme bozuklukları daha azdır ancak yine de bazı güncelleme bozuklukları yaşanabilir. Bölüm/Görev GörevID SL21 SG37 SG14 SA9 Đsim Ali Koç Ahmet Kar Veli Sağlam Fatma Turan Görev Müdür Danışman Ücret 3000 1200 1800 900 BölümNo B005 B007 BAdres PK 22 PK 16 SG5 Ayşe Bilen Müdür 2400 SL41 Sedat Duran 900 B005 PK 22 25 28 (Geçişken Bağımlılık) Bölüm/Görev GörevID Đsim Görev Ücret BölümNo BAdres A, B ve C, R tablosunun öznitelikleri olsun. B, A ya ve C de B ye işlevsel bağımlı ise C, A ya (B yoluyla) geçişken bağımlıdır denir. Geçişken Bağımlılık 26 29 MüşteriNo EvNo madı EvAdres KiraBaşlangıç KiraBitiş Kira SahipNo sadı A Geçişken bağımlılık bir işlevsel bağımlılıktır Geçişken Bağımlı C Geçişken Bağımlılık B 27 30 5
3. Normal Form (3NF) 2NF bir tabloda birincil anahtar özelliğine sahip olmayan öznitelikler birincil anahtara geçişken bağımlı değilse tablo 3. normal formdadır denir. Müşteri(MüşteriNo,mAdı) Kira (MüşteriNo, EvNo, KiraBaşlangıç, KiraBitiş) Ev2(EvNo, EvAdres, Kira, SahipNo) EvSahibi(SahipNo, sadı) 31 34 Ev 2NF bir tablo, sahip olduğu geçişken bağımlılıklar çıkartıldığında 3NF ulaşır. EvNo EvAdres Kira SahipNo sadı PG4 PK55 350 CO40 Ayşe Yaşar PG16 PK36 450 CO93 Ahmet Güner PG36 PK60 375 CO93 Ahmet Güner Geçişken Bağımlılık 32 35 Eğer tabloda geçişken bağımlılıklar bulunuyorsa bağımlılığı tablodan alıp belirleyeninin bir kopyası ile birlikte yeni bir tablo oluşturulur. Ev2 EvNo EvAdres Kira SahipNo PG4 PK55 350 CO40 PG16 PK36 450 CO93 PG36 PK60 375 CO93 Ev Sahibi SahipNo sadı CO40 Ayşe Yaşar CO93 Ahmet Güner 33 36 6
Kira - Müşteri Ev 1NF 2NF 2. Normal Form (2NF) ve 3. Normal Form (3NF) Daha genel olarak şu şekilde tanımlanabilir: Müşteri Kira Ev2 Ev Sahibi 3NF 37 40 Kira Müşteri MüşteriNo EvNo KiraBaşlangıç KiraBitiş MüşteriNo madı CR76 PG4 01.02.2000 31.08.2001 CR76 PG16 01.09.2001 01.09.2002 CR76 Ali Koç CR56 PG4 01.09.1999 10.01.2000 CR56 Fatoş Serez CR56 PG36 10.10.2000 01.12.2001 CR56 PG16 01.11.2002 10.08.2003 Ev2 EvNo EvAdres Kira SahipNo Ev Sahibi PG4 PK55 350 CO40 SahipNo sadı PG16 PK36 450 CO93 CO40 Ayşe Yaşar PG36 PK60 375 CO93 CO93 Ahmet Güner 2. Normal Biçim (2NF): Bir tablo 1NF ve birincil anahtar olmayan her öznitelik herhangi bir aday anahtara tam işlevsel bağımlı ise 2NF dedir diyoruz. 38 41 Müşteri(MüşteriNo,mAdı) Kira (MüşteriNo, EvNo, KiraBaşlangıç, KiraBitiş) Ev2(EvNo, EvAdres, Kira, SahipNo) EvSahibi(SahipNo, sadı) 3. Normal Form (3NF) 2NF bir tabloda birincil anahtar özelliğine sahip olmayan öznitelikler herhangi bir aday anahtara geçişken bağımlı değilse tablo 3. normal formdadır denir. 39 42 7
BCNF Bu genel tanımla, normalizasyon daha karışık olacaktır ancak genel tanımlar ek kısıtlar sağlar ve bu sayede gözden kaçırılabilecek tekrarlar elenmiş olur. Bu durumda bir tablonun BCNF olup olmadığının anlaşılması için tablonun tüm belirleyenleri bulunmalı, her birinin aday anahtar özelliği taşıyıp taşımadığı kontrol edilmelidir. 43 46 Ayrıca, pek çok durumda birinci yada ikinci tanımı kullanmak aynı sonuca ulaşılmasını sağlayacaktır. Bu nedenle hangi tanımın kullanılacağı konusundaki tercih tasarımcıya kalmıştır. 44 BCNB 3NF ile BCNF arasındaki fark; Eğer B bir birincil anahtar özniteliği ve A aday anahtar değilse bile A B işlevsel bağımlılığı 3NF bir tabloda bulunabilir ancak BCNF tabloda bulunamaz. A aday anahtar olmalıdır. 47 Boyce Codd Normal Form (BCNF) Bir tablonun BCNF olması için gerek ve yeter koşul her belirleyenin aday anahtar olmasıdır. Kira Müşteri MüşteriNo EvNo KiraBaşlangıç KiraBitiş MüşteriNo madı CR76 PG4 01.02.2000 31.08.2001 CR76 PG16 01.09.2001 01.09.2002 CR76 Ali Koç CR56 PG4 01.09.1999 10.01.2000 CR56 Fatoş Serez CR56 PG36 10.10.2000 01.12.2001 CR56 PG16 01.11.2002 10.08.2003 Ev2 EvNo EvAdres Kira SahipNo Ev Sahibi PG4 PK55 350 CO40 SahipNo sadı PG16 PK36 450 CO93 CO40 Ayşe Yaşar PG36 PK60 375 CO93 CO93 Ahmet Güner 45 48 8
KĐRA Müşteri(MüşteriNo,mAdı) Kira (MüşteriNo, EvNo, KiraBaşlangıç, KiraBitiş) MüşteriNo EvNo madı EvAdres KiraBaşlangıç KiraBitiş Kira SahipNo sadı Birincil Anahtar Ev2(EvNo, EvAdres, Kira, SahipNo) EvSahibi(SahipNo, sadı) Aday Anahtar 49 52 Acaba Kira Tablosu BCNF mi? Burada Müşteri, Ev2 ve Ev Sahibi tablolarının tüm belirleyenleri aday anahtardır. Bu nedenle üç tablo da zaten BCNF dir. Bunun için tüm belirleyenlerin aday anahtar olup olmadığını bulmalıyız. MüşteriNo,EvNo MüşteriNo, KiraBaşlangıç KiraBaşlangıç, EvNo KiraBaşlangıç, KiraBitiş EvNo, KiraBitiş KiraBitiş, MüşteriNo 50 53 Yalnız Kira tablosu üç aday anahtar içermektedir. Burada her üç belirleyen de aday anahtardır, dolayısıyla bu tablo da BCNF dir. 51 54 9
BCNF BCNF çok ender olarak, özel koşullar altında bozulabilir. Bu özel koşullar: Tablo, iki yada daha çok bileşik (birden çok özniteliğe sahip) aday anahtara sahipse; Aday anahtarların en az bir öznitelikleri ortak ise; 55 10