Anda di halaman 1dari 36

Sistem Basis Data

Kelompok 7
Adimas Senno Pratama ( 2015 4350 1769 )
Pembahasan

 Recovery
 Integritas basis data
RECOVERY SISTEM BASIS DATA

RECOVERY SYSTEM
• Klasifikasi kerusakan
• Deadlock
• LOG
• Struktur penyimpanan
• Shadow Paging
Klasifikasi kerusakan

 Kerusakan transaksi :
 Logical errors: transaksi tidak lengkap karena ada kesalahan
dalam program
 System errors: database harus menghentikan sementara
transaksi yang aktif karena ada kondisi yang tidak diharpkan
(mis., deadlock)
 System crash: kerusakan listrik atau hardware atau software yang
menyebabkan system crash.
 Penyimpan sementara: I nformasi yang ada di media ini hanya
ada selama listrik mengalir
DEADLOCK

 Suatu kondisi dimana proses tidak berjalan lagi atau pun tidak ada komunikasi
lagi antar proses.
 Deadlock disebabkan karena proses yang satu menunggu sumber daya yang
sedang dipegang oleh proses lain yang sedang menunggu sumber daya yang
dipegang oleh proses tersebut.
DEADLOCK (cont.)

 Contoh deadlock

Deadlock pada jembatan Deadlock dipersimpangan jalan


DEADLOCK (cont.)

4 kondisi yang menyebabkan deadlock


 Mutual Exlusif
 Memegang dan menunggu
 Tidak ada preemption
 Circular wait
Cara menanggulangi deadlock
1. Mengabaikan masalah deadlock
2. Mendeteksi dan memperbaiki
3. Deadlock avoidance sistem
4. Deadlock prevention sistem
Ilustrasi1
Penjelasan Ilustrasi1

• Pada ilustrasi, merupakan salah satu contoh


terabaikannya sifat durability yang harus
dimiliki oleh transaksi.

• Sifat durability berarti “setelah suatutransaksi


commit, perubahan yang terjadi harus tetap
bertahan di dalam basis data”.
• Kejadian tersebut dapat diatasi dengan
melakukan penelusuran catatan log transaksi.
LOG

• Log adalah catatan transaksi yang berjalan


pada server basis data secara mendetail.
• Setiap record pada log menggambarkan
operasi tunggal transaksi yang berisi data:
– Nama transaksi: nama unik transaksi yang
menjalankan operasi write.
– Nama data item yangdituliskan
– Nilai lama: nilai data item sebelum operasi write
– Nilai baru: nilai setelah operasiwrite
Contoh isiLog
Logdalam durability transaksi

• Operasi Redo Transaksi


Proses dengan cara me-redone (mengulang) seluruh
transaksi yang terekam di dalam log. Operasi ini juga
biasa disebut “Forward Recovery”

operasi redo transaksi membutuhkan dua buah


record yang berisi <Ti begin> dan <Ticommit>
Logdalam durability transaksi

• Sistem melakukan penelusuran Log file dari backup


terakhir sampai terjadinya kegagalan sistem.Seluruh
transaksi yang terekam pada log file tersebut
dieksekusi ulang, sehingga data dari transaksi
tersebut kembali.
Ilustrasi2

Waktu Kegiatan dan Kejadian Ilustrasi

Ayu memiliki saldo Rp. 7.000.000


Tara memiliki saldo Rp. 45.000
Tara meminta dikirimkan uang sebesar Rp.500.000
dari Ayu.

09.00 Ayu melakukan transaksi transfer uang ke saldo


Tara, namun sebelum transaksi ini berhasil
sepenuhnya, tiba-tiba aliran listrik terputus.
Penjelasan Ilustrasi2

• Ada dua operasi yang harus dilakukan, yaitu:


– Mengurangi saldo pada nasabah Ayu sebesar Rp. 500.000
– Menambah saldo pada nasabah Tara sebesar Rp.500.000

• Transaksi tersebut belum berhasil sempurna


(commited), dan transaksi ini harus dibatalkan
(rollback) sesuai dengan sifat atomik yangharus
dimiliki transaksi.
Log dalam keatomikan dankonsistensi
transaksi
• Operasi Undo transaksi
proses dengan membatalkan (un-done) perubahan
terakhir sampai titik ditemukannya catatan awal
transaksi <begin> pada log.
Operasi ini biasa disebut “BackwardRecovery”

• Operasi ini berjalan saat mekanisme recoveryRDBMS


menjalankan operasi redo dengan menelusuri log
transaksi dari awal sampai menemukan transaksi
yang tidak diakhiri dengan COMMIT atau ROLLBACK.
Log dalam keatomikan dankonsistensi
transaksi

• Secara otomatis transaksi transfer uangAyu tersebut


harus dibatalkan (rollback), sehingga saldo Ayu
kembali utuh.
Struktur penyimpan

 Penyimpan sementara:
 Tidak mampu mengatasi kerusakan sistem
 contoh: main memory, cache memory
 Penyimpan tetap:
 Mampu mengatasi kerusakan sistem
 Cnoth : disk, tape, flash memory,
