Senin, 30 November 2015

SISTEM BASIS DATA

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