Sistem Basis Data



1.    Basis Data vs Sistem Basis Data
A.    Basis Data
     Basis Data, jika dilihat dari namanya 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 terpadu dari berkas data (integrated collection of data) yang memiliki kaitan satu dengan lainnya, dan dibuat untuk memenuhi kepentingan banyak pemakai pada suatu organisasi
Tujuan dari Basis Data yaitu sebagai berikut :
§  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.

B.    Sistem Basis Data
Sistem basis data Sekumpulan basis data dengan para pemakai yang menggunakan basis data secara bersama-sama, perancang dan pengelola basis data, serta system yang mendukungnya.
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.

Keuntungan pemakaian Sistem Basis Data yaitu :
·         Tidak ada duplikasi data sehingga konsistensi data mudah dijaga
·         Data terintegrasi
·         Data tidak tergantung pada program aplikasi, sehingga pemeliharaan 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.
·         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.

2.    Integritas Data
Apa itu Integritas Data ? Integritas data merupakan keakuratan dan kebenaran suatu data yang disimpan. Kegunaan dari  Integritas data yaitu  untuk menjaga agar data yang tidak valid tidak masuk ke database dan menjaga konsistensi data pada relasi keterkaitan antar table juga untuk memasukkan aturan bisnis ke dalam sebuah database. Mengapa dalam menjaga kevalidan suatu data haru sdengan Integritas Data ? Integritas data dilakukan karena lebih murah dan mudah dalam menjaga data integrity  di level database dibandingkan ditangani aplikasi, selain itu bugs akibat isi database yang tidak valid juga sulit untuk ditemukan.

Contohnya :
·         NIM tidak boleh kosong  (karena NIM merupakan identitas kunci pada tabel tertentu)
·         UMUR harus antara 0 – 120 (karena tidak mungkin orang berumur -1 tahun ataupun diatas 120 tahun untuk zaman sekarang)

      Dalam pengaplikasiannya pada SQL, Integritas Data mempunyai tipe-tipe sebagai berikut :
  1. Not Null ð Maksudnya adalah suatu kolom  tidak diizinkan berisi nilai NULL (tidak diisi), harus ada nilainya.
  2. Unique ð Berfungsi untuk mencegah kesamaan/perulangan isi dari kolom yang memiliki variable bersifat Unique pada table tersebut.
  3. Primary  Key ð Primary key di definisikan dalam model relasional sebagai pengenal unik untuk tiap nilai dalam suatu table.
  4. Referential Integrity ð Untuk memastikan bahwa data pada suatu tabel yang primary key nya didefinisikan pada tabel lainnya dan mengikat kedua tabel tersebut dalam hubungan parent/child atau referenced/dependent.
  5. Check ð berfungsi untuk pengecekan apakah sebuah kolom memenuhi sebuah kondisi spesifik yang dievaluasi dengan nilai boolean.

3.    Back-End Programing
Back-End programming jika dilihat dari namanya yaitu Back artinya belakang Programming yaitu pemrogramana dalah program yang berjalan pada database secara otomatis ketika terjadi suatu pemicu tertentu, yang prosesnya tidak ditampilkan di Interface suatu aplikasi. Dalam oracle ada beberapa metode untuk melakukan back-end programming, yaitu dengan trigger dan stored procedure atau yang umum disebut PL/SQL.


Struktur PL/SQL
Blok PL/SQL mempunyai struktur yang dibagi menjadi 3 bagian, yaitu :
1)      Declaration Section (DECLARE)
2)      Execution Section (BEGIN, END)
3)      Exception Section (EXCEPTION)
A.                     Trigger
Trigger merupakan suatu block PL/SQL yang akan tersimpan didalam database. Trigger akan teraktivasi secara otomatis ketika terjadi suatu kejadian/event (INSERT, DELETE, UPDATE) terhadap table, view dan database. Biasanya Trigger digunakan untuk mengisi ataupun mengubah nilai kolom dalam suatu tabel sehingga validasi nilai dari tabel tersebut akan terjaga.
ü  Manfaat trigger antara lain adalah :
§  Membuat integrity constraint yang kompleks.
§  Mencatat aktivitas suatu tabel (logging).
§  Sinkronisasi
ü  Struktur Dasar Trigger
Oracle telah menyediakan statement CREATE TRIGGER untuk membuat sebuah trigger yang selanjutnya akan diaktivasi untuk event tertentu. Secara umum terdapat 2 waktu agar sebuah trigger teraktivasi :
1.      BEFORE -> Dimana sebuah trigger akan teraktivasi sebelum terjadinya proses DML pada suatu tabel.
2.      AFTER -> Dimana sebuah trigger akan teraktivasi sesudah terjadinya proses DML pada suatu tabel.
Sehingga dapat kita gambarkan, bahwa trigger akan teraktivasi dengan event berikut:
         BEFORE INSERT -> Akan diaktifkan sebelum event insert pada suatu tabel.
         AFTER INSERT -> Akan diaktifkan sesudah event insert pada suatu tabel.
         BEFORE UPDATE -> Akan diaktifkan sebelum event update pada suatu tabel.
         AFTER DELETE -> Akan diaktifkan sesudah event update pada suatu tabel.
         BEFORE DELETE -> Akan diaktifkan sebelum event delete pada suatu tabel.
         AFTER DELETE -> Akan diaktifkan sesudah event delete pada suatu tabel.

