Pages

Diberdayakan oleh Blogger.

Senin, 30 November 2015

Sistem Basis Data


Basis Data dan Sistem Basis Data

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXGUckTKpuYrz4UIi2p_n72KYbCNgmb6545rAA5JaD_4H-vmu8eJsF3IKqnUNbXWHvspScx6RnqU5b8-60c69xuhvvl8svC6MQW4OXDdfrobxoRUgYwBIs0FehWLwVIwEP-c2B_rhTy80/s1600/9e765-datapic.jpg


   Sebelum lebih jauh mengenal  tentang sistem basis data. Kita mulai terlebih dahulu dengan mengenal basis data dan sistem basis data itu sendiri.  Basisdata adalah kumpulan dari berbagai data/informasi yang saling berhubungan satu sama lain, disimpan di dalam perangkat keras (komputer) secara sistematis sehingga dapat diolah menggunakan perangkat lunak.

   Sedangkan, sistem basis data merupakan sekumpulan basis data dengan para pemakai yang menggunakan basis data secara bersama-sama, personil yang merancang dan mengelola basis data, teknik-teknik untuk merancang dan mengelola basis data, serta system computer yang mendukungnya.

Sistem basis data merupakan lingkup terbesar dalam organisasi data. Sistem basis data mencakup semua bentuk komponen data yang ada dalam suatu system. Sedangkan basis data merupakan komponen utama yang menyusun system basis data.

   Sistem basis data dan juga DBMS memiliki hubungan yang sangat erat. Jadi, bisa disimpulkan bahwa suatu sistem basis data merupakan suatu sistem yang melakukan proses management pada basis data atau database dengan menggunakan software DBMS. Suatu basis data dan juga DBMS tidak akan disebut sebagai sistem basis data, apabila antara database dan juga DBMS tidak mengalami interaksi dan tidak saling berhubungan satu sama lain.
 
   Tujuan basis data dan sistem basis data, adalah sebagai berikut ini:

  • Kecepatan serta kemudahan dalam menyimpan, memanipulasi atau juga menampilkan kembali data tersebut.
  • Efisiensinya ruang penyimpanan.
  • Keakuratan (Accuracy) data.
  • Ketersediaan (Availability) data.
  • Kelengkapan (Completeness) data, kita dapat melakukan perubahan struktur dalam basis data, baik dalam penambahan objek baru (tabel) atau dengan penambahan field-field baru pada table.
  • Keamanan (Security) data, dapat menentukan pemakai yang boleh menggunakan basis data.
  • Kebersamaan Pemakai (Sharability), pemakai basis data bisa lebih dari satu orang.
    Kegunaan atau fungsi sistem basis data, mengatasi masalah-masalah pemrosesan data yang sering ditemui, permasalah tersebut diantaranya:

  • Redudansi data dan juga inkonsistensi data.
  • Kesuliatan dalam pengaksesan data.
  • Data Isolation.
  • Konkurensi pengaksesan.
  • Masalah keamanan.
  • Masalah Integritas.

   Setelah mengenal basis data dan sistem basis data, selanjutnya kita akan membahas materi-materi dalam sistem basis data diantaranya adalah integritas data, transaksi, conccurency, xml dan back-end programming.
 

Integritas Data



   Integritas pada basis data adalah suatu masalah utama di dalam database yang berusaha agar menjaga data tetap konsisten atau valid. Penerapan aturan-aturan ini akan dapat menghindarkan basis data dari upaya-upaya atau kesalahan yang biasanya tidak disengaja, khususnya dalam melakukan pemanipulasian data, yang dapat membuat basis data menjadi tidak konsisten atau integritasnya terganggu.
    Jenis-jenis integritas data yang harus dipelihara dalam basis data adalah sebagai berikut,
