Apa Itu Primary Key, Foreign Key dan Candidate Key: Basis Data??

M Aldy Saputra
8 min readNov 4, 2023

--

Basis data relasional

Basis data relasional (Relational Database) adalah tipe basis data yang menggunakan model data relasional, di mana data disimpan dalam bentuk tabel yang terhubung satu sama lain melalui kunci (keys) tertentu. Model ini ditemukan oleh Edgar F. Codd pada tahun 1970 dan sejak itu menjadi basis data yang paling umum digunakan dalam pengembangan perangkat lunak dan aplikasi bisnis.

Struktur basis data yang baik tersusun atas relasi antar entitas yang ada dalam suatu data yang terorganisasi sehingga informasi yang tersimpan dapat diakses. Relasi database menyimpan datanya di dalam tabel yang terdiri atas baris dan kolom. Suatu baris dalam tabel dapat juga disebut sebagai record atau tuple, sementara kolom disebut field atau atribut.

Terdapat tiga jenis atribut yang digunakan pada database model relasional yaitu atribut Primary Key (PK), Foreign Key (FK), dan atribut bukan PK maupun FK. Primary Key adalah atribut atau kombinasi beberapa atribut yang memiliki nilai yang unik sehingga digunakan sebagai identifier dari baris di dalam sebuah tabel. Pada aturan model basis data relasional, Primary Key (PK) tidak boleh bernilai nol (null).

Apa itu Primary key ?

Primary key (kunci primer) adalah salah satu kolom atau kombinasi kolom dalam sebuah tabel basis data relasional yang memiliki nilai unik untuk setiap baris (record) dalam tabel tersebut. Kunci primer digunakan untuk mengidentifikasi secara unik setiap baris dalam tabel dan memastikan bahwa tidak ada dua baris yang memiliki nilai kunci primer yang sama. Setiap tabel dalam basis data relasional harus memiliki satu kolom atau sekelompok kolom yang berfungsi sebagai kunci primer.

Manfaat kunci primer meliputi:

  1. Unik:

Kunci primer harus memiliki nilai yang unik untuk setiap baris dalam tabel. Ini memastikan bahwa tidak ada duplikasi data dalam tabel.

2. Identifikasi Unik:

Kunci primer memberikan cara unik untuk mengidentifikasi setiap baris dalam tabel. Dengan menggunakan kunci primer, aplikasi dan pengguna dapat dengan mudah merujuk ke baris tertentu dalam tabel.

3. Integritas Data:

Kunci primer memastikan integritas data dengan mencegah duplikasi dan memastikan bahwa setiap baris dalam tabel memiliki identitas yang unik.

4. Optimasi Kinerja:

Kunci primer memungkinkan sistem basis data untuk mengoptimalkan pencarian dan pengindeksan data. Dengan menggunakan kunci primer, basis data dapat mencari dan mengakses data dengan lebih efisien.

Dalam Entity-Relationship Diagram (ERD), kunci primer (primary key) digunakan untuk menunjukkan atribut atau kombinasi atribut yang berperan sebagai identifikasi unik untuk setiap entitas (baris) dalam sebuah tabel. Berikut adalah contoh penerapan primary key dalam ERD:

1. Tabel Pegawai (Employee):
— Primary Key: ID_Pegawai
— Deskripsi: ID_Pegawai adalah atribut yang unik untuk mengidentifikasi setiap pegawai dalam organisasi. Ini memungkinkan pengaksesan data pegawai secara unik dan efisien.

2. Tabel Pelanggan (Customer):
— Primary Key: ID_Pelanggan
— Deskripsi: ID_Pelanggan adalah atribut yang digunakan untuk mengidentifikasi setiap pelanggan yang berbelanja di toko atau bisnis. Ini membantu dalam melacak riwayat transaksi dan informasi pelanggan.

3. Tabel Pesanan (Order):
— Primary Key: ID_Pesanan
— Deskripsi: ID_Pesanan adalah atribut yang berperan sebagai identifikasi unik untuk setiap pesanan yang ditempatkan oleh pelanggan. Ini memudahkan pelacakan pesanan dan pengaturan data transaksi.

