Geniş Ekran Modu Otomatik Ekran Boyutu Font Boyutunu Azalt Font Boyutunu Azalt Font Boyutunu Normal Yap Yazdır

Veri Tabanlarında İlişki Türleri

Veri tabanlarında ilişki türleri

İlişkisel veritabanın tasarımının avantajlarına kısaca göz attıktan sonra ilişkisel veritabanında olabilecek 3 adet ilişki türünü sıra sıra inceleyelim:

  • Bire Bir
  • Birden Çoğa
  • Çoktan Çoğa

Bire Bir İlişki Türü:

(İlişkisel Veritabanı Tasarımı)

 

Kural basitir ; tablodaki anahtar ilişkili tabloda sadece bir tane olabilir.

 

Aynı mantığı şekille gösterelim: (İlişkisel Veritabanı Tasarımı)



ilişkisel veritabanı  tasarımı (dizayn)  1

Yukarıdaki şekilde

Ogrenciler

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.

Ogrenciler

tablosundaki

Mezun_Lise_Id

alanı ile ilişkili tabloyla alakalı

Lise_Id

alanı eşleştirilerek ilişki sağlanmış olunuyor.

 

Eğer ogrenci ve mezun olduğu lise bilgisini birleştirerek veritabanını sorgulamak istersek aşağıdaki SQL sorgusunu çalıştırmamız yeterli olacaktır:

 

1 SELECT * FROM Ogrenciler, Liseler WHERE Ogrenciler.Mezun_Lise_Id = Liseler.Lise_Id

Yapılan kısaltmalara açıklık getirelim.

 

(PK) : Primary Key (Birincil Anahtar)

 

(FK) : Foreign Key (Komşu Anahtar)



Birden Çoğa İlişki Türü:

(İlişkisel Veritabanı Tasarımı)

 

Birden çoğa ilişkide bir tablodaki anahtar ilişkili olduğu tabloda birden çok kez olabilir.

 

Şekille gösterelim: (İlişkisel Veritabanı Tasarımı)



ilişkisel veritabanı  tasarımı (dizayn)  2

Yukarıdaki şekilde bir karikaturcunu birden fazla karikature sahip olabileceğini çıkartabiliriz. Çünkü Karikatur 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. Karikatürcü ve karikatur bilgisini veritabanından çekecek olursak yazacağımız SQL kodu şöyle olurdu:

1 SELECT * FROM Karikaturcu, Karikatur WHERE Karikaturcu.Karikaturcu_Id = Karikatur.Karikatur_Id

Çoktan Çoğa İlişki Türü:

(İlişkisel Veritabanı Tasarımı)

 

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

 

Bunu nasıl yapağımızı örnek vererek açılayayım:

 

Bir futbolcu birden fazla takımda oynayabilirken aynı takım birden fazla oyuncu oynatabilir olduğunu varsayalım.

 

Öncelikle

Futbolcular

ve

Takimlar

adında aşağıdaki şekildeki gibi iki tane tablo olşuturalım: (İlişkisel Veritabanı Tasarımı)



ilişkisel veritabanı  tasarımı (dizayn)  3

Daha önce yaptığımız gibi anahtari 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:



ilişkisel veritabanı tasarımı (dizayn)  4

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 sorugusu iki adet olacak. Birincisi bir futbolcunun oynadığı takımlar, ikicisi ise bir takımda oynayan futbolcular olacak.

 

Birinci sorgumuz (Id numarası 1 olan futbolcunun oynadığı takımları getiren sorgu)

1 SELECT * FROM Futbolcular, Takimlar, Takim_Futbolcu WHERE Takim_Futbolcu.Futbolcu_Id = Futbolcular.Futbolcu_Id AND  Futbolcular.Futbolcu_Id=1

İkinci sorgumuz (Id numarası 1 olan takımda oynayan futbolcuları getiren sorgu)

1 SELECT * FROM Futbolcular, Takimlar, Takim_Futbolcu WHERE Takim_Futbolcu.Takim_Id = Takimlar.Takim_Id AND Takimlar.Takim_Id=1

 

http://www.zskblog.com/detay.aspx?id=21

Yavuz KACAN

