Sabtu, 18 Mei 2013


Pengenalan Sistem Basis Data
            Sebelum berbicara terlalu jauh, terlebih dahulu mari kita kenali apa itu Sistem Basis  Data yang dalam pembahasan ini akan sering kita sebut Sisbasdat. Jika kita artikan dari setiap katanya, sistem berarti satu kesatuan yang saling terhubung untuk mencapai suatu tujuan. Basis berarti tempat atau ruangan. Dan terakhir data berarti representasi fakta dunia nyata (keterangan yang menggambarkan kejadian atau fakta yang dapat berupa lambang). Dari pengertian singkat tersebut, dapat kita simpulkan Sistem Basis Data adalah suatu sistem yang terdiri dari kumpulan file-file yang saling berhubungan dan disimpan padga suatu tempat. Adapun definisi Sistem Basis Data menurut Fathansyah merupakan system yang terdiri atas kumpulan tabel yang saling berhubungan (dalam sebuah basis data di sebuah system komputer) dan sekumpulan program (yang biasa disebut DBMS/Data Base Management System) yang memungkinkan beberapa pemakai dan/atau program lain untuk mengakses dan memanipulasi tabel-tabel data tersebut. Oke, berikut ada 6 pokok bahasan yang akan dibahas pada pembahasan Sisbasdat kali ini:
1.      Integritas Data
Integritas data adalah konsistensi dan kebenaran data yang disimpan. Setiap data, tentu memerlukan keaman.  Dan fungsi dari integritas data ini adalah untuk mewakili kebenaran data itu sendiri. Ada 3 komponen yang dibutuhkan oleh data diantaranya adalah data itu harus konsisten, akurat dan handal. Berikut adalah jenis-jenis integritas data:
Entity Integritas
Merupakan sebuah baris sebagai sebuah entitas yang unik dari suatu tabel. Dalam tabel setiap baris harus mempunyai identitas yang unik yang disebut dengan primary key. Hubungan antara primary key dan foreign key menyatakan apakah sebuah baris table dapat diubah atau di hapus.  Primary key tidak boleh null. Batasan:
o   Primary key
o   Unique key
o   Unique index
o   Identity
Domain Integritas
Merupakan validasi dari masukan untuk sebuah kolom. Kita dapat memaksa domain integritas dengan membatasi tipe (melalui data types), format (melalui  check  constraints  dan  rules),  atau  range  nilai-nilai  yang  mungkin  (melalui Foreign Key Constraints, Check Constraints, Default Definitions dan rules). Batasan dan implementasi:
o    Default
o    Check
o    Foreign Key
o   Tipe data, default, rules
Referential Integritas
Seluruh nilai foreign key harus dipastikan cocok dengan nilai primary key yang dihubungkan. Hal tersebut menyatakan relasi antar tabel bahwa ada hubungan antara foreign key dengan primary key. Batasan dan implementasi :
o   Check
o   Foreign Key
o   Triggers dan Stored Procedure
User Defined Integritas
Mengizinkan kita sebagai pemakai dapat menetapkan batasan dan aturan dari data yang disimpan.
Dalam integritas data ini dikenal dengan yang namanya constraint. Constraint ini merupakan aturan untuk membatasi jenis dari integritas data tersebut. Ada beberapa jenis constraint, diantaranya adalah primary key, foreign key, unique key, not null dan check.

2.      Transaksi
Transaksi  merupakan  suatu  aksi/perbuatan  yang  dilakukan  oleh  program  bertujuan  untuk mengakses atau mengubah data yang terdapat di database. Data yang baik adalah data yang tidak hilang dan tidak rusak. Maka dari itu, transaksi ini harus dilindungi dari kehilangan dan kerusakan data. Setiap instruksi yang dimasukkan harus dijamin dikerjakan semua untuk menjamin konsistensi dari data itu sendiri. Ada 2 operasi penting yang ada dalam transaksi, yaitu:
     o   Commit : ini menandakan bahwa transaksi sudah selesai
     o   Rollback : ini menandakan bahwa transaksi yang dilakukan gagal, dan harus diulang.
Adapun 4 elemen yang harus dimiliki oleh transaksi yang sering disingkat ACID. Acid di sini bukanlah acid dalam dunia kimia yang berarti asam. ACID di sini adalah:
o   A untuk Atomicity: bahwa transaksi haruslah berhasil secara keseluruhan, atau gagal sama sekali.
o   C untuk Consistency: bahwa transaksi harus dapat menjaga konsisten data pada database.
o   I untuk Isolation: bahwa transaksi yang dilakukan secara bersamaan haruslah bisa dimulai dan bisa berakhir.
o   D untuk Durability: bahwa setelah  transaksi  berakhir,  data  yang  berubah  tidak  boleh  kembali  ke  data  awal  walaupun sistem mati.
Hampir semua masalah yang terjadi pada transaksi dapat diatasi dengan commit dan rollback.

