tem ke
titik stabil tanpa memaksa pemakai untuk mengulang transaksi yang baru saja selesai.
Untuk menangani situasi ini, DBMS harus memelihara log transaksi. Sebagai contoh, misalkan
sistem perbankan dirancang agar pesan dibuat dalam log (elektronik atau kertas atau keduanya)
setiap kali transaksi diproses. Jika terjadi kegagalan sistem, sistem dapat memperoleh saldo akun
yang akurat dengan mengembalikan ke salinan cadangan database dan memproses ulang semua
transaksi selanjutnya dari log.
Integritas Elemen
Integritas elemen database yaitu kebenaran atau akurasinya. Pada akhirnya, pemakai yang
berwenang bertanggung jawab untuk memasukkan data yang benar dalam database. Namun,
pemakai dan program membuat kesalahan dalam mengumpulkan data, menghitung hasil, dan
memasukkan nilai. Oleh sebab itu, DBMS terkadang mengambil tindakan khusus untuk membantu
menangkap kesalahan saat dibuat dan untuk memperbaiki kesalahan setelah dimasukkan.
Basis data mencapai integritas basis data, strukturnya, dan elemen individualnya.
Tindakan korektif ini dapat dilakukan dengan tiga cara: dengan pemeriksaan lapangan, melalui
kontrol akses, dan dengan log perubahan.
Pertama, DBMS dapat menerapkan pemeriksaan lapangan, aktivitas yang menguji nilai yang sesuai
dalam suatu posisi. Bidang mungkin diperlukan berupa angka, huruf besar, atau salah satu dari
serangkaian karakter yang dapat diterima. Pemeriksaan memastikan bahwa nilai berada dalam batas
yang ditentukan atau tidak lebih besar dari jumlah nilai dalam dua bidang lainnya. Pemeriksaan ini
mencegah kesalahan sederhana saat data dimasukkan. (Studi Kasus 4-1 menunjukkan pentingnya
integritas elemen.)
Studi Kasus 4-1 : Kegagalan Integritas Elemen Menghancurkan Jaringan
Crocker dan Bernstein [CRO89] mempelajari kegagalan bencana dari apa yang
lalu dikenal sebagai ARPANET, pendahulu Internet saat ini. Beberapa kegagalan
datang dari masalah dengan Tabel routing yang dipakai untuk mengarahkan lalu
lintas melalui jaringan.
Sebuah kesalahan tahun 1971 disebut "lubang hitam." Kegagalan perangkat keras
memicu satu node menyatakan bahwa itu yaitu jalur terbaik ke setiap node
290
lain dalam jaringan. Node ini mengirimkan deklarasi ini ke node lain, yang segera
menyebarkan posting yang salah ke seluruh jaringan. Node ini segera menjadi
lubang hitam jaringan sebab semua lalu lintas diarahkan ke sana namun tidak pernah
sampai ke tujuan sebenarnya.
ARPANET memakai Tabel sederhana, bukan sistem manajemen basis data
berfitur lengkap, jadi tidak ada pemeriksaan nilai baru sebelum dipasang di Tabel
perutean terdistribusi. Seandainya ada database, perangkat lunak pemeriksa
integritas dapat memeriksa kesalahan dalam nilai yang baru didistribusikan dan
menaikkan tanda untuk ditinjau oleh manusia.
Tindakan integritas kedua diberikan oleh kontrol akses. Untuk mengetahui alasannya, pertimbangkan
hidup tanpa basis data. File data mungkin berisi data dari beberapa sumber, dan data yang berlebihan
dapat disimpan di beberapa tempat berbeda. Misalnya, alamat surat siswa dapat disimpan di
banyak file kampus yang berbeda: di kantor registrar untuk korespondensi formal, di kantor layanan
makanan untuk hak istimewa ruang makan, di toko buku untuk pembelian, dan di kantor bantuan
keuangan untuk akuntansi. Memang, siswa mungkin tidak menyadari bahwa setiap kantor yang
terpisah memiliki alamat yang tercatat. Jika siswa berpindah dari satu tempat tinggal ke tempat
tinggal lainnya, masing-masing file terpisah memerlukan koreksi.
Tanpa database, Anda dapat membayangkan risiko terhadap integritas data. Pertama, pada waktu
tertentu, beberapa file data dapat menunjukkan alamat lama (belum diperbarui) dan beberapa
secara bersamaan memiliki alamat baru (sudah diperbarui). Kedua, selalu ada kemungkinan bahwa
seseorang salah memasukkan bidang data, lagi-lagi mengarah ke file dengan informasi yang
salah. Ketiga, siswa bahkan mungkin tidak mengetahui beberapa file, sehingga dia tidak tahu untuk
memberi tahu pemilik file tentang memperbarui informasi alamat. Masalah-masalah ini diselesaikan
oleh database. Mereka memungkinkan pengumpulan dan kontrol data ini di satu sumber pusat,
memastikan siswa dan pemakai memiliki alamat yang benar.
Namun, sentralisasi lebih mudah diucapkan daripada dilakukan. Siapa yang memiliki file pusat
bersama ini? Siapa yang berwenang memperbarui elemen mana? Bagaimana jika dua orang
menerapkan modifikasi yang saling bertentangan? Bagaimana jika modifikasi diterapkan dari urutan?
Bagaimana catatan duplikat terdeteksi? Tindakan apa yang diambil saat duplikat ditemukan? Ini
yaitu pertanyaan kebijakan yang harus diselesaikan oleh administrator basis data.Studi Kasus
4-2 menjelaskan bagaimana masalah ini ditujukan untuk mengelola konfigurasi program; Proses
formal yang serupa diperlukan untuk mengelola perubahan database.
291
Insinyur perangkat lunak harus menangani kontrol akses saat mereka mengelola
konfigurasi sistem komputer besar. Kode sistem utama dan perubahan kode
dari waktu ke waktu sebenarnya yaitu database. Dalam banyak kasus, banyak
pemrogram membuat perubahan pada sistem pada saat yang bersamaan; database
manajemen konfigurasi harus membantu memastikan bahwa perubahan yang benar
dan terbaru disimpan.
Proliferasi versi dan rilis dapat dikontrol dalam tiga cara utama.
• File terpisah: File terpisah dapat disimpan untuk setiap versi atau rilis yang
berbeda. Misalnya, versi 1 mungkin ada untuk mesin yang menyimpan semua
data di memori utama, dan versi 2 yaitu untuk mesin yang harus mengeluarkan
beberapa data ke disk. Misalkan fungsi umum yaitu sama di kedua versi, berada
di komponen C1 sampai Ck, namun manajemen memori dilakukan oleh komponen
M1 untuk versi 1 dan M2 untuk versi 2. Jika fungsi baru akan ditambahkan ke
rutinitas manajemen memori, pertahankan keduanya versi saat ini dan yang
benar mungkin sulit; hasilnya harus sama dari sudut pandang pemakai .
• Delta: Satu versi sistem dianggap sebagai versi utama, dan semua versi lainnya
dianggap sebagai variasi dari versi utama. Basis data hanya melacak perbedaan,
dalam file yang disebut file delta. Delta berisi perintah yang "diterapkan" ke versi
utama untuk mengubahnya menjadi versi alternatif. Pendekatan ini menghemat
ruang penyimpanan namun bisa menjadi berat.
• Kompilasi bersyarat: Semua versi ditangani oleh satu file, dan pernyataan
bersyarat dipakai untuk menentukan pernyataan mana yang berlaku dalam
kondisi mana. Dalam hal ini, kode yang dibagikan hanya muncul sekali, jadi
hanya satu koreksi yang diperlukan jika ditemukan masalah. namun kode dalam
satu file ini bisa sangat kompleks dan sulit dipelihara.
Dalam salah satu dari tiga kasus ini, akses terkontrol ke file konfigurasi sangat
penting. Dua programmer yang memperbaiki masalah yang berbeda terkadang perlu
membuat perubahan pada komponen yang sama. Jika mereka tidak mengoordinasikan
akses, pemrogram kedua dapat secara tidak sengaja membatalkan (atau lebih buruk
lagi, merusak) perubahan pemrogram pertama, yang mengakibatkan tidak hanya
terulangnya masalah awal namun juga munculnya masalah tambahan. Untuk alasan
ini, file dikendalikan dalam beberapa cara, termasuk dikunci saat perubahan dilakukan
oleh satu programmer, dan tunduk pada sekelompok orang yang disebut papan
kontrol konfigurasi yang memastikan bahwa tidak ada file yang diubah dimasukkan
kembali ke dalam produksi tanpa pemeriksaan yang tepat. dan pengujian. Shari
Lawrence Pfleeger dan Joanne Atlee menulis tentang teknik ini.
Studi Kasus 4-2 : Manajemen Konfigurasi dan Kontrol Akses
292
Cara ketiga untuk menyediakan integritas basis data yaitu memelihara log perubahan untuk basis
data. Log perubahan mencantumkan setiap perubahan yang dilakukan pada database; itu berisi
nilai asli dan nilai yang dimodifikasi. Dengan memakai log ini, administrator database dapat
membatalkan perubahan yang dibuat sebab kesalahan. Misalnya, denda perpustakaan mungkin
keliru diposting terhadap Charles W. Robertson, bukan Charles M. Robertson, menandai Charles
W. Robertson sebagai tidak memenuhi syarat untuk berpartisipasi dalam atletik universitas. Setelah
menemukan kesalahan ini, administrator database memperoleh nilai kelayakan asli Charles W. dari
log dan mengoreksi database.
Kemampuan Audit
Untuk beberapa aplikasi, administrator mungkin ingin membuat catatan audit dari semua akses
(baca atau tulis) ke database. Catatan semacam itu dapat membantu menjaga integritas basis data,
atau setidaknya untuk menemukan setelah fakta siapa yang memengaruhi nilai apa dan kapan.
Keuntungan kedua, seperti yang akan kita lihat nanti, yaitu bahwa pemakai dapat mengakses data
yang dilindungi secara bertahap; yaitu, tidak ada akses tunggal mengungkapkan data yang dilindungi,
namun satu set akses berurutan dilihat bersama-sama mengungkapkan data, seperti menemukan
petunjuk dalam novel detektif. Dalam hal ini, jejak audit dapat mengidentifikasi petunjuk mana yang
telah diberikan kepada pemakai , sebagai panduan apakah akan memberi tahu pemakai lebih
banyak.
Seperti yang kita catat di Bab 2, granularity dapat menjadi hambatan dalam audit. Peristiwa yang
diaudit dalam sistem operasi yaitu tindakan seperti file terbuka atau prosedur panggilan; mereka
jarang spesifik seperti menulis record 3 atau mengeksekusi instruksi I. Agar berguna untuk menjaga
integritas, jejak audit database harus menyertakan akses pada record, field, dan bahkan level elemen.
Detail ini menjadi penghalang untuk sebagian besar aplikasi database.
Selanjutnya, sistem manajemen basis data dapat mengakses catatan namun tidak melaporkan
data kepada pemakai , seperti saat pemakai melakukan operasi pilih. Misalnya, penasihat
asrama mungkin ingin menghitung semua siswa yang gagal bahasa Prancis dasar, dan sistem
manajemen basis data melaporkan 462. Untuk mendapatkan nomor itu, sistem harus memeriksa
semua catatan siswa dan mencatat mereka yang nilainya gagal, dan itu dilakukan pencarian ini atas
nama penasihat yang terdaftar dengan tepat di log sebagai penerima data. Jadi, dalam arti tertentu,
pembimbing mengakses semua nilai siswa ini , meskipun dari angka 462 pembimbing tidak dapat
menentukan nilai setiap siswa. (Mengakses catatan atau elemen tanpa mentransfer ke pemakai
data yang diterima disebut masalah pass-through.) Dengan demikian, log dari semua catatan yang
diakses secara langsung dapat melebih-lebihkan dan mengecilkan apa yang sebenarnya dipelajari
pemakai . Masalahnya bahkan lebih bernuansa daripada apa yang kami jelaskan di sini, dan kami
mempertimbangkan beberapa seluk-beluk pengungkapan nanti dalam bab ini.
Kontrol Akses
Database sering dipisahkan secara logis oleh hak akses pemakai . Misalnya, semua pemakai
dapat diberikan akses ke data umum, namun hanya departemen personalia yang dapat memperoleh
data gaji dan hanya departemen pemasaran yang dapat memperoleh data penjualan. Basis data
berguna sebab memusatkan penyimpanan dan pemeliharaan data. Akses yang terbatas merupakan
tanggung jawab dan keuntungan dari sentralisasi ini.
293
Administrator database menentukan siapa yang harus diizinkan mengakses data mana, pada
tampilan, relasi, bidang, catatan, atau bahkan tingkat elemen. DBMS harus menegakkan kebijakan
ini, memberikan akses ke semua data tertentu atau tidak ada akses jika dilarang. Apalagi jumlah
moda aksesnya bisa banyak. pemakai atau program mungkin memiliki hak untuk membaca,
mengubah, menghapus, atau menambahkan nilai, menambah atau menghapus seluruh bidang
atau catatan, atau mengatur ulang seluruh database.
Secara dangkal, kontrol akses untuk database tampak seperti kontrol akses untuk sistem operasi
atau komponen lain dari sistem komputasi. Namun, masalah database lebih rumit, seperti yang kita
lihat di seluruh bab ini. Objek sistem operasi, seperti file, yaitu item yang tidak terkait, sedangkan
catatan, bidang, dan elemen terkait. Meskipun pemakai mungkin tidak dapat menentukan isi satu
file dengan membaca yang lain, pemakai mungkin dapat menentukan satu elemen data hanya
dengan membaca yang lain. Masalah memperoleh nilai data dari orang lain disebut inferensi, dan
kami akan membahasnya secara mendalam nanti dalam bab ini.
Penting untuk diperhatikan bahwa Anda dapat mengakses data dengan inferensi tanpa memerlukan
akses langsung ke objek aman itu sendiri. Membatasi inferensi dapat berarti melarang jalur tertentu
untuk mencegah kemungkinan inferensi. Namun, membatasi akses untuk mengontrol inferensi juga
membatasi kueri dari pemakai yang tidak bermaksud mengakses nilai secara tidak sah. Selain itu,
upaya untuk memeriksa akses yang diminta untuk kemungkinan inferensi yang tidak dapat diterima
sebenarnya dapat menurunkan kinerja DBMS.
Akhirnya, ukuran atau granularity berbeda antara objek sistem operasi dan objek database. Sebuah
sistem operasi dapat dengan mudah mengontrol akses ke file, seperti yang kami jelaskan di Bab 5.
Namun daftar kontrol akses dari beberapa ratus file jauh lebih mudah diimplementasikan daripada
daftar kontrol akses untuk database dengan beberapa ratus file yang masing-masing mungkin seratus
bidang. Ukuran mempengaruhi efisiensi pemrosesan. Sistem operasi biasanya tidak "melihat ke
dalam" file untuk mengontrol akses ke item di dalam file.
Otentikasi pemakai
DBMS dapat memerlukan otentikasi pemakai yang ketat. Misalnya, DBMS mungkin bersikeras
bahwa pemakai melewati kata sandi dan pemeriksaan waktu tertentu. Otentikasi ini melengkapi
otentikasi yang dilakukan oleh sistem operasi. Biasanya, DBMS berjalan sebagai program aplikasi
di atas sistem operasi. Perancangan sistem ini berarti tidak ada jalur terpercaya dari DBMS ke
sistem operasi, sehingga DBMS harus curiga terhadap setiap data yang diterimanya, termasuk
identitas pemakai dari sistem operasi. Dengan demikian, DBMS dipaksa untuk melakukan otentikasi
sendiri.
Ketersediaan
Sebuah DBMS memiliki aspek dari kedua program dan sistem. Ini yaitu program yang memakai
sumber daya perangkat keras dan perangkat lunak lain, namun bagi banyak pemakai itu yaitu satu-
satunya aplikasi yang dijalankan. pemakai sering menganggap DBMS begitu saja, memakai nya
sebagai alat penting untuk melakukan tugas-tugas tertentu. namun saat sistem tidak tersedia —
sibuk melayani pemakai lain atau down untuk diperbaiki atau ditingkatkan — pemakai sangat
menyadari ketidaktersediaan DBMS. Misalnya, dua pemakai dapat meminta catatan yang sama,
294
dan DBMS harus melakukan arbitrase; satu pemakai pasti akan ditolak aksesnya untuk sementara
waktu. Atau DBMS dapat menahan data yang tidak dilindungi untuk menghindari pengungkapan
data yang dilindungi, membuat pemakai yang meminta tidak senang. Kami memeriksa masalah ini
secara lebih rinci nanti dalam bab ini. Masalah seperti ini menghasilkan persyaratan ketersediaan
tinggi untuk DBMS.
Integritas/Kerahasiaan/Ketersediaan
Tiga aspek keamanan komputer—integritas, kerahasiaan, dan ketersediaan—jelas berhubungan
dengan sistem manajemen basis data. Seperti yang telah kami jelaskan, integritas berlaku untuk
elemen individu dari database serta database secara keseluruhan. Integritas juga merupakan properti
dari struktur database (elemen dalam satu Tabel sesuai satu dengan yang lain) dan hubungan
database (catatan memiliki pengidentifikasi unik yang sama, yang disebut kunci, terkait). Dengan
demikian, integritas merupakan perhatian utama dalam desain sistem manajemen database. Kami
melihat lebih dekat pada masalah integritas di bagian berikutnya.
Kerahasiaan juga merupakan masalah utama dengan database sebab database sering dipakai
untuk menerapkan berbagi data sensitif yang terkontrol. Akses ke data bisa langsung (Anda meminta
catatan dan database menyediakannya) atau tidak langsung (Anda meminta beberapa catatan
dan dari hasil ini menyimpulkan atau memberi tahu data lain). Mengontrol akses langsung
memakai teknik kontrol akses yang kami jelaskan di Bab 2 dan 5. Akses tidak langsung,
bagaimanapun, lebih sulit untuk dikendalikan, dan kami mengeksplorasinya lebih mendalam nanti
di bab ini.
Terakhir, ketersediaan menjadi penting sebab motivasi akses bersama yang mendasari pengembangan
basis data. Namun, ketersediaan bertentangan dengan kerahasiaan. Bagian terakhir dari bab ini
membahas ketersediaan di lingkungan di mana kerahasiaan juga penting.
4.3 Keandalan dan Integritas
Basis data menggabungkan data dari banyak sumber, dan pemakai mengharapkan DBMS
menyediakan akses ke data dengan cara yang andal. saat insinyur perangkat lunak mengatakan
bahwa perangkat lunak memiliki keandalan, itu berarti perangkat lunak itu berjalan untuk jangka
waktu yang sangat lama tanpa gagal. pemakai tentu mengharapkan DBMS dapat diandalkan,
sebab data biasanya merupakan kunci untuk kebutuhan bisnis atau organisasi. Selain itu, pemakai
mempercayakan data mereka ke DBMS dan mengharapkannya untuk melindungi data dari kehilangan
atau kerusakan. Kekhawatiran untuk keandalan dan integritas yaitu masalah keamanan umum,
namun lebih jelas dengan database.
Sebuah DBMS menjaga terhadap kehilangan atau kerusakan dalam beberapa cara, yang kita
pelajari di bagian ini. Namun, kontrol yang kami anggap tidak mutlak: Tidak ada kontrol yang dapat
mencegah pemakai yang berwenang secara tidak sengaja memasukkan nilai yang dapat diterima
namun salah.
295
Kekhawatiran database tentang keandalan dan integritas dapat dilihat dari tiga dimensi:
• Integritas database: perhatian bahwa database secara keseluruhan dilindungi dari kerusakan,
seperti dari kegagalan drive disk atau kerusakan indeks database master. Kekhawatiran ini
ditangani oleh kontrol integritas sistem operasi dan prosedur pemulihan.
• Integritas elemen: perhatian bahwa nilai elemen data tertentu ditulis atau diubah hanya oleh
pemakai yang berwenang. Kontrol akses yang tepat melindungi database dari korupsi oleh
pemakai yang tidak sah.
• Akurasi elemen: perhatian bahwa hanya nilai yang benar yang ditulis ke dalam elemen database.
Pemeriksaan nilai elemen dapat membantu mencegah penyisipan nilai yang tidak tepat. Selain
itu, kondisi kendala dapat mendeteksi nilai yang salah.
4.3.1 Fitur Perlindungan dari Sistem Operasi
Seorang administrator sistem yang bertanggung jawab membuat cadangan file database secara
berkala bersama dengan file pemakai lainnya. Selama eksekusi normal, fasilitas kontrol akses
standar sistem operasi melindungi file dari akses luar. Akhirnya, sistem operasi melakukan
pemeriksaan integritas tertentu untuk semua data sebagai bagian dari operasi baca dan tulis
normal untuk perangkat I/O. Kontrol ini memberikan keamanan dasar untuk database, namun manajer
database harus meningkatkannya.
Pembaruan Dua Fase
Masalah serius bagi pengelola database yaitu kegagalan sistem komputasi di tengah modifikasi
data. Jika item data yang akan dimodifikasi yaitu bidang panjang atau catatan yang terdiri dari
beberapa atribut, hanya beberapa data baru yang mungkin telah ditulis ke penyimpanan permanen.
Oleh sebab itu, file database akan berisi data yang salah yang belum diperbarui. Bahkan jika
kesalahan jenis ini terlihat dengan mudah (yang sebenarnya tidak), masalah yang lebih halus
terjadi saat beberapa bidang diperbarui dan tidak ada satu bidang pun yang tampak jelas dalam
kesalahan. Solusi untuk masalah ini, diusulkan pertama kali oleh Lampson dan Sturgis [LAM76]
dan diadopsi oleh sebagian besar DBMS, memakai pembaruan dua fase.
Perbarui Teknik
Selama fase pertama, yang disebut fase maksud, DBMS mengumpulkan sumber daya yang dibutuhkan
untuk melakukan pembaruan. Ini dapat mengumpulkan data, membuat catatan dummy, membuka
file, mengunci pemakai lain, dan menghitung jawaban akhir; singkatnya, ia melakukan segalanya
untuk mempersiapkan pembaruan, namun tidak membuat perubahan pada database. Fase pertama
dapat diulang dalam jumlah yang tidak terbatas sebab tidak memerlukan tindakan permanen. Jika
sistem gagal selama eksekusi fase pertama, tidak ada kerusakan yang dilakukan sebab semua
langkah ini dapat dimulai ulang dan diulang setelah sistem melanjutkan pemrosesan.
Peristiwa terakhir dari fase pertama, yang disebut commit, melibatkan penulisan sebuah flag commit
ke database. Flag commit berarti bahwa DBMS telah melewati point of no return: Setelah melakukan
commit, DBMS mulai membuat perubahan permanen.
296
Fase kedua membuat perubahan permanen. Selama fase kedua, tidak ada tindakan dari sebelum
komit yang dapat diulang, namun aktivitas pembaruan fase dua juga dapat diulang sesering yang
diperlukan. Jika sistem gagal selama fase kedua, database mungkin berisi data yang tidak lengkap,
namun sistem dapat memperbaiki data ini dengan melakukan semua aktivitas fase kedua. Setelah
tahap kedua selesai, database kembali lengkap.
Contoh Pembaruan Dua Fase
Pertimbangkan database yang berisi inventaris perlengkapan kantor perusahaan. Ruang penyimpanan
pusat perusahaan menyimpan kertas, pena, klip kertas, dan sejenisnya, dan berbagai departemen
meminta item yang mereka butuhkan. Perusahaan membeli dalam jumlah besar untuk mendapatkan
harga terbaik. Setiap departemen memiliki anggaran untuk perlengkapan kantor, jadi ada mekanisme
pengisian di mana biaya perlengkapan dipulihkan dari departemen. Juga, ruang penyimpanan
pusat memantau jumlah persediaan yang ada untuk memesan persediaan baru saat persediaan
menipis.
Misalkan proses dimulai dengan permintaan dari departemen akuntansi untuk 50 kotak klip kertas.
Asumsikan ada 107 kotak dalam persediaan dan pesanan baru ditempatkan jika jumlah persediaan
turun di bawah 100. Berikut yaitu langkah-langkah yang diikuti setelah ruang persediaan menerima
permintaan.
1. Ruang penyimpanan memeriksa database untuk menentukan bahwa ada 50 kotak klip kertas.
Jika tidak, permintaan ditolak dan transaksi selesai.
2. Jika klip kertas tersedia dalam jumlah yang cukup, ruang penyimpanan mengurangi 50 dari
angka inventaris dalam database (107 – 50 = 57).
3. Ruang persediaan membebankan anggaran persediaan akuntansi (juga dalam database) untuk:
50 kotak klip kertas.
4. Ruang persediaan memeriksa sisa jumlah yang ada (57) untuk menentukan apakah jumlah
yang tersisa di bawah titik pemesanan ulang. sebab itu, pemberitahuan untuk memesan lebih
banyak klip kertas dibuat, dan item ini ditandai sebagai "sesuai pesanan" di database.
5. Sebuah pesanan pengiriman disiapkan, memungkinkan 50 kotak klip kertas untuk dikirim ke
akuntansi.
Kelima langkah ini harus diselesaikan dalam urutan yang tercantum agar database akurat dan
transaksi diproses dengan benar.
Misalkan kegagalan terjadi saat langkah-langkah ini sedang diproses. Jika kegagalan terjadi sebelum
langkah 1 selesai, tidak ada salahnya terjadi, sebab seluruh transaksi dapat dimulai kembali.
Namun, selama langkah 2, 3, dan 4, perubahan dilakukan pada elemen dalam database. Jika
terjadi kegagalan, maka nilai dalam database tidak konsisten. Lebih buruk lagi, transaksi tidak dapat
diproses ulang sebab permintaan akan dipotong dua kali atau departemen akan dikenakan biaya
dua kali atau dua pesanan pengiriman akan disiapkan.
saat komit dua fase dipakai , nilai bayangan dipertahankan untuk titik data utama. Nilai data
bayangan dihitung dan disimpan secara lokal selama fase maksud, dan disalin ke database aktual
selama fase komit. Operasi pada database akan dilakukan sebagai berikut untuk komit dua fase.
297
Intent:
1. Periksa nilai COMMIT-FLAG di database. Jika diatur, fase ini tidak dapat dilakukan. Menghentikan
atau mengulang, memeriksa COMMIT-FLAG sampai tidak disetel.
2. Bandingkan jumlah kotak klip kertas di tangan dengan nomor yang diminta; jika lebih banyak
yang diminta daripada yang ada, hentikan.
3. Hitung TCLIPS = ONHAND – REQUISITION.
4. Dapatkan BUDGET, anggaran persediaan saat ini yang tersisa untuk departemen akuntansi.
Hitung TBUDGET = ANGGARAN – BIAYA, di mana BIAYA yaitu biaya 50 kotak klip.
5. Periksa apakah TCLIPS berada di bawah titik pemesanan ulang; jika demikian, atur TREORDER
= TRUE; jika tidak, atur TREORDER = FALSE.
Commit:
1. Atur COMMIT-FLAG di database.
2. Salin TCLIPS ke CLIPS di database.
3. Salin TBUDGET ke BUDGET di database.
4. Copy TREORDER ke REORDER di database.
5. Siapkan pemberitahuan untuk mengirimkan klip kertas ke departemen akuntansi. Tunjukkan
transaksi selesai di log.
6. Hapus COMMIT-FLAG.
Dengan contoh ini, setiap langkah dari fase maksud hanya bergantung pada nilai yang tidak
dimodifikasi dari database dan hasil sebelumnya dari fase maksud. Setiap variabel yang dimulai
dengan T yaitu variabel bayangan yang hanya dipakai dalam transaksi ini. Langkah-langkah
dari fase maksud dapat diulang berkali-kali tanpa mempengaruhi integritas database.
Setelah DBMS memulai fase commit, ia menulis flag COMMIT. Saat tanda ini disetel, DBMS tidak
akan melakukan langkah apa pun dari fase maksud. Langkah-langkah maksud tidak dapat dilakukan
setelah melakukan sebab nilai database dimodifikasi dalam fase komit. Perhatikan, bagaimanapun,
bahwa langkah-langkah fase komit dapat diulang dalam jumlah yang tidak terbatas, sekali lagi tanpa
efek negatif pada kebenaran nilai dalam database.
Satu kelemahan yang tersisa dalam logika ini terjadi jika sistem gagal setelah menulis pesan
“transaction complete” di log namun sebelum mengosongkan flag commit di database. Ini yaitu
masalah sederhana untuk bekerja mundur melalui log transaksi untuk menemukan transaksi selesai
yang flag komitnya masih disetel dan untuk menghapus flag ini .
4.3.2 Redundansi/Konsistensi Internal
Banyak DBMS memelihara informasi tambahan untuk mendeteksi inkonsistensi internal dalam
data. Informasi tambahan berkisar dari beberapa bit cek hingga bidang duplikat atau bayangan,
tergantung pada pentingnya data.
298
Deteksi Kesalahan dan Kode Koreksi
Salah satu bentuk redundansi yaitu deteksi kesalahan dan kode koreksi, seperti bit paritas, kode
Hamming, dan pemeriksaan redundansi siklik. Kode-kode ini dapat diterapkan ke bidang tunggal,
catatan, atau seluruh database. Setiap kali item data ditempatkan dalam database, kode cek
yang sesuai dihitung dan disimpan; setiap kali item data diambil, kode cek serupa dihitung dan
dibandingkan dengan nilai yang disimpan. Jika nilainya tidak sama, mereka menandakan ke DBMS
bahwa telah terjadi kesalahan dalam database. Beberapa kode ini menunjukkan tempat kesalahan;
yang lain menunjukkan dengan tepat apa nilai yang benar seharusnya. Semakin banyak informasi
yang diberikan, semakin banyak ruang yang dibutuhkan untuk menyimpan kode.
Bidang Bayangan
Seluruh atribut atau seluruh catatan dapat diduplikasi dalam database. Jika data tidak dapat
direproduksi, salinan kedua ini dapat memberikan penggantian segera jika kesalahan terdeteksi.
Jelas, bidang yang berlebihan membutuhkan ruang penyimpanan yang besar.
Pemulihan
Selain proses koreksi kesalahan ini, DBMS dapat memelihara log akses pemakai , khususnya
perubahan. Jika terjadi kegagalan, database dimuat ulang dari salinan cadangan dan semua
perubahan selanjutnya diterapkan dari log audit.
Konkurensi/Konsistensi
Sistem basis data seringkali merupakan sistem multiuser. Akses oleh dua pemakai yang berbagi
database yang sama harus dibatasi sehingga tidak ada yang mengganggu yang lain. Penguncian
sederhana dilakukan oleh DBMS. Jika dua pemakai mencoba membaca item data yang sama,
tidak ada konflik sebab keduanya mendapatkan nilai yang sama.
Jika kedua pemakai mencoba untuk memodifikasi item data yang sama, kita sering berasumsi
bahwa tidak ada konflik sebab masing-masing tahu apa yang harus ditulis; nilai yang akan ditulis
tidak bergantung pada nilai item data sebelumnya. Namun, anggapan ini kurang tepat.
Untuk melihat bagaimana modifikasi bersamaan dapat membuat kita mendapat masalah, misalkan
database terdiri dari reservasi kursi untuk penerbangan maskapai tertentu. Agen A, memesan kursi
untuk penumpang Mock, mengajukan pertanyaan untuk menemukan kursi apa yang masih tersedia.
Agen tahu bahwa Mock lebih suka kursi di lorong kanan, dan agen menemukan bahwa kursi 5D,
11D, dan 14D terbuka. Pada saat yang sama, Agen B mencoba memesan kursi untuk keluarga
yang terdiri dari tiga orang yang bepergian bersama. Sebagai tanggapan atas kueri, database
menunjukkan bahwa 8A–B–C dan 11D–E–F yaitu dua grup tersisa dari tiga kursi yang belum
ditetapkan yang berdekatan. Agen A mengirimkan perintah pembaruan
SELECT (SEAT-NO = ‘11D’)
ASSIGN ‘MOCK,E’ TO PASSENGER-NAME
sementara agen B mengirimkan urutan pembaruan
SELECT (SEAT-NO = ‘11D’)
ASSIGN ‘EDWARDS,S’ TO PASSENGER-NAME
299
serta perintah untuk kursi 11E dan 11F. lalu dua penumpang telah dipesan ke kursi yang
sama (yang akan membuat tidak nyaman, untuk sedikitnya).
Kedua agen telah bertindak dengan benar: Masing-masing mencari daftar kursi kosong, memilih satu
kursi dari daftar, dan memperbarui database untuk menunjukkan kepada siapa kursi itu diberikan.
Kesulitan dalam situasi ini yaitu waktu tunda antara membaca nilai dari database dan menulis
modifikasi nilai itu. Selama waktu tunda, pemakai lain telah mengakses data yang sama.
Untuk mengatasi masalah ini, DBMS memperlakukan seluruh siklus pembaruan kueri sebagai operasi
atom tunggal. Perintah dari agen sekarang harus menyerupai “baca nilai kursi PASSENGER-NAME
saat ini untuk kursi 11D; jika 'UNASSIGNED', ubah menjadi 'MOCK,E' (atau 'EDWARDS,S'). Siklus
baca-modifikasi harus diselesaikan sebagai item yang tidak terputus tanpa mengizinkan pemakai
lain mengakses bidang PASSENGER-NAME untuk kursi 11D.
Permintaan agen kedua untuk memesan tidak akan dipertimbangkan sampai setelah agen pertama
selesai; pada saat itu, nilai PASSENGER-NAME tidak lagi menjadi 'UNASSIGNED'.
Masalah terakhir dalam akses konkuren yaitu baca-tulis. Misalkan satu pemakai memperbarui
nilai saat pemakai kedua ingin membacanya. Jika pembacaan dilakukan saat penulisan sedang
berlangsung, pembaca dapat menerima data yang hanya diperbarui sebagian. Akibatnya, DBMS
mengunci semua permintaan baca sampai penulisan selesai.
4.4 Database Disclosure
Seperti yang kami jelaskan di Bab 9, lebih banyak data yang dikumpulkan tentang lebih banyak
orang daripada sebelumnya. Di masa lalu, satu perusahaan, organisasi, atau kantor pemerintah
hanya tahu tentang klien atau pelanggannya; ada sedikit berbagi antara organisasi. Dan jumlah
atau jenis tempat yang mengumpulkan data sedikit. Ya, kami berharap kantor menyimpan catatan
tentang kami, namun tidak termasuk setiap jalan, mesin kasir, dan situs web yang kami kunjungi.
Komputer, tentu saja, telah memungkinkan tidak hanya pengumpulan namun juga pembagian data
dalam jumlah besar ini.
Basis data berisi pemikiran, preferensi, pendapat, aktivitas (atau deskripsinya), fantasi, teman, dan
koneksi. Dari database ini orang dapat menarik kesimpulan yang mungkin akurat atau salah: Jamie
yaitu teman Anda. Jamie suka katak. Ergo, kamu suka katak. Jelas, ini yaitu logika yang salah,
meskipun mungkin juga benar. Pada bagian berikutnya kita mengeksplorasi bagaimana orang dan
komputer menganalisis database ini untuk koneksi data yang mengarah pada pengungkapan
data yang tidak dapat diterima.
4.4.1 Data Sensitif
Beberapa database berisi apa yang disebut data sensitif. Sebagai definisi kerja, mari kita katakan
bahwa data sensitif yaitu data yang tidak boleh dipublikasikan. Menentukan item dan bidang data
mana yang sensitif bergantung pada database individual dan makna yang mendasari data ini .
Jelas, beberapa database, seperti katalog perpustakaan umum, tidak berisi data sensitif; database
300
lain, seperti yang terkait dengan pertahanan, sepenuhnya sensitif. Kedua kasus ini—tidak ada yang
sensitif dan semua yang sensitif—yaitu yang paling mudah ditangani, sebab dapat dicakup oleh
kontrol akses ke database secara keseluruhan. Seseorang yaitu atau bukan pemakai resmi.
Kontrol ini dapat disediakan oleh sistem operasi.
Masalah yang lebih sulit, yang juga lebih menarik, yaitu kasus di mana beberapa namun tidak semua
elemen dalam database sensitif. Mungkin ada berbagai tingkat sensitivitas. Misalnya, database
universitas mungkin berisi data mahasiswa yang terdiri dari nama, bantuan keuangan, asrama,
pemakai an narkoba, jenis kelamin, denda parkir, dan ras.. Nama dan asrama mungkin yang paling
tidak sensitif; bantuan keuangan, denda parkir, dan pemakai an narkoba paling banyak; seks dan
ras di antara keduanya. Artinya, banyak orang mungkin memiliki akses yang sah ke nama, beberapa
jenis kelamin dan ras, dan relatif sedikit untuk bantuan keuangan, denda parkir, atau pemakai an
narkoba. Memang, pengetahuan tentang keberadaan beberapa bidang, seperti pemakai an narkoba,
mungkin sensitif. Dengan demikian, keamanan tidak hanya menyangkut elemen data namun juga
konteks dan maknanya.
Selanjutnya, kita harus memperhitungkan tingkat sensitivitas yang berbeda. Misalnya, meskipun
semua bidang sangat sensitif, bidang bantuan keuangan, denda parkir, dan bidang pemakai an
narkoba mungkin tidak memiliki jenis pembatasan akses yang sama. Persyaratan keamanan kami
mungkin menuntut agar beberapa orang diizinkan untuk melihat setiap bidang, namun tidak seorang
pun diizinkan untuk melihat ketiganya. Tantangan dari masalah kontrol akses yaitu membatasi
akses pemakai sehingga mereka hanya dapat memperoleh data yang mereka miliki aksesnya
yang sah. Atau, masalah kontrol akses memaksa kami untuk memastikan bahwa data sensitif tidak
diberikan kepada orang yang tidak berwenang.
Beberapa faktor dapat membuat data menjadi sensitif.
• Inheren sensitif. Nilai itu sendiri mungkin sangat terbuka sehingga sensitif. Contohnya yaitu
lokasi rudal pertahanan atau pendapatan rata-rata tukang cukur di kota dengan hanya satu
tukang cukur.
• Dari sumber yang sensitif. Sumber data mungkin menunjukkan perlunya kerahasiaan. Contohnya
yaitu informasi dari seorang informan yang identitasnya akan dikompromikan jika informasi
ini diungkapkan.
• Dinyatakan sensitif. Administrator basis data atau pemilik data mungkin telah menyatakan
bahwa data ini sensitif. Contohnya yaitu data militer rahasia atau nama donor anonim
dari sebuah karya seni.
• Bagian dari atribut atau catatan sensitif. Dalam database, seluruh atribut atau catatan dapat
diklasifikasikan sebagai sensitif. Contohnya yaitu atribut gaji dari database personel atau
catatan yang menjelaskan misi luar angkasa rahasia.
• Sensitif dalam kaitannya dengan informasi yang diungkapkan sebelumnya. Beberapa data
menjadi sensitif dengan adanya data lain. Misalnya, koordinat bujur dari tambang emas rahasia
mengungkapkan sedikit, namun koordinat bujur dalam hubungannya dengan koordinat lintang
menunjukkan tambang ini .
Semua faktor ini harus dipertimbangkan saat sensitivitas data sedang ditentukan.
Jenis Disclosure
301
Kita semua tahu bahwa beberapa data sensitif. Namun, terkadang karakteristik data pun sensitif.
Pada bagian ini, kita melihat bahwa bahkan informasi deskriptif tentang data (seperti keberadaan
mereka atau apakah mereka memiliki elemen yang bukan nol) yaitu bentuk dari
penyingkapan.
Data yang Tepat
Pengungkapan yang paling serius yaitu nilai pasti dari item data sensitif itu sendiri. pemakai
mungkin mengetahui bahwa data sensitif sedang diminta, atau pemakai dapat meminta data umum
tanpa mengetahui bahwa sebagian data sensitif. Pengelola basis data yang salah bahkan dapat
mengirimkan data sensitif secara tidak sengaja, tanpa diminta oleh pemakai . Dalam semua kasus
ini, hasilnya sama: Keamanan data sensitif telah dilanggar.
Bounds (Batas)
Eksposur lain yaitu mengungkapkan batas pada nilai sensitif, yaitu, menunjukkan bahwa nilai
sensitif, y, berada di antara dua nilai, L dan H. Terkadang, dengan memakai teknik penyempitan
yang tidak berbeda dengan pencarian biner, pemakai dapat menentukan terlebih dahulu bahwa L
y H dan lalu lihat apakah L y H/2, dan seterusnya, sehingga memungkinkan pemakai untuk
menentukan y ke presisi yang diinginkan. Dalam kasus lain, hanya mengungkapkan bahwa nilai
seperti anggaran beasiswa atletik atau jumlah agen CIA melebihi jumlah tertentu mungkin merupakan
pelanggaran keamanan yang serius.
Terkadang, bagaimanapun, batas yaitu cara yang berguna untuk menyajikan data sensitif. yaitu
umum untuk melepaskan batas atas dan bawah untuk data tanpa mengidentifikasi catatan tertentu.
Misalnya, sebuah perusahaan mungkin mengumumkan bahwa gajinya untuk programmer berkisar
dari $50.000 hingga $82.000. Jika Anda seorang programmer yang berpenghasilan $79.700, Anda
akan mengira Anda cukup kaya, sehingga Anda memiliki informasi yang Anda inginkan; namun,
pengumuman ini tidak mengungkapkan siapa programmer dengan bayaran tertinggi dan
terendah.
Hasil Negatif
Kadang-kadang kita dapat menyusun kata untuk menentukan hasil negatif. Artinya, kita dapat
mempelajari bahwa z bukan nilai y. Misalnya, mengetahui bahwa 0 bukanlah jumlah total hukuman
kejahatan untuk seseorang mengungkapkan bahwa orang ini dihukum sebab kejahatan.
Perbedaan antara 1 dan 2 atau 46 dan 47 kejahatan tidak sesensitif perbedaan antara 0 dan 1.
Oleh sebab itu, pengungkapan bahwa suatu nilai bukan 0 dapat menjadi pengungkapan yang
signifikan. Demikian pula, jika seorang siswa tidak muncul dalam daftar penghargaan, Anda dapat
menyimpulkan bahwa nilai rata-rata orang ini di bawah 3,50. Namun, informasi ini tidak terlalu
terbuka, sebab rentang nilai rata-rata dari 0,0 hingga 3,49 agak lebar.
Eksistensi
Dalam beberapa kasus, keberadaan data itu sendiri merupakan bagian dari data yang sensitif,
terlepas dari nilai sebenarnya. Misalnya, pemberi kerja mungkin tidak ingin karyawan mengetahui
bahwa pemakai an telepon mereka sedang dipantau. Dalam kasus ini, menemukan bidang NUMBER
PANGGILAN TELEPON PRIBADI dalam file personalia akan mengungkapkan data sensitif.
Probable Value
302
Akhirnya, dimungkinkan untuk menentukan probabilitas bahwa elemen tertentu memiliki nilai tertentu.
Untuk melihat caranya, misalkan Anda ingin mengetahui apakah presiden Amerika Serikat terdaftar di
partai Tory. Mengetahui bahwa presiden ada di database, Anda mengirimkan dua kueri ke database:
Manajer database dapat mengontrol akses dengan kueri langsung; pengungkapan dapat terjadi
dengan cara yang lebih halus yang lebih sulit dikendalikan.
Count(Residence=“1600 Pennsylvania Avenue”) = 4
Count(Residence=“1600 Pennsylvania Avenue” AND Tory=TRUE)
= 1
Dari pertanyaan ini Anda menyimpulkan ada kemungkinan 25 persen bahwa presiden yaitu Tory
yang terdaftar.
Serangan inferensi
Sebuah Inference Attack yaitu teknik data mining yang dilakukan dengan menganalisis data dalam
rangka untuk secara tidak sah mendapatkan pengetahuan tentang topik atau database.
Informasi sensitif sebuah subjek dapat dianggap sebagai bocoran jika musuh dapat menyimpulkan
nilai sebenarnya dengan kepercayaan diri tinggi. Ini yaitu contoh dari keamanan informasi yang
dilanggar. Sebuah serangan Inference terjadi saat pemakai dapat menyimpulkan dari informasi
sepele menjadi informasi yang lebih kuat tentang database tanpa langsung mengaksesnya.Tujuan
dari serangan Inferensi yaitu untuk mengumpulkan informasi pada satu tingkat keamanan untuk
menentukan fakta yang harus dilindungi pada tingkat keamanan yang lebih tinggi.
Penanggulangan
Kontrol inferensi keamanan komputer yaitu upaya untuk mencegah pemakai menyimpulkan
informasi rahasia dari potongan berhak diakses informasi dengan klasifikasi rendah. Profesional
keamanan komputer menginstal protokol ke dalam database untuk mencegah serangan inferensi
oleh software.Teknik untuk mendeteksi dan menghapus saluran inferensi dapat dibagi dalam dua
kategori. Kategori pertama meliputi teknik yang mendeteksi saluran inferensi selama database
didesain. Saluran inferensi dihapus dengan memodifikasi desain database atau dengan meningkatkan
tingkat klasifikasi beberapa item data. Teknik dalam kategori kedua berusaha untuk menghilangkan
pelanggaran saluran inferensi selama waktu pemrosesan query. Jika saluran inferensi terdeteksi,
query baik ditolak atau dimodifikasi untuk menghindari serangan. saat keamanan desain-waktu lebih
mudah untuk mengelola dan melaksanakan, pendekatan permintaan time memungkinkan lebih
banyak ketersediaan data daripada pendekatan desain - waktu sebab informasi lebih lanjut (masa
lalu dan pertanyaan ini / jawaban) dapat dipakai untuk pengungkapan inference.
Disclosure monitor ( Dimon ) mendeteksi dan menghilangkan saluran kesimpulan berdasarkan
database constraints.A pengungkapan inference Mesin ( DiIE ) diusulkan, yang menghasilkan
semua informasi yang diungkapkan dapat didasarkan pada pemakai hasil query sebelumnya,
hasil query saat ini, dan satu set Horn - klausul constraints.Dynamic Memantau Pengungkapan (
D2Mon ) menjamin kerahasiaan data dan ketersediaan maksimal bahkan di hadapan kesimpulan
dan update . Ini yaitu tujuanya untuk melengkapi mekanisme kontrol akses yang ada ( misalnya,
DAC, MAC, RBAC ) untuk mengatasi masalah inferensi .
303
MAC : Dalam Mandatory Access Control ( MAC ) model, pemakai diberi hak akses ke sumber
daya oleh administrator. Hanya Administrator yang dapat memberikan izin atau hak untuk benda dan
sumber daya. Akses terhadap sumber daya didasarkan pada tingkat keamanan obyek, sedangkan
pemakai diberikan izin keamanan. Hanya administrator yang dapat memodifikasi label keamanan
obyek atau izin keamanan pemakai .
Pengungkapan dinamis Memantau Arsitektur memakai MAC ini untuk mendeteksi pelanggaran
keamanan langsung, jika ada pelanggaran keamanan langsung terdeteksi query ditolak saat itu
juga, jika tidak melewati mesin inferensi untuk mengungkapkan data yang dapat diinferensi. Semua
data diungkapkan diperoleh dari mesin inferensi yang sedang dikirim ke MAC untuk mendeteksi
serangan. Jikapelanggaran keamanan langsung terdeteksi, permintaan ditolak.
DAC : Dalam Discretionary Access Control (DAC) model, akses ke sumber daya didasarkan pada
identitas pemakai . Seorang pemakai diberikan hak akses ke sumber daya dengan ditempatkan
pada daftar kontrol akses ( ACL ) yang berhubungan dengan sumber daya. Entri pada ACL sumber
daya yang dikenal sebagai Access Control entri ( ACE ). saat seorang pemakai ( atau kelompok
) yaitu pemilik dari suatu obyek dalam model DAC, pemakai dapat memberikan izin kepada
pemakai lain dan kelompok Model DAC didasarkan pada kepemilikan sumber daya .
RBAC : Dalam Access Control ( RBAC ) Model Peran Berbasis, akses ke sumber daya didasarkan
pada peran yang ditugaskan kepada pemakai . Dalam model ini, administrator memberikan pemakai
untuk peran yang memiliki hak yang telah ditentukan tertentu dan hak istimewa. sebab asosiasi
pemakai dengan peran, pemakai dapat mengakses sumber daya tertentu dan melakukan tugas-
tugas tertentu. RBAC juga dikenal sebagai Non - Discretionary Access Control . Peran ditugaskan
untuk pemakai dikelola secara terpusat.
Kami telah menyajikan beberapa teknik dimana sistem manajemen database menyeimbangkan
pemakai an dan kontrol akses. Di area lain, seperti sistem operasi, kontrol akses yaitu biner:
Akses diberikan atau ditolak ke suatu objek. Namun, sistem manajemen basis data mencoba
mengambil pendekatan yang lebih bernuansa; pendekatan ya/tidak yang ketat akan memicu
pembatasan akses yang ekstrem (jika ada satu catatan sensitif dari satu juta, akses ke seluruh
basis data dapat diblokir) atau kelemahan akses yang ekstrem (akses diizinkan terlepas dari potensi
inferensi atau agregasi). Dengan demikian, sistem manajemen basis data dan administratornya
mencoba menemukan jalan tengah yang masuk akal.
Selanjutnya kita beralih ke pemakai an database dalam apa yang disebut data mining dan big
data.
304
4.5 Data Mining Dan Big Data
Di bagian terakhir ini kami mempertimbangkan dua topik terkait. Yang pertama, data mining,
melibatkan orang dan program yang mencari dan menyaring kumpulan data untuk mendapatkan
data. Ya, Anda membantah, untuk itulah database dan apa yang telah kami pertimbangkan sepanjang
sisa bab ini. Data mining, bagaimanapun, menyiratkan pencarian pola dan koneksi yang sebelumnya
tidak diketahui dan bahkan mungkin tidak dapat diprediksi. Tahukah Anda bahwa orang kidal lebih
cenderung memilih telur goreng daripada telur rebus? (Kami tidak tahu apakah itu benar.) Sebuah
tim peneliti dengan database yang berisi dominasi tangan dan preferensi telur dapat menemukan itu
dan korelasi statistik menakjubkan lainnya, melalui keajaiban data mining. Komunitas data mining
telah berkembang tanpa banyak pertimbangan keamanan, jadi kami mencantumkan beberapa
masalah keamanan yang siap untuk dipertimbangkan.
Data mining terkait erat dengan konsep big data, yang melibatkan pengumpulan data dalam jumlah
besar, seringkali tidak dimaksudkan sebagai basis data atau terstruktur seperti itu. Penekanannya
yaitu pada istilah "besar", misalnya, kumpulan semua entri indeks untuk mesin pencari. saat
mesin pencari melaporkan bahwa ia memiliki 17 juta halaman yang menjawab pertanyaan Anda, itu
mungkin benar, meskipun kegunaan dari tautan ke-17 juta mungkin tidak tinggi. Sebagian besar dari
kita menemukan apa yang kita inginkan di beberapa hasil pertama atau kita menyimpulkan bahwa
kueri tidak mendapatkan hasil yang kita inginkan dan mengajukan pertanyaan yang berbeda.
Di bagian selanjutnya kita mengeksplorasi data mining dan big data, menunjukkan aspek keamanan
dari keduanya.
4.5.1 Data Mining
Pengelolaan informasi pada saat ini menjadi hal yang sangat penting. Dimana, setiap data akan
sangat berpengaruh dalam hal pengambilan sebuah keputusan yang akan diambil oleh pemakai .
Istilah yang cukup dikenal saat ini oleh praktisi di dunia IT yaitu data mining.
Data Mining yaitu proses yang memakai teknik statistik, matematika, kecerdasan buatan,
machine learning untuk mengekstraksi dan mengidentifikasi informasi yang bermanfaat dan
pengetahuan yang terkait dari berbagai database besar (Turban dkk. 2005). Data mining bisa
disebut knowledge discovery yaitu proses pengambilan pola pada data yang akan di proses lalu
output ini berupa informasi yang sangat penting. Terdapat beberapa istilah lain yang memiliki
makna sama dengan data mining, yaitu Knowledge discovery in databases (KDD), ekstraksi
pengetahuan (knowledge extraction), Analisa data/pola (data/pattern analysis), kecerdasan bisnis
(business intelligence) dan data archaeology dan data dredging (Larose, 2005).
Perbedaan antara database dan aplikasi data mining menjadi kabur; Anda mungkin dapat melihat
bagaimana Anda dapat menerapkan teknik ini dalam kueri basis data biasa. Umumnya, kueri basis
data bersifat manual, sedangkan data mining lebih otomatis. Anda dapat mengembangkan kueri
basis data untuk melihat produk lain apa yang dibeli oleh orang-orang yang membeli kamera digital
dan Anda mungkin melihat lebih banyak pemutar MP3 dalam hasilnya, namun Anda harus mengamati
hubungan itu sendiri. Alat data mining akan menghadirkan hubungan yang signifikan, tidak hanya
305
antara kamera dan pemutar MP3, namun juga antara bagel, tiket pesawat, dan sepatu lari. (Sekali
lagi, kami tidak tahu apakah ada hubungan seperti itu.) Manusia harus menganalisis korelasi ini
dan menentukan apa yang signifikan.
Data mining menyajikan kemungkinan hubungan, namun ini belum tentu hubungan sebab dan akibat.
Misalkan Anda menganalisis data dan menemukan korelasi antara penjualan es krim dan kematian
sebab tenggelam. Anda tidak akan menyimpulkan bahwa menjual es krim memicu tenggelam
(atau sebaliknya). Perbedaan ini menunjukkan mengapa manusia harus terlibat dalam data mining
untuk menginterpretasikan output: Hanya manusia yang dapat membedakan bahwa lebih banyak
variabel yang terlibat (misalnya, waktu dalam setahun atau tempat di mana kerucut dijual).
Keuntungan keamanan komputer dari data mining. Data mining banyak dipakai untuk menganalisis
data sistem, misalnya, log audit, untuk mengidentifikasi pola yang terkait dengan serangan.
Menemukan prekursor serangan dapat membantu mengembangkan alat dan teknik pencegahan
yang baik, dan melihat tindakan yang terkait dengan serangan dapat membantu menentukan
kerentanan untuk mengontrol kerusakan yang mungkin terjadi. (Salah satu karya awal di bidang
ini yaitu oleh Lee dan Stolfo, dan seluruh konferensi telah dikhususkan untuk topik penting dan
matang ini.)
Namun, di bagian ini, kami ingin memeriksa masalah keamanan yang melibatkan data mining. Tiga
serangkai kerahasiaan, integritas, dan ketersediaan kami yang sekarang dikenal memberi kami
petunjuk tentang apa masalah keamanan ini. Masalah kerahasiaan dimulai dengan privasi namun
juga mencakup data kepemilikan dan sensitif secara komersial serta melindungi nilai kekayaan
intelektual: Bagaimana kita mengontrol apa yang diungkapkan atau diturunkan? Untuk integritas,
masalah penting yaitu kebenaran—data yang salah tidak berguna dan berpotensi merusak, namun
kita perlu menyelidiki cara mengukur dan memastikan kebenarannya. Pertimbangan ketersediaan
berkaitan dengan kinerja dan struktur: Menggabungkan database yang awalnya tidak dirancang
untuk digabungkan akan memengaruhi apakah hasil dapat diperoleh secara tepat waktu atau
bahkan sama sekali.
Privasi dan Sensitivitas
sebab tujuan data mining yaitu hasil ringkasan, bukan item data individual, Anda tidak akan
mengharapkan masalah dengan sensitivitas item data individual. Sayangnya, itu tidak benar.
Privasi individu dapat mengalami masalah inferensi dan agregasi yang sama seperti yang kami
pelajari untuk database. sebab privasi, khususnya melindungi apa yang dianggap seseorang
sebagai informasi pribadi, merupakan topik penting yang terkait dengan banyak bidang keamanan
komputer.
Namun, tidak hanya privasi individu yang terpengaruh: Korelasi dengan agregasi dan inferensi dapat
memengaruhi perusahaan, organisasi, dan pemerintah juga. Ambil contoh, masalah yang melibatkan
ban Firestone dan kendaraan Ford Explorer. Pada bulan Mei 2000, Administrasi Keselamatan Lalu
Lintas Jalan Raya Nasional AS (NHTSA) menemukan insiden kegagalan ban yang tinggi pada Ford
Explorer yang dilengkapi dengan ban Firestone. Dalam kondisi tertentu tapak ban Firestone lepas;
dalam kondisi tertentu Ford Explorer terbalik, dan saat tapak terpisah, Ford lebih mungkin untuk
306
terbalik. Konsumen telah mengeluh kepada Ford dan Firestone sejak tak lama setelah kombinasi
ban dan kendaraan ditempatkan di pasar pada tahun 1990, namun masalah mulai meningkat setelah
perubahan desain pada tahun 1995. Kedua perusahaan memiliki beberapa bukti masalah, namun
tinjauan NHTSA tentang data gabungan lebih baik menunjukkan korelasi. Mempertahankan data
tentang kualitas produk yaitu praktik manajemen standar. namun sensitivitas data dalam basis
data ini akan menghalangi banyak berbagi. Bahkan jika pihak netral yang dapat dipercaya dapat
ditemukan untuk menambang data, pemiliknya akan cukup khawatir dengan apa yang mungkin
terungkap. Sejumlah besar kegagalan satu produk dapat menunjukkan potensi kelemahan pasar,
atau serangkaian data dalam jumlah kecil dapat mengungkapkan aktivitas pemasaran uji coba
kepada pihak luar.
Data tentang suatu entitas (seseorang, perusahaan, organisasi, badan pemerintah) mungkin tidak
berada di bawah kendali entitas ini . Supermarket mengumpulkan data produk dari pembeli
mereka, baik dari kunjungan tunggal atau, yang lebih berguna, di semua pembelian untuk pelanggan
yang memakai kartu “loyalitas pelanggan”. Secara agregat, data menunjukkan hasil pemasaran
yang berguna bagi produsen, biro iklan, peneliti kesehatan, lembaga makanan pemerintah, lembaga
keuangan, peneliti, dan lain-lain. namun hasil ini dikumpulkan oleh supermarket yang sekarang dapat
melakukan apa saja dengan hasilnya, termasuk menjualnya ke pesaing produsen, misalnya.
Kebenaran dan Integritas Data
"Menghubungkan titik-titik" yaitu frasa yang sedang populer saat ini: Ini mengacu pada penarikan
kesimpulan dari hubungan antara bit data yang terpisah. namun sebelum kita dapat menghubungkan
titik-titik, kita perlu melakukan dua hal penting lainnya: mengumpulkan dan memperbaikinya.
Penyimpanan data dan teknologi komputer memungkinkan untuk mengumpulkan lebih banyak titik
daripada sebelumnya. namun jika nama atau alamat Anda pernah salah muncul di milis, Anda tahu
bahwa tidak semua titik yang dikumpulkan akurat.
Memperbaiki Kesalahan dalam Data
Mari kita ambil milis sebagai contoh. Tetangga Anda membawakan katalog perlengkapan dapur untuk
Anda di sebuah alamat dengan nama Anda namun alamat bukan dilingkunagn anda; jelas seseorang
melakukan kesalahan memasukkan alamat Anda. Anda menghubungi tempat persediaan dapur,
dan mereka dengan senang hati mengubah alamat Anda di catatan mereka sebab kepentingan
mereka untuk memastikan katalog sampai ke orang-orang yang tertarik pada mereka. namun mereka
membeli nama dan alamat Anda bersama dengan orang lain dari milis, dan mereka tidak memiliki
insentif untuk menghubungi pemilik daftar untuk memperbaiki catatan utama Anda. Jadi katalog
tambahan terus muncul dengan tetangga Anda. Anda dapat melihat ke mana arah cerita ini—alamat
yang salah tidak pernah mati.
Data mining memperburuk situasi ini. Basis data memerlukan kunci unik untuk membantu struktur
dan pencarian. namun database yang berbeda mungkin tidak memiliki kunci bersama, sehingga
mereka memakai beberapa bidang data seolah-olah itu yaitu kunci. Dalam contoh kasus kami,
bidang data bersama ini mungkin alamat, jadi sekarang alamat tetangga Anda dikaitkan dengan
memasak (bahkan jika tetangga Anda membutuhkan resep untuk membuat teh). Untungnya, contoh
ini yaitu konsekuensi kecil.
307
Pertimbangkan teroris, namun. Badan intelijen pemerintah mengumpulkan data tentang aktivitas
mencurigakan. namun nama-nama orang yang mencurigakan itu asing, ditulis dalam alfabet yang
berbeda. saat diubah menjadi alfabet pemerintah, transformasinya tidak teratur: Satu agen menulis
"Doe", "Do" lainnya, dan "Dho" lainnya. Mencoba memakai nama-nama ini sebagai kunci
umum sangat sulit. Salah satu pendekatannya yaitu fonetik. Anda mengelompokkan istilah yang
terdengar mirip. Namun, dalam kasus ini, Anda mungkin juga membawa "Jo", "Cho", "Toe", dan
"Tsiao", sehingga melibatkan orang yang tidak bersalah dalam pencarian teroris. Dengan asumsi
seorang analis manusia dapat memisahkan semua ini dengan benar dan ingin memperbaiki database
Doe/Do/Doh, masih ada dua masalah. Pertama, analis mungkin tidak memiliki akses ke database
asli yang dimiliki oleh lembaga lain. Bahkan jika analis bisa mendapatkan aslinya, analis mungkin
tidak akan pernah belajar di mana lagi database asli ini telah disalin.
Salah satu tujuan penting dari database yaitu untuk memiliki catatan di satu tempat sehingga satu
koreksi melayani semua kegunaan. Dengan data mining, hasilnya yaitu agregat dari beberapa
basis data. Tidak ada cara alami untuk bekerja mundur dari hasil ke database gabungan untuk
menemukan dan memperbaiki kesalahan.
memakai Data Sebanding (Comparable Data)
Semantik data yaitu pertimbangan penting lainnya saat menambang data. Pertimbangkan dua
database geografis dengan data pendapatan keluarga. Kecuali satu database memiliki pendapatan
per dolar, dan database lainnya memiliki data dalam ribuan euro. Bahkan jika nama bidangnya sama,
menggabungkan data mentah akan menghasilkan statistik yang sangat terdistorsi. Pertimbangkan
atribut lain yang dinilai tinggi/sedang/rendah dalam satu database dan pada skala numerik 1-5
di database lain. Haruskah tinggi/sedang/rendah diperlakukan sebagai 1/3/5? Bahkan jika analis
memakai transformasi itu, komputasi dengan beberapa presisi 3 poin dan beberapa 5 poin
mengurangi kualitas hasil. Atau bagaimana Anda bisa secara bermakna menggabungkan satu
database yang memiliki atribut tertentu dengan yang lain yang tidak?
Mengurangi False Matches
Seperti yang telah kami jelaskan sebelumnya, kebetulan bukanlah korelasi atau sebab-akibat;
sebab dua hal terjadi bersamaan tidak berarti salah satu memicu yang lain. Data mining
mencoba untuk menyoroti koneksi yang tidak jelas dalam data, namun aplikasi data mining sering
memakai logika fuzzy untuk menemukan koneksi ini. Pendekatan ini akan menghasilkan
positif palsu (kecocokan palsu) dan koneksi yang tidak terjawab (negatif palsu). Kita harus peka
terhadap ketidakakuratan yang melekat pada pendekatan data mining dan menjaga agar tidak
terlalu percaya pada output aplikasi data mining hanya sebab "komputer mengatakan demikian."
Hasil yang benar dan interpretasi yang benar dari hasil ini yaitu masalah keamanan utama
untuk data mining.
Ketersediaan Data
Interoperabilitas di antara basis data yang berbeda yaitu masalah keamanan ketiga untuk data
mining. Seperti yang baru saja kami jelaskan, database harus memiliki struktur dan semantik yang
kompatibel untuk memungkinkan data mining. Data yang hilang atau tidak dapat dibandingkan
dapat membuat hasil data mining menjadi salah, jadi mungkin alternatif yang lebih baik yaitu tidak
memberikan hasil. namun tidak ada hasil yang tidak sama sebab tidak ada korelasi. Seperti halnya
308
database tunggal, aplikasi data mining harus berurusan dengan banyak sensitivitas. Mencoba
menggabungkan database pada atribut dengan nilai yang lebih sensitif dapat memicu tidak
ada data dan sebab nya tidak ada kecocokan. Menggabungkan Tabel data tanpa bidang umum
(kunci) yang alami dan akurat memicu banyak hasil yang salah.
4.5.2 Big Data
Istilah big data berarti analisis sejumlah besar data, sering kali dikumpulkan dari berbagai sumber.
Secara tradisional, toko kelontong mungkin mengira bisa menjual 100 kepala selada dalam seminggu;
jika tebakannya terlalu rendah, beberapa pembeli meninggalkan toko tanpa selada, namun jika
tebakannya terlalu tinggi, penjual mungkin harus menurunkan harga selada pada akhir minggu
untuk mengeluarkan stok sebelum rusak. Melihat prakiraan cuaca jangka panjang, toko kelontong
mungkin melihat gelombang panas yang diprediksi dan memesan selada tambahan, sebab orang
menginginkan makanan ringan seperti salad dalam cuaca panas. Atau toko kelontong mungkin
mengurangi pesanan selama waktu-waktu tertentu saat banyak pelanggan akan meninggalkan kota
pada hari libur. Semua analisis ini bersifat ad hoc, tergantung pada pemahaman dan pengetahuan
pedagang tentang pasar. Perusahaan-perusahaan besar menerapkan logika yang sama untuk
memutuskan berapa banyak mobil atau kemeja yang akan diproduksi, atau apakah akan berinvestasi
di pabrik dan peralatan baru, meskipun dengan keputusan yang lebih mahal hukuman sebab salah
menebak lebih berat.
Analisis pedagang kelontong dibatasi oleh data yang tersedia. Membuka toko kedua di wilayah
yang lebih sadar akan kesehatan dapat membuat toko kelontong menyimpan lebih banyak selada
dan lebih sedikit donat. Penjual kelontong mungkin berhipotesis hubungan antara jumlah mobil
model tertentu yang melewati toko dan jumlah keju mahal yang dijual, namun menghitung mobil tidak
mungkin. Mengetahui bahwa jumlah kasus flu yang dilaporkan ke dokter lokal meningkat mungkin
mempengaruhi berapa banyak kotak tisu yang harus disimpan, namun toko kelontong tidak memiliki
akses ke data dokter. Parahnya, penjual kelontong tidak tahu apa yang dipikirkan pelanggan.
Data pelanggan sudah tersedia jika hanya seseorang yang memiliki kemampuan untuk mengumpulkan,
menyimpan, dan menganalisisnya. Kekuatan komputasi, diukur dengan komputasi per detik, telah
meningkat secara eksponensial sejak diperkenalkannya komputer, dan jumlah penyimpanan yang
akan dibeli dengan jumlah uang tertentu juga meroket.
Dimulai pada pertengahan 2000-an, perusahaan mulai mengumpulkan dan menganalisis jenis
informasi baru. Perusahaan besar seperti Amazon, GE, dan AT&T banyak berinvestasi dalam
mempelajari lebih banyak tentang pelanggan mereka. Satu wilayah geografis memiliki penggemar
setia tim olahraga, yang lain memiliki lebih banyak pendukung satu partai politik secara tidak
proporsional, dan yang lain memiliki pendapatan yang dapat dibelanjakan tinggi. Studi Kasus 4-3
memberikan contoh pemakai an big data untuk memprediksi kejahatan.
309
Kepala Polisi Rodney Monroe dari Departemen Kepolisian Charlotte-Mecklenburg,
Carolina Utara memakai teknologi untuk mengurangi kejahatan. Dia berpendapat
bahwa pengukuran dan analisis yaitu kunci untuk pekerjaan polisi yang lebih
cerdas.
Sebagai Kepala Polisi di Richmond, Virginia, pada tahun 2005 ia memperkenalkan
analisis data dari sumber yang tampaknya tidak terkait, seperti cuaca, volume
lalu lintas, hari dalam seminggu, hari gajian, serta data polisi yang lebih umum
seperti laporan kejahatan dan panggilan tanggap darurat. Dia menemukan (tidak
mengherankan) bahwa perampokan cenderung melonjak pada hari gajian dari
majikan besar di daerah di mana lebih sedikit penduduk memiliki rekening bank dan
dengan demikian memakai bisnis pencairan cek etalase. Orang-orang yang
berjalan-jalan dengan uang tunai dalam jumlah besar akan menjadi target yang
menarik. Dengan menganalisis data ini dan menargetkan aktivitas kepolisian ke
situasi yang berpotensi tinggi, Departemen Kepolisian Richmond melihat kejahatan
turun 21 persen pada 2005–2006 dan 19 persen lainnya pada 2006–2004. Sejak
pindah ke Charlotte, Chief Monroe telah menerapkan pendekatan serupa dan telah
melihat penurunan 20 persen dalam kejahatan kekerasan dan pengurangan 30
persen dalam kejahatan properti, menurut sebuah laporan di Computerworld (24
Oktober 2013).
Departemen kepolisian lainnya memakai alat seperti PredPol, yang
dikembangkan di University of California Los Angeles. PredPol didasarkan pada
algoritma yang sama yang dipakai untuk memprediksi lokasi gempa susulan
dari gempa bumi. Alat ini mengembangkan prediksi untuk kotak persegi berukuran
500 kaki (150 m), menunjukkan kepada petugas daerah mana yang paling berisiko
terhadap jenis kejahatan tertentu; polisi lalu dapat fokus berpatroli di tempat-
tempat yang paling mungkin.
PredPol bukan tanpa masalah, seperti yang ditunjukkan Jennifer Bachner.
Ketergantungan yang berlebihan pada teknologi, memisahkan petugas dari masyarakat
(sehingga petugas berinteraksi dengan program alih-alih mengembangkan petunjuk
dengan berbicara dengan anggota masyarakat), masalah privasi, kebenaran data, dan
keamanan dalam mengelola data yaitu semua keterbatasan dalam memakai
analisis untuk menyarankan titik rawan bagi polisi perhatian.
Departemen kepolisian memakai strategi dan teknik yang sama seperti
pengecer, produsen, dan bisnis lainnya. Dihadapkan dengan sumber daya yang
terbatas, kapten polisi ingin mengerahkan petugas di mana dan kapan mereka dapat
melakukan yang terbaik—mencegah kejahatan daripada mencari penjahat setelah
kejadian. Menyimpulkan pola dari data masa lalu membantu manajer membuat
pilihan berdasarkan informasi.
Studi Kasus 4-3 : Polisi memakai Data Mining untuk Memprediksi (dan
Mencegah) Kejahatan
310
pemakai an data dalam jumlah besar dari berbagai sumber sering disebut sebagai big data. Big
data berbeda dari data "kecil" yang lebih konvensional sebab big data berasal dari sumber di luar
perusahaan dan tidak dihasilkan hanya oleh sistem internal organisasi itu sendiri. Itu bisa berasal dari
sensor dan media sosial serta rekaman video dan audio. Itu bisa berasal dari database pemerintah,
analisis pasar, dan laporan pelanggan. Setiap kueri penelusuran membantu menentukan tren
yang bernilai tinggi bagi perusahaan. Media sosial memberi perusahaan wawasan tentang produk,
layanan, dan preferensi apa yang dibagikan orang dengan teman mereka.
Semua pemakai an data untuk memprediksi perilaku ini sangat berharga sebab perusahaan
memutuskan bagaimana mengalokasikan sumber daya. Jadi sekarang toko kelontong tidak hanya
melihat ramalan cuaca sepuluh hari namun memakai lebih banyak data untuk memprediksi
dengan lebih akurat berapa banyak selada yang akan dijual. Big data menjadi masalah besar.
Dan seperti banyak teknologi yang sangat populer, fungsionalitasnya melebihi keamanan. Di
bagian berikutnya kami menjelaskan secara singkat pendekatan big data, menunjukkan beberapa
keterbatasan keamanannya, dan menyarankan tindakan pencegahan potensial.
Kerangka Aplikasi Big Data: Apache Hadoop
Seperti yang ditunjukkan pada Gambar 4-5, model komputasi konvensional memiliki pemakai yang
berinteraksi dengan prosesor yang dapat mengakses penyimpanan. Untuk memperluas sistem
seperti itu, seperti yang ditunjukkan pada Gambar 4-6, penyimpanan dapat ditingkatkan dengan
menambahkan lebih banyak disk ke array disk, misalnya. Namun, ada batasan implisit tentang
seberapa jauh penyimpanan dapat tumbuh tanpa mengalami penundaan kinerja yang seriu




