Apa itu Primary Key, Foreign Key dan Candidate Key
Di dalam sebuah basis data, ada beberapa jenis kunci yang digunakan untuk mengidentifikasi dan menghubungkan data yang ada dalam sebuah tabel. Tiga diantara jenis kunci yang umum digunakan yaitu Primary Key, Foreign Key, dan Candidate Key. Lalu sebenarnya apa sih ke-3 kunci tersebut ?
1. Primary Key
Pengertian primary key
Primary key adalah sebuah aturan dalam sebuah tabel yang berfungsi untuk memastikan nilai pada setiap baris data terlihat unik dan tidak sama satu sama lain. sedangkan secara sederhananya, primary key dapat diartikan sebagai identitas untuk membedakan setiap data yang ada pada tabel.
Keunikan dari primary key ini, yaitu mampu mencegah terjadinya duplikasi data dan juga mampu membantu dalam melakukan pencarian dengan waktu yang lebih singkat.
Contoh primary key yang lainnya bisa di tentukan dari adanya User Id, Kode sebuah barang, Nomor Induk Kependudukan atau KTP, dan masih banyak yang lainnya. Itu semua merupakan contoh data unik yang bisa digunakan sebagai Primary Key.
Syarat dari primary key
Di dalam sebuah primary key terdapat beberapa syarat yang harus dipenuhi diantara nya yaitu :
-Setiap tabel hanya memiliki 1 primary key
-Nilai dalam kolom primary key harus unik
-Tidak boleh berisi NULL
-Tidak boleh ada yang memiliki nilai yang sama atau berulang
Contoh penerapan primary key pada ERD
1. Entitas Mahasiswa
· Primary key : Nomor Induk Mahasiswa (Nim)
· Atribut lainnya : Nama Mahasiswa, Jurusan, Tanggal Lahir
2. Entitas Karyawan
· Primary key : ID Karyawan
· Atribut lainnya : Nama karyawan, Jabatan, Gaji
3. Entitas Buku
· Primary key : Kode Buku
· Atribut lainnya : Judul, Penulis, Tahun Terbit
4. Entitas Produk
· Primary key : Kode produk
· Atribut lainnya : Nama produk, Harga, Stok
5. Entitas Dosen
· Primary key : Nomor Induk Dosen Nasional (NIDN)
· Atribut lainnya : Nama Dosen, Tanggal Lahir, Email
2. Foreign Key
Pengertian foreign key
Secara umum, Foreign key adalah alat yang penting dalam perancangan basis data relasional karena memungkinkan untuk mengelola dan memelihara data serta menghubungkan informasi antar tabel.
Jadi, bisa dikatakan foreign key ini sebagai sebuah atribut atau sebuah gabungan dari atribut yang terdapat di dalam sebuah tabel yang digunakan untuk menciptakan hubungan atau relasi dari dua tabel atau lebih.
Walaupun Foreign key bukan termasuk atribut utama yang harus berada pada sebuah tabel layaknya primary key. Tapi keberadaan Foreign key memiliki peran penting dalam menghubungkan antara tabel master dan tabel turunan dalam sebuah basis data.
Melalui gambar tersebut, diperoleh dua tabel. Tabel pertama merupakan tabel Mahasiswa dan tabel kedua merupakan tabel Penilaian. Letak foreign key nya yaitu terdapat pada Nim.
Contoh penerapan foreign key pada ERD
1. Hubungan antara Tabel Buku dan Tabel Peminjaman :
· Primary key Tabel Buku : Kode buku
· Tabel Peminjaman memiliki foreign key : Kode buku, yang mana kode buku ini mengacu pada primary key yang ada pada Tabel Buku.
2. Hubungan antara Tabel Siswa dan Tabel Pendaftaran :
· Primary key Tabel Siswa : Nomor Induk Siswa Nasional (NISN)
· Tabel Pendaftaran memiliki foreign key : NISN, yang mana NISN ini mengacu pada primary key yang ada pada Tabel Siswa
3. Hubungan antara Tabel rekening bank dan Tabel Transaksi :
· Primary key Tabel rekening : Nomor rekening
· Tabel Transaksi memiliki foreign key : Nomor rekening, yang mana Nomor rekening ini mengacu pada primary key yang ada pada Tabel rekening bank
4. Hubungan antara Tabel Dosen dan Tabel Pengajar :
· Primary key Tabel Dosen : Nomor Induk Dosen Nasional (NIDN)
· Tabel Pengajar memiliki foreign key : NIDN, yang mana NIDN ini mengacu pada primary key yang ada pada Tabel Dosen
5. Hubungan antara Tabel Produk dan Tabel Penjualan :
· Primary key Tabel Produk : Kode produk
· Tabel Penjualan memiliki foreign key : Kode produk, yang mana Kode produk ini mengacu pada primary key yang ada pada Tabel Produk
3. Candidate Key
Pengertian candidate key
Candidate key adalah himpunan kolom yang dapat digunakan untuk mengidentifikasi setiap baris dalam tabel. Dalam istilah sederhananya, candidate key adalah kunci potensial yang dapat digunakan untuk mengidentifikasi secara unik entitas dalam sebuah tabel.
Kamus wordsense mendefinisikan Candidate Key sebagai kolom atau kelompok yang tidak dapat direduksi dan mampu mengidentifikasi setiap baris tabel dalam desain tabel basis data.
Candidate key bisa merujuk pada 1 kolom atau lebih di dalam sebuah tabel yang memiliki sifat yang unik.
Contoh penerapan candidate key pada ERD
1. Entitas Mahasiswa
· Atribut : Nama, Nomor Induk Mahasiswa (NIM), Tanggal lahir, Nomor Mahasiswa
· Candidate key : Nomor Induk Mahasiswa (NIM), Nomor Mahasiswa
2. Entitas Barang
· Atribut : Nama barang, Kode barang, Harga, Nomor barang
· Candidate key :Kode barang, Nomor barang
3. Entitas Buku
· Atribut : Judul, Penulis, Kode buku
· Candidate key : Kode buku
4. Entitas Guru
· Atribut : Nama, Nomor Unik Pendidik dan Tenaga Kependidikan (NUPTK), Nomor Induk Kependudukan (NIK), Tanggal Lahir
· Candidate key : Nomor Unik Pendidik dan Tenaga Kependidikan (NUPTK), Nomor Induk Kependudukan (NIK)
5. Entitas Karyawan
· Atribut : Nama, ID pegawai, Nomor Induk Kependudukan (NIK), Jabatan
· Candidate key : ID pegawai, Nomor Induk Kependudukan (NIK)
Instansi : Universitas Buana Perjuangan Karawang
Dosen Pengampu : Adi Rizky Pratama M.Kom