INTEGRITAS BASIS DATA Integritas Basis data Menjamin Validitas
INTEGRITAS BASIS DATA
Integritas Basis data Menjamin Validitas data yang terekam sesuai dengan aturan yang telah ditentukan. v. Penetapan aturan integritas basis data untuk menghidari basis data dari upaya/ kesalahan dalam melakukan manipulasi data yang dapat membuat basis data menjadi tidak konsisten v. Jenis Integritas Basis Data 1. Integritas Entitas (Entity Integrity) 2. Integritas Jangkauan (Domain Integrity) 3. Integritas Acuan ( Referential Integrity) 4. Integritas Data antar Tabel (Redundant data Integrity) 5. Integritas Aturan Nyata (Bussiness Rule Integrity)
1. Integritas Entitas (Entity Integrity) § Tidak ada baris data yang duplikat § Setiap tabel diharuskan memiliki atribut kunci yang nilainya Nim unik Kode_kul Nilai § contoh 10001 : IT 110 D 10002 IT 310 10003 AK 234 10001 IT 110 B B D Tidak memenuhi integritas entitas § Aturan : a. Menentukan key pada tabel b. Penerapan proses validasi pada program pemasukan data § Harus ditentukan key, sehingga DBMS akan memberikan pesan error dan penolakan
Nim 10001 10002 10003 10001 Kode_kul IT 110 IT 310 AK 234 IT 110 Nilai D B B D Sem 1 1 1 3 Memenuhi integritas entitas Key : nim+sem 2. Integritas Jangkauan (Domain Integrity) § Merujuk pada batas nilai yang diperbolehkan untuk setiap atribut § Jenis jankauan : Karakter , Alfanumerik, Alfabet, Numerik § Menentukan type dan panjang atribut yang akan menentukan kebutuhan ruang fisik penyimpanan data § Contoh type integer (-32768 sd 32767) pada Oracle BIGINT (19 digit), INTEGER (2147483648 sd 21474836487), SMALLINT (-32768 sd 32767), TINYINT (-128 sd 127) § CREATE DOMAIN agama CHAR (1) VALUES
3. Integritas Acuan (Referential Integrity) § Agar hubungan antar tabel memenuhi aturan referensi yang Tabel telah ditetapkan : mk Kode_kul IT 110 IT 310 AK 234 IT 112 Tabel : nilsem Nim 10001 10002 10003 10001 Kode_kul IT 110 IT 310 AK 234 IT 111 Nama_kul Struktur data Basis data ISD SIM Nilai D B B D Sks 3 3 1 2 Sem 1 1 1 3 Tidak memenuhi integritas acuan
§ Untuk menjamin Integritas data, 3 cara yang dapat dipilih : 1. REJECT Menolak baris data pada MK selama masih ada baris data pada tabel NILSEM dengan menggunakan kolom kode_kul 2. CASCADE penjalaran perubahan, melakukan penghapusan baris data yang tdk sesuai keseluruh tabel yang menggunakan kolom tersebut ON DELETE CASCADE atau ON UPDATE CASCADE biasanya ditempatkan pada saat mendeklarasikan FK contoh : ALTER table dokter ADD FOREIGN KEY (kd_dok) § Aturan Integritas Acuan REFERENCES pasien: a. Penerapan. ON pembuatan prosedur basis DELETE CASCADE data ON UPDATE CASCADE; b. melalui program 3. Pemeliharaan NULLIFY pengisian nilai kosong pada kolom manipulasi data
3. Integritas Data Antar Tabel (Redundant Data Integrity) § Menjamin nilai baris data disuatu tabel tidak ada di tabel yang lain § Untuk efesiensi ruang penyimpanan dan konsistensi basis data Kode_k ul Nama_kul Sk Semest s er AK 120 Struktur Data 3 3 AK 320 Basis Data 3 3 KU 234 Bahasa Indonesia 2 2 IT 115 Kode_k ul Matematika 1 Nama_kul 2 1 Sk Semest s er AK 110 Struktur Data 4 3 AK 320 Basis Data 3 3 KU 234 Bahasa Indonesia 2 2 IT 125 Matematika 1 4 1 Tabel : mk_d 3 Tdk memenuhi aturan Integritas data antar tabel Tabel : mk_s 1
§ Untuk menjamin integritas data , pilihan yg dapat dilakukan : 1. Membedakan nilai kolom untuk tabel yang berbeda 2. Menggabungkan tabel yang sejenis 4. Integritas Aturan Rule Integrity) 3. Membuat tabel. Nyata baru (Bussiness untuk nilai kolom § Bersifat yang sama kasuistik, tidak berlaku umum § Contoh : nilai matakuliah bersyarat IT 110 Matemaika 1 § NP Kd_ Gra IT 310 Matematika 2 M mk de Tidak memenuhi aturan integritas, 00 IT 11 E matematika 3 1 0 Boleh diambil jika Matematika 1 telah 00 IT 31 B lulus 2 0 00 KU 0 A 3 05
PEMAKSAAN INTEGRITAS § Dapat dilakukan dengan cara : a. Didefiniskan dikontrol di server DBMS b. Didefiniskan dikontrol melalui program aplikasi § Dilakukan untuk menjamin , jika terjadi manipulasi data , tidak akan mengganggu integritas basis data : a. Penolakan Operasi (Reject) : untuk mempertahankan integritas entitas, jangkauan (Domain Integrity), aturan nyata (Bussiness Rule Integrity) b. Penyebaran Perubahan Data (Cassade) : untuk mempertahankan integritas acuan (Referential Integrity). c. Pengisian Nilai Null (Nullify) : biasanya untuk mempertahankan integritas acuan((Referential Integrity).
§ Pemaksaan integritas melalui server DBMS dapat dilakukan dengan : a. Pendefinisian tabel dan struktur penyimpanan b. Pemanfaatan aturan integritas c. Penggunaan mekanisme pembangkit (Trigger) dan prosedurbasisdata § Pemaksaan integritas melalui Aplikasi dapat dilakukan dengan : a. dituliskan pada script b. memanfaatkan objek-objek aplikasi (seperti : form) Pemaksaan integritas melalui server DBMS a. Definisi Tabel dan Struktur Penyimpanan o Type data create table mhs nim char (8), nama_mhs varchar (45), alamat varchar (60),
o Domain Constraint create domain <nama_domain> <tipe data> (constraint <nama_const> check (predikat)) create domain nama_mhs char (45) constraint nama_null check (value not null) create domain grade_nilai char(1) constraint grade_nilai_valid check (value in (‘A’, ’B’, ’C’, ’D’, ’E’)) create domain semester int constraint sem_valid chek (value >0 and value<10)
o Penerapan Nullability Menentukan atribut dapat bernilai kosong atau tidak. create table mhs nim char (8) not null, nama_mhs varchar (45) not null, alamat varchar (60), tgl_lhr date o Penggunaan nilai Default Hampir sama dengan nullability create table matkul (kode_kul char (8) not null, nama_kul varchar (40) not null, semester int not null, sks int default 2) nilai awal 2
o Penerapan Keunikan kolom (Column uniqueness) kolom tidak dapat bernilai sama create table mhs nim char (8) not null primary key, nama_mhs varchar (45) not null unique, alamat varchar (60), tgl_lhr date create table mhs nim char (8) not null primary key, nama_mhs varchar (45) , alamat varchar (60), tgl_lhr date, contraint mhs_unique(nama_mhs, alamat) create table mhs nim char (8) not null primary key, nama_mhs varchar (45) not null unique, alamat varchar (60) unique, tgl_lhr date,
o Penerapan Keunikan Baris (Row uniqu eness) Keunikan nilai seluruh kolom b. Penerapan Aturan Integritas o Membuat aturan integritas dalam basis data create assertion <nama_assertion> check <predikat> jika aturan dilanggar maka akan di reject o Contoh : membuat aturan seorang mahasiswa tidak boleh mengambil kuliah lebih dari 24 sks dalam satu semester create assertion not_exist check (not exist (select sum(sks) from nilai a, kuliah b where a. kode_mk=b. kode_mk group by semester having sum(sks>24) jangan terlalu banyak aturan integritas karena dapat menyebabkan overhead (beban tambahan) waktu proses
c. Penggunakan Trigger (Pembangkitan) o Menentukan kondisi yang menimbukan trigger o Menentukan aksi yang akan dikerjakan trigger o Contoh : jika akan dihapus nilai nim di tabel mhs maka nilai nim yang sama pada tabel nilai juga akan terhapus define trigger hapus_mhs on delete of mhs a (delete from nilai where nim=old a. nim)) create procedure hapus_nilai (old_nim=varchar (8) begin delete from nilai where nim=old_nim end; create trigger hapus_mhs after delete on mhs for each row hapus_nilai (old. nim);
d. Penerapan Aturan Integritas dalam Script Aplikasi o diterapkan melalui aplikasi bukan pada DBMS o contoh : Delphi Procedure Tf. Editmahasiswa. bt. Delete. Click(sender: TObject); Var v. NPM: string; Begin v. NPM: =tb. Mahasiswa. Field. By. Name(‘NPM’). As. String; If tb. NILAI. Find. Key([Vnpm]) then Message. Dlg(‘Record di tabel Nilai untuk mahasiswa dengan NPM=‘+v. NPM+$13+’Harus dihapus lebih dulu!’, mt. Warning, [mb. OK], 0) Else tb. Mahasiswa. Delete; End;
Warning Record di tabel Nilai untuk mahasiswa dengan NPM=10112001 Harus dihapus lebih dulu! OK
- Slides: 17