Minggu, 19 Mei 2013

Materi – Materi di Mata Kuliah Sistem Basis Data



1.      Integritas Data
Integritas data adalah akurasi dan kebenaran suatu data dalam sebuah sistem basis data. Maksudnya data yang ada bakal bisa lebih terpercaya kalau data-data tersebut terjaga kebenarannya. Tujuan dari integritas data adalah memasukkan aturan bisnis dalam database, menyaring data yang tidak valid agar tidak tersimpan di database, dan menjaga konsistensi data pada tabel yang memiliki relasi dalam database. Akurasi data dapat ditangani dengan adanya trigger yang strukturnya menyerupai fungsi atau prosedur yang dijalankan secara otomatis setelah mendapat pemicu dari sebuah kondisi tertentu. Selain itu, integritas suatu data bisa ditunjukkan dengan adanya constraint.  Constraint merupakan batasan perlakuan terhadap suatu data, constraint ada 6 macam, diantaranya:
1.     NOT NULL, ini digunakan ketika dalam satu tabel tidak boleh ada field yang null, artinya ketika kita gunakan constraint NOT NULL, field tersebut harus diisi.
2.     UNIQUE, berfungsi untuk mencegah dua baris atau lebih berisi data yang sama. Yah namanya juga unique, artinya emang gak boleh ada data yang sama di kolom tersebut.
3.     PRIMARY KEY, constraint ini mengkombinasikan UNIQUE dan NOT NULL dalam satu deklarasi. Primary key ini digunakan sebagai kolom acuan dari sebuah tabel.
4.     Foreign KEY, constraint ini memaksakan nilai pada suatu tabel untuk bernilai sama dengan tabel lain. Foreign key ini bertujuan untuk menjaga integritas pada relasi antar tabel.
5.     CHECK, berguna untuk menentukan suatu kondisi yang harus benar, misalnya jenis kelamin hanya ada P atau L.
6.     REF, mereferensi suatu objek dalam tipe objek lainnya atau dalam sebuah tabel relasional. Constraint REF mengizinkan kamu untuk mendeskripsikan relationship lebih jauh antara kolom REF dan objek yang di referensikan

