Konular

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: Veri Tabanında İlişki Türleri

 

 

 

 

 

 

 

 

 

Yukarıdaki şekilde bir karikatürcünün birden fazla karikatüre sahip olabileceğini çıkartabiliriz. Çü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:

Veri Tabanında İlişki Türleri

 

 

 

 

 

 

 

 

 

 

 

 

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:    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.

 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

Seda Sözer

 

 

Yorumunuzu Ekleyin
Veri Tabanında İlişki Türleri Yorumları +1 Yorum
  • duran
    1
    duran
    bu sefer iyi olmuş
    03 Kasım 2013 17:22:47, Pazar
Veritabanı Nedir?

Veritabanı basit olarak bilgi depolayan bir yazılımdır. Bir çok yazılım bilgi depolayabilir ama aradaki fark, veritabanın bu bilgiyi verimli ve hizli bir şekilde yönetip degiştirebilmesidir. Veritabanı, bilgi sisteminin kalbidir ve etkili kullanmakla değer kazanır. Bilgiye gerekli oldugu zaman ulaşabilmek esastır. Indeksi olmayan bir kütüphane ve bütün kitapların ayni kapağa sahip oldugunu düşündüğünüzde kütüphane kullanıcılarının ne kadar çok işi olacağını tahmin edersiniz. Bir veritabani bir kütüphanenin mükemmel bir indeks sistemi oldugu gibi, aynı zamanda kütüphanenin kendisidir. İlişkisel veritabanı yönetim sistemleri relational database management systems - rdbms büyük miktarlardaki verilerin güvenli bir şekilde tutulabildiği, bilgilere hızlı erişim imkanlarının saglandığı, bilgilerin bütünlük içerisinde tutulabildigi ve birden fazla kullanıcıya aynı anda bilgiye erişim imkanının sağlandığı programlardır. Oracle veritabani da bir ilişkisel veri tabanı yönetim sistemidir.

140,563 Okunma 5 Yorum 12/10/2009 18:59:51 14/05/2014 19:00:28

Sql Komutları

Sql komutlarından DISTINCT, IN, NOT IN, IN(SELECT...), ANY, ALL, EXISTS, NOT EXISTS, UNION, EXCEPT, BETWEEN kullanımı

101,599 Okunma 8 Yorum 05/05/2008 12:04:24 08/06/2013 12:05:39

Sql Fonksıyonlar, Count, Sum, Avg, Max, Mın, Lower, Upper, Length, Round, Mod, Left, Rıght, Concat, If

Sql fonksıyonlar, count, sum, avg, max, mın, lower, upper, length, round, mod, left, right, concat, if

94,662 Okunma 10 Yorum 12/05/2008 10:08:47

Veri Tabanlarında Anahtar Kavramı Birincil Ve Yabancı Anahtar (İkincil Anahtar) Kavramı

Veri tabanlarında anahtar kavramı birincil ve ikincil ve yabancı anahtar.

72,298 Okunma 6 Yorum 09/11/2009 03:21:06 15/12/2012 03:21:21

Veri Tabanlarında Anahtar Kavramı Birincil Ve İkincil Anahtar

Veri tabanlarında anahtar kavramı birincil ve ikincil anahtar

54,940 Okunma 7 Yorum 09/11/2009 09:23:16

Veritabanı Nedir?

Veritabanının nedir? bileşenleri nelerdir?

49,446 Okunma 0 Yorum 18/01/2010 08:27:01 11/01/2019 21:01:33

Fonksiyonlar, Count, Sum, Avg, Max, Mın, Lower, Upper, Length, Round, Mod, Left, Right, Concat, If

Sql kendi içinde bir cok fonksiyonu barındırır, bunlar sayım ve hesaplama için kullanılabilir.

49,155 Okunma 2 Yorum 12/05/2008 10:02:27

Veri Tabanlarında Anahtar Kavramı Birincil Ve İkincil Anahtar

Veri tabanlarında anahtar kavramı birincil ve ikincil anahtar

38,323 Okunma 0 Yorum 09/11/2009 09:13:39

Order By ve Limit Kullanımı

Order By ve Limit komutlarının kullanım şekilleri ve görevleri

36,252 Okunma 4 Yorum 04/01/2009 21:56:57

Join İşlemleri

İlişkisel veritabanının en temelinde birden fazla tablo üstünde birlikte işlem yapabilmek yatar. Bu sayede verilerin tekrarlaması önlenmiş olur ve sonuçta veri yönetimi kolaylaşır.

35,307 Okunma 3 Yorum 12/05/2008 22:23:30 20/02/2015 22:23:40

Insert, Delete, Update

Insert, insert ile başka tablodan kayıt almak, delete, update

32,627 Okunma 1 Yorum 26/05/2008 03:36:52

View Oluşturma

Sql komutlarından view oluşturma ve faydaları, myadminde gösterimi

32,311 Okunma 3 Yorum 28/04/2008 21:58:04

Count, Sum, Avg, Max, Mın, Lower, Upper, Length, Round, Mod, Left, Rıght, Concat, If Fonksiyonları

Fonksiyonların anlatımı

28,300 Okunma 1 Yorum 12/05/2008 10:05:54

Veri Tabanı Karşılaştırması

En çok tercih edilen veri tabanlarının karşılaştırılması.

26,101 Okunma 1 Yorum 12/10/2009 10:12:54

Lıke Joker Karakterler, Is [not] Null, Order By, Group By, As

25,992 Okunma 0 Yorum 12/05/2008 09:55:55

HAVING kullanımı

25,714 Okunma 0 Yorum 05/03/2009 03:24:39

Veri Tabanları Karşılaştırması

Veri tabanlarının özellikleri

25,534 Okunma 1 Yorum 12/10/2009 10:46:47

Sql Komutları

Dıstınct, ın, not ın, ınselect..., any, all, exısts, not exısts, unıon, except, between

25,466 Okunma 0 Yorum 05/05/2008 10:21:47

Veri Tabanı Programlamaya Giriş

Kitap özeti

23,947 Okunma 0 Yorum 14/04/2008 11:08:34

Sql Uygulaması

23,413 Okunma 0 Yorum 12/05/2008 11:28:43

Veritabanlarında İlişki Türleri

1 e 1, 1 e n, n e n

23,361 Okunma 0 Yorum 09/11/2009 08:54:07

Postgresqlin Özellikleri

Postgresql nedir?postgresqlin tarihçesi?postgresqlin özellikleri nelerdir?

23,135 Okunma 1 Yorum 19/10/2009 09:13:34

Sql Komutlarından Select Sorgusu Ve Myadmin Üzerinden Anlatımı

22,941 Okunma 0 Yorum 28/04/2008 08:55:15

Veri Tabanlarında İlişki

22,929 Okunma 1 Yorum 09/11/2009 08:59:35

Veri Tabanlarında İlişki Türleri

Veri tabanlarında ilişki türleri

22,460 Okunma 0 Yorum 21/12/2009 09:18:47

Count, Sum, Avg, Max, Min, Lower, Upper, Length, Round, Mod, Left, Right, Concat

Sql fonksiyonlarından bazıları

21,349 Okunma 0 Yorum 12/05/2008 09:52:16

Joinler

Joinler, inner join, left join, right join

20,987 Okunma 1 Yorum 26/05/2008 11:41:45 20/02/2015 22:25:34

Yükleniyor...