Veritabanı Yönetim Sistemlerinde Fonksiyonel Bağımlılık: Örneklerle Türleri

⚡ Akıllı Özet

İşlevsel Bağımlılık, bir veritabanı yönetim sisteminde (DBMS) bir özniteliğin başka bir öznitelikle nasıl ilişkili olduğunu belirleyen bir kısıtlamadır. Belirleyicileri ve bağımlıları tanımlayarak normalleştirmeyi destekler ve çok değerli, önemsiz, önemsiz olmayan ve geçişli bağımlılıklar olarak sınıflandırılır.

  • ➡️ Ana düşünce: X → Y grafiğinde, determinant X, bağımlı değişken Y'nin değerini belirler ve bu değer ok işaretiyle gösterilir.
  • ???? ️ Anahtar terimler: Belirleyici, bağımlı, aksiyom, ayrıştırma ve birleşim, bağımlılıkların nasıl adlandırıldığını ve manipüle edildiğini açıklar.
  • 📐 Armstrong'un Aksiyomları: Yansıma, artırma ve geçişlilik, bir kümenin mantıksal olarak ima ettiği her bağımlılığı çıkarır.
  • 🔀 Dört Tür: Çok değerli, önemsiz, önemsiz olmayan ve geçişli bağımlılıkların her biri farklı bir nitelik ilişkisini tanımlar.
  • 🧹 Normalizasyon Bağlantısı: Bağımlılıklar, gereksiz tekrarları ve güncelleme anormalliklerini ortadan kaldıran normalleştirmeyi yönlendirir.
  • 🔑 Kapanış: Öznitelik kapanışı, aday anahtarları ve bir bağımlılığın olup olmadığını ortaya çıkarır.
  • Yarar: İyi bağımlılıklar, iyi tasarımın göstergesidir ve kaliteli şemaları kalitesiz olanlardan ayırır.

DBMS'de İşlevsel Bağımlılık

İşlevsel Bağımlılık Nedir?

İşlevsel Bağımlılık (FD) Veritabanı Yönetim Sisteminde (DBMS) bir özniteliğin başka bir öznitelikle olan ilişkisini belirleyen bir kısıtlamadır. Fonksiyonel bağımlılık, veritabanındaki verilerin kalitesini korumaya yardımcı olur. İyi ve kötü veritabanı tasarımı arasındaki farkı bulmada hayati bir rol oynar.

İşlevsel bağımlılık, “→” oku ile gösterilir. Y'nin X'e olan işlevsel bağımlılığı X → Y şeklinde gösterilir. İşlevsel bağımlılığı bir örnekle anlayalım.

Örnek:

Çalışan sayısı İşçi adı Maaş Şehir
1 Dana 50000 San Francisco
2 Francis 38000 Londra
3 Andrew 25000 Tokyo

Bu örnekte, Çalışan numarasının değerini biliyorsak, Çalışan Adı, Şehir, Maaş vb. bilgileri elde edebiliriz. Bu sayede, Şehir, Çalışan Adı ve Maaşın, Çalışan numarasına işlevsel olarak bağlı olduğunu söyleyebiliriz.

Anahtar terimler

Veritabanında fonksiyonel bağımlılık için bazı temel terimler şunlardır:

Anahtar terimler Açıklama
Aksiyom 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.
ayrışma Aynı birincil anahtar tarafından belirlenen iki varlık içeriyor gibi görünen bir tablonuz varsa, onu iki farklı tabloya ayırmayı düşünmeniz gerektiğini öneren bir kural.
Bağımlı Fonksiyonel bağımlılık diyagramının sağ tarafında gösterilir.
determinant Fonksiyonel bağımlılık diyagramının sol tarafında gösterilir.
sendika Bu, iki tablonun ayrı olması ve birincil anahtarın aynı olması durumunda, bunları birleştirmeyi düşünmeniz gerektiği anlamına gelir.

İşlevsel Bağımlılık Kuralları (Armstrong Aksiyomları)

