#HaloKuliah: Sistem Basis Data: Integritas Data, Transaksi, Concurrency, Back End Programming, XML, dan Keamanan Data.

Back-up Tugas Sisbasdat
Semester 4 TA 2012-2013
Pendidikan Ilmu Komputer
FPMIPA
Universitas Pendidikan Indonesia


Pada ksesmpatan kali ini, saya akan membahas beberapa materi yang ada di mata kuliah Sistem Basis Data yaitu, integritas data, transaksi, concurrency, back end programming,  XML, dan keamanan data.

Dalam penyimpanan data, bisa saja terjadi kesalahan akibat adanya ‘tangan-tangan jahil’ yang sengaja atau tidak merusak data. Untuk mencegah dan menanggulangi pelanggaran konsistensi data secara tidak sengaja, diperlukan upaya-upaya pemeliharaan integritas sebuah data.
Ada pula integritas data terbagi menjadi jenis-jenis berikut:

Entity Integrity.  Dimaksudkan untuk mendefi isikan sebuah baris sebagai sebuah entitas yang unik untuk suatu tabel. Ini memaksa primary key pada suatu tabel tidak boleh NULL.
Domain Integrity. Merupakan validasi dari masukan untuk sebuah kolom. Ini memaksa domain integritas dengan membatasi tipe, format, range nilai.
Referential Integrity. Integritas ini adalah untuk memastikan bahwa seluruh nilai dari foreign key cocok dengan nilai primary key yang dihubungkan.
User defined integrity. Untuk yang satu ini, adalah untuk mengizinkan user menentukan aturan yang lebih spesifik yang tidak sama dengan kategori integritas yang lain.
Ada pula tipe-tipe dari integritas data, sebenarnya ini lebih menggambarkan aturan yang dapat diterapkan pada kolom tabel yang menekankan perbedaan tipe data pada integritas data/

Null rule, adalah aturan pada single column yang memperbolehkan atau tidak memperbolehkan inserts atau update untuk
Unique column values, adalah aturan nilai unique yang didefinisikan pada sebuah kolom yang memperbolehkan insert atau update hanya pada baris jika itu berisi sebuah nilai unique dalam sebuah kolom.
Primary key values, adalah aturan primary key yang didefinisikan pada sebuah key tertentu bahwa setiap baris dalam tabel dapat mengidentifikasi keunikan dengan nilai kunci tersebut.
Referential integrity rules, adalah aturan pada foreign key. Bahwa ketika salah satu field menjadi primary key pada tabel nya dan diubah, maka data pun akan berubah pada tabel lain yang merefernsi primary key tersebut menjadi foreign key nya.
Integritas data via SQL:

  • CREATE DOMAIN
  • NOT NULL
  • UNIQUE
  • PRIMARY KEY
  • CHECK
  • REFERENTIAL INTEGRITY

Ada pula cara untuk melindungi database dari kehilangan data dan kerusakan, yaitu menggunakan pengelolaan transaksi.  Transaksi biasa digunakan di bank-bank, atau perusahaan yang mempunyai interaksi langsung antara user dengan data.
Transaksi adalah unit lojik pekerjaan yang semua instruksinya harus dijamin dikerjakan semua untuk menjamin konsistensi. Teradapat dua operasi penting transaksi, yaitu:

Commit. Berfungsi untuk mengubah transaksi dari status berhasil sebagian (partially-committed) ke status berhasil sempurna (committed), sehingga transaksi dapat dianggap berakhir dan siap memulai transaksi yang baru.
Rollback. Inilah yang menyebabkan terjadinya pembatalan transaksi (batal/aborted).

Transaksi juga memiliki 4 elemen: ACID. Atomicity, consistency, isolation, dan durability.

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
Pada transaksi ini juga terdapat sistem recovery.  Apabila ada masalah pada transaksi, solusi untuk meng-cover nya adalah dengan rollback dan commit. Masalah bisa saja terjadi akibat kegagalan sistem (listrik mati) atau kegagalan media (hard disk corrupt).
Rollback digunakan untuk mengembalikan data seperti saat setelah data itu di commit. Itu berarti, data yang sudah diisikan tapi belum di commit, kemudian kita rollback akan hilang. Sulit bukan? Ada yang bisa membantu sistem ini, yaitu checkpoint. Kita bisa menyimpan setiap penambahan/pengeditan data ke dalam checkpoint yang bisa di panggil sesuai namanya. Jadi apabila terjadi kegagalan sistem, maka kita tidak mengulang data itu dari awal, tapi tinggal panggil nama checkpointnya tersebut.
Ada juga untuk meng-cover data yang rusak secara fisik, yaitu dengan reloading atau restore database dari backup, atau bisa dengan redo. Ada dua fase commit dalam hal ini, yaitu:

