Assalamu'alaikum Wr. Wb.
Apa itu Constraint ???
Bagaimana Fungsinya ??
Macam-Macam Constraint ?
Constraint / batasan dalam database pada dasarnya adalah pembatasan nilai-nilai yang diperbolehkan untuk diisikan dalam sebuah kolom atau kolom-kolom yang terdapat dalam sebuah tabel. Dengan menerapkan batasan-batasan dalam sebuah tabel maka dapat dipastikan bahwa hanya data-data yang sesuai dengan batasan tersebut saja yang dapat di sikan dalam tabel tersebut.
Fungsi utama dari penerapan batasan-batasan/ constraint dalam sebuah tabel adalah untuk menjamin konsistensi dan integritas data-data yang diisikan dalam sebuah tabel. Beberapa waktu yang lalu sebelum basis data berkembang seperti saat ini, banyak programmer dan Database Administrator (DBA) menerapkan validasi data pada sisi client/ program aplikasi dantidak pada sisi pemrograman servernya. Tentunya hal ini sangat memerlukan keahlian pemrograman client yang cukup baik dari seorang programmer jika ingin menerapkan validasi yang cukup ketat untuk setiap data-data yang nantinya akan diisikan oleh seorang user dari sisi antarmuka aplikasi clientnya. Contohnya adalah dengan menggunakan visual basic seorang programmer akan membuat listing program tambahan untuk melakukan pengecekan apakah seorang user sudah mengisikan datanya sesuai dengan yang seharusnya diatur dalam business rulesnya. Seiring dengan berkembangnya database, maka saat ini banyak vendor/ perusahaan pembuat aplikasi database seperti Oracle.
Microsoft mulai membuat Database Management System (DBMS) Server yang didalamnya terdapat fitur-fitur yang dapat melakukan validasi terhadap data-data yang dapat diisikan pada sisi server dan bukan lagi pada sisi aplikasi client seperti yang selama ini digunakan oleh programmer. Fitur tersebut disebut dengan constraint. Berikut adalah beberapa contoh constraint yang terdapat dalam produk DBMS, yaitu: PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK, NOT NULL. Tentunya jenis-jenis constraint tersebut dapat berbeda untuk masing-masing DBMS yang ada di pasaran saat ini. Pada oracle Constraint dapat dideklarasikan dengan dua cara yaitu:
- Sebagai bagian dari definisi pada sebuah kolom atau atribut. Ini disebut sebagai in-line
- Sebagai bagian dari definisi tabel yang di sebut out-of-line.
Tipe- tipe constraints :
Constraint
|
Keterangan
|
NOT NULL
| Menentukan suatu kolom tidak boleh berisi NULL. |
UNIQUE
| Untuk mencegah suatu kolom memiliki 2 baris atau lebih berisi data yang sama. |
PRIMARY KEY
| Mengkombinasikan constraint NOT NULL dan UNIQUE dalam satu deklarasi.Mengidentifikasikan secara unik setiap baris pada tabel. |
FOREIGN KEY
| Memaksakan nilai pada suatu tabel untuk bernilai sama dengan tabel lain. |
CHECK
| Menentukan suatu kondisi yang harus benar. |
1. NOT NULL
NOT NULL merupakan constraint yang digunakan untuk menjamin pengisian record ke sebuah tabel agar nilai record tersebut harus berisi data. Sebuah kolom jika di berikan constraint NOT NULL, maka kolom tersebut harus berisikan nilai untuk recordnya dan tidak boleh di kosongkan. NOT NULL hanya bisa di definisikan dalam sebuah tabel pada level kolom dan tidak bisa pada level tabel. Perbedaan antara NOT NULL dan PRIMARY KEY adalah bahwa setiap kolom yang dijadikan PRIMARY KEY pasti NOT NULL dan tidak berlaku sebaliknya.
– Berikut adalah contoh penggunaan constraint NOT NULL:
|
2. UNIQUE
Constraint UNIQUE merupakan sebuah constraint yang akan membatasi pengisian record yang sama kedalam sebuah kolom jika kolom tersebut di berikan constraint UNIQUE dalam sebuah tabel. Constraint ini hampir sama dengan PRIMARY KEY, yaitu menjamin bahwa setiap nilai record yang ada dalam sebuah kolom UNIQUE tidak boleh ada yang sama (unik satu sama lain).
UNIQUE dapat dibuat pada level kolom ataupun level tabel. Sama dengan constraint PRIMARY KEY, FOREIGN KEY, CHECK.
– Perintah dasar pada constraint unique :
|
Keterangan :
U = Singkatan dari UNIQUE
Nama-Tabel = Nama tabel tempat UNIQUE tersebut dibuat.
Nama-Kolom = Nama Kolom yang akan dijadikan UNIQUE
UNIQUE = Jenis constraint-nya, yaitu UNIQUE
– Berikut adalah contoh penggunaan UNIQUE dan PRIMARY KEY secara in-line:
|
3. PRIMARY KEY
PRIMARY KEY atau Kunci Utama dalam sebuah tabel merupakan kunci yang akan membatasi pengisian record dalam sebuah tabel agar tidak duplikat (redundant). Syarat sebuah kolom/ field dijadikan PRIMARY KEY dalam sebuah tabel adalah unik dan tidak boleh kosong (NOT NULL). Artinya bahwa nilai record-record dalam kolom yang dijadikan PRIMARY KEY haruslah unik satu sama lain dan nilainya tidak boleh di kosongkan. Jika sebuah kolom di beri constraint PRIMARY KEY maka sudah pasti kolom tersebut nilainya tidak boleh kosong atau harus berisi data. Berikut adalah perintah dasar pembuatan constraint PRIMARY KEY:
– Perintah dasar pada constraint primary key :
|
Keterangan:
PK = Singkatan dari jenis constraint yaitu PRIMARY KEY
Nama-tabel = Nama tabel tempat constraint tersebut di buat
Nama-kolom = Nama kolom yang akan di beri constraint
Jenis_constraint = Jenis-jenis constraint yang akan dibuat (PRIMARY KEY, FOREIGN KEY, UNIQUE, NOT NULL, CHECK.)
– Berikut merupakan contoh penggunaan PRIMARY KEY secara in-line:
|
– Berikut merupakan contoh penggunaan PRIMARY KEY secara out-of-line:
|
4. FOREIGN KEY
Foreign key disebut juga sebagai contraint Referential Integrity, constraint ini memastikan bahwa data pada suatu tabel didefinisikan pada tabel lainnya dan mengikat kedua tabel tersebut dalam hubungan parent/child atau referenced/dependent.
Saat kita menggunakan constraint FORIGN KEY, maka kita mengindetifikasikan bahwa suatu kolom pada suatu tabel harus ada pada kolom primary key atau unique pada tabel lain. Tabel dengan kolom primary key atau unique sebagai parent atau referenced, sedangkan tabel dengan foreign key sebagai child atau dependent.
– Perintah dasar pada constraint foreign key :
|
Keterangan:
FK = Singkatan dari FOREIGN KEY
Nama-Tabel = Nama tabel tempat FOREIGN KEY tersebut dibuat.
Nama-Kolom = Nama Kolom yang akan dijadikan FOREIGN KEY
FOREIGN KEY = Jenis constraint-nya, yaitu FOREIGN KEY
REFERENCES = Kata kunci untuk merelasikan tabel ini ke tabel utamanya (tabel
yang memiliki PRIMAR KEY)
Tabel-Referensi = Tabel yang akan dijadikan referensi (tabel utama).
Kolom-Referensi = Kolom yang menjadi referensi dari tabel utama.
– Berikut adalah contoh penggunaan FOREIGN KEY secara in-line dan out-of-line:
CREATE TABLE mahasiswa( |
nim INTEGER CONSTRAINT pk_mahasiswa_nim PRIMARY
KEY,
nip INTEGER
CONSTRAINT fk_mahasiswa_nim FOREIGN KEY REFERENCES dosen(nip),
nama_mhs VARCHAR(45),
alamat_mhs VARCHAR(255)
);
CREATE TABLE mahasiswa( |
nim INTEGER CONSTRAINT pk_mahasiswa_nim PRIMARY
KEY,
nip INTEGER
nama_mhs VARCHAR(45),
alamat_mhs VARCHAR(255),
CONSTRAINT fk_mahasiswa_nim FOREIGN KEY REFERENCES dosen(nip)
);
Secara default, constraint foreign key mencegah penghapusan data pada tabel parent, apabila data tersebut di referensi oleh tabel child. Tetapi, jika kita tidak menginginkan hal demikian, kita dapat mengatur database agar secara otomatis menjaga referensial integrity dengan 2 cara, yaitu dengan menghapus data pada tabel child menggunakan klausa ON DELETE CASCADE dan mengubah nilai referensi pada tabel chile menjadi NULL menggunakan klausa ON DELETE SET NULL.
– Contoh penggunaan ON DELETE CASCADE
|
– Contoh penggunaan ON DELETE SET NULL
|
FOREIGN KEY YANG MEREFERENSIKAN DIRINYA SENDIRI
Tabel parent dan child tidak terbatas pada dua tabel yang berbeda, namun bisa juga pada dua kolom yang berbeda pada tabel yang sama, ini disebut dengan sel-referencing foreign key. Contohnya adalah tabel Pegawai yang membutuhkan data atasan dari tiap-tiap pegawai, dan atasan tersebut juga merupakan seorang pegawai. Dengan konfigurasi ini hierarki dalam tabel bisa dibuat lebih fleksibel.
5. CHECK
Constraint CHECK fungsinya untuk pengecekan apakah sebuah kolom memenuhi sebuah kondisi spesifik yang dievaluasi dengan nilai boolean. Jika evaluasi menghasilkan nilai FLASE, maka oracle akan mengeluarkan eksepsi, dan klausa insert atau update akan gagal.
– Berikut adalah contoh penggunaan constraint CHECK dalam sebuah tabel:
|
0 komentar:
Posting Komentar