Bu içerikle ilgili henüz herhangi bir yorum yapılmamıştır. Bu içerikle ilgili Yorumunuzu eklemek için burayı tıklayınız.

Veri Tabanı

Veritabanı Nedir?
Veritabanının nedir? bileşenleri nelerdir?
Veri Tabanlarında Anahtar Kavramı Birincil Ve İkin...
Veri tabanlarında anahtar kavramı birincil ve ikincil anahtar
Veri Tabanlarında Anahtar Kavramı Birincil Ve İkin...
Veri tabanlarında anahtar kavramı birincil ve ikincil anahtar
Veritabanlarında İlişki Türleri
Veritabanlarında bulunan ilişki türleri.
Veri Tabanlarında Anahtar Kavramı Birincil Ve İkin...
Veri tabanlarında anahtar kavramı birincil ve ikincil anahtar
Veri Tabanlarının Karşılaştırılması
Veri tabanlarının karşılaştırma tablosu
Postgresqlin Özellikleri
Postgresql nedir?postgresqlin tarihçesi?postgresqlin özellikleri nelerdir?
Veritabanı Nedir?
Veritabanı hakkında bilgi
Veri Tabanları Karşılaştırması
Veri tabanlarının özellikleri
Veri Tabanları Karşılaştırması
Bir çok veritabanının bazı kriterlerde karşılaştırılması..
Veri Tabanı Karşılaştırması
En çok tercih edilen veri tabanlarının karşılaştırılması.
Veritabanı Nedir
Veritabani basit olarak bilgi depolayan bir yazilimdir. Birçok yazilim bilgi depolayabilir ama arada...
Order By ve Limit Kullanımı
Order By ve Limit komutlarının kullanım şekilleri ve görevleri
Joinler
Joinler, inner join, left join, right join
Getdate(), Now(), Chr(), Replace()
Sql fonksiyonları getdate, now, chr, replace
Insert, Delete, Update
Insert, insert ile başka tablodan kayıt almak, delete, update
Join İşlemleri
İlişkisel veritabanının en temelinde birden fazla tablo üstünde birlikte işlem yapabilmek yatar. Bu ...
Fonksiyonlar, Count,sum, Avg, Max, Min, Lower, Upp...
Fonksiyonlar, count, sum, avg, max, min, lower, upper, length, round, mod, left, right, concat, if
Like Joker Karakterler, Is [not] Null, Order By, G...
Like joker karakterler, ıs [not] null, order by, group by, as
Like Joker Karakterler, Order By, Group By
Like joker karakterler, order by, group by
Sql Fonksıyonlar, Count, Sum, Avg, Max, Mın, Lower...
Sql fonksıyonlar, count, sum, avg, max, mın, lower, upper, length, round, mod, left, right, concat, ...
Fonksiyonlar, Count, Sum, Avg, Max, Mın, Lower, Up...
Sql kendi içinde bir cok fonksiyonu barındırır, bunlar sayım ve hesaplama için kullanılabilir.
Count, Sum, Avg, Max, Min, Lower, Upper, Length, R...
Sql fonksiyonlarından bazıları
  • 1
  • 2

Ödev Gönder | İncelenmeyi Bekleyen Ödevler | Uygulama Resimleri | Uygulama Resmi Gönder | İnternet Üzerinden Sınav | Test Sorusu Gönder | Sınıf Karneleri | Anketler | Linkler
www.dijitalders.com

bilgidijitalders.com
Bu sayfalar en iyi 1024 x 768 ekran çözünürlüğünde görüntülenir.
Site içerikleri, site kullanıcıları tarafından yollanan içeriklerdir. Her hangi bir içeriğin lisanslı yahut şahsınıza ait olduğunu tarafımıza iletirseniz gerekli düzenlemeyi yapacağız. Kullanılan içerikler, siteyi kullanan öğrenciler ve araştırmacılar için kolaylık sağlamak amacıyla oluşturulmuştur.
Sayfada HATA! Olduğunu Düşünüyorsanız | Sık Kullanılanlara Ekle | www.dijitalders.com'u Ana Sayfam Yap | Web Tasarımcıya e-Posta
Bu site 844,898 kişi tarafından ziyaret edilmiştir.