Yazan : Şadi Evren ŞEKER
Veritabanı teorisinde bir tabloyu tek başına tanımlayamay yeterli olan kolona verilen isimdir. Daha resmi bir tanımlamayla:
- Bir ilişkide bir aday anahtarın tekrar edildiği iki satır bulunamaz
- 1. adımda bahsedilen anahtarın bir alt kümesi bulunmaması.
İlişkisel veri tabanında bir tablo veya tablolar arası ilişki tanımlandıktan sonra elde edilen sonuç kümesindeki kolonlardan herhangi birisi yukarıdaki şartları sağlamak şartıyla aday anahtar olabilir.
Örneğin aşağıdaki ilişkiyi ele alalım:
A | B | C | D |
1 | a1 | a1 | a1 |
2 | a1 | b1 | b1 |
3 | c1 | b1 | b1 |
4 | b1 | c1 | c1 |
Yukarıdaki ilişkide bariz bir şekilde A kolonu tekrarlanmayan ve sonuçta bütün tabloyu tek başına tanımlayabilen bir değişkendir. Dolayısıyla A kolonunun aday anahtar olduğu söylenebilir. Şayet A değişkeni ilişkide bulunmasaydı:
B | C | D |
a1 | a1 | a1 |
a1 | b1 | b1 |
c1 | b1 | b1 |
b1 | c1 | c1 |
Yukarıdaki ilişkide bütün tabloyu tek başına tanımlayan bir anahtar bulunmamaktadır. Çünkü her değişkenin farklı değeri için diğer diğer değişkenler de değişmektedir.
Yukarıdaki ilişkide aday anahtar olarak {B,C} değişkenlerinin birleşimi alınacak olursa bu durumda bir aday anahtar elde edilmiş olur, çünkü bu iki tabloyu tanımlayabilmektedir. Yani ilişkideki her farklı satırı gösteren farklı bir B,C ikilisi bulunabilir.
Yukarıdaki örneğe özel olarak {B,C}, {C,D} [!!düzeltildi, buradaki C ve D kolon ikilisi aday anahtar olmak için yetersizdir, Sayın İlksen Cosar’a teeşkkür ederim!!] ve {B,D} ikililerinin hepsi birer aday anahtar olarak kabul edilebilir.
Ancak {B,C,D} üçlüsünün bir aday anahtar olarak kabul edilmesi mümkün değildir. Çünkü bu durum aday anahtarın tanımında listelediğimiz 2. madde ile çelişir. Yani B,C,D üçlüsünün herhangi bir alt kümesinin (örneğin B,C) aday anahtar olamaması gerekmektedir.
Bu gibi daha alt aday anahtarlara bölünebilen üst anahtarlara (B,C,D gibi) super anahtar (Super key) ismi verilir.
Bu tanımdan yola çıkarak aday anahtar için en küçük süper anahtar tanımı da yapılabilir.
arkadaşım bana yardımcı olarmusunuz SÜPER ANAKTAR NEDİR rica etsem yardımcı olurmusunuz
Yukarıda da açıklandığı üzere üst anahtarlara (yani birden fazla anahtarı kapsayan) anahtarlara süper anahtar ismi verilir. Diğer bütün aday anahtarlar bu süper anahtarın bir alt kümesidir.
Yukaridaki ornekte {C,D} aday anahtar olamaz diye dusunuyorum, zira 2 satirda gecmektedir ve dolayisiyle tek basina tabloyu tanimlayamamaktadir. b1-b1 satiri 2 defa bulunmaktadir.
evet haklısınız, yukarıdan sırasıyla 1. ve 4. satırları tanımlarken (uniquely identify) 2. ve 3. satırları tanımlamak için bu iki sütun yetersiz kalır. Hatayı düzeltiyorum ve uyarınız için teşekkür ediyorum.
A,B,C,D,E….aynı tabloda birer sutun ismi olsun.
Eğer herhangi bir tabloda AB ikilisi bir aday anahtar ise, o zaman ABC ve ABCD ve ABD ve ABE , ABCDE …. yani AB yi içeren tüm sutun kombinasyonları birer süper anahtar olurlar. Çünkü AB eğer tek başına yeteri ise aday olmak için, ekstra gelen bir sutun bu düzeni bozamaz.
Burada bir yanlışlık yokmu? Böyle olması biraz tuhaf değilmi? Ben mi yanlış anlamışım?