Apa itu primary key, foreign key dan atribute key ?
Primary Key
Meskipun ketentuannya adalah bahwa setiap record dalam tabel harus berbeda, tetapi tidak selalu demikian. Melanjutkan contoh database rental mobil, jika database tersebut berisi dua pelanggan yang masing-masing memiliki nama yang sama yaitu “Johnny Cage”, Johnny Cage diharuskan untuk mengembalikan sebuah Mercedes-Benz yang sudah ia sewa. Dengan membuat primary key akan mengurangi risiko ini.
Apa Itu Primary Key
Dalam SQL database management system, primary key adalah tanda pengenal unik yang membedakan satu record dari yang lain. Oleh karena itu, setiap record dalam SQL database management system harus memiliki primary key. Tetapi ada beberapa aturan yang harus kalian ikuti ketika menentukan primary key untuk tabel:
- Primary key harus berisi nilai unik. Jika primary key terdiri dari beberapa kolom, kombinasi value pada kolom ini harus unik.
- Kolom primary key tidak boleh berisi nilai NULL. Ini berarti bahwa kalian harus mendeklarasikan kolom primary key dengan atribut NOT NULL. Jika tidak, MySQL akan memaksa kolom primary key sebagai NOT NULL secara implisit.
- Sebuah tabel hanya memiliki satu primary key
Menggunakan Primary Key Dalam Database
Untuk menyertakan primary key dalam database management system menggunakan SQL, kalian cukup menambahkannya sebagai atribut normal saat membuat tabel baru. Jadi tabel pelanggan akan berisi empat atribut (atau kolom):
- ID Pemilik Mobil (yang akan menyimpan primary key)
- Nama depan
- Nama belakang
- Nomor telepon
Sekarang setiap record pelanggan yang masuk ke database akan memiliki nomor identifikasi unik, serta nama depan, nama belakang, dan nomor telepon. Nomor telepon tidak cukup unik untuk dijadikan primary key, karena meskipun unik untuk satu orang pada satu waktu, seseorang dapat dengan mudah mengubah nomornya, artinya nomor itu bisa saja menjadi milik orang lain.
Foreign Key
Sekarang kalian memiliki primary key yang secara unik membedakan penyewa mobil dari yang lainnya. Satu-satunya masalah adalah, dalam database, tidak ada hubungan nyata antara setiap Johnny Cage dan mobil yang dia sewa. Oleh karena itu, kemungkinan terjadinya kesalahan masih ada.
Di sinilah foreign key berperan. Menggunakan primary key untuk memecahkan masalah ambiguitas kepemilikan hanya dapat dicapai jika primary key berfungsi ganda sebagai foreign key.
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.
Composite Key
Composite key memiliki dua atau lebih pengenal unik. Dalam database relasional, akan ada contoh ketika penggunaan foreign key tunggal tidak cukup mewakili hubungan yang ada di dalam database itu. Dalam contoh rental mobil, pendekatan yang paling praktis adalah dengan membuat tabel baru yang menyimpan rincian sewa. Agar informasi dalam tabel rental mobil berguna, ia harus terhubung ke tabel mobil dan pelanggan.
Perbedaan Primary Key Dan Foreign Key
| Primary Key | Foreign 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. |
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.
Dari artikel ini, kalian sudah mengetahui apa itu foreign key dan primary key, cara kerjanya, dan mengapa penting untuk memilikinya dalam database. Kalian juga sudah memahami bentuk dasar primary key dan foreign key dan bahkan lebih kompleks.

Komentar
Posting Komentar