Fonksiyonel(İşlevsel) Bağımlılık Fonksiyonel Bağımlılık

advertisement
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
Download