• Ada beberapa istilah yang dikenal dalam lingkungan database, antara lain :
- Redundansi dan Inkonsistensi Data
- Concurrency
- Locking
- Crash dan Recovery
- Security dan Integrity
A. Redundansi dan Inkonsistensi Data
• Jika file-file dan program aplikasi diciptakan oleh programmer yang berbeda pada selang waktu cukup lama, maka ada beberapa bagian data yang mengalami penggandaan pada file-file yang berbeda.
• Misalnya : alamat dan nomor telepon dari konsumen tercatat pada file Deposito juga pada file Nasabah dan juga Rekening_Koran
• Penyimpanan data yang sama dengan nama yang sama pula namun pada lokasi yang berbeda disebut sebagai REDUNDANSI.
• Akibat dari adanya redundansi adalah pemborosan ruang penyimpanan dan juga biaya untuk mengakses menjadi lebih mahal.
• Penyimpanan data yang sama dan berulang-ulang pada beberapa tempat (file) yang berbeda dapat juga mengakibatkan inkonsistensi data.
• Artinya bahwa bila programmer ingin melakukan update data maka harus dilakukan pada semua file yang mengandung data tersebut sehingga bila salah satu saja dari file, yang mengandung data yang akan di-update, terlewatkan maka terjadilah inkonsistensi data (data tersebut tidak sama dengan data dalam file yang lain).
B. Concurrency
• Salah satu tujuan utama dalam mengembangkan sebuah database adalah membuat sumber informasi yang dapat digunakan oleh sejumlah user yang terkadang diakses secara terus-menerus.
• Jika semua user hanya membaca data, maka data yang satu tidak akan berbaur dengan data yang lain.
• Akan tetapi jika dua orang user mencoba melakukan update data, maka ada kemungkinan terjadi “benturan” data.
• Salah satu kriteria untuk melakukan klasifikasi sebuah sistem database adalah dengan menggabungkan sejumlah user yang dapat menggunakan sistem secara konkurensi, yaitu pada waktu yang sama.
• Contoh : Sistem Pemesanan Tiket Pesawat digunakan oleh ratusan agen perjalanan dan pemesanan tiket dilakukan secara konkuren.
• Terdapat tiga masalah yang disebabkan oleh adanya konkurensi, antara lain :
1. Masalah Kehilangan Modifikasi
2. Masalah Modifikasi Sementara
3. Masalah Analisa yang Tidak Konsisten
1. Masalah Kehilangan Modifikasi (Lost Update Problem)
• Masalah ini timbul jika dua transaksi mengakses item database yang sama yang mengakibatkan nilai dari database tersebut menjadi tidak benar.
• Misal, ada dua transaksi A dan B yang bekerja hampir bersamaan seperti yang ditunjukkan pada gambar berikut :
2. Masalah Modifikasi Sementara (Uncommited Update Problem)
• Masalah ini timbul jika transaksi membaca suatu record yang sudah dimodifikasi oleh transaksi lain tetapi belum terselesaikan (uncommited), terdapat kemungkinan kalau transaksi tersebut dibatalkan (rollback).
3. Masalah Analisa yang Tdk Konsisten (Problem of Inconsistency Analysis)
• Masalah ini timbul jika sebuah transaksi membaca suatu nilai tetapi transaksi yang kedua mengupdate beberapa nilai tersebut selama eksekusi transaksi pertama.
C. Locking
LOCKING adalah salah satu mekanisme pengontrol konkuransi (Concurrency Control).
KONSEP DASAR :
Ketika sebuah transaksi memerlukan jaminan kalau record yang diinginkan tidak akan berubah secara mendadak, maka diperlukan kunci (lock) untuk record tersebut.
FUNGSI :
Locking berfungsi untuk menjaga record tersebut agar tidak
dimodifikasi oleh transaksi lain.
CARA KERJA LOCKING
- Kita asumsikan terdapat dua macam kunci yaitu :
• kunci X : kunci yang eksklusif
• kunci S : kunci yang digunakan bersama-sama.
- Jika transaksi 1 menggunakan kunci X pada record R, maka permintaan dari transaksi 2 untuk suatu kunci pada record R ditunda, dan transaksi 2 harus menunggu sampai transaksi 1 melepaskan kunci tsb.
- Jika transaksi 1 menggunakan kunci X pada record R, maka :
- Bila transaksi 2 ingin menggunakan kunci X, maka transaksi 2 harus menunggu sampai transaksi 1 melepaskan kunci tsb.
- Bila transaksi 2 ingin menggunakan kunci S, maka transaksi 2 dapat menggunakan kunci S bersama transaksi 1.
- Bila suatu transaksi hanya melakukan pembacaan saja, secara otomatis transaksi tsb memerlukan kunci S.
Bila transaksi tsb ingin melakukan modifikasi record R, maka secara otomatis memelukan kunci X.
Bila transaksi tsb sudah menggunakan kunci S, setelah itu akan melakukan modifikasi record R, maka kunci S akan dinaikkan ke level kunci X.
- Kunci X dan kunci S akan dilepaskan pada saat synchpoint (Synchronization Point), yang menyatakan akhir dari suatu transaksi tempat database berada pada kondisi yang konsisten.
Bila synchpoint ditetapkan, maka :
- Semua modifikasi program menjalankan operasi commit atau rollback.
- Semua kunci pada record R dilepaskan
TIMESTAMPING
Adalah salah satu alternatif mekanisme kontrol konkurensi yang dapat menghilangkan masalah dead lock.
• Dalam timestamping tidak ada deadlock yang digunakan sehingga tidak ada deadlock yang muncul.
• Timestamping untuk sebuah transaksi merupakan suatu tanda pengenal yang unik, yang menunjukkan waktu mulai (relatif) dari transaksi.
• Timestamping dapat berupa pembacaan pada internal lock pada waktu transaksi dimulai atau dapat juga berupa nilai dari suatu penunjuk logika yang dapat bertambah setiap kali suatu transaksi baru dimulai.
• Dalam hal ini, nilai timestamping dari setiap transaksi adalah unik dan menunjukkan berapa lama transaksi tsb.
• Pengaruh dari timestamping adalah menentukan suatu urutan serial kepada transaksi.
• Sebagai tambahan, pada setiap timestamping transaksi, terdapat timestamping untuk item data.
• Setiap item data terdiri dari :
- Sebuah read-timestamping, yang memberikan timestamping transaksi terakhir untuk membaca item.
- Sebuah write-timestamping, yang memberikan timestamping transaksi terakhir untuk menulis atau melakukan update data item.
Dua masalah yang timbul pada Timestamping :
- Suatu transaksi memerintahkan untuk membaca sebuah item yang sudah di-update oleh transaksi yang belakangan.
- Suatu transaksi memerintahkan untuk menulis sebuah item yang nilainya sudah dibaca atau ditulis oleh transaksi yang belakangan
LINGKUNGAN DATABASE
LANJUTAN
D. CRASH DAN RECOVERY
Crash adalah suatu kegagalam atau failure dari suatu sistem.
Penyebab dari kegagalan adalah :
- Disk Crash, yaitu informasi yang ada di dalam disk akan hilang.
- Power Failure, yaitu informasi yang disimpan pada memori utama dan register akan hilang.
- Software Error, yaitu output yang dihasilkan tidak benar dan sistem database-nya sendiri akan memasuki suatu kondisi tidak konsisten (inkonsistensi).
• Selain itu, terdapat sumber kegagalan lain yang juga perlu diperhatikan, yaitu adanya kebakaran pada ruang komputer dan juga sabotase.
• Akibat adanya kejadian-kejadian tersebut, maka informasi yang berkenaan dengan sistem database akan hilang.
Klasifikasi Kegagalan/Failure
• Berbagai kegagalan/failure yang mungkin muncul dalam sebuah sistem, masing-masing perlu ditangani dengan serius untuk mencegah terjadinya kerugian yang lebih besar.
• Salah satu kegagalan yang tidak terlalu sulit untuk ditangani adalah kegagalan yang disebabkan oleh hilangnya informasi.
Jenis-Jenis Kegagalan/Failure
- Logical Error, program tidak dapat lagi dilaksanakan karena kesalahan input, sehingga data tidak ditemukan dan dapat terjadi overflow.
- System Error, sistem berada pada keadaan yang tidak diinginkan (seperti terjadi deadlock), akibatnya program tidak dapat dilanjutkan namun setelah beberapa waktu program dapat dijalankan kembali.
- System Crash, kegagalan fungsi perangkat keras, menyebabkan hilangnya data pada volatile storage, tetapi data pada non-volatile storage masih tetap ada.
- Disk Failure, hilangnya data dari sebuah blok disk disebabkan oleh kerusakan head atau kesalahan pada waktu pengoperasian transfer data.
Jenis-Jenis Storage
Jenis-jenis storage berdasarkan kecepatan relatif dan ketahanan terhadap kegagalan, antara lain :
- Volatile Storage, biasanya informasi yang terdapat pada volatile akan hilang, jika terjadi kerusakan sistem (system crash).
- Non-Volatile Storage, biasanya informasi yang terdapat pada non volatile strorage tidak akan hilang jika terjadi kerusakan sistem.
- Stable Storage, informasi yang terdapat dalam stable storage tidak pernah hilang. Untuk menjadikan stable storage, maka informasi direplikasi pada beberapa non-volatile storage.
RECOVERY
Recovery dari kegagalan transaksi artinya :
Database dikembalikan ke kondisi yang terdahulu, mendekati waktu terjadinya kegagalan.
Untuk melakukan hal tersebut, perlu disimpan informasi mengenai perubahan terhadap data selama pelaksaan transaksi di luar database, yang disebut dengan sistem log.
• Teknik recovery berhubungan erat dengan mekanisme kontrol konkurensi yang digunakan pada sistem bersangkutan.
• Bila suatu transaksi dieksekusi oleh DBMS, maka untuk menjaga konsistensi dari database :
– Semua operasi pada suatu transaksi harus selesai dilaksanakan dengan sukses (mencapai titik commit), dan hasilnya disimpan secara permanen pada database.
– Suatu transaksi tidak mempunyai efek apapun terhadap database dan transaksi lain. Hal ini perlu, bila transaksi gagal setelah melakukan beberapa operasi, tapi sebelum semua lengkap dilaksanakan.
Teknik Recovery : Deffered Update
• Deffered Update adalah suatu kegiatan menunda update ke database sampai transaksi menyelesaikan eksekusinya dengan sukses dan mencapai titik commit.
• Selama transaksi masih berlangsung, update hanya dicatat pada sistem log.
• Setelah transaksi mencapai titik commit dan log sudah dituliskan ke disk, maka update kemudian dituliskan ke database.
• Jika transaksi gagal mencapai titik commit, maka perlu melaksanakan operasi UNDO.
Protokol deffered update dapat dinyatakan dengan singkat sebagai berikut :
- Suatu transaksi tidak mengubah database sampai transaksi tersebut mencapai titik commit.
- Suatu transaksi tidak mencapai titik commit sampai semua update ditulis pada log dan log dipaksa untuk dituliskan ke semua disk.
E. SECURITY DAN INTEGRITY
SECURITY adalah suatu proteksi data terhadap perusakan data dan pemakaian oleh user yang tidak mempunyai ijin.
Tidak setiap user database diperbolehkan mengakses semua data
Misalnya, data GAJI, hanya boleh dibuka oleh bagian keuangan dan personalia sedangkan bagian inventory tidak diperkenankan membaca bahkan mengubahnya
Keamanan ini diatur melalui pemrograman atau melalui fasilitas keamanan dari operating system.
Beberapa Masalah yang Terdapat Dalam Security di DBMS :
• Sekelompok user yang terdapat di bagian user harus dapat mengakses bagian tertentu dari database, tanpa melihat bagian lain dari database.
Hal ini disebut Database Subsystem Authorization.
• Manjaga agar user yang tidak berkepentingan tidak dapat mengakses sistem.
Hal ini disebut Access Control.
• Mengontrol akses untuk melihat informasi statistik dari database sehingga yang dapat dilihat hanya data statistiknya saja, tetapi tidak ada individualnya.
Hal ini disebut Statistical Database.
• Untuk melindungi data yang ditransmisikan melalui satelit atau media atau jaringan komunikasi lainnya, disebut dengan Encryption-Decryption.
Beberapa Masalah Security Secara Umum :
- Di dalam suatu perusahaan siapa yang diijinkan untuk mengakses suatu sistem ???
- Bila sistem tersebut menggunakan password, bagaimana kerahasiaan dari password tersebut dan berapa lama password tersebut harus diganti ???
- Di dalam pengontrolan hardware, apakah ada proteksi untuk penyimpanan data (data storage) ???
Dua Katagori Penyalahgunaan Database :
- Katagori yang tidak disengaja
- Katagori yang disengaja
- Kategori yang tidak disengaja dapat disebabkan oleh :
- Kerusakan selama proses transaksi.
- Anomali yang disebabkan oleh akses database yang konkuren.
- Anomali yang disebabkan oleh pendistribusian data di beberapa komputer.
- Logika Error yang mengancam kemampuan transaksi untuk mempertahankan konsistensi database.
- Kategori yang disengaja dapat disebabkan oleh :
- Pengambilan data atau pembacaan data oleh pihak yang tidak berwenang.
- Pengubahan data oleh pihak yang tidak berwenang.
- Penghapusan data oleh pihak yang tidak berwenang.
Penanganan masalah security harus dilakukan pada beberapa tingkatan, antara lain :
1. Secara Fisik (Physical)
Lokasi-lokasi yang terdapat pada sistem komputer haruslah aman secara fisik terhadap serangan perusak.
2. User (Man)
Wewenang user harus dilakukan dengan hati-hati untuk mengurangi kemungkinan adanya manipulasi oleh user yang tidak bertanggung jawab.
3. Sistem Operasi (Operating System)
Walaupun sistem database-nya sudah aman, kelemahan pada sistem operasi memungkinkan peng-akses-an data oleh pihak yang tidak berwenang karena hampir semua sistem database menggunakan sistem akses jarak jauh melalui terminal atau jaringan komunikasi
4. Sistem Database (Database System)
Beberapa user yang berwenang dalam sistem database, mungkin, hanya boleh melihat dan menggunakan, tapi tidak boleh mengubahnya. Hal ini harus dilakukan oleh sistem database tsb.
Pemberian Wewenang dan View
KONSEP VIEW adalah cara yang diberikan pada seorang user untuk mendapatkan model database yang sesuai dengan kebutuhan perorangan.
VIEW dapat menyembunyikan data yang tidak digunakan atau tidak perlu dilihat oleh user tsb.
Kemampuan ini menguntungkan dalam hal penanganan data yang semakin mudah dan mampu meningkatkan keamanan.
Database relational membuat pengamanan pada level :
Relasi, seorang user diperbolehkan atau tidak mengakses langsung suatu relasi.
View, seorang user diperbolehkan atau tidak mengakses data yang terdapat pada view.
Read Authorization, data dapat dibaca tapi tidak boleh dimodifikasi.
Insert Authorozation, user boleh menambah data baru, tetapi tidak dapat memodifikasi data yang sudah ada.
Update Authorization, user boleh memodifikasi tetapi tidak dapat menghapus data.
Delete Authorization, user boleh menghapus data.
Sebagai tambahan dari Authorization untuk mengakses data, seorang user juga diberikan wewenang untuk memodifikasi database, antara lain :
Index Authorization, user boleh membuat atau menghapus index.
Resource Authorization, mengizinkan pembuatan relasi – relasi baru.
Alternation Authorization, mengizinkan penambahan atau penghapusan atribut dalam satu relasi.
Drop Authorization, user boleh menghapus relasi yang ada.
INTEGRITY
Integrity berarti memeriksa keakuratan dan validasi data.
Beberapa Jenis Integrity :
- Integrity Constraint
- Integrity Rule
- oleh user berwenang sehingga tidak Integrity Constraint
Memberikan suatu sarana yang memungkinkan pengubahan database akan menyebabkan data inkonsistensi.
Integrity Constraint berisi aturan-aturan atau batasan-
batasan untuk terlaksananya integritas data.
Dengan demikian, batasan ini mampu melindungi
database dari kerusakan.
- Integrity Rule
Integrity Rule pada database relational, terbagi menjadi :
A. Integrity Entity (Rule 1)
B. Integrity Referensi (Rule 2)
Suatu domain dapat digunakan sebagai primary key bila merupakan atribut tunggal pada domain yang bersangkutan.