İlişkisel ve ilişki veritabanı terimleri, tablolardaki verilerin bağlanma şeklini tanımlar. İlişkisel bir veritabanı, belirli bir anahtarla birbirine bağlanan iki veya daha fazla tablodan oluşur. İlişkisel bir veritabanı, büyük veri girişimlerinde yaygın olan yapılandırılmamış veritabanlarından farklıdır. İlişkisel veritabanları, tabloların nasıl tanımlandığı ve tablolar arasında neyin geçerli bir ilişki oluşturduğu konusunda katı kurallar gerektirme eğilimindedir.
Veritabanı İlişkisi Türleri
İlişkiler, veritabanı tabloları arasındaki bağlantıları güçlü yollarla tanımlamanıza olanak tanır. Bu ilişkiler daha sonra JOIN'ler olarak bilinen güçlü tablolar arası sorguları gerçekleştirmek için kullanılabilir.
Her biri ilişkide yer alan tablo satırlarının sayısına göre adlandırılan üç tür veritabanı ilişkisi vardır. Bu üç ilişki türünün her biri iki tablo arasında bulunur.
- Bire bir ilişkiler, ilk tablodaki her girişin ikinci tabloda yalnızca bir karşılığı olduğunda ortaya çıkar. Bire bir ilişkiler nadiren kullanılır çünkü tüm bilgileri tek bir tabloya koymak genellikle daha verimlidir. Bazı veritabanı tasarımcıları, başka bir tablodaki verilerin bir alt kümesini içeren tablolar oluşturarak bu ilişkiden yararlanır.
- Birden çoğa ilişkiler en yaygın veritabanı ilişkisi türüdür. Tablo A'daki her kayıt Tablo B'deki bir veya daha fazla kayda karşılık geldiğinde, Tablo B'deki her kayıt Tablo A'daki yalnızca bir kayda karşılık geldiğinde ortaya çıkarlar. Örneğin, bir ilkokuldaki Öğretmenler tablosu ile Öğrenciler tablosu arasındaki ilişki veritabanı büyük olasılıkla bire çok ilişki olacaktır çünkü her öğrencinin yalnızca bir öğretmeni vardır, ancak her öğretmenin birkaç öğrencisi vardır. Bu birden çoğa tasarım, yinelenen verileri ortadan kaldırmaya yardımcı olur.
- Çoktan çoğa ilişkiler, Tablo A'daki her kayıt Tablo B'deki bir veya daha fazla kayda karşılık geldiğinde ve Tablo B'deki her kayıt bir veya daha fazla kayda karşılık geldiğinde oluşur. Tablo A'da. Örneğin, Öğretmenler tablosu ile Dersler tablosu arasındaki ilişki büyük olasılıkla çoktan çoğa olacaktır çünkü her öğretmen birden fazla ders verebilir ve her dersin birden fazla öğretmeni olabilir.
Alt Satır
Kendinden referanslı ilişkiler, ilgili yalnızca bir tablo olduğunda ortaya çıkar. Yaygın bir örnek, her çalışanın amiri hakkında bilgi içeren bir Çalışanlar tablosudur. Her yönetici aynı zamanda bir çalışandır ve bir amiri vardır. Bu durumda, her çalışanın bir amiri olduğundan, ancak her amirin birden fazla çalışanı olabileceğinden, bire çok öz referans ilişkisi vardır.
Yabancı Anahtarlarla İlişki Oluşturma
Bir yabancı anahtar belirterek tablolar arasında ilişkiler oluşturursunuz. Bu anahtar ilişkisel veritabanına tabloların nasıl ilişkili olduğunu söyler. Çoğu durumda, Tablo A'daki bir sütun, Tablo B'den başvurulan birincil anahtarları içerir.
Öğretmenler ve Öğrenciler tablolarının örneğini düşünün. Öğretmenler tablosu bir kimlik, bir ad ve bir kurs sütunu içerir:
InstructorID | Öğretmen_Adı | Kurs |
001 | John Doe | İngilizce |
002 | Jane Schmoe | Matematik |
Öğrenciler tablosu bir kimlik, ad ve bir yabancı anahtar sütunu içerir:
StudentID | Öğrenci_Adı | Öğretmen_FK |
0200 | Lowell Smith | 001 |
0201 | Brian Short | 001 |
0202 | Corky Mendez | 002 |
0203 | Monica Jones | 001 |
Öğrenciler tablosundaki Teacher_FK sütunu, Öğretmenler tablosundaki bir eğitmenin birincil anahtar değerine başvurur. Veritabanı tasarımcıları, birincil anahtarı veya yabancı anahtar sütununu tanımlamak için genellikle sütun adında PK veya FK kullanır.
Bu iki tablo, öğretmenler ve öğrenciler arasındaki bire çok ilişkiyi göstermektedir.
İlişkiler ve Referans Bütünlüğü
Bir tabloya yabancı anahtar ekledikten sonra, iki tablo arasında referans bütünlüğünü zorlayan bir veritabanı kısıtlaması oluşturun. Bu adım, tablolar arasındaki ilişkilerin tutarlı kalmasını sağlar. Bir tablonun başka bir tablonun yabancı anahtarı varsa, başvuru bütünlüğü, Tablo B'deki herhangi bir yabancı anahtar değerinin Tablo A'daki mevcut bir kayda başvurmasını gerektirir.
İlişkileri Uygulama
Veritabanınıza bağlı olarak, tablolar arasındaki ilişkileri farklı şekillerde uygulayacaksınız. Microsoft Access, tabloları bağlamanıza ve ayrıca bilgi bütünlüğünü zorlamanıza olanak tanıyan bir sihirbaz sağlar.
Doğrudan SQL yazıyorsanız, önce bir ID sütununun birincil anahtar olduğunu bildirerek Teachers tablosunu oluşturun:
CREATE TABLE Teachers (InstructorID INT AUTO_INCREMENT PRIMARY KEY, Öğretmen_Adı VARCHAR(100), Kurs VARCHAR(100));
Öğrenciler tablosunu oluşturduğunuzda, Teacher_FK sütununun, Teachers tablosundaki InstructorID sütununa başvuran bir yabancı anahtar olduğunu beyan edersiniz:
TABLO OLUŞTUR Öğrenciler (StudentID INT AUTO_INCREMENT PRIMARY KEY, Student_Name VARCHAR(100), Teacher_FK INT, YABANCI ANAHTAR (Öğretmen_FK) REFERANSLAR Teachers(InstructorID)));
Masaları Birleştirmek İçin İlişkileri Kullanma
Veritabanınızda bir veya daha fazla ilişki oluşturduktan sonra, birden çok tablodaki bilgileri birleştirmek için SQL JOIN sorgularını kullanarak güçlerinden yararlanın. En yaygın birleştirme türü, basit bir birleştirme olan SQL INNER JOIN'dir. Bu tür birleştirme, bir veya daha fazla tablodan birleştirme koşulunu karşılayan tüm kayıtları döndürür.
Örneğin, bu JOIN koşulu, Öğrenci_Adı, Öğretmen_Adı ve Kurs'u döndürür; burada Öğrenciler tablosundaki yabancı anahtar, Öğretmenler tablosundaki birincil anahtarla eşleşir:
SELECT Students. Student_Name, Teachers. Teacher_Name, Teachers. Course
FROM Students
INNER JOIN TeachersON Students. Teacher_FK=Teachers. InstructorID;
Bu ifade şuna benzer bir tablo üretir:
Öğrenci_Adı | Öğretmen_Adı | Kurs |
Lowell Smith | John Doe | İngilizce |
Brian Short | John Doe | İngilizce |
Corky Mendez | Jane Schmoe | Matematik |
Monica Jones | John Doe | İngilizce |