Monday, November 30, 2015

Sistem Basis Data (Take Home)

Basis Data vs Sistem Basis Data, Integritas Data, Transaksi dan Konkurensi, XML, Back End Programming


BASDAT VS SIMBADA

1) Basis data
Basis data adalah kumpulan terorganisasi dari data – data yang saling berhubungan sedemikian rupa sehingga dapat mudah disimpan, dimanipulasi, serta dipanggil oleh penggunanya. Definisi Basis data juga dapat diartikan sebagai kumpulan data yang terdiri dari satu atau lebih tabel yang terintegrasi satu sama lain, dimana setiap user diberi wewenang untuk dapat mengakses ( seperti mengubah,menghapus dll.) data dalam tabel-tabel tersebut.

Tujuan Basis Data:
  • Kecepatan serta kemudahan dalam menyimpan, memanipulasi atau juga menampilkan kembali data tersebut.
  • Efisiensinya ruang penyimpanan, karena dengan basis data, redudansi data akan bisa dihindari.
  • Keakuratan (Accuracy) data.
  • Ketersediaan (Availability) data.
  • Kelengkapan (Completeness) data, Bisa melakukan perubahan struktur dalam basis data, baik dalam penambahan objek baru (tabel) atau dengan penambahan field-field baru pada table.
  • Keamanan (Security) data, dapat menentukan pemakai yang boleh menggunakan basis data beserta objek-objek yang ada didalamnya serta menentukan jenis -jenis operasi apa saja yang boleh dilakukannya.
  • Kebersamaan Pemakai (Sharability), 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.
2) Sistem Basis Data
Sistem Basis Data adalah sistem yang terdiri dari koleksi data atau kumpulan data yang saling berhubungan dan program-program untuk mengakses data tersebut. Komponen Utama Sistem Basis Data:
  • Perangkat Keras (Hardware)
  • Sistem Operasi (Operating Sistem)
  • Basis data (Database)
  • Sistem Pengelola Basis Data (Database Management Sistem atau disingkat DBMS)
  • Yaitu pengelola basis data secara fisik tidak dilakukan oleh pemakai secara langsung, akan tetapi ditangani oleh sebuah perangkat lunak yang khusus. Perangkat Lunak inilah yang disebut DBMS (Database Management Sistem) yang akan menentukan bagaimana data diorganisasi, disimpan, diubah serta diambil kembali. Perangkat Lunak ini juga yang menerapkan mekanisme pengamanan data, pemakaian data secara bersama-sama, konsistensi data dan sebagainya.
  • Pemakai (User).
  • Aplikasi atau Perangkat Lunak yang lainnya.
  • Tujuan Utama Sistem Basis Data sendiri adalah :
  • Menunjukkan suatu lingkungan yang tepat dan efisien didalam melakukan pengambilan (retrieving) dan penyimpanan (storing) informasi basis data, serta menyediakan antarmuka yang lebih ramah kepada user dalam melihat data.
Kelebihan dari Sistem Basis Data:
-  Mengurangi duplikasi data
- Meningkatkan integritas data
- Memelihara indepensi data
- Meningkatkan keamanan data
- Memelihara konsistensi data
- Memanipulasi data dengan lebih canggih
- Mudah digunakan

Kekurangan Sistem Basis Data:
- Sistem lebih rumit, sehingga perlu tenaga ahli untuk mengurus masalah desain, program dan implementasinya
- Lebih mahal pengadaannya
- Bila terdapat akses yang tidak benar, dapat merusak basis data
- Karena semua data terdapat di pusat, maka overload dapat menyebabkan kerusakan pada hardware  maupun software
- Proses maintenance dan back up akan memakan waktu karena ukurannya besar




INTEGRITAS DATA

Pengertian integritas data secara luas mengacu pada kepercayaan dari sumber daya suatu sistem. Integritas data sangat penting karena dapat memastikan keakuratan, konsistensi, aksesibilitasi, dan kualitas tinggi dari sebuah data, sehingga sangat penting untuk mengikuti aturan pengintegritasan suatu data. Data yang mempunyai integritas identik di pertahankan selama operasi apapun (seperti bisnis transfer, penyimpanan, atau pengambilan). Secara sederhana dalam istilah bisnis, integritas data adalah jaminan bahwa data konsisten, bersertifikat dan dapat dirujukan.
Integritas Data dapat dikelompokan menjadi 2 bagian :
1. Integritas data yang berada dalam relasi, yaitu integritas entitas dan integritas domain.
2. Integritas yang berada di luar relasi, yaitu integritas referensial
Selain itu ada juga integritas yang ditentukan sendiri di dalam suatu perusahaan, yaitu integritas perusahaan (Enterprise Integrity/ User Defined Integrity).
Secara garis besar integritas data dalam model relasional meliputi :
1. Integritas Entitas
2. Integritas Domain
3. Integritas Referensial
4. Integritas Enterprise