1. Integritas Entitas (Entity Integrity), dimana tidak ada baris data duplikat dalam satu table
2. Integritas Jangkauan (Domain Integrity), dimana tidak ada item data yang melanggar jangkuan nilai di tiap kolom data
3. Integritas Acuan (Referential Integrity), yang menjaga relasi/korespodensi antar table
4. Integritas Data Antar Tabel (Redundant Data Integrity), dimana data di sebuah table tidak terulang di table lain


   Pada umumnya ada beberapa jenis integritas data, diantaranya adalah sebagai berikut :

  • Create Domain,  yaitu membuat tipe data baru. Fungsi ini biasa digunakan untuk menangani data yang membutuhkan aturan bisnis sendiri, contohnya membuat tipe data khusus untuk angka yang isinya hanya berisi bilangan 0 dan 1.
  • Not NULL, yaitu menjaga agar suatu data tidak kosong dengan kata lain harus ada valuenya. Contohnya NIM pada tabel mahasiswa tidak boleh kosong.
  • Unique, yaitu membuat agar suatu data tidak memiliki nilai yang sama dengan record lainnya dalam tabel yang sama. Contohnya NIM pada tabel mahasiswa.
  • Primary key, merupakan gabungan antara not null dan unique, misalnya NIM pada tabel mahasiswa.
  • Check, memeriksa data dengan aturan bisnisinya sendiri tanpa membuat tipe data baru. Contohnya sebelum memasukkan nilai ujian pada tabel nilai data tidak boleh bernilai negatif.
  • Referential Integrity, adalah integritas pada relasi antar tabel. Contohnya jika kolom NIM mahasiswa pada tabel nilai mengacu ke kolom NIM pada tabel mahasiswa, dan terjadi perubahan (delete atau update) pada NIM di tabel mahasiswa, maka ada beberapa pilihan yang dapat dilakukan terhadap NIM yang di tabel nilai, diantaranya adalah :

o   Delete cascade, hapus record pada kedua tabel

o   Delete set null, hapus record di tabel asal dan tabel yang mengacu di jadikan NULL

o   Update cascade, perbarui isi record pada kedua tabel



Transaksi



    Transaksi di dalam sebuah basis data dapat didefinisikan sebagai serangkaian aksi yang mengandung pengaksesan basis data dan bahkan juga dapat mengandung serangkaian perubahan data. Sebuah transaksi umumnya terdiri atas sejumlah operasi yang membentuk sebuah satuan kerja lojik. DBMS yang kita gunakan harus dapat menjamin bahwa setiap satuan transaksi harus dapat dikerjakan secara utuh atau tidak sama sekali. Tidak boleh terjadi ada transaksi yang hanya dikerjakan sebagian karena hal ini dapat mengakibatkan adanya inkonsistensi basis data.
    Untuk menjamin agar integritas data tetap terpelihara, maka setiap transaksi harus memiliki sifat-sifat seperti berikut ini,
 - Atomicity Ini berarti bahwa transaksi haruslah berhasil secara keseluruhan, atau gagal sama sekali.
 - Consistency Menjaga konsistensi data di database
 - Isolation Transaksi yang dilakukan secara bersamaan haruslah bisa dimulai dan bisa berakhir. 
- Durability Setelah transaksi berakhir, data yang berubah tidak boleh kembali ke data awal walaupun sistem mati.

    Dalam transaksi database, ada 3 hal yang harus dicegah yaitu.
 - DIRTY READ Transaksi membaca data dari hasil transaksi lainnya yang gagal. Kedua transaksi tersebut berjalan bersamaan.
 - NONREPEATABLE READ Transaksi membaca ulang data yang telah di baca sebelumnya karena data tersebut telah di modifikasi oleh transaksi lainnya.
 - PHANTOM READ Transaksi membaca sebuah data yang telah hilang akibat dari transaksi yang lainnya. 

