Senin, 30 November 2015

Transaksi dan Concurrency

        Transaksi pada basis data adalah satu atomic operasi berupa lojik pekerjaan maupun lojik recovery (pemulihan) yang bisa terdiri dari beberapa intruksi. Tujuan dari transaksi adalah menjaga database dari kehilangan data dan kerusakan, seperti system crash dan pengaksesan data yang sama secara bersamaan oleh dua aplikasi yang berbeda yang menimbulkan gangguan.
Ada empat elemen dalam transaksi yang biasa disingkat ACID, yaitu :
  • Atomicity, semua berhasil atau semua gagal 
  • Consistency, transaksi mempertahankan konsistensi database 
  • Isolation, transaksi terisolasi satu dengan yang lain 
  • Durability, setelah commit update harus survive di database
Dan ada dua jenis transaksi yang paling penting dalam sistem basis data adalah :
  • Commit, memberi tanda bahwa transaksi telah selesai. Update dibuat permanen (bahkan jika setelah commit terjadi kegagalan system). Pada implementasinya, contohnya di konsol SQL command, setelah proses transaksi selesai untuk commit tinggal ketikkan -> commit;
  • Rollback, memberi tanda bahwa transaksi gagal. Semua update harus di-undo. Pada implementasinya, contohnya di konsol SQL command, setelah proses transaksi selesai untuk membatalkan transaksi tadi tinggal ketikkan -> rollback.
Untuk lojik recovery atau system recovery database dilakukan ketika terjadi kegagalan media, kegagalan system atau kesalahan pada transaksi. Sistem recovery menggunakan fungsi rollback dan checkpoint. Checkpoint adalah interval tertentu pada perjalanan transaksi basis data yang menyimpan keadaan basis data saat itu. Checkpoint dapat dilakukan untuk me-recovery database secara backward (undo) maupun forward (redo).

Sedangkan concurrency adalah sebuah mekanisme pada system basis data yang mengijinkan banyak transaksi pada saat bersamaan untuk mengakses data yang sama tanpa adanya gangguan. Pada umumnya terdapat 3 masalah utama pada concurrency :

  • Lost update problem, ketika dua user mengupdate dua buah data yang sama
  • Contoh :



Dari contoh diatas, maka transaksi A tidak akan dianggap dan data update pada transaksi A akan di overwrite oleh transaksi B Ini akan menimbulkan lost update problem pada transaksi A.

  • Uncommited dependency problem, ketika user yang satu me-retrieve data dan user yang lain me-rollback data tersebut
  • Contoh :

Dari contoh diatas, maka transaksi A akan menerima data yang salah karena pada transaksi saat di update terjadi kesalahan kemudian di rollback.

  • Inconsistent analysis problem, ketika user yang satu meretrieve data dan user yang lain mengupdate data tersebut
  • Contoh :



Dari contoh diatas, maka transaksi A akan menghasilkan data yang salah dan tidak sesuai database karena saat analisis di transaksi A terjadi update data pada salah satu datanya.

Untuk menangani masalah-masalah tersebut, dilakukan proses locking, jika sebuah transaksi ingin record/resource tidak berubah dalam waktu tertentu maka dia bisa meminta lock. Ada dua jenis lock yaitu :

  • Exclusive Lock (Xlock) -> write lock 
  • Shared Lock (Slock) -> read lock 

referensi : https://simbuda.wordpress.com

Integritas Data

          Integritas data artinya akurasi dan kebenaran data. Integritas data dalam sebuah sistem basis data harus dijaga untuk menjaga kebenaran data yang disimpan. Ada beberapa cara dan tujuan dalam menjaga integritas data, diantaranya :

  • Memasukkan aturan bisnis di dalam database 
  • Menjaga agar data yang tidak valid tidak masuk ke database 
  • Menjaga konsistensi data pada relasi keterkaitan antar tabel
