Memahami apa itu Primary Key, Foreign Key dan Candidate Key : Basis Data

Nursyahiira Hanum S
7 min readOct 4, 2023

--

Menurut (Florescu D dan Fourny G, 2013) Relational Database dikembangkan Edgar Codd dari IBM pada tahun 1969. Penggunaan Relational Database sebagai basis data model saat ini telah mendominasi model lain seperti hierarchical, network ataupun object-model. Relational Database dapat diartikan sebagai sebuah basis data yang merepresentasikan data sebagai suatu kumpulan tabel dimana hubungan antar tabel juga direpresentasikan menurut value yang ada pada tabel-tabel tersebut. 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 utama) adalah sebuah candidate key yang telah dipilih untuk mengidentifikasi setiap record secara unik. Primary key harus merupakan field yang benar-benar unik dan tidak boleh ada nilai NULL. Pengertian lainya primary key adalah suatu nilai dalam basis data yang digunakan untuk mengidentifikasi suatu baris dalam tabel.

Berikut adalah Contoh Primary key :

Untuk kolom ID adalah primary key pada tabel di atas. Itu karena ID tersebut bersifat unik dan setiap data (row) memiliki nilai ID yang berbeda-beda.

Fungsi Primary Key

Dalam database relasional, tabel berfungsi untuk menyimpan nilai di dalamnya. Tabel ini terdiri dari kombinasi kolom yang terdapat kunci primer untuk menentukan tingkat integritas tabel. Pemilihan primary key adalah langkah penting untuk mencapai tujuan database yang benar dan valid

Syarat Primary Key

  • Tabel hanya bisa memiliki satu kunci primer.
  • Jumlah maksimal kunci primer yaitu 16 kolom dengan panjang kunci 900 byte.
  • Kolom kunci utama perlu Anda definisikan “NOT NULL” yang artinya memastikan bahwa nilai dalam kolom tersebut tidak boleh kosong. Jika Anda tidak memasukkan nilai atau data dalam kolom tersebut, maka akan terjadi kesalahan pada database.
  • Tidak boleh berisi nilai yang sama antara baris satu dengan baris lain.
  • Tipe data yang Anda gunakan untuk kunci primer tidak boleh tipe BLOB, melainkan INT, BIGINT, TINYINT, SMALLINT, dan sejenisnya.

Kolom kunci primer pada SQL biasanya memiliki atribut bernama AUTO_INCREMENT yang akan menghasilkan urutan naik dari kunci tersebut secara otomatis. Dengan kata lain, kunci utama baris berikutnya akan lebih besar nilainya dari baris sebelumnya.

Kelebihan dan kekurangan Primary Key

Diantara kelebihan dari primary key adalah:

· Primary key bisa menghindari kemungkinan terjadinya duplikasi data atau kesamaan antara data satu dengan lainnya.

· Primary key bisa membantu untuk melakukan pencarian data secara lebih cepat dan efisien.

· Primary key mencegah dari kesalahan memasukkan data kosong atau lupa memasukkan data, sebab primary key tidak boleh bernilai null.

Adapun kekurangan dari primary key adalah bahwa tidak setiap data bisa digunakan sebagai primary key. Hal ini dikarenakan primary key memiliki sejumlah syarat atau ketentuan yang harus dipenuhi agar tidak terjadi eror pada database

5 contoh penerapan Primary Key pada ERD:

1. Basis Data Perpustakaan Digital:

- Entitas: Buku

- Primary Key: ISBN (International Standard Book Number)

- Atribut lainnya: Judul, Penulis, Penerbit, Tahun Terbit, dll.

2.. Basis Data Film:

- Entitas: Film

- Primary Key: ID Film

- Atribut lainnya: Judul, Sutradara, Genre, Tahun Rilis, dll.

3. Sistem Manajemen Pesanan Restoran:

- Entitas: Pesanan

- Primary Key: ID Pesanan

- Atribut lainnya: Tanggal Pesanan, Meja, Daftar Menu, dll.

4. Daftar Kontak pada Aplikasi Ponsel:

- Entitas: Kontak

- Primary Key: ID Kontak

- Atribut lainnya: Nama Kontak, Nomor Telepon, Alamat Email, dll.

5. Sistem Manajemen Pasien di Rumah Sakit:

- Entitas: Pasien

- Primary Key: Nomor Rekam Medis