B.    Stored Procedure
Subprogram adalah PL/SQL Blok yang dipanggil dengan sekumpulan parameter. PL/SQL memiliki dua jenis subprogram yaitu: procedure dan function. Dimana secara umum procedure digunakan untuk melaksanakan aksi dan function digunakan untuk komputasi suatu nilai.
Stored procedure adalah subprogram yang disimpan di dalam database berupa SQL + Bahasa prosedural. Ada beberapa kelebihan yang dapat diperoleh dengan menggunakan stored procedure, antara lain :
§  Dijalankan di database server -> performance lebih baik, network trafik lebih rendah,
§  Tools DBA -> praktis, selalu tersedia di database server,
§  Dapat digunakan oleh banyak aplikasi,
§  Standarisasi business logic,
§  SP dapat dipanggil oleh aplikasi luar,
§  Dapat memanfaatkan tipe, fungsi yang disediakan DBMS,
§  Powerfull, tools sangat penting bagi DB designer, DB programmer dan DBA,
§  Hampir semua RDBMS mensupport,
§  Walaupun syntax berbeda, umumnya menggunakan prinsip yang sama.

C.    Transaksi & Concurrency
A.    Transaksi
Transaksi pada basis data adalah satu atomic operasi berupa lojik pekerjaan maupun lojik recovery 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

Pada Transaksi ada dua proses utama yang menjadi kunci dari transaksi, yaitu :
·         Commit, memberi tanda bahwa transaksi telah selesai. Update dibuat permanen (bahkan jika setelah commit terjadi kegagalan system)
·         Rollback, memberi tanda bahwa transaksi yang dilakukan gagal. Semua update harus di-undo (kembali ke posisi pada saat dimana savepoint dibuat)

Dalam transaksi ada sebuah proses yang disebut “savepoint” atau jika dalam dunia game dikenal dengan istilah checkpoint jadi kita tidak perlu jauh-jauh mengulang semua proses ke semula, biasanya dipakai dalam proses pemasukan data orang atau barang. 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 merecovery database secara backward (undo) maupun forward (redo).

B.    Concurrency
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,
·          Uncommited dependency problem, ketika user yang satu meretrieve data dan user yang lain merollback data tersebut,
·          Inconsistent analysis problem, ketika user yang satu meretrieve data dan user yang lain mengupdate data tersebut.
Locking
Loocking dilakukan pada sebuah transaksi jika ingin record/resource tidak berubah dalam waktu tertentu maka dia meminta lock.  Ada dua macam lock, anatra lain :
1.      Exclusive Lock (X-Lock) -> transaksi tersebut dapat melakukan perubahan dan pembacaan terhadap data tersebut. Jika transaksi A memegang Xlock pada sebuah record, maka permintaan lock (X , S) pada record yang sama harus diabaikan. Transaksi yang ingin mengupdate harus mempunyai X-Lock.
2.      Shared Lock (S-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.
X-Lock dan S-Lock dipegang sampai transaksi selesain(Commit dan Rollback). Untuk contoh lebih jelasnya, kita ibaratkan dalam kehidupan :
·    Ada sebuah rumah yang disewakan, lalu ada yang menawar rumah tersebut tetapi belum melakukan transaksi penyewaan, maka rumah tersebut statusnya masih S-Lock dan orang lain yang ingin menyewa rumah tersebut boleh menawarnya bahkan langsung membayar uang sewanya, makan orang kedua sudah melakukan X-Lock terhadap rumah tersebut. Orang kesatu tidak boleh menyewanya, karena rumah itu sudah disewa oleh orang kedua, dan dia baru bisa menyewa rumah tersebut jika orang kedua tidak memperpanjang sewaannya (Release)

Deadlock
Deadlok adalah situasi dimana dua atau lebih transaksi dalam kondisi wait-state, satu sama lain menunggu lock dilepaskan sebelum dapat memulai. Salah satu cara untuk memecahkan deadlock yaitu salah satu proses harus dipaksa rollback.

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 ð Pembacaan data dari hasil transaksi lainnya yang gagal. Dimana kedua  transaksi tersebut berjalan secara bersamaan.
2.    Nonrepeatable Read ð Pembacaan ulang data yang telah dibaca sebelumnya, karena data tersebut sudah di modifikasi pada transaksi lain.
3.    Phantom Read ð Pembacaan ulang data yang telah hilang karena proses transaksi sebelumnya.
Untuk mencegah terjadinya 3 hal tersebut, maka pada Oracle terdapat 2 level isolasi yang dapat diimplementasikan, 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).

Sumber :
Modul Pengantar Basis Data 2015.
Modul Pembelajaran Sistem Basis Data, Yudi Wibisono.

Comments

Popular posts from this blog

Perintah-perintah Dasar Pada Terminal Linux (Tugas Praktikum 2 SO)

Cara Instal Kali Linux

10 Makhluk Terseram & Misterius