2.      Transaksi
Transaksi adalah satu atau beberapa aksi program aplikasi yang mengakses / mengubah isi basis data. DBSM yang kita gunakan harus menjamin bahwa setiap transaksi harus dapat dikerjakan secara utuh atau tidak sama sekali. Tidak boleh ada transaksi yang hanya dikerjakan sebagian. Kenapa? Karna dapat menyebabkan inkonsistensi basis data. Untuk itu, transaksi selalu merubah basis data dari satu kondisi konsisten ke kondisi konsisten lain. Ada 4 (empat) sifat transaksi, yang kalau disingkat tuh bakal jadi kata ACID. Apa itu? Nih ada disini:
1.     Atomicity, semua operasi dalam transaksi dapat dikerjakan seluruhnya atau tidak sama sekali
2.     Consistency, eksekusi transaksi secara tunggal harus dapat menjamin data tetap konsisten setelah transaksi berakhir
3.     Isolation, jika pada sebuah sistem basis data terdapat sejumlah transaksi yang dilaksanakan secara bersamaan, maka semua transaksi yang dilaksanakan pada saat yang bersamaan tersebut harus dapat dimulai dan bisa berakhir
4.     Durability, perubahan data yang terjadi setelah sebuah transaksi berakhir dengan baik, harus dapat bertahan bahkan jika seandainya sistem menjadi mati
Ada dua operasi penting dalam transaksi, yaitu COMMIT dan ROLLBACK. COMMIT (memberi tanda bahwa transaksi telah selesai. Update dibuat permanen (bahkan jika setelah commit terjadi kegagalan system) dan ROLLBACK (memberi tanda bahwa transaksi GAGAL). Selain COMMIT dan ROLLBACK juga terdapat operasi transaksi pada oracle, yaitu Save Point. Secara sederhana save point merupakan sebuah titik aman, dimana kita telah menyelesaiakan satu atau beberapa transaksi. Save point dianalogikan seperti sebuah check point saat kita bermain game.  Fungsi dari save point adalah supaya pada saat kita ingin rollback atau ada transaksi yang gagal, transaksi tidak berjalan dari awal kembali, tetapi dari save poin yang telah kita buat.

3.      Concurrency
Banyak submateri yang harus dibahas untuk concurrency, mulai dari permasalahan dalam concurrency, locking, deadlock, isolation level, dan lain-lain. Disini akan dibahas beberapa permasalshan dalam concurrency. DBMS yang sering kita gunakan mengizinkan banyak transaksi pada saat bersamaan untuk mengakses data yang sama. Pemakaian satu sumber secara bersama-sama pastinya akan menggganggu jalannya transaksi, itulah yang dimaksud dengan concurrency. Oleh karna itu kita membutuhkan Concurrency Control Mechanism agar transaksi tidak saling mengganggu. Ada 3 (tiga) masalah dalam concurrency, ada lost update problem, uncommited depedency problem dan inconsistent analysis problem. Berikut adalah contoh dari ketiga permasalahan di atas:

Lost Update Problem, merupakan suatu masalah yang timbul akibat dihiraukannya informasi pada saat ada update dari user lain yang hampir bersamaan waktunya. Misalnya: ketika user 1 mengambil data R, dan kemudian user 2 juga mengambil data R. Setelah user 2 mengambil data, user 1 melakukan update data R dan di COMMIT. Ketika user 2 ingin mengupdate data R, maka sebenarnya user 2 akan mengupdate data baru dari updatetan user 1 bukan data yang awalnya sudah di ambil.



Uncommited Depedency Problem, ini terjadi jika satu transaksi membaca hasil dari transaksi lainnya sebelum transaksi kedua dinyatakan COMMIT.

  


Ketika transaksi pertama membaca beberapa nilai, tetapi transaksi kedua melakukan perubahan terhadap nilai tersebut, selama eksekusi transaksi pertama berlangsung

4.      Back-end Programming
Back-end programming adalah baris kode yang tidak dapat dilihat oleh user. Maksudnya adalah pengelolaan yang dilakukan berhubungan dengan database, sehingga tidak akan dapat dilihat oleh user. Beda halnya dengan front-end programming, ini merupakan baris kode yang dapat dilihat user karna lebih berfokus di tampilan.salah stau contoh back-end programming adalah PL/SQL. PL/SQL dirancang khusus untuk pengolahan mulus dari perintah SQL. Ini memberikan sintaks khusus untuk tujuan ini dan mendukung persis datatypes sama seperti SQL. Server-side PL / SQL disimpan dan disusun dalam Oracle Database dan berjalan dalam executable Oracle. Secara otomatis mewarisi ketahanan, keamanan, dan portabilitas Oracle Database.
            Struktur block PL/SQL dibagi menjadi 3 bagian, yaitu: declaration section (DECLARE), execution section (BEGIN, END), exception section (EXCEPTION). Selain itu ada beberapa komponen utama PL/SQL, diantaranya: Anonymous PL/SQL Block, Stored Subprogram (Stored Procedure, Stored Function) dan Trigger.
1.     Anonymous Block
Block PL/SQL tak bernama (anonymous) menyimpannya dalam Oracle Precompiler. Anonymous block tidak dibuat (CREATE) dan tak disimpan pada database, biasanya dijalankan dari dalam aplikasi, pada run-time aplikasi akan mengirimkan anonymous PL/SQL block ini kepada database oracle, dimana anonymous block tsb di compile dan dieksekusi.
2.     SUBPROGRAM
PL/SQL Block yang dipanggil dengan sekumpulan parameter. PL/SQL memiliki dua jenis subprogram yaitu: procedure dan function. Dimana secara umum procedure digunakan untuk melaksanakan aksi dan function digunakan untuk komputasi suatu nilai.
3.     Trigger
Trigger adalah blok PL/SQL yang disimpan dalam database dan akan diaktivasi ketika kita melakukan statement-statement SQL (DELETE, UPDATE, dan INSERT) pada sebuah tabel. Aktivasi trigger didasarkan pada event yang terjadi di dalam tabel tersebut sehingga trigger dapat membantu dalam menjaga integritas dan konsistensi data.

5.      XML
XML adalah singkatan dari eXtensible Markup Language, ini adalah markup language markup language yang menunjukkan data terstruktur dan bersifat sensitive case. Perbedaan yang paling terlihat dengan HTML adalah penulisan nama tag nya bisa dibuat sendiri, maksudnya penamaan tagnya tidak di tentukan. Kalau di HTML tagnya sudah ditentukan. Contoh nya:
                                                                                       XML
                                                                               
                                                                                       HTML

Mengapa kita belajar XML? Itu karena XML disupport oleh banyak tools (RDBMS, bahasa pemrograman, dll), dan XML juga platform independen serta language independen. Platform independen maksudnya adalah ketika diakses, XML akan dibawa bersamaan dengan dictionary-nya agar bahasa yang digunakan mudah dimengerti karna sudah memiliki penerjemah khusus, sehingga keamanan data dengan XML akan lebih bagus dibanding HTML.
Dalam XML, ada istilah XXML Schema. Sebuah schema mendefinisikan struktur dari dokumen XML. Sebuah skema juga digunakan untuk membatasi content dari sebuah dokumen XML kedalam sebuah element, attributes, dan values tertentu. Sebuah Document Type Definition schema adalah bagian dari spesifikasi XML. Kita akan memanggil schema yang ditulis dalam bahasa ini disebut sebagai DTD. DTD ini juga mendefinisikan tag atau attribute mana yang sangat diperlukan dan mana yang bersifat optional.

6.      Keamanan Data
Keamanan database adalah suatu cara untuk melindungi database dari ancaman, baik dalam bentuk kesengajaan atau pun bukan. Ancaman adalah segala situasi atau kejadian baik secara sengaja maupun tidak yang bersifat merugikan dan mempengaruhi system serta secara konsekuensi terhadap perusahaan/organisasi yang memiliki system database. Ada beberapa aturan dalam menjaga keamanan data, diantaranya:
1.     Otorisasi
·           Pemberian Wewenang atau hak istimewa (priviledge) untuk mengakses sistem atau obyek database
·           Kendali otorisasi (=kontrol akses) dapat dibangun pada perangkat lunak dengan 2 fungsi
·           Mengendalikan sistem atau obyek yang dapat diakses
·           Mengendalikan bagaimana pengguna menggunakannya
·    Sistem administrasi yang bertanggungjawab untuk memberikan hak akses dengan membuat account pengguna.
2.     Tabel view
Merupakan metode pembatasan bagi pengguna untuk mendapatkan model database yang sesuai dengan kebutuhan perorangan. Metode ini dapat menyembunyikan data yang tidak digunakan atau tidak perlu dilihat oleh pengguna.
3.     Backup data and recovery
·         Backup : proses secara periodik untuk mebuat duplikat ari database dan melakukan logging file (atau program) ke media penyimpanan eksternal.
·           Recovery: merupakan upaya uantuk mengembalikan basis data ke keadaaan yang dianggap benar setelah terjadinya suatu kegagalan.




Referensi:

http://rezkiny.files.wordpress.com/2011/04/keamanan-database.pdf
Modul_Simbada_6(trigger).pdf
Modul_Simbada3.pdf
http://te.ugm.ac.id/~risanuri/distributed/ringk/bab12.pdf
http://luqmanhakimnadzari.files.wordpress.com/2011/04/basisdata_14_manajementransaksi.ppt