1.
Integritas Data
Integritas data adalah akurasi dan kebenaran data. Tujuan
dari integritas data adalah untuk memasukkan aturan bisnis di dalam database, misalnya NIM tidak
boleh kosong, UMUR harus antara 0 - 120 dst, kemudian menjaga agar data yang
tidak valid tidak masuk ke database ,menjaga konsistensi data pada relasi
keterkaitan antar tabel, lebih murah dan mudah menjaga data integrity di level database dibandingkan ditangani di aplikasi dan bugs akibat isi database yang tidak valid
sulit untuk ditemukan (dapat muncul di kemudian hari).
Jenis
Integritas data ada 6 yaitu
CREATE
DOMAIN tipe baru , NOT NULL contoh:
NAMA tidak boleh NULL, UNIQUE contoh: KODE_DOSEN , PRIMARY KEY contoh:
NIP, NIM, CHECK contoh: 0 <jumlah anak < 4 dan
REFERENTIAL INTEGRITY integritas pada relasi antar tabel
Referential
Integrity
Proses otomatis untuk menjaga
integritas relasi antar tabel. Referential Integrity yang umum: Delete cascade: hapus
parent, hapus juga child, delete set null: hapus parent, child diisi dengan
NULL dan update cascade: update parent, update juga child
2.
Transaksi
Transaksi adalah aksi yang dilakukan oleh program bertujuan
untuk mengakses atau mengubah data yang terdapat di database. Tujuan dari
transaksi adalah untuk melindungi database dari kehilangan dan kerusakan data.
Dua
operasi penting transaksi
Commit merupakan tanda bahwa transaksi telah selesai dan rollback merupakan tanda bahwa transaksi
gagal
Empat
elemen transaksi
Atomicity: semua berhasil atau semua gagal, Consistency: mempertahankan
konsistensi database,
Isolation: transaksi terisolasi satu dengan yang lainnya dan Durability: setelah commit,
update harus survive di database
System
Recovery
System harus recover terhadap
masalah pada transaksi solusi: rollback, commit, kegagalan
global, kegagalan System (listrik mati) dan Kegagalan Media (hardisk corrupt)
Checkpoint
Titik aman dimana kita telah
menyelesaikan satu atau beberapa transaksi. Tujuannya adalah ketika kita gagal
melakukan transaksi, transaksi tidak diulangi dari awal.
3.
Concurrency
Concurrency mengijinkan banyak transaksi pada saat
bersamaan untuk mengakses data yang sama. Masalah concurrency diantaranya Lost
Update Problem, Uncommitted dependency problem dan Incosistent analysis problem
Locking
Jika sebuah transaksi ingin
record/resource tidak berubah dalam waktu tertentu maka dia meminta lock.
Jenis Lock
Exclusive Lock (Xlock) write
lock. Jika transaksi A memegang Xlock pada sebuah record, maka permintaan lock
(X,S) pada record yang sama harus diabaikan.
Shared Lock (Slock) read
lock. Jika transaksi A memegang Slock pada record R maka: Permintaan Xlock
transaksi lain pada R ditolak dan Permintaan Slock transaksi lain pada R
diterima
Data
Access Protocol
Transaksi yang ingin
mengambil nilai sebuah record (retrieve) harus mendapat Slock pada record
tersebut, transaksi yang ingin mengupdate, harus mendapat Xlock, Xlock dan
Slock dipegang sampai transaksi selesai (COMMIT atau ROLLBACK) dan jika
transaksi lock ditolak, masuk ke wait state hingga lock bebas
Deadlock
Situasi dimana dua atau lebih
transaksi dalam kondisi wait-state, satu sama lain menunggu lock dilepaskan
sebelum dapat memulai
Penanganan
deadlock
Deteksi dan pecahkan deadlock,
deteksi deadlock -> wait-for-graph , pecahkan deadlock -> salah
satu dirollback paksa dan Ostrich Algorithm -> diabaikan.
Isolation
Level
Derajat pengaruh antar transaksi.
Tertinggi : serializable (sama sekali tidak saling mempengaruhi, seolah-olah
dikerjakan secara berurutan).
Kompromi
Isolation Level
Dirty Read: Dapat melihat record
yang sudah di rollback transaksi lain atau yang belum dicommit, Nonrepeatable
read: T1 baca sebuah record, record tersebut diubah transaksi lain, saat T1
membaca lagi nilainya sudah berubah dan Phantoms: retrieve menghasilkan record baru
yang sebelumnya tidak ada
4. Back
end Programming
Stored
Procedure
Procedure atau Function di dalam
database, stored procedure à SQL + Bahasa Prosedural dan banyak
disupport oleh RDBMS (ORA, SQL Server, MySQL versi 5 ke atas)
Kelebihan menggunakan stored
procedure : dijalankan di database server sehingga performance lebih baik,
network trafik lebih rendah, tools DBA sehingga praktis, selalu tersedia di
database server, dapat digunakan oleh banyak aplikasi , dapat memanfaatkan
tipe, fungsi yang disediakan DBMS
Stored
Procedure di oracle
PL/SQL à procedural
language / SQL , mirip Pascal, case insensitive, strong typed, semua variabel
harus dideklarasikan dan komentar
Syntax
stored procedure
Struktur Program, variabel ,
IF-Then ,loop, parameter procedure, mengambil nilai select dancursor.
Trigger
Bentuk khusus dari stored
procedure. Stored procedure yang dipanggil secara khusus pada event tertentu:
before/after INSERT, before/after DELETE. before/after
UPDATE.
Manfaat trigger
Membuat integrity constraint yang
kompleks, mencatat aktivitas suatu table (logging) dan sinkronisasi.
5. XML ( Extensible Markup Language)
Standard de-facto untuk bertukar data, menyimpan data,
mendeskripsikan data, disupport oleh banyak tools (RDBMS, bahasa pemrograman),
Webservice à XML pada HTTP dan platform independen,
language independen.
Aplikasi
XML
Mendeskripsikan dokumen,
pertukaran data dan database.
Perbedaan
dengan HTML
Semantik HTML telah
didefinisikan. Contoh: <b> untuk bold, XML lebih ketat aturannya. Contoh:
setiap tag harus ada penutupnya (<tag> …. </tag>) dan XML case
sensitive.
Keuntugan
XML
Self Documenting dengan
melihat tag, dapat diketahui isi dokumen, dapat dibaca software dan manusia,
fleksibel , dapat dikembangkan tanpa melanggar format lama, hirarkis dapat
merepresentasikan data kompleks dan independen terhadap bahasa pemrograman, OS
Kerugian
XML
Pengulangan tag, sehingga tidak efisien dan ukuran
membengkak
Aturan
XML
Setiap tag harus ada
penutupnya, penamaan tag : case sensitive. <nama> tidak sama dengan
<Nama>, tidak diawali dengan angka , tidak mengandung spasi dan hindari
'-' dan '.' , urutan hirarki harus benar, setiap XML harus mengandung root
(akar) dan setiap atribut harus dalam tanda petik.
XML
parser
Parser adalah program untuk
“membaca” dokumen XML. Ada dua cara untuk membaca dokumen XML, yaitu Tree based
dengan cara isi XML dipindahkan ke memori terlebih dulu DOM
(Document Object Model) dan Event based tidak dipindahkan ke memori. Fungsi
callback dipanggil setiap menemui element. à SAX
(Simple API XML) .
6.
Keamanan Data
Keamanan merupakan suatu proteksi terhadap pengrusakan data
dan pemakaian data oleh pemakai yang tidak punya kewenangan.
Tingkatan
Pada Keamanan Database :
Fisikal : lokasi-lokasi
dimana terdapat sistem komputer haruslah aman secara fisik terhadap serangan
perusak.
Manusia : wewenang
pemakai harus dilakukan dengan berhati-hati untuk mengurangi kemungkinan adanya
manipulasi oleh pemakai yang berwenang
Sistem
Operasi : Kelemahan pada SO ini memungkinkan
pengaksesan data oleh pihak tak berwenang, karena hampir seluruh jaringan
sistem database menggunakan akses jarak jauh.
Sistem
Database : Pengaturan hak pemakai yang
baik.
Studi Kasus
Sistem informasi
pemesanan tiket pesawat online
1.
Admin dan
operator memiliki id dan password masing-masing.
2.
Admin dan
operator dapat mengganti password masing-masing.
3.
Admin dan
operator dapat melihat dan mengubah data pribadi atau profilnya masing-masing.
4.
Admin dapat
melihat history login dari tiap operator dan pengguna
atau masyarakat.
5.
Admin dapat
melihat list data operator yang bertugas.
6.
Admin dan
operator dapat melihat data konsumen yang telah melakukan pemesanan.
7.
Admin dapat
melihat dan mencetak laporan hasil yang didapat dari penjualan tiket pesawat.
8.
Operator tidak dapat
melihat history login dari tiap operator yang bertugas
dan pengguna atau masyarakat.
9.
Operator tidak dapat
melihat list data operator yang bertugas.
10.
Tersedia fasilitas
menu searching atau pencarian data dari setiap
menu yang disediakan guna memudahkan pekerjaan admin dan operator.
11.
Admin memiliki
beberapa layanan menu, yaitu edit data konsumen, edit data maskapai, edit data
tiket, edit data tempat tujuan, lihat pemesanan konsumen, ubah data profil
sendiri, list operator login,
dan rincian pemasukan
12.
Pengguna dapat melihat
berbagai informasi yang disediakan antara lain melihat peraturan dan petunjuk
dalam mengakses layanan ini, melihat profil dan dapat melakukan pendaftaran
untuk menjadi member atau pengguna yang sah dalam sitem ini
13.
Pengguna dapat
melakukan pemesananan tiket pesawat yang nantinya akan ditelepon langsung
secara manual oleh operator.
14.
Pengguna dapat
melakukan pembatalan tiket yang sudah dipesan,dengan ketentuan dan peraturan
yang berlaku
15.
Pengguna dapat melihat
daftar pemesanan tiket yang sudah pernah dilakukannya
16.
Pengguna disediakan
menu mengubah data profil miliknya, dimaksudkan jika pengguna telah
pindah rumah atau nomor teleponnya sudah berubah atau hanya sekedar ingin
mengubah data-data lainnya, seperti nickname, password