BĐL378 VERĐTABANI YÖNETĐM SĐSTEMLERĐ Öğr.Gör. Sedat TELÇEKEN VTYS, bütünlük kısıtlamalarını uygulayarak yalnız geçerli verilerin depolanmasını sağlar. ANADOLU ÜNĐVERSĐTESĐ FEN FAKÜLTESĐ MATEMATĐK BÖLÜMÜ 2005 2006 Bahar Dönemi 1 (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. 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 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 kısıtlamaları, verinin diğer verilerle tutarlı olmasını, gereksiz verilerin VT da tutulamamasını sağlar. 1
Gereksiz veriler saklandığı zaman; 1. Güncelleme düzensizlikleri 2. Ekleme düzensizlikleri 3. Silme düzensizlikleri oluşur. Silme Düzensizlikleri Silinen varlıklarla birlikte bir takım başka veriler de yitirilebilir. 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. 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. Ekleme Düzensizlikleri Yeni veri girişi için detaylar bilinmelidir, aksi takdirde veri girilemez. Ancak tüm verilerin girilmesi gerekmiyor da olabilir. Đş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. 2
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., ye işlevsel bağımlıdır 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 Ö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. Bölüm/ Biz, işlevsel bağımlılığı 1 1 durumlar için göz önüne alacağız. Fatma Turan PK 16 Sedat Duran 3
Bölüm/, ye işlevsel bağımlıdır Fatma Turan PK 16, e işlevsel bağımlı değildir Sedat Duran, e işlevsel bağımlı değildir Fatma Turan Sedat Duran Bölüm PK 16 Đş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. 4
, Trivial Fatma Turan, Trivial Sedat Duran, ye işlevsel bağımlıdır, e işlevsel bağımlı mı?? Ö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. 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.,,,,,, 5
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. Đş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. Đş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. 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. 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. 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. 6
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. Đş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. (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. 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 A 2. A B, C ise A B ve A C 3. A B ve A C ise A B, C 4. A B ve C Dise A, C B, D (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 (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. 7
Bölüm/ Fatma Turan PK 16 Sedat Duran,, 8