Anda di halaman 1dari 25

1

INTEGRITAS DATA INTEGRITAS DATA


2
INTEGRITY CONSTRAINTS (ATURAN INTEGRITAS) INTEGRITY CONSTRAINTS (ATURAN INTEGRITAS)
Menjamin keutuhan (integritas) data
Menjamin agar perubahan terhadap basis data yang
dilakukan oleh user yang berhak tidak menghasilkan
inkonsistensi (ketidakkonsistenan) data.
Menjamin agar basis data tidak mengalami kerusakan secara
tidak sengaja
1. Entity integrity constraints (aturan integritas entitas)
2. Domain constraints (aturan domain)
3. Referential integrity constraints (aturan integritas referensial)
4. Attribute-based constraints (aturan berbasis atribut) & Tuple-
based constraints (aturan berbasis tupel/record)
5. Assertions (pernyataan)
6. Trigger (pemicu)
ENIS INTEGRITY CONSTRAINTS ENIS INTEGRITY CONSTRAINTS

1. Entity integrity constraints 1. Entity integrity constraints (aturan integritas entitas) (aturan integritas entitas)
Mendeklarasikan primary key untuk setiap entitas agar dijamin tidak
ada baris-baris dalam table (relasi) yang memiliki nilai yang sama
(duplikat data)
MAHASSWA
NRP Nama Alamat
1 Fara Jl. Denpasar 76 Antapani Bandung
2 Dian Jl. Nata Endah 1 Bandung
%ri Jl. P.H.H. Mustafa 55 Bandung
Bono Jl. Cijagra 5 Bandung
61 Sinta Jl. Riau 11 Bandung
62 %ri Jl. Buah Batu 5 Bandung
6 Dian Jl. Setrasari Kulon 6 Bandung
Sintaks SQL:
CREATE TABLE MAHASISWA(NRPCHAR(7) PRIMARY KEY,
Nama VARCHAR(30), Alamat VARCHAR(50))

. Domain constraints . Domain constraints


