Sebelumnya, perkenalkan nama
saya Ling Ling Insyirohati, mahasiswa jurusan pendidikan Ilmu Komputer angkatan
2011 Universitas Pendidikan Indonesia. Di semester 4 ini saya dihadapkan oleh
beberapa pilihan mata kuliah pilihan, diantaranya sistem basis data, konsep
teknologi, analisis dan desain algoritma dan manajemen berorientasi objek. Keempat
mata kuliah tersebut harus ada salah satu yang saya pilih. Setelah saya
mempertimbangkan dari berbagai aspek, akhirnya keputusan saya jatuh pada mata
kuliah sistem basis data. Awalnya saya memang sedikit ragu untuk memilih mata
kuliah tersebut karena saya belum begitu menguasai. Hampir satu semester saya
bergelut dengan SIMBADA. Kesulitan demi kesulitan selalu datang silih berganti,
namun saya tidak pernah menyesal memilih mata kuliah ini. Mengapa demikian?
Karena gara-gara mata kuliah ini pula saya banyak belajar tentang penanganan
data. Beberapa materi yang saya pelajari antara lain:
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).
a.
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
b.
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.
a. Dua operasi penting transaksi
Commit merupakan tanda bahwa transaksi telah selesai dan rollback merupakan tanda bahwa transaksi
gagal
b. 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
c.
System Recovery
System harus recover terhadap masalah pada transaksi à
solusi: rollback, commit, kegagalan global, kegagalan
System (listrik mati) dan Kegagalan Media (hardisk corrupt)
d.
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
a. 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
b. 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
c. Deadlock
Situasi dimana dua atau lebih transaksi dalam kondisi wait-state, satu
sama lain menunggu lock dilepaskan sebelum dapat memulai
d. Penanganan deadlock
Deteksi dan pecahkan deadlock, deteksi deadlock à wait-for-graph , pecahkan deadlock à salah satu dirollback paksa dan Ostrich Algorithm à diabaikan.
e. Isolation Level
Derajat
pengaruh antar transaksi. Tertinggi : serializable (sama sekali tidak saling
mempengaruhi, seolah-olah dikerjakan secara berurutan).
f. 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
a. 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
b. Syntax stored procedure
Struktur Program, variabel , IF-Then
,loop, parameter procedure,
mengambil nilai select dancursor.
c. 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.
a. Aplikasi XML
Mendeskripsikan dokumen, pertukaran data dan database.
b. 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.
c. 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
d. Kerugian XML
Pengulangan tag, sehingga tidak efisien dan ukuran membengkak
e. 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.
f. 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.