Sistem Basis Data

advertisement
SISTEM BASIS DATA
ABU SALAM, M.KOM
REVIEW MATERI SEBELUMNYA
o OPERATOR RELASIONAL / PEMROSESAN QUERY
o OPTIMASI QUERY
KLASIFIKASI AKTIVITAS
Langkah-langkah yang dilakukan dalam pemrosesan sebuah
query yang dapat diilustrasikan pada gambar berikut :
query
Parser dan Translator
Ekspresi Aljabar
Optimezer
Informasi
Hasil Query
Parser dan Translator
Data
Data
Rencana
EVALUASI TUGAS 2
1.
Posting Tulisan dengan judul
•
•
•
•
•
•
•
•
•
•
2.
Integritas Basis Data (Nim Ganjil)
Constraints Classification
Transition Constraints
Keys, Sql Support
Dll….
Manajemen Transaksi (Nim Genap)
Protocol Transaksi konkruen
Recoverability
Testing for serializability
Dll…
Email alamat blog ke [email protected] dengan subject : tugas2SBD_nim, paling
lambat 2 minggu
INTEGRITAS BASIS DATA
INTEGRITY CONSTRAINTS (BATASAN INTEGRITAS)
Constraint (batasan) merupakan aturan yang diberikan pada suatu
tabel agar data yang dimasukkan terjamin validitasnya. Batasan
integritas akan menjaga basis data dari kerusakan yang terjadi
secara tidak sengaja dengan memastikan bahwa perubahan yang
diperbolehkan tidak mengakibatkan terjadinya inkonsistensi data.
Constraint dapat diklasifikasikan sesuai dengan elemen dari basis
data yang bersangkutan menjadi sebagai berikut.
KLASIFIKASI KONSTRAIN
Constraint tersebut intra-relasional apabila batasan (constraint)
terpenuhi dalam satu tabel. Constraint ini sendiri dapat
dibedakan menjadi 2 yaitu: tuple constraint dan domain
constraint.
Tuple constraint merupakan constraint yang bisa dievaluasi secara
independen pada setiap tuple-nya.
Domain constraint atau sering disebut sebagai value constraint merupakan
suatu constraint dengan referensi kepada nilai (value) tertentu. Implementasi
dari penggunaan domain constraint pada SQL adalah penggunaan klausa
check
Suatu constraint dikatakan inter-relasional apabila melibatkan lebih dari
satu relasi. Bentuk dari constraint ini adalah referential integrity
Ada beberapa bentuk dari integrity constraint yaitu domain constraint,
referential integrity, assertion, trigger.
DOMAIN CONSTRAINT
Domain constraint merupakan bentuk integrity
constraint yang paling sederhana. Setiap ada
pemasukan data baru, maka akan langsung
diperiksa oleh sistem. Domain constraint
diterapkan pada atribut basis data sehingga
sangat dimungkinkan beberapa atribut memiliki
domain yang sama.
Untuk menciptakan domain baru dapat digunakan
perintah create domain. Sebagai contoh adalah
pada perintah:
 create domain Dollar numeric (12,2)
 create domain Pound numeric (12,2)
DOMAIN CONSTRAINT
Pada bahasa SQL juga terdapat klausa check yang bisa
digunakan untuk memeriksa suatu kondisi nilai tertentu yang
diinginkan. Berikut adalah contoh penggunaan klausa check pada
perintah create domain.
Create domain HourlyWage numeric(5,2) constraint wage-valuetest check (value>=4.00)
Perintah tersebut akan mengecek nilai dari domain HourlyWage
harus ≥ 4.00
REFERENTIAL INTEGRITY (INTEGRITAS REFERENSIAL)
Integritas referensial adalah seperangkat aturan yang mengatur
hubungan antara kunci primer dengan kunci tamu milik tabel-tabel
yang berada dalam suatu basis data relasional untuk menjaga
konsistensi data .
Tujuan integritas referensial sendiri adalah untuk menjamin dan
memastikan agar entitas dalam suatu tabel yang menunjuk ke
suatu pengenal unik pada suatu baris di tabel lain benar-benar
menunjuk pada nilai yang memang ada. Sehingga kejadian
seperti pada ilustrasi seperti gambar diobawah tidak terjadi
REFERENTIAL INTEGRITY (INTEGRITAS REFERENSIAL)
End User
SI dg DBMS Terpisah
Application Interface
Application Program
Sophisticated User
query
DBMS
Database
Application
Programmer
REFERENTIAL INTEGRITY (INTEGRITAS REFERENSIAL)
Berdasarkan operasi yang dilakukan, integritas referensial
dapat dibedakan sebagai berikut:
penambahan (insert)
penghapusan (delete)
peremajaan (update)
Integritas referensial membuat ketiga operasi di atas dapat
dilaksanakan pada tabel yang memiliki relasi. Sehingga
proses penghapusan ataupun peremajaan suatu kolom juga
akan terjadi pada kolom tabel lain yang mempunyai
referensi dengannya.
REFERENTIAL INTEGRITY (INTEGRITAS REFERENSIAL)
Dalam bahasa Data Definition Language SQL, kunci primer, kunci
kandidat, dan kunci tamu, dapat dispesifikasikan sebagai bagian
dari pernyataan SQL create table. Kunci kandidat merupakan
kunci yang secara unik dapat digunakan untuk mengidentifikasi
suatu baris dalam tabel. Berikut adalah salah satu contoh DDL dari
pembuatan tabel mata_kuliah.
 create table mata_kuliah
