Memahami tentang apa itu primary key, foreign key, dan candidate key dan contoh penerapannya

    Sebelum mengenal tentang jenis-jenis key, apakah kalian sudah mengetahui apa yang dimaksud dengan key? Key pada umumnya dipahami oleh banyak orang sebagai tanda pengenal yang dimana fungsi dari key ini adalah untuk memberikan identifikasi sebuah baris yang ada di dalam tabel. Artinya pada masing – masing baris maka akan pasti dan juga wajib memiliki tanda pengenalnya sendiri. Key ini dapat diibaratkan seperti Nomor Induk Kependudukan (NIK) untuk masyarakat Indonesia atau juga Nomor Induk Mahasiswa (NIM) yang diperuntukan untuk mahasiswa yang ada di perguruan tinggi.  Jika kalian perhatikan secara teliti maka setiap orang yang ada maka akan memiliki data informasi yang  berbeda – beda dengan seperti contoh jika kalian menemukan dua orang penduduk maka data – data pengenal diri yang ada pada orang tersebut akan berbeda beda yang dimana seperti NIK nya. Pada prinsip inilah yang harus kalian ingat bahwa di dalamnya kalian akan menentukan atribut yang akan kalian jadikan sebuah key dalam database.

Apa itu Key?

    Key dapat dipahami sebagai ‘tanda pengenal’ untuk mengidentifikasi sebuah baris di dalam tabel. Artinya, masing-masing baris data pasti dan harus memiliki ‘tanda pengenal’-nya sendiri. Key dapat diibaratkan seperti Nomor Induk Kependudukan (NIK) untuk masyarakat Indonesia atau Nomor Induk Mahasiswa (NIM) untuk para mahasiswa. Kita tidak mungkin menemukan dua orang penduduk dengan NIK yang sama, dan kita juga tidak mungkin menemukan dua mahasiswa dengan NIM yang sama ‘kan? Nah, prinsip inilah yang harus kita ingat ketika menentukan atribut yang akan dijadikan key dalam sebuah tabel.

    Selain berperan sebagai ‘tanda pengenal’, jenis key dalam database juga berperan sebagai penghubung antara satu tabel dengan tabel lainnya. Seperti yang sudah kita bahas di awal tadi, penting bagi tabel-tabel dalam suatu relational database untuk saling terhubung antara satu dengan yang lainnya. Untuk bisa menghubungkan tabel-tabel dalam suatu relational database, kita perlu menggunakan jenis key dalam database kita. Oleh karena itu, fungsi key yang kedua ini juga tidak kalah penting nih dengan fungsinya sebagai ‘tanda pengenal’!

Jenis Key dalam Database

    Jenis Key dalam database yang sebenarnya adalah atribut biasa yang dimana ditambahkan deklarasi query tertentu yang mana untuk dijadikan sebagai dari key pada tabel tersebut. Akan tetapi, sama dengan halnya yang ada di NIK dan juga NIM, atribut yang dijadikan juga harus bersifat unik yang dimana artinya antara data satu dan juga data lainnya tidak boleh harus sama. Selain dari itu juga bahwa atribut yang akan dijadikan sebuah key wajib diisi dan tidak diperbolehkan kosong.

jenis-jenis key dalam databse yang diketahui sebagai berikut:

  1. Primary key
  2. Foreign key
  3. Candidate key 

1. Primary key


    Primary key adalah suatu nilai yang ada didalam suatu basis data yang dimana digunakan untuk mengidentifikasi suatu baris yang ada di dalam tabel. Nilai yang ada didalam primary key adalah unik. Sedangkan secara sederhananya primary key dapat juga diartikan sebagai kolom yang berisi nilai unik, yang dimana memiliki fungsi sebagai identitas yang untuk membedakan setiap record yang ada didalam suatu tabel. 

    Primary Key merupakan ‘tanda pengenal’ yang ditetapkan untuk suatu tabel. Primary Key ini harus merupakan atribut yang paling cocok dan paling dapat membedakan data-data yang ada di dalam tabel tersebut. Misalnya, setiap mahasiswa pasti memiliki NIM dan nomor ponsel.

    Seperti yang sudah dijelaskan pada sebelumnya primary key ini memiliki fungsi sebagai identitas untuk membedakan antara record yang ada pada suatu tabel. Misalnya dalam suatu database pada perusahaan terdapat 3 orang pegawai yang berbeda namun juga memiliki sama – sama memiliki nama “rio” nah bagaimana cara untuk membedakan antara ketiga data tersebut? Tentu yang harus anda gunakan adalah menggunakan kunci utama yaitu primary key. Selain itu juga relasional database primary key juga dapat digunakan sebagai penghubung antara sebuah tabel dengan tabel lainnya. Yang mana nantinya dari primary key akan mewakili masing – masing record yang ada pada tabel.