4. Tabel Buku (Book):
— Primary Key: ISBN
— Deskripsi: ISBN (International Standard Book Number) adalah primary key yang digunakan untuk mengidentifikasi buku secara global. Ini memungkinkan perpustakaan dan pengecer untuk mengelola inventaris buku secara efisien.

5. Tabel Kendaraan (Vehicle):
— Primary Key: Nomor_Registrasi
— Deskripsi: Nomor_Registrasi adalah atribut yang berperan sebagai identifikasi unik untuk setiap kendaraan. Ini membantu dalam pelacakan kendaraan, pemeliharaan, dan data pemiliknya.

Primary key sangat penting dalam ERD karena mereka memastikan bahwa setiap baris dalam tabel entitas memiliki identifikasi unik, yang pada gilirannya membantu dalam integritas data dan pemahaman hubungan antara entitas.

Kelebihan dan Kekurangan Primary Key

Primary Key adalah salah satu konsep penting dalam perancangan basis data yang digunakan untuk mengidentifikasi secara unik setiap baris atau rekaman dalam sebuah tabel. Berikut adalah beberapa kelebihan dan kekurangan dari penggunaan Primary Key:

Kelebihan Primary Key:

1. Unik dan Identifikasi yang Jelas: Primary Key memastikan bahwa setiap baris dalam tabel memiliki nilai yang unik, sehingga memudahkan identifikasi setiap rekaman secara khusus. Ini penting untuk konsistensi data dan menjaga integritas basis data.

2. Peningkatan Kinerja: Penggunaan Primary Key dapat meningkatkan kinerja basis data. Basis data dapat dengan cepat mengindeks data menggunakan Primary Key, sehingga mempercepat operasi pencarian dan penggabungan.

3. Integritas Referensial: Primary Key juga digunakan dalam membangun hubungan antartabel (foreign key). Ini memungkinkan penggunaan integritas referensial yang memastikan bahwa tidak ada data yang tersisip atau terhapus secara tidak sah.

4. Penyusutan Ruang Penyimpanan: Menggunakan Primary Key dapat membantu dalam pengelompokan data, sehingga mengurangi redundansi dan memungkinkan penghematan ruang penyimpanan.

5. Kemudahan Perawatan: Dengan adanya Primary Key, mengidentifikasi dan memperbarui data menjadi lebih mudah dan aman. Ini mengurangi risiko kesalahan dalam operasi basis data.

Kekurangan Primary Key:

1. Overhead: Setiap tabel harus memiliki kolom tambahan untuk Primary Key, yang bisa menambah overhead ruang penyimpanan dan mempengaruhi kinerja terutama pada tabel dengan jumlah data yang sangat besar.

2. Ketergantungan pada Data yang Unik: Jika data yang digunakan sebagai Primary Key tidak benar-benar unik, maka dapat menyebabkan masalah integritas data dan performa. Dalam beberapa kasus, mencari nilai yang unik dapat menjadi tantangan.

3. Pembatasan Perubahan: Jika Anda harus mengubah nilai Primary Key, itu bisa menjadi proses yang kompleks dan memerlukan perhatian ekstra untuk mempertahankan integritas data.

4. Keterbatasan pada Jenis Data: Primary Key sering dibatasi pada jenis data tertentu, seperti integer atau string pendek. Ini dapat membatasi fleksibilitas dalam merancang skema basis data yang kompleks.

5. Kemungkinan Konflik dalam Sistem Terdistribusi: Dalam sistem terdistribusi, perlu hati-hati dalam menetapkan Primary Key untuk menghindari konflik dan masalah dengan replikasi data.

Dalam merancang basis data, pemilihan atau tidaknya penggunaan Primary Key harus mempertimbangkan kebutuhan dan karakteristik khusus dari sistem yang dibangun. Kelebihan dan kekurangan ini harus diperhitungkan untuk membuat keputusan yang tepat sesuai dengan tujuan dan skenario yang dihadapi.

Apa itu Candidate Key ?

