Apa itu Primary Key, Foregent Key, dan Candidate Key?
Dalam desain database, terdapat konsep-konsep kunci yang penting untuk memahami hubungan antara tabel. Berikut adalah definisi dan contoh dari Primary Key, Foreign Key, dan Candidate Key:
Primary Key (Kunci utama)
Primary key adalah satu atau lebih kolom yang secara unik mengidentifikasi setiap baris (record) dalam tabel. Syarat nilai dari primary key harus unik dan tidak boleh berisi nilai NULL.
Fungsi dari Primary key
- Uniqueness (Keunikannya): Memastikan bahwa setiap baris/rekaman dalam tabel memiliki nilai yang unik. Hal ini memungkinkan setiap data dalam tabel dapat diidentifikasi secara unik.
- Data Integrity (Ketepatan Data): Digunakan untuk menjaga integritas data dalam tabel. Dengan menggunakan kata kunci, kita dapat mencegah duplikasi data atau data yang tidak valid masuk ke dalam tabel.
- Referential Integrity (Integritas Referensial): Untuk menjaga integritas referensial antara tabel dalam database. kata kunci dapat digunakan sebagai foreign key pada tabel lain untuk membuat hubungan antar tabel.
Berikut adalah beberapa contoh penerapan primary key pada ERD
Contoh Primary Key
- Tabel Mahasiswa:
Primary Key: ID MAHASISWAID MAHASISWA
NAMA
JURUSAN
22564379540
Luthfi Halimawan
Teknik Informatika
22436711548
Bimo Surya
Manajemen
- Tabel Buku:
Primary key: ID BUKUID BUKU
JUDUL
PENULIS
101
Kudasai
Brian Khrisna
102
Tentang Kamu
Tere liye
- Tabel Pemesanan:
Primary key: NOMOR ANTRIANNOMOR ANTRIAN
NAMA CUSTOMER
PESANAN
21
Indra
Salad
22
Nayla
Pizza
- Tabel Karyawan:
Primary Key: ID KARYAWANID KARYAWAN
NAMA KARYAWAN
JABATAN
6382924730
Harjo Darmono
Leader
2374291231
Samsudi Cahyono
Staff Produksi
- Tabel Produk:
Primary key: ORDER IDORDER ID
PRODUCT ID
QUANTITY
502
64255239
10
501
66255238
53
Foreign Key (Kunci Asing)
foreign key adalah pengenal unik atau kombinasi pengenal unik yang menghubungkan dua tabel atau lebih dalam suatu database. Foreign key juga sering disebut sebagai kunci asing.
Penggunaan foreign key ini merujuk pada suatu kunci primer yang terdapat pada tabel pertama atau yang biasa dikenal sebagai tabel master pada relasional database.
Fungsi Foreign Key
foreign key biasa digunakan sebagai penanda hubungan antar tabel. Suatu tabel dapat dikatakan asing jika terdapat kolom yang merupakan rujukan terhadap tabel utama. Selain itu, ada beberapa fungsi foreign key yang akan dijelaskan di bawah ini.
- Menghubungkan Tabel: Foreign Key memungkinkan untuk menghubungkan satu tabel dengan tabel lain dalam database. Hal ini memungkinkan untuk menciptakan relasi atau hubungan antara data di dua tabel yang berbeda.
- Memastikan Integritas Referensial: Salah satu fungsi utama dari Foreign Key adalah untuk memastikan integritas referensial. Ini berarti bahwa data yang ada dalam kolom yang merupakan Foreign Key harus sesuai dengan data yang ada dalam kolom Primary Key di tabel yang terhubung.
- Mengamankan Hubungan Antara Data: Dengan menggunakan Foreign Key, Anda dapat mengamankan hubungan antara data. Hal ini memastikan bahwa data yang terkait dengan satu sama lain akan selalu konsisten dan akurat.
Contoh Foreign Key
- Hubungan
antara Tabel Pelanggan (Customer) dan Pesanan (Order):
- Tabel Pelanggan memiliki kolom Kode Pelanggan (CustomerID).
- Tabel
Pesanan memiliki kolom Kode Pelanggan (CustomerID) sebagai foreign key
yang merujuk ke Tabel Pelanggan. Hal ini menghubungkan setiap pesanan
dengan pelanggan yang melakukan pesanan.
- Hubungan antara Tabel Produk (Product) dan Rincian Pesanan (OrderDetail):
- Tabel
Produk memiliki kolom Kode Produk (ProductID).
- Tabel
Rincian Pesanan memiliki kolom Kode Produk (ProductID) sebagai foreign
key yang merujuk ke Tabel Produk. Hal ini menghubungkan setiap rincian
pesanan dengan produk yang dipesan.
- Hubungan
antara Tabel Karyawan (Employee) dan Proyek (Project):
- Tabel
Karyawan memiliki kolom Kode Karyawan (EmployeeID).
- Tabel
Proyek memiliki kolom Kode Manajer (ManagerEmployeeID) sebagai foreign
key yang merujuk ke Tabel Karyawan. Hal ini menghubungkan karyawan yang
bertanggung jawab atas proyek.
- Hubungan
antara Tabel Kategori (Category) dan Produk (Product):
- Tabel
Kategori memiliki kolom Kode Kategori (CategoryID).
- Tabel
Produk memiliki kolom Kode Kategori (CategoryID) sebagai foreign key yang
merujuk ke Tabel Kategori. Hal ini menghubungkan setiap produk dengan
kategori produknya.
- Hubungan
antara Tabel Departemen (Department) dan Karyawan (Employee):
- Tabel
Departemen memiliki kolom Kode Departemen (DepartmentID).
- Tabel
Karyawan memiliki kolom Kode Departemen (DepartmentID) sebagai foreign
key yang merujuk ke Tabel Departemen. Hal ini menghubungkan setiap
karyawan dengan departemen tempat mereka bekerja.
Candidate Key (Kunci Kandidat)
Candidate key adalah kumpulan atribut yang memiliki sifat unik dan minimal, artinya tidak ada atribut tambahan yang dapat ditambahkan atau dihilangkan dari kumpulan atribut tersebut tanpa menghilangkan kemampuannya untuk membedakan setiap entitas.
Fungsi Candidate Key
- Mengidentifikasi Entitas Secara Unik: Candidate Key memastikan bahwa setiap entitasatau baris dalam tabel memiliki identifikasi unik. Tidak ada dua entitas yang dapat memiliki nilai kunci yang sama.
- Menghindari Redundansi Data: Dengan menggunakan Candidate Key, kita dapat menghindari penyimpanan data yang tidak perlu karena setiap entitas diidentifikasi oleh atribut yang memang diperlukan.
- Memungkinkan untuk Membentuk Relasi Antar Tabel: Candidate Key juga digunakan untuk membentuk relasi antar tabel dalam basis data relasional. Dalam banyak kasus, Candidate Key dari satu tabel juga dapat berfungsi sebagai Foreign Key di tabel lain.
Contoh Candidate Key
- Tabel Mahasiswa:
- Candidate Key: NIM (Nomor Induk Mahasiswa)
- Penjelasan: Nomor Induk Mahasiswa adalah nomor unik yang diberikan kepada setiap mahasiswa di sebuah perguruan tinggi. Setiap mahasiswa memiliki NIM yang berbeda
- Tabel Buku:
- Candidate Key: ISBN (International Standard Book Number)
- Penjelasan: ISBN adalah nomor unik yang diberikan kepada setiap buku yang diterbitkan di seluruh dunia. Setiap buku memiliki ISBN yang berbeda.
- Tabel Pegawai:
- Candidate Key: NIP (Nomor Induk Pegawai)
- Penjelasan: Nomor Induk Pegawai adalah nomor unik yang diberikan kepada setiap pegawai di sebuah organisasi. Setiap pegawai memiliki NIP yang berbeda.
- Tabel Pesanan (Order):
- Candidate Key: Nomor Pesanan
- Penjelasan: Setiap pesanan yang diterima oleh sebuah toko atau perusahaan memiliki nomor pesanan yang unik. Setiap pesanan memiliki nomor pesanan yang berbeda.
- Tabel Produk
- Candidate Key: Kode
- Penjelasan:Setiap produk yang dijual oleh sebuah perusahaan memiliki kode produk yang unik. Setiap produk memiliki kode produk yang berbeda.

Komentar
Posting Komentar