Primary Key dan Foreign Key
Primary Key dan Foreign Key
Pengertian Primary Key
Pengertian Primary Key
Secara sederhana, Primary Key disebut juga dengan Kunci Primer. Kunci Primer tersebut dipilih sebagai identifikasi untuk membedakan satu baris dengan baris lainnya dalam suatu tabel. Pada dasarnya, setiap tabel hanya memiliki satu primary key saja. Primary key yang terdapat di tabel pertama dihubungkan dengan tabel kedua sehingga pada tabel kedua disebut dengan Foreign Key.
Dalam suatu tabel, Anda mungkin menemukan banyak kolom yang disebut dengan kunci kandidat (Candidate Key), dimana satu diantara kunci kandidat tersebut dijadikan sebagai kunci primer (Primary Key).
Bentuk perintah dasar untuk membuat Primary Key dalam SQL adalah :
Column data_type1 [PRIMARY KEY]
Fungsi Primary Key
Dalam penggunaan relasional database, tabel digunakan untuk menyimpan setiap nilai didalamnya. Tabel yang merupakan gabungan dari kolom yang terdiri dari nilai (value) yang bersifat unik untuk mengidentifikasi setiap barisnya. Kolom yang unik itulah yang disebut dengan primary key. Primary key tersebut menandakan tingkat integritas dari tabel tersebut.
Pemilihan primary key (kunci primer) merupakan salah satu langkah yang terpenting dalam perancangan sebuah database yang baik dan benar. Primary key terdapat di sebuah kolom yang digunakan untuk melaksanakan tujuan khusus. Sebagai contoh, Anda menentukan primary key yang memungkinkan Anda melakukan query, seperti mengubah atau memodifikasi setiap baris tanpa harus mengganggu baris lain di tabel yang sama.
Keunikan primary key dapat mencegah terjadinya duplikasi data. Selain itu, primary key juga dapat membantu Anda melakukan pencarian dengan waktu yang begitu cepat. Sebagai contoh, dalam tabel MAHASISWA mungkin memiliki risiko yang besar untuk membedakan setiap namanya, bisa saja seorang mahasiswa tersebut memiliki nama yang sama dengan mahasiswa lain. Oleh karena itu, diperlukannya noMahasiswa yang diberikan kepada setiap mahasiswa sebagai kunci primer yang dapat memastikan bahwa setiap mahasiswa tersebut berbeda dan bersifat unik.
Syarat dari Primary Key
Seperti yang sudah dijelaskan sebelumnya bahwa tabel menjadi syarat utama yang harus dipenuhi dalam merancang relasional database. Tabel tersebut pun harus memiliki kunci primer (primary key). Namun, untuk menetapkan primary key diperlukan beberapa syarat yang harus dipenuhi kolom tersebut, diantaranya adalah sebagai berikut :
- Sebuah tabel hanya dapat memiliki satu primary key.
- Primary key tidak boleh melebihi batas 16 kolom dengan panjang dari kunci tersebut berukuran 900 byte.
- Kolom yang didefinisikan sebagai primary key bersifat NOT NULL. Fungsinya untuk memastikan bahwa nilai pada kolom tersebut harus terisi (tidak boleh kosong). Jika dilakukan penginputan data, namun tidak memberikan nilai pada kolom tersebut maka akan terjadi error dalam database.
- Tidak boleh terdapat nilai data yang sama di kolom (field) tersebut.
- Tipe data yang digunakan untuk primary key tidak boleh bertipe BLOB.
Untuk lebih jelasnya, coba perhatikan contoh dibawah ini.
Pengertian Foreign Key
Secara sederhana, foreign key dapat diartikan sebagai kunci asing. Definisi tersebut juga berlaku dalam pengolahan relasional database. Kunci asing (Foreign Key) adalah sebuah atribut atau gabungan atribut yang terdapat dalam suatu tabel yang digunakan untuk menciptakan hubungan (relasi) antara dua tabel.
Dalam relasional database, penggunaan foreign key merujuk pada suatu kunci primer yang terdapat pada tabel pertama atau dikenal juga dengan tabel master. Untuk lebih jelasnya, perhatikanlah gambar dibawah ini.
Fungsi Foreign Key
- Dengan menentukan kunci asing, maka otomatis database akan konsisten dalam mempertahankan integritas referensial. Dengan begitu, database dapat memonitor setiap data yang dimasukkan. Misalkan pada contoh gambar diatas, ketika Anda mencoba memasukkan record baru dalam tabel Karyawan (“2010004”, “Andi”, “Pria”, “10/03/1990”, “PEN”). Maka secara otomatis, database akan menolak memasukkan record tersebut dan menampilkan pesan kesalahan. Sebab, dalam kolom Department_Id di tabel Department tidak mengenal “PEN”.
- Ketika Anda telah menetapkan kunci primer di tabel utama dan kunci asing di tabel kedua, maka itu memudahkan Anda untuk melihat rancangan fisik database dengan komponen yang saling terkait. Dengan begitu, Anda tidak perlu membuat rancangan database secara manual. Pada XAMPP, Anda dapat melihat rancangan fisik database yang telah dirancang dengan klik menu More -> Designer.
- Dengan membuat kolom yang digunakan sebagai foreign key, maka dapat memudahkan Anda untuk melakukan operasi pengolahan setiap data yang tersimpan dalam database. Sebab, data yang tersimpan sudah saling terkait satu dengan yang lainnya.
Perbedaan Primary Key dan Foreign Key
A.Primary Key
- Kunci utama mendefinisikan nilai tuple dalam sebuah tabel. Kunci utama juga dapat dikatakan sebagai atribut tunggal dalam tabel. Dengan begitu, nilai dari kunci utama tidak boleh berubah. Sebab, perubahan nilai pada primary key malah akan menciptakan kebingungan
- Hal yang menjadi perbedaan utama antara primary key dengan foreign key adalah nilai yang digunakan dalam primary key tidak boleh NULL. Maksudnya adalah record tersebut harus diisi dengan nilai (tidak boleh kosong). Jika nilai atribut primary key mengandung NULL, maka Anda tidak dapat mengidentifikasi record yang terdapat dalam tabel tersebut.
- Dalam primary key, Anda dapat membuat clustered index secara otomatis. Maksudnya Anda dapat mengurutkan data yang akan disimpan dalam database.
- Kunci utama merupakan kombinasi antara UNIQUE dan NOT NULL. Hal itu menyebabkan tidak adanya nilai duplikat yang boleh dimiliki kolom untuk didefinisikan sebagai kunci utama, terutama dalam mengolah relasional database.
- Anda dapat menambahkan nilai baru ke atribut primary key, walaupun kunci asing tidak memiliki nilai baru dalam kolomnya.
- Anda tidak dapat menghapus nilai dari primary key dari tabel pertama (parent). Untuk itu, Anda harus menghapus atribut yang disebut dengan foreign key di dalam tabel kedua atau child.
B.Foreign Key
- Foreign key merupakan suatu field dalam satu tabel yang digunakan untuk menghubungkan dua tabel. Dengan begitu, foreign key merujuk pada suatu kolom yang unik untuk mengidentifikasi baris dari satu tabel yang sama atau berbeda.
- Berbeda dengan primary key yang nilainya tidak boleh NULL. Foreign key dapat menerima nilai NULL. Oleh karena itu, foreign key tidak memiliki fungsi untuk mengidentifikasi record yang terdapat dalam tabel. Selain itu, foreign key juga dapat menerima nilai yang duplikat.
- Di dalam foreign key tidak terdapat clustered index. Namun, Anda dapat melakukannya dengan manual.
- Anda tidak dapat menambahkan nilai ke dalam foreign key, jika nilai tersebut tidak tersedia di kolom primary key. Sebab, syarat nilai dalam foreign key merupakan nilai rujukan dari kolom primary key.
- Anda dapat menghapus suatu nilai yang berasal dari kolom foreign key tanpa mengganggu record yang lain, dan juga tanpa harus mengetahui apakah nilai tersebut merupakan nilai yang dirujuk dari primary key atau tidak.
Komentar
Posting Komentar