Jumat, 23 November 2012

LATIHAN CONSTRAINT


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