Fonksiyonel Bağımlılıklar

İşlevsel bağımlılık (FD) iki öznitelik arasında, tipik olarak PK ile bir tablodaki diğer anahtar olmayan öznitelikler arasında bir ilişkidir. Herhangi bir R ilişkisi için, X'in her geçerli örneği için X'in değeri Y'nin değerini benzersiz bir şekilde belirliyorsa, Y niteliği X niteliğine (genellikle PK) işlevsel olarak bağımlıdır. Bu ilişki aşağıdaki gösterimle gösterilmektedir:

X ———–> Y

Yukarıdaki FD diyagramının sol tarafı determinant, sağ tarafı ise bağımlı olarak adlandırılır. İşte birkaç örnek.

Aşağıdaki ilk örnekte, SIN Ad, Adres ve Doğum Tarihini belirler. SIN verildiğinde, tablodaki diğer özniteliklerden herhangi birini belirleyebiliriz.

SIN —-> İsim, Adres, Doğum Tarihi

İkinci örnekte, SIN ve Kurs tamamlanma tarihini (DateCompleted) belirler. Bu, bileşik bir PK için de çalışmalıdır.

SIN, Kurs —> DateCompleted

Üçüncü örnek ISBN'nin Başlığı belirlediğini gösterir.

ISBN —-> Başlık

Fonksiyonel Bağımlılık Kuralları

Aşağıdaki tabloda gösterilen R(ABCDE) ilişki şemasına ait aşağıdaki r(R) veri tablosunu göz önünde bulundurun.

Tablo; Fonksiyonel bağımlılık örneği, A. Watt tarafından.

Bu tabloya bakarken kendinize sorun: Tablo R'deki nitelikler arasında ne tür bağımlılıklar gözlemleyebiliriz? A'nın değerleri benzersiz olduğu için (a1, a2, a3, vb.), FD tanımından şu sonuç çıkar:

A → B,    A → C,    A → D,    A → E

  • Ayrıca A →BC (veya ABCDE'nin herhangi bir alt kümesi) olduğu sonucu çıkar.
  • Bu, A →BCDE şeklinde özetlenebilir.
  • Birincil anahtarları anladığımıza göre, A bir birincil anahtardır.

E'nin değerleri her zaman aynı olduğundan (hepsi e1), şu sonuç çıkar:

A → E,   B → E,   C → E,   D → E

Ancak, genel olarak A → E, B → E, AB → E olduğu için yukarıdaki ifadeyi ABCD → E şeklinde özetleyemeyiz.

Diğer gözlemler:

  1. BC kombinasyonları benzersizdir, bu nedenle BC → ADE.
  2. BD'nin kombinasyonları benzersizdir, bu nedenle BD → ACE.
  3. C değerleri eşleşirse, D değerleri de eşleşir.
    1. Bu nedenle, C → D
    2. Ancak, D değerleri C değerlerini belirlemez
    3. Dolayısıyla C, D'yi belirlemez ve D de C'yi belirlemez.

Gerçek verilere bakmak, hangi özelliklerin bağımlı, hangilerinin belirleyici olduğunu netleştirmeye yardımcı olabilir.

Çıkarım Kuralları

Armstrong'un aksiyomları, ilişkisel bir veritabanındaki tüm işlevsel bağımlılıkları çıkarmak için kullanılan bir dizi çıkarım kuralıdır. William W. Armstrong tarafından geliştirilmiştir. Aşağıda, bu aksiyomları açıklamak için notasyon açısından ne kullanılacağı açıklanmaktadır.

R(U), U öznitelikler kümesi üzerinde bir bağıntı şeması olsun. X, Y, Z harflerini, normal X U Y yerine, herhangi bir alt kümeyi ve kısaca iki öznitelik kümesinin birleşimini temsil etmek için kullanacağız.

Düşünümsellik aksiyomu

Bu aksiyom, eğer Y, X'in bir alt kümesi ise, X'in Y'yi belirlediğini söyler (bkz. aşağıdaki şekil).

Şekil; Düşünümsellik aksiyomu için denklem.

Örneğin, PartNo -> NT123, burada X (PartNo) birden fazla bilgi parçasından oluşur; yani, Y (NT) ve partID (123).

Büyütme aksiyomu

Kısmi bağımlılık olarak da bilinen artırma aksiyomu, X'in Y'yi belirlemesi durumunda XZ'nin herhangi bir Z için YZ'yi belirlediğini söyler (bkz. aşağıdaki şekil.

Şekil; Büyütme aksiyomu için denklem.

Arttırma aksiyomu, anahtar olmayan her özniteliğin PK'ya tamamen bağımlı olması gerektiğini söyler. Aşağıda gösterilen örnekte, StudentName, Address, City, Prov ve PC (posta kodu) yalnızca StudentNo'ya bağlıdır, StudentNo ve Grade'e değil.

StudentNo, Course —> StudentName, Address, City, Prov, PC, Grade, DateCompleted

Bu durum arzu edilen bir durum değildir çünkü anahtar olmayan her özniteliğin PK'ya tamamen bağımlı olması gerekir. Bu durumda, öğrenci bilgileri PK'ya (StudentNo) yalnızca kısmen bağlıdır.

Bu sorunu çözmek için orijinal tabloyu aşağıdaki gibi ikiye ayırmamız gerekir:

  • Tablo 1: StudentNo, Course,  Grade, DateCompleted
  • Tablo 2: StudentNo, StudentName, Address, City, Prov, PC

Geçişlilik aksiyomu

Geçişlilik aksiyomu, X Y'yi belirliyorsa ve Y de Z'yi belirliyorsa, X'in de Z'yi belirlemesi gerektiğini söyler (bkz. aşağıdaki şekil).

Şekil; Geçişlilik aksiyomu için denklem.

Aşağıdaki tabloda doğrudan öğrenciyle ilgili olmayan bilgiler bulunmaktadır; örneğin, ProgramID ve ProgramName'in kendine ait bir tablosu olmalıdır. ProgramName, StudentNo'ya bağlı değildir; ProgramID'ye bağlıdır.

StudentNo  —> StudentName, Address, City, Prov, PC, ProgramID, ProgramName

Bu durum, anahtar olmayan bir özniteliğin (ProgramName) anahtar olmayan başka bir özniteliğe (ProgramID) bağlı olması nedeniyle arzu edilmez.

Bu sorunu çözmek için, bu tabloyu ikiye ayırmamız gerekir: biri öğrenci hakkında bilgi tutmak için, diğeri de program hakkında bilgi tutmak için.

  • Tablo 1: StudentNo —> StudentName, Address, City, Prov, PC, ProgramID
  • Tablo 2: ProgramID —> ProgramName

Ancak yine de öğrencinin hangi programa kayıtlı olduğunu belirleyebilmek için öğrenci tablosunda bir FK bırakmamız gerekir.

Birlik

Bu kural, iki tablo ayrıysa ve PK aynıysa, bunları bir araya getirmeyi düşünebileceğinizi göstermektedir. X, Y'yi ve ayrıca X Z'yi belirliyorsa, X'in Y ve Z'yi de belirlemesi gerektiğini ifade eder (bkz. aşağıdaki şekil).

Şekil; Birlik kuralı için denklem.

Örneğin, eğer:

  • SIN —> EmpName
  • SIN —> SpouseName

Bu iki tabloyu aşağıdaki gibi tek bir tabloda birleştirmek isteyebilirsiniz:

SIN –> EmpName, SpouseName

Bazı veritabanı yöneticileri (DBA) birkaç nedenden dolayı bu tabloları ayrı tutmayı tercih edebilir. Birincisi, her tablo farklı bir varlığı tanımlar, bu nedenle varlıklar ayrı tutulmalıdır. İkincisi, SpouseName çoğu zaman NULL olarak bırakılacaksa, EmpName ile aynı tabloya dahil edilmesine gerek yoktur.

Ayrıştırma

Ayrıştırma, Birlik kuralının tersidir. Aynı PK tarafından belirlenen iki varlık içeriyor gibi görünen bir tablonuz varsa, bunları iki tabloya ayırmayı düşünün. Bu kural, X'in Y ve Z'yi belirlemesi durumunda, X'in Y'yi ve X'in Z'yi ayrı ayrı belirlediğini belirtir (bkz. aşağıdaki şekil).

Şekil; Dekompansasyon kuralı için denklem.

Bağımlılık Diyagramı

Aşağıdaki şekilde gösterilen bir bağımlılık diyagramı, normalleştirilmemiş bir tabloda var olabilecek çeşitli bağımlılıkları göstermektedir. Normalleştirilmemiş bir tablo, içinde veri fazlalığı olan bir tablodur.

Şekil; Bağımlılık diyagramı.

Bu tabloda aşağıdaki bağımlılıklar tanımlanmıştır:

  • ProjectNo ve EmpNo birlikte PK'dır.
  • Kısmi Bağımlılıklar:
    • ProjectNo —> ProjName
    • EmpNo —> EmpName, DeptNo,
    • ProjectNo, EmpNo —> HrsWork
  • Geçişli Bağımlılık:
    • DeptNo —> DeptName
Alıştırmalar
Sonraki bölüme bakınız.

Atıf

Veritabanı Tasarımı'nın bu bölümü (aksi belirtilmedikçe resimler dahil), Creative Commons Attribution-ShareAlike 3.0 Unported lisansı altında Özgür Ansiklopedi Wikipedia tarafından Armstrong’s axioms'un türev bir kopyasıdır.

Önceki Ders: Varlık ilişkisel Modelleme

Sonraki Ders: Veritabanı Tasarımı Normalleştirme

Yorumlar

Bu blogdaki popüler yayınlar

Gelişim ve Kalıtım Eleştirel Düşünme Soruları

Periodonsiyum Klinik Uygulamalar

Dentin Oluşumu