Candidate key adalah sebuah atribut atau kombinasi atribut dalam sebuah tabel basis data relasional yang dapat digunakan sebagai primary key. Sebuah tabel dapat memiliki beberapa candidate key, yang semuanya memenuhi dua syarat: pertama, setiap nilai dalam candidate key harus unik, dan kedua, tidak ada subset dari candidate key yang juga unik.

Berikut adalah lima contoh candidate key dalam sebuah tabel:

1. Tabel “Pelanggan”:
— Candidate Key: Nomor Pelanggan
— Deskripsi: Nomor Pelanggan adalah atribut unik yang digunakan untuk mengidentifikasi setiap pelanggan dalam database. Ini bisa berupa nomor ID atau kode unik yang diberikan kepada setiap pelanggan.

2. Tabel “Produk”:
— Candidate Key: Kode Produk
— Deskripsi: Kode Produk adalah atribut unik yang digunakan untuk mengidentifikasi setiap produk yang dijual dalam bisnis. Ini memungkinkan untuk melacak stok produk, harga, dan informasi terkait lainnya.

3. Tabel “Pesanan”:
— Candidate Key: Nomor Pesanan
— Deskripsi: Nomor Pesanan adalah atribut unik yang digunakan untuk mengidentifikasi setiap pesanan yang dibuat oleh pelanggan. Ini membantu dalam pelacakan pesanan, termasuk produk yang dipesan, tanggal pesanan, dan status pengiriman.

4. Tabel “Karyawan”:
— Candidate Key: Nomor Identitas Karyawan
— Deskripsi: Nomor Identitas Karyawan adalah atribut unik yang digunakan untuk mengidentifikasi setiap karyawan dalam organisasi. Ini dapat digunakan untuk mengelola informasi personal, gaji, dan catatan kerja karyawan.

5. Tabel “Transaksi Keuangan”:
— Candidate Key: Nomor Transaksi
— Deskripsi: Nomor Transaksi adalah atribut unik yang digunakan untuk mengidentifikasi setiap transaksi keuangan yang terjadi dalam perusahaan. Ini melibatkan pembayaran, penerimaan, dan transfer dana antara akun.

Setiap candidate key di atas harus memiliki sifat unik, artinya tidak ada dua entitas dalam tabel yang memiliki nilai yang sama. Penggunaan candidate key membantu dalam pengorganisasian data dan memastikan integritas data dalam database, sehingga ERD dapat menjadi dasar untuk perancangan basis data yang efisien dan andal.

Apa itu Foreign Key ?

Foreign key (kunci asing) adalah atribut atau kombinasi atribut dalam sebuah tabel basis data relasional yang merujuk ke primary key dalam tabel lain. Foreign key membentuk hubungan atau asosiasi antara dua tabel dalam basis data relasional. Dengan menggunakan foreign key, satu tabel dapat merujuk ke data dalam tabel lain. Foreign key adalah satu atribut yang melengkapi satu relationship yang menunjukan ke induknya, dengan kata lain keduanya saling berkaitan.

Fungsi Dari Foreign Key

Secara umum, foreign key biasa digunakan sebagai penanda hubungan antar tabel. Tabel pertama memiliki peran utama sehingga disebut sebagai primary key di dalamnya, dan tabel kedua merupakan foreign key yang biasa disebut dengan kunci asing. Foreign key berfungsi untuk membuat database menjadi konsisten dalam mempertahankan integritas referensi. Maka dari itu, database dapat memonitor setiap data yang akan dimasukkan.

Contoh Penerapan Foreign Key

Tentu, berikut adalah contoh penerapan lima foreign key dalam sebuah Entity-Relationship Diagram (ERD). Misalkan kita mempunyai lima tabel yang masing-masing merepresentasikan entitas dalam suatu sistem:

1. Tabel Pesanan (Orders):
— Primary Key: ID_Pesanan
— Foreign Key: ID_Pelanggan (merujuk ke tabel Pelanggan)
— Foreign Key: ID_Produk (merujuk ke tabel Produk)

2. Tabel Detail Pesanan (OrderDetails):
— Primary Key: ID_Detail_Pesanan
— Foreign Key: ID_Pesanan (merujuk ke tabel Pesanan)
— Foreign Key: ID_Produk (merujuk ke tabel Produk)

