SECURITY Yaitu kemampuan untuk melindungi data terhadap akses dan aksi yang tidak berwenang pada database.
Sekuriti data sangat penting dalam sistem database, artinya mengontrol pengaksesan data dalam database terhadap orang-orang yang tidak berwenang, sehingga mencegah :
- Penyingkapan rahasia.
- Perubahan data.
- Perusakan / penghapusan data.
Ada 3 kelompok yang berhubungan dengan Database :
a. USER : User adalah pemilik data, user sesuai dengan departemennya hanya berwenang untuk sekumpulan data tertentu, kontrol pengaksesan data oleh user ini dapat dilakukan dengan memakai PASSWORD. Password ini mempunyai 2 fungsi :
- Memberi identifikasi seorang user
- Memberi kewenangan (authorized) dan hak (privilege)
Macam-macam hak pada sistem database adalah :
1. Hak retrieval : Mencari dan melaporkan
2. Hak Update pada record meliputi :
- Append (Menambah)
- Insert (Menyisipi)
- Modifikasi (Merubah)
- Delete (Menghapus)
3. Hak Definition File meliputi :
- Create (Mendefinisikan file baru)
- Revision (Merevisi definisi yang ada)
- Delete (Menghapus seluruh file)
- Memberi indeks
4. Hak GRANT (memberi) hak pada user.
Hak definition dan Grant hanya dimiliki oleh DBA.
Pembuatan Password harus mengingat hal-hal :
1. Mudah diingat
2. Sulit ditebak
3. Cukup sering diubah
4. Kerahasiaannya terlindungi.
b. Programer : Ada 2 macam programer
- Aplication Programer : Programer yang membuat program-program aplikasi
- System programer : Programer yang membuat program-program sistem yang memadukan dan mengontrol program-program aplikasi. misal : membuat menu untuk masing-masing user, membuat log transaction pemakaian program dan database dari para User dan sebagainya, dan harus mentaati prosedur password.
c. Operation staff : Sering kerusakan data disebabkan operator yang kurang terlatih atau petunjuk yang kurang memadai atau sulit dipahami. Operator yang berhubungan dengan database adalah operator program aplikasi.
Pengamanan data baginya antara lain berupa :
- Validasi yang cukup pada data entry
- Pengecekan jumlah counter dengan formulir data
- Operator database (staff DBA)
- Pada saat backup, data harus mendapat perhatian.
INTEGRITY Yaitu kemampuan untuk membuat data tetap valid jika terjadi pemakaian data yang sama pada waktu yang sama oleh beberapa user.
Ada 3 sudut pandang di dalam integrity :
1. Semantic Integrity
2. Concurency Control : Data yang sama dipakai oaleh beberapa user pada waktu yang sama
Masalah dalam concurency : Lost update, dirty read, unrepeatable read
Cara menghilangkan problem concurency adalah mekanisme locking yaitu mekanisme untuk menghapus masalah concurency ada 2 :
· Exclusive Lock : Sebuah lock yang mengijinkan pemegang mengakses sendiri ke lock data, tidak ada proses yang lain (baca atau menulis)
· Shared Lock : Sebuah lock yang mengijinkan beberapa proses untuk mengakses bersama-sama suatu bagian dari database, satu update yang lain baca
Mekanisme locking menyebabkan terjadinya deadlock
3. Recovery : Kemampuan mempertahankan data bila terjadi kegagalan sistem, misal karena listrik mati, drive rusak, dan lain-lain.
Masalah yang merusak Integrity adalah Transaksi yaitu suatu unit kerja utuh yang mempunyai arti (terdiri dari suatu jajaran tindakan)
Sebuah transaksi dapat gagal karena :
· Suatu tindakan melanggar semantic integrity (Integritas Penawaran)
· User membatalkan transaksi
· Terjadi IO Error
· Dead Lock / jalan buntu mogok
· Kegagalan aplikasi program
· Sistem crash, O/S problem atau H/W
Concurrent Control yaitu pemakaian data yang sama oleh beberapa user pada waktu yang sama, concurrent control terjadi didalam lingkungan yang multi user.
Akibat adanya concurrent control mengakibatkan masalah sbb :
- Lost Update yaitu kehilangan data pada saat terjadi update
- Dirty Read yaitu terjadinya kerusakan data pada saat membaca
- Unrepeatable read yaitu terjadi proses perulangan pembacaan data
Untuk mengatasi masalah diatas diperlukan mekanisme locking, ada 2 jenis mekanisme locking yaitu :
1. Share Lock yaitu mekanisme penguncian data dilakukan oleh pemegang lock dimana semua user boleh membaca(read) tetapi hanya satu yang menulis(write).
2. Exclusive Lock yaitu mekanisme penguncian data dilakukan oleh pemegang lock dimana hanya satu yang boleh read atau write sedangkan user yang lain tidak boleh read atau write.
Jika mekanisme locking dilakukan dan terjadi adanya saling menunggu diantara user yang menjalankan transaksi sampai dengan membentuk circulair wait maka transaksi nya akan terjadi masalah baru yaitu deadlock yang mengakibatkan proses macet pada lingkungan multiuser diakibatkan pemakaian data secara concurrent.
Analogi traffic jam dari Dead Lock :
· Presequence / penjadwalan transaksi : Tidak ada perselisihan proses (menggunakan data yang sama) diijinkan untuk menjalankan bersama-sama
· Pre-Empt : Membutuhkan suatu mekanisme untuk mendeteksi sumber-sumber deadlock
· Pre-Claim / pesan tempat dulu : Meminta semua proses yang diupdate untuk request-with-lock semua sumber yang dibutuhkan untuk mensukseskan transaksi yang lengkap
· Pre-Order : Membutuhkan ordering untuk semua data yang diproses (semua kebutuhan data diprioritaskan, tetapi jika terjadi deadlock data yang besar didahulukan)
Two-Phase-Locking : Mekanisme untuk memberikan suatu lock, suatu ketika sebuah transaksi membebaskan lock pada data object (tidak dapat additional lock).
BACKUP and RECOVERY terdiri dari :
· Update / Image log: Menyimpan record sebelum dan sesudah perubahan
· Backup Dump : Menyimpan semua isi dari database pada media terpisah
· Transaction log : Menyimpan semua isi dari database pada media terpisah
· Audit trial : Menyimpan transaksi dalam bentuk siapa, kapan, dimana dan status hasilnya
Strategi yang dipakai :
· Dual Recording Database
· Periodic Dumping
· Logging input data transaction
· Logging change to database