Minggu, 19 Mei 2013

Sistem Basis Data : Concurency, Transaksi dan Keamanan Data





Concurrency adalah banyaknya transaksi yang dijalankan secara bersamaan dalam satu waktu.

Hampir semua DBMS adalah multiuser, sehingga berpeluang terjadinya inkonsistensi basis data. Maka perlu adanya pengendalian persaingan eksekusi transaksi (concurrency control).

Transaksi : “Sebuah transaksi adalah unit eksekusi program yang mengakses dan mungkin mengubah beberapa item data”. Dalam Konsep transaksi di database harus di penuhi empat sifat database agar integritas database tetap terjaga. Adapun keempat sifat tersebut adalah:
·         Atomicity: Setiap transaksi harus dijamin untuk dapat sukses dalam melakukan aksinya atau jika gagal , maka tidak berpengaruh apapun terhadap database.
·         Consistency: Setiap transaksi adalah sebuah aksi kombinasi secara logikal dari sebuah state database yang konsisten ke state yang lain dengan tetap menjaga kekonsisten-an database tersebut.
·         Isolation: Meskipun ada beberapa transaksi yang berlangsung bersamaan, masing-masing transaksi tidak boleh mengetahui transaksi lain yang sedang berlangsung. Hasil transaksi sementara harus disembunyikan dari transaksi lain yang sedang berlangsung . (level transparansi transaksi dapat di set).
·         Durability: Setelah sebuah transaksi sukses dilakukan, perubahan-perubahan yang dibuatnya terhadap database bersifat permanen, bahkan jika terjadi kegagalan sistem sekalipun.




Data Consistency : Berarti bahwa user melihat data yang terdapat di database konsisten baik itu data yang telah di rubah olehnya sendiri maupun oleh user yang lain. Pada umumnya, basis data menerapkan beberapa bentuk data locking untuk menangani masalah yang berkaitan dengan concurrency, consistency dan integrity. Locks merupakan mekanisme yang dapat menjaga interaksi destruktif di antara beberapa transaksi yang mengakses resource yang sama. Berkaitan dengan level isolasi yang ada ANSI / ISO standard SQL (SQL92) mendefinsikan 4 level isolasi . Level isolasi didefinisikan sebagai derajat transparansi transaksi antara satu user dengan user yang sama pada pengaksesan data yang sama. Ada fenomena – fenomena tertentu yang harus di cegah selama eksekusi transaksi yang konkuren . 3 Fenomena yang harus di cegah adalah :

1. Dirty Reads : Sebuah transaksi membaca data yang telah di tulis oleh transaksi yang lain tetapi belum di commit oleh transaksi lain tersebut.
2. Non Repeatable Reads : Sebuah transaksi yang membaca kembali sebuah data dimana data tersebut sudah di rubah / di hapus oleh transaksi lain dan telah di commit.
3. Phantom Reads : Sebuah transaksi menjalankan kembali sebuah query dimana akan menemukan bahwa ada transaksi lain yang telah memasukkan record baru ke schema yang sedang di akses oleh transaksi tersebut, sehingga akan terlihat antara query yang pertama di lakukan dengan query yang kedua memberikan hasil eksekusi jumlah row yang berbeda .

Oracle memberikan pilihan kepada usernya untuk memilih 2 mode isolasi , yaitu : read commited dan serializable . Untuk mode read only oracle bukan bagian dari SQL92 sehingga dari tabel di atas read only tidak masuk ke level isolasi yang di tawarkan oleh SQL92 tetapi ditawarkan oleh oracle . Berikut penjelasan 3 level yang di sediakan oleh oracle padapenggunanya :

- Read Commited, Read commited merupakan level isolasi default dari oracle. Setiap query yang dieksekusi oleh suatu transaksi membaca hanya data yang telah di-commit, sebelum query (bukan transaksi) dimulai.Karena Oracle tidak mencegah dari data yang sedang di read oleh sebuah query di modifikasi oleh query / transaksi yang lain , sehingga kemungkinan data telah di rubah oleh transaksi yang lain bisa saja terjadi antara 2 eksekusi dari query tersebut.
- Serializable, Transaksi serializable membaca hanya perubahan yang telah dicommit pada saat transaksi dimulai, ditambah perubahan yang dibuat oleh transaksi itu sendiri melalui statemen insert, update, dan delete.
- Read Only,Transaksi read-only membaca hanya perubahan yang telah di-commit saat transaksi dimulai dan tidak memperbolehkan statemen insert, update, dan delete.

Level yang tertinggi dari 3 pilihan tersebut adalah ”serializable”. Hal ini di karenakan level ini memberikan level isolasi yang terbaik ketika banyak user mengakses data yang sama . Konsep serializable nampak sebagai sebuah urutan eksekusi secara serial , terurut berdasarkan transaksi yang terjadi. Cara mensetting level isolasi di oracle : (pilih salah satu) Ada 2 metode dalam mengeset level isolasi di oracle , yaitu :

