İ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 İ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ı)
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ı)
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ı)
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:
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
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ğe...
Sql komutlarından DISTINCT, IN, NOT IN, IN(SELECT...), ANY, ALL, EXISTS, NOT EXISTS, UNION, EXCEPT, BETWEEN kullanımı
Sql fonksıyonlar, count, sum, avg, max, mın, lower, upper, length, round, mod, left, right, concat, if
Veri tabanlarında anahtar kavramı birincil ve ikincil ve yabancı anahtar.
Veri tabanlarında anahtar kavramı birincil ve ikincil anahtar
Veritabanının nedir? bileşenleri nelerdir?
Sql kendi içinde bir cok fonksiyonu barındırır, bunlar sayım ve hesaplama için kullanılabilir.
Veri tabanlarında anahtar kavramı birincil ve ikincil anahtar
Order By ve Limit komutlarının kullanım şekilleri ve görevleri
İ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.
Sql komutlarından view oluşturma ve faydaları, myadminde gösterimi
Insert, insert ile başka tablodan kayıt almak, delete, update
Fonksiyonların anlatımı
En çok tercih edilen veri tabanlarının karşılaştırılması.
Veri tabanlarının özellikleri
Dıstınct, ın, not ın, ınselect..., any, all, exısts, not exısts, unıon, except, between
Postgresql nedir?postgresqlin tarihçesi?postgresqlin özellikleri nelerdir?
Kitap özeti
1 e 1, 1 e n, n e n
Sql fonksiyonlarından bazıları
Joinler, inner join, left join, right join