Minggu, 19 Mei 2013

Simbada oh Simbada



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 :
  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 mengurangi kemungkinan adanya manipulasi oleh pemakai yang berwenang
  3. Sistem Operasi à Kelemahan pada SO ini memungkinkan pengaksesan data oleh pihak tak berwenang, karena hampir seluruh jaringan sistem database menggunakan akses jarak jauh.
  4. Sistem Database à Pengaturan hak pemakai yang  baik.

Referensi         : http://www.cs.upi.edu
                         http://elearning.cs.upi.edu