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 :
  1. Entity Integritas
  2. Domain Integritas
  3. Refrential Integritas
  4. 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;
/

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;
/

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 ;
/

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;
/


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.

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
- 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 :
  1. Integritas ketat dengan SQL
  2. Performa yang lebih baik
  3. Produktifitas yang lebih tinggi
  4. Portabilitas penuh
  5. Keamanan ketat
  6. Akses ke paket-paket yang telah di tentukan
  7. 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 :

  1. Annonymous Blok ->Anonymous block ini tidak dibuat (CREATE) dan tak disimpan pada database, biasanya dijalankan dari dalam aplikasi.
  2. 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.
  3. 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:
  1. Self Documenting, maksudnya dengan melihat tagnya, kita dapat diketahui isi dokumen
  2. Dapat dibaca software dan manusia
  3. Fleksible
  4. Dapat dikembangkan tanpa mlanggar format lama
  5. Dapat mempresentasikan data yang komplek
  6. 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 :
  1. Setiap tagnya harus ada penutupnya
  2. Penamaan tagnya itu case sensitive, tidak diawali dengan angka, tidak mengenal spasi dan hindari ‘-’ dan ‘.’
  3. Urutan hirarkinya harus benar
  4. Setiap XML harus mengandung root (akar)
  5. 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>
  • 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>
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

Anonim mengatakan…
Merit Casino Bonus Codes 2021: Latest Bonus & Free Spins
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.