Rabu, 25 November 2015

Materi Sistem Basis Data


Perbedaan Basis Data dan sistem 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.
-          Sistem Basis Data adalah sistem yang terdiri dari koleksi data atau kumpulan data yang saling berhubungan dan program-program untuk mengakses data tersebut

Tujuan pada 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.
Sedangkan Tujuan Sistem Basis Data dalam mengatasi masalah-masalah pemrosesan data yang sering ditemui dengan menggunakan metode konvensional, permasalah yang diatasi diantaranya:
  • Redudansi data dan juga inkonsistensi data.
  • Kesuliatan dalam pengaksesan data.
  • Data Isolation.
  • Konkurensi pengaksesan.
  • Masalah keamanan.
  • Masalah Integritas.

Adapula komponen yang dimiliki oleh Sistem Basis Data yaitu :
  • 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.
Pemakai sistem basis data diantaranya:
  • Programmer Aplikasi yaitu orang atau pemakai yang berinteraksi dengan basis data melalui Data Manipulation Language (DML),
  • User Mahir (Casual User) yaitu pemakai yang berinteraksi dengan sistem tanpa menulis modul program. Mereka menyatakan query untuk mengakses data dengan bahasa query yang telah disediakan oleh suatu DBMS.
  • User Umum (End User/ Naïve User) yaitu Pemakai yang berinteraksi dengan sistem basis data melalui pemanggilan satu program aplikasi permanen (executable program) yang telah disediakan sebelumnya.
User Khusus (Specialized User) yaitu Pemakai yang menulis aplikasi basis data non konvensional, tetapi untuk keperluan-keperluan khusus.
Perbedaan dari Basis data dan Sistem basis data ialah dari segi sistem yang dimiliki, Basis data merujuk kepada sekumpulan data yang saling berhubungan sedangkan sistem basis data ialah sistem atau satu kesatuan komponen yang dapat mengolah data yaitu basis data.

2. 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 Di kelompokan 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 :
INEGRITAS 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 :
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 :
INTEGRITAS ENTERPRISE
Integritas enterprise mengizinkan kita untuk menentukan spesifik business rules sendiri yang tidak sama pada kategori integritas yang lainnya.

Transaksi dan Concurency
Transaksi adalah unit eksekusi program yang mengakses dan mungkin mengubah beberapa item data. Dalam Konsep transaksi di database harus di penuhi empat sifat database agar integritas database tetap terjaga. Adapun keempat sifat tersebut adalah:

Atomicity:
Setiap transaksi harus dijamin untuk dapat sukses dalam melakukan aksinya atau jika gagal , maka tidak berpengaruh apapun terhadap database.

Consistency:
Setiap transaksi adalah sebuah aksi kombinasi secara logikal dari sebuah state database yang
konsisten ke state yang lain dengan tetap menjaga kekonsisten-an database tersebut.

Isolation:
Meskipun ada beberapa transaksi yang berlangsung bersamaan, masing-masing transaksi tidak boleh mengetahui transaksi lain yang sedang berlangsung. Hasil transaksi sementara harus disembunyikan dari transaksi lain yang sedang berlangsung . (level transparansi transaksi dapat di set).
Durability:
Setelah sebuah transaksi sukses dilakukan, perubahan-perubahan yang dibuatnya terhadap database bersifat permanen, bahkan jika terjadi kegagalan sistem sekalipun.

Data Consistency:
Berarti bahwa user melihat data yang terdapat di database konsisten baik itu data yang telah di rubah olehnya sendiri maupun oleh user yang lain. Pada umumnya, basis data menerapkan beberapa bentuk data locking untuk menangani masalah yang berkaitan dengan concurrency, consistency dan integrity. Locks merupakan mekanisme yang dapat menjaga interaksi destruktif di antara beberapa transaksi yang mengakses resource yang sama. Berkaitan dengan level isolasi yang ada ANSI / ISO standard SQL (SQL92) mendefinsikan 4 level isolasi . Level isolasi didefinisikan sebagai derajat transparansi transaksi antara satu user dengan user yang sama pada pengaksesan data yang sama.
 Ada fenomena – fenomena tertentu yang harus di cegah selama eksekusi transaksi yang konkuren . 3 Fenomena yang harus di cegah adalah :
