Pages

Rabu, 25 November 2015

Sistem Basis Data

         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.
 
====================================
Perbedaan Basis Data dan Sistem Basis Data 
====================================

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.

2.    Operasi-Operasi Dasar Basis Data
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).
·        b. Level Logik / Konseptual (Conseptual Level)
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.

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
====

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

0 komentar:

Posting Komentar

silahkan tulis komentarnya guys :)