Saturday, 18 May 2013


INTEGRITAS DATA
            Ada dua hal penting yang harus diketahui agar data tetap akurat, konsisten dan handal.  Untuk mewujudkan  hal  itu  diperlukan  suatu  data  Integrity.  Sebagai  contoh apabila  sebuah  tabel Mahasiswa,  pada  field  /  kolom  nim  mempunyai  isi  data “01031043”, maka database tidak memperbolehkan record pada tabel Mahasiswa lain mempunyai nim yang sama.

Jenis-Jenis Integritas Data dapat dikelompokkan sebagai berikut :
1.      Entity Integritas
2.      Domain Integritas
3.      Refrential Integritas
4.      User Defined Integritas

4.1. Entity Integritas
Entity Integritas mendefinisikan sebuah baris sebagai sebuah entitas yang unik untuk suatu tabel. Entity integritas memaksa integritas dari column atau primary key dari suatu  tabel  (melalui  index,  unique,  constraints, primary key).  Primary  key  tidak  boleh null.  

4.2. Domain Integritas
Domain Integritas merupakan validasi dari masukan untuk sebuah kolom. Anda 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).

4.3.  Refrential Integritas
Refrential  Integritas  memastikan  bahwa  seluruh  nilai  dari  foreign  key  cocok dengan nilai primary key yang dihubungkan.

4.4.  User Defined Integritas
            User–defined integritas mengizinkan Anda untuk menentukan spesific business rules sendiri yang tidak sama pada kategori integrity yang lain.

4.5.  Membuat Constraint 
            Constraint  merupakan  suatu  aturan  yang  membatasi  jenis  data  yang  diijinkan untuk dimasukkan ke dalam tabel. Constraint dapat dibuat baik pada saat pembuatan table atau setelah tabel dibuat. Ketika constraint dibuat setelah pembuatan tabel, maka constraint tersebut  hanya  mengecek  data  yang  ada  (yang  telah  dimasukkan  dalam tabel). Jika ada beberapa pelanggaran maka constraint akan ditolak.  





4.5.1.  Tipe-Tipe Constraint
Microsoft SQL Sever menyediakan beberapa tipe Constraint, yaitu :
·         PRIMARY KEY Constraint, untuk menspesifikasikan kolom dalam tabel. Tidak boleh kosong, dan harus unik,  untuk menghubungkan satu tabel dengan tabel lain.
·         FOREIGN  KEY  Constraint,  digunakan  untuk  menspesifikasikan  kolom foreing  key pada suatu tabel. Foreing key digunakan untuk menghubungkan dua tabel. Kolom foreing key adalah kolom atau kombinasi beberapa kolom dalam suatu tabel yang selalu merujuk pada kolom primary keypada suatu tabel.
·         UNIQUE  Constraint,    digunakan  untuk  menjamin    bahwa  data  pada  suatu  kolom atau beberapa kolom tidak diijinkan sama.
·         CHECK Constraint, digunakan untuk membatasi suatu nilai pada kolom dengan nilai tertentuyang diijinkan masuk.
·         DEFAULT Constraint, merupakan atribut opsionalyang digunakan untuk memberikan suatu  nilai  tertentupada  suatu  kolom  jika  kolom  tersebut  tidak  dimasukkan  suatu data.
·         Not Null, digunakan untuk menjamin tidak ada nilai null ( kosong) yang muncul pada suatu kolom tertentu sehingga bila tidak mengisikan nilai pada kolom tersebut maka akan muncul error.

4.5.2.  PRIMARY KEY Constraint
Sebuah constraint (aturan) dapat dibuat bersamaan pada saat pembuatan tabel atau setelah pembuatan tabel. Contoh kita sudah mempunyai Tabel Mahasiswa pada database NilaiMHS  yang  telah  dibentuk  sebelumnya,  tetapi  belum  mempunyai  kunci primer. Menambahkan kunci primer dapat dengan mudah melalui Enterprise Manager pada table desaigner.



Pengertian Transaksi
Transaksi adalah satu atau beberapa aksi program aplikasi yang mengakses/mengubah isi basis data.
Transaksi merupakan bagian dari pengeksekusian sebuah program yang melakukan pengaksesan basis data dan bahkan juga melakukan serangkaian perubahan data.  DBMS yang kita gunakan harus menjamin bahwa setiap transaksi harus dapat dikerjakan secara utuh atau tidak sama sekali.  Tidak boleh ada transaksi yang hanya dikerjakan sebagian, karena dapat menyebabkan inkonsistensi basis data.  Untuk itu transaksi selalu merubah basis data dari satu kondisi konsisten ke kondisi konsisten lain.

Sebuah transaksi berpeluang untuk ‘mengganggu’ integritas basis data yang dapat membuat kondisi/hubungan antar data tidak seperti seharusnya.  Untuk menjamin agar integritas dapat tetap terpelihara maka setiap transaksi harus memiliki sifat-sifat:

1.      Atomik, dimana semua operasi dalam transaksi dapat dikerjakan seluruhnya atau tidak sama sekali.
2.      Konsisten, dimana eksekusi transaksi secara tunggal harus dapat menjamin data tetap konsisten setelah transaksi berakhir.
3.      Terisolasi, jika pada sebuah sistem basis data terdapat sejumlah transaksi yang dilaksanakan secara bersamaan, maka semua transaksi yang dilaksanakan pada saat yang bersamaan tersebut harus dapat dimulai dan bisa berakhir.
4.      Bertahan, dimana perubahan data yang terjadi setelah sebuah transaksi berakhir dengan baik, harus dapat bertahan bahkan jika seandainya sistem menjadi mati.


