BASIS DATA
Basis data (bahasa Inggris: database), atau sering
pula dieja basisdata, adalah kumpulan informasi
yang disimpan di dalam komputer secara sistematik sehingga dapat diperiksa menggunakan
suatu program komputer untuk memperoleh informasi
dari basis data tersebut. Perangkat
lunak yang digunakan untuk mengelola dan memanggil kueri (query) basis
data disebut sistem manajemen basis data (database
management system, DBMS). Sistem basis data dipelajari dalam ilmu
informasi.
Konsep dasar dari basis data adalah kumpulan
dari catatan-catatan, atau potongan dari pengetahuan. Sebuah basis data
memiliki penjelasan terstruktur dari jenis fakta yang tersimpan di dalamnya:
penjelasan ini disebut skema. Skema menggambarkan
obyek yang diwakili suatu basis data, dan hubungan di antara obyek tersebut.
Ada banyak cara untuk mengorganisasi skema, atau memodelkan struktur basis
data: ini dikenal sebagai model basis data atau
model data.
Model yang umum digunakan sekarang adalah model
relasional, yang menurut istilah layman mewakili semua informasi
dalam bentuk tabel-tabel yang saling berhubungan dimana setiap tabel terdiri
dari baris dan kolom (definisi yang sebenarnya menggunakan terminologi
matematika). Dalam model ini, hubungan antar tabel diwakili denga menggunakan
nilai yang sama antar tabel. Model yang lain seperti model
hierarkis dan model jaringan menggunakan cara yang lebih
eksplisit untuk mewakili hubungan antar tabel.
Istilah basis data mengacu pada koleksi
dari data-data yang saling berhubungan, dan perangkat lunaknya seharusnya
mengacu sebagai sistem manajemen basis data (database management
system/DBMS). Jika konteksnya sudah jelas, banyak administrator dan
programer menggunakan istilah basis data untuk kedua arti tersebut.
Lingkungan basis data adalah sebuah
habitat di mana terdapat basis data untuk bisnis. Dalam lingkungan basis data,
pengguna memiliki alat untuk mengakses data. Pengguna melakukan semua tipe
pekerjaan dan keperluan mereka bervariasi seperti menggali data (data mining),
memodifikasi data, atau berusaha membuat data baru. Masih dalam lingkungan
basis data, pengguna tertentu tidak diperbolehkan mengakses data, baik secara
fisik maupun logis. (Koh, 2005, dalam Janner Simarmata & Imam Paryudi 2006:
33
SISTEM BASIS DATA
Sistem manajemen basis data (Bahasa
Inggris: database management system, DBMS), atau kadang
disingkat SMBD, adalah suatu sistem
atau perangkat lunak yang dirancang untuk mengelola
suatu basis data
dan menjalankan operasi terhadap data yang diminta banyak pengguna. Contoh tipikal SMBD adalah akuntansi,
sumber daya manusia, dan sistem pendukung
pelanggan, SMBD telah berkembang menjadi bagian standar di bagian pendukung (back
office) suatu perusahaan. Contoh SMBD adalah Oracle, SQL server
2000/2003, MS Access,
MySQL
dan sebagainya. DBMS merupakan perangkat lunak yang dirancang untuk dapat
melakukan utilisasi dan mengelola koleksi data dalam jumlah yang besar. DBMS
juga dirancang untuk dapat melakukan manipulasi data secara lebih mudah.
Sebelum adanya DBMS, data pada umumnya disimpan dalam bentuk flat file, yaitu
file teks yang ada pada sistem operasi. Sampai sekarangpun masih ada aplikasi
yang menimpan data dalam bentuk flat secara langsung.
Menyimpan data dalam bentuk flat file mempunyai
kelebihan dan kekurangan. Penyimpanan dalam bentuk ini akan mempunyai manfaat
yang optimal jika ukuran filenya relatif kecil, seperti file passwd pada sistem
operasi Unix dan Unix-like. File passwd pada umumnya hanya digunakan untuk
menyimpan nama yang jumlahnya tidak lebih dari 1000 orang.
Selain dalam bentuk flat file, penyimpanan data
juga dapat dilakukan dengan menggunakan program bantu seperti spreadsheet.
Penggunaan perangkat lunak ini memperbaiki beberapa kelemahan dari flat file,
seperti bertambahnya kecepatan dalam pengolahan data. Namun metode ini masih
memiliki banyak kelemahan, diantaranya adalah masalah manajemen dan keamanan
data yang masih kurang. Penyimpanan data dalam bentuk DBMS mempunyai banyak
manfaat dan kelebihan dibandingkan dengan penyimpanan dalam bentuk flat file
atau spreadsheet, diantaranya :
1. Performa yang dapat dengan penyimpanan dalam
bentuk DBMS cukup besar, sangat jauh berbeda dengan performance data yang
disimpan dalam bentuk flat file. Disamping memiliki unjuk kerja yang lebih
baik, juga akan didapatkan efisiensi penggunaan media penyimpanan dan memori
2. Integritas data lebih terjamin dengan
penggunaan DBMS. Masalah redudansi sering terjadi dalam flat file. Redudansi
adalah kejadian berulangnya data atau kumpulan data yang sama dalam sebuah
database yang mengakibatkan pemborosan media penyimpanan.
3. Independensi. Perubahan struktur database
dimungkinkan terjadi tanpa harus mengubah aplikasi yang mengaksesnya sehingga
pembuatan antarmuka ke dalam data akan lebih mudah dengan penggunaan DBMS.
4. Sentralisasi. Data yang terpusat akan
mempermudah pengelolaan database. kemudahan di dalam melakukan bagi pakai
dengan DBMS dan juga kekonsistenan data yang diakses secara bersama-sama akan
lebiih terjamin dari pada data disimpan dalam bentuk file atau worksheet yang
tersebar.
5. Keamanan. DBMS memiliki sistem keamanan yang
lebih fleksibel daripada pengamanan pada file sistem operasi. Keamanan dalam
DBMS akan memberikan keluwesan dalam pemberian hak akses kepada pengguna.
INTEGRITAS DATA
Integritas data adalah jaminan konsistensi data
terhadap semua status konstrain yang diberlakukan terhadap data tersebut,
sehingga memberikan jaminan keabsahan data itu sendiri. Integritas data sangat
erat kaitannya dengan keamanan keberadaan data, dimana dapat terjadi secara
institusional atau asidental.
Jenis-Jenis Integritas Data dapat dikelompokkan
sebagai berikut :
1. Entity Integritas
Entity Integritas mendefinisikan sebuah baris
sebagai sebuah entitas yang unik untuk suatu tabel. Entity integritas memaksa
integritas dari column atau primary key dari suatu tabel (melalui index,
unique, constraints, primary key). Primary key tidak boleh null.
2. Domain Integritas
Domain Integritas merupakan validasi dari
masukan untuk sebuah kolom. Anda dapat memaksa domain integritas dengan
membatasi tipe (melalui data types), format (melalui check constraints dan
rules), atau range nilai-nilai yang mungkin (melalui Foreign Key Constraints,
Check Constraints, Default Definitions dan rules).
3.
Refrential Integritas
Refrential Integritas memastikan bahwa seluruh
nilai dari foreign key cocok dengan nilai primary key yang dihubungkan.
4. User
Defined Integritas
User–defined integritas mengizinkan Anda untuk
menentukan spesific business rules sendiri yang tidak sama pada kategori
integrity yang lain.
Types of
Data Integrity
Bagian
ini menggambarkan atauran yang dapaat diterapkan pada kolom tabel ayang
menekankan perbedaan tipe data pada integritas data.
1. Null
Rule
Aturan
null adalah definisi aturan pada single
column yang membolehkan atau tidak membolehkan inserts atau updates untuk
pengisian rows kosong (the absence of a value) pada kolom ini.
2.
Unique Column Values
Aturan
nilai unique didefinisan pada sebuah column (or set of columns) yang
membolehkan insert or update hanya pada row jika itu berisi sebuah nilai unique dalam sebuah kolom (or
set of columns).
3.
Primary Key Values
Aturan
nilai primary key didefinisikan pada sebuah key (a column or set of columns) tertentu
bahwasetiap each row dalam table dapat mengidentifikasi keunikan dengan nilai
kunci tersebut
4.
Referential Integrity Rules
Aturan
referential integrity adalah definsi aturan pada sebuah kunci key (a column or
set of columns) dalam sebuah table yang menjamin bahwa data dalam kunci cocok
dengan nilai dalam sebuah relasi table (the referenced value).
Aturan-Aturan
Referential Integrity
·
Referential integrity mengacu pada kaitan antar
row/record dari 2 tabel yang berhubungan melalui Foreign Key yang bersangkutan.
·
Pada insert, record harus dimasukkan di tabel
utama dahulu, kemudian baru di tabel kedua.
·
Pada delete, record harus dihapus di tabel
kedua dahulu, kemudian baru di tabel utama.
·
Field yang dihubungkan dari tabel utama
haruslah berupa Primary Key.
·
Kedua field yang saling behubungkan harus
memiliki Tipe data dan lebar data yang sama.
·
Tidak dibenarkan penghapusan record pada tabel
utama yang telah dihubungkan dengan tabel yang direlasikan.
Macam
action dalam Referential Integrity:
·
NO ACTION atau RESTRICT : update atau delete
tidak dilakukan. Ini merupakan pilihan default.
·
CASCADE : nilai kolom di tabel kedua
disesuaikan dengan nilai kolom di tabel utama
·
SET NULL : nilai kolom di tabel kedua dijadikan
NULL
·
SET DEFAULT : nilai kolom di tabel kedua dijadikan
nilai DEFAULT (nilai DEFAULT harus ditentukan pada waktu pembuatan tabel).
TRANSAKSI
Transaksi adalah adalah unit eksekusi program
yang mengakses dan mungkin mengubah beberapa item data. Dalam Konsep transaksi
di database harus di penuhi empat sifat database agar integritas database tetap
terjaga. Adapun keempat sifat tersebut adalah:
Permintaan dan pembatalan tiket dapat dilakukan melalui proses
transaksi. Terdapat dua operasi penting yang ada pada transaksi, yaitu:
1.
Commit, artinya
pemberian tanda bahwwa transaksi telah sukses dilakukan. Sistem akan mengupdate
permanen data yang sebelum transaksi dan diganti dengan data setelah transaksi
(bahkan jika setelah commit terjadi kegagalan sistem).
2.
Rollback,
merupakan kebalikan dari commit, artinya pemberian tanda bahwa transaksi
tersebut gagal sehinggan sistem akan membalikan keadaan (undo/restore) dari
keadaan setelah transaksi kembali ke keadaan sebelum transaksi (undo update).
Sebuah
transaksi berpeluang untuk ‘mengganggu’ integritas basis data yang dapat
membuat kondisi/hubungan antar data tidak seperti seharusnya. Untuk menjamin agar integritas dapat tetap
terpelihara maka setiap transaksi harus memiliki sifat-sifat:
1.
Atomik, dimana semua operasi dalam transaksi dapat dikerjakan seluruhnya
atau tidak sama sekali.
2.
Konsisten, dimana eksekusi transaksi secara tunggal harus dapat menjamin
data tetap konsisten setelah transaksi berakhir.
3.
Terisolasi, 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.
4.
Bertahan, dimana perubahan data yang terjadi setelah sebuah transaksi
berakhir dengan baik, harus dapat bertahan bahkan jika seandainya sistem
menjadi mati.
Terhentinya suatu transaksi tidak
selalu diakibatkan oleh kegagalan insidental baik dari perangkat keras (crash)
ataupun kemacetan sistem operasi (hang).
Tapi lebih sering terjadi karena user sengaja menghentikan transaksi
atau karena penghentian transaksi oleh DBMS akibat adanya kondisi tak
diinginkan, seperti deadlock atau timeout.
Sebuah transaksi dapat menghasilkan
dua kemungkinan:
a.
Jika
dilaksanakan lengkap seluruhnya, transaksi tersebut telah di commit dan basis data mencapai keadaan
konsisten baru.
b.
Jika
transaksi tidak sukses, maka transaksi dibatalkan dan basis data dikembalikan
ke keadaan konsisten sebelumnya (rollback).
Transaksi yang sudah di commit tidak
dapat dibatalkan lagi. Jika ada kesalahan,
maka harus dilakukan transaksi lain yang membalik dampak transaksi sebelumnya.
Status-status yang dapat dicapai
oleh sebuah transaksi sejak mulai dilaksanakan hingga selesai atau batal
adalah:
1.
Aktif
(Active), yang merupakan status awal
(initial state) sebuah transaksi yang menunjukkan transaksi tersebut masih
dieksekusi.
2.
Berhasil
Sebagian (Partially Committed),
yaitu keadaan yang dicapai transaksi tepat pada saat operasi terakhir dalam
transaksi selesai dikerjakan.
3.
Gagal
(Failed), yang merupakan keadaan dimana
sebuah transaksi terhenti pengeksekusiannya sebelum tuntas sama sekali.
4.
Batal
(Aborted), yaitu keadaan dimana sebuah
transaksi dianggap tidak/belum dikerjakan yang tentu dengan terlebih dahulu
diawali dengan mengembalikan semua data yang telah diubah ke nilai-nilai
semula. (yang menjadi tanggung jawab DBMS).
5.
Berhasil
Sempurna (Committed), keadaan dimana
transaksi telah dinyatakan berhasil dikerjakan seluruhnya dan basis data telah
merefleksikan perubahan-perubahan yang memang diinginkan transaksi
Ketika
sebuah transaksi mulai dikerjakan, maka transaksi itu berada dalam status aktif. Jika terjadi penghentian sebelum operasi
berakhir, maka transaksi segera beralih ke status gagal/failed. Namun, bila keseluruhan transaksi selesai
dikerjakan, maka transaksi itu berada pada status berhasil
sebagian/partially committed, dimana perubahan-perubahan data masih berada
di dalam memori utama yang bersifat volatile/tidak permanen. Transaksi dalam status ini masih mungkin
untuk pindah ke status failed, karena ada pembatalan transaksi baik sengaja
maupun tidak. Jika tidak beralih ke
status failed, maka nilai-nilai data yang ada di memori utama akan direkam ke
dalam disk yang bersifat permanen.
Begitu proses perekaman selesai, maka transaksi beralih ke status committed. Sementara itu, transaksi yang berada pada
status failed, maka DBMS harus menjalan proses rollback. Proses tersebut dapat berupa:
·
Mengulangi
pelaksanaan transaksi / restart, yang dilakukan pada transaksi yang
failed akbiat kemacetan perangkat keras ataupun perangkat lunak dan bukannya
penghentian transaksi secara sengaja oleh user.
·
Mematikan
transaksi / kill, yang dilakukan untuk transaksi yang dihentikan secara
sengaja oleh user atau akibat adanya kesalahan lojik dalam penulisan aplikasi.
Begitu salah
satu dari pilihan proses tersebut selesai dilakukan, maka transaksi berpindah
ke status batal (aborted). Status berhasil sempurna/committed maupun batal/aborted
merupakan status terminasi, yaitu status akhir dalam pelaksanaan transaksi.
CONCURRENCY
Concurrency adalah banyaknya transaksi
yang dijalankan secara bersamaan dalam satu waktu. Hampir semua DBMS adalah
multiuser, sehingga berpeluang terjadinya inkonsistensi basis data. Maka perlu
adanya pengendalian persaingan eksekusi transaksi (concurrency control).
Untuk
mengatasi masalah inconsistency
data, maka dibutuhkanlah suatu mekanisme yang mengatur jalannya
transaksi pengaksesan data yang sama. Mekanisme ini dikenal dengan istilah concurrency control, yaitu pengaturan
sekaligus terhadap transaksi sehingga melindungi database dari tidak
konsistennya data.
Tiga
masalah yang terkait dengan cocurency antara lain:
1.
Lost-update,
2.
Uncommited dependency (dirty read, dan
3.
Inconsistent analisys.
Ada dua metode
cocurency control yang digunakan, caitu metode locking dan timestamp. Metode
locking memungkinkan akses terhadap database ditolak sehingga pengguna tidak
dapat mengupdate datanya.
Ada dua macam
lock, yaitu:
1.
Shared lock
yang menangani lock baca (read lock/RLock), dan
2.
Exclusive lock
yang menangani lock tulis (write lock/WLock).
Sebuah
transaksi harus mendapatkan sebuah lock pada item sebelum beroperasi. Lock tersebut bisa berupa read atau write, tergantung dari tipe akses yang dibutuhkan Sebelum
transaksi melepaskan sebuah lock,
transaksi tersebut tidak akan pernah mendapatkan lock baru lainnya.
Istilah lain dalam lock yaitu Deadlock, merupakan jalan buntu yang dapat terjadi ketika dua atau lebih transaksi masing-masing
menunggu lock yang sedang dipegang oleh transaksi lainnya untuk dilepas. Hanya
ada satu cara untuk menghancurkan deadlock,
yaitu abort satu atau lebih transaksi.
XML
XML (Extensible Markup Language)
adalah bahasa markup untuk keperluan umum yang disarankan oleh W3C untuk membuat dokumen
markup keperluan pertukaran data antar sistem
yang beraneka ragam. XML merupakan kelanjutan dari HTML (HyperText Markup Language) yang merupakan
bahasa standar untuk melacak Internet.
XML adalah bahasa markup – menggunakan tag
label, mengkategorikan dan mengatur informasi dalam spesifikasi cara. Markup
menjelaskan dokumen atau data struktur dan organisasi. Konten, seperti teks,
Gambar, dan data, adalah bagian dari kode yang berisi markup Tag. Hal ini juga
yang paling menarik untuk kebanyakan manusia sehari-hari yang membaca atau
berinteraksi dengan data dan kebutuhan dokumen. fleksibilitas XML
telah berkembang yang menyebabkan digunakan untuk bertukar data dalam berbagai
bentuk
XML didesain untuk mampu menyimpan data secara ringkas dan
mudah diatur. Kata kunci utama XML adalah data (jamak dari datum) yang
jika diolah bisa memberikan informasi.
XML menyediakan suatu cara terstandarisasi namun bisa
dimodifikasi untuk menggambarkan isi dari dokumen. Dengan
sendirinya, XML dapat digunakan untuk menggambarkan sembarang view database,
tetapi dengan suatu cara yang standar.
Tipe XML
XML memiliki tiga tipe file :
- XML,
merupakan standar format dari struktur
berkas (file) yang ada.
- XSL,
merupakan standar untuk memodifikasi data yang diimpor atau diekspor.
- XSD,
merupakan standar yang mendefinisikan struktur database dalam XML.
Keunggulan XML
Keunggulan XML bisa diringkas sebagai berikut :
- Pintar
(Intelligence). XML dapat menangani berbagai tingkat (level)
kompleksitas.
- Dapat
beradaptasi. Dapat mengadaptasi untuk membuat bahasa
sendiri. Seperti Microsoft membuat bahasa MSXML atau Macromedia
mengembangkan MXML.
- Mudah
pemeliharaannya.
- Sederhana.
XML lebih sederhana.
- Mudah
dipindah-pindahkan (Portability). XML mempunyai kemudahan
perpindahan (portabilitas) yang
lebih bagus.
BACK END PROGRAMMING
Back-End programming adalah program yang berjalan pada database secara otomatis ketika terjadi suatu pemicu tertentu. Contohnya dalam sistem basis data itu seperti PL/SQL. PL/SQL itu dirancang khusus untuk pengolahan mulus dari perintah SQL. Ini memberikan sintaks khusus untuk tujuan ini dan mendukung persis datatypes sama seperti SQL. Server-side PL / SQL disimpan dan disusun dalam Oracle Database dan berjalan dalam executable Oracle. Secara otomatis mewarisi ketahanan, keamanan, dan portabilitas Oracle Database.
Kelebihan PL/SQL
Blok PL/SQL juga mempunyai kelebihan tersendiri. Beberapa kelebihannya, antara lain
adalah:
- Integritas ketat dengan SQL
- Performa yang lebih baik
- Produktifitas yang lebih tinggi
- Portabilitas penuh
- Keamanan ketat
- Akses ke paket-paket yang telah di tentukan
- Dapat mendukung pemograman berorientasi objek dan mendukung pengembangan halaman dan aplikasi web dan server pages (PSPs).
Struktur PL/SQL
Blok PL/SQL mempunyai struktur yang dibagi menjadi 3 bagian. Berikut ini strukturnya, antara lain :
- Declaration Section (DECLARE)
- Execution Section (BEGIN, END)
- Exception Section (EXCEPTION)
- Komponen Utama PL/SQL
PL/SQL mempunyai komponen utama. Ada 3 komponen utama dalam blok PL/SQL, antara
lain adalah :
- Annonymous Blok ->Anonymous block ini tidak dibuat (CREATE) dan tak disimpan pada database, biasanya dijalankan dari dalam aplikasi.
- Strored Subprogram -> PL/SQL Block ini yang dipanggil dengan sekumpulan parameter. PL/SQL memiliki dua jenis subprogram yaitu: procedure dan function. Secara umum procedure digunakan untuk melaksanakan aksi dan function digunakan untuk komputasi suatu nilai.
- Trigger -> blok PL/SQL yang disimpan dalam database dan akan diaktivasi ketika kita melakukan statement-statement SQL (DELETE, UPDATE, dan INSERT) pada sebuah tabel. Trigger itu mempunyai event, nah event itu telah yang menandakan bahwa trigger harus dijalankan.
CURSOR
Cursor itu sama seperti select pada SQL. Cursor mempunyai 3 macam, yaitu antara lain :
- Cursor yang bertipe data refcursor dan dapat digunakan untuk semua query
- Cursor yang memiliki query
- Cursor yang memilik query dan sekaligus berpararameter
Sumber :
·
Materi Perkuliahan
Budi Laksono Putro, S.Si, MT.
·
Modul
Perkuliahan Yudi Wibisono, MT.