Materi BD 14

advertisement
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
Download