Terhentinya suatu transaksi tidak selalu diakibatkan oleh kegagalan insidental baik dari perangkat keras (crash) ataupun kemacetan sistem operasi (hang).  Tapi lebih sering terjadi karena user sengaja menghentikan transaksi atau karena penghentian transaksi oleh DBMS akibat adanya kondisi tak diinginkan, seperti deadlock atau timeout.

Sebuah transaksi dapat menghasilkan dua kemungkinan:
a.      Jika dilaksanakan lengkap seluruhnya, transaksi tersebut telah di commit dan basis data mencapai keadaan konsisten baru.
b.      Jika transaksi tidak sukses, maka transaksi dibatalkan dan basis data dikembalikan ke keadaan konsisten sebelumnya (rollback).

Transaksi yang sudah di commit tidak dapat dibatalkan lagi.  Jika ada kesalahan, maka harus dilakukan transaksi lain yang membalik dampak transaksi sebelumnya.



Status-status yang dapat dicapai oleh sebuah transaksi sejak mulai dilaksanakan hingga selesai atau batal adalah:

1.      Aktif (Active), yang merupakan status awal (initial state) sebuah transaksi yang menunjukkan transaksi tersebut masih dieksekusi.
2.      Berhasil Sebagian (Partially Committed), yaitu keadaan yang dicapai transaksi tepat pada saat operasi terakhir dalam transaksi selesai dikerjakan.
3.      Gagal (Failed), yang merupakan keadaan dimana sebuah transaksi terhenti pengeksekusiannya sebelum tuntas sama sekali.
4.      Batal (Aborted), yaitu keadaan dimana sebuah transaksi dianggap tidak/belum dikerjakan yang tentu dengan terlebih dahulu diawali dengan mengembalikan semua data yang telah diubah ke nilai-nilai semula. (yang menjadi tanggung jawab DBMS).
5.      Berhasil Sempurna (Committed), keadaan dimana transaksi telah dinyatakan berhasil dikerjakan seluruhnya dan basis data telah merefleksikan perubahan-perubahan yang memang diinginkan transaksi.

Diagram berikut ini menunjukkan aliran dan siklus peralihan status (state) dari sebuah transaksi:

Ketika sebuah transaksi mulai dikerjakan, maka transaksi itu berada dalam status aktif.  Jika terjadi penghentian sebelum operasi berakhir, maka transaksi segera beralih ke status gagal/failed.  Namun, bila keseluruhan transaksi selesai dikerjakan, maka transaksi itu berada pada status berhasil sebagian/partially committed, dimana perubahan-perubahan data masih berada di dalam memori utama yang bersifat volatile/tidak permanen.  Transaksi dalam status ini masih mungkin untuk pindah ke status failed, karena ada pembatalan transaksi baik sengaja maupun tidak.  Jika tidak beralih ke status failed, maka nilai-nilai data yang ada di memori utama akan direkam ke dalam disk yang bersifat permanen.  Begitu proses perekaman selesai, maka transaksi beralih ke status committed.  Sementara itu, transaksi yang berada pada status failed, maka DBMS harus menjalan proses rollback.  Proses tersebut dapat berupa:

  • ·         Mengulangi pelaksanaan transaksi / restart, yang dilakukan pada transaksi yang failed akbiat kemacetan perangkat keras ataupun perangkat lunak dan bukannya penghentian transaksi secara sengaja oleh user.
  • ·         Mematikan transaksi / kill, yang dilakukan untuk transaksi yang dihentikan secara sengaja oleh user atau akibat adanya kesalahan lojik dalam penulisan aplikasi.


Begitu salah satu dari pilihan proses tersebut selesai dilakukan, maka transaksi berpindah ke status batal (aborted).  Status berhasil sempurna/committed maupun batal/aborted merupakan status terminasi, yaitu status akhir dalam pelaksanaan transaksi.




CONCURRENCY
Concurrency dalam basis data artinya adalah satu sumber database dipakai secara bersama – sama. DBMS mengizinkan banyak transaksi pada saat bersamaan untuk mengakses data yang sama, maka dari itu Concurrency Control Mechanism(CCM) dibutuhkan agar transaksi tidak saling mengganggu.
Terdapat 3 masalah pada Concurrency adalah:
1.      Lost Update Problem.
2.      Uncommited Dependency Problem.
3.      Inconsistent Analysis Problem.

BACK END PROGRAMMING
Back end programming ialah salah satu materi yang ada di sistem basis data, dimana dalam materi ini terdapat beberapa subprogram yaitu funcion, prosedur dan trigger. Ketiga subprogram ini dimiliki juga oleh PL/SQL dimana funcion ini bertindak sebagai komputasi nilai, prosedure bertindak sebagai pelaksana aksi dan 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. Contoh dapat dilihat di blog.

XML(EXtensible Markup Language)
XML adalah EXtensible Markup Language, Markup language untuk dokumen yangmengandung informasi terstruktur. Ditujukan untuk pertukaran dokumen via web. Berbentuk file teks Cross platform, indepedenden terhadap software dan hardware.

Keuntungan XML :
Ø    Dapat dikembangkan tanpa melanggar
Ø    Dapat dibaca software dan manusia
Ø    Fleksibel

Kerugian XML :
Ø    Pengulangan tag menjadi tidak efisien, ukuran membengkak

No comments:

Post a Comment