2. Primary Key, Foreign Key dan Candidate Key dalam ERD


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

Primary key adalah salah satu konsep penting dalam desain basis data yang digunakan untuk mengidentifikasi secara unik setiap baris atau rekaman dalam sebuah tabel. Primary key berperan sebagai penanda khusus yang membedakan satu baris data dari yang lain, sehingga memungkinkan basis data untuk mengelola dan mengakses informasi dengan efisien.

Berikut adalah beberapa karakteristik utama dari primary key:

  1. Unik: Setiap nilai dalam kolom primary key harus unik untuk setiap baris dalam tabel. Ini memastikan bahwa tidak ada duplikat atau redundansi data dalam basis data.

  2. Tidak Boleh Kosong (Not Null): Setiap baris harus memiliki nilai dalam kolom primary key. Dengan kata lain, kolom primary key tidak dapat berisi nilai NULL atau kosong.

  3. Stabil (Stable): Nilai primary key seharusnya tidak berubah sepanjang hidup suatu baris data. Ini membantu menjaga konsistensi dan integritas data dalam basis data.

  4. Minimal (Minimal): Primary key sebaiknya terdiri dari sejumlah kolom yang diperlukan untuk memastikan keunikan, tetapi sejumlah minimum kolom. Hal ini membantu mengurangi overhead dan meningkatkan kinerja.

  5. Secara Konseptual Unik: Meskipun beberapa basis data mungkin mendukung konsep primary key gabungan (composite primary key) yang terdiri dari beberapa kolom, konsep ini pada dasarnya menghasilkan suatu nilai yang unik.

Keberadaan primary key memungkinkan basis data untuk melakukan beberapa fungsi penting, termasuk:

  • Unik Identifikasi: Memudahkan identifikasi dan referensi baris tertentu dalam tabel.

  • Integritas Referensial: Digunakan untuk membangun hubungan antara tabel dengan cara yang memastikan integritas referensial antar tabel.

  • Optimasi Kueri dan Indeks: Banyak basis data akan membuat indeks otomatis pada kolom primary key untuk meningkatkan kinerja pencarian dan pengaksesan data.

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.


2. Foreign Key

Foreign key adalah istilah yang sering muncul saat belajar tentang database. Pasalnya atribut ini memiliki peranan penting dalam pengolahan database.

Database tersebut berisi tabel yaitu baris dan kolom yang berbeda untuk menyimpan masing-masing data pada entitas tertentu. Sehingga, dalam sistem managemen database, setiap baris memang harus unik.
Jadi, kamu harus memilih salah satu dari beberapa sistem manajemen yang ada ketika hendak membuat SQL database. Salah satu yang paling populer adalah sistem manajemen relasional database.
Jika kamu seorang programmer pemula, maka perlu memahami foreign key ketika hendak membuat SQL database atau sedang mempelajari bahasa query.

Apa Itu Foreign Key

Dalam SQL database management system, foreign key adalah pengenal unik atau kombinasi pengenal unik yang menghubungkan dua tabel atau lebih dalam database. Dari empat SQL database management system yang ada, relational database management system adalah yang paling populer.

Saat memutuskan tabel mana dalam database relasional yang harus memiliki foreign key, kalian harus terlebih dahulu mengidentifikasi tabel mana yang merupakan subjek dan objek dalam hubungannya.

Kembali ke database rental mobil, untuk menghubungkan setiap pelanggan ke mobil yang benar, kalian harus memahami bahwa pelanggan (subjek) menyewa mobil (objek). Oleh karena itu, foreign key harus ada di tabel mobil. Kode SQL yang menghasilkan tabel dengan foreign key sedikit berbeda dari norma.

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.
  • Foreign key berfungsi untuk membuat database menjadi konsisten dalam mempertahankan integritas referensi. Maka dari itu, database dapat memonitor setiap data yang akan dimasukkan.
  • Ketika kamu telah menetapkan primary key pada tabel utama dan meletakkan foreign key pada tabel kedua, maka akan memudahkanmu untuk melihat rancangan fisik database dengan komponen yang saling terkait. Sehingga, kamu tidak perlu membuat rancangan database secara manual.
  • Kolom dalam tabel yang digunakan sebagai foreign key akan memudahkan kamu untuk melakukan pengolahan dari setiap data yang tersimpan dalam database karena data tersebut sudah saling terkait satu sama lain.
  • Membangun hubungan antar baris yang memiliki peran penting dalam normalisasi relasional database. Pada tahap ini, foreign key berfungsi untuk mengakses tabel lain dan menyortir database.

