Pengantar Hubungan Database

Istilah basis data "relasional" atau "hubungan" menggambarkan cara data dalam tabel terhubung.

Pendatang baru ke dunia database sering mengalami kesulitan melihat perbedaan antara database dan spreadsheet. Mereka melihat tabel data dan mengenali bahwa basis data memungkinkan Anda mengatur dan meminta data dengan cara-cara baru, tetapi gagal memahami signifikansi hubungan antara data yang memberi teknologi basis data relasional dengan namanya.

Hubungan memungkinkan Anda untuk menggambarkan koneksi antara tabel database yang berbeda dengan cara yang kuat. Hubungan ini kemudian dapat dimanfaatkan untuk melakukan kueri lintas-tabel yang kuat, yang dikenal sebagai gabungan.

Jenis Hubungan Database

Ada tiga jenis hubungan basis data yang berbeda, masing-masing diberi nama sesuai dengan jumlah baris tabel yang mungkin terlibat dalam hubungan tersebut. Masing-masing dari ketiga jenis hubungan ini ada di antara dua tabel.

Hubungan Merujuk-Diri: Sebuah Kasus Khusus

Hubungan referensi diri terjadi ketika hanya ada satu meja yang terlibat. Salah satu contoh umum adalah tabel Karyawan yang berisi informasi tentang pengawas setiap karyawan. Setiap supervisor juga seorang karyawan dan memiliki atasannya sendiri. Dalam hal ini, ada hubungan referensi mandiri satu-ke-banyak, karena setiap karyawan memiliki satu supervisor, tetapi setiap supervisor mungkin memiliki lebih dari satu karyawan.

Menciptakan Hubungan Dengan Kunci Asing

Anda membuat hubungan antar tabel dengan menentukan kunci asing . Kunci ini memberitahu database relasional bagaimana tabel terkait. Dalam banyak kasus, kolom pada Tabel A berisi kunci utama yang direferensikan dari Tabel B.

Pertimbangkan lagi contoh tabel Guru dan Siswa. Tabel Pengajar hanya berisi ID, nama, dan kolom kursus:

Guru
InstrukturID Nama guru Tentu saja
001 John Doe Inggris
002 Jane Schmoe Matematika

Tabel Siswa mencakup ID, nama, dan kolom kunci asing:

Siswa
Identitas Siswa Nama siswa Teacher_FK
0200 Lowell Smith 001
0201 Brian Short 001
0202 Corky Mendez 002
0203 Monica Jones 001

Kolom Teacher_FK di tabel Siswa referensi nilai kunci utama dari instruktur di tabel Pengajar.

Seringkali, perancang basis data akan menggunakan "PK" atau "FK" di nama kolom untuk dengan mudah mengidentifikasi kunci primer atau kolom kunci asing.

Perhatikan bahwa dua tabel ini menggambarkan hubungan satu-ke-banyak antara guru dan siswa.

Hubungan dan Integritas Referensi

Setelah Anda menambahkan kunci asing ke tabel, Anda kemudian dapat membuat kendala basis data yang menegakkan integritas referensial antara dua tabel. Ini memastikan bahwa hubungan antar tabel tetap konsisten. Ketika satu tabel memiliki kunci asing ke tabel lain, konsep integritas referensial menyatakan bahwa setiap nilai kunci asing dalam Tabel B harus mengacu pada catatan yang ada pada Tabel A.

Menerapkan Hubungan

Bergantung pada basis data Anda, Anda mengimplementasikan hubungan antar tabel dengan cara yang berbeda. Microsoft Access menyediakan wizard yang dengan mudah memungkinkan Anda untuk menghubungkan tabel dan juga menegakkan integritas referensial.

Jika Anda menulis SQL secara langsung, Anda akan terlebih dahulu membuat tabel Pengajar, menyatakan kolom ID sebagai kunci utama:

CREATE TABLE Teachers (

InstrukturID INT AUTO_INCREMENT PRIMARY KEY,
Teacher_Name VARCHAR (100),
Kursus VARCHAR (100)
);

Saat Anda membuat tabel Siswa, Anda menyatakan kolom Teacher_FK menjadi kunci asing yang merujuk pada kolom InstructorID di tabel Pengajar:

CREATE TABLE Students (
StudentID INT AUTO_INCREMENT PRIMARY KEY,
Student_Name VARCHAR (100), Teacher_FK INT,
KUNCI ASING (Teacher_FK) REFERENSI Guru (InstrukturID))
);

Menggunakan Hubungan untuk Bergabung Tabel

Setelah Anda membuat satu atau lebih hubungan dalam database Anda, Anda dapat memanfaatkan kekuatan mereka dengan menggunakan SQL JOIN queries untuk menggabungkan informasi dari beberapa tabel. Jenis gabungan yang paling umum adalah SQL INNER JOIN, atau gabungan sederhana. Jenis gabung ini mengembalikan semua rekaman yang memenuhi ketentuan penggabungan dari beberapa tabel. Misalnya, ketentuan GABUNG ini akan mengembalikan Student_Name, Teacher_Name, dan Kursus tempat kunci asing di tabel Siswa cocok dengan kunci utama di tabel Pengajar:

SELECT Students.Student_Name, Teachers.Teacher_Name, Teachers.Course
DARI Siswa
INNER GABUNG Guru
ON Students.Teacher_FK = Teachers.InstructorID;

Pernyataan ini menghasilkan sesuatu tabel seperti ini:

Kembali Tabel dari Pernyataan Bergabung SQL

Student_NameTeacher_NameCourseLowell SmithJohn DoeEnglishBrian ShortJohn DoeInggrisCorky MendezJane SchmoeMathMonica JonesJohn DoeInggris