"İlişkisel" veya "ilişki" veritabanı terimi, tablolardaki verilerin birbirine bağlandığını açıklar.
Veri tabanları dünyasına yeni gelenler genellikle bir veritabanı ve bir elektronik tablo arasındaki farkı görmek zor bir zaman var. Veri tablolarını görüyorlar ve veri tabanlarının verileri yeni yollarla organize etmenize ve sorgulamanıza izin verdiğini, ancak ilişkisel veritabanı teknolojisi adını veren veriler arasındaki ilişkilerin önemini kavrayamadığını fark ediyorlar.
İlişkiler farklı veritabanı tabloları arasındaki bağlantıları güçlü şekillerde tanımlamanıza olanak tanır. Bu ilişkiler daha sonra birleştirmeler olarak bilinen güçlü çapraz tablo sorguları gerçekleştirmek için kullanılabilir.
Veritabanı İlişkilerinin Türleri
Her biri ilişkide yer alabilecek tablo satırlarının sayısına göre adlandırılan üç farklı veritabanı ilişkisi vardır. Bu üç ilişki türünün her biri iki tablo arasında bulunur.
- Bire bir ilişkiler , birinci tablodaki her girişin ikinci tabloda bir ve sadece bir tane olduğu zaman ortaya çıkar. Bire bir ilişkiler nadiren kullanılır, çünkü tüm bilgileri tek bir tabloya yerleştirmek 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 faydalanır.
- Bire çok ilişkiler , en yaygın veritabanı ilişkisidir. Tablo A'daki her kayıt, Tablo B'deki bir veya daha fazla kayda karşılık geldiğinde oluşur, ancak Tablo B'deki her bir kayıt, Tablo A'da yalnızca bir kayda karşılık gelir. Örneğin, bir Öğretmenler tablosu ve bir ilkokuldaki Öğrenciler tablosu arasındaki ilişki veritabanı bire çok bir ilişki olabilir, çünkü her öğrencinin sadece bir öğretmeni vardır, ancak her öğretmenin birden fazla öğrencisi vardır. Bu bire bir tasarım, çoğaltılan verileri ortadan kaldırmaya yardımcı olur.
- Tablo A'daki her kayıt, Tablo B'deki bir veya daha fazla kayda karşılık geldiğinde çoktan çoğa ilişkisi oluşur ve Tablo B'deki her kayıt, Tablo A'daki bir veya daha fazla kayda karşılık gelir. Örneğin, Öğretmenler ve Kurslar arasındaki ilişki Tablo muhtemelen çoktan çoğa olacaktır çünkü her öğretmen birden fazla ders verebilir ve her ders birden fazla eğitmene sahip olabilir.
Kendi Kendine Referans Olan İlişkiler: Özel Bir Durum
Kendine referans veren ilişkiler, yalnızca bir tablo söz konusu olduğunda ortaya çıkar. Yaygın bir örnek, her çalışanın danışmanı hakkında bilgi içeren bir Çalışan tablosu. Her yönetici aynı zamanda bir çalışan ve kendi denetim otoritesine sahiptir. Bu durumda, her çalışanın bir denetçisi olduğu için, bire-bir çok-kendi kendini referanslama ilişkisi vardır, ancak her yöneticinin birden fazla çalışanı olabilir.
Yabancı Anahtarlarla İlişkiler Oluşturmak
Bir yabancı anahtar belirterek tablolar arasında ilişkiler yaratır. Bu anahtar ilişkisel veritabanını tabloların nasıl ilişkilendirdiğini söyler. Çoğu durumda, Tablo A'daki bir sütun, Tablo B'den başvurulan birincil anahtarları içerir.
Yine Öğretmenler ve Öğrenciler tablolarının örneğini düşünün. Öğretmenler tablosu sadece bir kimlik, bir ad ve bir kurs sütunu içerir:
InstructorID | Öğretmen adı | kurs |
---|---|---|
001 | John Doe | ingilizce |
002 | Jane Schmoe | Matematik |
Öğrenciler tablosunda bir kimlik, ad ve bir yabancı anahtar sütunu bulunur:
Öğrenci Kimliği | Öğrenci adı | Teacher_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 öğretmenin birincil anahtar değerini gösterir.
Sıklıkla, veritabanı tasarımcıları birincil anahtar veya yabancı anahtar sütununu kolayca tanımlamak için sütun adı "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ük
Bir tabloya bir yabancı anahtar ekledikten sonra, iki tablo arasındaki başvuru bütünlüğünü zorlayan bir veritabanı kısıtlaması oluşturabilirsiniz. Bu, tablolar arasındaki ilişkilerin tutarlı kalmasını sağlar. Bir tablonun başka bir tabloya yabancı bir anahtarı varsa, başvuru bütünlüğü kavramı, Tablo B'deki herhangi bir yabancı anahtar değerinin Tablo A'daki mevcut bir kayda başvurması gerektiğini belirtir.
Uygulama İlişkileri
Veritabanınıza bağlı olarak, tablolar arasındaki ilişkileri farklı şekillerde uygularsınız. Microsoft Access, tabloları bağlamanıza ve ayrıca başvuru bütünlüğünü zorlamanıza olanak veren bir sihirbaz sağlar.
Doğrudan SQL yazıyorsanız, öncelikle birincil anahtar olarak bir ID sütunu bildiren Öğretmenler tablosunu oluşturursunuz:
TABLO Öğretmenleri OLUŞTUR
InstructorID INT AUTO_INCREMENT PRIMARY KEY,
Teacher_Name VARCHAR (100),
Kurs VARCHAR (100)
);
Öğrenciler tablosunu oluşturduğunuzda, Teacher_FK sütununu, Öğretmenler tablosunda InstructorID sütununa başvuran bir yabancı anahtar olduğunu bildirirsiniz:
CREATE TABLO Öğrencileri (
Öğrenci Kimliği INT AUTO_INCREMENT PRIMARY KEY,
Student_Name VARCHAR (100), Teacher_FK INT,
YABANCI ANAHTAR (Teacher_FK) REFERANSLAR Öğretmenler (InstructorID))
);
Tablolara Katılmak İç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üçlerini kullanabilirsiniz. Birleştirmenin en yaygın türü bir SQL INNER JOIN veya basit birleşimdir. Bu tür birleştirme, birden çok tablodan birleştirme koşulunu karşılayan tüm kayıtları döndürür. Örneğin, bu JOIN koşulu, Öğrenci tablosundaki Yabancı anahtarın Öğretmenler tablosundaki birincil anahtarla eşleştiği Student_Name, Teacher_Name ve Course'ı döndürür:
SELECT Students.Student_Name, Teachers.Teacher_Name, Teachers.Course
Öğrencilerden
INNER JOIN Öğretmenleri
ON Students.Teacher_FK = Teachers.InstructorID;
Bu ifade şöyle bir tablo üretiyor:
SQL Üyelik Bildiriminden İade Edilen Tablo
Student_NameTeacher_NameCourseLowell SmithJohn DoeİngilizceBrian ShortJohn DoeİngilizceCorky MendezJane SchmoeMathMonica JonesJohn Doeİngilizce