Sep
21
2014

Perbedaan Primary Key, Foreign Key dan Unique Key

Primary key atau Unique key merupakan kunci yang secara unik mengidentifikasi baris pada table. Primary key atau unique key dapat diterapkan pada satu atau lebih field. Apabila primary key atau unique key diterapkan pada satu atau lebih field maka pada field tersebut tidak boleh bernilai sama untuk seluruh baris pada table.
Yang membedakan antara primary key dengan unique key adalah setiap kita memberikan constraint primary key pada field maka constraint  NOT NULL akan diberikan pada field tersebut secara otomatis. Sedangkan pada unique key tidak.

Perhatikan table di bibawah ini, Tujuan dari table ini adalah agar tidak ada iduser yang sama dan tidak ada pula email yang sama di dalam table tersebut.

Pada table di atas  iduser berfungsi sebagai PRIMARY KEY, sedangkan email berfungsi sebagai UNIQUE

 

Lalu mengapa email tidak memakai PRIMARY KEY saja?

 

Apabila id_user  PRIMARY KEY dan email PRIMARY KEY. Penjelasannya adalah seperti di bawah ini:

Misalnya saja kita memasukkan data
iduser = 100
email = saya@gmail.com

Maka data akan masuk ke dalam table karena ada salah satu data (email) yang tidak sama dengan email di dalam table, meskipun iduser sama dengan iduser di dalam table (admin). Kondisi ini adalah salah, karena tidak sesuai dengan tujuan table di buat.

Sedangkan, apabila id_user  PRIMARY KEY dan email UNIQUE

Maka, misalnya saja kita memasukkan data
iduser = 100
email = saya@gmail.com

Maka data akan di tolak masuk ke dalam table karena iduser(100) yang akan di masukkan sama dengan iduser yang telah ada di dalam table. Meskipun email berbeda dengan email yang telah ada di dalam table. Kondisi ini benar karena sesuai dengan tujuan table di buat dimana tak di ijinkan jika ada iduser maupun email yang sama.

Kemudian ada istilah foreign key. Dengan adanya foreign key ini dapat terlihat adanya hubungan antara satu table dengan table yang lain. Foreign key mengidentifikasi satu atau lebih kolom pada satu table ( dalam kata lain bisa disebut dengan table referensi ) mengarah dari satu atau lebih table lainnya . Dengan adanya constraint foreign key pada satu kolom maka data pada kolom table referensi harus terdapat pada table induk.
Pada versi MySQL 5.0, foreign key hanya dapat diterapkan pada table dengan tipe InnoDB namun pada versi selanjutnya dapat diterapkan juga pada MyISAM. Kemudian field dengan tipe BLOB atau TEXT tidak dapat diberikan constraint foreign key.

Sumber : www.kuncen.cmi.web.id

Written by irvananda in: SQL | Tags:

No Comments »

RSS feed for comments on this post. TrackBack URL


Leave a Reply

Powered by WordPress. Theme: TheBuckmaker. Zinsen, Streaming Audio