Bu örneği anlayabilmek için bilinmesi gerekenler: 1. Kısmı bağımlılık
Transkript
Bu örneği anlayabilmek için bilinmesi gerekenler: 1. Kısmı bağımlılık
Bu örneği anlayabilmek için bilinmesi gerekenler: 1. 2. 3. 4. Kısmı bağımlılık Dolaylı Bağımlılık Bileşik Anahtar Aday Anahtar Normalizasyon Örnek Senaryo: Bir film arşivimiz var ve bu filmleri kiralıyoruz. Her film için başlık, yönetmen ve seri numarası vardır. Müşterilerin ismi, adresi ve üye numarası vardır. Her filmden yalnız bir kopya vardır. Aşağıdaki tablolar veriliyor. Altı çizgili olan alanlar birincil anahtarlardır. film(baslik,yonetmen,serino) musteri(uyeno ,isim,adres) kira(uyeno,serino,tarih) Bu tablolar üzerindeki fonksiyonel bağımlılıklar da şu şekilde verilmiştir: baslik->yonetmen,serino serino->baslik serino->yonetmen isim,adres -> uyeno uyeno -> isim,adres serino,tarih -> uyeno Hangi Normal formdadır? Tekrar eden bir sütun yoktur. Dolayısıyla 1NF’dir. ( Eğer bir tablo şu şekilde olsaydı NF1’e uygun olmazdı. film(baslik,yonetmen1,yonetmen2,serino) ) 2NF? Kira tablosunda birleşik anahtar vardır – (serino, tarih ) . Detaylı inceleyelim: uyeno sadece serino veya sadece tarih ile buluna bilir mi? Yani uyeno serino veya uyeno tarih midir? HAYIR. Dolayısıyla 2NF’dir. (Eğer kira tablosu aşağıdaki şekilde olsaydı kira(xxx,uyeno,serino,tarih) ve fonksiyonel bağımlılıkta olsaydı NF2 olmazdı. Tabloyu ikiye ayırmamız gerekecekti yenitablo(serino,xxx) ve kira(uyeno,serino,tarih) şeklinde.) serino --> xxx 3NF? Serino bilindiğinde yonetmen bilinebiliyor yani (serino->yonetmen ) dolayısıyla film tablosunda dolaylı bağımlılık vardır. 3NF değildir. 2NF ‘den 3NF’ye geçiş: Tabloları yeniden düzenleyelim: film(baslik,yonetmen,serino)tablosu ikiye bölünür: film(baslik,serino) serino_yonetmen(serino,yonetmen) Dolayısıyla son durum şu şekilde olur: film(baslik,serino) serino_yonetmen (serino,yonetmen) musteri(isim,adres,uyeno) kira(uyeno,serino,tarih) BCNF? Her fonksiyonel bağımlılık bir aday anahtar mıdır? film(baslik,serino) fonksiyonel bağımlılıklar: baslik->yonetmen,serino serino->baslik film tablosu BCNF’dir. aday anahtar aday anahtar serino_yonetmen (serino,yonetmen) fonksiyonel bağımlılıklar: serino->yonetmen aday anahtar serino_yonetmen tablosu BCNF’dir. musteri(isim,adres,uyeno) fonksiyonel bağımlılıklar: isim,adres -> uyeno aday anahtar uyeno -> isim,adres aday anahtar musteri tablosu BCNF’dir kira(uyeno,serino,tarih) fonksiyonel bağımlılıklar: serino,tarih -> uyeno aday anahtar kira tablosu BCNF’dir.
Benzer belgeler
Bu örneği anlayabilmek için bilinmesi gerekenler:
Normalizasyon Örnek
Senaryo: Bir film arşivimiz var ve bu filmleri kiralıyoruz. Her film için başlık,
yönetmen ve seri numarası vardır. Müşterilerin ismi, adresi ve üye
numarası vardır. Her filmden...