INTEGRITAS ENTITAS
Integritas entitas mendifinisikan sebuah baris sebagai sebuah entitas yang unik untuk suatu tabel. Dalam integritas entitas, tidak ada baris yang di duplikat didalam suatu tabel.
Contoh :
create table Pembelian
(ID Pembelian smallint,
ID model smallint,
DeskripsiModel varchar (40),
Primary Key (IDPembelian));

INTEGRITAS DOMAIN
Domain adalah nilai-nilai yang dimungkinkan diasosiasikan dengan setiap atribut, Integritas domain merupakan validasi masukan dari sebuah kolom. Dengan integritas domain, tidak ada data yang melanggar jangkauan nilai di tiap kolom data.
Jenis domain yang harus dimiliki oleh setiap atribut :
1. Karakter bebas
2. Alphanumerik
3. Alphabet
4. Numerik
Pemeliharaan integritas domain :
1. Pendifinisian skema
2. Pemanfaatan properti field
3. Penerapan proses validasi pada pemasukan data
Contoh :
Create table biografi
(idpenulis smallint unsigned not null,
tahunLahir year not null,
kotalahir varchar (40) not null default
‘Kosong’);
create domain nilai numerik(3,2)
constraint value-test check (value >=0.00)

INTEGRITAS REFERENSIAL
Integritas referensial adalah dasar relasi antar tabel yaitu antara foregin key dengan promary key. Integritas referensial memastikan bahwa seluruh nilai dari foregin key cocok dengan nilai primary key yang dihubungkanya.
Contoh :
create table account
(account-number char (10),
branch-name char (15),
balance integer,
primary key (account-number),
foreign key (branch-namereference branch)
create table depositor
(costumer-name char (20),
account-number char (10),
primary key (costumer-name, account-number)
foreign key (account-number) reference account
foreign key (costumer-name) reference costumer)
on delete cascade on update cascade

INTEGRITAS ENTERPRISE
Integritas enterprise mengizinkan kita untuk menentukan spesifik business rules sendiri yang tidak sama pada kategori integritas yang lainnya.




TRANSAKSI DAN KONKURENSI

Transaksi pada basis data adalah satu atomic operasi berupa lojik pekerjaan maupun lojik recovery yang bisa terdiri dari beberapa intruksi. Tujuan dari transaksi adalah menjaga database dari kehilangan data dan kerusakan,seperti system crash dan pengaksesan data yang sama secara bersamaan oleh dua aplikasi yang berbeda yang menimbulkan gangguan. Ada empat elemen dalam transaksi yang biasa disingkat ACID, yaitu :
  • 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

Dan ada dua jenis transaksi yang paling penting dalam sistem basis data adalah :
  • Commit, memberi tanda bahwa transaksi telah selesai. Update dibuat permanen (bahkan jika setelah commit terjadi kegagalan system)
  • Rollback, memberi tanda bahwa transaksi gagal. Semua update harus di-undo
Untuk lojik recovery atau system recovery database dilakukan ketika terjadi kegagalan media, kegagalan system atau kesalahan pada transaksi. Sistem recovery menggunakan fungsi rollback dan checkpoint. Checkpoint adalah interval tertentu pada perjalanan transaksi basis data yang menyimpan keadaan basis data saat itu. Checkpoint dapat dilakukan untuk merecovery database secara backward (undo) maupun forward (redo).
Sedangkan konkurensi adalah sebuah mekanisme pada sistem basis data yang mengijinkan banyak transaksi pada saat bersamaan untuk mengakses data yang sama tanpa adanya gangguan. Pada umumnya terdapat 3 masalah utama pada konkurensi:
  • Lost update problem, ketika dua user mengupdate dua buah data yang sama
  •  Uncommited dependency problem, ketika user yang satu meretrieve data dan user yang lain merollback data tersebut
  •  Inconsistent analysis problem, ketika user yang satu meretrieve data dan user yang lain mengupdate data tersebut
Untuk menangani masalah tersebut, dilakukan proses locking, jika sebuah transaksi ingin record/resource tidak berubah dalam waktu tertentu maka dia meminta lock. Ada dua jenis lock yaitu :
  •  Exclusive Lock (Xlock) à write lock
  • Shared Lock (Slock) à read lock
Jadi 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 :
o   Permintaan Xlock transaksi lain pada R ditolak
o   Permintaan Slock transaksi lain pada R diterima

Tapi, ada satu masalah yang dapat terjadi ketika melakukan proses locking ini, yaitu deadlock. Yaitu, situasi dimana dua atau lebih transaksi dalam kondisi wait-state, satu sama lain menunggu lock dilepaskan sebelum dapat memulai. Cara penanganannya adalah:
  • Deteksi dan pecahkan deadlock
  • Deteksi deadlock : wait-for-graph
  • Pecahkan deadlock : salah satu dirollback paksa
  • Ostrich Algorithm : diabaikan




XML

Definisi XML
XML adalah bahasa markup seperti HTML, tetapi tanpa format yang tetap. Sebuah bahasa markup menyediakan kata-kata dan tag yang menggambarkan dokumen dan mengidentifikasikan bagian-bagiannya. HTML mengenai presentasi ketika XML bekerja untuk menyimpan dan mengirimkan data terstruktur. Semua file XML mengikuti beberapa aturan dasar untuk sintaks dan form.
Dari W3C yang merekomendasikan standar ini pada tanggal 10 Februari 1998 mengartikan bahwa eXtensibel Markup Language adalah sebuah format  berbasis teks yang sederhana untuk mempresentasikan informasi yang tersturktur seperti dokumen, data, konfigurasi, buku, transaksi, invoice, dan masih banyak lagi. Ini berasal dari format standar yang lebih tua disebut SGML (ISO 8879), agar lebih cocok untuk digunakan Web.

Kegunaan XML
XML merupakan salah satu format yang paling banyak digunakan untuk berbagi informasi terstruktur hari ini: antara program, antara orang-orang, antara komputer dan orang, baik lokal dan di seluruh jaringan.
Contoh singkat:







BACK END PROGRAMMING
Apa yang anda ketahui tentang back-end programming? Back-end programming adalah program yang berjalan pada database secara otomatis ketika terjadi suatu pemicu (trigger) tertentu. Dalam sistem basis data itu seperti PL/SQL. PL/SQL itu dirancang khusus untuk pengolahan mulus dari perintah SQL. Ini memberikan sintaks khusus untuk tujuan ini dan mendukung persis datatypes sama seperti SQL. Server-side PL / SQL disimpan dan disusun dalam Oracle Database dan berjalan dalam executable Oracle. Secara otomatis mewarisi ketahanan, keamanan, dan portabilitas Oracle Database. Blok PL/SQL ini memiliki beberapa kelebihan:
  • Integritas ketat dengan SQL;
  • Performa yang lebih baik;
  • Produktifitas yang lebih tinggi;
  • Portabilitas penuh;
  • Keamanan ketat;
  • Akses ke paket-paket yang telah di tentukan;
  • Dapat mendukung pemograman berorientasi objek dan mendukung pengembangan halaman dan aplikasi web dan server pages (PSPs).
 PL/SQL ini memiliki beberapa komponen utama:
  • Anonymous Block, Anonymous block ini tidak dibuat (CREATE) dan tak disimpan pada database, biasanya dijalankan dari dalam aplikasi.
  • Strored Subprogram, PL/SQL Block ini yang dipanggil dengan sekumpulan parameter. PL/SQL memiliki dua jenis subprogram yaitu: procedure dan function. Secara umum procedure  digunakan untuk melaksanakan aksi dan function digunakan untuk komputasi suatu nilai.
  • Trigger, blok PL/SQL yang disimpan dalam database dan akan diaktivasi ketika kita melakukan statement-statement SQL (DELETE, UPDATE, dan INSERT) pada sebuah tabel. Trigger itu mempunyai event, nah event itu telah yang menandakan bahwa trigger harus dijalankan. Adanya trigger dalam database akan meringankan kita dalam pembuatan aplikasi karena di dalam aplikasi yang kita buat, kita tidak perlu lagi untuk melakukan validasi data.



Sumber: