Fonksiyonel(İşlevsel) Bağımlılık z z z z z R’nin ilişkiyi(relation) ; A ve B’nin bir attribute yada attribute setini temsil ettiğini düşünelim. Eğer R ilişkisinde her bir A değeri , tam olarak bir B değerine işaret ediyorsa ; B, A ya fonksiyonel olarak bağımlıdır diyebiliriz A -> B (A fonksiyonel olarak B’yi tanımlar.) 1 Fonksiyonel Bağımlılık ID İSİM ŞEHİR 123 Ahmet Ankara 324 Derya Ankara 574 Derya İstanbul z Kişiler tablosu ile ilgili neler söyleyebiliriz? z “Eğer ID numarasını biliyorsam, ismini de biliyorum” z ID numarası ismi belirmektedir. z İSİM niteliği, ID’ye fonksiyonel bağımlıdır. 2 Fonksiyonel Bağımlılık A -> B A fonksiyonel olarak B’yi tanımlar.) Yukarıdaki ogrenci tablosunu ele aldığımız zaman aşağıdaki bağımlılıklardan söz edebiliriz. ogr_no -> ogr_name 3 Kısmi bağımlılık (Partial Dependency) z z Anahtar olmayan alan, birleşik anahtarın sadece bir kısmı ile belirlenebiliyorsa, buna kısmi bağımlılık denir. İsim alanını Müşteri_Id belirlemektedir. Müşteri_Id İsim Sipariş_Id 4 Kısmi bağımlılık (Partial Dependency) z z z Ders No ve Bölüm no birlikte Ders Adını tanımlamaktadır Bölüm No ise, bölüm adını tanımlamaktadır. Bölüm adının Ders no ile bir bağlantısı yoktur. Bölüm No Ders No Ders Adı Bölüm Adı 5 Geçişken Bağımlılık( Transitive Dependency) z z z z z A,B,C niteliklilerini içeren 3 nitelikli bir tabloda A, B, ve C için AÆB B Æ C fonksiyonel bağımlılıkları bulunmakta ise, C kısmi olarak A’ya B aracılığı ile bağımlıdır. 6 Geçişken Bağımlılık( Transitive Dependency) z 3NF’ a geçiş Manager alanı anahtar olmayan Dept. alanına bağlıdır. 3NF z z Geçişken bağımlılığı ortadan kaldırmak için, Manager alanı için ayrı bir tablo oluşturulur. Normalleştirme z z z z İlişkisel veritabanı oluşturmak için normalleştirmeyi bilmek çok önemlidir. Normalleştirme veri kayıplarını engellemek, verinin tekrarını azaltmak, silme, güncelleme eklemede çıkan zorlukları en aza indirmek icin yapılan operasyonlar toplamidir Amac veritabanına etkinlik kazandırmaktır. Herhangi bir tablonun tekrarlı veriler içerdiği duruma birinci normal form denir. 9 Normalleştirme (devamı) z Kötü tasarlanmış veri tabanlarının, sapmalar nedeniyle kullanım zorlukları bulunmaktadır: Sapmalar: z Değiştirme –özelliğin değerinin değiştirilmesi veri tabanının tutarsızlığına neden ola bilir z z z Ekleme – bazı tasarım kusurlarından dolayı satır eklenmesi mümkün olmaya bilir Silme - satır silinmesi bilgilerin beklenmeyen kaybına neden ola bilir Normalleştirme tüm bu sapmaların kaldırılması için veri tabanı tasarımında yapılan düzenli süreçtir. 10 Birinci Normal Form z Birinci normal formdaki bir tabloda tekrarlayan sütunlar bulunmamalıdır. Nitelikler çok değerli olmamalıdır. z Müşteri No, Adı, Telefon1, Telefon2, Telefon3 gibi alanlar içeren bir tablo doğru bir yaklaşım değildir. Bu alanlar için ayrı bir tablo oluşturulmalıdır. Aynı tür veriyi tanımlamak için bir tabloda birden fazla alan kullanılmamalıdır. z z 11 Birinci Normal Form 12 İkinci Normal Form z z z KISMİ BAĞIMLILIKLAR KALDIRILMALIDIR. Birden çok kayıt için geçerli olan değer kümeleri için ayrı tablolar oluşturmalıdır. Bu tabloları bir yabancı anahtarla ilişkilendirilmesi gerekir z 2NF, birincil anahtarı birden çok özniteliğe sahip tablolara uygulanır. z Kayıtlar bir tablonun birincil anahtarı dışında bir öğeye bağımlı olmamalıdır. 13 Örnek Personel No Şube No Şube Adres İsim Pozisyon Çalışma Saati S455 B002 İSTANBUL AYŞE DEMİR ASİSTAN 16 S455 B004 SAKARYA AYŞE DEMİR ASİSTAN 13 S4612 B002 İSTANBUL MEHMET ÖNDER TEKNİSYEN 12 S4612 B004 SAKARYA MEHMET ÖNDER TEKNİSYEN 15 Şube Adresi alanı sadece şube noya bağlıdır. İsim ve pozisyon alanıı personel no'ya bağlıdır. Çalışma saati personel ve şube noya bağlıdır. 14 İkinci Normal Form Şube No Şube Adres Personel No Personel İsim B002 İSTANBUL S455 AYŞE DEMİR B004 SAKARYA S4612 MEHMET ÖNDER Personel No Şube No Çalışma Saati S455 B002 16 S455 B004 13 S4612 B002 12 S4612 B004 15 15 Üçüncü Normal Form z z z Geçişken bağımlılıklar kaldırılmalıdır. Her sütun direkt olarak birincil anahtara bağımlı olmalıdır 2NF bir tabloda birincil anahtar özelliğine sahip olmayan özniteliklerin birincil anahtara olan geçisken bağımlılıkları ortadan kaldırılmalıdır. 16 Örnek Bir Tabloyu Normalleştirme z Normalleştirilmemiş tablo: 17 Birinci Normal Form: z z Yinelenen Grup olmamalı ilk normal formda yinelenen grubu (Ders#) aşağıdaki gösterildiği gibi kaldırarak başka bir tablo oluşturulmalı: 18 İkinci Normal Form z z z z Artık Verileri kaldırılması gerekmektedir. Bir önceki tabloda her Öğrenci# değeri için birden çok Ders# değeri bulunmaktadır. Ders# öğesi fonksiyonel olarak Öğrenci# öğesine (birincil anahtar) bağımlı olmadığı için, bu ilişki ikinci normal formda değildir. 2NF form da anahtar olmayan her nitelik birincil anahtara bağlı olmak zorundadır: Aşağıdaki iki tabloda ikinci normal form gösterilmektedir: 19 Üçüncü Normal Form z Anahtara Bağımlı Olmayan Verileri Kaldırma 20 Normal Formlar 1NF 2NF 3NF Anahtarla; Tekrarlayan grup olmamalı Kısmi bağımlılık olmamalı Geçişli bağımlılık olmamalı 21 ÖDEV (NORMALİZASYON) Öğrenci No İsim Soyisim 2506013 RAMAZAN ORHAN 2506013 RAMAZAN ORHAN 2506013 RAMAZAN ORHAN 2516014 AHMET YILMAZ 2516014 AHMET YILMAZ 2526015 AYŞE DOĞAN 2526015 AYŞE DOĞAN Bölüm No Bölümü Aldığı Dersler Dersin Öğretmeni Öğretmenin Oda Numarası Dahili Telefonu 1 Elektronik Bilgisayar Veritabanı Buket Doğan D406 217 1 Elektronik Bilgisayar Mikroişlemciler H.Hüseyin Çelik D508 223 1 Elektronik Bilgisayar Elektronik Hayriye Korkmaz D506 219 2 Makine Eğitimi Mukavemet Mustafa Kurt A432 313 2 Makine Eğitimi Teknik Resim Hasan Tahsin A433 314 1 Elektronik Bilgisayar Veritabanı Buket Doğan D406 217 1 Elektronik Bilgisayar Mikroişlemciler H.Hüseyin Çelik D508 223 22