BTP203 VERİTABANI YÖNETİM SİSTEMLERİ Öğr.Gör.Dr. Sedat TELÇEKEN ANADOLU ÜNİVERSİTESİ Porsuk M.Y.O. Bilg. Tekn. Bölümü 2011 2012 Güz Dönemi
BÜTÜNLÜK KISITLAMALARI (Integrity Constraints) Bir VT depoladığı veriler ne kadar sağlıklı ise o kadar iyi durumdadır. Bu nedenle VTYS yanlış veri girişini engellemelidir.
BÜTÜNLÜK KISITLAMALARI Bütünlük kısıtlamaları, VT nında tutulabilecek veriyi kısıtlayan koşullardır. Bir VT tüm bütünlük kısıtlamalarını sağlıyorsa geçerli durumdadır.
BÜTÜNLÜK KISITLAMALARI VTYS, bütünlük kısıtlamalarını uygulayarak yalnız geçerli verilerin depolanmasını sağlar.
BÜTÜNLÜK KISITLAMALARI 1. Alan Kısıtlamaları (Domain Constraints) 2. Anahtar Kısıtlamaları (Key Constraints) 3. Yabancı Anahtar Kısıtlamaları (Foreign Key Constraints) 4. Genel Kısıtlamalar 5. İşlevsel Bağımlılık (Functional Dependency)
BÜTÜNLÜK KISITLAMALARI Bütünlük kısıtlamaları, verinin diğer verilerle tutarlı olmasını, gereksiz verilerin VT da tutulamamasını sağlar.
BÜTÜNLÜK KISITLAMALARI Gereksiz veriler saklandığı zaman; 1. Güncelleme düzensizlikleri 2. Ekleme düzensizlikleri 3. Silme düzensizlikleri oluşur.
Güncelleme Düzensizlikleri Verinin bir kopyasında güncelleme yapılırken, diğer tüm kopyalarda da güncelleme yapılmalıdır. Aksi takdirde veriler tutarsız hale gelir.
Ekleme Düzensizlikleri Yeni veri girişi için detaylar bilinmelidir, aksi takdirde veri girilemez. Ancak tüm verilerin girilmesi gerekmiyor da olabilir.
Silme Düzensizlikleri Silinen varlıklarla birlikte bir takım başka veriler de yitirilebilir.
Bu durumda, bir takım düzenlemelere ihtiyacımız var. Ancak bu düzenlemeler 1. VT için kayıpsız (Loseless-Join) olmalı, yani özgün tabloda bulunan tüm veriler oluşturulan yeni tablolardan elde edilebilmeli, 2. Bağımlılık-koruyan (dependency-preserve) olmalı, yani özgün tabloların içerdiği bağlantılar yeni tablolarda da korunmalıdır.
İşlevsel bağımlılık, anahtar kavramının bir genelleşmesidir. R bir tablo şeması ve A, B, R nin özniteliklerinin boş olmayan bir altkümesi olsun. Bir t anında R deki her V1, V2 varlığı için V1.A=V2.A iken V1.B=V2.B oluyorsa B, A ya işlevsel bağımlıdır diyoruz ve A B ile gösteriyoruz. Ayrıca A ya B nin belirleyicisi denir.
Bir başka deyişle, B, A ya işlevsel bağımlı ise A nın belli bir değerine karşılık B nin bir tek değeri karşılık gelir. Bu durumda tabloda A nın bir değerini ve buna karşı gelen B nin değerini biliyorsak, A nın bu değerine karşı gelen tüm B değerlerini biliyoruz demektir.
A B, A ya işlevsel bağımlıdır A, B nin belirleyicisidir B
Bölüm/Görev GörevID İsim Görev Ücret BölümNo BAdres SL21 Ali Koç Müdür 3000 B005 PK 22 SG37 Ahmet Kar Müdür Yrd. 1200 B003 PK 163 SG14 Veli Sağlam Danışman 1800 B003 PK 163 SA9 Fatma Turan Müdür Yrd. 900 B007 PK 16 SG5 Ayşe Bilen Müdür 2400 B003 PK 163 SL41 Sedat Duran Müdür Yrd. 900 B005 PK 22
GörevID Görev, GörevID ye işlevsel bağımlıdır Görev
Öznitelikler arasında 1 1 ve 1 Çok türünde bağıntılar olabilir. 1 1 durumda A nın bir değerine karşılık B nin yalnız bir değeri karşılık gelirken, 1 Çok durumda A nın bir değerine karşılık B nin birden çok değeri karşılık gelebilir.
Biz, işlevsel bağımlılığı 1 1 durumlar için göz önüne alacağız.
Bölüm/Görev GörevID İsim Görev Ücret BölümNo BAdres SL21 Ali Koç Müdür 3000 B005 PK 22 SG37 Ahmet Kar Müdür Yrd. 1200 B003 PK 163 SG14 Veli Sağlam Danışman 1800 B003 PK 163 SA9 Fatma Turan Müdür Yrd. 900 B007 PK 16 SG5 Ayşe Bilen Müdür 2400 B003 PK 163 SL41 Sedat Duran Müdür Yrd. 900 B005 PK 22
Görev GörevID İsim Görev Ücret BölümNo SL21 Ali Koç Müdür 3000 B005 SG37 Ahmet Kar Müdür Yrd. 1200 B003 SG14 Veli Sağlam Danışman 1800 B003 SA9 Fatma Turan Müdür Yrd. 900 B007 SG5 Ayşe Bilen Müdür 2400 B003 SL41 Sedat Duran Müdür Yrd. 900 B005
Bölüm BölümNo BAdres B003 PK 163 B005 PK 22 B007 PK 16
GörevID Görev, GörevID ye işlevsel bağımlıdır Görev Görev GörevID, Görev e işlevsel bağımlı değildir GörevID
Görev GörevID, Görev e işlevsel bağımlı değildir GörevID SL21 Müdür SG5
İşlevsel bağımlılık da anahtarlar gibi varlık sınıfları üzerinden düşünülmelidir. Başka bir deyişle işlevsel bağımlılık tablonun herhangi bir t anında sağladığı bir özellik değil, tablo şemasının sağlaması gereken bir özelliktir.
Görev GörevID İsim Görev Ücret BölümNo SL21 Ali Koç Müdür 3000 B005 SG37 Ahmet Kar Müdür Yrd. 1200 B003 SG14 Veli Sağlam Danışman 1800 B003 SA9 Fatma Turan Müdür Yrd. 900 B007 SG5 Ayşe Bilen Müdür 2400 B003 SL41 Sedat Duran Müdür Yrd. 900 B005
GörevID İsim, GörevID ye işlevsel bağımlıdır İsim İsim GörevID, İsim e işlevsel bağımlı mı?? GörevID
Bazı bağımlılıkların geçersiz olma ihtimali olmayabilir. Bu tür bağımlılıklara trivial bağımlılık diyoruz. İşlevsel bağımlılık konusunda trivial bağımlılıkları da dışlayacağız.
GörevID, İsim Trivial İsim GörevID, İsim Trivial GörevID
Özet olarak ilgili olduğumuz işlevsel bağımlılıklar; 1. Varlık sınıfları üzerinde tanımlı, 2. Trivial olmayan, 3. Öznitelik kümeleri arasında 1 1 bağıntı bulunan bağımlılıklardır.
GörevID İsim, Görev, Ücret, BölümNo, BAdres BölümNo BAdres BölümNo, Görev BAdres, Görev BAdres BölümNo Ücret Ücret
Anahtarlar, işlevsel bağımlılıkların özel bir durumudur. Anahtarlarda, anahtar öznitelik A yerine geçerken varlığın geri kalan tüm öznitelikleri B yerine geçer. Bu nedenle işlevsel bağımlılıklar anahtarların belirlenmesi için de kullanılırlar.
İşlevsel bağımlılıkları 1 1, trivial olmayan ve her zaman geçerli olarak tanımladık ancak hala çok sayıda işlevsel bağımlılıkla karşı karşıya olabiliriz. Bu nedenle işlevsel bağımlılıkların kümesini biraz daha daraltmaya ihtiyacımız var.
Bu nedenle, bir tabloya ait tüm işlevsel bağımlılıkların kümesini X ile gösterecek olursak işlevsel bağımlılıkların öyle bir Y kümesini bulmak istiyoruz ki Y den X deki tüm işlevsel bağımlılıkları elde edebilelim.
İşte Y kümesinden elde edilebilecek tüm işlevsel bağımlılıkların kümesine Y nin kapanışı diyoruz ve Y + ile gösteriyoruz.
Sonuç olarak, bize verilen herhangi bir tablodan elde edilebilecek tüm işlevsel bağımlılıklar X ise, aradığımız X=Y + olacak biçimdeki Y işlevsel bağımlılıklar kümesidir.
Artık bütünlük kısıtlamalarının Y üzerine uygulanması ile bu kısıtlamalar tüm tabloya uygulanmış olacaktır.
Açıktır ki, bir X işlevsel bağımlıklar kümesi verildiğinde X + kümesini bulabilmek için bir takım kurallara ihtiyacımız vardır.
(Armstrong Aksiyomları) Armstrong Aksiyomları, verilen bir işlevsel bağımlılıklar kümesinden yeni bağımlılıkların nasıl elde edilebileceğini söyler.
(Armstrong Aksiyomları) A, B ve C bir R tablosu için öznitelik kümeleri olsun. 1. B A ise A B 2. A B ise A, C B, C 3. A B ve B C ise A C
İşte, bir X işlevsel bağımlıklar kümesi verildiğinde X kümesinden elde edilebilecek tüm işlevsel bağımlılıklar için Armstrong Aksiyomları kullanılması yeterlidir. Ek olarak, Armstorng Aksiyomları kullanılarak X + kümesinde bulunmayan herhangi bir işlevsel bağımlılık da elde edilemez.
Yine Armstrong aksiyomları kullanılarak işimizi kolaylaştıracak şu kuralları da ifade edebiliriz: A, B, C ve D, R tablosu için öznitelik kümeleri olsun. 1. A 2. A 3. A 4. A A B, C ise A B ve A C B ve A C ise A B, C B ve C Dise A, C B, D
(Minimal Bağımlılık Kümesi) X, R tablosu için bir işlevsel bağımlılıklar kümesi olsun. Eğer; X deki her işlevsel bağımlılığın sağ tarafı tek özniteliğe sahipse; X deki herhangi bir A B işlevsel bağımlılığı ve A nın hiçbir C altkümesi için C B olmuyorsa; X den herhangi bir bağımlılık çıkarılamıyorsa X kümesine minimal bağımlılık kümesidir diyoruz.
Bölüm/Görev GörevID İsim Görev Ücret BölümNo BAdres SL21 Ali Koç Müdür 3000 B005 PK 22 SG37 Ahmet Kar Müdür Yrd. 1200 B003 PK 163 SG14 Veli Sağlam Danışman 1800 B003 PK 163 SA9 Fatma Turan Müdür Yrd. 900 B007 PK 16 SG5 Ayşe Bilen Müdür 2400 B003 PK 163 SL41 Sedat Duran Müdür Yrd. 900 B005 PK 22
GörevID İsim BAdres BölümNo GörevID GörevID Görev Ücret BölümNo BAdres BölümNo, Görev Ücret GörevID BölümNo BAdres, Görev Ücret GörevID BAdres