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.