BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1 Öğr.Gör. Emre KAÇMAZ ANADOLU ÜNİVERSİTESİ
BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1 Bir emlak şirketinde bölüm elemanları müşterilerle görüşme yapıyor olsun. Bu görüşmelerle ilgili veriler Müşteri Görüşmeleri tablosundaki gibi olsun.
BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1 Müşteri Görüşmeleri
BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1 Bir bölüm elemanı, bir gün içinde her müşteriyle önceden belirlenmiş bir odada görüşecektir. Ancak aynı gün farklı saatte oda bir başka bölüm elemanı tarafından kullanılabilir. Bir müşteriyle bir gün içinde yalnız bir görüşme yapılır. Ancak bir başka tarihte bir başka görüşme de düzenlenebilir.
BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1 Şimdi Müşteri Görüşmeleri ( MüşteriNo, GörüşmeTarihi, GörüşmeSaati, BölümNo, OdaNo) tablosunun işlevsel bağımlılıklarını ve aday anahtarlarını bulalım.
BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1 MüşteriNo, GörüşmeTarihi GörüşmeSaati, BölümNo, OdaNo BölümNo, GörüşmeTarihi, GörüşmeSaati, MüşteriNo, OdaNo OdaNo, GörüşmeTarihi, GörüşmeSaati, MüşteriNo, GörüşmeSaati BölümNo, GörüşmeTarihi OdaNo Birincil An. Aday An. Aday An.
BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1 Bu duruma göre Müşteri Görüşmeleri tablosu 3NF’dir. Çünkü işlevsel bağımlılıklarda herhangi bir kısmi bağımlılık yada geçişken bağımlılık bulunmamaktadır.
BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1 Ancak tablo BCNF değildir. Çünkü BölümNo, GörüşmeTarihi belirleyeni aday anahtar değildir. Bu durumda yine güncelleme bozukluklarıyla karşılaşılabilir.
BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1 Müşteri Görüşmeleri SG5 nolu çalışanın 13 Mayıs’ta yapacağı görüşmenin oda numarası değişirse iki değer değiştirilmelidir. Aksi takdirde tutarsızlık oluşur.
BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1 Görüşme ( MüşteriNo, GörüşmeTarihi, GörüşmeSaati, BölümNo) Oda (BölümNo, GörüşmeTarihi, OdaNo)
BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1 Görüşme Oda
BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1 Bu durumda tablolar BCNB’dedir. Ancak artık BölümNo, GörüşmeTarihi, GörüşmeSaati, MüşteriNo, OdaNo işlevsel bağımlılığını kaybettik.
BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1 3NF yada BCNF seçeneklerinden hangisinin kullanılmasının daha iyi olduğu tasarımcıya kalmıştır. Eğer bölüm elemanı günde bir görüşme yapıyorsa bu gereksiz veri tekrarı oluşturmaz. Bu nedenle BCNF gerekli değildir. Öte yandan bölüm elemanı gün içinde pek çok görüşme yapıyorsa BCNF kullanılmalıdır.
BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1 4.Normal Form BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1 Bazı durumlarda BCNF’daki bir ilişkide de sorunlar görülebilir. 1 öğrenci birden çok bölüme ve spor etkinliğine sahip olabilmektedir. Bu nedenle öznitelikler arasındaki bağıntı fonksiyonel değil, çok değerli bağımlılık sözkonusudur. Öğrenci_no Bölüm Spor 77 MATEMATİK KAYAK MUHASEBE TENIS 79 FELSEFE YUZME BCNF formundaki bir tablo
BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1 4NF’e geçiş BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1 Öğrenci_no Bölüm Spor 77 MATEMATİK KAYAK MUHASEBE TENIS 79 FELSEFE YUZME 4.NF Öğrenci_no Bölüm 77 MATEMATİK MUHASEBE 79 FELSEFE Öğrenci_no Spor 77 KAYAK TENIS 79 YÜZME
BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1 5.Normal Form Bir ilişikinin 2 ya da daha çok ilişkiye ayrılması durumunda; bilgi kaybı olmamalıdır. Genellikle bu koşul 4NF de sağlanır. Eğer bu 4NF de sağlanmazsa; 5.NF’a başvurulur. 5.NF; ilişki içerisindeki her birleşik bağıntının bu ilişkide aday anahtarlardan oluşturulması ile sağlanır.
BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1 Örnek ÖDÜNÇ(şube_adı, toplam_mevduat, şube_şehri, kredi_no, müşteri_adı, miktar) ŞUBE(şube_adı, toplam_mevduat, şube_şehri) KREDİ(şube_adı, kredi_no, müşteri_adı, miktar) KREDİ_MİKTAR(şube_adı, kredi_no, miktar) MÜŞTERİ_KREDİ(kredi_no, müşteri_adı) Böylece kayıpsız bir ayrıştırma işlemi oldu. Ortak öznitelik; kredi_no olup; Kredi_no -> miktar, şube_adı, müşteri_adı bağıntısı kurulmaktadır. KREDİ şeması, KREDİ1(kredi_no, şube_adı) KREDİ2(kredi_no, müşteri_adı) KREDİ3(kredi_no, miktar) Biçimine ayrılarak 5NF oluşmaktadır.
İLİŞKİSEL CEBİR (Relational Algebra) BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1 İLİŞKİSEL CEBİR (Relational Algebra) İlişkisel cebir, biçimsel sorgulama dilidir. İ.C. Yardımıyla, VT’nin nasıl sorgulanabileceği yorumlanır. Girdiler; bir ya da iki ilişki, Çıktılar; yeni ilişkiler... Bu sorgular biçimseldir, SQL den farklı olarak. (Herhangi bir yorumlayıcı veya derleyici yok) Seçim, Atma, Kartezyen Çarpım, Birleştirme, Kesişme, Fark, Doğal Birleştirme, Bölme işlemlerinden oluşur.
BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1 1-Seçim İşlemi Belirli bir ilişkiden bir kritere göre bazı kayıtları alma işlemidir. σseçim kriteri(TABLO) Seçim kriteri; =,≠, >,<, ≤, ≥ olabilir. σYazar_Adı=“Ömer Seyfettin”(Kitap) σYazar_Adı=“Ömer Seyfettin” Λ Fiyat < 150 (Kitap)
BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1 2-Atma İşlemi Belirli bir ilişkiden bazı sütunları atmak suretiyle yapılan seçme işlemidir. πSütun isimleri(Tablo) Yazar_Adı Kitap_Adı ISBN Fiyat Sayfa πYazar_Adı, Kitap_Adı(KİTAP) Yazar_Adı Kitap_Adı
BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1 3-Çarpma İşlemi Belirli bir ilişkiden mümkün olan tüm ikilileri oluşturma işlemidir. Tablo1 X Tablo2 A A 1 2 B C B C Kartezyen Çarpma 1 2
BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1 3-Çarpma İşlemi Kitap X Yayın_Evi örneğine bakalım. σYazar_Adı=“Ömer Seyfettin”(Kitap X Yayın_Evi) Örneğinde önce Kitap tablosunun varlıkları x Yayın_evi tablosunun varlıkları adedince varlık elde edilecek sonra, yazar adı Ömer seyfettin olanlardan ayrı bir tablo elde edilecektir.