Minggu, 29 November 2015

BASIS DATA vs SISTEM BASIS DATA, INTEGRITAS DATA, TRANSAKSI dan CONCURRENCY, BACK-END PROGRAMMING

BASIS DATA vs SISTEM BASIS DATA
Untuk mengawali artikel ini, alangkah lebih baiknya untuk kita mengetahui terlebih dahulu apa definisi masing-masing dari Basis Data dan Sistem Basis Data itu sendiri.
BASIS DATA
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.

Gambar Lemari Arsip dan Basis Data

Tujuan Basis Data sendiri adalah sebagai berikut :

  • Kecepatan & kemudahan (speed)

Dengan memanfaatkan basis data, memungkinkan kita untuk dapat menyimpan data atau melakukan perubahan/ manipulasi terhadap data atau menampilkan kembali data tersebut secara lebih cepat dan mudah.

  • Efisiensi ruang penyimpanan (space)

Karena keterkaitan yang erat antara kelompok data dalam sebuah basis data, maka redundansi (pengulangan) pasti akan selalu ada, sehingga akan memperbesar ruang penyimpanan. Dengan basis data, efisiensi ruang penyimpanan dapat dilakukan dengan menerapkan sejumlah pengkodean, atau dengan membuat relasi-relasi antar kelompok data yang saling berhubungan.

  • Keakuratan (accuracy)

Pengkodean atau pembentukan relasi antar data bersama dengan penerapan aturan/batasan (constraint), domain data, keunikan data, dsb, yang secara ketat dapat diterapkan dalam sebuah basis data, sangat berguna untuk menekan ketidak akuratan penyimpanan data.

  • Ketersediaan (availability)

Dengan pemanfaatan jaringan komputer, maka data yang berada di suatu lokasi/cabang dapat juga diakses (tersedia/available) bagi lokasi/cabang lain.

  • Kelengkapan (completeness)