Mengapa harus menangani integritas data pada level database programming ? Karena :
  • Menangani integritas data pada level database lebih murah dan mudah dibandingkan dengan menanganinya di level aplikasi 
  • Bugs akibat data yang tidak valid pada database tidak mudah ditemukan dan dapat muncul di kemudian hari 
  • Ketahanan database akan lebih kuat untuk jangka panjang jika ditangani dengan benar
Berikut ini adalah jenis-jenis integritas data yang disertai dengan contoh kasusnya :
  • Create Domain, yaitu membuat tipe data baru. Fungsi ini biasa digunakan untuk menangani data yang membutuhkan aturan bisnis sendiri,

    Contohnya : membuat tipe data “gender” untuk yang isinya hanya boleh berisi pria atau wanita ->
    Maka sintaksnya dalam SQL adalah :
    create domain gender char(2) constraint gender_domain check ( value in(‘pria’,’wanita’));

  • Not NULL, yaitu menjaga agar suatu data tidak kosong dengan kata lain harus ada value-nya.

    Contohnya nama matakuliah pada tabel mata kuliah tidak boleh kosong.
    Maka sintaksnya dalam pl / sql :
    nama_matkul varchar2(15),
    constraint nn_ matkul not null (nama_matkul)

  • Unique, yaitu membuat agar suatu data tidak memiliki nilai yang sama dengan recordlainnya dalam tabel yang sama.

    Contohnya email pada tabel akun_facebook hanya boleh satu email untuk satu akun.
    Sintaksnya :
    email varchar2(15),
    constraint u_mail unique (email)

  • Primary key, merupakan gabungan antara not null dan unique.

    Misalnya NIM pada tabel mahasiswa.
    nim char(7) not null,
    constraint pk_ nim primary key (nim)
  • Check, memeriksa data dengan aturan bisnisinya sendiri tanpa membuat tipe data baru.

    Contohnya sebelum memasukkan nilai ujian pada tabel nilai, data diperiksa terlebih dahulu. Data tidak boleh masuk jika bernilai negatif.
    nilai number,
    constraint chk_nilai check (nilai > 0)

  • 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 :
  1. Delete cascade, hapus record pada kedua tabel yang bersangkutan 
  2. Delete set null, hapus record di tabel asal dan value record pada tabel yang mengacu di jadikan NULL 
  3. Update cascade, perbarui isi record pada kedua tabel nim char(7), constraint fk_nim foreign key (nim) references mahasiswa (nim) on delete cascade / on delete set null / on update cascade




referensi : https://simbuda.wordpress.com/

Apa sih XML Itu ?

        XML kependekan dari eXtensible Markup Language, dikembangkan mulai tahun 1996 dan mendapatkan pengakuan dari W3C pada bulan Februari 1998. Teknologi yang digunakan pada XML sebenarnya bukan teknologi baru, tapi merupakan turunan dari SGML yang telah dikembangkan pada awal 80-an dan telah banyak digunakan pada dokumentasi teknis proyek-proyek berskala besar. Ketika HTML dikembangkan pada tahun 1990, para penggagas XML mengadopsi bagian paling penting pada SGML dan dengan berpedoman pada pengembangan HTML menghasilkan markup language yang tidak kalah hebatnya dengan SGML. Seperti halnya HTML, XML juga menggunakan elemen yang ditandai dengan tag pembuka (diawali dengan ‘<’ dan diakhiri dengan ‘>’), tag penutup(diawali dengan ‘’) dan atribut elemen(parameter yang dinyatakan dalam tag pembuka misal
). Hanya bedanya, HTML medefinisikan dari awal tag dan atribut yang dipakai didalamnya, sedangkan pada XML kita bisa menggunakan tag dan atribut sesuai kehendak kita. Untuk lebih jelasnya lihat contah dibawah: MIS Manager HRD Manager Bagian rekrut Computer Suport team Permohonan Tenaga kerja baru Mohon diberikan tenaga kerja baru untuk mengisi lowongan di Departemen MIS pada contoh diatas , ,dan bukanlah tag standard yang telah di tetapkan dalam XML. Tag-tag itu kita buat sendiri sesuai keinginan kita. Sampai di sini XML tidak melakukan apapun. Yang ada hanyalah informasi yang di kemas dengan tag-tag XML. Kita harus membuat software lagi untuk untuk mengirim, menerima atau menampilkan informasi di dalamnya.

