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.
İş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 |
| 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 |
| 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.

