Materi Kuliah ke 14 Proteksi data BASIS DATA
Proteksi Data DBMS umumnya memiliki fasilitas proteksi data, yaitu fasilitas yang dimaksudkan untuk melindungi data dari berbagai resiko yang mungkin terjadi, dan membawa dampak terhadap data dalam basis data.
Berbagai kemungkinan yang diantisipasi oleh fasilitas proteksi data, adalah : Gangguan Listrik Sumber listrik yang mati mendadak menyebabkan informasi yang masih berada dalam RAM (memori komputer) menjadi hilang. Akibatnya, akan ada data yang hilang Kerusakan Disk Data yang tedapat pada disk hilang Kesalahan Perangkat Lunak Hal ini mengakibatkan hasil yang tidak benar, karena pengubahan basis data tidak melalui prosedur sebagaimana mestinya. Akibatnya basis data dalam keadaan tidak konsisten.
Berbagai kemungkinan yang diantisipasi oleh fasilitas proteksi data, adalah : Pengaksesan oleh orang yang tak berhak Data yang bersifat sentsitif seharusnya hanya boleh diketahui oleh pengguna yang berhak. Pengaksesan oleh orang yang tak berhak harus dicegah sehingga kemungkinan adanya sabotase terhadap basis data dapat dihindari. Kemungkinan terjadinya dua orang atau lebih menggubah data base yang sama Hal seprti ini bisa terjadi pada sistem yang multiuser, dan sebagai akibatnya dapat menimbulkan ketidakkonsistenan.
Dalam rangka melindungi data terhadap kemungkinan seperti itu, DBMS menyediakan sejumlah kontrol yang disebut : Pemulihan (recovery) Pengamanan (Security) Integritas (integrity) Konkurensi (concurrency)
PEMULIHAN Pemulihan adlah upaya untuk mengembalikan basis data ke keadaan yang dianggap benar setelah suatu kegagalan terjadi. Ada beberapa macam pemulihan yang perlu ditangani : Pemulihan terhadap kegagalan transaksi Pemulihan terhadap kegagalan sistem Pemulihan terhadap kegagalan media
Pemulihan Transaksi Transaksi adalah suatu kesatuan prosedur didalam program yang mungkin terjadi memperbaharui data pada sejumlah tabel. Sebagai contoh, sebuah transaksi adalah saat anda mengambil uang melalui ATM. Anda memasukan nilai uang yang akan anda ambil Salso anda dipotong sebesar yang ingin anda ambil dan tabel yang menyimpan saldo diperbaharui Data pengambilan uang dicatat sebagai transaksi pengambilan (disimpan pada tabel transaksi) Mesin mengeluarkan uang.
Pemulihan Transaksi (2) Langkah pertama hingga keempat diperlakukan sebagai sebuah transaksi. Sebuah transaksi dikatakan telah disetujui (committed) kalau seluruh rangkaian proses dalam transaksi tersebut berhasil dilaksanakan. Dalam prakteknya, bisa saja sesuatu proses di dalam sebuah transaksi gagal dilaksanakan. Misalnya, langkah ketiga berhasil dilaksanakan, tetapi karena sesuatu hal, mesin tidak mengeluarkan uang dan pada layar muncul pesan “ Transaksi tidak dapat diproses”. Sistem yang baik harus dapat mengatisipasi keadaan diatas, dengan mengembalikan ke keadaan semula (sebelum transaksi dimulai). Langkah untuk mengembalikan data ke keadaan semula biasanya disebut pemulihan transaksi.
Gambaran Pemulihan Transaksi Mulai, menyatakan keadaan awal Disetujui Sebagian, menyatakan keadaan setelah suatu pernyataan berhasil dilaksanakan Gagal, menyatakan keadaan setelah sutu pernyataan gagal melaksanakan tugas. Batal, menyatakan keadaan setelah transaksi dibatalkan. Setelah dibatalkan, keadaan dipulihkan kembali menjadi seperti keadaan saat awal transaksi Disetujui, menyatakan keadaan setelah transaksi berhasil dijalankan Berakhir, menyatakan keadaan transaksi berakhir. Transaksi berakhir terjadi setelah transaksi disetujui atau dibatalkan.
Contoh Pseudokode AWAL TRANSAKSI Potong saldo sesuai dengan pengambilan yang dikehendaki JIKA ada sesuatu kesalahan MAKA MENUJU ke BATAL Catat sebagai transaksi pengambilan Keluarkan uang Setujui transaksi MENUJU ke AKHIR BATAL : BATALKAN transaksi AKHIR : SELESAI
Mulai Disetujui sebagian Disetujui Gagal Batal Berakhir
SET TRANSACTION. SQL mendukung pernyataan COMMIT untuk menyetujui perubahan data secara permanen dan sekaligus membawa ke keadaan akhir ROLLBACK untyuk membatalkan pengubahan data dan sekaligus membawa ke keadaan akhir.
Pemulihan Mesin Pada pembahasan didepan, pemulihan didasarkan oleh kegagalan transaksi. Dalam praktiknya, kegagalan bisa terjadi terhadap semua transaksi yang sedang berlangsung, yaitu apabila terjadi gangguan pada sistem (misalnya sumber listrik tiba-tiba mati). Kegagalan sistem menyebabkan data yang berada dalam RAM hilang. Akibatnya, ada transaksi yang tidak selesai. Transaksi seperti ini tentu saja harus dibatalkan pada saat sistem diaktifkan kembali (prosesnya biasa disebut UNDO). Namun demikian sistem juga harus bisa mengetahui transaksi-transaksi yang telah berakhir (disetujui) dan transaksi-transaksi ini harus dijamin dituliskan pada basis data (via
Pemulihan Media Pemulihan karena kegagalan media (misalnya disk rusak) berbeda dengan pemulihan kegagalan transaksi ataupun kegagalan sistem. Penanganannya adalah dengan memuat kembali (restore) salinan basis data (backup). Itulah sebabnya mengapa pada pengoperasian sistem harus ada penanganan backup, tergantung dari kebutuhan (misalnya per akhir hari atau bahkan dua kali sehari)
PENGAMANAN Pada jaringan komputer memungkinkan suatu data dapat dipakai secara bersama-sama oleh sejumlah orang. Hal serupa juga terjadi pada berbagai sistem komputer yang tidak tergolong sebagai jaringan komputer, tetapi berkedudukan sebagai sistem multiuser (sebuah komputer dengan sejumlah dumb terminal). Data dapat diakses dari mana saja. Tentu hal ini menguntungkan. Namun demikian di sisi lain kemudahan seperti itu juga membuka peluang bahwa data yang sensitif bisa diakses oleh siapa saja. Untuk mengantisipasi keadaan ini, DBMS menyediakan kontrol pengamanan.
Pengamanan dengan berbagai level Fisik, pengamanan dilakukan dengan menempatkan sistem komputer pada ruang yang secara fisik tidak dapat diakses oleh sembarang orang Manusia, kewenangan pengguna harus perhatikan dengan baik, agar orang yang tidak berhak tidak dapat mengakses data Sistem Operasi, mengingat seseorang dapat mengakses data dari jauh (jauh dari pusat data), keamanan dalam level sistem operasi juga harus diperhatikan. Misalnya, perlu diatur agar seseorang tidak dapat seeneknya sendiri dalam menghapus disk Sistem Basis Data, terdapat pengaturan-pengaturan yang memungkinkan seseorang misalnya hanya dapat membaca data tertentu.
Hak yg disediakan sistem ALTER, memungkinkan pengguna mengubah tabel suatu basis data (misalnya menambahkan kolom) DELETE, memungkinkan pengguna menghapus baris milik objek-objek basis data EXECUTE, memungkinkan pengguna menjalankan sustu prosedur tersimpan atau paket dalam basis data INDEX, memungkinkan pengguna menciptakan indek atau memodifikasi indeks pada tabel basis data INSERT, memungkinkan pengguan menambahkan baris baru pada tabel PEFERENCES, memungkinkan pengguna menciptakan tabel yang menrefensi ke tabel lain. SELECT, memungkinkan pengguna melihat data UPDATE, memungkinkan pengguna mengubah data ALL, memberikan pengguna seluruh hak diatas
ENKRIPSI DATA Berbagai DBMS melakukan proteksi data terhadap pengguna yang tidak berhak dengan cara menambahkan enkripsi data. Dalam hal ini data tidak disimpan sebagaimana mestinya, melainkan dikodekan kedalam bentuk yang tidak dapat dibaca oleh orang lain yang tidak berhak. Misalnya : AMIR menjadi MNJS