1.      Dirty Reads :
Sebuah transaksi membaca data yang telah di tulis oleh transaksi yang lain tetapi belum di commit oleh transaksi lain tersebut.
2.      Non Repeatable Reads :
Sebuah transaksi yang membaca kembali sebuah data dimana data tersebut sudah di rubah / di hapus oleh transaksi lain dan telah di commit.
3.      Phantom Reads :
Sebuah transaksi menjalankan kembali sebuah query dimana akan menemukan bahwa ada transaksi lain yang telah memasukkan record baru ke schema yang sedang di akses oleh transaksi tersebut, sehingga akan terlihat antara query yang pertama di lakukan dengan query yang kedua memberikan hasil eksekusi jumlah row yang berbeda .
Oracle memberikan pilihan kepada usernya untuk memilih 2 mode isolasi , yaitu : read commited dan serializable . Untuk mode read only oracle bukan bagian dari SQL92 sehingga dari tabel di atas read only tidak masuk ke level isolasi yang di tawarkan oleh SQL92 tetapi ditawarkan oleh oracle . Berikut penjelasan 3 level yang di sediakan oleh oracle padapenggunanya :

- Read Commited, Read commited merupakan level isolasi default dari oracle. Setiap query yang dieksekusi oleh suatu transaksi membaca hanya data yang telah di-commit, sebelum query (bukan transaksi) dimulai.Karena Oracle tidak mencegah dari data yang sedang di read oleh sebuah query di modifikasi oleh query / transaksi yang lain , sehingga kemungkinan data telah di rubah oleh transaksi yang lain bisa saja terjadi antara 2 eksekusi dari query tersebut.

- Serializable, Transaksi serializable membaca hanya perubahan yang telah dicommit pada saat transaksi dimulai, ditambah perubahan yang dibuat oleh transaksi itu sendiri melalui statemen insert, update, dan delete.

- Read Only,Transaksi read-only membaca hanya perubahan yang telah di-commit saat transaksi dimulai dan tidak memperbolehkan statemen insert, update, dan delete.

Level yang tertinggi dari 3 pilihan tersebut adalah ”serializable”. Hal ini di karenakan level ini memberikan level isolasi yang terbaik ketika banyak user mengakses data yang sama . Konsep serializable nampak sebagai sebuah urutan eksekusi secara serial , terurut berdasarkan transaksi yang terjadi. Cara mensetting level isolasi di oracle : (pilih salah satu) Ada 2 metode dalam mengeset level isolasi di oracle , yaitu :

- Pada level Transaksi (pada level ini hanya untuk mengeset sebuah transaksi)
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
SET TRANSACTION READ ONLY;

- Pada level Session (pada level ini akan berlaku pada seluruh transaksi yang dilakukan dan subsequent dari transaksi yang terjadi)
ALTER SESSION SET ISOLATION_LEVEL = READ COMMITTED
ALTER SESSION SET ISOLATION_LEVEL = SERIALIZABLE;

Dalam mengatur agar dalam pengaksesan resource data yang sama tidak saling terjadi interferensi .. maka oracle memberikan konsep locking . Oracle secara otomatis menentukan lock yang perlu saat mengeksekusi
SQL statement . Namun Oracle juga memperbolehkan user untuk mengeset lock sendiri secara manual.

 Ada 2 Mode lock yang terdapat pada oracle yaitu :
- Exclusive Mode, Mencegah resource yang sedang di pakai untuk di share . Mode lock ini di peroleh ketika akan memodifikasi data . Transaksi yang sudah me-lock data secara exclusive adalah transaksi yang berhak pula untuk melepaskan lock tersebut untuk kemudian di gunakan oleh transaksi yang lainnya .
- Share Mode, Mengijinkan resource yang berhubungan untuk di share , tergantung dari operasi yang terlibat di dalamnya . Multiple users yang sedang membaca data dapat men-share data tersebut , memegang lock dengan tipe share lcok untuk mencegah akses data secara concurrent oleh writer (seseorang yang membutuhkan exclusive lock). Beberapa transaksi mungkin akan membutuhkan share lock pada penggunaan resource yang sama .

Concurrency adalah banyaknya transaksi yang dijalankan secara bersamaan dalam satu waktu.
Hampir semua DBMS adalah multiuser, sehingga berpeluang terjadinya inkonsistensi basis data. Maka perlu adanya pengendalian persaingan eksekusi transaksi (concurrency control).





Back-End Programming

