Assalamu'alaikum,
setelah sekian lama saya tidak membuat postingan, kali ini saya akan
menjelaskan beberapa materi yang telah dibahas pada Mata Kuliah Sistem Basis
Data di semester 3 Pendidikan Ilmu Komputer Universitas Pendidikan Indonesia.
Materi ini terdiri dari pengertian basis data, sistem basis data, integritas
data, transaksi, concurrency, back-end programming, dan XML.
====================================
====================================
====================================
A. Basis Data
1. Definisi Basis Data
Basis data terdiri dari dua kata, yaitu kata Basis dan Data.
Basis berarti markas atau gudang, dan data berarti representasi fakta dunia
nyata yang mewakili suatu objek, seperti manusia, barang, hewan, keadaan,
konsep peristiwa, dan lain-lain. Jadi, basis data dapat didefinisikan sebagai
kumpulan dari berbagai data yang saling berhubungan satu dengan yang lainnya.
Basis data tersimpan di perangkat keras, serta dimanipulasi dengan menggunakan
perangkat lunak. Basis data merupakan aspek yang sangat penting dalam sistem
informasi dimana basis data merupakan gudang penyimpanan data yang akan diolah
lebih lanjut. Basis datasangat penting karena dapat mengorganisasi data,
menghindari duplikasi data, hubungan antar data yang tidak jelas dan juga
update yang rumit.
Operasi-operasi dasar yang dapat kita lakukan berkenaan
dengan basis data dapat antara lain sebagai berikut:
- Pembuatan basis data baru (create database), yang identik dengan pembuatan lemari arsip yang baru.
- Penghapusan basis data (drop database), yang identik dengan perusakan lemari arsip (sekaligus beserta isinya jika ada).
- Pembuatan file/tabel baru ke suatu basis data (create table), yang identik dengan penambahan map arsip baru ke sebuah lemari arsip yang telah ada.
- Penghapusan file/tabel dari suatu basis data (drop table), yang identik dengan perusakan map arsip lama yang ada di sebuah lemari arsip.
- Penambahan/pengisian data baru ke sebuah file/tabel di sebuah basis data (insert), yang identik dengan penambahan lembaran arsip ke sebuah map arsip.
- Pengambilan data dari sebuah file/tabel (retrieve/search), yang identik dengan pencarian lembaran arsip dari sebuah map arsip.
- Pengubahan data dari sebuah file/tabel (update), yang identik dengan perbaikan isi lembaran arsip yang ada di sebuah map arsip.
- Penghapusan data dari sebuah file/tabel (delete), yang identik dengan penghapusan sebuah lembaran arsip yang ada di sebuah map arsip.
Operasi pada pembuatan objek (basis data dan tabel)
merupakan operasi awal yang hanya dilakukan sekali dan berlaku seterusnya.
Sedangkan operasi pada isi tabel (data) merupakan operasi yang akan berlangsung
berulang-ulang, karena operasi pada isi tabel dapat mewakili aktivitas
pengelolaan (management) dan
pengolahan (processing) data
dalam basis data.
3.
Objektif Basis Data
Pemanfaatan basis data
dapat dilakukan untuk memenuhi tujuan-tujuan (objektif) yang meliputi:
a. Kecepatan dan
Kemudahan (Speed)
Kecepatan
serta kemudahan dalam menyimpan, memanipulasi atau juga menampilkan kembali
data tersebut.
b. Efisiensi Ruang
Penyimpanan (Space)
Efisiensi/optimalisai
penggunaan ruang penyimpanan dapat dilakukan karena dengan basis data, redudansi data
akan bisa dihindari.
c. Keakuratan (Accuracy)
Pemanfaatan pengkodean
atau pembentukan relasi antar data bersama dengan penerapan aturan/batasan
(constraint) tipe data, domain data, keunikan data dan sebagainya yang secara
ketat dapat diterapkan dalam sebuah basis data, sangat berguna untuk menekan
ketidakakuratan/penyimpanan data.
d. Ketersediaan (Availability)
Dengan kepentingan
pemakaian data, sebuah basis data dapat memiliki data yang tersebar di banyak
lokasi geografis. Misalnya, data nasabah sebuah bank dipisah-pisah dan disimpan
di lokasi yang sesuai dengan keberadaan nasabah. Dengan pemanfaatan teknologi
jaringan komputer, data yang berada di suatu lokasi/cabang, dapat juga diakses
(menjadi tersedia/available) bagi cabang yang lain.
e. Kelengkapan (Completeness)
Kelengkapan dapat
melakukan perubahan struktur dalam basis data, baik dalam penambahan objek baru
(tabel) atau dengan penambahan field-field baru pada table.
f. Keamanan (Security)
Keamanan dapat
menentukan pemakai yang boleh menggunakan basis data beserta objek-objek yang
ada didalamnya serta menentukan jenis -jenis operasi apa saja yang boleh
dilakukannya.
g. Kebersamaan Pemakaian
(Sharebility)
Pemakai basis data bisa lebih dari satu orang,
tetapi tetap menjaga atau menghindari masalah baru seperti: inkonsistensi data
(karana data yang sama diubah oleh banyak pemakai pada saat yang bersamaan) dan
juga kondisi deadlock (karena ada banyak pemakai yang saling menunggu untuk
menggunakan data tersebut.
4.
Penerapan Basis Data
Bidang-bidang fungsional yang telah umum memanfaatkan basis
data demi efisiensi, akurasi dan kecepatan operasi antara lain sebagai berikut:
- Kepegawaian
- Pergudangan (inventori)
- Akuntansi
- Reservasi
- Layanan Pelanggan (customer care)
Sedangkan bentuk-bentuk organisasi/perusahaan yang
memanfaatkan basis data meliputi:
- Perbankan
- Asuransi
- Rumah Sakit
- Produsen Barang
- Industri Manufaktur
- Pendidikan/Sekolah
- Telekomunikasi
B. Sistem Basis Data
Sistem
basis data terdiri dari tiga kata, yakni system, basis, dan data. Sistem
berarti tatanan yang terdiri atas sejumlah komponen fungsional yang saling
berhubungan dan secara bersama-sama bertujuan untuk memenuhi suatu proses
tertentu. Basis data hanyalah sebuah objek yang pasif, ia ada karena ada
pembuatnya. Basis data tidak akan berguna tanpa alat penggeraknya. Gabungan antara
basis data dan pengelolanya menghasilkan sebuah system. Jadi, sistem basis data merupakan
sistem yang terdiri dari koleksi data atau kumpulan data yang saling
berhubungan dan program-program untuk mengakses data tersebut.
1.
Komponen Utama Sistem Basis Data :
- Perangkat Keras (Hardware) yang terdiri dari komputer (satu untuk sistem yang stand-alone dan lebih dari satu untuk sistem jaringan), memori sekunder on-line, memori sekunder off-line, dan media / perangkat komunikasi.
- Sistem Operasi (Operating Sistem)
- Basis data (Database)
- Sistem Pengelola Basis Data (Database Management Sistem atau disingkat DBMS)
- Pemakai (User), seperti programmer aplikasi, user mahir, user khusus, dan user umum.
- Aplikasi atau Perangkat Lunak yang lainnya
2.
Abstraksi Data
Abstraksi
data dapat mengacu pada tingkatan/ level dalam bagaimana cara melihat data
dalam sebuah system basis data. Tiga level abstraksi data antara lain sebagai
berikut.
· a. Level
Fisik (Physical Level)
Pemakai melihat data sebagai gabungan dari struktur dan data nya sendiri, dan berkompeten dalam mengetahui bagaimana representasi fisik dari penyimpanan atau pengorganisasian data (Teks, angka, himpunan bit data, dan lain-lain).
Pemakai melihat data sebagai gabungan dari struktur dan data nya sendiri, dan berkompeten dalam mengetahui bagaimana representasi fisik dari penyimpanan atau pengorganisasian data (Teks, angka, himpunan bit data, dan lain-lain).
· b. Level
Logik / Konseptual (Conseptual Level)
Menggambarkan data apa yang sebenernya (secara fungsional) disimpan dalam basis data dan hubungannya dengan data yang lain.
Menggambarkan data apa yang sebenernya (secara fungsional) disimpan dalam basis data dan hubungannya dengan data yang lain.
· c. Level
Penampakan (View Level)
Untuk pemakai yang hanya membutuhkan sebagian data atau informasi dalam basis data yang kemunculannya dimata pemakai diatur oleh aplikasi n-user.
Untuk pemakai yang hanya membutuhkan sebagian data atau informasi dalam basis data yang kemunculannya dimata pemakai diatur oleh aplikasi n-user.
3.
Struktur
Sistem Basis Data Keseluruhan
Sebuah
DBMS umumnya memiliki sejumlah komponen fungsional seperti:
- File Manager
- Database Manager
- Query Processor
- DML Precompiler
- DDL Compiler
Berikut struktur
yang menunjukkan keterhubungan antar komponen dalam DBMS dan juga hubungannya
dengan para pemakai dan basis datanya sendiri:
=============
Integritas Data
=============
1. Definisi Integritas Data
Integritas data merupakan kekonsistensi dan kebenaran
data yang disimpan. Antara representasi dunia nyata dan nilai dari data itu
harus dilindungi oleh sistem, agar mempunyai arti yang kesungguhnya. Integritas
data berguna untuk menjamin validitas data yang terkam ke dalam basis data,
karena suatu data sehrusnya mengikuti sejumlah karakteristik dasar sesuai
dengan ketentuan yang telah ada.
2.
Tipe-Tipe
Constraint pada Integritas Data
Tipe-tipe constraint pada
integritas data untuk diimplementasikan ke dalam SQL, antara lain sebagai berikut.
- NOT NULL, yaitu suatu kolom tidak diizinkan berisi nilai NULL, harus ada nilainya.
- UNIQUE, berfungsi untuk mencegah suatu kolom untuk memiliki dua baris atau lebih berisi data yang sama.
- PRIMARY KEY, didefinisikan dalam model relasional sebagai pengenal unik untuk tiap nilai dalam entitas.
- REFERENTIAL INTEGRITY , dapat memastikan bahwa data pada suatu tabel didefinisikan pada tabel lainnya dan mengikat kedua tabel tersebut dalam hubungan parent/child atau referenced/dependent.
- CHECK, berfungsi untuk pengecekan apakah sebuah kolom memenuhi sebuah kondisi spesifik yang dievaluasi dengan nilai boolean.
3.
Jenis-Jenis
Integritas Basis Data
- Domain integrity (Integritas jangkauan nilai) -> Tidak ada item data yang melanggar jangkauan nilai di tiap kolom data.
- Integrity Entity (Integritas Entitas) -> Tidak ada baris data duplikat dalam satu tabel.
- Integrity Referential (Integritas acuan) -> Menjaga relasi atau korespondensi antartabel.
- Redundant Data Integrity (Integritas Data Antar Tabel) -> Data di sebuah tabel tidak berulang di tabel lain.
- Bussiness Rule Integrity (Integritas Aturan Nyata)
Data di suatu tabel harus memiliki
nilai yang layak dan dapat diterima ditempat sistem basis data itu diterapkan.
Integritas jenis ini bersifat kasuistis,
artinya sangat bergantung pada jenis data, lokasi, lingkungan, dan waktu
penerapan basis data.
======================
Transaksi dan Concurrency
======================
1. Transaksi
Transaksi dalam basis data adalah program yang di dalam
pelaksanaannya akan mengubah basis data. Setiap transaksi harus menunjukan
konsistensi basis data. Pada saat awal dan akhir, program harus tetap
konsisten.
Tujuan transaksi adalah menjaga database dari kehilangan
data dan kerusakan, seperti sistem crash dan pengaksesan data yang sama secara
bersamaan oleh dua aplikasi yang berbeda yang menimbulkan gangguan. Untuk
menjamin agar integritas data dapat terpelihara maka transaksi harus memiliki
sifat-sifat sebagai berikut:
- 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.
Jenis
transaksi yang penting dalam sistem basis data, yaitu:
- Commit adalah tanda bahwa transaksi sudah selesai dilakukan, atau transaksi yang dilakukan sudah menjadi data.
- Rollback adalah tanda bahwa transaksi gagal dilakukan, artinya transaksi yang diupdate harus diulangi atau di-undo.
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:
- Aktif (Active), yang merupakan status awal (initial state) sebuah transaksi yang menunjukkan transaksi tersebut masih dieksekusi.
- ·Berhasil Sebagian (Partially Committed), yaitu keadaan yang dicapai transaksi tepat pada saat operasi terakhir dalam transaksi selesai dikerjakan.
- Gagal (Failed), yang merupakan keadaan dimana sebuah transaksi terhenti pengeksekusiannya sebelum tuntas sama sekali.
- 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).
· Berhasil
Sempurna (Committed), keadaan dimana transaksi telah dinyatakan berhasil
dikerjakan seluruhnya dan basis data telah merefleksikan perubahan-perubahan
yang memang diinginkan transaksi.
2.
Concurrency
Concurrency adalah
banyaknya transaksi yang dijalankan secara bersamaan dalam satu waktu tanpa ada
gangguan. Berikut masalah utama pada concurrency:
- Lost update problem, ketika dua user mengupdate dua buah data yang sam.
Contoh :
Satuan
Waktu
|
Transaksi
A
|
Transaksi
B
|
1
|
Retrieve r
|
–
|
2
|
–
|
Retrieve r
|
3
|
Update r
|
–
|
4
|
–
|
Update r
|
Contoh
di atas mengemukakan bahwa transaksi A tidak akan dianggap dan data update pada
transaksi A akan di overwrite oleh transaksi B. Hal ini akan menimbulkan lost
update problem pada transaksi A.
- Uncommited dependency problem, ketika user yang satu me-retrieve data dan user yang lain me-rollback data tersebut
Contoh :
Satuan
Waktu
|
Transaksi
A
|
Transaksi
B
|
1
|
–
|
Update r
|
2
|
Update r
|
–
|
3
|
–
|
Rollback
|
Contoh di atas mengemukakan bahwa transaksi
A akan menerima data yang salah karena pada transaksi B saat di update terjadi
kesalahan kemudian di rollback.
- Inconsistent analysis problem, ketika user yang satu meretrieve data dan user yang lain mengupdate data tersebut
Contoh :
Satuan
Waktu
|
Transaksi
A
|
Transaksi
B
|
1
|
Retrieve r1
|
–
|
2
|
Retrieve r2
|
–
|
3
|
–
|
Update r1
|
4
|
–
|
Commit
|
5
|
Update r3 = r1 + r2
|
Contoh di atas mengemukakan bahwa
transaksi A akan menghasilkan data yang salah dan tidak sesuai database karena
saat analisis di transaksi A terjadi update data pada salah satu datanya.
Masalah tersebut ditangani dengan proses locking, jika
sebuah transaksi ingin record/resource tidak berubah dalam waktu tertentu maka
dia bisa meminta lock. Ada dua jenis lock, yakni:
- Exclusive Lock (Xlock) -> write lock
- Shared Lock (Slock) -> read lock
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
Ketika
melakukan proses locking ini, terdapat suau masalah yang terjadi, biasanya
disebut dengan deadlock. Deadlock adalah keadaan ketika atau lebih proses
saling menunggu meminta resources untuk waktu yang tidak terbatas lamanya. Cara
penanganannya yaitu sebagai berikut:
- Deteksi dan pecahkan deadlock
- Deteksi deadlock -> wait-for-graph
- Pecahkan deadlock -> salah satu dirollback paksa
- Ostrich Algorithm -> diabaikan
==================
Back-end Programming
==================
Back-end Programming adalah kode yang tidak terlihat oleh pengguna dan bekerja dibelakang layar atau server.
1.
Stored
Procedure
Stored Procedure adalah sekumpulan
perintah SQL yang disusun dalam sebuah prosedur yang memiliki nama dan fungsi
tertentu. Struktur badan procedure secara umum:
CREATE OR REPLACE PROCEDURE <nama
procedure> AS
/*Deklarasi variable, type, dan local subprogram*/
BEGIN
/*Bagian utama prosedur*/
EXCEPTION
/*Penangan error*/
END <nama procedur>;
2.
Function
Selain Stored Procedure, terdapat
juga Function. Sedikit berbeda dengan Stored Procedure, disini ada nilai yang
dikembalikan. 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 stored procedure
dan fungsi gunakan perintah :
EXECUTE <nama procedure/fungsi>;
Sedangkan untuk menghapusnya
menggunakan perintah
DROP PROCEDURE/FUNCTIOM <nama
procedure/function>;
3.
Trigger
Secara keseluruhan trigger hampir
sama dengan Procedure dan Function, hanya saja untuk Trigger dioperasikan
secara otomatis ketika terdapat aktivitas statement-statement SQL seperti
Insert, Update dan Delete. Trigger ini bisa diaktivasi sebelum atau pun sesudah
terjadinya satatement-statement tersebut.
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
====
1. Definisi 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
menyediakan suatu cara terstandarisasi namun bisa dimodifikasi untuk
menggambarkan isi dari dokumen.[4] Dengan sendirinya, XML dapat digunakan untuk
menggambarkan sembarang view database, tetapi dengan suatu cara yang standar.
2.
Tipe File XML
- XML, merupakan standar format dari struktur berkas (file).
- XSL, merupakan standar untuk memodifikasi data yang diimpor atau diekspor.
- XSD, merupakan standar yang mendefinisikan struktur database dalam XML.
3.
Keunggulan
XML
- Simple, karena XML tidak serumit HTML, strukturnya jelas, dan sederhana.
- Intelligence, karena XML mampu menangani berbagai komplesitas markup bertingkat-tingkat.
- Portable, karena memisahkan data dan presentasi
- Fast, pencarian data cepat
- Extensible, dapat ditukar/digabung dengan dokumen XML lain.
- Linking, XML dapat melakukan linking yang lebih baik daripada HTML, bahkan dapat melink satu atau lebih poin dari dalam maupun luar data.
- Maintenance, XML mudah untuk diatur dan dipelihara, karena hanya berupa data, stylesheet dan link terpisah dari XML.
Seperti halnya HTML, XML juga
menggunakan elemen yang ditandai dengan tag pembuka (diawali dengan ‘<’ dan
diakhiri dengan ‘>’), tag penutup(diawali dengan ‘</ ‘diakhiri ‘>’)
dan atribut elemen(parameter yang dinyatakan dalam tag pembuka misal <form
name=”isidata”>). Hanya bedanya, HTML medefinisikan dari awal tag dan
atribut yang dipakai didalamnya, sedangkan pada XML kita bisa menggunakan tag
dan atribut sesuai kehendak kita.
4. Kegunaan dari XML
· XML adalah segalanya tentang manajemen
data memungkinkan ketersediaan format
yang sesuai untuk kita. Untuk mengenal tentang bagaimana XML mampu menangani
data-data kita, sebaiknya perhatikan keterangan berikut :
- XML memungkinkan kita untuk mengumpulkan informasi dan menggunakannya kembali dengan berbagai cara.
- Data XML tidak dibatasi pada satu format aplikasi. Kita dapat mendisain suatu dokumen XML yang memungkinkan kita untuk mengumpulkan data secara online dan menggunakannya dalam dokumen yang berbeda, database, dan spreadsheet. Sebagai contoh, seandainya perusahaan kita mengumpulkan informasi-informasi penjualan terhadap suatu produk menggunakan dokumen XML yang terisi data. Data XML yang sama bisa digunakan untk membuat arsip pembelian, laporan pengawasan, dan grafik penjualan.
- Pembuatan informasi yang portabel memerlukan perencanaan dan disain sebelum informasi dikumpulkan.
========
Referensi
========
========
Fathansyah. 2012. Basis Data. Bandung: Informatika
https://simbuda.wordpress.com/2013/05/19/integritas-data-dan-transaksi-concurrency/
http://mkr-site.blogspot.co.id/2012/07/apa-itu-xml-dan-gunanya-pada-blogger.html