- Atribut lainnya: Nama, Tanggal Lahir, Jenis Kelamin, dll.

Kesimpulan Primary Key

Primary key merupakan kolom atau kombinasi kolom yang digunakan untuk mengidentifikasi setiap baris atau record secara unik dalam sebuah tabel database. Fungsi primary key adalah untuk menjamin keakuratan data, meningkatkan kecepatan query dan pengolahan data, serta memudahkan penggunaan foreign key. Hanya satu primary key yang dapat digunakan dalam satu tabel, dan kolom atau kombinasi kolom primary key harus memenuhi kriteria tertentu, yaitu memiliki nilai unik, tidak boleh null atau kosong, dan hanya satu dalam setiap tabel.

Apa itu Candidate Key ?

Candidate Key (kunci calon) adalah salah satu rangkaian yang mempunyai nilai unik untuk membedakan atau mengidentifikasi nilai-nilai kombinasi yang unik diantara semua kejadian yang spesifik dari entetitas. Candidat key ini tidak boleh berisi atribut dari tabel yang lain. kombinasi dari atribut yang dapat digunakan untuk mengidentifikasi secara unik rekor database tanpa data apapun yang asing. Setiap tabel dapat memiliki satu atau lebih candidate key.

5 contoh penerapan Candidate Key pada ERD:

Candidate key adalah salah satu atau lebih atribut yang dapat digunakan sebagai primary key dalam suatu entitas dalam Entity-Relationship Diagram (ERD). Berikut adalah lima contoh penerapan candidate key dalam ERD:

1. Tabel Pegawai di Perusahaan:
— Entitas: Pegawai
— Candidate Key: Nomor Pegawai, Nomor KTP
— Atribut lainnya: Nama, Alamat, Gaji, dll.

Dalam entitas “Pegawai,” baik Nomor Pegawai maupun Nomor KTP dapat berfungsi sebagai candidate key yang unik untuk mengidentifikasi setiap pegawai.

2.Tabel Mahasiswa di Universitas:
— Entitas: Mahasiswa
— Candidate Key: Nomor Induk Mahasiswa (NIM), Nomor Kartu Tanda Mahasiswa (KTM)
— Atribut lainnya: Nama, Program Studi, Semester, dll.

Di entitas “Mahasiswa,” baik NIM maupun KTM bisa berfungsi sebagai candidate key karena keduanya bersifat unik untuk mengidentifikasi mahasiswa.

3. Tabel Barang di Toko Retail:
— Entitas: Barang
— Candidate Key: Kode Barang, Nomor Seri
— Atribut lainnya: Nama Barang, Harga, Jumlah Stok, dll.

Dalam entitas “Barang,” baik Kode Barang maupun Nomor Seri bisa berfungsi sebagai candidate key yang unik untuk mengidentifikasi barang-barang di toko.

4. Tabel Buku dalam Perpustakaan:
— Entitas: Buku
— Candidate Key: ISBN (International Standard Book Number), Nomor Register Perpustakaan
— Atribut lainnya: Judul, Penulis, Penerbit, dll.

Di entitas “Buku,” baik ISBN maupun Nomor Register Perpustakaan bisa berfungsi sebagai candidate key karena keduanya unik dalam mengidentifikasi buku-buku dalam perpustakaan.

5. Tabel Pesanan dalam Sistem Pemesanan Online:
— Entitas: Pesanan
— Candidate Key: Nomor Pesanan, Nomor Pelacakan Pengiriman
— Atribut lainnya: Tanggal Pesanan, Daftar Produk, Harga Total, dll.

Dalam entitas “Pesanan,” baik Nomor Pesanan maupun Nomor Pelacakan Pengiriman bisa berfungsi sebagai candidate key yang unik untuk mengidentifikasi pesanan-pesanan dalam sistem pemesanan online.

Penting untuk diingat bahwa, meskipun ada beberapa candidate key yang dapat dipilih sebagai primary key, biasanya hanya salah satu dari candidate key tersebut yang dipilih untuk digunakan sebagai primary key dalam suatu entitas. Pemilihan primary key ini dapat dipengaruhi oleh berbagai pertimbangan, termasuk stabilitas, keunikan, dan kemudahan penggunaan atribut tersebut.

Kesimpulan Candidate Key

Dalam kesimpulannya, candidate key adalah atribut atau kombinasi atribut yang memiliki nilai unik dalam suatu entitas dan sangat penting dalam desain basis data untuk memastikan data yang konsisten dan akurat serta operasi pengelolaan data yang efisien.

