Proteksi Data Pertemuan 13
Pokok Bahasa/Materi Manajemen Basis Data : Proteksi Data Pemulihan Pengamanan Integritas Konkurensi Studikasus : Bisa memilih pemulihan, pengamanan, integritas maupun konkurensi
Proteksi Data DBMS merupakan suatu sistem perangkat lunak yang memungkinkan user (pengguna) untuk membuat, memelihara, mengontrol, dan mengakses database secara praktis dan efisien. Dengan DBMS, user akan lebih mudah mengontrol dan memanipulasi data yang ada. 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 : Gangguan ListrikSumber listrik yang mati mendadak menyebabkan informasi yang masih berada dalam RAM (memori komputer) menjadi hilang. Akibatnya, akan ada data yang hilangKerusakan DiskData yang tedapat pada disk hilangKesalahan Perangkat LunakHal 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 adalah 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 (1) 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 Saldo 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..
Flowchart
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.
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 Enkripsi data Adalah metode yang digunakan untuk menyamarkan / menyembunyikan data teks biasa kedalam bentuk kode tertentu. 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.
Contoh :
Integrity / Integritas Adalah menjamin keakurasian atau keabsahan data yang disimpan dalam basisdata. Komponen integritas dapat mendeteksi untuk menghindari data yang akan disimpan pada basisdata Untuk mendukung integritas DBMS memiliki bagian yang disebut : Subsistem Inetgritas
Subsistem Inetgritas Bertanggung jawab terhadap pemantauan operasi pada basis data agar tidak melanggar aturan-aturan yang ditetapkan. Misalnya: Tidak akan terjadi pemilikan kunci yang kembar
Klasifikasi kekangan integritas Aturan integritas domain Aturan integritas atribut Aturan integritas relasi Aturan integritas basisdata
Aturan integritas domain Digunakan untuk menciptakan suatu batasan yang berlaku untuk isi data tertentu yang diperkenankan. Contoh: Untuk data Agama, untuk nilai lain tidak diperkenankan masuk terkecuali Islam,Kristen, Katholik, Hindu dan Budha
Aturan integritas atribut Digunakan untuk menciptakan suatu batasan yang berlaku untuk tipe data tertentu yang diperkenankan. Contohnya: Tipe datanya harus integer, character dan tanggal.
Aturan integritas relasi Digunakan untuk menciptakan suatu batasan yang berlaku untuk nilai data tertentu yang sudah jelas pasangan data nya yang diperkenankan. Contohnya: Bila jakarta nomor awal dari telponnya harus 0211xxxxxxx
Aturan Integritas Basisdata Digunakan untuk menciptakan suatu batasan yang berlaku untuk nilai data tertentu pada sebuah tabel yang berhubungan dengan data yang tersimpan pada tabel-tabel lainnya. Contohnya: Untuk pegawai departemen tertentu yang memiliki lokasi proyek yang diluar kota jam kerjanya tidak oleh lebih dari 15 jam.
Concurrency Sejumlah transaksi diperkenankan untuk mengakses data yang sama dalam waktu yang bersamaan.
Persoalan Concurrency Hilang saat pengubahan Ketergantungan terhadap data yang belum disetujui Ketidak konsistenan
Serialisabilitas Pengaturan proses transaksi yang dijalankan terhadap basis data dalam kesatuan waktu yang tidak saling berpotongan. Pengaturan untuk menyelesaikan satu transaksi terlebih dahulu, baru menginjak ke transaksi berikutnya.
Dua mode Serialisabilitas Shared Bila data sedang di eksekusi transaksi oleh sebuah program, maka program lain dalam waktu yang bersamaan hanya dapat membaca dan tidak dapat mengubah data tsb. Eksklusif Bila data sedang di eksekusi transaksi oleh sebuah program, maka program lain dalam waktu yang bersamaan tidak dapat membaca ataupun mengubah data tsb.
Terima Kasih