Berikut adalah 5 contoh dari Primary Key:

  1. ID_Pegawai: Dalam tabel “Pegawai,” kolom “ID_Pegawai” dapat berfungsi sebagai Primary Key. Setiap pegawai memiliki ID_Pegawai yang unik untuk mengidentifikasi mereka.
  2. Nomor_Pelanggan: Dalam tabel “Pelanggan,” kolom “Nomor_Pelanggan” dapat digunakan sebagai Primary Key. Ini membantu dalam mengidentifikasi setiap pelanggan secara unik dalam basis data.
  3. Kode_Barang: Dalam tabel “Barang,” kolom “Kode_Barang” dapat berperan sebagai Primary Key. Ini memungkinkan identifikasi unik untuk setiap barang yang disimpan dalam basis data.
  4. ID_Transaksi: Dalam tabel “Transaksi,” kolom “ID_Transaksi” dapat digunakan sebagai Primary Key untuk mengidentifikasi setiap transaksi yang terjadi.
  5. ISBN_Buku: Dalam tabel “Buku,” kolom “ISBN_Buku” mungkin digunakan sebagai Primary Key untuk mengidentifikasi setiap buku secara unik dalam basis data perpustakaan atau toko buku.

    Perhatikan bahwa kolom yang dipilih sebagai Primary Key harus memenuhi dua syarat utama: unik dan tidak boleh NULL. Karena memenuhi syarat-syarat ini, setiap kolom di atas dianggap sebagai kunci primer dan memungkinkan setiap entitas dalam tabel yang terkait diidentifikasi secara unik.

2. Foreign Key

    Jenis key dalam database selanjutnya adalah Foreign Key. Apabila primary key berfungsi untuk menjalankan fungsi pertama dari key dalam database, yakni sebagai ‘tanda pengenal’, maka foreign key berfungsi untuk menjalankan fungsi kedua dari key dalam database, yakni sebagai penghubung antar tabel.

    Dari kedua tabel di atas, kita dapat melihat bahwa ada siswa dan ada kelas dalam suatu sekolah. Akan tetapi, kita tidak bisa melihat siswa mana masuk di kelas mana. Untuk memperjelas tabel di atas, kita dapat mengetahui jenis key dalam database menghubungkan kedua tabel dengan menggunakan foreign key.

    Dari tabel di atas, dapat kita ketahui bahwa primary key dari tabel siswa adalah NIS atau Nomor Induk Siswa. Sementara, primary key dari tabel kelas adalah Kode Kelas. Untuk menghubungkan kedua tabel di atas, kita cukup menambahkan Kode Kelas sebagai foreign key pada Tabel Siswa. Dengan begitu, tampilan tabel siswa secara keseluruhan akan seperti di bawah ini:

    Perlu diingat bahwa jenis key dalam database memiliki atribut. Atribut yang akan kamu gunakan sebagai foreign key haruslah merupakan primary key pada tabel asalnya.

    Secara sederhana foreign key ini dapat diartikan sebagai kunci asing. Yang dimana definisi ini juga berlaku didalam pengolahan relasional database. Kunci asing (foreign key) adalah sebuah atribut yang terdapat didalam suatu tabel yang dimana untuk digunakan untuk menciptakan hubungan  antara dua tabel.

    Di dalam relational database penggunaan foreign key merujuk pada suatu kunci primer yang terdapat pada tabel pertama atau juga dikenal dengan tabel master.

    Fungsi dari forign key adalah foreign key digunakan untuk menandakan hubungan tabel yang satu dengan yang lainnya. Yang dimana istilah ini dikenal sebagai parent dan child. Suatu tabel dapat dikatakan sebagai child apabila didalam suatu tabel terdapat kolom yang merupakan rujukan terhadap tabel pertama atau parent.

Berikut adalah 5 contoh dari Foreign Key:

  1. ID_Pegawai: Dalam tabel “Proyek,” terdapat kolom “ID_Pegawai” yang berfungsi sebagai Foreign Key yang merujuk ke Primary Key “ID_Pegawai” dalam tabel “Pegawai.” Ini menciptakan hubungan antara proyek dan pegawai, memungkinkan Anda untuk melihat pegawai yang terlibat dalam setiap proyek.
  2. ID_Pelanggan: Dalam tabel “Pesanan,” kolom “ID_Pelanggan” adalah Foreign Key yang merujuk ke Primary Key “ID_Pelanggan” dalam tabel “Pelanggan.” Ini memungkinkan Anda untuk melacak pelanggan yang melakukan pesanan.
  3. Kode_Barang: Dalam tabel “Rincian_Pesanan,” kolom “Kode_Barang” berperan sebagai Foreign Key yang merujuk ke Primary Key “Kode_Barang” dalam tabel “Barang.” Ini menciptakan hubungan antara pesanan dan barang yang dibeli dalam setiap pesanan.
  4. ID_Kategori: Dalam tabel “Produk,” kolom “ID_Kategori” dapat digunakan sebagai Foreign Key yang merujuk ke Primary Key “ID_Kategori” dalam tabel “Kategori_Produk.” Ini memungkinkan Anda untuk mengkategorikan produk berdasarkan kategori tertentu.
  5. ID_Penulis: Dalam tabel “Buku,” kolom “ID_Penulis” berfungsi sebagai Foreign Key yang merujuk ke Primary Key “ID_Penulis” dalam tabel “Penulis.” Ini menciptakan hubungan antara buku dan penulis yang menulisnya.
    Setiap contoh di atas menunjukkan bagaimana Foreign Key digunakan untuk menghubungkan entitas di satu tabel dengan entitas di tabel lain, ini memungkinkan basis data untuk menjaga integritas referensial dan mengelola relasi antar-data dengan baik.