Kelengkapan data yang disimpan dalam sebuah database bersifat relatif, bisa jadi saat ini dianggap sudah lengkap, tetapi belum tentu pada suatu saat dianggap lengkap. Untuk mengakomodasi kelengkapan data yang semakin berkembang, maka kita tidak hanya dapat menambah record-record data, tetapi juga da[at melakukan perubahan struktur dalam basis data, baik dalam bentuk penambahan sobjek baru (table) atau dengan penambahan field-field baru pada suatu tabel.

  • Keamanan (security)

Aspek keamanan dapat diterapkan dengan ketat, dengan begitu kita dapat menentukan pemakai basis data serta obyek-obyek didalamnya ,serta jenis-jenis operasi apa saja yang boleh dilakukannya.

  • Kebersamaan pemakaian (sharability)

Basis data yang dikelola dengan aplikasi multi user dapat memenuhi kebutuhan ini.

SISTEM BASIS DATA
Definisi Sistem Basis Data sendiri yaitu Sistem adalah sebuah tatanan (keterpaduan) yang terdiri atas sejumlah komponen fungsional (dengan satuan fungsi dan tugas khusus) yang saling berhubungan dan secara bersama-sama bertujuan untuk memenuhi suatu proses tertentu.
Secara umum sebuah Sistem Basis Data merupakan sistem yang terdiri atas kumpulan tabel data yang saling berhubungan (dalam sebuah basis data di sebuah sistem 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.
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.
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.
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.
INTEGRITAS DATA
Integritas data menjamin kualitas data dalam database, mencakup :
1. menjamin keutuhan data
2. menjamin agar perubahan terhadap basis data tidak menghasilkan inkonsistensi data
3. menjamin agar basis data tidak mengalami kerusakan secara tidak sengaja
Dalam basis data dikenal istilah aturan integritas (integrity constraint) yang mengatur definisi dan modifikasi terhadap basis data sehingga menjamin integritas basis data tersebut.
Jenis aturan integritas :
1. Entity integrity constraints (aturan integritas entitas)
2. Domain constraints (aturan domain)
3. Referential integrity constraints (aturan integritas referensial)
4. Attribut-Based Constraints (aturan berbasis atribut) dan  Tuple-Based Constraints (aturan berbasis tupel)
5. Assertions (pernyataan)
6. Trigger (pemicu)
Entity Integrity Constraint (aturan integritas entitas)
Aturan ini diterapkan dengan cara mendeklarasikan kunci primer (primary key) untuk setiap entitas agar dijamin tidak ada baris-baris dalam tabel relasi yang memiliki nilai yang sama (duplikat baris).
Contoh :
    CREATE TABLE mahasiswa
(Nim CHAR(10) PRIMARY KEY,
Nama   VARCHAR(25),
Alamat VARCHAR(35));
Domain Constraints (aturan domain) :
  Domain merupakan kumpulan tipe data dan jangkauan nilai yang diperbolehkan pada atribut suatu relasi.
  Definisi domain dari suatu atribut mencakup : tipe data, panjang, format, jangkauan, nilai yang memungkinkan, keunikan dan kemungkinan data null.
Tujuan definisi domain :
  Sistem dapat mengecek keakuratan data yang dimasukkan ke database
  Menguji queri apakah perbandingan dalam kriteria yang dilakukan sudah sesuai.
Contoh :




Nama Atribut : No_Barang
Deskripsi : Nomor barang yang ada di toko
Tipe Data : Text
Panjang Data : 5
Format : XX999
Jangkauan : 2 digit pertama merupakan kode jenis barang (EL, RT, AT)
Keunikan : Harus unik
Dukungan Null: Tidak boleh null
CREATE TABLE barang
(No_barang CHAR(5) NOT NULL,
Nm_barang VARCHAR(25),
No_pemasok CHAR(2),
PRIMARY KEY (No_barang), CHECK(Left,2) IN (“AT”, “RT”, “EL”));
Referential Integrity Constraints (aturan integritas referential)
  Merupakan aturan yang mengatur kebenaran referensi dari satu obyek ke obyek lain dalam database.
  Menjaga integritas nilai suatu atribut dalam sebuah table/relasi yang mengacu atau merujuk (me-“refer”) pada nilai sebuah atribut di table/relasi lain
Contoh :
Tabel barang

No_barang
Nm_barang
No_pemasok
RT100
Odol Putih
10
RT110
Sabun Bebek
10
MK120
Roti Otreo
20
MK130
Roti Talo
30

Tabel pemasok

No_pemasok
Nm_pemasok
10
Godilever
20
Strawberry
30
Padi

Dalam tabel Barang, field No_pemasok adalah kunci tamu. Tabel Barang adalah tabel yang merujuk dan tabel Pemasok adalah tabel yang dirujuk. Jadi setiap nilai dalam kolom No_pemasok pada tabel Barang harus memiliki nilai yang TEPAT SAMA dalam kolom No_pemasok pada tabel Pemasok.
Dengan demikian tidak boleh  ada suatu nilai No_pemasok dalam tabel Barang yang nilainya tidak ditemukan dalam tabel Pemasok.
Cara mengimplementasikan referential integrity :
1. Dari program aplikasi  diterapkan dalam baris-baris program
Contoh :
Rs.FindFirst(“No_barang”,”TblBarang”,”No_barang=’” & txtNoBrg & “’”)
IF Not rs.EOF then MsgBox “Data tidak ditemukan !!”

2. Saat membuat table
           CREATE TABLE Pemasok
(No_pemasok CHAR(2) NOT NULL,
Nm_pemasok VARCHAR(25),
PRIMARY KEY(No_pemasok));

       CREATE TABLE Barang
No_barang CHAR(5) NOT NULL,
Nm_barang VARCHAR(25),
No_pemasok CHAR(2) References Pemasok(No_pemasok),
PRIMARY KEY (No_barang), CHECK(Left,2) IN (“MK”, “RT”, “EL”));
atau
        CREATE TABLE Barang
(No_barang CHAR(5) NOT NULL,
Nm_barang VARCHAR(25),
No_pemasok CHAR(2),
PRIMARY KEY (No_barang),
CHECK(Left,2) IN (“MK”, “RT”, “EL”),
FOREIGN KEY No_pemasok References Pemasok(No_pemasok));
         
Manipulasi data dalam database
  Perubahan yang dilakukan terhadap database dapat menyebabkan pelanggaran terhadap aturan integritas referensial.
  Dalam melakukan operasi INSERT, DELETE dan UPDATE harus didefinisikan aturan yang menjamin bahwa aturan integritas referensial diterapkan. Aturan tersebut adalah :
1. Insertion Rule
  Aturan : Jika dilakukan penyisipan baris terhadap sebuah tabel yang merujuk, maka harus terdapat nilai yang bersesuaian dalam tabel yang dirujuk.
2. Deletion Rule
  Aturan : Jika diberlakukan penghapusan baris terhadap sebuah tabel yang dirujuk dan memiliki nilai yang bersesuaian dengan tabel yang merujuk maka harus ada perlakuan tertentu untuk menjamin integritas tabel database tersebut.
  Tiga perlakuan yang mungkin diterapkan:
1. Restrict. Tidak mengijinkan penghapusan terhadap baris dalam tabel yang dirujuk
2. Nullify. Mengeset nilai yang bersesuaian dari tabel yang merujuk menjadi Null dan kemudian menghapus baris dalam tabel yang dirujuk
3. Cascading deletion. Baris yang bersesuaian dalam tabel yang merujuk secara otomatis akan ikut terhapus.
3. Update Rule
Terdapat 2 hal yang harus diperhatikan :
  Jika nilai yang diupdate adalah kunci tamu pada tabel yang merujuk, maka perlakukan sama seperti insertion rule
  Jika nilai yang diupdate pada table yang dirujuk memiliki nilai yang bersesuaian dengan tabel yang dirujuk maka perlakuan adalah sama seperti pada deletion rule.
TRANSAKSI DAN CONCURRENCY
Traksaksi dan concurrency dalam sistem basis data sangat berkaitan. Keduanya memiliki fungsi-fungsi khusus terhadap data itu sendiri. Berikut dibahas mengenai traksaksi dan concurrency :
A. Definisi TRANSAKSI
Transaksi merupakan aktivitas yang dilakukan oleh suatu program aplikasi yang berfungsi untuk menjaga konsistensi keamanan data. Tujuan dari transaksi yaitu untuk melindungi database dari kehilangan / kerusakan data.
Transaksi memiliki 4 elemen untuk menjaga integritas data. Adapun 4 elemen tersebut :
Atomicity, dimana semua operasi dalam transaksi dapat dikerjakan seluruhnya atau tidaksama sekali.
Consistency,  dimana  eksekusi  transaksi  harus  dapat  menjamin  data  tetap  konsisten setelah transaksi berakhir.
Isolation,  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.
Durability, dimana perubahan data yang terjadi setelah sebuah transaksi berakhir dengan baik, harus dapat bertahan bahkan jika seandainya sistem mati.

Dua Operasi Penting Transaksi :
Commit
Memberi tanda bahwa transaksi telah selesai. Update dibuat permanen (bahkan jika setelah commit terjadi kegagalan system).
Rollback
Memberi tanda bahwa transaksi GAGAL.

SAVE POINT
Save point adalah suatu keadaan atau sebuah titik aman dimana suatu transaksi bias diselesaikan dalam satu atau beberapa transaksi. Fungsi dari save point adalah supaya pada saat kita ingin rollback atau ada transaksi yang gagal, transaksi tidak berjalan dari awal kembali, tetapi dari save poin yang telah kita buat. Untuk membuat sebuah save point, caranya adalah: SAVEPOINT[nama save point]; Setelah dibuat save pointnya kita dapat rollback ke save point tersebut dengan cara: ROLLBACK TO[nama save point];

B. Definisi CONCURRENCY
Concurrency adalah banyaknya transaksi yang dijalankan secara bersamaan dalam satu waktu. DBMS mengijinkan banyak transaksi pada saat bersamaan untuk mengakses data yang sama. Concurrency Control Mechanism (CCM) dibutuhkan agar transaksi tidak saling “menggangu”.
Adapun 3 masalah concurrency adalah :
Lost Update Problem


Uncommitted Dependency Problem


Incosistent Analysis Problem



LOCKING
Locking terjadi jika suatu transaksi ingin record atau resource tidak berubah dalam waktu tertentu

Jenis Lock
Exclusive Lock (Xlock) atau write lock yaitu locking yang hanya bisa di gunakan untuk mengupdate dan membaca transaksi
Shared Lock (Slock) atau read lock yaitu locking yang hanya bisa di gunakan untuk membaca transaksi.

Contoh kasus dari locking :
Jika transaksi A memegang Xlock pada sebuah record, maka permintaan lock (X,S) pada record yang sama harus diabaikan.
Jika transaksi A memegang Slock pada record R maka :
o Permintaan Xlock trans. lain pada R ditolak
o Permintaan Slock trans. lain pada R diterima

DATA ACCESS PROTOCOL
Transaksi yang ingin  mengambil nilai sebuah record  (retrieve) harus mendapat Slock pada record tersebut
Transaksi yang ingin mengupdate, harus mendapat Xlock

Contoh kasus :
Jika lock dari transaksi B ditolak karena konflik dengan lock yang dimiliki transaksi A, transaksi B masuk ke wait state sampai lock milik A dibebaskan.
Xlock dan Slock dipegang sampai transaksi selesai (COMMIT atau ROLLBACK).

Lost Update Problem dengan LOCK


Uncommitted Dependency Problem dengan LOCK


Incosistent Analysis Problem dengan LOCK



DEAD LOCK
Dead lock adalah situasi dimana dua atau lebih transaksi dalam kondisi wait-state, satu sama lain menunggu lock dilepaskan sebelum dapat memulai
Contoh Deadlock


Penanganan Deadlock
Deteksi dan pecahkan deadlock
Deteksi deadlock > wait-for-graph
Pecahkan deadlock > salah satu dirollback paksa (bagaimana penanganan rollback ini?)
Ostrich Algorithm  > diabaikan

BACK-END PROGRAMMING
Backend adalah bagian belakan tempat administrator web mangatur keseluruhan bagian depan atau dengan kata lain memprogram tampilan web. Beberapa jenis fungsi-fungsi yang sering dipakai dalam back-end programming antara lain:
Stored Procedure : Stored Procedure adalah sekumpulan perintah SQL yang disusun dalam sebuah prosedur yang memiliki nama dan fungsi tertentu.
Function : Selain Stored Procedure, terdapat juga Function. Sedikit berbeda dengan Stored Procedure, function dapat mempermudah melakukan pengolahan suatu nilai dan mengembalikan nilai tertentu.
Trigger : Secara keseluruhan trigger hampir sama dengan Procedure dan Function, hanya saja untuk Trigger dioperasikan secara otomatis ketika terdapat aktivitas statement-statement SQL seperti Insert, Update dan Delete. Trigger ini bisa diaktivasi sebelum atau pun sesudah terjadinya satatement-statement tersebut.

Referensi :
http://www.pengertianku.net/2014/06/pengertian-basis-data-dan-sistem-basis.html
http://squirrel-mail.blogspot.co.id/2015/11/basis-data-dan-sistem-basis-data.html
http://tass.telkomuniversity.ac.id/courseMaterial/getFile/title/sesi-4+(tambahan+materi+integritas-data)/materi/M02935
https://farhanmaulanablog.wordpress.com/category/sistem-basis-data/
http://squirrel-mail.blogspot.co.id/2015/11/transaksi-dan-concurrency.html

Nama : Wina Yulinar
NIM : 1400676
Kelas : C1-Ilkom