3. Tabel Pembayaran (Payments):
— Primary Key: ID_Pembayaran
— Foreign Key: ID_Pesanan (merujuk ke tabel Pesanan)

4. Tabel Pelanggan (Customers):
— Primary Key: ID_Pelanggan

5. Tabel Produk (Products):
— Primary Key: ID_Produk

Dalam contoh ini:
- Tabel Pesanan memiliki dua foreign key: ID_Pelanggan merujuk ke tabel Pelanggan, dan ID_Produk merujuk ke tabel Produk. Ini mengindikasikan bahwa setiap pesanan memiliki hubungan dengan pelanggan tertentu dan produk tertentu.
- Tabel Detail Pesanan memiliki dua foreign key: ID_Pesanan merujuk ke tabel Pesanan, dan ID_Produk merujuk ke tabel Produk. Hal ini menunjukkan bahwa setiap detail pesanan terhubung dengan suatu pesanan dan suatu produk.
- Tabel Pembayaran memiliki satu foreign key: ID_Pesanan merujuk ke tabel Pesanan. Ini menandakan bahwa setiap pembayaran terhubung dengan suatu pesanan.
- Tabel Pelanggan adalah entitas utama dengan primary key ID_Pelanggan yang digunakan sebagai foreign key di tabel Pesanan.
- Tabel Produk adalah entitas utama dengan primary key ID_Produk yang digunakan sebagai foreign key di tabel Pesanan dan tabel Detail Pesanan.

Dengan menggunakan foreign key, tabel-tabel ini dihubungkan satu sama lain, menciptakan struktur yang terorganisir dan menggambarkan hubungan antar entitas dalam sistem tersebut. Ini memungkinkan Anda untuk melacak pesanan, detail pesanan, pembayaran, pelanggan, dan produk yang terkait satu sama lain dalam database sistem ini.

Kesimpulan dari PrimaryKey, Foregent Key dan Candidate Key.

Primary Key, Foreign Key, dan Candidate Key adalah konsep yang penting dalam desain basis data relasional. Berikut adalah kesimpulan singkat tentang ketiganya:

1. Primary Key (Kunci Utama):
— Primary Key adalah salah satu kolom atau kombinasi kolom dalam sebuah tabel yang unik mengidentifikasi setiap baris data.
— Kunci utama digunakan untuk memastikan bahwa tidak ada duplikasi data dalam tabel dan memungkinkan pencarian data yang efisien.
— Setiap tabel hanya bisa memiliki satu Primary Key.

2. Foreign Key (Kunci Asing):
— Foreign Key adalah kolom atau kelompok kolom dalam sebuah tabel yang mengacu pada Primary Key dari tabel lain.
— Kunci asing digunakan untuk menghubungkan data antara tabel dan menjaga integritas referensial, yang berarti bahwa data yang dirujuk dalam tabel asal selalu ada dalam tabel yang mengacu.
— Kunci asing membantu dalam pembuatan relasi antara tabel dalam basis data.

3. Candidate Key (Kunci Kandidat):
— Candidate Key adalah setiap kolom atau kombinasi kolom dalam sebuah tabel yang dapat berfungsi sebagai Primary Key.
— Pada dasarnya, mereka adalah calon potensial untuk menjadi Primary Key. Pemilihan Candidate Key bergantung pada kebutuhan dan sifat unik data dalam tabel.
— Tabel dapat memiliki beberapa Candidate Key, tetapi hanya satu yang akan menjadi Primary Key.

Kesimpulan ini menggambarkan peran masing-masing konsep dalam basis data relasional, dengan Primary Key digunakan untuk mengidentifikasi secara unik setiap baris dalam tabel, Foreign Key untuk menghubungkan tabel, dan Candidate Key sebagai alternatif yang mungkin menjadi Primary Key.

Terimakasih untuk yang sudah membaca artikel ini saya harap ilmunya dapat bermanfaat dan juga dapat menambah wawasan. Terimakasih juga untuk dosen pengampu Basis Data yaitu Pak Adi Rizky Pratama Adirp.id dan juga kampus kebanggaan https://ubpkarawang.ac.id/

--

--