5 contoh penerapan Foreign Key pada 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.


Perbedaan Primary Key Dan Foreign Key


Primary KeyForeign Key

Batasan primary key adalah kolom atau grup kolom yang secara unik mengidentifikasi setiap baris dalam tabel relational database management system.
Foreign key adalah kolom yang membuat hubungan antara dua tabel.
Ini membantu kalian secara unik mengidentifikasi record dalam tabel.Ini adalah bidang dalam tabel yang merupakan primary key dari tabel lain.
Primary key tidak pernah menerima nilai null.Foreign key dapat menerima beberapa nilai null.
Primary key adalah clustered index, dan data dalam tabel DBMS secara fisik diatur dalam urutan clustered index.Foreign key tidak dapat secara otomatis membuat indeks, clustered, atau non-clustered
Kalian dapat memiliki satu primary key dalam sebuah tabel.Kalian dapat memiliki beberapa foreign key dalam satu tabel.
Value primary key tidak dapat dihapus dari tabel induk.Value foreign key dapat dihapus dari tabel anak.
Kalian dapat menentukan primary key secara implisit di tabel sementara.Kalian tidak dapat menentukan foreign key di tabel sementara lokal atau global.
Primary key adalah clustered index.Secara default, ini bukan clustered index.
Tidak ada dua baris yang dapat memiliki value identik untuk primary key.Foreign key dapat berisi value duplikat.
Tidak ada batasan dalam memasukkan value ke dalam kolom tabel.Saat memasukkan value apa pun dalam tabelforeign key, pastikan bahwa value tersebut ada di kolom primary key.

    

3. Candidat Key


Definisi Super Key Basis Data

Definisi super key menurut Word Sense adalah Setiap set atribut dari variabel relasi (tabel) yang berfungsi untuk mengidentifikasi satu tupel (himpunan terurut) atau baris gugus data, tidak ada tupel lain yang memiliki nilai yang sama untuk setiap atribut dalam himpunan.

Superkey adalah sebuah frasa, jika diuraikan maka akan terbentuk dari dua kata, yaitu Super dan key. Superkey dalam bahasa indonesia bisa dikatakan kunci super atau istimewa, karena pembentukannya sendiri berdasarkan satu atau gabungan atribut yang membuatnya lain daripada key-key lain.


Pengertian Super Key Basis Data

Pengertian super key adalah satu atau lebih atribut (Gugusan atribut) bukan key yang dapat membedakan setiap baris data dalam tabel secara unik dan tidak bernilai kosong.

Fathansyah pada Basis Data Revisi Kedua menuliskan superkey adalah satu atau lebih atribut (gabungan atribut) yang dapat membedakan setiap baris data dalam sebuah tabel secara unik. Tentunya superkey merupakan atribut not null atau tidak kosong

Contoh Super Key Basis Data

Contoh Super Key akan terjadi ketika dalam suatu baris data tabel basis data tidak memiliki atribut kunci atau bernilai informasi unik, maka disini desainer sistem basis data harus menyeleksi dan menentukan satu atribut (field) atau gabungan atribut-atribut non-key sehingga membentuk informasi unik dan sistem tersebut dapat memberikan informasi valid.

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


Kesimpulan
Jadi apa itu primary key dan foreign key? Primary key adalah aturan-aturan yang berguna agar setiap baris data atau nilai bersifat unik, agar masing-masing baris berbeda satu sama lain. Sedangkan foreign key adalah satu atribute (atau satu set atribute) yang melengkapi satu relationship (hubungan) yang menunjukkan ke induknya.

Tugas dari ubp karawang dan adi rizki


Komentar