Aşağıda, bir veritabanındaki fonksiyonel bağımlılık için en önemli üç kural yer almaktadır. Bunlar Armstrong aksiyomları olarak bilinir ve diğer tüm çıkarım kuralları bunlardan türetilebilir.

  • Yansıma kuralı: X bir öznitelik kümesi ve Y, X'in bir alt kümesi ise, X → Y eşitliği geçerlidir.
  • Artırma kuralı: X → Y bağıntısı geçerliyse ve C bir öznitelik kümesi ise, XC → YC bağıntısı da geçerlidir. Öznitelik eklemek temel bağımlılığı değiştirmez.
  • Geçişlilik kuralı: Cebirdeki geçişlilik kuralına benzer şekilde: eğer X → Y doğruysa ve Y → Z doğruysa, o zaman X → Z de doğrudur.

Bunlardan üç kural daha türetilmiştir ve bunlar pratikte sürekli olarak kullanılmaktadır:

  • Sendika yönetimi: Eğer X → Y ve X → Z ise, o zaman X → YZ olur.
  • Ayrıştırma kuralı: Eğer X → YZ ise, o zaman X → Y ve X → Z olur.
  • Sözde geçişlilik kuralı: Eğer X → Y ve WY → Z ise, o zaman WX → Z olur.

Bu kuralların bir bağımlılık kümesine tekrar tekrar uygulanması, onun sonucunu doğurur. kapatmaMantıksal olarak takip eden tüm bağımlılıklar kümesi. Bir öznitelik kümesinin kapanışı aynı zamanda aday anahtarların nasıl bulunduğunu da gösterir ve bu da doğrudan şu çalışmayla bağlantılıdır: DBMS anahtarları.

DBMS'deki İşlevsel Bağımlılık Türleri

Veritabanı yönetim sistemlerinde temel olarak dört tür fonksiyonel bağımlılık vardır:

  • Çok Değerli Bağımlılık
  • Önemsiz İşlevsel Bağımlılık
  • Önemsiz Olmayan İşlevsel Bağımlılık
  • Geçişli Bağımlılık

DBMS'de Çok Değerli Bağımlılık

Çok değerli bağımlılık, tek bir tabloda birden fazla bağımsız çok değerli özniteliğin bulunduğu bir durumda ortaya çıkar. Çok değerli bağımlılık, bir ilişkideki iki öznitelik kümesi arasında, belirli kayıtların mevcut olmasını gerektiren tam bir kısıtlamadır. Aşağıdaki örneği ele alalım.

Örnek:

Araba modeli Maf_yılı Renk
H001 2017 madeni
H001 2017 Yeşil
H005 2018 madeni
H005 2018 Mavi
H010 2015 madeni
H033 2012 Gri

Bu örnekte, Maf_year ve Color birbirlerinden bağımsızdır ancak Car_model'e bağlıdır. Bu iki sütun, Car_model'e bağlı çoklu değer bağımlı sütunlar olarak adlandırılır. Bu şu şekilde gösterilir:

araba_modeli → maf_yılı

araba_modeli → renk

DBMS'de Önemsiz İşlevsel Bağımlılık

Önemsiz bağımlılık, bir öznitelik kümesinin o özniteliğin içinde yer alması durumunda önemsiz olarak adlandırılan bir öznitelik kümesidir. Dolayısıyla, X → Y, Y'nin X'in bir alt kümesi olması durumunda önemsiz bir fonksiyonel bağımlılıktır. Aşağıdaki örneği ele alalım.

Emp_id Emp_name
AS555 Harry
AS811 George
AS999 Kevin

İki sütundan oluşan şu tabloyu ele alalım: Emp_id ve Emp_name. {Emp_id, Emp_name} → Emp_id ilişkisi, Emp_id'nin {Emp_id, Emp_name} kümesinin bir alt kümesi olması nedeniyle, önemsiz bir fonksiyonel bağımlılıktır.

Veritabanı Yönetim Sistemlerinde Önemsiz Olmayan Fonksiyonel Bağımlılık

A → B bağıntısı doğru olduğunda ve B, A'nın alt kümesi olmadığında, önemsiz olmayan bir bağımlılık ortaya çıkar. Eğer B özniteliği A özniteliğinin alt kümesi değilse, bağımlılık önemsiz olmayan olarak kabul edilir.