3.      Concurrency
Jika kita artikan, concurrency artinya bersamaan. Maksudnya adalah sumber daya yang hanya 1 digunakan oleh banyak pemakai. Kenapa? Karena hal tersebut lebih efisien dan adanya kebutuhan yang sama dari setiap pemakainya. CCM (Concurrency Control Mechanism) berhubungan dengan system. Tujuannya adalah untuk mengatur sistem dan agar transaksi tidak saling mengganggu. Pada concurrency terdapat Lost Update Problem, Uncommitted dependency problem dan Incosistent analysis problem.
Dalam transaksi database, ada 3 hal yang harus dicegah yaitu:
o   Dirty Read : Transaksi membaca data dari hasil transaksi lainnya yang gagal. Kedua transaksi tersebut berjalan bersamaan.
o    Nonrepeatable Read : Transaksi membaca ulang data yang telah di baca sebelumnya karena data tersebut telah di modifikasi oleh transaksi lainnya.
o     Phantom Read : Transaksi membaca sebuah data yang telah hilang akibat dari transaksi yang lainnya.
Pada pembahasan ini juga kita akan membahas Lock. Apa itu lock? Lock adalah kunci. Ya, benar… Locking di sini maksudnya adalah pemakai tidak dapat merubah dalam waktu tertentu. Ada dua jenis locking, pertama exclusive lock (write lock) dan shared lock (read lock). Dalam locking ini dapat terjadi masalah, yaitu deadlock. Deadlock merupakan dua atau lebih transaksi dalam kondisi yang saling menunggu lock untuk dilepaskan sebelum transaksi dimulai. Deadlock ini dapat ditangani dengan me-rollback dengan paksa salah satu dari transaksi yang sedang dilakukan.

4.      Back End Programming
PL/SQL merupakan singkatan dari Procedural Language extension of SQL. Komponen Utama pada PL/SQL yaitu: Anonymous PL/SQL Block, Strored Subprogram (Stored Procedure, Stored Function) dan Trigger. Pada point ini akan fokus membahas stored procedure atau function dan trigger.
Stored Procedure atau Function
PL/SQL  memiliki  dua  jenis subprogram  yaitu:  procedure  dan  function.  Stored procedure adalah kumpulan perintah SQL yang berisi perintah umum yang berhubungan dengan database pada server. Function adalah jenis PL/SQL yang menghasilkan satu nilai (hubungannya dengan perhitunga, mengecek eksistensi, kevalidan data). Secara  umum  procedure  digunakan  untuk melaksanakan aksi dan function digunakan untuk komputasi suatu nilai. Untuk membuat sebuah stored procedure atau fungsi dalam oracle, caranya adalah create procedure (nama_procudure) atau create function (nama_function). Kelebihan dari stored procedure adalah eksekusinya menjadi cepat.
Perbedaan stored procedure dan function:
1)      Function dapat mengembalikan suatu nilai balikan (return value)
2)      Pada function parameter yang diperbolehkan hanya parameter IN
3)      Function bisa langsung dipanggil dari perintah SELECT SQL
Trigger
Trigger  adalah  blok  PL/SQL  yang  disimpan  dalam  database  dan  akan  diaktivasi  ketika  kita melakukan  statement-statement  SQL  (DELETE,  UPDATE,  dan  INSERT)  pada  sebuah  tabel. Untuk membuat sebuah sebuah trigger dalam oracle, caranya adalah create trigger (nama_trigger). Trigger ini dapat memodifikasi data, modifikasi data yang dilakukan pada tabel yaitu berupa perintah Insert, Update dan Delete.


5.      XML
XML merupakan singkatan dari Extensible Markup Language. Tujuan dari XML ini adalah agar keamanan dari data lebih terjaga. Lalu, apa bedanya XML dan HTML? Berbicara tentang XML, maka kita akan berbicara tentang data. Sedangkan HTML lebih membicarakan tentang tampilan. Beberapa keuntungan menggunakan XML adalah:o   XML ini didukung oleh banyak tools  (RDBMS, bahasa pemrograman).
  •   Platform independen dan language independen, maksudnya data dan dictionary dibawa secara    bersamaan.
  •   Dapat mempresentasikan data yang kompleks.

Namun, dari banyaknya keuntungan, terdapat juga kerugiannya yaitu salah satunya adalah adanya pengulangan tag, karena tag dalam XML dibuat oleh pembuat XML itu sendiri. Dalam XML ada juga yang namanya XML parser. Apa itu parser? Parser di sini adalah suatu program untuk membaca dokumen XML. Ada dua cara yaitu tree based (isi XML dipindahkan ke memori terlebih dahulu) dan event based (isi XML tidak dipindahkan ke memori terlebih dahulu).

6.      Kemanan Basis Data
Sebuah data atau beberapa data yang telah disimpan dalam basis data perlu dilindungi dari akses yang tidak diizinkan, dari perusakan atau pengubahan yang dapat merugikan, serta terjadinya ketidakkonsistenan yang tak sengaja. Pelanggaran yang terjadi dalam pemakaian basis data dikelompokkan ke dalam aksi yang disengaja (berhubungan dengan hal-hal pembacaan, pengubahan dan penghapusan data yang tidak diizinkan) dan aksi tidak sengaja (berhubungan dengan system, user, dsb).
Menurut Fathansyah dalam bukunya yang berjudul Basis Data, Pengamanan Basis Data (Database Secuurity) merupakan aspek dalam system basis data yang mengacu pada aspek-aspek dan upaya-upaya pengamanan dari akses yang berbahaya atau merugikan (sengaja) tersebut. Sedangkan Pemeliharaan Integritas Basis Data (Database Integrity) lebih ditujukan pada aspek-aspek dan upaya-upaya untuk mencegah dan menanggulangi pelanggaran konsistensi data secara tidak sengaja.
Pada keamanan basis data, ada beberapa tingkatan diantaranya:
  •          Fisikal, lokasi dimana terdapat system komputer haruslah aman secara fisik dari serangan perusak
  •     Manusia, wewenang pemakai harus dilakukan dengan hati-hati untuk mengurangi kemungkinan adanya manipulasi oleh pemakai yang berwenang
  •   Sistem Operasi, kelemahan pada SO ini memungkinkan pengaksesan data oleh pihak yang tidak berwenang
  •     Sistem Basis Data, pengaturan hak pemakai yang baik



Sumber:
Basis Data, Fathansyah
Slide Pak Yudi Wibisono
Modul praktikum Simbada