BASIS
DATA DAN SISTEM BASIS DATA
Basis Data 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.
Sedangkan Sistem Basis Data adalah 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.
·
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.
INTEGRITAS
DATA
Pengertian integritas data
secara luas mengacu pada kepercayaan dari sumber daya suatu sistem. Integritas
data sangat penting karena dapat memastikan keakuratan, konsistensi,
aksesibilitasi, dan kualitas tinggi dari sebuah data, sehingga sangat penting
untuk mengikuti aturan pengintegritasan suatu data. Data yang mempunyai
integritas identik di pertahankan selama operasi apapun (seperti bisnis
transfer, penyimpanan, atau pengambilan). Secara sederhana dalam istilah
bisnis, integritas data adalah jaminan bahwa data konsisten, bersertifikat dan
dapat dirujukan.
Menjaga Integritas Data :
Apa?
· Memasukkan aturan bisnis di dalam
database. Contoh: NIM tidak boleh kosong; UMUR harus antara 0 – 120, dst.
·
Menjaga agar data yang tidak valid tidak
masuk ke database
·
Menjaga konsistensi data pada relasi
keterkaitan antar table
Mengapa Harus Melakukan
Ini?
· Lebih murah dan mudah menjaga data
integrity di level database dibandingkan ditangani di aplikasi.
· Bugs akibat isi database yang tidak valid
sulit untuk ditemukan (dapat muncul di kemudian hari).
Secara garis besar
integritas data dalam model relasional meliputi :
1. Integritas
Entitas
2. Integritas
Domain
3. Integritas
Referensial
4. Integritas
Enterprise
TRANSAKSI
DAN CONCURRENCY
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
Ada dua jenis transaksi
yang paling penting dalam sistem basis data adalah :
· Commit, memberi tanda bahwa transaksi
telah selesai. Update dibuat permanen (bahkan jika setelah commit terjadi
kegagalan system)
·
Rollback, memberi tanda bahwa
transaksi gagal. Semua update harus di-undo
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
· 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
Untuk menangani masalah
tersebut, dilakukan proses locking, jika sebuah transaksi ingin record/resource
tidak berubah dalam waktu tertentu maka dia meminta lock. Ada dua jenis lock
yaitu :
·
Exclusive Lock (Xlock) à write
lock
·
Shared Lock (Slock) à read lock
Jadi cara kerjanya :
· 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 :
·
Permintaan Xlock transaksi lain pada R
ditolak
·
Permintaan Slock transaksi lain pada R
diterima
Tapi, ada satu masalah
yang dapat terjadi ketika melakukan proses locking ini, yaitu deadlock. Yaitu,
situasi dimana dua atau lebih transaksi dalam kondisi wait-state, satu sama
lain menunggu lock dilepaskan sebelum dapat memulai. Cara penanganannya adalah
:
·
Deteksi dan pecahkan deadlock
·
Deteksi deadlock à wait-for-graph
·
Pecahkan deadlock à salah satu dirollback
paksa
·
Ostrich Algorithm à diabaikan
BACKEND
PROGRAMMING
Backend
Programming adalah code yang tidak terlihat oleh user
dan bekerja dibelakang layar atau server.
A. PL/SQL (Procedural
Language/Structured Query Language)
PL/SQL
(Procedural Language/Structured Query Language) merupakan bahasa pemrograman terstruktur di dalam SQL yang
tersusun dalam blok-blok logical, yang dapat menjalankan perintah-perintah untuk
menyelesaikan masalah (di Oracle disebut PL/SQL).
Jenis-jenis
PL/SQL :
·
Anonymous Block
·
Stored Procedure
1.
Anonymous
Block
Merupakan blok PL/SQL tak
bernama dan tak disimpan pada database,
tetapi pada Oracle Pre-compiler.
Anonymous block ini dijalankan dari dalam aplikasi, pada run-time aplikasi akan
mengirimkan anonymous bock PL/SQL pada database oracle, di mana anonymous block
tersebut di dicompile dan dieksekusi.
Komponen
anonymous block secara umum :
DECLARE
--bagian deklarasi variabel dan tipe
data
BEGIN
--bagian prosedural dan SQL, bagian
ini wajib diisi
EXCEPTION
--penanganan eksepsi (tidak wajib)
END;
/
2.
Stored
Procedure
Stored procedure merupakan salah satu
jenis PL/SQL yang memiliki kemampuan menerima
parameter input, melakukan pengolahan terhadap parameter input tersebut dan
menampilkannya. Stored procedure dapat
memeiliki parameter input atau tidak memiliki parameter. Parameternya
dapat berupa input, output, dan gabungan input output.
Komponen
stored procedure :
CREATE OR REPLACE PROCEDURE nama_prc
AS
--bagian deklarasi variabel dan tipe
data
BEGIN
--bagian prosedural dan SQL, bagian
ini wajib diisi
EXCEPTION
--penanganan eksepsi (tidak wajib)
END nama_prc;
/
Untuk mengeksekusi prosedur yang
telah dibuat: EXEC nama_prc;
Untuk mengatur agar output dapat
terlihat: SET SERVEROUTPUT ON;
Untuk menghapus stored procedure dari
database: DROP PROCEDURE nama_prc;
B. Function
Function
atau lebih sering disebut Stored Function merupakan salah satu modul dari PL / SQL yang dapat mempermudah melakukan
pengolahan suatu nilai dan mengembalikan nilai tertentu.
Struktur badan Function
secara umum:
CREATE
OR REPLACE FUNCTION RETURN AS
/*Deklarasi
variable, type, dan local subprogram*/
BEGIN
/*Bagian
utama fungsi*/
EXCEPTION
/*Penangan
error*/
RETURN();
END
;
/
Untuk
mengeksekusi fungsi gunakan perintah :
EXECUTE
;
Sedangkan
untuk menghapusnya menggunakan perintah :
DROP
FUNCTION ;
C. Cursor
Cursor
berfungsi untuk menangkap / mengambil banyak data yang banyaknya telah ditentukan sesuai kebutuhan. Cursor digunakan
dalam script PL/SQL untuk menampilkan data yang tersimpan di dalam database.
Berikut merupakan macam -
macam cara penulisan cursor sesuai dengan penggunaan:
deklarasi
cursor
declare
·
Cursor_1 sys_refcursor;
·
Cursor cursor_2 is select nilai *from latihan;
·
Cursor cursor_3 (key integer) is select
*from latihan where nilai=key;
Catatan:
·
Cursor_1 bertipe data refcursor dan dapat
digunakan untuk semua query.
·
Cursor_2 adalah cursor yang memiliki
query.
·
Cursor_3 adalah cursor yang memiliki query
dan sekaligus parameter. Key akan digantikan
dengan nilai bertipe integer saat cursor di buka / dieksekusi.
D. 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.
Struktur badan Trigger
secara umum:
CREATE
OR REPLACE TRIGGER
(BEFORE|AFTER)
(INSERT|UPDATE [OF , …]|DELETE) ON
[FOR
EACH ROW] [WHEN (kondisi)]
DECLARE
/*Deklarasi
variable, tipe data*/
BEGIN
/*Bagian
utama trigger*/
END;
/
Trigger
ini memiliki status apakah dia aktif atau nonaktif. Untuk mengubah status
Trigger berikut sintaksnya :
· ALTER TRIGGER DISABLE
| ENABLE; dimana DISABLE untuk menonaktifkan Trigger, dan ENABLE untuk
mengaktifkan Trigger.
·
Sintaks untuk menghapus Trigger :
·
DROP TRIGGER ;
XML
XML (eXtended
Markup Language) adalah bahasa markup yang digunakan untuk
menyimpan data (tidak ada program) dan tidak tergantung dengan tools tertentu
(seperti editor, dbms, compiler, dsb). Jika demikian, Lalu digunakan untuk apa
dokumen XML ini?
XML adalah merupakan suatu bahasa
Markup. Markup yaitu bahasa yang berisikan kode-kode berupa tanda-tanda
tertentu dengan aturan tertentu untuk memformat dokumen teks dengan tag sendiri
agar dapat dimengerti.
Keuntungan
XML :
·
Ekstensibilitas : dapat ditukar/digabung
dengan dokumen XML lain
·
Memungkinkan pemrograman yang lebih baik: maka
dibuat suatu software pengolah XML
·
Memisahkan data dan presentasi. Yang akan
direpresentasikan dalam XML dan XSLT
·
Pencarian data cepat karena XML merupakan
data dalam format yang terstruktur
·
Plain Text dan platform independent
·
Untuk pertukaran data
Dokumen XML dapat digunakan
untuk berbagai macam tujuan, seperti:
·
Sebagai penyimpan data (database)
yang mudah dibaca oleh user karena disimpan dalam bentuk teks.
·
Standard transfer data, dapat digunakan
untuk pengiriman data transaksi antar perusahaan, atau mentransfer data dari
DBMS yang berbeda (mis: Oracle ke SQL Server).
·
Sebagai acuan membuat bahasa baru,
seperti WML (Wireless Markup Language) yang digunakan pada mobile device dengan
protokol WAP, atau VoiceXML yang digunakan sebagai bahasa markup untuk
pengenalan suara, dialog, aplikasi interaksi respon suara maupun DTMF (seperti
aplikasi pengisian pulsa atau call center), dan sebagainya.
·
Sebagai file konfigurasi, di Java dokumen-dokumen XML sering
kita jumpai seperti file server.xml dan web.xml yang digunakan Tomcat, atau
perintah-perintah query yang disimpan dalam file XML yang dipakai
pada framework iBatis atau Hibernate
Sejauh mana perkembangannya? XML menjadi
dasar dari beberapa bahasa markup yang telah sedang berkembang sampai saat ini,
seperti: XHTML (perbaikan dari HTML), VoiceXML (bahasa untuk aplikasi suara,
telepon), XForms (form pada web yang dapat digunakan pada berbagai macam jenis
browser, seperti: desktop, PDA , handphone, kertas), XPath, XPointer, XSL dan
XSLT (transformasi dan presentasi XML).
Referensi :
- Perkuliahan Sistem Basis Data oleh Bapak Budi Laksono Putro, M.T.
- Powerpoint Budi Laksono Putro, Modul Pengantar Basis Data Materi Pertama
- Powerpoint Yudi Wibisono, Integritas data,Transaksi,Concurency
- Modul Praktikum Sistem Basis Data Procedure, Function & Cursor, Trigger
- http://www.pengertianku.net/2014/06/pengertian-basis-data-dan-sistem-basis.html
- http://ghea-gayatri.blogspot.com/2012/03/integritas-data-dalam-basis-data.html
- http://simbuda.blogspot.co.id/2013/05/integritas-data.html
- http://agenilmu.blogspot.co.id/2009/04/pengertian-singkat-xml.html




