Pengenalan Sistem Basis Data
Sebelum berbicara terlalu jauh,
terlebih dahulu mari kita kenali apa itu Sistem Basis Data yang dalam pembahasan ini akan sering
kita sebut Sisbasdat. Jika kita artikan dari setiap katanya, sistem berarti
satu kesatuan yang saling terhubung untuk mencapai suatu tujuan. Basis berarti tempat
atau ruangan. Dan terakhir data berarti representasi fakta dunia nyata
(keterangan yang menggambarkan kejadian atau fakta yang dapat berupa lambang).
Dari pengertian singkat tersebut, dapat kita simpulkan Sistem Basis Data adalah
suatu sistem yang terdiri dari kumpulan file-file yang saling berhubungan dan
disimpan padga suatu tempat. Adapun definisi Sistem Basis Data menurut
Fathansyah merupakan system yang terdiri atas kumpulan tabel yang saling
berhubungan (dalam sebuah basis data di sebuah system komputer) dan sekumpulan
program (yang biasa disebut DBMS/Data Base Management System) yang memungkinkan
beberapa pemakai dan/atau program lain untuk mengakses dan memanipulasi
tabel-tabel data tersebut. Oke, berikut ada 6 pokok bahasan yang akan dibahas
pada pembahasan Sisbasdat kali ini:
1.
Integritas Data
Integritas data adalah
konsistensi dan kebenaran data yang disimpan. Setiap data, tentu memerlukan
keaman. Dan fungsi dari integritas data
ini adalah untuk mewakili kebenaran data itu sendiri. Ada 3 komponen yang
dibutuhkan oleh data diantaranya adalah data itu harus konsisten, akurat dan
handal. Berikut adalah jenis-jenis integritas data:
Entity Integritas
Merupakan sebuah baris sebagai
sebuah entitas yang unik dari suatu tabel. Dalam tabel setiap baris harus
mempunyai identitas yang unik yang disebut dengan primary key. Hubungan
antara primary key dan foreign key menyatakan apakah sebuah baris table
dapat diubah atau di hapus. Primary key
tidak boleh null. Batasan:
o Primary key
o Unique key
o Unique index
o Identity
Domain Integritas
Merupakan validasi dari
masukan untuk sebuah kolom. Kita 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). Batasan dan implementasi:
o Default
o Check
o Foreign Key
o Tipe data, default, rules
Referential Integritas
Seluruh nilai foreign
key harus dipastikan cocok dengan nilai primary key yang dihubungkan. Hal
tersebut menyatakan relasi antar tabel bahwa ada hubungan antara foreign key
dengan primary key. Batasan dan implementasi :
o Check
o Foreign Key
o Triggers dan Stored Procedure
User Defined Integritas
Mengizinkan kita sebagai pemakai dapat menetapkan
batasan dan aturan dari data yang disimpan.
Dalam integritas data
ini dikenal dengan yang namanya constraint. Constraint ini merupakan aturan
untuk membatasi jenis dari integritas data tersebut. Ada beberapa jenis
constraint, diantaranya adalah primary key, foreign key, unique key, not null
dan check.
2.
Transaksi
Transaksi merupakan
suatu aksi/perbuatan yang
dilakukan oleh program
bertujuan untuk mengakses atau mengubah
data yang terdapat di database. Data yang baik adalah data yang tidak hilang
dan tidak rusak. Maka dari itu, transaksi ini harus dilindungi dari kehilangan
dan kerusakan data. Setiap instruksi yang dimasukkan harus dijamin dikerjakan
semua untuk menjamin konsistensi dari data itu sendiri. Ada 2 operasi penting
yang ada dalam transaksi, yaitu:
o Commit : ini menandakan bahwa transaksi sudah
selesai
o Rollback : ini menandakan bahwa transaksi yang dilakukan
gagal, dan harus diulang.
Adapun 4 elemen yang harus
dimiliki oleh transaksi yang sering disingkat ACID. Acid di sini bukanlah acid
dalam dunia kimia yang berarti asam. ACID di sini adalah:
o A untuk Atomicity: bahwa transaksi haruslah berhasil
secara keseluruhan, atau gagal sama sekali.
o C untuk Consistency: bahwa transaksi harus dapat
menjaga konsisten data pada database.
o I untuk Isolation: bahwa transaksi yang dilakukan
secara bersamaan haruslah bisa dimulai dan bisa berakhir.
o D untuk Durability: bahwa setelah transaksi
berakhir, data yang
berubah tidak boleh
kembali ke data
awal walaupun sistem mati.
Hampir semua masalah
yang terjadi pada transaksi dapat diatasi dengan commit dan rollback.
3.
Concurrency
Jika kita artikan,
concurrency artinya bersamaan. Maksudnya adalah sumber daya yang hanya 1
digunakan oleh banyak pemakai. Kenapa? Karena hal tersebut lebih efisien dan
adanya kebutuhan yang sama dari setiap pemakainya. CCM (Concurrency Control
Mechanism) berhubungan dengan system. Tujuannya adalah untuk mengatur sistem
dan agar transaksi tidak saling mengganggu. Pada concurrency terdapat Lost
Update Problem, Uncommitted dependency problem dan Incosistent analysis problem.
Dalam transaksi
database, ada 3 hal yang harus dicegah yaitu:
o Dirty Read : Transaksi membaca data dari hasil
transaksi lainnya yang gagal. Kedua transaksi tersebut berjalan bersamaan.
o Nonrepeatable Read : Transaksi membaca ulang data
yang telah di baca sebelumnya karena data tersebut telah di modifikasi oleh
transaksi lainnya.
o Phantom Read : Transaksi membaca sebuah data yang
telah hilang akibat dari transaksi yang lainnya.
Pada
pembahasan ini juga kita akan membahas Lock. Apa itu lock? Lock adalah kunci.
Ya, benar… Locking di sini maksudnya adalah pemakai tidak dapat merubah dalam
waktu tertentu. Ada dua jenis locking, pertama exclusive lock (write lock) dan
shared lock (read lock). Dalam locking ini dapat terjadi masalah, yaitu
deadlock. Deadlock merupakan dua atau lebih transaksi dalam kondisi yang saling
menunggu lock untuk dilepaskan sebelum transaksi dimulai. Deadlock ini dapat
ditangani dengan me-rollback dengan paksa salah satu dari transaksi yang sedang
dilakukan.
4.
Back End Programming
PL/SQL merupakan
singkatan dari Procedural Language extension of SQL. Komponen Utama pada PL/SQL
yaitu: Anonymous PL/SQL Block, Strored Subprogram (Stored Procedure, Stored
Function) dan Trigger. Pada point ini akan fokus membahas stored procedure atau
function dan trigger.
Stored Procedure atau Function
PL/SQL memiliki
dua jenis subprogram yaitu:
procedure dan function.
Stored procedure adalah kumpulan perintah SQL yang berisi perintah umum
yang berhubungan dengan database pada server. Function adalah jenis PL/SQL yang
menghasilkan satu nilai (hubungannya dengan perhitunga, mengecek eksistensi,
kevalidan data). Secara umum procedure
digunakan untuk melaksanakan aksi
dan function digunakan untuk komputasi suatu nilai. Untuk membuat sebuah stored
procedure atau fungsi dalam oracle, caranya adalah create procedure (nama_procudure)
atau create function (nama_function). Kelebihan dari stored procedure adalah
eksekusinya menjadi cepat.
Perbedaan stored
procedure dan function:
1)
Function dapat
mengembalikan suatu nilai balikan (return value)
2)
Pada function
parameter yang diperbolehkan hanya parameter IN
3)
Function bisa
langsung dipanggil dari perintah SELECT SQL
Trigger
Trigger adalah
blok PL/SQL yang
disimpan dalam database
dan akan diaktivasi
ketika kita melakukan statement-statement SQL
(DELETE, UPDATE, dan
INSERT) pada sebuah
tabel. Untuk membuat sebuah sebuah trigger dalam oracle, caranya adalah
create trigger (nama_trigger). Trigger ini dapat memodifikasi data, modifikasi
data yang dilakukan pada tabel yaitu berupa perintah Insert, Update dan Delete.
5.
XML
XML merupakan singkatan
dari Extensible Markup Language. Tujuan dari XML ini adalah agar keamanan dari
data lebih terjaga. Lalu, apa bedanya XML dan HTML? Berbicara tentang XML, maka
kita akan berbicara tentang data. Sedangkan HTML lebih membicarakan tentang
tampilan. Beberapa keuntungan menggunakan XML adalah:o XML ini didukung oleh banyak tools (RDBMS, bahasa pemrograman).
- Platform independen dan language independen, maksudnya data dan dictionary dibawa secara bersamaan.
- Dapat mempresentasikan data yang kompleks.
Namun, dari banyaknya
keuntungan, terdapat juga kerugiannya yaitu salah satunya adalah adanya
pengulangan tag, karena tag dalam XML dibuat oleh pembuat XML itu sendiri.
Dalam XML ada juga yang namanya XML parser. Apa itu parser? Parser di sini
adalah suatu program untuk membaca dokumen XML. Ada dua cara yaitu tree based
(isi XML dipindahkan ke memori terlebih dahulu) dan event based (isi XML tidak
dipindahkan ke memori terlebih dahulu).
6.
Kemanan Basis Data
Sebuah data atau
beberapa data yang telah disimpan dalam basis data perlu dilindungi dari akses
yang tidak diizinkan, dari perusakan atau pengubahan yang dapat merugikan,
serta terjadinya ketidakkonsistenan yang tak sengaja. Pelanggaran yang terjadi
dalam pemakaian basis data dikelompokkan ke dalam aksi yang disengaja (berhubungan
dengan hal-hal pembacaan, pengubahan dan penghapusan data yang tidak diizinkan)
dan aksi tidak sengaja (berhubungan dengan system, user, dsb).
Menurut Fathansyah
dalam bukunya yang berjudul Basis Data, Pengamanan Basis Data (Database
Secuurity) merupakan aspek dalam system basis data yang mengacu pada
aspek-aspek dan upaya-upaya pengamanan dari akses yang berbahaya atau merugikan
(sengaja) tersebut. Sedangkan Pemeliharaan Integritas Basis Data (Database
Integrity) lebih ditujukan pada aspek-aspek dan upaya-upaya untuk mencegah dan
menanggulangi pelanggaran konsistensi data secara tidak sengaja.
Pada keamanan basis
data, ada beberapa tingkatan diantaranya:
- Fisikal, lokasi dimana terdapat system komputer haruslah aman secara fisik dari serangan perusak
- Manusia, wewenang pemakai harus dilakukan dengan hati-hati untuk mengurangi kemungkinan adanya manipulasi oleh pemakai yang berwenang
- Sistem Operasi, kelemahan pada SO ini memungkinkan pengaksesan data oleh pihak yang tidak berwenang
- Sistem Basis Data, pengaturan hak pemakai yang baik
Sumber:
Basis Data, Fathansyah
Slide Pak Yudi Wibisono
Modul praktikum Simbada
http://filzahapritasari.blogspot.com/2011/09/contoh-dan-pembahasan-tentang-stored.html
Kunjungi:
http://www.cs.upi.edu/
http://cs.upi.edu/elearning/
Kunjungi:
http://www.cs.upi.edu/
http://cs.upi.edu/elearning/