Adalah aturan dalam mendefinisikan domain.
Domain merupakan kumpulan tipe data dan
jangkauan nilai yang diperbolehkan pada atribut
sebuah relasi.
Untuk setiap atribut suatu relasi harus
didefinisikan domainnya.
Definisi domain mencakup tipe data, ukuran,
format, jangkauan, nilai yang memungkinkan,
keunikan, dan kemungkinan data null.
5
. Domain constraints . Domain constraints (Ianjutan) (Ianjutan)
Pada relasi (table) mahasiswa terdapat atribut NRP, Nama, Alamat.
Definisi domain dari NRP
Nama Atribut : NRP
Deskripsi : Nomor Urut Registrasi (Pendaftaran)
Tipe Data : Text
Panjang Data : 7
Format : 9999999
Jangkauan : digit ke 1-2 Kode Prodi & Masa Studi
(11,13,14,23,24,31,33,34,53,63,73,83)
digit ke 3-4 Tahun Masuk (00-99)
digit 5-7 Nomor Urut (001-999)
Keunikan : Harus unik
Dukungan Null: Tidak boleh Null
Sintaks SQL:
CREATE TABLE MAHASISWA(NRP CHAR(7) NOT NULL, Nama VARCHAR(30),
Alamat VARCHAR(50), PRIMARY KEY(NRP), CHECK(LEFT(NRP,2) IN
("11","13","14","23","24","31","33","34","53","63","73", "83") AND MID(NRP,3,2)=
FORMAT(DATE,"yy") AND VAL(RIGHT(NRP,3))<=999)
6
. Domain constraints . Domain constraints (Ianjutan) (Ianjutan)
Definisi domain umumnya telah disediakan dalam DBMS, salah
satu contohnya dalam Ms. Access:
7
. Referential integrity constraints . Referential integrity constraints
(aturan integritas referensiaI) (aturan integritas referensiaI)
Mengatur kebenaran referensi dari satu
obyek ke obyek lain dalam database.
Menjaga integritas nilai suatu atribut
dalam sebuah table/relasi yang mengacu
atau merujuk (me-refer) pada nilai
sebuah atribut di table/relasi lain.

. Referential integrity constraints . Referential integrity constraints


(Ianjutan) (Ianjutan)
Dalam kasus di atas, table MAHASSWA adalah table yang DRUJUK (D-
REFER) oleh table KELAS. Jadi, setiap nilai NRP dalam table KELAS
harus memiliki nilai yang %EPA% SAMA dengan nilai NRP dalam table
MAHASSWA.
Dengan demikian, tidak boleh ada nilai NRP dalam table KELAS yang
tidak ditemukan datanya dalam table MAHASSWA.
%able MAHASSWA %able KELAS
NRP Nama Alamat NRP Sem Kelas
1 Fara Jl. Denpasar 76 Antapani Bandung 61 2%K-2
2 Dian Jl. Nata Endah 1 Bandung 62 2%K-1
%ri Jl. P.H.H. Mustafa 55 Bandung 6 2%K-
Bono Jl. Cijagra 5 Bandung
61 Sinta Jl. Riau 11 Bandung
62 %ri Jl. Buah Batu 5 Bandung
6 Dian Jl. Setrasari Kulon 6 Bandung

2 cara mengimplementasikan referential integrity :


1. Program Aplikasi, referential integrity diterapkan dalam baris-baris
program. Contoh:
rs.FindFirst('NRP","TblMahasiswa","NRP='" & txtNRP & ''")
If Not rs.EOF Then Msgbox 'Data tidak ditemukan"
2. Saat membuat table, jika DBMS memiliki fasilitas yang mendukung
referential integrity. Contoh:
- Saat pembuatan table dengan sintaks SQL, dimana NRP dalam
table Kelas_Mhs nilainya harus ada dalam table Mahasiswa.
#EATE TABLE MAHASISWA (
NRP A#(7) P#IMA# KE, Nama VA#A#(30),
Alamat VA#A#(50))
#EATE TABLE Kelas_Mhs (
NRP A#(7) #EFE#ENES Mahasiswa(NRP), Sem INT,
Kelas A#(5), P#IMA# KE(NRP,Sem))
. Referential integrity constraints . Referential integrity constraints (Ianjutan) (Ianjutan)
1
. Referential integrity constraints . Referential integrity constraints
(Ianjutan) (Ianjutan)
- Saat pembuatan relationship table dalam DBMS tertentu seperti
Access atau SQL Server menggunakan fasilitas
"Enforce Referential ntegrity
11
Contoh Iain:
#EATE TABLE pegawai(
nip A#(7) P#IMA# KE,
nama A#(20)
);
#EATE TABLE .:9i(
no_.:9i A#(5) P#IMA# KE,
9gl ATE,
nip_.:9i A#(7) #EFE#ENES pegawai(nip),
9gl_m:lai ATE, 9gl_akhir ATE
);
. Referential integrity constraints . Referential integrity constraints
(Ianjutan) (Ianjutan)
12
AIternatif:
tambahkan dekIarasi untuk foreign key
#EATE TABLE .:9i(
no_.:9i A#(5) P#IMA# KE,
9gl ATE,
nip_.:9i A#(7),
9gl_m:lai ATE, 9gl_akhir ATE,
FO#EIGN KE nip_.:9i #EFE#ENES pegawai(nip)
);
DekIarasi tambahan penting untuk diIakukan jika foreign key Iebih
dari satu atribut.
1
. Referential integrity constraints . Referential integrity constraints
(Ianjutan) (Ianjutan)
Manipulasi data dlm database terkait dg aturan
referential integrity :
Perubahan yang dilakukan terhadap database dapat
menyebabkan pelanggaran terhadap aturan
referential integrity.
Dalam melakukan operasi nsert, Delete, dan Update
harus didefinisikan aturan yang menjamin bahwa
aturan referential integrity diterapkan. Aturan-aturan
tersebut adalah NSER%ON RULE, DELE%ON
RULE, dan UPDA%E RULE.
1
. Referential integrity constraints . Referential integrity constraints (Ianjutan) (Ianjutan)
INSERTION RULE
Aturan:
ika dilakukan penyisipan baris terhadap sebuah table yang
merujuk (merefer), maka harus terdapat nilai yang bersesuaian
dalam table yang dirujuk (direfer).
Jika akan dilakukan NSER% ke table KELAS_MHS dengan struktur
table seperti pada slide , dan data yang digunakan seperti
pada table di slide , maka sintaks SQL-nya:
INSERT INTO MHS VALUES ('6304001','Sinta','l. Riau 11 Bandung')
INSERT INTO KELAS_MHS VALUES ('6304001',3,'2TK-02')
15
. Referential integrity constraints . Referential integrity constraints
(Ianjutan) (Ianjutan)
DELETION RULE
Aturan:
ika dilakukan penghapusan baris terhadap sebuah table yang dirujuk
(direfer) dan memiliki nilai yang bersesuaian dengan table yang merujuk,
maka harus ada perlakuan tertentu untuk menjamin integritas table database
tersebut.
1. RESTRICT
%idak mengijinkan penghapusan terhadap table yang dirujuk.
2. NULLIFY
Mengeset nilai yang bersesuaian dari table yang merujuk menjadi
NULL dan kemudian menghapus baris dari table yang dirujuk.
3. CASCADING DELETION
Baris yang bersesuaian dalam table yang merujuk secara otomatis
akan ikut terhapus.
UPDATE RULE
Aturan:
Pada tabIe merujuk : ika nilai yang diupdate adalah FOREIGN KEY,
aturan seperti INSERTION RULE.
Pada tabIe dirujuk : ika nilai yang diupdate sama dengan nilai pada
table merujuk, aturan seperti DELETION RULE.
16
. Referential integrity constraints . Referential integrity constraints
(Ianjutan) (Ianjutan)
Contoh
%idak mengijinkan delete / update terhadap table yang dirujuk.
#EATE TABLE Kelas_Mhs (
NRP A#(7) #EFE#ENES Mahasiswa(NRP),
Sem INT, Kelas A#(5),
P#IMA# KE(NRP,Sem)
)
#EATE TABLE cuti(
no_cuti A#(5) P#IMA# KE,
tgl ATE,
nip_cuti A#(7),
tgl_mulai ATE, tgl_akhir ATE,
FO#EIGN KE nip_cuti #EFE#ENES pegawai(nip)
ON ELETE SET NULL ON UPATE ASAE
);
17
. Attribute . Attribute- -based Constraint & based Constraint &
Tuple Tuple- -based Constraints based Constraints
Attribute-based constraints adalah aturan yang menentukan
bahwa pada saat dilakukan NSER% atau UPDA%E, niIai suatu
atribut tertentu harus memenuhi kondisi tertentu. Jika kondisi
tersebut tidak dipenuhi, sistem akan menolak dilakukannya
proses insert dan update tersebut.
Tuple-based constraints adalah aturan yang menentukan
bahwa pada saat dilakukan NSER% atau UPDA%E, niIai
beberapa atribut pada suatu baris record harus memenuhi
kondisi tertentu. Jika kondisi tersebut tidak dipenuhi, sistem
akan menolak dilakukannya proses insert dan update tersebut
1
. Attribute . Attribute- -based Constraint & Tuple based Constraint & Tuple- -based Constraints (lanjutan) based Constraints (lanjutan)
Karakteristik kedua aturan ini:
- Berlaku hanya pada proses NSER% & UPDA%E, tidak pada DELE%E
- Operasi yang dilakukan dapat berlaku pada satu atau beberapa table
tergantung DBMS yang digunakan.
Contoh:
- Pada Attribute-based constraints:
Operasi insert/update data pada table MAHASSWA_S%MK mensyaratkan
nilai atribut PROD adalah "%eknik nformatika atau "Sistem nformasi. Jika
nilai atribut tersebut bukan salah satu dari itu, maka proses insert/update data
akan gagal.
Sintaks SQL:
INSERT INTO MAHASISWA_STMIK (nrp,nama) SELECT nrp,nama FROM
MHS_D3 WHERE PRODI IN ("Teknik Informatika","Sistem Informasi")
SELECT nrp,nama FROM MHS_D3 INTO MAHASISWA_STMIK WHERE
prodi IN ("Teknik Informatika","Sistem Informasi")
UPDATE MAHASISWA_STMIK SET masa_studi='S1' WHERE prodi IN
("Teknik Informatika","Sistem Informasi")
1
. Attribute . Attribute- -based Constraint & based Constraint &
Tuple Tuple- -based Constraints based Constraints (lanjutan) (lanjutan)
- Pada Tuple-based constraints:
Operasi insert/update data pada table ABSEN_MAHASSWA
mensyaratkan nilai atribut YUDSUM adalah "Naik %ingkat dan nilai
atribut REGS adalah "Sudah. Jika 2 kondisi tersebut tidak dipenuhi,
maka proses insert/update data akan gagal.
Sintaks SQL:
INSERT INTO ABSEN_MAHASISWA(nrp,nama) SELECT nrp,nama
FROM MAHASISWA_STMIK WHERE YUDISIUM='Naik Tingkat'
AND REGIS='Sudah'
SELECT nrp,nama FROM MAHASISWA_STMIK INTO
ABSEN_MAHASISWA WHERE prodi YUDISIUM='Naik Tingkat' AND
REGIS='Sudah'
UPDATE ABSEN_MAHASISWA SET masa_studi='S1' WHERE prodi
YUDISIUM='Naik Tingkat' AND REGIS='Sudah'
2
ASSERTIONS ASSERTIONS
Assertion adalah sebuah aturan yang diterapkan untuk membuat agar database
tetap pada kondisi yang diinginkan.
Sintaks Umum:
CREATE ASSERTION nama_assertion> CHECK kondisi>
Karakteristik:
1. Berlaku pada proses NSER%/UPDA%E/DELE%E
2. Bisa melibatkan beberapa table
Contoh:
Dalam sistem perbankan, terdapat aturan: "Jumlah total pinjaman yang
dikeluarkan bank untuk customer tidak boleh melebihi jumlah total simpanan
pada cabang tersebut
.reate assertion constr_jml .he.
(not exist
(sele.t * from cabang
where (sele.t sum(jumlah) from pinjaman
where pinjaman.nama_cab=cabang.nama_cab)
>=(sele.t sum(saldo) from simpanan
where simpanan.nama_cab=cabang.nama_cab)))
21
ASSERTIONS ASSERTIONS (lanjutan) (lanjutan)
Ketika assertion dibuat, sistem akan menguji
validitasnya.
Jika assertion valid, maka setiap modifikasi terhadap
database akan diijinkan asalkan assertion tersebut tidak
dilanggar.
Akibatnya, sistem akan membutuhkan waktu yang tidak
sedikit untuk melakukan pengecekan apakah assertion
dipenuhi atau tidak. Oleh karena itu, penggunaan
assertion harus dipertimbangkan dengan hati-hati.
22
TRIGGER TRIGGER
Trigger adalah aturan yang akan mengeksekusi perintah secara otomatis
sebagai akibat sampingan dari proses modifikasi (insert/update/delete)
dalam database.
Ruang lingkup: mencakup atribut dalam satu atau beberapa table.
Komponen operasi %rigger:
1. Aturan user (user constraint): statement yg menyatakan operasi trigger
2. Event : operasi manipulasi data (insert/update/delete) yg memicu operasi
INSERT ON <table>, atau
DELETE ON <table>, atau
UPDATE OF <field> ON <table>
. Nama tabIe (table name): nama table yang diakses/dimodifikasi
. Kondisi (condition) : kondisi yang menyebabkan dipicunya suatu operasi
5. Aksi (action): tindakan yang dilakukan saat operasi dijalankan
2
Contoh TRIGGER Contoh TRIGGER
Aturan user (dalam sistem perbankan): "Jumlah penarikan uang oleh
nasabah tidak boleh melebihi saldo yang tersisa di rekening nasabah.
Event : NSER%
Nama tabIe: PENARKAN
Kondisi: Jml_penarikan > Saldo
Aksi: Menolak operasi NSER%
REATE TRIGGER %arik_%:nai BEFORE INSERT ON Penarikan
REFERENING new row AS nrow
FOR EAH ROW
WHEN nrow.jml_penarikan Saldo
BEGIN
MSGBOX Saldo 9idak .:k:p
END
'#EFE#ENING new row AS" digunaan untu insert & update
'#EFE#ENING old row AS" digunaan untu delete & update
2
Contoh TRIGGER Contoh TRIGGER
Aturan user (dalam sistem penjualan): "Membuat daftar kode barang dari
table BARANG berjenis elektronik yang naik harga 2 ke dalam table
DAFBRG
Event : UPDA%E
Nama tabIe: BARANG
Kondisi: Jenis=Elektronik
Aksi: NSER% N%O dafbrg
REATE TRIGGER aik_Hrg AFTER UPDATE harga ON BARA
REFERENING new row AS nrow
REFERENING old row AS orow
FOR EAH ROW
WHEN orow.jenis = `Elek9ronik' AND
nrow.harga=orow.harga120%
BEGIN
ISER% I% DAFBR VALUES (nrow.kd_brg)
END
25
TUGAS TUGAS- -1 1
1. Definisikan suatu kasus yang melibatkan minimal entity.
2. Deskripsikan kasus tersebut dalam uraian tekstual.
. Modelkan kasus tersebut dalam ER.
. Petakan model ER tersebut ke skema relasi.
5. Buatlah table hasil normalisasi untuk kasus tersebut.
6. Definisikan masing-masing 2 kasus beserta penyelesaiannya
untuk : Entity integrity constraints, Domain constraints,
Referential integrity constraints, Attribute-based
constraints, Tuple-based constraints, Assertion, dan
Trigger.

Anda mungkin juga menyukai