Setiap resource manager harus menulis log, return OK atau NOT OK kepada koordinator.
Setelah mendapat semua reply, koordinator menulis log. Jika semua relpy OK  maka lakukan COMMIT, else ROLLBACK, untuk semua resource manager.
Apalah artinya segala macam peraturan tanpa kesepakatan? Kesepakatan diadakan agar tercapai kenyamanan bagi semua pihak. Itulah concurrency.
Mengapa harus ada concurrency? Karena adanya kemungkinan penggunaan data secara bersamaan, dan agar transaksi tidak saling mengganggu.
3 masalah concurrency:

  1. Lost update problem
  2. Uncommitted dependency problem
  3. Inconsistent analysis problem

Sistem akan melakukan lock pada entitas data. Jika sebuah transaksi ingin record tidak berubah dalam waktu tertentu, maka transaksi tersebut meminta di  lock. Locking memliki dua tipe, yitu:

Exclusive Lock (XLock): write lock. Jika ada satu transaksi akan melakukan penulisan pada entitas yang telah di-writelock. Maka transaksi lainnya tidak boleh mendapatkan read lock maupun read lock pada entitas ini.
Shared Lock (SLock): read lock. Transaksi lain bisa mendapatkan read lock setelah menunggu transaksi selesai.
Locking menyebabkan beberapa hal, salah satunya adalah deadlock. Deadlock merupakan situasi dimana dua atau lebih transaksi dalam kondisi wait-state, satu sama lain menunggu locknya dilepaskan sebelum dapat digunakan. Deadlock bisa juga dipecahkan dengan rollback.

Keamanan dan pengamanan perlu di-cover, disimpan di tempat yang aman. Tidak selamanya user bisa melihat hal-hal atau proses yang dilakukan sebuah sistem. Maka perlu adanya back end programming. Server memerlukan sisi ‘server’ tanpa bisa diintip oleh user.
XML bisa jadi cocok untuk hal tersebut. Karena XML berbicara mengenai data yang dikirim, yang user tidak perlu ketahui prosesnya.
XML merupakan singkatan dari Extensible Markup Language. Kelebihan XML adalah platform dan bahasanya berdiri sendiri. Disupport oleh banyak tools, sehingga penggunaannya unlimited. Dapat merepresentasikan data yang kompleks, serta keamanan data yang terjaga, yang tidak bisa diganggu oleh user. 


Keamanan data sangatlah penting untuk diperhatikan. Pasalnya, data adalah objek yang kita bicarakan pada situasi sekarang. Kepercayaan orang-orang sekarang sudah memasuki hal yang namanya data.
Ada beberapa bentuk akses yang secara sengaja dapat merusak data ataupun merugikan pemilik data, yaitu:
Pembacaan data yang tidak diizinkan
Pengubahan data yang tidak diizinkan
Penghapusan/perusakan data yang tidak diizinkan

Ada pula hal-hal yang tidak sengaja yang bisa merusak data, yaitu:

  • Sistem rusak selama pemprosesan transaksi
  • Inkonsistensi database akibat akses dari banyak user ke data yang tidak terjaga dengan baik
  • Inkonsistensi database karena adanya pendistribusian data ke banyak computer
  • Kesalahan lojik yang melanggar integritas yang semestinya dipelihara agar database tetap konsisten.
  • Itulah mengapa, perlu adanya pengamanan data. Pengamanan datanya tersebut terdapat beberapa level:
  • Fisik
  • Manusia
  • Sistem operasi
  • Jaringan
  • Sistem basis data

Untuk keamanan data juga perlu ada otoritas untuk semua pihak. Misal, untuk pengguna hanya bisa melakukan sampai batas apa, dan admin sampai batas apa. Karena sesuai dengan kepentingannya dan mudah untuk meminta pertanggung jawaban apabila terjadi salah satu kecurangan.


Sekian yang saya materi yang bisa saya sampaikan mengenai integritas data, transaksi, concurrency, back end programming,  XML, dan keamanan data. Semoga memberikan manfaat bagi para pembaca sekalian.

Karena manusia juga merupakan sebuah sistem, yang memiliki satu titik tujuan untuk dituju.

referensi:
cs.upi.edu

elearning.cs.upi,edu

Komentar