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 JIKA ada sesuatu kesalahan MAKA MENUJU ke BATAL Keluarkan uang JIKA ada sesuatu kesalahan MAKA MENUJU ke BATAL Setujui transaksi MENUJU ke AKHIR BATAL : BATALKAN transaksi MENUJU ke AKHIR AKHIR : SELESAI Disetujui sebagian Disetujui Mulai Berakhir Gagal Batal 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 transaksitransaksi yang telah berakhir (disetujui) dan transaksitransaksi 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