(kode_mk char(6) not null,
mata_kuliah varcar(25),
nip char(9),
primary key (kode_mk),
foreign key (nip) references dosen on delete cascade)
ASSERTION
Penggunaan constraint berupa kunci primer dan kunci
tamu pada deklarasi awal tabel merupakan salah
satu cara untuk memelihara integritas data. Domain
constraint dan Referential integrity constraint
merupakan salah satu bentuk dari assertion.
Pada beberapa basis data penggunaan kunci primer
dan kunci tamu sudah cukup untuk menjaga integritas
data. Tetapi pada beberapa kasus basis data
diperlukan suatu constraint ataupun aturan yang
lebih baik.
Metode lain yang sering digunakan dalam
pemeliharaan integritas adalah assertion dan trigger
ASSERTION
Assertion digunakan untuk mengekspresikan suatu kondisi basis
data sesuai dengan yang kita inginkan. Seperti halnya prosedur,
assertion diberikan nama tertentu sehingga bisa dibatalkan
apabila ada kondisi tertentu yang menuntut perubahan struktur
basis data. Syntax dari definisi assertion adalah sebagai berikut.
 create assertion AssertionName check (predicate)
Ketika assertion dibuat, maka sistem akan melakukan pengecekan
validitas dari assertion yang dibuat. Jika assertion yang dibuat
valid maka perubahan terhadap basis data hanya akan berlaku
ketika tidak menyalahi assertion yang telah dibuat.
ASSERTION
Pengecekan validitas tersebut akan memakan biaya yang besar
terutama apabila assertion yang dibuat cukup rumit, sehingga
penggunaan dan pembuatan assertion harus dilakukan dengan
hati-hati
Karena itu tidak banyak developer sistem dan DBMS yang
menyediakan fasilitas ini.
Create assertion IC13 check
( ( Select min (s.status) from s ) > 4 );
ASSERTION
Create assertion IC18 check
(not exists ( select * from P
where not ( P.Weight > 0.0 )));
Create assertion IC99 check
( not exists ( select * from P
where P.color = ‘Red’
and P.city <> ‘London’));
Create assertion IC49 check
( not exists ( select * from P, SP
where P.P# = SP.P#
and ( P.weight * SP.Qty) > 20000));
Create assertion IC95 check
( not exists ( select * from S, SP
where S.status < 20
and S.S# = SP.S#
and SP.Qty > 500 ));
TRIGGER
Trigger merupakan pernyataan yang dieksekusi secara otomatis oleh sistem basis
data sebagai akibat dari perubahan basis data. Ada beberapa persyaratan
yang harus dipenuhi untuk merancang mekanisme trigger, yaitu:


Menspesifikasikan kapan trigger harus dieksekusi.
Menspesifikasikan perintah yang akan dilaksanakan ketika trigger dijalankan
Trigger sebenarnya tidak lain adalah suatu pemrograman PL/SQL yang mirip
dengan procedure. Perbedaan mendasar dengan procedure adalah aktivasinya,
dimana procedure dapat dipanggil secara langsung sementara trigger dipanggil
melalui pemicu yang berupa bahasa DML (Data Manipulation Language). Bahasa
DML yang digunakan sebagai pemicu adalah insert, update dan delete.
Download