Veri Tabanı : Veri Tabanında İlişki Türleri

advertisement
Veri Tabanında İlişki Türleri
Veri Tabanında İlişki Türleri
Veri Tabanı İlişki Türleri
İlişkiler Nasıl Çalışır?
İlişkiler genellikle, her iki tablonun aynı adlı alanları olan, anahtar alanlardaki verilerin
eşleştirilmesiyle çalışır.(Ortak alan isimleri farklıda olabilir.)
Çoğu durumda, bu eşleştirme alanları, bir tablodan her kayıt için benzersiz bir tanımlayıcı
sunan Birincil Anahtar (PK) ve diğer tablodaki Yabancı Anahtar (FK) dır.
İlişki Türleri
Bir-Çok İlişkisi
Çok-Çok İlişkisi
Bir-Bir İlişkisi
1)Bir-Çok İlişkisi (İlişkisel Veritabanı Tasarımı)
İlişkisel Veri Tabanlarında en çok kullanılan ilişki türü, Bir–Çok İlişkisi’dir. Bir–Çok İlişkisinde,
“A” Tablosundaki bir kayıt, “B” tablosunda pek ÇOK eşleşen kayda sahiptir. Ancak “B”
Tablosundaki kayıt, “A” Tablosunda yalnızca BİR eşleşen kayda sahiptir.
Örneğin;
Bir Yazar,
birden ÇOK kitap yazabilir.
ancak her kitabın yalnızca BİR Yazarı vardır.
Birden çoğa ilişkide bir tablodaki anahtar ilişkili olduğu tabloda birden çok kez olabilir.
Şekille gösterelim:
Yukarıdaki şekilde bir karikatürcünün birden fazla karikatüre sahip olabileceğini çıkartabiliriz.
www.dersmax.net
Veri Tabanında İlişki Türleri
1
Veri Tabanında İlişki Türleri
Çünkü Karikatür tablosunda ilişkili olduğu tablonun anahtarı bulunuyor (Foreign Key). Bu ilişki
türü en çok karşılaşılan ilişki türüdür.
2) Çok – Çok İlişkisi (İlişkisel Veritabanı Tasarımı)
Çok–Çok İlişkisinde, “A” Tablosundaki bir kayıt, “B” tablosunda bulunan pek ÇOK kayıtla
eşleşebilir. Ve “B” Tablosundaki bir kayıt, “A” Tablosunda bulunan pek ÇOK kayıtla eşleşebilir.
Bu tür bir ilişki, birincil anahtarın birden fazla alanı içerdiği, birleşme tablosu olarak
adlandırılan, A ve B Tablolarından gelen yabancı anahtarların yer aldığı üçüncü bir tablonun
tanımlanması koşuluyla mümkündür.
Çoktan çoğa ilişikiler karmaşıklığı nedeniyle veritabanında bir çok soruna neden oldur.
Soruna neden temek olarak şudur Bir tablodaki anahtar ilişkili olduğu tabloda birden çok kez
olabilirken karşıtı da doğrudur.Bu yüzden istenilen ilişkiselliği sağlamak için ilişkiyi birden çoğa
indirgemek gerekir. Yani araya fazladan bir tablo koyarak karmaşıklıktan kurtulmuş oluruz.
Örneğin;
Bir futbolcu birden fazla takımda oynayabilirken aynı takım birden fazla oyuncu oynatabilir
olduğunu varsayalım.
Öncelikle Futbolcular ve Takımlar adında aşağıdaki şekildeki gibi iki tane tablo oluşturalım:
Anahtarı ilişkisel olduğu tabloya Foreign Key ( Komşu Anahtar) ekleyerek çoktan çoğa ilişkiyi
sağlamak düşünürseniz mümkün değil.Bu yüzden araya aşağıdaki gibi bir tablo ekleyelim:
www.dersmax.net
Veri Tabanında İlişki Türleri
2
Veri Tabanında İlişki Türleri
Böylece hedefi tam 12'den vuracak şekilde ilişkisel veritabanı tasarımını yapmış olduk.
Çoktan çoğa ilişkiyi birden çoğa indirgediğimiz için iki tane birden çoğa ilişki elde ettik yine bu
sebepten iki tane FK (Foreign Key) ortaya çıktı. Dolayısıyla SQL sorgusu iki adet olacak.
Birincisi bir futbolcunun oynadığı takımlar, ikicisi ise bir takımda oynayan futbolcular olacak.
3)Bir-Bir İlişkisi (İlişkisel Veritabanı Tasarımı)
Bir-Bir İlişkisi'nde, Tablo A'da Tablo B'deki her kayıtla eşleşen yalnızca BİR kayıt ve Tablo B'de
Tablo A'daki her kayıtla eşleşen sadece BİR kayıt olabilir.
Bu şekilde ilişkili olan çoğu bilgi tek bir tabloda olacağından, bu tür ilişki yaygın değildir.
Güvenlik nedenleriyle tablonun bir bölümünü yalıtmak veya ana tablonun yalnızca bir alt
kümesiyle ilgili bilgileri saklamak üzere, birçok alan içeren bir tabloyu bölmek için Bir-Bir
İlişkisi kullanabilirsiniz.
Örneğin;
Fon toplamak amacıyla oynanan bir futbol oyununa katılan Çalışanların bilgilerini izlemek için
bir Tablo oluşturmak isteyebilirsiniz. Çalışanlar Tablosunda, Futbolcular Tablosundaki her
futbolcuyla eşleşen bir kayıt vardır.
Çalışanlar Tablosunda her Futbolcuyla eşleşen BİR kayıt vardır.
Bu değer kümesi, ÇalışanNo alanının ve Çalışanlar Tablosu-nun bir alt kümesidir.
Kural basitir ; tablodaki anahtar ilişkili tabloda sadece bir tane olabilir.
www.dersmax.net
Veri Tabanında İlişki Türleri
3
Veri Tabanında İlişki Türleri
Yukarıdaki şekilde öğrenciler ve Liseler adında iki tablo var. Öğrencinin mezun olduğu lise bir
tane olacağını düşünürsek şekildeki ilişki türü buna uygundur. Öğrenciler tablosundaki
Mezun_Lise_Id alanı ile ilişkili tabloyla alakalı Lise_Id alanı eşleştirilerek ilişki sağlanmış
olunuyor.
Kaynaklar
www.keciborlumyo.net/00.GetFile.aspx
http://www.zskblog.com/detay.aspx
Seda Sözer
www.dersmax.net
Veri Tabanında İlişki Türleri
4
Download