1. Integritas Data
Integritas
data adalah akurasi dan kebenaran suatu data dalam sebuah sistem basis data.
Maksudnya data yang ada bakal bisa lebih terpercaya kalau data-data tersebut
terjaga kebenarannya. Tujuan dari integritas data adalah memasukkan aturan
bisnis dalam database, menyaring data yang tidak valid agar tidak tersimpan di
database, dan menjaga konsistensi data pada tabel yang memiliki relasi dalam
database. Akurasi data dapat ditangani dengan adanya trigger yang strukturnya
menyerupai fungsi atau prosedur yang dijalankan secara otomatis setelah
mendapat pemicu dari sebuah kondisi tertentu. Selain itu, integritas suatu data
bisa ditunjukkan dengan adanya constraint.
Constraint merupakan batasan perlakuan terhadap suatu data, constraint
ada 6 macam, diantaranya:
1.
NOT NULL, ini digunakan ketika
dalam satu tabel tidak boleh ada field yang null, artinya ketika kita gunakan constraint NOT NULL, field tersebut
harus diisi.
2.
UNIQUE, berfungsi untuk
mencegah dua baris atau lebih berisi data yang sama. Yah namanya juga unique,
artinya emang gak boleh ada data yang sama di kolom tersebut.
3.
PRIMARY KEY,
constraint ini
mengkombinasikan UNIQUE dan NOT NULL dalam satu deklarasi. Primary key ini digunakan sebagai kolom
acuan dari sebuah tabel.
4.
Foreign KEY,
constraint ini
memaksakan nilai pada suatu tabel untuk bernilai sama dengan tabel lain. Foreign key ini bertujuan untuk menjaga
integritas pada relasi antar tabel.
5.
CHECK, berguna untuk
menentukan suatu kondisi yang harus benar, misalnya jenis kelamin hanya ada P
atau L.
6.
REF, mereferensi suatu
objek dalam tipe objek lainnya atau dalam sebuah tabel relasional. Constraint
REF mengizinkan kamu untuk mendeskripsikan relationship lebih jauh
antara kolom REF dan objek yang di referensikan
2. Transaksi
Transaksi
adalah satu atau beberapa aksi program aplikasi yang mengakses / mengubah isi
basis data. DBSM 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. Kenapa? Karna dapat menyebabkan inkonsistensi
basis data. Untuk itu, transaksi selalu merubah basis data dari satu kondisi
konsisten ke kondisi konsisten lain. Ada 4 (empat) sifat transaksi, yang kalau disingkat
tuh bakal jadi kata ACID. Apa itu? Nih ada disini:
1.
Atomicity, semua operasi dalam
transaksi dapat dikerjakan seluruhnya atau tidak sama sekali
2.
Consistency, eksekusi transaksi
secara tunggal 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, perubahan data yang
terjadi setelah sebuah transaksi berakhir dengan baik, harus dapat bertahan
bahkan jika seandainya sistem menjadi mati
Ada dua operasi
penting dalam transaksi, yaitu COMMIT dan ROLLBACK. COMMIT (memberi tanda bahwa
transaksi telah selesai. Update dibuat permanen (bahkan jika setelah commit
terjadi kegagalan system) dan ROLLBACK (memberi tanda bahwa transaksi
GAGAL). Selain COMMIT dan ROLLBACK juga terdapat operasi transaksi pada oracle,
yaitu Save Point. Secara sederhana save point merupakan sebuah titik aman,
dimana kita telah menyelesaiakan satu atau beberapa transaksi. Save point
dianalogikan seperti sebuah check point saat kita bermain game. Fungsi
dari save point adalah supaya pada saat kita ingin rollback atau ada transaksi
yang gagal, transaksi tidak berjalan dari awal kembali, tetapi dari save poin
yang telah kita buat.
3. Concurrency
Banyak
submateri yang harus dibahas untuk concurrency,
mulai dari permasalahan dalam concurrency,
locking, deadlock, isolation level, dan lain-lain. Disini akan dibahas beberapa
permasalshan dalam concurrency. DBMS
yang sering kita gunakan mengizinkan banyak transaksi pada saat bersamaan untuk
mengakses data yang sama. Pemakaian satu sumber secara bersama-sama pastinya akan
menggganggu jalannya transaksi, itulah yang dimaksud dengan concurrency. Oleh karna itu kita
membutuhkan Concurrency Control Mechanism
agar transaksi tidak saling mengganggu. Ada 3 (tiga) masalah dalam concurrency, ada lost update problem, uncommited depedency problem dan inconsistent analysis problem. Berikut
adalah contoh dari ketiga permasalahan di atas:
Lost
Update Problem, merupakan suatu masalah yang timbul akibat dihiraukannya
informasi pada saat ada update dari user lain yang hampir bersamaan waktunya.
Misalnya: ketika user 1 mengambil data R, dan kemudian user 2 juga mengambil
data R. Setelah user 2 mengambil data, user 1 melakukan update data R dan di
COMMIT. Ketika user 2 ingin mengupdate data R, maka sebenarnya user 2 akan
mengupdate data baru dari updatetan user 1 bukan data yang awalnya sudah di
ambil.
Uncommited
Depedency Problem, ini terjadi jika satu transaksi membaca hasil dari transaksi
lainnya sebelum transaksi kedua dinyatakan COMMIT.
Ketika
transaksi pertama membaca beberapa nilai, tetapi transaksi kedua melakukan
perubahan terhadap nilai tersebut, selama eksekusi transaksi pertama
berlangsung
4. Back-end Programming
Back-end programming
adalah baris kode yang tidak dapat dilihat oleh user. Maksudnya adalah
pengelolaan yang dilakukan berhubungan dengan database, sehingga tidak akan
dapat dilihat oleh user. Beda halnya dengan front-end programming, ini
merupakan baris kode yang dapat dilihat user karna lebih berfokus di tampilan.salah
stau contoh back-end programming adalah PL/SQL. 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.
Struktur
block PL/SQL dibagi menjadi 3 bagian, yaitu: declaration section (DECLARE),
execution section (BEGIN, END), exception section (EXCEPTION). Selain itu ada
beberapa komponen utama PL/SQL, diantaranya: Anonymous PL/SQL Block, Stored
Subprogram (Stored Procedure, Stored Function) dan Trigger.
1.
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.
2.
SUBPROGRAM
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.
3.
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.
5. XML
XML
adalah singkatan dari eXtensible Markup
Language, ini adalah markup language
markup language yang menunjukkan data terstruktur dan bersifat sensitive case. Perbedaan yang paling terlihat
dengan HTML adalah penulisan nama tag nya bisa dibuat sendiri, maksudnya
penamaan tagnya tidak di tentukan. Kalau di HTML tagnya sudah ditentukan.
Contoh nya:
XML
HTML
Mengapa
kita belajar XML? Itu karena XML disupport oleh banyak tools (RDBMS, bahasa
pemrograman, dll), dan XML juga platform
independen serta language independen.
Platform independen maksudnya adalah
ketika diakses, XML akan dibawa bersamaan dengan dictionary-nya agar bahasa yang digunakan mudah dimengerti karna
sudah memiliki penerjemah khusus, sehingga keamanan data dengan XML akan lebih
bagus dibanding HTML.
Dalam
XML, ada istilah XXML Schema. Sebuah schema mendefinisikan struktur dari
dokumen XML. Sebuah skema juga digunakan untuk membatasi content dari sebuah
dokumen XML kedalam sebuah element, attributes, dan values tertentu. Sebuah
Document Type Definition schema adalah bagian dari spesifikasi XML. Kita akan
memanggil schema yang ditulis dalam bahasa ini disebut sebagai DTD. DTD ini
juga mendefinisikan tag atau attribute mana yang sangat diperlukan dan mana
yang bersifat optional.
6. Keamanan Data
Keamanan database
adalah suatu cara untuk melindungi database dari ancaman, baik dalam bentuk
kesengajaan atau pun bukan. Ancaman adalah segala situasi atau kejadian baik
secara sengaja maupun tidak yang bersifat merugikan dan mempengaruhi system
serta secara konsekuensi terhadap perusahaan/organisasi yang memiliki system
database. Ada beberapa aturan dalam menjaga keamanan data, diantaranya:
1.
Otorisasi
·
Pemberian
Wewenang atau hak istimewa (priviledge) untuk mengakses sistem atau obyek
database
·
Kendali
otorisasi (=kontrol akses) dapat dibangun pada perangkat lunak dengan 2 fungsi
·
Mengendalikan
sistem atau obyek yang dapat diakses
·
Mengendalikan
bagaimana pengguna menggunakannya
· Sistem
administrasi yang bertanggungjawab untuk memberikan hak akses dengan membuat
account pengguna.
2.
Tabel
view
Merupakan metode pembatasan bagi pengguna
untuk mendapatkan model database yang sesuai dengan kebutuhan perorangan.
Metode ini dapat menyembunyikan data yang tidak digunakan atau tidak perlu
dilihat oleh pengguna.
3.
Backup
data and recovery
· Backup
: proses secara periodik untuk mebuat duplikat ari database dan melakukan
logging file (atau program) ke media penyimpanan eksternal.
· Recovery:
merupakan upaya uantuk mengembalikan basis data ke keadaaan yang dianggap benar
setelah terjadinya suatu kegagalan.
Referensi:
http://rezkiny.files.wordpress.com/2011/04/keamanan-database.pdf
Modul_Simbada_6(trigger).pdf
Modul_Simbada3.pdf
http://te.ugm.ac.id/~risanuri/distributed/ringk/bab12.pdf
http://luqmanhakimnadzari.files.wordpress.com/2011/04/basisdata_14_manajementransaksi.ppt
Referensi:
http://rezkiny.files.wordpress.com/2011/04/keamanan-database.pdf
Modul_Simbada_6(trigger).pdf
Modul_Simbada3.pdf
http://te.ugm.ac.id/~risanuri/distributed/ringk/bab12.pdf
http://luqmanhakimnadzari.files.wordpress.com/2011/04/basisdata_14_manajementransaksi.ppt