Back-End programming adalah program yang berjalan pada database 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 database dan akan diaktivasi ketika kita melakukan statement-statement SQL (DELETE, UPDATE, dan INSERT) pada sebuah tabel. Aktivasi trigger didasarkan pada event yang terjadi di dalam tabel tersebut sehingga trigger 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 database akan meringankan kita dalam pembuatan aplikasi karena di dalam aplikasi yang kita buat, kita tidak perlu lagi untuk melakukan validasi data.
Berikut adalah daftar yang mungkin untuk aktivasi trigger :
Event
Keterangan
Before Insert
Diaktifkan sekali sebelum statement insert
After Insert
Diaktifkan sekali setelah statement insert
Before Update
Diaktifkan sekali sebelum statement update
After Update
Diaktifkan sekali setelah statement update
Before Delete
Diaktifkan sekali sebelum statement delete
After Delete
Diaktifkan sekali setelah statement delete

Model-model yang digunakan untuk menspesifikasi aturan basis data aktif adalah model ECA (Event-Condition-Action). Aturan dalam model ECA memiliki tiga komponen yaitu:
  • Event, yang memicu suatu rule tersebut biasanya berupa operasi perubahan basis data yang secara eksplisit ditambahkan ke basis data. Namun pada umumnya, bisa berupa event temporal atau jenis event eksternal yang lain.
  • Condition, menentukan apakah suatu rule dijalankan atau tidak. Ketika suatu trigger dijalankan, maka bagian condition (bersifat optional) akan dievaluasi jika didefinisikan oleh yang membuat trigger. Jika evaluasi bagian condition bernilai TRUE maka aksi suatu rule dijalankan.
  • Action, biasanya berupa statement sql.
Manfaat trigger antara lain adalah :
  • Membuat integrity constraint yang kompleks.
  • Mencatat aktivitas suatu tabel (logging).
  • Sinkronisasi
Contoh Kasus :
Pada database supermarket, jika ada pembelian baru maka otomatis stok barang pada tabel barang akan berkurang sesuai dengan jumlah barang yang dibeli. Maka sintaks lengkapnya dalam pl / sql adalah sebagai berikut :

Create table barang(
kode_barang varchar2(10) primary key,
nama varchar2(50),
stok_barang number
);
create table pembelian(
id_pembelian number primary key,
kode_barang varchar2(10),
constraint fk_kd_brg foreign_key (kode_barang) references barang(kode_barang)
jumlah_beli number,
harga number
);
create or replace trigger trg_stok_brg after insert on jumlah_beli for each row
begin
update barang set stok_barang =stok_barang – :new.jumlah_beli where id_pembelian = :new.id_pembelian;
end;
/

Stored Procedure
Subprogram adalah PL/SQL Blok yang dipanggil dengan sekumpulan parameter. PL/SQL memiliki dua jenis subprogram yaitu: procedure dan function. Dimana secara umum procedure digunakan untuk melaksanakan aksi dan function digunakan untuk komputasi suatu nilai.
Stored procedure adalah subprogram yang disimpan di dalam database 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
    • Standarisasi business logic.
    • SP dapat dipanggil oleh aplikasi luar
  • Dapat memanfaatkan tipe, fungsi yang disediakan DBMS
  • Powerfull, tools sangat penting bagi DB designer, DB programmer dan DBA
  • Hampir semua RDBMS mensupport.
  • Walaupun syntax berbeda, umumnya menggunakan prinsip yang sama


XML
XML (eXtended Markup Language) adalah bahasa markup yang digunakan untuk menyimpan data (tidak ada program) dan tidak tergantung dengan tools tertentu (seperti editor, dbms, compiler, dsb). Jika demikian, Lalu digunakan untuk apa dokumen XML ini?
XML adalah merupakan suatu bahasa Markup. Markup yaitu bahasa yang berisikan kode-kode berupa tanda-tanda tertentu dengan aturan tertentu untuk memformat dokumen teks dengan tag sendiri agar dapat dimengerti.
Perbedaan antara XML dan HTML
Perlu di ingat bahwa:
XML bukan merupakan pengganti HTML.
XML dan HTML yang dirancang dengan tujuan yang berbeda:
XML dirancang untuk transportasi dan menyimpan data, dengan fokus pada apa data.
HTML dirancang untuk menampilkan data, dengan fokus pada bagaimana data terlihat.
HTML adalah tentang menampilkan informasi, sedangkan XML adalah membawa informasi tentang.
Keunggulan dari XML :
·         Dapat dibaca software dan manusia.
·         Flexible.
·         Independen terhadap bahasa pemrograman.
Dari beberapa keuntungan diatas masih terselip satu kerugian dari XML yaitu pengulangan Tag.


Tidak ada komentar:

Posting Komentar