2.1. Konsep
Dasar Sistem Basis Data
Apa itu Data, Basis, Basis Data (Database), dan Sistem
Basis Data (Database System) ?
Data : Representasi fakta dunia nyata yang mewakili suatu objek
Basis : Representasi sistem terpusat diartikan sebagai, sarang atau
markas (base) bagi data
Basis Data : Kumpulan dari berkas data (integrated collection of data)
yang memiliki kaitan satu dengan lainnya, dan dibuat untuk memenuhi kepentingan
banyak pemakai pada suatu organisasi
Sistem Basis Data : Sekumpulan basis data dengan para pemakai yang
menggunakan basis data secara bersama-sama, perancang dan pengelola basis data,
serta system yang mendukungnya
Sistem
Basis Data memungkinkan pengolahan basis data menjadi lebih berkualitas dengan
manajemen pengolahan datanya.
2.2 Integritas
Data (Data Intergrity)
Informasi yang disimpan pada
database dapat dikatakan berkualitas jika DBMS (Database Management System)
mencegah pemasukan data yang tidak benar. Diperlukan Constraint atau batasan
yang jelas tentang data yang hendak disimpan.
Untuk apa diperlukan data integrity?
Data
Integrity mengacu kepada konsistensi dan akurasi data yang disimpan dalam basis
data, data yang invalid tidak masuk ke database.
Contoh Integritas Data
-
Nilai Induk Mahasiswa tidak boleh dikosongkan
pada tabel data mahasiswa.
-
Umur harus berupa angka antara 0 – 120
Jenis Integritas Data (SQL)
CREATE
DOMAIN -> tipe baru
NOT NULL
-> field value tidak boleh dikosongkan atau harus diisi
UNIQUE ->
kode unik tiap row data contoh : kode_dosen
PRIMARY KEY
-> kode unik tiap row yang dijadikan acuan konsistensi relasi antar tabel
CHECK ->
pemeriksaan kondisi data , contoh 0<jumlah anak<5 , jumlah anak diantara
1-4
REFERENTIAL
INTEGRITY -> integritas pada relasi antar tabel
2.3. Pengelolaan
Transaksi
Transaksi data
diperlukan untuk melindungi database dari kehilangan dan kerusakan data ketika
proses basis data.
Contoh kasus:
-
Sistem crash ketika program dieksekusi dan
database berada pada state yang tidak diketahui
-
Dua program yang mengakses data yang sama
dijalankan bersamaan sehingga saling mengganggu.
Operasi Transaksi
COMMIT -> menandakan
transaksi telah selesai dan update atau perubahan dibuat permanen
ROLLBACK -> menandakan
transaksi telah gagal dan update atau perubahan di-undo
Contoh Transaksi?
BEGIN
TRANSACTION;
update nasabah
set saldo = saldo – 1000000
where nomor = 111;
IF
<ada error> GOTO UNDO;
update nasabah
set saldo = saldo + 1000000
where nomor = 222;
IF <ada error> GOTO
UNDO;
COMMIT;
GOTO FINISH;
UNDO: ROLLBACK;
FINISH: return;
|
2.4. Concurrency
Dengan Concurrency, DBMS
mengijinkan banyak transaksi pada saat bersamaan untuk mengakses data yang sama
dan transaksi tidak saling mengganggu.
Masalah Concurreny
-
Lost Update Problem - Data yang telah di Retrieve pada transaksi A melakukan Updating
pada Transaksi B
-
Uncomitted dependency problem - Data belum melakukan
COMMIT, dilakukan ROLLBACK data
-
Incosistent analysis problem - Data tidak
konsisten
Elemen Concurrency
-
Locking – Jika transaksi menginginkan record
tidak berubah dalam waktu tertentu, lock request akan diminta
-
Deadlock – Situasi dimana dua atau lebih
transaksi dalam kondisi wait-state/lock, jalan keluar : release lock atau
melepaskan lock.
-
Isolation Level – derajat pengaruh antar transaksi
(dirty read, nonrepeatable read, Phantoms)
2.5. Back-end
Programming
Di dalam database dikenalkan
teknik pemrograman Stored Procedure dan Trigger yang dinamakan Backend
Programming.
Stored Procedure
Penggunaan Procedure atau
function di dalam database.
Struktur Stored Procedure (PL/SQL)
CREATE OR REPLACE
<<PROCEDURE/FUNCTION>>
<<NAMA PROCEDURE>>
AS
<<DEKLARASI
VARIABLE>>
BEGIN
<<DEKLARASI
ALGORITMA>>
END;
|
Trigger
Bentuk khusus dari Stored
Procedure dan dipanggil pada event kejadian tertentu :
-
BEFORE/AFTER INSERT
-
BEFORE/AFTER DELETE
-
BEFORE/AFTER UPDATE
Struktur Trigger
CREATE
OR REPLACE TRIGGER <<NAMA
TRIGGER>>
AFTER
DELETE OR INSERT OR UPDATE ON <<NAMA TABLE>>
DECLARE
<<DEKLARASI
VARIABLE>>
BEGIN
<<DEKLARASI
ALGORITMA>>
END;
|
2.6. XML
XML (Extensible Markup Language)
berfungsi sebagai Marking up untuk dokumen yang mengandung informasi
terstruktur. Menjadi pertukaran dokumen via web. Standard de-facto untuk
pertukaran data, penyimpanan data, pendeskripsian data.
Dengan struktur yang independen
tergantung kebutuhan pengguna. Digunakan XML Parser untuk penerjemahan data.
Struktur XML
Tag : Didefinisikan sendiri
tergantung pengguna
<nama>jidni</nama>
|
Atributte : Atribut yang
dimiliki tag
<daftar_mahasiswa
jumlah=”30”>…</daftar_mahasiswa>
|
Hierarchy : Nested tag
<mahasiswa>
<nama>jidni</nama>
</mahasiswa>
|
Spesifikasi
-
DTD -> Document Type Declaration
-
XML Scheme -> Pengembangan dari DTD
-
XSL -> Extensible Style Language, bagaimana
XML ditampilkan
2.7. Database
Security
Keamanan basis data sangat
diperlukan untuk menjaga agar data tetap aman dan terjaga keberadaaanya.
Aspek Keamanan Basis Data
-
Network security - Keamanan Jaringan.
-
Application security – Keamanan Aplikasi database.
-
Computer security – Keamanan computer (end-user).
Hal yang penting diperhatikan dalam Keamanan Basis data
-
Privacy / confidentiality – Proteksi data yang
bersifat pribadi yang sensitive (Sniffer Shield)
-
Integrity – Proteksi terhadap data yang dirubah
(Spoof, virus, Trojan Shield)
-
Authentication – Proteksi terhadap autentikasi
palsu seperti password palsu
-
Availability – Proteksi terhadap ketersediaan
data (server hang, down, crash terhadap serangan DoS (Denial of Service)
Attack)
-
Non-repudiation – Proteksi terhadap penyangkalan
data (Deception)
-
Access control – Proteksi terhadap
penyalahgunaan hak akses privilege user (intruder attack)
Operasi Keamanan Basis Data
-
GRANT – memberikan kewenangan terhadap user
-
REVOKE – mencabut kewenangan terhadap user