Untuk mencegah 3 hal tersebut, maka dalam Oracle terdapat 2 level isolasi yang dapat diimplementasikan, yaitu :
 - READ COMMITED Transaksi hanya dapat melihat perubahan data setelah transaksi lain telah commit pada data tersebut. (Seperti dalam contoh commit).
 - SERIALIZABLE Adalah level isolasi yang menyediakan isolasi transaksi yang paling ketat. Saat transaksi berada pada level serializable, sebuah query SELECT hanya melihat data yang di COMMIT sebelum transaksi di mulai; transaksi tersebut tidak akan pernah melihat baik data yang belum di COMMIT atau perubahan data yang terjadi selama eksekusi transaksi oleh transaksi lain yang berjalan pada waktu bersamaan.  Isolasi level ini mencegah terjadinya PHANTOM READ.


Dua Operasi Penting Transaksi

  • Commit
Memberi tanda bahwa transaksi telah selesai. Update dibuat permanen (bahkan jika setelah commit terjadi kegagalan system).

  • Rollback

Memberi tanda bahwa transaksi GAGAL.


Save Point
   
Savepoint adalah suatu keadaan atau sebuah titik aman dimana suatu transaksi bisa diselesaikan dalam satu atau beberapa transaksi.
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.



Concurrency


    Concurrency adalah banyaknya transaksi yang dijalankan secara bersamaan dalam satu waktu.
DBMS mengijinkan banyak transaksi pada saat bersamaan untuk mengakses data yang sama.
Concurrency Control Mechanism (CCM) dibutuhkan agar transaksi tidak saling “menggangu”.

Adapun 3 masalah concurrency adalah :

  • Lost Update Problem



  • Uncommitted Dependency Problem




     
  • Incosistent Analysis Problem







Locking
    Locking terjadi jika suatu transaksi ingin record atau resource tidak berubah dalam waktu tertentu

Jenis Lock

  • Exclusive Lock (Xlock) atau write lock yaitu locking yang hanya bisa di gunakan untuk mengupdate dan membaca transaksi
  • Shared Lock (Slock) atau read lock yaitu locking yang hanya bisa di gunakan untuk membaca transaksi.

Data Access Protocol

  • Transaksi yang ingin  mengambil nilai sebuah record  (retrieve) harus mendapat Slock pada record tersebut
  • Transaksi yang ingin mengupdate, harus mendapat Xlock


Dead Lock 
   Dead lock adalah situasi dimana dua atau lebih transaksi dalam kondisi wait-state, satu sama lain menunggu lock dilepaskan sebelum dapat memulai

Contoh Deadlock





Deadlock dapat ditangani dengan cara berikut :

  • Deteksi dan pecahkan deadlock
  • Deteksi deadlock > wait-for-graph
  • Pecahkan deadlock > salah satu dirollback paksa (bagaimana penanganan rollback ini?)
  • Ostrich Algorithm  > diabaikan

XML (Extensible Mark up Language)



   XML (extensible mark up language) merupakan representasi data yang bisa didefinisikan sesuai keinginan pengguna. Karena formatnya yang standar dan fleksibel, XML sering dipergunakan pada berbagai pertukaran informasi. Dan merupakan suatu keuntungan bagi kita bila kita bisa menyimpannya pada basis data dan memprosesnya. XML tidak dikonsentrasi untuk pemrosesan dan penampilan data tetapi terutama dimaksudkan untuk memberitahu komputer apa arti sesungguhnya dari data yang disertakan.

   Kita menggunakan XML dalam membangun suatu sistem dikarenakan XML tidak tergantung pada satu platform alias platform independent juga language independent . Ditujukan untuk melakukan pertukaran data (data transfering).



Perbedaan XML dan HTML

   XML digunakan dengan cara yang menyerupai HTML. Akan tetapi terdapat perbedaan besar antara keduanya, yaitu :

  • HTML digunakan untuk mendeskripsikan bagaimana data diformat
  • XML digunakan untuk mendeskripsikan apa arti sebenarnya dari data
  • Struktur HTML telah didefinisikan
  • Aturan XML lenih ketat, contohnya setiap tag harus ada penutupnya
  • XML bersifat case sensitive
  • HTML keamanannya kurang dan hanya mengirim data tidak beserta library berbeda dari XML.



