Veritabanı İlişkilerine Giriş

"İ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.

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:

Öğretmenler
InstructorID Öğretmen adı kurs
001 John Doe ingilizce
002 Jane Schmoe Matematik

Öğrenciler tablosunda bir kimlik, ad ve bir yabancı anahtar sütunu bulunur:

Öğrenciler
Öğ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