Wednesday, 25 November 2015

BASIS DATA DAN SISTEM BASIS DATA



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 Itu 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
·         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 <nama fungsi> RETURN <tipe data> AS
/*Deklarasi variable, type, dan local subprogram*/
BEGIN
/*Bagian utama fungsi*/
EXCEPTION
/*Penangan error*/
RETURN(<Nilai yang dikembalikan>);
END <nama fungsi>;
/
Untuk mengeksekusi fungsi gunakan perintah :
EXECUTE <nama function>;
Sedangkan untuk menghapusnya menggunakan perintah :
DROP FUNCTION <nama 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 <nama trigger>
(BEFORE|AFTER) (INSERT|UPDATE [OF <nama_kolom>, …]|DELETE) ON <nama_tabel>
[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 <nama_trigger> DISABLE | ENABLE; dimana DISABLE untuk menonaktifkan Trigger, dan ENABLE untuk mengaktifkan Trigger.
·         Sintaks untuk menghapus Trigger :
·         DROP TRIGGER <nama_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

2 komentar:

Blogger said...

Did you know that you can make cash by locking special areas of your blog / website?
Simply open an account with AdWorkMedia and run their content locking plugin.

Blogger said...

eToro is the #1 forex trading platform for newbie and advanced traders.