Saatnya
berbagi.. Kali ini saya akan berbagi informasi mengenai sistem basis data. Nah,
sebelumnya kita kenalan dulu ya sama sistem basis data. Sistem basis data
adalah sekumpulan basis data yang saling berhubungan satu sama lain yang
memungkinkan pemakaian bersama untuk mengakses dan memanipulasi data-data tersebut. Bicara masalah Sistem basis data (atau
biasa disingkat sisbasdat di jurusan saya :D) erat kaitannya dengan integritas
data, transaksi (untuk transfer data antar pengguna nih), concurrency, back end
programming, XML, dan tentunya keamanan basis data. Untuk lebih jelasnya ayo
kita pelajari.
Pertama,
kita bahas tentang integritas data. Tentunya kita bertanya-tanya untuk apa sih?
(kalau engga, coba tanya sekarang, hehe). Tujuannya untuk menjaga validitas dan
konsistensi data. Misalnya data mahasiswa, setiap mahasiswa mempunyai NIM yang
unik, maka untuk menjaga validitas agar tidak ada NIM yang sama muncullah constraint
unique. Untuk penulisan constraint itu sendiri, bisa tulis sebaris dengan nama
kolomnya atau terpisah.
Ditulis
sebaris dengan nama kolom
Nim varchar2(8) primary key,
Atau ditulis
terpisah dengan nama kolom
Nim varchar2(8),
Constraint pk primary key(nim),
Selain
primary key, bisa juga kita membuat constraint foreign key, check, dan unique. Contoh
lagi deh, misalnya mau membuat validasi untuk jenis kelamin.
Constraint chk_jk check (jk in (‘L’,’P’)),
Mudah bukan
membuatnya? :D . Nah karena sudah tau, jadi gunakan validasinya ya.
Oke,
pembahasan selanjutnya tentang transaksi dan concurrency. Kedua hal ini
berhubungan erat dan tak terpisahkan. Mengapa? Karena sistem basis data bisa
digunakan oleh banyak pengguna, disitu akan terjadi transaksi yang mungkin
dilakukan secara bersamaan dan mengakses data yang sama, sehingga agar tidak
saling mengganggu dan datanya tetap valid.
Apa
yang ada dibenak teman-teman mengenai transaksi? Sebenarnya konsep transaksi sering
kita lakukan sehari-hari. Misalnya ketika membeli barang. Saat kita membayar
dan mendapatkan barang tersebut maka transaksi telah terjadi. Jadi, transaksi
merupakan unit lojik pekerjaan yang terdiri dari beberapa intruksi. Dua operasi
penting pada transaksi adalah commit dan
rollback. Commit menandakan bahwa transaksi telah selesai. Missal dalam
kehidupan nyata yaitu saat kita membauar barang yang dibeli. Rollback memberikan tanda bahwa
transaksi GAGAL.
Ada
4 elemen transaksi yang harus diingat, biasa disingkat ACID. Atomicity , semua transaksi berhasil
atau semua gagal. Consistency,
transaksi mempertahankan konsistensi database. Isolation, transaksi terisolasi satu sama lain. Durability, setelah transaksi berakhir,
data yang berubah tidak boleh kembali ke data awal meskipun sistem mati.
Kemudian ada yang namanya Save Point.
Apa itu? Seperti pada game, save point merupakan titik aman dimana kita telah
menyelesaikan satu atau beberapa transaksi. Fungsinya supaya saat ingin
rollbacktransaksi tidak berjalan dari awal kembali, tetapi dari save point yang
telah dibuat.
Selanjutnya
ada 3 hal yang harus dicegah. Dirty read,
membaca data dari hasil transaksi lain yang gagal. Nonrepeatable read, membaca ulang data yang telah dibaca
sebelumnbya karena dimodifikasi oleh transaksi lain. Phantom read, membaca sebuah data yang telah hilang akibat
transaksi lain. Untuk mencegah tiga hal itu, ada dua level isolasi yang bisa
dilakukan. Read commited yaitu
transaksi hanya bisa melihat perubahan data setelah transaksi lain commit. Serializable, eksekusi dilakukan secara
serial, transaksi dilakukan satu setelah yang lainnya.
Pada transaksi database,
dikenal istilah locking. Ada dua metode
yaitu shared lock (S-Lock) dan
Exclusive lock (X-lock). Jika transaksi memiliki shared lock pada suatu data,
transaksi tersebut hanya bisa melakukan pembacaan. Bagi transaksi yang memiliki
exclusive lock pada suatu data, transaksi tersebut dapat melakukan perubahan
dan pembacaan terhadap data tersebut. Ada juga penguncian level table yang
berfungsi untul mencegah perubahan atau penghapusan table selama ada transaksi
yang menggunakan table itu. Lalu ada juga penguncian level baris yang hanya
berlaku untuk operasi UPDATE dan DELETE. Kemudian ada situasi yang mungkin
pernah kita alami di kehidupan nyata, deadlock,
merupakan situasi dimana dua atau lebih transaksi dalam kondisi wait-state,
satu sama lain menunggu lock dilepas sebelum di mulai (Yudi Wibisono).
Itu dia
cerita tentang concurrency dan transaksi yang tak bisa terpisahkan, seperti aku
dan kamu, eaaaa. Jangan terlalu serius
guys, nanti bosen, masih ada yang mau saya bagi nih. Selanjutnya adalah
mengenai back end programming. Apa itu? Back end programming adalah aplikasi
program computer yang berjalan di bawah aplikasi program computer Front End dan
tidak tampak. Contohnya adalah stored
prosedur dan trigger.
Stored procedure memiliki performance
yang lebih baik, network trafik lebih rendah, dapat digunakan oleh banyak aplikasi, dapat
memanfaatkan tipe, fungsi yang disebdiakan RDBMS. Stored procedure memiliki
bentuk khusus, yaitu trigger. Manfaatnya adalah membuat integrity constraint
yang kompleks, mencatat aktivitas suatu table, dan sinkronisasi.
Sekarang
lanjut materi berikutnya tentang XML (EXtensible
Markup Language) . XML mengandung informasi yang terstruktur, untuk
pertukaran dokumen via web, dan berbentuk file text. Kenapa harus XML? Jrengjrengjreng… Karena XML
ini di-supprot oleh banyak tools (RDBMS, bahasa pemrograman), tidak bergantung
pada platform (platform independen).
Ini
nih isi XML:
1. Tag ,tag ini bisa didefinisikan sendiri : <nama>Nindi</nama>
2. Tag dapat mempunya atribut : <daftar_nama jumlah=”10”> …
</daftar_nama>
3. Struktur -> hirarki (tag dalam tag) : <daftar ><nama>Nindi</nama></daftar
>
Berikut ini keuntungan XML : self documenting, dapat dibaca software dan manusia, fleksibel,
dapat dikembangkan tanpa melanggar format lama, hirarkis, independen terhadap
bahasa pemrograman, OS. Kerugiannya yaitu pengulangan tag sehingga tidak
efisien.
Beberapa
aturan XML:
1.
Deklarasi dokumen XML
2.
Setiap tag harus ada penutupnya
3.
Penamaan tag : case sensitive, tidak diawali dengna
angka, tidak mengandung spasi, hindari ‘-’ dan ‘.’
4.
urutan hirarki harus benar
5.
Setiap XMl harus mengandung root
6.
Setiap atribut harus dalam tanda petik
7.
Komentar dalam XML : <!—isi komentar --!>
Ada pula XML Parser. Parser merupakan program untuk membaca dokumen XML. Ada dua cara
pembacaan yaitu tree based dengan
memindahkan isi XML ke memori terlebih dahulu, Event based, fungsi callback dipanggil setiap menemui elemen.
Jenis-jenis parser : 1) DOM(Document Object Model),2) Xerces, dan 3) SAX (Simple
API for XML). DOM parser
menerjemahkan dokumenXML dan menempatkan elemen-elemen yang ditemuinya saat
memproses dokumen ke dalam struktur pohon lalu disimpan ke dalam memori. SAX parser berjalan menjelajahi dokumen
dan menyimpannya dalam suatu event-handler. SAX parser lebih tepat digunakan
untuk menangani dokumen XML yang dinamis.
Saat ini yang banyak digunakan adalah XMP Schema.
Mengapa?
1.
Lebih extensible untuk perubahan selanjutnya
2.
Ditulis dengan menggunakan aturan XML
3.
Mendukung adanya tipe data
4.
Lebih lengkap dan powerfull daripada DTD
5.
Mendukung adanya namespace
6.
Rekomendasi W3C
Elemen dalam XML Schema
didefinisikan dalam beberapa jenis: simple
element dan complex element.
Ada satu hal yang perlu
dipelajari lagi, yaitu keamanan sistem basis data. Keamanan basis data tidak
hanya berkaitan dengan basis data saja, tetapi juga meliputi bagian dari sistem
basis data. Secara garis besar keamanan basis data dikelompokan sebagi berikut:
-Keamanan
Server : Perlindungan Server adalah suatu proses pembatasan akses.
-Trusted Ip
Access : Setiap server harus dapat mengonfigurasi alamat ip yang diperbolehkan
mengakses dirinya.
-Koneksi
Database : Pastikan koneksi yang digunakan unik
-Kontrol
Akses Tabel
Penyalahgunaan
Database:
1.
Tidak sengaja, jenisnya:
a.
Kerusakan selama proses transaksi
b.
Anomali yang disebabkan oleh akses database yang
konkuren
c.
Anomali yang disebabkan oleh pendistribusian data pada
beberapa computer
d.
Logika error yang mengancam kemampuan transaksi untuk
mempertahankan konsuistensi database
2.
Disengaja, jenisnya:
a.
Pengambilan data/pembacaan data oleh pihak yang tidak
berwenang
b.
Pengubahan data oleh pihak yang tidak berwenang
c.
Penghapusan data oleh pihak yang tidak berwenang
Tingkatan
pada keamanan database:
1.
Fisikal -> lokasi-lokasi dimana terdapat sistem komputer
haruslah aman secara fisik terhadap serangan perusak.
2.
Manusia -> wewenang pemakai harus dilakukan dengan
berhati-hati untuk mengurangoi kemungkinan adanya manipulasi oleh pemakai yang
berwenang
3.
Sistem operasi -> kelemahan pada OS ini
memungkinkan pengaksesan data oleh pihak tidak berwenang.
4.
Sistem database -> pengaturan hak pemakai yang
baik.
Keamanan
data: 1) Otoritas, 2) Table view, dan 3) Backup data dan recovery.
Teknik
pemuliahan: 1) Deferred update
/ perubahan yang ditunda, 2) Immediate update
/ perubahan langsung, dan 3) Shadow paging.
Fasilitas
keamana database: Publikasi, Proteksi, Hanya baca (read-only), Dapat dibaca yang lain, dan Dapat diimpor.
Salah satu hal penting dalam
komunasi menggunakan komputer untuk menjamin kerahasiaan data adalah enkripsi. Enkripsi
untuk keamanan basis data : enkripsi konvensional dan enkripsi public-key.
Sekian informasi yang bisa dibagikan, semoga bermanfaat J ..
Referensi :
·
http://shofiqsula.wordpress.com/2010/02/10/procedure-dalam-mysql/
·
http://dendieisme.blogspot.com/2009/03/mysql-store-procedure.html
·
http://yurindra.wordpress.com/about/keamanan-basisdata/
·
http://yonk1991.xtgem.com/post/Kuliah/Semester4/XML/XML%20Schema.html
·
http://bisakomputer.com/aturan-penulisan-sintaks-pada-dokumen-xml
Untuk informasi lebih lanjut, silakan kunjungi :
cs.upi.edu
elearning.cs.upi.edu
- slide bapa Yudi Wibisono
Untuk informasi lebih lanjut, silakan kunjungi :
cs.upi.edu
elearning.cs.upi.edu
Tidak ada komentar:
Posting Komentar