Firmamız CEO Yaş
Microsoft Satya Nadella 51
Google Sundar Pichai 46
Apple Tim Cook, 57

Örnek:

{Şirket} → {CEO} (Şirketi biliyorsak, CEO'nun adını da biliyoruz). Ancak CEO, Şirketin bir alt kümesi değildir ve bu nedenle önemsiz olmayan işlevsel bir bağımlılıktır.

DBMS'de Geçişli Bağımlılık

Geçişli bağımlılık, bir özelliğin iki işlevsel bağımlılık tarafından dolaylı olarak belirlendiği durumlarda ortaya çıkan bir işlevsel bağımlılık türüdür. Aşağıdaki örneği ele alalım.

Firmamız CEO Yaş
Microsoft Satya Nadella 51
Google Sundar Pichai 46
Alibaba Jack Ma 54

{Şirket} → {CEO} (şirketi biliyorsak, CEO'sunun adını da biliyoruz).

{CEO} → {Yaş} (CEO'yu tanıyorsak, yaşını da biliyoruz).

Dolayısıyla, geçişli bağımlılık kuralına göre, {Şirket} → {Yaş} bağıntısı geçerli olmalıdır; bu da mantıklıdır çünkü şirket adını biliyorsak yaşı da bulabiliriz.

Not: Geçişli bağımlılık yalnızca üç veya daha fazla öznitelik arasındaki ilişkide ortaya çıkabilir.

Normalleşme nedir?

Normalizasyon, veritabanlarındaki verileri düzenlemenin ve veri fazlalığını, ekleme, güncelleme ve silme anormalliklerini önlemenin bir yöntemidir. İlişki şemalarını farklı işlevsel bağımlılıklarına ve birincil anahtarlarına göre analiz etme işlemidir.

Normalizasyon, ilişkisel veritabanı teorisinin ayrılmaz bir parçasıdır. Verileri ek tablolara bölerek her bir verinin yalnızca bir kez saklanmasını sağlayabilir. Sürecin tamamı kılavuzda açıklanmıştır. veritabanı normalizasyonuBu, yukarıdaki bağımlılık türlerine doğrudan dayanmaktadır.

Fonksiyonel Bağımlılığın Avantajları

  • İşlevsel bağımlılık, veri fazlalığını önler, böylece aynı veri birden fazla yerde tekrarlanmaz. veritabanı.
  • Veritabanındaki verilerin kalitesini korumanıza yardımcı olur.
  • Veritabanlarının anlamlarını ve sınırlamalarını tanımlamanıza yardımcı olur.
  • Kötü tasarımları belirlemenize yardımcı olur.
  • Veritabanı tasarımıyla ilgili gerçekleri bulmanıza yardımcı olur.

SSS

Belirleyici, okun solunda yer alan ve değeri sabitleyen özelliktir. Bağımlı ise, değeri belirlenen sağdaki özelliktir. X → Y ilişkisinde, X, Y'yi belirler.

Fonksiyonel bağımlılık, bağımlı değişken için tek bir değer belirler. Çok değerli bağımlılık ise bir dizi bağımsız değere izin verir; bu nedenle kendi özniteliğine ihtiyaç duyar ve dördüncü normal forma yol açar.

Bağımlılıkları kullanarak bir öznitelik kümesinin kapanışını hesaplayın. Kapanış, ilişkinin her özniteliğini içeriyorsa, bu küme bir süper anahtardır; bu tür kümelerin en küçüğü ise bir aday anahtardır.

Evet. Bazıları yapay zeka destekli olan bağımlılık keşif algoritmaları, bir veri kümesini tarar ve olası bağımlılıkları önerir. Tasarımcının bunları doğrulaması gerekir, çünkü örnek verilerde doğru olan bir örüntü kural olarak geçerli olmayabilir.

Anahtar olmayan bir öznitelik hakkında bir bilgi depoladığı için, güncellenmesi anormallik riskini beraberinde getirir. Geçişli bağımlılıkların kaldırılması, her bilgiyi tek bir yerde tutan üçüncü normal formun tam olarak gerektirdiği şeydir.

Bu yazıyı şu şekilde özetleyin: