SISTEM BASIS DATA
Materi
:
1. Perbedaan basis data dan sistem basis data
2. Integritas data
3. Transaksi dan concurency
4. Back end programing
5. XML
Basis data adalah,
basis data terdiri dari 2 (dua) kata, yaitu kata Basis dan Data. Basis bisa di
artikan sebagai markas ataupun gudang, tempat berkumpul. Sedangkan data yaitu
kumpulan fakta dunia nyata yang mewakili suatu objek, seperti manusia, barang,
dan lain-lain yang direkam ke dalam bentuk angka, bentuk huruf, simbol, teks,
bunyi, gambar atau juga kombinasinya. Jadi pengertian 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 sendiri adalah
sebagai berikut ini:
- 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 pengertian 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.
Kegunaan atau Fungsi Sistem Basis Data, 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.
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.
Integritas Data
Integritas data adalah jaminan konsistensi data terhadap semua status konstrain yang diberlakukan terhadap data tersebut, sehingga memberikan jaminan keabsahan data itu sendiri. Integritas data sangat erat kaitannya dengan keamanan keberadaan data, dimana dapat terjadi secara institusional atau asidental.
Jenis-Jenis Integritas Data dapat dikelompokkan sebagai berikut :
Integritas data adalah jaminan konsistensi data terhadap semua status konstrain yang diberlakukan terhadap data tersebut, sehingga memberikan jaminan keabsahan data itu sendiri. Integritas data sangat erat kaitannya dengan keamanan keberadaan data, dimana dapat terjadi secara institusional atau asidental.
Jenis-Jenis Integritas Data dapat dikelompokkan sebagai berikut :
- Entity Integritas
- Domain Integritas
- Refrential Integritas
- User Defined Integritas
1. Entity Integritas
Entity Integritas mendefinisikan sebuah baris sebagai sebuah entitas yang unik untuk suatu tabel. Entity integritas memaksa integritas dari column atau primary key dari suatu tabel (melalui index, unique, constraints, primary key). Primary key tidak boleh null.
Dalam integritas entitas,
tidak ada baris yang duplikat di dalam satu tabel.
Contoh:
Create
table pembelian
(IDPembelian samllint,
IDModel smallint,
DeskripsiModel
varchar(40),
Primary
key
(IDPembelian));
Create
table pembelian
(IDPembelian samllint,
IDModel smallint,
DeskripsiModel
varchar(40),
Primary
key
(IDPembelian)
Unique
(ID Pembelian, ID Model));
2. Domain Integritas
Domain Integritas merupakan validasi dari masukan untuk sebuah kolom. Anda dapat memaksa domain integritas dengan membatasi tipe (melalui data types), format (melalui check constraints dan rules), atau range nilai-nilai yang mungkin (melalui Foreign Key Constraints, Check Constraints, Default Definitions dan rules).
Contoh:
Create
table biografi
(idpenulis smallint
unsigned not null,
Tahunlahir year not null,
Kotalahir varchar(40) not
null default
‘kosong’);
Create
domain nilai numeric(3,2)
Constraint
value-test check(value >= 0.00)
3. Refrential Integritas
Refrential Integritas memastikan bahwa seluruh nilai dari foreign key cocok dengan nilai primary key yang dihubungkan.
Contoh:
Create
table customer
(customer-name char(20),
Customer-street char(3),
Customer-city char(30),
Primary
key(customer-name));
Create
table branch
(branch-name char(15),
Branch-city char(30),
Assest integer,
Primary
key
(branch-name));
Create
table account
(account-number chat(10),
Branch-name char(15),
Balance integer,
Primary
key(account-number),
Foreign
key(branch-name)
references branch)
Create
table depositor
(customer-name char(20),
Account-number char(10),
Primary
key(customer-name,
account-number),
Foreign
key(account-number)
references account,
Foreign
key(account-name)
references customer)
On
delete cascade on update cascade
4. User Defined Integritas
User–defined integritas mengizinkan Anda untuk menentukan spesific business rules sendiri yang tidak sama pada kategori integrity yang lain.
Types of Data Integrity
Bagian ini menggambarkan atauran yang dapaat diterapkan pada kolom tabel ayang menekankan perbedaan tipe data pada integritas data.
1. Null Rule
Aturan null adalah definisi aturan pada single column yang membolehkan atau tidak membolehkan inserts atau updates untuk pengisian rows kosong (the absence of a value) pada kolom ini.
2. Unique Column Values
Aturan nilai unique didefinisan pada sebuah column (or set of columns) yang membolehkan insert or update hanya pada row jika itu berisi sebuah nilai unique dalam sebuah kolom (or set of columns).
3. Primary Key Values
Aturan nilai primary key didefinisikan pada sebuah key (a column or set of columns) tertentu bahwasetiap each row dalam table dapat mengidentifikasi keunikan dengan nilai kunci tersebut
4. Referential Integrity Rules
Aturan referential integrity adalah definsi aturan pada sebuah kunci key (a column or set of columns) dalam sebuah table yang menjamin bahwa data dalam kunci cocok dengan nilai dalam sebuah relasi table (the referenced value).
Aturan-Aturan Referential Integrity
Referential integrity mengacu pada kaitan antar row/record dari 2 tabel yang berhubungan melalui Foreign Key yang bersangkutan.
Pada insert, record harus dimasukkan di tabel utama dahulu, kemudian baru di tabel kedua.
Pada delete, record harus dihapus di tabel kedua dahulu, kemudian baru di tabel utama.
Field yang dihubungkan dari tabel utama haruslah berupa Primary Key.
Kedua field yang saling behubungkan harus memiliki Tipe data dan lebar data yang sama.
Tidak dibenarkan penghapusan record pada tabel utama yang telah dihubungkan dengan tabel yang direlasikan.
Macam action dalam Referential Integrity:
NO ACTION atau RESTRICT : update atau delete tidak dilakukan. Ini merupakan pilihan default.
CASCADE : nilai kolom di tabel kedua disesuaikan dengan nilai kolom di tabel utama
SET NULL : nilai kolom di tabel kedua dijadikan NULL
SET DEFAULT : nilai kolom di tabel kedua dijadikan nilai DEFAULT (nilai DEFAULT harus ditentukan pada waktu pembuatan tabel).
Membuat Constraint
Constraint merupakan suatu aturan yang membatasi jenis data yang diijinkan untuk dimasukkan ke dalam tabel. Constraint dapat dibuat baik pada saat pembuatan tabel atau setelah tabel dibuat. Ketika constraint dibuat setelah pembuatan tabel, maka constraint tersebut hanya mengecek data yang ada (yang telah dimasukkan dalam tabel). Jika ada beberapa pelanggaran maka constraint akan ditolak.
Tipe-Tipe Constraint
Microsoft SQL Sever menyediakan beberapa tipe Constraint, yaitu :
- PRIMARY KEY Constraint, untuk menspesifikasikan kolom dalam tabel. Tidak boleh kosong, dan harus unik, untuk menghubungkan satu tabel dengan tabel lain.
- FOREIGN KEY Constraint, digunakan untuk menspesifikasikan kolom foreing key pada suatu tabel. Foreing key digunakan untuk menghubungkan dua tabel. Kolom foreign key adalah kolom atau kombinasi beberapa kolom dalam suatu tabel yang selalu merujuk pada kolom primary keypada suatu tabel. SQL Server 2000 / MySQL – Navicat 2005 @ 2010 : www.didiksetiyadi.com 2 , dds@didiksetiyadi.com
- UNIQUE Constraint, digunakan untuk menjamin bahwa data pada suatu kolom atauy beberapa kolom tidak diijinkan sama. CHECK Constraint, digunakan untuk membatasi suatu nilai pada kolom dengan nilai tertentuyang diijinkan masuk.
- DEFAULT Constraint, merupakan atribut opsionalyang digunakan untuk memberikan suatu nilai tertentupada suatu kolom jika kolom tersebut tidak dimasukkan suatu data.
- Not Null, digunakan untuk menjamin tidak ada nilai null ( kosong) yang muncul pada suatu kolom tertentu sehingga bila tidak mengisikan nilai pada kolom tersebut maka akan muncul error.
TRIGGER, PROCEDURE, FUNCTION
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.
Syntax:
CREATE [or replace]
TRIGGER nama_trigger
( BEFORE|AFTER ) ( INSERT|UPDATE [OF nama_kolom,..]|DELETE )ON nama_tabel
[FOR EACH ROW] [WHEN (kondisi)]
DECLARE
Deklarasi tipe data
BEGIN
Trigger body
END;
/
( BEFORE|AFTER ) ( INSERT|UPDATE [OF nama_kolom,..]|DELETE )ON nama_tabel
[FOR EACH ROW] [WHEN (kondisi)]
DECLARE
Deklarasi tipe data
BEGIN
Trigger body
END;
/
Anonymous Block
Block PL/SQL tak bernama (anonymous) menyimpannya dalam Oracle Precompiler.
Anonymous block tidak dibuat (CREATE) dan tak disimpan pada database, biasanya dijalankan dari dalam aplikasi, pada run-time aplikasi akan mengirimkan anonymous PL/SQL block ini kepada database oracle, dimana anonymous block tsb di compile dan dieksekusi.
Syntax:
DECLARE
Deklarasi variabel
BEGIN
Program prosedural
EXCEPTION
Penangananan eksepsi (ERROR)
END;
/
Deklarasi variabel
BEGIN
Program prosedural
EXCEPTION
Penangananan eksepsi (ERROR)
END;
/
SUBPROGRAM
PL/SQL Block yang dipanggil dengan sekumpulan parameter. PL/SQL memiliki dua jenis subprogram yaitu: procedure dan function. Dimana secara umum procedure
Syntax:
Prosedur
CREATE OR REPLACE
PROCEDURE AS
Deklarasi variabel
BEGIN
Prosedural & sql
EXCEPTION
Penanganan eksepsi (ERROR)
END ;
/
Deklarasi variabel
BEGIN
Prosedural & sql
EXCEPTION
Penanganan eksepsi (ERROR)
END ;
/
Fungsi
CREATE OR REPLACE
FUNCTION RETURN
AS
Deklarasi variabel
BEGIN
procedural and SQL
EXCEPTION
penanganan eksepsi (ERROR)
RETURN();
kalusa return ini wajib di deklarasikan
END;
/
AS
Deklarasi variabel
BEGIN
procedural and SQL
EXCEPTION
penanganan eksepsi (ERROR)
RETURN();
kalusa return ini wajib di deklarasikan
END;
/
Pengertian
Transaksi
Transaksi merupakan bagian dari pengeksekusian
sebuah program yang melakukan pengaksesan basis data 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 hanya dikerjakan sebagian, karena dapat
menyebabkan inkonsistensi basis data.
Untuk itu transaksi selalu merubah basis data dari satu kondisi
konsisten ke kondisi konsisten lain.
Sebuah transaksi berpeluang untuk
‘mengganggu’ integritas basis data yang dapat membuat kondisi/hubungan antar
data tidak seperti seharusnya. Untuk
menjamin agar integritas dapat tetap terpelihara maka setiap transaksi harus
memiliki sifat-sifat:
1.
Atomik, dimana semua operasi dalam transaksi dapat
dikerjakan seluruhnya atau tidak sama sekali.
2.
Konsisten, dimana eksekusi transaksi secara tunggal harus dapat
menjamin data tetap konsisten setelah transaksi berakhir.
3.
Terisolasi, 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.
4.
Bertahan, dimana perubahan data yang terjadi setelah sebuah
transaksi berakhir dengan baik, harus dapat bertahan bahkan jika seandainya
sistem menjadi mati.
Terhentinya suatu transaksi tidak
selalu diakibatkan oleh kegagalan insidental baik dari perangkat keras (crash)
ataupun kemacetan sistem operasi (hang).
Tapi lebih sering terjadi karena user sengaja menghentikan transaksi
atau karena penghentian transaksi oleh DBMS akibat adanya kondisi tak
diinginkan, seperti deadlock atau timeout.
Sebuah transaksi dapat menghasilkan
dua kemungkinan:
a.
Jika dilaksanakan lengkap seluruhnya, transaksi
tersebut telah di commit dan basis
data mencapai keadaan konsisten baru.
b.
Jika transaksi tidak sukses, maka transaksi dibatalkan
dan basis data dikembalikan ke keadaan konsisten sebelumnya (rollback).
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:
1.
Aktif (Active), yang merupakan status awal
(initial state) sebuah transaksi yang menunjukkan transaksi tersebut masih
dieksekusi.
2.
Berhasil Sebagian (Partially Committed), yaitu
keadaan yang dicapai transaksi tepat pada saat operasi terakhir dalam transaksi
selesai dikerjakan.
3.
Gagal (Failed), yang merupakan keadaan dimana
sebuah transaksi terhenti pengeksekusiannya sebelum tuntas sama sekali.
4.
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).
5.
Berhasil Sempurna (Committed), keadaan
dimana transaksi telah dinyatakan berhasil dikerjakan seluruhnya dan basis data
telah merefleksikan perubahan-perubahan yang memang diinginkan transaksi.
Diagram
berikut ini menunjukkan aliran dan siklus peralihan status (state) dari sebuah
transaksi:
Ketika sebuah transaksi mulai dikerjakan, maka
transaksi itu berada dalam status aktif.
Jika terjadi penghentian sebelum operasi berakhir, maka transaksi segera
beralih ke status gagal/failed.
Namun, bila keseluruhan transaksi selesai dikerjakan, maka transaksi itu
berada pada status berhasil sebagian/partially committed, dimana
perubahan-perubahan data masih berada di dalam memori utama yang bersifat volatile/tidak
permanen. Transaksi dalam status ini
masih mungkin untuk pindah ke status failed, karena ada pembatalan transaksi
baik sengaja maupun tidak. Jika tidak
beralih ke status failed, maka nilai-nilai data yang ada di memori utama akan
direkam ke dalam disk yang bersifat permanen.
Begitu proses perekaman selesai, maka transaksi beralih ke status committed. Sementara itu, transaksi yang berada pada
status failed, maka DBMS harus menjalan proses rollback. Proses tersebut dapat berupa:
·
Mengulangi pelaksanaan transaksi / restart,
yang dilakukan pada transaksi yang failed akbiat kemacetan perangkat keras
ataupun perangkat lunak dan bukannya penghentian transaksi secara sengaja oleh
user.
·
Mematikan transaksi / kill, yang dilakukan
untuk transaksi yang dihentikan secara sengaja oleh user atau akibat adanya
kesalahan lojik dalam penulisan aplikasi.
Begitu salah satu dari pilihan proses tersebut selesai
dilakukan, maka transaksi berpindah ke status batal (aborted). Status berhasil
sempurna/committed maupun batal/aborted merupakan status terminasi,
yaitu status akhir dalam pelaksanaan transaksi.
Transaksi adalah satu atau beberapa
aksi program aplikasi yang mengakses/mengubah isi basis data.
Transaksi merupakan bagian dari pengeksekusian sebuah program yang melakukan
pengaksesan basis data 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 hanya dikerjakan sebagian,
karena dapat menyebabkan inkonsistensi basis data. Untuk itu transaksi selalu merubah
basis data dari satu kondisi konsisten ke kondisi konsisten lain.
Transaksi merupakan bagian dari pengeksekusian sebuah program yang melakukan
pengaksesan basis data 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 hanya dikerjakan sebagian,
karena dapat menyebabkan inkonsistensi basis data. Untuk itu transaksi selalu merubah
basis data dari satu kondisi konsisten ke kondisi konsisten lain.
Sebuah transaksi berpeluang untuk
‘mengganggu’ integritas basis data yang dapat membuat kondisi/hubungan antar
data tidak seperti seharusnya.
Transaksi bertujuan untuk
mencegah dari kehilangan ataupun kerusakan data. Untuk menjamin agar integritas
dapat tetap terpelihara maka setiap transaksi harus memiliki sifat-sifat:
1. Atomicity, dimana semua
operasi dalam transaksi dapat dikerjakan seluruhnya atau tidak sama sekali.
2. Consistency, dimana
eksekusi transaksi harus dapat menjamin data tetap konsisten setelah transaksi
berakhir.
3. 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.
4. Durability, dimana
perubahan data yang terjadi setelah sebuah transaksi berakhir dengan baik,
harus dapat bertahan bahkan jika seandainya sistem mati.
Terhentinya suatu transaksi tidak
selalu diakibatkan oleh kegagalan insidental baik dari perangkat keras (crash)
ataupun kemacetan sistem operasi (hang). Tapi lebih sering terjadi karena
user sengaja menghentikan transaksi atau karena penghentian transaksi oleh DBMS
akibat adanya kondisi tak diinginkan, seperti deadlock atau timeout.
Sebuah transaksi dapat menghasilkan
dua kemungkinan:
a.
Jika dilaksanakan lengkap seluruhnya, transaksi tersebut telah di commit
dan basis data mencapai keadaan konsisten baru.
b.
Jika transaksi tidak sukses, maka transaksi dibatalkan dan basis data
dikembalikan ke keadaan konsisten sebelumnya (rollback).
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:
1.Aktif (Active) yang
merupakan status awal (initial state) sebuah transaksi yang menunjukkan
transaksi tersebut masih dieksekusi.
2.Berhasil Sebagian (Partially
Committed), yaitu keadaan yang dicapai transaksi tepat pada saat operasi
terakhir dalam transaksi selesai dikerjakan.
3.Gagal (Failed), yang
merupakan keadaan dimana sebuah transaksi terhenti pengeksekusiannya sebelum
tuntas sama sekali.
4.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).
5. Berhasil Sempurna
(Committed), keadaan dimana transaksi telah dinyatakan berhasil dikerjakan
seluruhnya dan basis data telah merefleksikan perubahan-perubahan yang memang
diinginkan transaksi.
Ketika sebuah transaksi mulai dikerjakan, maka transaksi itu berada dalam status aktif. Jika terjadi penghentian sebelum operasi berakhir, maka transaksi segera beralih ke status gagal/failed. Namun, bila keseluruhan transaksi selesai dikerjakan, maka transaksi itu berada pada status berhasil sebagian/partially committed, dimana perubahan-perubahan data masih berada di dalam memori utama yang bersifat volatile/tidak permanen.
Transaksi dalam status ini masih
mungkin untuk pindah ke status failed, karena ada pembatalan transaksi baik
sengaja maupun tidak. Jika tidak beralih ke status failed, maka
nilai-nilai data yang ada di memori utama akan direkam ke dalam disk yang
bersifat permanen. Begitu proses perekaman selesai, maka transaksi
beralih ke status committed. Sementara itu, transaksi yang berada
pada status failed, maka DBMS harus menjalan proses rollback.
Proses tersebut dapat berupa:
· Mengulangi pelaksanaan
transaksi / restart, yang dilakukan pada transaksi yang failed akbiat
kemacetan perangkat keras ataupun perangkat lunak dan bukannya penghentian
transaksi secara sengaja oleh user.
· Mematikan transaksi / kill,
yang dilakukan untuk transaksi yang dihentikan secara sengaja oleh user atau
akibat adanya kesalahan lojik dalam penulisan aplikasi.
Begitu salah satu dari pilihan
proses tersebut selesai dilakukan, maka transaksi berpindah ke status batal (aborted).
Status berhasil sempurna/committed maupun batal/aborted merupakan
status terminasi, yaitu status akhir dalam pelaksanaan transaksi
OPERASI TRANSAKSI PADA ORACLE
Didalam transaksi ,terdapat dua buah
operasi untuk menjaga integritas dan ketahanan data,
diantaranya dengan melakukan operasi commit dan rollback.
Commit berfungsi untuk menandakan bahwa transaksi telah selesai
dilaksanakan.
Rollback berfungsi untuk memberitahukan bahwa transaksi harus diulang
karena adanya suatu kegagalan.
mari kita coba:
Commit
Commit
- buat tabel buat sequence lalu
insert data
- . Kita akan coba penerapan
commit dan rollback sekarang, buka 2 jendela SQL Command Line kemudian login
dengan user yang sama
- lalu masukan data yang tadi kita
ketik ke salah satu command line. lalu setelah
memasukan data-data di comman line
pertama, select di kedua command line tsb.
- langkah selanjutnya insert data di
command line pertama lalu select di kedua command line
-nah terlihat di command line kedua tidak muncul data insert yang terbaru. maka ketik commit di command line pertama setelah itu select kembali di command line yang kedua
Save Point
Savepoint, sebuah titik dimana kita telah selesai melakukan satu atau beberapa transaksi. Berfungsi sebagai checkpoint untuk dipanggil oleh perintah rollback. Format perintah membuat savepoint adalah
SAVEPOINT [NAMA_SAVE_POINT];
Berikut contoh membuat savepoint:
Rollback
Rollback, perintah untuk mengulang transaksi
(biasanya karena ada kegagalan). Format penulisan perintah rollback
adalah sebagi berikut:
ROLLBACK;
Atau
ROLLBACK TO SAVEPOINT [nama_save_point];
Contoh:
Setelah kita membuat savepoint, kita bisa memanggil
lagi savepoint tersebut. Untuk contoh kita hapus dulu isi data lalu kita coba
tampilkan sebagai berikut:
- Sekarang kita rollback data ke savepoint coba
dan tampilkan isi tabel coba;
- Data kembali ke keadaan savepoint
CONCURRENCY
Concurrency
adalah DBMS menginzinkan banyak transaksi dalam waktu yang bersamaan untuk
mengakses suatu data yang sama. Concurrency ini dibutuhkan agara data tidak
saling menggangu. 3 masalah concurrency, antara lain :
- Lost Update
- Uncommitted dependency problem
- Incosistent analysis problem
Isolasi transaksi
Dalam transaksi pada sistem basis data ada 3 hal yang harus dicegah:
1. Dirty read
Dua transaksi berjalan bersama, dan
salah satu transaksi membaca hasil transaksi lainnya yang gagal
2. Non-repeatable read
Transaksi membaca ulang data yang
telah dibaca sebelumnya karena telah diubah oleh transaksi lain yang berjalan
bersamaan.
3. Phantom read
Transaksi membaca data yang telah
hilang oleh transaksi lainnya Untuk mencegah 3 hal di atas, Oracle
memiliki 2 level isolasi, yaitu:
1. Read Command
Transaksi hanya bisa membaca data yang telah selesai
di eksekusi (commit) oleh transaksi lain.
2. Serializable (mencegah Phantom
read)
Proses transaksi di-serial-kan, artinya transaksi satu
akan berjalan setelah transaaksi lainnya selesai. Tetapi aplikasi yang
menerapkan level isolasi ini harus bersedia mengulangi transaksi akibat
kegagalan penserialan transaksi.
Pada level ini, query SELECT hanya melihat data yang
telah di COMMIT sebelum transaksi dimulai.
Pada level ini juga jika transaksi mengandun DML (Data
Manipulation Language) yang mencoba merubah data yang mungkin sudah dirubah
pada transaksi lain yang belum di-commit maka perintah DML tersebut
akan gagal. Berikut Contoh format penerapan perintah serializable:
SET TRANSACTION ISOLTION LEVEL SERIALIZABLE;
1. Locking Protocol
Locking berfungsi untuk menjaga integritas data. Ada 2
buah metode locking:
1. Shared Lock (S-Lock)
Transaksi hanya bisa melakukan pembacaan. (dapat
dimiliki oleh beberapa transaksi dalam satu waktu.
2. Exclusive Lock (X-Lock)
Transaksi bisa melakukan perubahan dan pembacaan
terhadap data. (hanya dapat dimiliki oleh satu transaksi pada satu waktu.
2. Penguncian Level Tabel
Berfungsi untuk mengunci suatu tabel untuk mencegah
perubahan atau penghapusan tabel oleh transaksi. Format penulisan perintah
penguncian tabel adalah:
LOCK TABLE [nama_tabel];
3. Penguncian Level Baris
Penguncian pada baris yang sedang digunakan oleh suatu
transaksi sampai transaksi tersebut selelsai dieksekusi(commit).Penguncian
ini hanya berlaku untuk operasi UPDATE dan DELETE.
4. Deadlock
Keadaan dimana dua atau lebih transaksi dalam
kondisi wait-state, satu sama lain menunggu lock dilepas sebelum di
mulai.(Yudi wibisono).
BACK
END PROGRAMMING
Mungkin kalian
bingung, apa yang dimaksud dengan backend programming? Dari katanya saja sudah
ketahuan, backend itu dibelakang dan programming itu pemogramman. Jadi, suatu
program yang bekerja dibelakang atau yang tidak dilihat oleh user. Contohnya
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.
Kelebihan PL/SQL
Blok PL/SQL juga
mempunyai kelebihan tersendiri. Beberapa kelebihannya, antara lain adalah :
- 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).
Struktur PL/SQL
Blok PL/SQL
mempunyai struktur yang dibagi menjadi 3 bagian. Berikut ini strukturnya,
antara lain :
- Declaration Section (DECLARE)
- Execution Section (BEGIN, END)
- Exception Section (EXCEPTION)
Komponen Utama PL/SQL
PL/SQL
mempunyai komponen utama. Ada 3 komponen utama dalam blok PL/SQL, antara lain
adalah :
- Annonymous Blok ->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.
CURSOR
Cursor itu sama seperti select pada SQL. Cursor mempunyai 3 macam, yaitu
antara lain :
- Cursor yang bertipe data refcursor dan dapat digunakan untuk semua query
- Cursor yang memiliki query
- Cursor yang memilik query dan sekaligus berparameter.
XML
(EXtensible Markup Languange)
XML itu apa si? Apa bedanya dengan HTML? Yap, disini kita akan bahas apa
itu XML. XML (EXtensible Markup Language) adalah Markup
language yang digunakan untuk dokumen yang mengandung informasi terstruktur
ditujukan untuk pertukaran data via web. Salah satu alasan kita menggunakan XML
adalah karena XML berdiri sendiri tidak tergantung pada platfrom karena
XML mempunyai bahasa sendiri. XML diaplikasikan sebagai pertukaraan data,
mendeskripsikan data dan database.
XML itu
tidak sama dengan HTML, walaupun sama-sama markup language namun XML dan HTML
mempunyai kegunaan yang berbeda. Kalo HTML digunakan hanya untuk menampilkan
tampilan saja yang aturannya sudah ditentukan, sedangkan XML digunakan untuk
pertukaran data via web dan anturannya ditentukan sendiri.
Keuntungan dan Kerugian
XML mempunyai
keuntungan dan kerugiannya. Dibawah ini adalah keuntungannya, antara lain:
- Self Documenting, maksudnya dengan melihat tagnya, kita dapat diketahui isi dokumen
- Dapat dibaca software dan manusia
- Fleksible
- Dapat dikembangkan tanpa mlanggar format lama
- Dapat mempresentasikan data yang komplek
- Indpendent terhadap bahasa pemograman dan OS
Salah satu
kerugiannya adalah terjadinya pengulangan tag yang mengakibatkan tidak efisien
dan ukurannya membengkak.
Aturan
XML tidak
dikerjakan sesuka hati tanpa sebuah aturan, XML juga mempunyai aturan.
Aturan-aturan XML adalah sebagai berikut :
- Setiap tagnya harus ada penutupnya
- Penamaan tagnya itu case sensitive, tidak diawali dengan angka, tidak mengenal spasi dan hindari ‘-’ dan ‘.’
- Urutan hirarkinya harus benar
- Setiap XML harus mengandung root (akar)
- Setiap atribut harus dalam tanda petik
Tag XML
•
XML terlihat dan distruktur sangat menyerupai HTML.
Keduanya menggunakan tag-tag untuk membatasi data yang dirujuk
(dijadikan acuan). Keduanya dapat menggunakan tag bersarang (nested
tag) dan juga dapat mempunyai atribut-atribut yang ditambahkan ke tag-nya
•
Di dalam XML tidak dibatasi dengan penggunaan tag normal,
tag pre-defined seperti “font” dan “br”, bahkan tag-tag di dalam
dokumen XML harus dibuat sendiri oleh si pemrogram. Tag-tag tersebut
dapat dinamai sesuai keinginan dan dapat digunakan untuk menyajikan sesuatu
yang diinginkan. Ini adalah fitur yang tidak dapat ditemukan pada bahasa scripting
web lain
•
Tag yang digunakan dalam XML yang sangat menyerupai
kontruksi HTML, juga terlihat seperti tag HTML. Tag dibentuk oleh
suatu kata atau sejumlah kata yang dibatasi di dalam tanda <> dan
</>
Aturan dalam
sintaks XML
- Seluruh elemen XML harus memiliki tag penutup
Contoh:
<student>
</student>
- Tag XML adalah case-sensitive
Contoh:
<Name>Ajie
Stefan</name> adalah salah
- Elemen XML harus disarangkan dengan tepat
Contoh:
<student>
<id>1403288</id>
<name>Ajie Stefan</name>
</student>
<id>1403288</id>
<name>Ajie Stefan</name>
</student>
- Dokumen XML harus memiliki sebuah elemen Root
- Nilai atribut XML harus diberi tanda quote (“ “)
Contoh:
<student
sex=“male”>
<id>1403288</id>
<name>Ajie Stefan</name>
</student>
<id>1403288</id>
<name>Ajie Stefan</name>
</student>
XML PARSER
- Parser -> program untuk “membaca” dokumen XML
- Dua cara:
- Tree based, isi XML dipindahkan ke memori terlebih dulu -> DOM (Document Object Model).
- Event based -> tidak dipindahkan ke memori. Fungsi callback dipanggil setiap menemui element. -> SAX (Simple API XML)
Struktur
tree
•
Dokumen XML harus
memiliki elemen root. Elemen ini merupakan “parent” dari seluruh
elemen yang ada di dalam dokumen
•
Elemen-elemen di
dalam suatu dokumen XML membentuk sebuah dokumen tree
<root>
<child>
<subchild>.....</subchild>
</child>
</root>
Tampilan XML dalam Web Browser
Script XML:
<?xml version="1.0"?>
<academic>
<student>
<id>12345</id>
<name>Almira Wijaya</name>
</student>
<student>
<id>12346</id>
<name>Danuar Aldi</name>
</student>
</academic>
•
Jika terdapat
suatu kesalahan di dalam dokumen XML, maka web browser akan menyediakan suatu
pesan bantuan yang memberitahukan di mana error tersebut terjadi dan
menampilkan potongan kode yang salah.
Memformat
XML
•
Terdapat 2 cara
untuk memformat data XML untuk menampilkannya pada web browser, yaitu
dengan menggunakan:
1.
CSS (Cascading
Style Sheets)
2.
XSL (eXstensible
Stylesheet Language)
Memformat XML dengan CSS
•
Selain dapat
digunakan untuk memformat dokumen HTML, CSS juga dapat digunakan untuk
memformat dokumen XML. CSS dapat melakukan redefinisi tag HTML, memungkinkan
tag tersebut disajikan dalam cara berbeda. Dengan cara yang sama, CSS dapat
digunakan untuk mendefinisikan bagaimana tag XML ditampikan.
Script contoh.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="estyle.css"?>
<academic>
<student>
<id>12345</id>
<name>Almira Wijaya</name>
</student>
<student>
<id>12346</id>
<name>Danuar Aldi</name>
</student>
</academic>
Script estyle.css:
academic
{
background-color: #ffffff;
width: 100%;
}
student
{
display: block;
background-color: #DDDDDD;
margin-bottom: 5pt;
}
id
{
background-color: #999999;
margin-bottom: 12pt;
}
name
{
color: #0000FF;
font-size: 12pt;
}
Tampilan dokumen di dalam web browser setelah diformat dengan
menggunakan CSS:
Memformat XML dengan XSL
•
XSL merupakan
singkatan dari eXstensible Stylesheet Language, dan merupakan suatu
bahasa yang dikembangkan untuk memformat dokumen XML.
Untuk menformat kode maka harus dibuat terlebih dahulu suatu stylesheet
XLS. Meskipun XLS adalah sebuah bahasa yang lengkap dan untuk menyelesaikan
masalah di atas cukup memanfaatkan beberapa fiturnya saja
Script contoh.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="estyle.xsl"?>
<academic>
<student>
<id>12345</id>
<name>Almira Wijaya</name>
</student>
<student>
<id>12346</id>
<name>Danuar Aldi</name>
</student>
</academic>
Script estyle.xsl
<?xml version="1.0"?>
<HTML xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<BODY STYLE="font-family:Arial, helvetica, sans-serif;
font-size:12pt;
background-color:#FFFFFF">
<xsl:for-each select=“academic/student">
<DIV STYLE="background-color:#EEEEEE; padding:4px">
<SPAN STYLE="color:black">ID :<xsl:value-of
select="id"/></SPAN>
</DIV>
<DIV STYLE="background-color:#EEEEEE; padding:4px">
<SPAN STYLE="color:black">Name: <xsl:value-of
select="name"/></SPAN>
</DIV>
</xsl:for-each>
</BODY>
</HTML>
Tampilan dokumen di dalam web browser setelah diformat dengan
menggunakan XSL:
REFERENSI:
Komentar
Play 제왕 카지노 at Merit Casino with exclusive No Deposit offers and no deposit งานออนไลน์ bonus codes for top slots & video poker games. 메리트 카지노 ✓Play casino games on your iPhone or Android.