Back End Programming



   Back-End programming adalah program yang berjalan pada database secara otomatis ketika terjadi suatu pemicu tertentu. Dalam oracle ada beberapa metode untuk melakukan back-end programming, yaitu dengan trigger dan stored procedure.

Stored Procedure

   Stored procedure adalah sebuah prosedur—layaknya subprogram (subrutin) di dalam bahasa pemrograman reguler—yang tersimpan di dalam katalog basis data. Stored procedure memungkinkan sebuah aplikasi berbasis database (SQL) mendefinisikan dan kemudian memanggil prosedur melalui pernyataan SQL. Stored procedure dapat digunakan untuk aplikasi terdistribusi (client server) maupun aplikasi tidak terdistribusi.


Gambar Stored Procedure



   Beberapa kelebihan yang ditawarkan stored procedure antara lain: meningkatkan performa, mereduksi trafik jaringan, reusable, dan meningkatkan kontrol sekuriti. Di balik kelebihan-kelebihannya, stored procedure juga memiliki kekurangan, di antaranya: berpotensi meningkatkan beban server dan penulisannya tidak mudah (memerlukan pengetahuan spesifik).


   Tersimpannya Stored procedure pada sistem database terpusat memungkinkan dilakukannya perubahan untuk menyesuaikan dengan perubahan sistem terkini dan dapat berlaku untuk keseluruh sistem aplikasi yang ada tanpa perlu dilakukan perubahan untuk setiap modul aplikasi.

Dalam implementasi nyata, penggunaan stored procedure sering melibatkan parameter. Di MySQL, parameter stored procedure dibedakan menjadi tiga mode: IN, OUT, dan INOUT.

  1. IN

   Parameter yang merupakan mode default ini mengindikasikan bahwa sebuah parameter dapat di-pass ke stored procedure tetapi nilainya tidak dapat diubah (dari dalam stored procedure).

  1. OUT

   Mode ini mengindikasikan bahwa stored procedure dapat mengubah parameter dan mengirimkan kembali ke program pemanggil.

  1. INOUT

   Mode ini pada dasarnya merupakan kombinasi dari mode IN dan OUT. 



   Stored procedure dapat mencerminkan beragam operasi data, misalnya seleksi, penambahan, pengubahan, penghapusan, dan juga operasi-operasi DDL. Seperti halnya prosedur di bahasa pemrograman, stored procedure juga dapat melibatkan variabel, pernyataan kondisional, dan pengulangan.

Trigger
   Trigger merupakan suatu block PL/SQL yang akan tersimpan didalam database. Trigger akan teraktivasi secara otomatis ketika terjadi suatu kejadian/event (INSERT, DELETE, UPDATE) terhadap table, view dan database. Biasanya Trigger digunakan untuk mengisi ataupun mengubah nilai kolom dalam suatu tabel sehingga validasi nilai dari tabel tersebut akan terjaga.

Manfaat Trigger
   Dengan menggunakan Trigger integritas data serta konsistensi data dapat terjaga dan juga dapat mencegah terjadinya transaksi yang tidak valid. Selain itu standarisasi (penyeragaman) terhadap proses juga dapat tercapai karena Trigger dibuat satu kali dan tersimpan didalam database, sehingga setiap operasi yang dilakukan oleh siapapun terhadap sistem tersebut akan menggunakan Trigger yang sama.

 
Referensi :
  Hand Out Sistem Basis Data oleh Budi Laksono Putro

  Modul 10554_pengantar_basis_data.pdf 
  Modul 5 Trigger oleh Tim Asisten Praktikum Sistem Basis Data ILKOM UPI


http://www.sql2learn.com/detailpost/stored-procedure




0 komentar:

Posting Komentar

 

Blogger news

Blogroll

About