Minggu, 19 Mei 2013

[Sistem Basis Data] Summary Sisbadat Part 1

Summary Sisbasdat

Ditulis oleh : Caesar Firdaus – 1100958 – ILKOM UPI

Dalam tulisan singkat ini saya akan menyampaikan Summary dari Mata Kuliah Sistem Basis Data yang sedang saya pelajari di Ilmu Komputer Univesitas Pendidikan Indonesia. Materi yang akan terangkum dalam tulisan ini antara lain :
  • Integritas Data
  • Transaksi
  • Concurrency
  • Back-end Programming
  • XML
  • Keamanan Basis Data

1. Integritas Data

Dalam basis data, sudah menjadi barang pasti jikalau data yang kita simpan sesuai dengan data di lapangan atau data di dunia nyata. Kesalahan data sejatinya tidak dapat ditolerir, karena kesalahan data adalah awal mula terjadinya kesalahan informasi yang dihasilkan.
Sebelum berbicara constraint, ada baiknya kita dapat memahami tipe data apa yang sebaiknya kita gunakan di dalam basis data kita. Sejauh perkuliahan berlangsung, setidaknya ada 2 hal penting yang harus diperhatikan, yakni :
  1. Tipe data number (dan integer) digunakan pada data yang dapat kita kalkulasikan. Sebagai contoh, gaji.
  2. Tipe data varchar digunakan pada data yang notabene dijadikan sebagai identitas. Sebagai contoh nim, nip. Meskipun nim dan nip sama-sama terdiri atas beberapa angka, namun nim ditujukan sebagai identitas, bukan sebagai data yang akan kita kalkulasikan (kali, bagi, tambah, kurang, dll)

A. Constraint

Constraint secara harfiah bisa kita artikan sebagai batasan, artinya adalah batasan data antara data dapat diterima atau tidak.
Ada beberapa constraint yang dapat kita gunakan di Oracle, yakni :
  1. NOT NULL, artinya field tersebut harus diisi pada setiap record.
  2. UNIQUE, artinya field tersebut harus diisikan dengan data-data yang berbeda satu sama lain antar record.
  3. PRIMARY KEY, artinya field tersebut dijadikan data pembeda antar-record.
  4. FOREIGN KEY, artinya kita mengambil nilai PRIMARY KEY yang ada dari tabel lain dan dijakian referensi sehingga sering disebut sebagai REFERENTIAL INTEGRITY.
  5. CHECK, artinya akan dilaksankan proses pengecekan terhadap data yang diinputkan, misalnya field jenis_kelamin kita batasi dengan input ‘1’ atau ‘2’.
Constraint terkadang tidak sepenuhnya dapat kita penuhi dengan melalui SQL (melalui DDL), namun jika constraint tersebut sudah terbilang rumit, kita dapat mencapainya dengan melalui back-end programming (procedure dan trigger).

2. Transaksi

Transaksi dalam basis data diartikan sebagai suatu satuan bentuk unit logik untuk melaksanakan pekerjaan. Dengan menggunakan konsep ini, dampaknya adalah suatu kegiatan dalam basis data dilaksakan satu per satu dengan jaminan pekerjaan tersebut akan selesai atau gagal sepenuhnya, dan pekerjaan dapat di batalkan.

A. Konsep Transaksi

Terdapat 4 hal yang harus dipenuhi dalam transaksi, yaitu :
  1. Atomicity, jaminan selesainya suatu pekerjaan atau tidak sama sekali.
  2. Consistency, transaksi dijalankan dengan menjaga konsistensi dari basis data. 
  3. Isolation, masing-masing transaksi dijalankan secara terisolasi, terbebas dari transaksi lainnya.
  4. Durability, setiap transaksi yang telah berhasil di laksanakan harus benar-benar melakukan perubahan pada basis data, sekalipun terjadi error atau system failure.
Dalam transaksi, kita akan menemukan istilah checkpoint dan roll back. Checkpoint merupakan suatu state yang sengaja kita save untuk selanjutnya dapat kita jadikan resotre point.

3. Concurrency

Concurrency merupakan suatu konsep untuk melaksakan beberapa transaksi untuk meningkatkan pemanfaatan sistem dan juga mengurangi waktu menunggu antar transaksi. Concurrency ternyata memiliki masalahnya sendiri, secara umum permasalahannya adalah munculnya data lain atau berubahnya suatu data sebelum data tersebut di commit (di simpan secara sah di dalam basis data). Masalah-masalah tersebut antara lain :
  1. Lost Update Problem
  2. Uncommited Dependency Problem
  3. Inconsistent Analysis Problem
Cara penyelesaian dari masalah-masalah tersebut adalah dengan menggunakan Serializeability yang kita peroleh dari Concurrency-control-management. Secara sederhana, serializeability memungkinkan transaksi-transaksi yang dijadwalkan atau akan dilaksankan dieksekusi secara satu per satu dan terbebas antara satu dengan yang lainnya. Ada pula istilah Lock, yang artinya kita mengunci hak atas suatu tabel. Lock terdapat 2 macam, yakni Shared Lock (S-LOCK) dan Exclusive Lock (X-LOCK).
  1. Shared Lock, dapat dibaca, namun tidak dapat di write.
  2. Exclusive Lock, dapat dibaca dan dapat di write.
Sayangnya, lock dapat membawa kita pada situasi yang tidak diinginkan, yaitu saat beberapa transaksi saling menunggu satu sama lain, situasi ini disebut dengan Deadlock. Jika terjadi deadlock, maka sistem harus melakukan roll-back salah satu transaksi yang sedang berlangsung. Jika kita tidak melakukan lock pada jangka waktu yang panjang, data yang kita miliki kemungkinan mengalami ketidak-konsistensi-an. Oleh karena itu, lock perlu dilakukan namun dengan penjadwalan yang tepat sehingga tidak menjadikan deadlock.

Visit :
Universitas Pendidikan Indonesia
Ilmu Komputer UPI

Tidak ada komentar:

Posting Komentar