Kenapa Harus Menggunakan XML?


        XML untuk saat ini bukan merupakan pengganti HTML. Masing-masing dikembangkan untuk tujuan yang berbeda. Kalau HTML digunakan untuk menampilkan informasi dan berfokus pada bagaimana informasi terlihat, XML mendeskripsikan susunan informasi dan berfokus pada informasi itu sendiri. XML terutama dibutuhkan untuk menyusun dan menyajikan informasi dengan format yang tidak mengandung format standard layaknya heading, paragraph, table dan lain sebagainya. Sebagai contoh apa bila kita ingin menyimpan dan menyajikan informasi notasi musik pada lagu “Indonesia raya”, kita bisa menyimpannya dengan xml seperti contoh dibawah ini.

 



Kemudian dengan bantuan software lain misalnya MIDI generator kita bisa mendengarkan musiknya atau kita juga bisa membuat software sendiri yang menampilkan informasi ini dalam bentuk not balok.Sama dengan HTML, File XML berbentuk teks sehingga bila diperlukan kita bisa membacanya tanpa memerlukan bantuan software khusus. Hal ini memudahkan pengembang aplikasi yang menggunakan XML untuk mendebug programnya. XML lebih fleksible dibanding HTML dalam hal kemampuannya menyimpan informasi dan data. Pada XML kita bisa menyimpan data baik dalam atribut maupun sebagai isi elemen yang diletakkan diantara tag pembuka dan tag penutup. Kelebihan lain yang dimiliki XML adalah bahwa informasi bisa di pertukarkan dari satu system ke system lain yang berbeda platform. Misalnya dari Windows ke Unix, atau dari PC ke Machintosh bahkan dari internet ke handphone dengan teknologi WAP.

Bagian-Bagian dari Dokumen XML

         Sebuah dokumen XML terdiri dari bagian bagian yang disebut dengan node. Node-node itu adalah:
  • Root node yaitu node yang melingkupi keseluruhan dokumen. Dalam satu dokumen XML hanya ada satu root node. Node-node yang lainnya berada di dalam root node.
  • Element node yaitu bagian dari dokumen XML yang ditandai dengan tag pembuka dan tag penutup, atau bisa juga sebuah tag tunggal elemen kosong seperti . Root node biasa juga disebut root element
  • Attribute note termasuk nama dan nilai atribut ditulis pada tag awal sebuah elemen atau pada tag tunggal.
  • Text node, adalah text yang merupakan isi dari sebuah elemen, ditulis diantara tag pembuka dan tag penutup 
  • Comment node adalah baris yang tidak dieksekusi oleh parser 
  • Processing Instruction node, adalah perintah pengolahan dalam dokumen XML. Node ini ditandai awali dengan karakter . Tapi perlu diingat bahwa header standard XML bukanlah processing instruction node. Header standard bukanlah bagian dari hirarki pohon dokumen XML.
  • NameSpace Node, node ini mewakili deklarasi namespace 


sumber : file:///C:/Users/lenovo/Downloads/pengantar%20xml.pdf

BASIS DATA & SISTEM BASIS DATA



            Basis data adalah basis data terdiri dari 2 (dua) kata, yaitu kata Basis dan Data. Basis bisa di artikan sebagai markas ataupun gudang, tempat berkumpul. Sedangkan data yaitu kumpulan fakta dunia nyata yang mewakili suatu objek, seperti manusia, barang, dan lain-lain yang direkam ke dalam bentuk angka, bentuk huruf, simbol, teks, bunyi, gambar atau juga kombinasinya. Jadi pengertian basis data adalah kumpulan terorganisasi dari data – data yang saling berhubungan sedemikian rupa sehingga dapat mudah disimpan, dimanipulasi, serta dipanggil oleh penggunanya. Definisi Basis data juga dapat diartikan sebagai kumpulan data yang terdiri dari satu atau lebih tabel yang terintegrasi satu sama lain, dimana setiap user diberi wewenang untuk dapat mengakses ( seperti mengubah,menghapus dll.) data dalam tabel-tabel tersebut.