3. Candidate Key

    Candidate key adalah satu atau beberapa  atribut unik yang salah satu bisa menjadi kunci primer. Artinya atribut kunci kandidat (calon kunci) adalah salah satu dari beberapa atribut objek yang masing-masingnya memiliki nilai unik (super key minimal) dalam tabel basis data. Salah satu dari atribut kunci kandidat (candidate key) tersebut akan menjadi kunci primer (primary key) dan yang tidak terpilih disebut kunci alternatif (alternate key). Oleh karena alasan tersebut Candidate key (kunci kandidat) tertentu berkaitan erat dengan kunci utama (primary key), kunci sekunder  atau kunci alternatif.

    Candidate key ini berperan sebagai untuk mengidentifikasi adanya kejadian yang spesial pada tabel anda. pada candidate key ini juga memiliki syarat sebuah kunci yang dinamakan candidate key adalah unik identifier, serta juga candidate key ini non duplikat. Yang dimana maksudnya tidak ada kunci yang memiliki ciri khas yang sama dengan candidate key.

Berikut adalah 5 contoh dari Candidate Key:

  1. Nomor_Karyawan: Dalam tabel “Karyawan,” kolom “Nomor_Karyawan” dapat menjadi salah satu Candidate Key. Setiap karyawan memiliki nomor karyawan yang unik, dan ini bisa menjadi kandidat untuk Primary Key.
  2. Nomor_Kontrak: Dalam tabel “Kontrak,” kolom “Nomor_Kontrak” mungkin digunakan sebagai salah satu Candidate Key. Setiap kontrak memiliki nomor kontrak yang berbeda, sehingga bisa menjadi kandidat untuk Primary Key.
  3. Nomor_Seri_Produk: Dalam tabel “Produk,” kolom “Nomor_Seri_Produk” bisa menjadi kandidat untuk Primary Key karena setiap produk memiliki nomor seri yang unik.
  4. Nomor_Paspor: Dalam tabel “Penduduk,” kolom “Nomor_Paspor” dapat berperan sebagai salah satu Candidate Key. Setiap penduduk yang memiliki paspor memiliki nomor paspor yang berbeda, yang dapat digunakan sebagai kandidat untuk Primary Key.
  5. Nomor_Pesanan: Dalam tabel “Pesanan,” kolom “Nomor_Pesanan” mungkin digunakan sebagai salah satu Candidate Key. Setiap pesanan yang ditempatkan oleh pelanggan memiliki nomor pesanan yang berbeda, sehingga dapat menjadi kandidat untuk Primary Key.
    Penting untuk diingat bahwa meskipun kolom merupakan kandidat untuk kunci utama, dalam implementasi dunia nyata Anda hanya akan memilih satu kolom atau kombinasi kolom sebagai kunci utama untuk setiap tabel. Pemilihan kunci utama harus mempertimbangkan kebutuhan spesifik database dan penggunaannya dalam sistem yang terlibat.

Kesimpulan

    Dalam dunia database, konsep kunci primer, kunci asing, dan kunci kandidat sangatlah penting. Misalnya, Primary Key adalah kunci utama yang digunakan untuk mengidentifikasi data secara unik dalam tabel, menjaga integritas, dan membuat data lebih mudah ditemukan.

    Sedangkan Foreign Keys berfungsi sebagai penghubung antar tabel database, memastikan integritas referensial dan mempermudah pengelolaan data. Sementara itu, Candidate Key merupakan alternatif yang memenuhi persyaratan untuk menjadi kunci utama dan memungkinkan perancang basis data untuk memilih dengan cermat atribut mana yang akan menjadi pengidentifikasi utama dalam tabel.

    Memahami peran dan fungsi masing-masing kunci ini akan memberikan Anda dasar yang kuat untuk merancang struktur data yang koheren dan efisien dalam database relasional.

Dalam Rangka memenuhi Tugas Mata Kuliah Basis Data yang diampu oleh Bapak Adi Rizky Pratama, M.Kom.

Komentar

Postingan populer dari blog ini

Apa itu attribute, entitas dan relasi dalam ERD

Apa itu Denormalisasi?