SQL - Foreign Key: Membangun Hubungan Antara Tabel

Halo teman-teman pecinta basis data! Hari ini, kita akan mengemban sebuah perjalanan menarik ke dunia SQL Foreign Keys. Sebagai guru komputer yang ramah di lingkungan sekitar Anda, saya di sini untuk mengarahkan Anda melalui konsep penting ini yang membentuk tulang punggung basis data relasional. Jadi, ambil papan cat virtual Anda, dan mari kita masuk ke dalam!

SQL - Foreign Key

Foreign Key SQL: Menghubungkan Titik-Titik

Bayangkan Anda sedang mengatur sebuah perpustakaan besar. Anda memiliki satu rak untuk buku dan lainnya untuk penulis. Apakah Anda merasa senang jika Anda dapat menghubungkan setiap buku ke penulisnya tanpa harus menulis detail lengkap penulis pada setiap buku? Itu tepat apa yang dilakukan Foreign Key di SQL!

Apa Itu Foreign Key?

Foreign Key adalah kolom (atau kumpulan kolom) di salah satu tabel yang mengacu ke Primary Key di tabel lain. Itu seperti jembatan antara dua tabel, mendirikan hubungan antar mereka.

mari kita lihat contoh sederhana:

CREATE TABLE Authors (
AuthorID INT PRIMARY KEY,
AuthorName VARCHAR(100)
);

CREATE TABLE Books (
BookID INT PRIMARY KEY,
Title VARCHAR(200),
AuthorID INT,
FOREIGN KEY (AuthorID) REFERENCES Authors(AuthorID)
);

Dalam contoh ini, AuthorID di tabel Books adalah Foreign Key yang mengacu ke AuthorID di tabel Authors. Ini berarti setiap buku terhubung ke penulisnya, tapi kita tidak perlu mengulangi semua detail penulis untuk setiap buku.

Mengapa Menggunakan Foreign Keys?

  1. Integritas Data: Foreign Keys memastikan bahwa Anda tidak dapat menambahkan buku dengan penulis yang tidak ada.
  2. Hubungan: Mereka memungkinkan Anda menciptakan hubungan yang berarti antara tabel.
  3. Efisiensi: Anda dapat menyimpan data sekali dan mengacu kepadanya banyak kali, menyimpan ruang dan mengurangi redundant.

Penambahan Constraint Foreign Key ke Kolom yang Ada

kadang-kadang, Anda mungkin ingin menambahkan constraint Foreign Key ke kolom yang sudah ada. Jangan khawatir, SQL telah menyiapkan hal ini untuk Anda! Berikut cara Anda dapat melakukannya:

ALTER TABLE Books
ADD CONSTRAINT FK_AuthorID
FOREIGN KEY (AuthorID) REFERENCES Authors(AuthorID);

Perintah ini menambahkan constraint Foreign Key ke kolom AuthorID yang sudah ada di tabel Books. Kita menamai constraint kita FK_AuthorID - selalu sebuah praktek baik untuk memberi nama yang berarti ke constraint Anda.

Catatan Peringatan

Sebelum menambahkan constraint Foreign Key ke kolom yang ada, pastikan bahwa semua nilai di kolom itu memiliki nilai yang sesuai di tabel yang dituju. Jika tidak, SQL akan memberikan kesalahan!

Menghapus FOREIGN KEY: Memutuskan Hubungan Tidak sulit

kadang-kadang, hubungan berubah, dan Anda mungkin perlu menghapus constraint Foreign Key. Berikut cara Anda dapat melakukannya:

ALTER TABLE Books
DROP FOREIGN KEY FK_AuthorID;

Perintah ini menghapus constraint Foreign Key yang kita tambahkan sebelumnya. Ingat, ini tidak menghapus kolom atau datanya - hanya menghapus hubungan antara tabel.

Primary Key vs Foreign Key: Duo Dinamik

Pertimbangkan Primary Keys dan Foreign Keys sebagai duo dinamik di dunia basis data. Mereka masing-masing memiliki perannya, tapi mereka bekerja terbaik bersama. mari kitauraikan:

Primary Key

  • Mengidentifikasi setiap rekord di tabel
  • Harus berisi nilai UNIK dan tidak dapat berisi NULL
  • Sebuah tabel hanya dapat memiliki SATU Primary Key

Foreign Key

  • Mengacu ke Primary Key di tabel lain
  • Dapat berisi nilai duplikat dan NULL
  • Sebuah tabel dapat memiliki Banyak Foreign Keys

Berikut adalah tabel yang menguraikan perbedaan utama mereka:

Fitur Primary Key Foreign Key
Unik Harus unik Dapat duplikat
NULL Tidak dapat NULL Dapat NULL
Jumlah per tabel Hanya satu Dapat banyak
Tujuan Mengidentifikasi rekord di tabelnya Mengacu ke rekord di tabel lain

mari kita lihat mereka dalam aksi dengan contoh yang lebih kompleks:

CREATE TABLE Customers (
CustomerID INT PRIMARY KEY,
Name VARCHAR(100),
Email VARCHAR(100)
);

CREATE TABLE Orders (
OrderID INT PRIMARY KEY,
OrderDate DATE,
CustomerID INT,
FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);

CREATE TABLE OrderItems (
OrderItemID INT PRIMARY KEY,
OrderID INT,
ProductName VARCHAR(100),
Quantity INT,
FOREIGN KEY (OrderID) REFERENCES Orders(OrderID)
);

Dalam contoh ini, kita memiliki tiga tabel:

  1. Customers dengan CustomerID sebagai Primary Key
  2. Orders dengan OrderID sebagai Primary Key dan CustomerID sebagai Foreign Key yang mengacu ke Customers
  3. OrderItems dengan OrderItemID sebagai Primary Key dan OrderID sebagai Foreign Key yang mengacu ke Orders

Struktur ini memungkinkan kita untuk melacak pelanggan yang memesan mana order, dan apa items yang ada di setiap order, semua tanpa perlu mengulangi informasi pelanggan atau order yang tidak diperlukan.

Kesimpulan: Menggabungkan Semua

Dan itu dia, teman-teman! Kita telah melakukan perjalanan melalui dunia Foreign Keys, dari pembuatannya sampai pengubahan dan penghapusan. Kita telah melihat bagaimana mereka bekerja bersama dengan Primary Keys untuk menciptakan struktur basis data yang kuat dan efisien.

Ingat, Foreign Keys adalah seperti tetangga ramah di lingkungan basis data Anda - mereka membantu tabel untuk berkomunikasi dan bekerja bersama harmonis. Mereka memastikan integritas data, menciptakan hubungan yang berarti, dan menjaga basis data Anda berjalan mulus.

Sementara Anda terus mengemban petualangan SQL Anda, terus mencoba konsep ini. Cobalah membuat tabel Anda sendiri, tambahkan beberapa constraint Foreign Key, dan lihat bagaimana mereka mempengaruhi operasi data Anda. Semakin Anda berlatih, semakin natural hal ini akan menjadi.

Selamat coding, dan semoga permintaan Anda selalu mengembalikan hasil yang Anda harapkan!

Credits: Image by storyset