Hola mentemen! pernah nggak sih kamu merasa risih dengan data duplikat dalam database? Mungkin kamu pernah menemukan data dengan nilai yang sama terulang-ulang pada tabel. Hal tersebut seringkali membuat database tidak efisien karena memakan ruang penyimpanan yang tidak perlu. Tapi, jangan khawatir, konsep UNIQUE CONSTRAINT pada database dapat membantu mengatasi masalah ini.

Pengertian Unique Constraint

Unique constraint adalah salah satu jenis constraint dalam database yang digunakan untuk memastikan bahwa setiap nilai pada kolom tertentu pada sebuah tabel adalah unik dan tidak ada duplikat. Artinya, kolom yang memiliki unique constraint tidak diperbolehkan memiliki nilai yang sama dengan kolom lain pada tabel yang sama.

Dalam implementasinya, unique constraint dapat diterapkan pada satu kolom atau beberapa kolom pada sebuah tabel. Jika diterapkan pada satu kolom, maka kolom tersebut harus memiliki nilai yang unik. Namun, jika diterapkan pada beberapa kolom, maka kombinasi nilai pada kolom-kolom tersebut harus unik.

Perbedaan Unique dengan Primary Key

Unique constraint dan primary key merupakan dua konsep yang seringkali membingungkan bagi pemula dalam penggunaan database. Keduanya memiliki tujuan yang sama, yaitu memastikan bahwa setiap nilai pada suatu kolom dalam tabel database adalah unik dan tidak ada duplikat.

Perbedaan utama antara unique constraint dan primary key adalah pada tujuan dan cara penggunaannya. Primary key digunakan untuk mengidentifikasi setiap baris atau record dalam sebuah tabel secara unik dan memastikan bahwa nilai pada kolom tersebut tidak null atau kosong. Sedangkan unique constraint digunakan untuk memastikan bahwa nilai pada kolom tersebut unik dan tidak ada duplikat, tetapi tidak secara khusus digunakan sebagai identifier dari suatu record.

Secara sederhana, primary key memastikan bahwa setiap record dalam tabel memiliki identitas unik, sedangkan unique constraint memastikan bahwa tidak ada data duplikat dalam suatu kolom pada tabel.

Untuk contoh penerapan, mari kita ambil contoh tabel “peserta” dengan kolom “id_peserta”, “nama”, dan “email”. Jika kita ingin menggunakan primary key, kita bisa menambahkan primary key pada kolom “id_peserta” untuk memastikan bahwa setiap record memiliki nilai yang unik.

CREATE TABLE peserta (
  id_peserta INT PRIMARY KEY,
  nama VARCHAR(50),
  email VARCHAR(50)
);

Sedangkan jika kita ingin menggunakan unique constraint pada kolom “email”, kita bisa menambahkan unique constraint pada kolom tersebut untuk memastikan bahwa setiap nilai pada kolom “email” adalah unik.

CREATE TABLE peserta (
  id_peserta INT PRIMARY KEY,
  nama VARCHAR(50),
  email VARCHAR(50) UNIQUE
);

Perlu diingat bahwa sebuah tabel hanya bisa memiliki satu primary key, tetapi bisa memiliki beberapa unique constraint pada beberapa kolom yang berbeda. Selain itu, primary key juga seringkali digunakan sebagai foreign key untuk membuat relasi antara tabel yang berbeda dalam database.

Contoh Penerapan Unique

Berikut adalah contoh penerapan unique constraint pada sebuah tabel “produk” dengan kolom “kode_produk” dan “nama_produk”:

CREATE TABLE produk (
    kode_produk INT PRIMARY KEY,
    nama_produk VARCHAR(50) UNIQUE,
    harga DECIMAL(10, 2),
    stok INT
);

Pada contoh di atas, kolom “kode_produk” dijadikan sebagai primary key, sementara kolom “nama_produk” dijadikan sebagai unique constraint. Hal ini memastikan bahwa setiap nilai pada kolom “nama_produk” adalah unik dan tidak ada duplikat. Jika terdapat upaya untuk memasukkan nilai yang sama pada kolom “nama_produk”, maka database akan mengembalikan pesan error dan data tersebut tidak akan disimpan.

Untuk menambahkan unique constraint pada sebuah tabel yang sudah ada, dapat dilakukan dengan menggunakan perintah ALTER TABLE pada SQL. Berikut adalah contoh syntax SQL untuk menambahkan unique constraint pada kolom “nama_produk” pada tabel “produk”:

ALTER TABLE produk
ADD CONSTRAINT uc_nama_produk UNIQUE (nama_produk);

Dalam contoh di atas, unique constraint diberikan pada kolom “nama_produk” pada tabel “produk”. Dengan demikian, setiap nilai pada kolom “nama_produk” harus unik dan tidak diperbolehkan adanya duplikat. Jika terdapat upaya untuk memasukkan nilai yang sama pada kolom “nama_produk”, maka database akan mengembalikan pesan error dan data tersebut tidak akan disimpan.