Tujuan Basis data sendiri adalah sebagai berikut ini:
  • Kecepatan serta kemudahan dalam menyimpan, memanipulasi atau juga menampilkan kembali data tersebut. 
  • Efisiensinya ruang penyimpanan, karena dengan basis data, redudansi data akan bisa dihindari. 
  • Keakuratan (Accuracy) data. 
  • Ketersediaan (Availability) data. 
  • Kelengkapan (Completeness) data, Bisa 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 beserta objek-objek yang ada didalamnya serta menentukan jenis -jenis operasi apa saja yang boleh dilakukannya. 
  • Kebersamaan Pemakai (Sharability), Pemakai basis data bisa lebih dari satu orang, tetapi tetap menjaga atau menghindari masalah baru seperti: inkonsistensi data (karana data yang sama diubah oleh banyak pemakai pada saat yang bersamaan) dan juga kondisi deadlock (karena ada banyak pemakai yang saling menunggu untuk menggunakan data tersebut.
Sedangkan pengertian sistem basis data adalah sistem yang terdiri dari koleksi data atau kumpulan data yang saling berhubungan dan program-program untuk mengakses data tersebut. Komponen Utama Sistem Basis Data :
  • Perangkat Keras (Hardware) 
  • Sistem Operasi (Operating Sistem) 
  • Basis data (Database) 
  • Sistem Pengelola Basis Data (Database Management Sistem atau disingkat DBMS) 
  • Yaitu pengelola basis data secara fisik tidak dilakukan oleh pemakai secara langsung, akan tetapi ditangani oleh sebuah perangkat lunak yang khusus. Perangkat Lunak inilah yang disebut DBMS (Database Management Sistem) yang akan menentukan bagaimana data diorganisasi, disimpan, diubah serta diambil kembali. Perangkat Lunak ini juga yang menerapkan mekanisme pengamanan data, pemakaian data secara bersama-sama, konsistensi data dan sebagainya. 
  • Pemakai (User). 
  • Aplikasi atau Perangkat Lunak yang lainnya. 
  • Tujuan Utama Sistem Basis Data sendiri adalah : 
  • Menunjukkan suatu lingkungan yang tepat dan efisien didalam melakukan pengambilan (retrieving) dan penyimpanan (storing) informasi basis data, serta menyediakan antarmuka yang lebih ramah kepada user dalam melihat data.
Kegunaan atau Fungsi Sistem Basis Data, mengatasi masalah-masalah pemrosesan data yang sering ditemui dengan menggunakan metode konvensional, permasalah yang diatasi diantaranya:
  • Redudansi data dan juga inkonsistensi data. 
  • Kesuliatan dalam pengaksesan data. 
  • Data Isolation. 
  • Konkurensi pengaksesan. 
  • Masalah keamanan. 
  • Masalah Integritas.
Pemakai sistem basis data diantaranya:
  • Programmer Aplikasi yaitu orang atau pemakai yang berinteraksi dengan basis data melalui Data Manipulation Language (DML), 
  • User Mahir (Casual User) yaitu pemakai yang berinteraksi dengan sistem tanpa menulis modul program. Mereka menyatakan query untuk mengakses data dengan bahasa query yang telah disediakan oleh suatu DBMS. 
  • User Umum (End User/ Naïve User) yaitu Pemakai yang berinteraksi dengan sistem basis data melalui pemanggilan satu program aplikasi permanen (executable program) yang telah disediakan sebelumnya. 
  • User Khusus (Specialized User) yaitu Pemakai yang menulis aplikasi basis data non konvensional, tetapi untuk keperluan-keperluan khusus.



referensi : http://www.pengertianku.net/2014/06/pengertian-basis-data-dan-sistem-basis.html