Basis
data terdiri dari 2 kata yaitu, basis yang artinya gudang dan data yang artinya
sekumpulan informasi fakta dunia nyata yang mewakili suatu objek, seperti
manusia, barang, dan lain-lain yang direkam kedalam bentuk angka, gambar,
simbol, teks, bunyi, huruf atau kombinasinya. Jadi pengertian basis data adalah
kumpulan data-data yang terorganisasi yang saling berhubungan sedemikian rupa
sehingga dapat mudah disimpan, dimaniplasi, serta dipanggil oleh penggunanya.
Sistem
basis data adalah suatu sistem yang menyusun dan mengelola record-record
menggunakan komputer untuk menyimpan atau merekam serta memelihara data-data
lengkap sebuah organisasi/perusahaan sehingga mampu menyediakan informasi yang
optimal yang diperlukan pemakai untuk proses pengambilan keputusan.
Dalam
pembuatannya, biasanya para analis melakukan desain basis data terlebih dahulu
untuk memudahkan pembuatan, pengolahan, dan penerapan basis data yang dibuat.
Desain basis data tersebut menggunakan Entity Relationship Diagram (ERD). Tool
yang digunakan untuk membuat desain basis data diantaranya Ms. Visio dan Power
Desaigner.
Tujuan
dan kegunaan sistem basis data yaitu mengatasi permasalahan yang timbul dari
cara konvensional, masalah yang diatasi diantaranya:
·
Redudansi data dan inkonsistensi data
·
Kesulitan pengaksesan data
·
Data isolation
·
Konkurensi
·
Masalah keamanan data
·
Masalah integritas data
2. Integritas Data
Integritas
data adalah jaminan konsistensi data terhadap semua status konstrain yang
diberlakukan kepada data tersebut, sehingga memberikan jaminan keabsahan data
itu sendiri. Integritas data sangat erat kaitannya dengan keamanan keberadaan
data, dimana dapat terjadi secara institusional dan asidential.
Integritas
data berarti data itu akurat, konsisten dan terbaru. Dalam perangkat lunak
basis data, berkurangnya pengulangan data berarti meningkatkan kesempatan
integritas data karena semua perubahan hanya dilakukan di satu tempat. Selain
itu, banyak perangkat lunak basis data yang menyediakan sistem cek bawaan yang
membantu memastikan akurasi data yang dimasukkan. Sebuah basis data dengan data
yang tidak benar tidak akan bisa menghasilkan informasi yang benar.
Jenis-jenis
integritas data dapat dikelompokan sebagai berikut :
·
Entity Integritas
Tidak
boleh ada baris data duplikat dalam satu tabel
·
Domain Integritas
Tidak
ada item yang melanggar jangkauan nilai di tiap kolom data
·
Refrential Integritas
Menjaga
relasi atau korespondensi suatu tabel
·
User Defined Integritas
Data
disuatu tabel harus memiliki nilai yang layak dan dapat diterima ditempat
sistem basis data itu diterapkan.
Contoh
dalam penanganan integritas untuk menangani proses update dan delete pada satu
key: Jika primary key bukan sebagai foreign key, maka operasi proses update dan
delete dapat dilakukan. Tetapi jika primary key merupakan foreign key, maka
operasi proses update dan delete tidak dapat dilakukan, atau dapat dilakukan
dengan cara melakukan pengaturan nilai foreign key ke nilai NULL atau kenilai
tertentu yang telah disepakati.
3. Transaksi & Concurrency
Transaksi adalah satu
atau beberapa aksi program aplikasi yang mengakses/mengubah isi basis data.
Transaksi merupakan bagian dari pengeksekusian sebuah program yang melakukan
pengaksesan basisdata dan bahkan juga melakukan serangkaian perubahan data.
DBMS yang kita gunakan harus menjamin bahwa setiap transaksi harus dapat
dikerjakan secara utuh atau tidak sama sekali. Tidak boleh ada transaksi yang
dikerjakan hanya sebagian, karena dapat menyebabkan inkonsistensi basis data.
Untuk itu transaksi selalu merubah basis data dari satu kondisi konsisten ke
kondisi konsisten lain.
Transaksi bertujuan
untuk mencegah dari kehilangan ataupun kerusakan data. Untuk menjamin agar
integritas dapat tetap terpelihara maka setiap transaksi harus memiliki sifat-sifat
:
·
Atomicity, dimana semua operasi dalam
transaksi dapat dikerjakan seluruhnya atau tidak sama sekali.
·
Consistency, dimana eksekusi transaksi
harus dapat menjamin data tetap konsisten setelah transaksi berakhir.
·
Isolation, 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.
·
Durability, dimana perubahan data yang
terjadi setelah sebuah transaksi berakhir dengan baik, harus dapat bertahan
bahkan jika seandainya sistem mati.
Sebuah transaksi
memiliki 2 kemungkinan :
a. Commit
: jika dilaksanakan lengkap seluruhnya dan basis data mencapai keadaan
konsisten baru.
b. Rollback
: jika transaksi tidak sukses, maka transaksu dibatalkan dan basis data
dikembalikan ke keadaan konsisten sebelumnya.
Ada 3 fenomena yang
harus dicegah selama eksekusi transaksi yang konkuren adalah:
a. Dirty
reads : sebiah transaksi membaca data yang telah ditulis oleh transaksi yang
lain tetapi belum di commit oelh transaksi lain tersebut.
b. Non
repeatable reads : sebuah transaksi yang membaca kembali sebuah data dimana
data tersebut sudah dirubah/dihapus oleh transaksi lain dan telah di commit.
c. Phantom
reads : sebuah transaksi menjalankan kembali sebuah query yang pertama
dilakukan dengan query yang kedua memberikan hasil eksekusi jumlah row berbeda.
Konkurensi
(Concurrency) adalah sebagai suatu firut dimana DBMS mengijinkan banyak
transaksi pada saat bersamaan untuk mengakses data yang sama. Dalam melakukan
konkurensi dibutuhkan suatu Concurrensy Control Mechanism (CCM) agar transaksi
yang dilakukan oleh banyak user pada suatu sistem didalam waktu yang bersamaan
tidak saling “mengganggu” dan tidak menghasilkan inconsistency data.
Ada 3 masalah dalam
konkurensi, yaitu :
a. Lost
update problem : masalah operasi update yang sukses dari seorang pengguna
kemudian ditimpali oleh operasi update dari pengguna lain.
b. Uncommited
depedency problem : masalah terjadi saat suatu transaksi membaca data dari transaksi
lain yang belum di commit.
c. Inconsistent
analysis problem : masalah terjadi saat satu transaksi membaca beberapa nilai
tetapi transaksi kedua pada waktu sama memodifikasi nilai tersebut.
4. XML
XML (Extensible Markup
Language) merupakan representasi data yang bisa didefinisikan sesuai keinginan
pengguna. Karena formatnya yang standar dan fleksibel, XML sering dipergunakan
pada berbagai pertukaran informasi. Dan merupakan suatu keuntungan bagi kita
bisa menyimpan pada basis data dan memprosesnya. XML tidak dikonsentrasi untuk
pemrosesan dan penampilan data tetapi terutama dimaksudkan untuk memberitahu
komputer apa arti sesungguhnya dari data yang disertakan.
XML tidak bergantung
pada satu platform alias platform independent juga language independent.
Ditujukan untuk melakukan pertukaran data (data transfering). XML juga sangat
berguna untuk membantu search engine dalam melakukan tugasnya, karena XML bisa
mengetahui dan memahami dengan pasti apa yang sesungguhnya ada di suatu halaman
web.
Aplikasi XML
·
Mendeskripsikan dokumen
·
Pertukaran data
·
Database
Aturan dalam sintaks
XML
·
Seluruh elemen XML harus memiliki tag
penutup
Contoh :
<student> </student>
·
Tag XML adalah case-sensitive
Contoh :
<Name>Benrigo
Novansar</name>
·
Elemen XML harus disarangkan dengan
tepat
Contoh :
<student>
<id>1400871</id>
<name>Benrigo
Novansar</name>
</student>
XML
parser
Parser adalah program
untuk “membaca” dokumen XML. Ada dua cara :
·
Tree based, isi XML dipindahkan ke
memori terlebih dahulu, DOM (Document Object Model).
·
Event based, isi tidak dipindahkan ke
momori. Fungsi callback dipanggil setiap menemui element, SAX (Simple API XML).
5. Back End Program
Back-end programming
adalah program yang berjalan pada basis data secara otomatis ketika terjadi
suatu pemicu tertentu. Dalam oracle ada beberapa metode untuk melakukan
back-end programming, yaitu dengan trigger dan stored procedure.
Trigger
Trigger adalah blok
PL/SQL yang disimpan dalam basis data dan akan diaktivasi ketika kita melakukan
statement-statement SQL (Delete, Update, Insert) pada sebuah tabel. Aktivasi
trigger didasarkan pada event yang terjadi didalam tabel tersebut sehingga
triggert dapat membantu dalam menjaga integritas dan konsistensi data.
Implementasi trigger yang sering ditemui dalam dunia nyata adalah untuk
mengeset dan mengubah nilai kolom dalam suatu tabel sehingga validasi nilai
dari tabel tersebut akan terjaga. Adanya trigger dalam basis data akan
meringankan kita dalam pembuatan aplikasi karena didalam aplikasi yang kita
buat, kita tidak perlu lagi untuk melakukan validasi data.
Stored procedure
Stored procedure adalah
subprogram yang disimpan didalam basis data berupa SQL + bahasa prosedural. Ada
beberapa kelebihan yang dapat diperoleh dengan menggunakan stored procedure,
meliputi :
·
Dijalankan di database server ->
performance lebih baik, network trafik lebih rendah
·
Tools DBA -> praktis, selalu tersedia
di database server
·
Dapat digunakan oleh banyak aplikasi
·
Dapat memanfaatkan tipe, fungsi yang
disediakan DBMS
·
Powerfull, tools sangat penting bagi
database designer, database programmer dan DBA
·
Hampir semua RDBMS mensupport
·
Walaupun sintaks berbeda, umumnya
menggunakan prinsip yang sama
Daftar
Pustaka