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 :
- Not Null ð Maksudnya adalah suatu
kolom tidak diizinkan berisi nilai NULL (tidak diisi), harus ada nilainya.
- Unique ð Berfungsi untuk mencegah
kesamaan/perulangan isi dari kolom yang memiliki variable bersifat Unique pada table tersebut.
- Primary Key ð Primary key di definisikan
dalam model relasional sebagai pengenal unik untuk tiap nilai dalam suatu
table.
- 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.
- 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
Post a Comment