Penjelasan tentang Basis Data, Simbada, Integritas data, Transaksi dan concurrency, Back end program dan XML



      A. Basis Data dan Sistem Basis Data
Basis data terdiri dari 2 (dua) kata, yaitu kata Basis dan Data. Basis data bisa diartikan 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, symbol, 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 table 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 : 
·         Kecepatan serta kemudahan dalam menyimpan,memanipulasi atau juga menampilkan data tersebut. 
·         Efisiensinya ruang penyimpanan,karena dengan basis data, redudansi data akan bisa dihindari. 
·         Keakuratan data 
·         Ketersediaan data 
·         Kelengkapan data, bisa melakukan perubahan struktur dalam basis data baik dalam penambahan objek ataupun penambahan field-field baru pada tabel. 
·         Keamanan 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 (karena 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 basis data adalah sistem yang terdiri dari koleksi data atau kumpulan data yang saling berhubungan dan program-progrma untuk mengakses data tersebut. Elemen utama sistem basis data: 
·         Basis data itu sendiri yang menjadi inti dari sistem basis data 
·         Perangkat lunak untuk pengelolaan basis data 
·         Perangkat keras sebagai pendukung pengolahan data 
·         Sistem Pengelola Basis Data (Database Management Sistem atau disingkat DBMS) 
·         Pemakai (User) 
·         Metode yang digunakan berpengaruh terhadap tingkat efisien dan efektifnya suatu sistem pengolahan data.

Tujuan utama sistem basis data yaitu menunjukan suatu lingkungan yang tepat dan efisien didalam melakukan pengambilan (retrieving) dan penyimpanan (storing) informasi basis data, serta menyediakan antarmuka yanglebih ramah kepada user dalam melihat data.
Keuntungan Sistem Basis data : 
·         Tidak ada duplikasi data sehingga konsitensi data mudah dijaga. 
·         Data terintegrasi 
·         Data tidak tergantung pada program aplikasi,sehingga pemeliharan program aplikasi mudah dilakukan. 
·         Data dapat dipakai secara bersama oleh beberapa pemakai. 
·         Dapat diterapkan standarisasi 
·         Data dapat dengan mudah dikelola dan efektif 
·         Informasi selalu up to date

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. 
·         Kesulitan 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 melalu 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 berinterakasi dengan sistem basis data melalui pemanggilan satu program aplikasi permanen (executable program) yang telah disediakan sebleumnya. 
·         User khusus (Specialized User) yaitu pemakai yang menulis aplikasi basis data non konvensional tetapi untuk keperluan-keperluan khusus.

       B.  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
      
       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 : 
         ·            Delete cascade, hapus record pada kedua tabel 
         ·            Delete set null, hapus record di tabel asal dan tabel yang mengacu di jadikan NULL 
          ·            Update cascade, perbarui isi record pada kedua tabel

      C. Transaksi dan Concurrency
Transaksi berarti suatu aksi atau perbuatan yang dilakukan oleh program bertujuan untuk mengakses atau mengubah data yang terdapat di database. Transaksi ini hanya mengenal dua hasil yaitu berhasil keseluruhan atau gagal keseluruhan. Tujuan dari Transaksi ini adalah untuk melindungi dari kehilangan data atau kerusakan data.

Dalam transaksi terdapat dua operasi penting yang berfungsi untuk menjaga dan ketahanan data yaitu commit dan rollback. Commit adalah member tanda bahwa transaksi telah berhasil atau selesai. Sedangkan rollback adalah untuk menggunakan tanda bahwa transaksi GAGAL. Semua update harus di ulang atau undo. Ada empat elemen dalam transaksi itu yang  biasa disingkat dengan ACID yaitu : 
-          Atomicity, Transaksi haruslah berhasil secara keseluruhan atau gagal sama sekali 
-          Consistency, transaksi mempertahankan konsitensi database 
-          Isolation, transaksi yang dilakukan secara bersamaan haruslaj bisa dimulai dan bisa berakhir 
-          Durability, setelah transaksi berakhir, data yang berubah tidak boleh kembali ke data awal walaupun sistem mati.

Di dalam transaksi terdapat savepoint seperti checkpoint. Artinya sebuah titik aman dimana kita telah menyelesaikan satu atau beberapa transaksi. Fungsi dari savepoint agar pada saat kita ingin rollback atau ada transaksi yang gagal,transaksi tidak berjalan dari awal kembali tetapi dari savepoint yang telah kita buat. 

Concurrency adalah DBMS mengijinkan banyak transaksi pada saat bersamaan untuk mengakses data yang sama. Concurrency Control Mechanism (CCM) dibutuhkan agar transaksi tidak saling “mengganggu”. Terdapat 3 masalah concurrency yaitu : 
·         Lost Update problem, sumber daya tidak boleh lebih dari satu 
·         Uncommitted dependency problem, proses sudah berjalan sudah commit 
·         Incosistent analysis problem, dalam data perjalanan atau proses data jangan dulu di commit barangkali adanya perubahan data.

Untuk menangani masalah tersebut, dilakukan proses locking jika sebuah transaksi ingin record/resource tidak berubah dalam waktu tertentu maka dia meminta lock. Ada dua jenis lock yaitu: 
·         Exclusive Lock (Xlock) a write lock, Transaksi tersebut dapat melakukan perubahan dan pembacaan terhadap dat tersebut. Jika transaksi A memegang Xlock pada sebuah record, maka permintaan lock (X,S) pada reecord yang sama harus diabaikan. Transaksi yang ingin mengupdate harus mempunyai Xlock 
·         Shared lock (Slock) a read lock, transaksi tersebut hanya bisa melakukan pembacaan> Jika transaksi A memegang Slock pada record R maka Permintaan Xlock transaksi lain pada R ditolak sedangkan permintaan Slock transaksi lain pada R diterima 

Deadlock 
Deadlok adalah Situasi dimana dua atau lebih transaksi dalam kondisi wait-state, satu sama lain menunggu lock dilepaskan sebelum dapat memulai. Salah satu pecahkan deadlock adalah salah satu harus dipaksa rollback. Penanganan deadlock : 
-          Deteksi dan pecahkan deadlock 
-          Deteksi deadlock 
-          Pecahkan deadlock 
-          Ostrich algoritma 

Level Isolasi Transaksi 
Isolasi Transaksi merupakan tingkatan pengaruh antar transaksi yang dipengaruhi karena kinerja RDMS. Didalam transaksi terdapat 3 hal yang harus dicegah, antara lain adalah : 
1.      Dirty Read, Transaksi membaca data dari hasil transaksi lainnya yang gagal. Kedua transaksi tersebut berjalan bersamaan. 
2.      Nonrepeatable Read, Transaksi membaca ulang data yang telah di baca sebelumnya karena data tersebut telah dimodifikasi oleh transaksi lainnya. 
3.      Phantom Read, Transaksi membaca sebuah data yang telah hilang akibat dari transaksi yang lainnya.

Untuk mencegah terjadinya 3 hal yang diatas, maka pada Oracle terdapat 2 level isolasi yang dapat diimplementasika, antara lain : 
1.      Read Commit, Transaksi hanya dapat melihat perubahan data setelah transaksi lain telah commit  pada data tersebut. 
2.      Serializable, level isolasi yang menyediakan isolasi transaksi yang paling ketat. Level ini mengemulasikan  eksekusi transaksi secara serial, menjadikan transaksi dieksekusi satu setelah yang lainnya,seperti secara  serial, bukan secara bersamaan (pararel).


     D. BACKEND PROGRAMMING 
     Mungkin kalian bingung, apa yang dimaksud dengan backend programming? Dari katanya saja sudah ketahuan, backend itu dibelakang dan programming itu pemogramman. Jadi, suatu program yang bekerja dibelakang atau yang tidak dilihat oleh user. Contohnya dalam sistem basis data itu seperti PL/SQL. PL/SQL itu 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. 

      Trigger adalah bentuk khusus dari stored procedure. Stored procedure yang dipanggil secara khusus pada event tertentu:
       –  before/after  INSERT
       –  before/after  DELETE
       –  before/after  UPDATE
      Manfaat trigger : 
      •  Membuat integrity constraint yang kompleks. 
      •  Mencatat aktivitas suatu tabel (logging). 
      •  Sinkronisasi 
      
      CURSOR
 Cursor itu sama seperti select pada SQL. Cursor mempunyai 3 macam, yaitu antara lain : 
·         Cursor yang bertipe data refcursor dan dapat digunakan untuk semua query 
·         Cursor yang memiliki query 
·         Cursor yang memilik query dan sekaligus berparameter.
      
       E. XML(EXtensible Markup Languange) 
     XML itu apa si? Apa bedanya dengan HTML? Yap, disini kita akan bahas apa itu XML. XML (EXtensible Markup Language) adalah Markup language yang digunakan untuk dokumen yang  mengandung informasi terstruktur ditujukan untuk pertukaran data via web. Salah satu alasan kita menggunakan XML adalah karena XML berdiri sendiri tidak tergantung pada platfrom karena  XML mempunyai bahasa sendiri. XML diaplikasikan sebagai pertukaraan data, mendeskripsikan data dan database.
      
      XML itu tidak sama dengan HTML, walaupun sama-sama markup language namun XML dan HTML mempunyai kegunaan yang berbeda. Kalo HTML digunakan hanya untuk menampilkan tampilan saja yang aturannya sudah ditentukan, sedangkan XML digunakan untuk pertukaran data via web dan anturannya ditentukan sendiri. 
      Keuntungan dan Kerugian 
      XML mempunyai keuntungan dan kerugiannya. Dibawah ini adalah keuntungannya, antara lain: 
       1.      Self Documenting, maksudnya dengan melihat tagnya, kita dapat diketahui isi dokumen 
       2.      Dapat dibaca software dan manusia 
       3.      Fleksible 
       4.      Dapat dikembangkan tanpa melanggar format lama 
       5.      Dapat mempresentasikan data yang komplek 
       6.      Indpendent terhadap bahasa pemograman dan OS
     Salah satu kerugiannya adalah terjadinya pengulangan tag yang mengakibatkan tidak efisien dan ukurannya membengkak. 
     
     Aturan 
     XML tidak dikerjakan sesuka hati tanpa sebuah aturan, XML juga mempunyai aturan. Aturan-aturan XML adalah sebagai berikut : 
      1.      Setiap tagnya harus ada penutupnya 
      2.      Penamaan tagnya itu case sensitive, tidak diawali dengan angka, tidak mengenal spasi dan hindari ‘-’ dan ‘.’ 
      3.      Urutan hirarkinya harus benar 
      4.      Setiap XML harus mengandung root (akar) 
      5.      Setiap atribut harus dalam tanda petik








Referensi :
-          Perkuliahan sistem basis data UPI Bapak Budi Laksono Putro, M.T.
-          Diktat Sistem Basis Data Bapak Yudi Wibisono


Komentar

Postingan Populer