PERANCANGAN BASIS DATA
- CONSTRAINT
CONSTRAINT adalah
untuk membuat suatu aturan atau batasan yang berlaku pada tabel tersebut,
sehingga dapat mencegah kesalahan operasi DML yang dikenakan pada tabel
tersebut.
- Tipe-tipe COntraint
- Not null
Contraint
ini digunakan untuk mencegah adanya kolom yang bernilai null, salah satu efek
yang ditimpulkan nilai null adalah jika kolom tsb dikenakan hokum aritmatika
akan memberikan hasil yang tidak sesuai.
Contoh:
Tambahkan
kolom baru pada tabel barang;
Alter
table barang add ( harga number);
Select
kd_brg,nm_brg, harga,stok, (harga * stok) as jum_harga from barang
Kemudian ubah harga barang menjadi 10.000
Update
barang set harga=10000;
Select
kd_brg,nm_brg, harga,stok, (harga * stok) as jum_harga from barang
Dari
kasus query diatas akan memberikan kondisi nilai yang berbeda pada perhitungan
(stok * harga)
- Unique
Bertujuan
untuk membuat sebuah kolom atau kombinasi dari beberapa komlom pada sebuah
table nebjadi bersifat unik.
Contoh:
Ceate
table karyawan (
nip
varchar(5) constraint pk_kry primary key,
nama
varchar(50) not null,
kd_jabatan
varchar(1) unique,
nm_jabatan
varchar(20)
);
Kemudian
jalakan sql sbb:
Insert
into (nip,nama,kd_jabatan,nm_jabatan)
values
(‘09001’,’AGUS’,’A’,’KA. BAAK’)
Insert
into (nip,nama,kd_jabatan,nm_jabatan)
values
(‘09002’,’BUDI’,’A’,’KA. BAAK’)
pada
saat baris kedua dimasukan akan terjadi kesalahan sbb:
ERROR
at line 1:
ORA-00001:
unique constraint (.....SYS_C00879) violated
Kesalahan
tersebut muncul karena ada baris yang sapa pada kolom kd_jabatan “A”.
- Primary key -> Jelas
- Foreign key
Untuk
menetapkan suatu kolom atau kombinasi dari beberapa kolom menjadi foreign key
dari sebuah table. Foreign key seriang di sebut referential integrity
constraint. Kegunaanya untuk membentuk relasi dari satu table ke table
yang lainya.
Contoh:
Kolom
kd_dev yang ada pada table dkb merupakan foreign key.
Coba
untuk membuktikan integrity nya terbentuk atau tidak:
Tambah
record baru pada table dkb.
Insert
into dkb(no_dkb,bulan,tahun,kd_dev)values(‘T0005’,’01’,’2008’,’D5’);
Baris
tersebut dapat masuk.
Delete
from devisi where kd_del=’D1’;
Baris
tersebut dapat dihapus;
Kemudian
jalankan perintah sbb:
Alter
table dkb add constraint fk_dkb foreign key (kd_dev)
References
devisi(kd_dev);
Kemudian
jalankan lagi sql sbb:
Insert
into dkb(no_dkb,bulan,tahun,kd_dev)values(‘T0005’,’01’,’2008’,’D6’;
Baris
tersebut tidak dapat dimasukan, baca pesan kesalahan.
Delete
from devisi where kd_del=’D1’;
Baris
tersebut tidak dapat dihapus, baca pesan kesalahan.
- Check
Constraint
check berguna untuk membuat suatu kondisi yang harus dipenuhi setiap record
dalam table.
Kondisi
tersebut dapat berupa kodisi sbb:
. Kondisi
PERBANDINGAN
. Kondisi
RANGE
. Kondisi
NULL
. Kondisi
LIKE
. Kondisi
EXIST
- Kondisi PERBANDINGAN
Contoh:
Untuk
memasukan data nama devisi harus berawalan huruf besar dan diikuti huruf kecil.
Alter
table devisi add constraint chk_namadevisi
check
(nm_dev=initcape(nm_dev));
conba
insert data baru pada devisi
Insert into devisi(kd_dev,nm_dev)values(‘D5’,’kebersihan’);
Akan terjadi error message, baca pesan error nya.
- Kondisi RANGE
Contoh:
Alter
table barang constraint chk_stok check(stok between 0 and 999);
Insert into barang(kd_brg,nm_brg,satuan,stok)
values(‘B0003’,’KACANG’,’Kg’,1000);
Akan terjadi error message, baca pesan error nya.
--------selamat
mencoba--------
Tidak ada komentar:
Posting Komentar