Apa itu Foreign Key ?

Foreign key adalah sebuah kumpulan field dalam satu relasi yang digunakan untuk me-refer (menunjuk) ke suatu baris (tuple) pada relasi yang lain, seperti logical pointer. Sedangkan hubungan antara keduanya (primary key dan foreign key) di jelaskan bahwa primary key adalah field kunci utama dari suatu tabel yang menunjukkan bahwa field yang menjadi kunci tersebut tidak bisa diisi dengan data yang sama, atau dengan kata lain primary key menjadikan tiap record memiliki identitas sendiri-sendiri yang membedakan satu sama lainnya (unik). Foreign key adalah satu atribut yang melengkapi satu relationship yang menunjukan ke induknya, dengan kata lain keduanya saling berkaitan.

Fungsi 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.

5 contoh penerapan Foreign Key pada ERD:

Foreign key adalah atribut dalam sebuah tabel yang mengacu pada primary key tabel lain, menciptakan hubungan antara tabel-tabel tersebut dalam basis data. Berikut adalah lima contoh penerapan foreign key dalam Entity-Relationship Diagram (ERD):

1. Hubungan antara Tabel Pelanggan dan Tabel Pesanan:
- Tabel Pelanggan memiliki primary key berupa ID Pelanggan.
- Tabel Pesanan memiliki foreign key berupa ID Pelanggan yang mengacu pada primary key di Tabel Pelanggan.

Ini menciptakan hubungan antara pelanggan dan pesanan, sehingga setiap pesanan dikaitkan dengan pelanggan tertentu.

2. Hubungan antara Tabel Produk dan Tabel Pesanan:
- Tabel Produk memiliki primary key berupa Kode Produk.
- Tabel Pesanan memiliki foreign key berupa Kode Produk yang mengacu pada primary key di Tabel Produk.

Ini menciptakan hubungan antara produk yang dipesan dalam setiap pesanan.

3. Hubungan antara Tabel Dosen dan Tabel Mahasiswa:
- Tabel Dosen memiliki primary key berupa ID Dosen.
- Tabel Mahasiswa memiliki foreign key berupa ID Dosen yang mengacu pada primary key di Tabel Dosen.

Ini menciptakan hubungan antara dosen dan mahasiswa yang mengacu pada dosen pengajar.

4. Hubungan antara Tabel Cabang dan Tabel Karyawan:
- Tabel Cabang memiliki primary key berupa ID Cabang.
- Tabel Karyawan memiliki foreign key berupa ID Cabang yang mengacu pada primary key di Tabel Cabang.

Ini menciptakan hubungan antara cabang perusahaan dan karyawan yang bekerja di cabang tersebut.

5. Hubungan antara Tabel Kota Asal dan Tabel Kota Tujuan dalam Sistem Pemesanan Tiket Perjalanan:
- Tabel Kota Asal memiliki primary key berupa Kode Kota.
- Tabel Kota Tujuan memiliki foreign key berupa Kode Kota yang mengacu pada primary key di Tabel Kota Asal.

Ini menciptakan hubungan antara kota asal dan kota tujuan dalam pemesanan tiket perjalanan.

Dalam semua contoh ini, foreign key digunakan untuk membangun hubungan antara tabel-tabel yang berbeda dalam basis data. Ini memungkinkan penggunaan data yang lebih terstruktur dan terorganisir serta memungkinkan referensi data antara tabel-tabel yang berbeda. Hubungan ini penting dalam perancangan basis data untuk merepresentasikan hubungan antar-entitas yang ada dalam sistem.

Kesimpulan Foreign Key

Dalam kesimpulannya, foreign key adalah elemen penting dalam desain basis data yang memungkinkan untuk mengelola hubungan antar-entitas, menjaga integritas referensial data, mengatur keamanan, dan meningkatkan efisiensi query. Dengan menggunakan foreign key dengan benar, Anda dapat membangun basis data yang konsisten, kuat, dan dapat diandalkan untuk mendukung aplikasi dan sistem yang kompleks.

Terima Kasih Universitas ku telah memberikan banyak tugas yang membuat saya menjadi orang paling sibuk di dunia ini xixixi Ubpkarawang.ac.id Dan Terima kasih juga kepada Dosen pengampu yang saya Hormati dan Banggakan Adirp.id

--

--