XML yaitu Markup language untuk dokumen yang mengandung informasi terstruktur yang ditujukan untuk pertukaran dokumen via web dan berbentuk file teks Ă  Cross platform, indepedenden terhadap software dan hardware. XML digunakan untuk Mendeskripsikan dokumen, Pertukaran data, Database.

Tipe File XML :
  • XML, merupakan standar format dari struktur berkas (file).
  • XSL, merupakan standar untuk memodifikasi data yang diimpor atau diekspor.
  • XSD, merupakan standar yang mendefinisikan struktur database dalam XML.
Keunggulan XML :
  • Pintar (Intelligence). XML dapat menangani berbagai tingkat (level) kompleksitas.
  • Dapat beradaptasi. Dapat mengadaptasi untuk membuat bahasa sendiri. Seperti Microsoft membuaat bahasa MSXML atau Macromedia mengembangkan MXML.
  • Mudah pemeliharaannya.
  • Sederhana. XML lebih sederhana.
  • Mudah dipindah-pindahkan (Portability). XML mempunyai kemudahan perpindahan (portabilitas) yang lebih bagus.
Elemen XML:
·       Tag: <nama> budi </nama> -> Tag didefinisikan sendiri. Tag dan atribut harus di definisikan dalam DTD
·       Tag dapat mempunyai atribut -> daftar_mahasiswa jumlah=“30”> … </daftar_mahasiswa>
·       Struktur -> hirarki (tag dalam tag) Ă  <mahasiswa><nama> budi </nama></mahasiswa>

Aturan XML :
·       Setiap tag harus ada penutupnya.
·       Penamaan Tag
·       case sensitive. <nama> tidak sama dengan <Nama>.
·       Tidak diawali dengan angka
·       Tidak mengandung spasi
·       Hindari ‘-’ dan ‘.’
·       Urutan hirarki harus benar.
·       Setiap XML harus mengandung root (akar)
<root>
<child>
<subchild>.....</subchild>
</child>
</root>
·       Setiap atribut harus dalam tanda petik.
·       Komentar dalam XML: <!-- ini komentar lho --!>



REFERENSI

Diktat kuliah Pak Yudi W.

Perkuliahan Sistem Basis Data Oleh Budi Laksono Putro, M.T



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. 

Manfaat
Manfaat trigger diantaranya:
-          Mengatur integritas dari konstrain yang kompleks yang tidak mungkin ditangani oleh sintaks-sintaks pembuatan tabel
-           Mencegah transaksi yang tidak valid
-           Meningkatkan tingkat keamanan database dengan menyediakan audit yang lebih kompleks mengenai informasi perubahan database dan user siapa yang melakukan perubahan

Batasan
Trigger mempunyai batasan
- Tidak dapat menggunakan perintah commit dan rollback, selain itu juga tidak dapat memanggil prosedur, fungsi atau package yang menggunakan perintah commit dan rollback. 


- Tidak dapat diimplementasikan pada kolom pada suatu tabel yang memilki konstrain, jika pada akhirnya akan menyebabkan pelanggaran konstrain. Biasanya terjadi akibat modifikasi pada primary key

Sebelum kita beranjak ke pembahasan fungsi dan prosedur, maka kita harus mengerti dahulu apa yang dimaksud dengan PL/SQL, karena fungsi dan prosedur merupakan subprogram dari PL/SQL. Berikut adalah penjelasannya.



PL/SQL 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.
PL/SQL Block 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.

Cursor
Setiap statement di oracle memiliki cursor yang terkait, yang terbagi atas :
- Implicit cursors : dideklarasikan dan di atur oleh PL/SQL untuk semua DML dan statement SELECT PL/SQL 


- Explicit Cursors : dideklarasikan dan diatur oleh programmer

Cursor Eksplisit
Kita menggunakan kursor ketika memiliki pernyataan SELECT yang mengembalikan lebih dari satu baris dari database.
Kita dapat mengikuti lima langkah ketika menggunakan kursor :
1. Mendeklarasikan variabel untuk menyimpan nilai-nilai dari pernyataan SELECT.
2. Mendeklarasikan kursor, menetapkan pernyataan SELECT.
3. Buka kursor.
4. Mengambil baris dari kursor (FETCH).
5. Tutup kursor.




REFERENSI
Perkuliahan Sistem Basis Data Oleh Budi Laksono Putro, M.T



Transaksi pada basis data adalah satu atomic operasi berupa lojik pekerjaan maupun lojik recovery yang bisa terdiri dari beberapa intruksi. Tujuan dari transaksi adalah menjaga database dari kehilangan data dan kerusakan,seperti system crash dan pengaksesan data yang sama secara bersamaan oleh dua aplikasi yang berbeda yang menimbulkan gangguan.

Ada empat elemen dalam transaksi yang biasa disingkat ACID, yaitu :
  • Atomicity,  semua berhasil atau semua gagal
  • Consistency,  transaksi mempertahankan konsistensi database
  •  Isolation,  transaksi terisolasi satu dengan yang lain
  •   Durability,  setelah commit update harus survive di database

Dan ada dua jenis transaksi yang paling penting dalam sistem basis data adalah :
  • Commit, memberi tanda bahwa transaksi telah selesai. Update dibuat permanen (bahkan jika setelah commit terjadi kegagalan system)
  • Rollback, memberi tanda bahwa transaksi gagal. Semua update harus di-undo
Untuk lojik recovery atau system recovery database dilakukan ketika terjadi kegagalan media, kegagalan system atau kesalahan pada transaksi. Sistem recovery menggunakan fungsi rollback dan checkpoint. Checkpoint adalah interval tertentu pada perjalanan transaksi basis data yang menyimpan keadaan basis data saat itu. Checkpoint dapat dilakukan untuk merecovery database secara backward (undo) maupun forward (redo).

Sedangkan concurrency adalah sebuah mekanisme pada system basis data yang mengijinkan banyak transaksi pada saat bersamaan untuk mengakses data yang sama tanpa adanya gangguan.

 Pada umumnya terdapat 3 masalah utama pada concurrency :

  • Lost update problem, ketika dua user mengupdate dua buah data yang sama
  • Uncommited dependency problem, ketika user yang satu meretrieve data dan user yang lain merollback data tersebut
  •  Inconsistent analysis problem, ketika user yang satu meretrieve data dan user yang lain mengupdate data tersebut

Untuk menangani masalah tersebut, dilakukan proses locking, jika sebuah transaksi ingin record/resource tidak berubah dalam waktu tertentu maka dia meminta lock.

Ada dua jenis lock yaitu :
·      Exclusive Lock (Xlock) -> write lock
·      Shared Lock (Slock) -> read lock


Jadi cara kerjanya :

  • Jika transaksi A memegang Xlock pada sebuah record, maka permintaan lock (X,S) pada record yang sama harus diabaikan.
  •  Jika transaksi A memegang Slock pada record R maka :

a)     Permintaan Xlock transaksi lain pada R ditolak
b)      Permintaan Slock transaksi lain pada R diterima

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








REFERENSI
Perkuliahan Sistem Basis Data Oleh Budi Laksono Putro, M.T