DB2 Constraint

Constraint merupakan sebuah aturan untuk mengecek validitas data. Ada beberapa macam contraint yang telah sering kita gunakan, namun mungkin tidak kita sadari kalau itu merupakan sebuah contraint.
1. data type contraint, misalnya kita memasukkan “deny” ke dalam kolom yang bertipe INT, maka akan di reject
2. primary key contraint
3. unique contraint
4. foreign key contraint
5. check contraint, ini merupakan contraint yang di definisikan sendiri oleh user.

Berikut contoh command create table dengan 2 constraint

db2 create table deny (empno int not nul
l primary key, job varchar(10) constraint check_job check (job in (‘sales’,'mana
ger’,'bos’)), age int constraint cek_umur check (age in(17,18,19,20)))

Kemudian jika kita melakukan command seperti
db2 insert into deny values (’001′,’sales’,18) -> error karena data type contraint
db2 insert into deny values (1,’sales’,18)
db2 insert into deny values (2,’dokter’,18) -> error karena check constraint check_job
db2 insert into deny values (2,’manager’,18)
db2 insert into deny values (2,’sales’,18) -> error karena primary key constraint

Menggunakan constraint dapat memastikan validitas data, namun tentunya akan menurunkan performa jika data yang diinsert / update sangat banyak. Untuk mengatasi ini, DB2 mempunyai alternatif yaitu informational constraint. Dengan informational constraint ini DB2 akan mengecek format data namun tidak dilakukan ketika insert / update.

Berikut contoh command create table dengan information constraint

db2 create table empdata(empno int not null, gender char (1) not null constraint check_gender check (gender in(‘M’,'F’))
not enforced enable query optimization)

Namun informational constraint memiliki kekurangan. Karena constraint ini hanya mengecek format data, maka kadang- kadang akan terjadi data yang aneh. Misalnya kita melakukan command insert sebagai berikut
db2 insert into empdata values (1,’M')
db2 insert into empdata values (2,’M')
db2 insert into empdata values (3,’F')
db2 insert into empdata values (4,’A')
db2 insert into empdata values (5,’F')

Command diatas akan berjalan tanpa error, namun tentunya command ke 4 merupakan inputan yang salah. Informational constraint cocok digunakan jika aplikasi end user yang digunakan dapat menjamin data yang di insert/update benar.

Semoga bermanfaat.

Sumber
DB2 9 DBA exam 731 preparation

This entry was posted in DB2 and tagged , , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>