Istilah database relasional dan relasi menjelaskan cara data dalam tabel terhubung. Database relasional terdiri dari serangkaian dua atau lebih tabel yang dihubungkan oleh kunci tertentu. Database relasional berbeda dari database tidak terstruktur, yang umum dalam inisiatif data besar. Basis data relasional cenderung memerlukan aturan ketat tentang bagaimana tabel didefinisikan dan apa yang membentuk hubungan yang valid antar tabel.
Jenis Hubungan Basis Data
Relationships memungkinkan Anda untuk mendeskripsikan koneksi antar tabel database dengan cara yang ampuh. Hubungan ini kemudian dapat dimanfaatkan untuk melakukan kueri tabel silang yang kuat, yang dikenal sebagai GABUNG.
Ada tiga jenis relasi database, masing-masing diberi nama sesuai dengan jumlah baris tabel yang terlibat dalam relasi tersebut. Masing-masing dari ketiga tipe hubungan ini ada di antara dua tabel.
- Hubungan satu-ke-satu terjadi ketika setiap entri di tabel pertama hanya memiliki satu rekanan di tabel kedua. Hubungan satu-ke-satu jarang digunakan karena seringkali lebih efisien untuk menempatkan semua informasi dalam satu tabel. Beberapa desainer database memanfaatkan hubungan ini dengan membuat tabel yang berisi subset data dari tabel lain.
- Hubungan satu-ke-banyak adalah jenis hubungan basis data yang paling umum. Mereka terjadi ketika setiap record di Tabel A berhubungan dengan satu atau lebih record di Tabel B, tetapi setiap record di Tabel B sesuai dengan hanya satu record di Tabel A. Misalnya, hubungan antara tabel Guru dan tabel Siswa di sekolah dasar database kemungkinan akan menjadi hubungan satu-ke-banyak karena setiap siswa hanya memiliki satu guru, tetapi setiap guru memiliki beberapa siswa. Desain one-to-many ini membantu menghilangkan duplikasi data.
- Hubungan banyak ke banyak terjadi ketika setiap record di Tabel A berhubungan dengan satu atau lebih record di Tabel B, dan setiap record di Tabel B berhubungan dengan satu atau lebih record pada Tabel A. Sebagai contoh, hubungan antara tabel Guru dan tabel Kursus kemungkinan akan banyak ke banyak karena setiap guru dapat mengajar lebih dari satu mata pelajaran, dan setiap mata pelajaran mungkin memiliki lebih dari satu instruktur.
Intisari
Relasi referensi diri terjadi ketika hanya ada satu tabel yang terlibat. Salah satu contoh umum adalah tabel Karyawan yang berisi informasi tentang atasan setiap karyawan. Setiap supervisor juga merupakan karyawan dan memiliki supervisor. Dalam hal ini, ada hubungan referensi diri satu-ke-banyak, karena setiap karyawan memiliki satu supervisor, tetapi setiap supervisor mungkin memiliki lebih dari satu karyawan.
Membuat 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 di Tabel A berisi kunci utama yang direferensikan dari Tabel B.
Perhatikan contoh tabel Guru dan Siswa. Tabel Guru berisi ID, nama, dan kolom kursus:
InstructorID | Nama_Guru | Kursus |
001 | John Doe | Bahasa Inggris |
002 | Jane Schmoe | Matematika |
Tabel Siswa menyertakan ID, nama, dan kolom kunci asing:
StudentID | Nama_Siswa | Teacher_FK |
0200 | Lowell Smith | 001 |
0201 | Brian Pendek | 001 |
0202 | Corky Mendez | 002 |
0203 | Monica Jones | 001 |
Kolom Teacher_FK di tabel Siswa merujuk pada nilai kunci utama seorang instruktur di tabel Guru. Seringkali, perancang basis data menggunakan PK atau FK dalam nama kolom untuk mengidentifikasi kunci utama atau kolom kunci asing.
Dua tabel ini menggambarkan hubungan satu-ke-banyak antara guru dan siswa.
Hubungan dan Integritas Referensial
Setelah menambahkan kunci asing ke tabel, buat batasan database yang menerapkan integritas referensial antara dua tabel. Langkah ini memastikan bahwa hubungan antar tabel tetap konsisten. Ketika satu tabel memiliki kunci asing ke tabel lain, integritas referensial mengharuskan setiap nilai kunci asing di Tabel B harus merujuk ke catatan yang ada di Tabel A.
Melaksanakan Hubungan
Bergantung pada database Anda, Anda akan menerapkan hubungan antar tabel dengan cara yang berbeda. Microsoft Access menyediakan wizard yang memungkinkan Anda menautkan tabel dan juga menerapkan integritas referensial.
Jika Anda menulis SQL secara langsung, buat tabel terlebih dahulu Guru, mendeklarasikan kolom ID sebagai kunci utama:
CREATE TABLE Teachers (InstructorID INT AUTO_INCREMENT PRIMARY KEY, Teacher_Name VARCHAR(100), Course VARCHAR(100));
Saat Anda membuat tabel Siswa, Anda mendeklarasikan kolom Teacher_FK sebagai kunci asing yang mereferensikan kolom InstructorID di tabel Guru:
CREATE TABLE Siswa (StudentID INT AUTO_INCREMENT PRIMARY KEY, Student_Name VARCHAR(100), Teacher_FK INT, FOREIGN KEY (Teacher_FK) REFERENSI Guru(InstructorID)));
Menggunakan Hubungan untuk Bergabung dengan Tabel
Setelah membuat satu atau beberapa hubungan di database Anda, manfaatkan kekuatannya dengan menggunakan kueri SQL JOIN untuk menggabungkan informasi dari beberapa tabel. Jenis gabungan yang paling umum adalah SQL INNER JOIN, yang merupakan gabungan sederhana. Jenis join ini mengembalikan semua record yang memenuhi kondisi join dari satu atau lebih tabel.
Misalnya, kondisi JOIN ini mengembalikan Student_Name, Teacher_Name, dan Course, di mana foreign key di tabel Students cocok dengan primary key di tabel Teachers:
SELECT Students. Student_Name, Teachers. Teacher_Name, Teachers. Course
FROM Students
INNER JOIN TeachersON Students. Teacher_FK=Teachers. InstructorID;
Pernyataan ini menghasilkan tabel seperti ini:
Nama_Siswa | Nama_Guru | Kursus |
Lowell Smith | John Doe | Bahasa Inggris |
Brian Pendek | John Doe | Bahasa Inggris |
Corky Mendez | Jane Schmoe | Matematika |
Monica Jones | John Doe | Bahasa Inggris |