non-volatile (battery backed up) RAM
 Penyimpan stabil:
 Bentuk lain dari penyimpanan untuk mengatas kerusakan sistem
 Pembuatan copy database dan menyimpan di tempat lain untuk
menjaga jika ada kerusakan
Shadow Paging

 Shadow paging adalah alternatif lain selain file log yang memerlukan akses ke disk yang lebih
sedikit.
 Dasar pemikiran: merawat dua halaman tabel selama transaksi berlangsung current page table,
dan shadow page table
 Simpan tabel bayangan dalam penyimpan tetap, dengan demikian jejak transaksi tersimpan.
 Shadow page table tidak pernah berubah selama eksekusi

 Pada waktu mulai maka kedua tabel ditandai. Hanya page asli yang digunakan selama eksekusi
transaksi berlangsung.
 Kapanpun halaman ditulis untuk pertama kali
 Copy halaman ini diberikan ke halaman yang tidak dipakai.
 Halaman sekarang dipakai sebagai sumber untuk di copy
 Update dilakukan di copyan
KELOMPOK 7
Integritas basis data
Integritas Basis data  Menjamin Validitas data yang terekam
sesuai dengan aturan yang telah ditentukan.

Penetapan aturan integritas basis data untuk menghidari


basis data dari upaya/ kesalahan dalam melakukan
manipulasi data yang dapat membuat basis data menjadi
tidak konsisten

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
unik
Nim Kode_kul Nilai
 contoh : 10001 IT110 D
10002 IT310 B
10003 AK234 B Tidak memenuhi integritas
10001 IT110 D 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 Kode_kul Nilai Sem
10001 IT110 D 1
10002 IT310 B 1
10003 AK234 B 1 Memenuhi integritas
10001 IT110 D 3 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 (‘1’,’2’,’3’,’4’,’5’,’6’)
3. Integritas Acuan (Referential Integrity)
 Agar hubungan antar tabel memenuhi aturan referensi yang
telah ditetapkan
Tabel : mk
Kode_kul Nama_kul Sks
IT110 Struktur data 3
IT310 Basis data 3
AK234 ISD 1
IT112 SIM 2
Tabel : nilsem
Nim Kode_kul Nilai Sem
10001 IT110 D 1
10002 IT310 B 1
10003 AK234 B 1
10001 IT111 D 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) REFERENCES pasien
ON DELETE CASCADE
ON UPDATE CASCADE;
3. NULLIFY  pengisian nilai kosong pada kolom tertentu

 Aturan Integritas Acuan :


a. Penerapan pembuatan prosedur basis data
b. Pemeliharaan melalui program 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
Tabel : mk_d3
Kode_kul Nama_kul Sks Semester
AK120 Struktur Data 3 3
AK320 Basis Data 3 3
KU234 Bahasa Indonesia 2 2
IT115 Matematika 1 2 1

Tdk memenuhi aturan


Kode_kul Nama_kul Sks Semester
Integritas data antar
AK110 Struktur Data 4 3 tabel
AK320 Basis Data 3 3
KU234 Bahasa Indonesia 2 2
IT125 Matematika 1 4 1
Tabel : mk_s1
 Untuk menjamin integritas data , pilihan yg dapat dilakukan :
1. Membedakan nilai kolom untuk tabel yang berbeda
2. Menggabungkan tabel yang sejenis
3. Membuat tabel baru untuk nilai kolom yang sama
4. Integritas Aturan Nyata (Bussiness Rule Integrity)
 Bersifat kasuistik, tidak berlaku umum
 Contoh : nilai matakuliah bersyarat

IT110 Matemaika 1
IT310 Matematika 2
NPM Kd_mk Grade
001 IT110 E
Tidak memenuhi aturan integritas,
002 IT310 B
matematika 3
003 KU005 A Boleh diambil jika Matematika 1 telah
001 IT31o B lulus
PEMAKSAAN INTEGRITAS
 Dapat dilakukan dengan cara :
a. Didefiniskan dan dikontrol di server DBMS
b. Didefiniskan dan 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),
tgl_lhr date
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_uniq 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 untuk melakukan pengecekan.
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 TfEditmahasiswa.btDeleteClick(sender:TObject);
Var vNPM:string;
Begin
vNPM:=tbMahasiswa.FieldByName(‘NPM’).AsString;
If tbNILAI.FindKey([Vnpm]) then
MessageDlg(‘Record di tabel Nilai untuk mahasiswa dengan
NPM=‘+vNPM+$13+’Harus dihapus lebih dulu!’, mtWarning, [mbOK],0)
Else
tbMahasiswa.Delete;
End;
Warning
Record di tabel Nilai untuk mahasiswa dengan NPM=10112001
Harus dihapus lebih dulu!

OK

Anda mungkin juga menyukai