- Pada level Transaksi (pada level ini hanya untuk mengeset sebuah transaksi)
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
SET TRANSACTION READ ONLY;
- Pada level Session (pada level ini akan berlaku pada seluruh transaksi yang dilakukan dan subsequent dari transaksi yang terjadi)
ALTER SESSION SET ISOLATION_LEVEL = READ COMMITTED
ALTER SESSION SET ISOLATION_LEVEL = SERIALIZABLE;

Dalam mengatur agar dalam pengaksesan resource data yang sama tidak saling terjadi interferensi .. maka oracle memberikan konsep locking . Oracle secara otomatis menentukan lock yang perlu saat mengeksekusi
SQL statement . Namun Oracle juga memperbolehkan user untuk mengeset lock sendiri secara manual. Ada 2 Mode lock yang terdapat pada oracle yaitu :
- Exclusive Mode, Mencegah resource yang sedang di pakai untuk di share . Mode lock ini di peroleh ketika akan memodifikasi data . Transaksi yang sudah me-lock data secara exclusive adalah transaksi yang berhak pula untuk melepaskan lock tersebut untuk kemudian di gunakan oleh transaksi yang lainnya .
- Share Mode, Mengijinkan resource yang berhubungan untuk di share , tergantung dari operasi yang terlibat di dalamnya . Multiple users yang sedang membaca data dapat men-share data tersebut , memegang lock dengan tipe share lcok untuk mencegah akses data secara concurrent oleh writer (seseorang yang membutuhkan exclusive lock). Beberapa transaksi mungkin akan membutuhkan share lock pada penggunaan resource yang sama .

XML

XML (eXtended Markup Language) adalah bahasa markup yang digunakan untuk menyimpan data (tidak ada program) dan tidak tergantung dengan tools tertentu (seperti editor, dbms, compiler, dsb). Jika demikian, Lalu digunakan untuk apa dokumen XML ini?

XML adalah merupakan suatu bahasa Markup. Markup yaitu bahasa yang berisikan kode-kode berupa tanda-tanda tertentu dengan aturan tertentu untuk memformat dokumen teks dengan tag sendiri agar dapat dimengerti.

Perbedaan antara XML dan HTML
Perlu di ingat bahwa:

XML bukan merupakan pengganti HTML.
XML dan HTML yang dirancang dengan tujuan yang berbeda:
XML dirancang untuk transportasi dan menyimpan data, dengan fokus pada apa data.
HTML dirancang untuk menampilkan data, dengan fokus pada bagaimana data terlihat.

HTML adalah tentang menampilkan informasi, sedangkan XML adalah membawa informasi tentang.

Keuntungan XML
- Ekstensibilitas : dapat ditukar/digabung dengan dokumen XML lain
- Memungkinkan pemrograman yang lebih baik:
maka dibuat suatu software pengolah XML
- Memisahkan data dan presentasi. Yang akan direpresentasikan dalam XML dan XSLT
- Pencarian data cepat karena XML merupakan data dalam format yang terstruktur
- Plain Text dan platform independent
- Untuk pertukaran data

Dokumen XML dapat digunakan untuk berbagai macam tujuan, seperti:
- Sebagai penyimpan data (database) yang mudah dibaca oleh user karena disimpan dalam bentuk teks.
- Standard transfer data, dapat digunakan untuk pengiriman data transaksi antar perusahaan, atau mentransfer data dari DBMS yang berbeda (mis: Oracle ke SQL Server).
- Sebagai acuan membuat bahasa baru, seperti WML (Wireless Markup Language) yang digunakan pada mobile device dengan protokol WAP, atau VoiceXML yang digunakan sebagai bahasa markup untuk pengenalan suara, dialog, aplikasi interaksi respon suara maupun DTMF (seperti aplikasi pengisian pulsa atau call center), dan sebagainya.
- Sebagai file konfigurasi, di Java dokumen-dokumen XML sering kita jumpai seperti file server.xml dan web.xml yang digunakan Tomcat, atau perintah-perintah query yang disimpan dalam file XML yang dipakai pada framework iBatis atau Hibernate.

Sejauh mana perkembangannya?XML menjadi dasar dari beberapa bahasa markup yang telah sedang berkembang sampai saat ini, seperti: XHTML (perbaikan dari HTML), VoiceXML (bahasa untuk aplikasi suara, telepon), XForms (form pada web yang dapat digunakan pada berbagai macam jenis browser, seperti: desktop, PDA , handphone, kertas), XPath, XPointer, XSL dan XSLT (transformasi dan presentasi XML).

more info about CS UPI : http://cs.upi.edu/ dan http://cs.upi.edu/elearning/ 


1 comments:

Anonim mengatakan...

Keep this going please, great job!



http://www.buildethiopia.org/ethiopia/JosephinepyKeenku

Take a look at my blog post nitric power review

Posting Komentar

Thankyou for reading :)

 
 
Copyright © [ notulensi ]
Blogger Theme by BloggerThemes Design by Diovo.com