Nama : Hanafi
NIM : 1100151
Kelas : C_Ilmu Komputer
UAS
INTEGRITAS DATA
Integritas data adalah jaminan konsistensi data terhadap
semua status constraint yang diberlakukan
terhadap data tersebut, sehingga memberikan jaminan ke absahan data itu sendiri.
Integritas data sangat erat kaitannya
dengan keamanan keberadaan data, dimana dapat terjadi secara
institusional atau asidental. Keuntungan menggunakan Integritas data :
-
Lebih
murah dan mudah menjaga data integrity
di level database dibandingkan dengan aplikasi lain.
-
Bugs
akibat isi database yang tidak valid
sulit untuk ditemukan(dapat muncul dikemudian hari.)
Dalam integritas data ada dua hal penting yang harus diketahui
agar data tetap akurat, konsisten dan
handal. Untuk mewujudkan
hal itu diperlukan
suatu data Integrity.
Sebagai contoh apabila
sebuah tabel Mahasiswa,
pada field /
kolom nim mempunyai
isi data “01031043”, maka
database tidak memperbolehkan record pada tabel Mahasiswa lain mempunyai nim yang sama.
Integritas
data dapat di kelompokkan sebagai berikut:
1. Entity integritas
2. Domain integritas
3. Refferential integritas
4. User defined integritas
1. Entity
Integritas
Entity integritas mendefenisikan sebuah baris sebagai sebuah entitas yang unik untuk suatu
tabel. Entity integritas memaksa integritas
dari colum atau primary key dari suatu tabel (melalui index,unique,constrains,primarykey)
tidak boleh null.
2. Domain
integritas
Domain Integritas merupakan validasi
dari masukan untuk sebuah kolom. Anda dapat memaksa domain integritas dengan
membatasi tipe (melalui data types), format (melalui check
constraints dan rules),
atau range nilai-nilai
yang mungkin (melalui Foreign Key Constraints, Check
Constraints, Default Definitions dan rules).
3.Refferential
Integritas
Refferential
integritas memastiakn bahwa seluruh nilai dari foreign key cocok dengan nilai primary
key yamng dihubungkan.
4. User Defined integritas
User difined integritas mengizinkan kita untuk menentukan spesific
business rules sendiri yang tidak sama pada kategori integrity yang lain
Contoh
kasus :
Contoh dari mekanisme integritas
data adalah hubungan orang tua dan anak
dengan record terkait. Jika dalam catatan orang tua memiliki satu atau lebih catatan anak terkait semua proses integritas referensial akan di
tanagani oleh database itu sendiri, yang secara otomatis menjamain keakuratan dan integritas data sehingga tidak ada
catatan anak bisa ada tanpa orang tua (atau yatim piatu) dan bahwa tidak
ada orang tua kehilangan catatan anak
mereka. Ini juga menjamin bahwa tidak
ada catatan induk dapat di hapus sementara orang tua memiliki record setiap anak. Semua ini di
tangani papa tingkat database dan tidak
memerlukan cooding cek integritas
kedalam setiap aplikasi.
CONCURENCY
Tujuan utama dalam pengembangan
database adalah membuat banyak pengguna bisa mengakses data secara bersamaan.
Pengaksesan data ini tidak bermasalah jika semua pengguna hanya membaca data
dan mereka tidak mengganggu satu sama lain. Tapi ketika dua pengguna atau lebih
mengakses database yang sama secara bersamaan dan salah satu melakukan
perubahan terhadap data, maka hal ini akan dapat menimbulkan adanya data yang
tidak konsisten (inconsistency data). Untuk mengatasi adanya kemungkinan inconsistency
data, maka dibutuhkan adanya suatu mekanisme yang mengatur jalannya
transaksi pengaksesan data yang sama tersebut. Mekanisme ini dikenal dengan
istilah concurrency control. Concurrency control adalah
proses pengaturan operasi–operasi dalam banyak transaksi yang berjalan secara
simultan pada database tanpa mengganggu operasi pada transaksi lainnya sehingga
dapat menghasilkan data yang konsisten ( Connolly, 2005, p577 ). Tiga contoh
masalah penting yang terkait oleh concurrency, yaitu masalah Lost-Update,
masalah Uncommitted Dependency, dan masalah Inconsistent Analysis.
Contoh
kasus concurency (Lost-update, uncommited dependency, Inconcinsten analys)
Masalah
Lost-Update
Penjelasan : Transaksi T1 dan T2
mulai pada waktu yang hampir bersamaan, dan keduanya membaca saldo $100. T2
menambah balx $100 menjadi $200 dan menyimpan hasil perubahannya dalam
database. Di sisi lain, transaksi T1 mengurangi copy dari balx $10 menjadi $90
dan menyimpan nilai ini dalam database, menimpa hasil update sebelumnya dan
akhirnya menghilangkan $100 yang telah ditambahkan sebelumnya ke dalam saldo.
Kehilangan update transaksi T2 dapat dihindari dengan mencegah T1 membaca
nilai dari balx sampai update T2 telah selesai.
Masalah
Uncommited Dependency (dirty read)
Penjelasan: Transaksi T4 mengubah
balx menjadi $200 namun T4 membatalkan transaksi sehingga balx harus
dikembalikan ke nilai asalnya, yaitu $100. Namun, pada waktu itu, transaksi T3
telah membaca nilai baru balx ($200) dan menggunakan nilai ini sebagai dasar
pengurangan $10, sehingga memberikan saldo yang keliru sebesar $190, yang
seharusnya adalah $90. Nilai balx yang dibaca T3 disebut dirty data, yang
berasal dari nama alternatifnya, yaitu masalah dirty read. Alasan rollback
ini tidaklah penting. Masalahnya adalah transaksinya gagal (error),
mungkin mengurangi rekening yang salah. Efeknya adalah asumsi T3 yang
menganggap update T4 telah berhasil dijalankan, meskipun selanjutnya
perubahannya dibatalkan. Masalah ini dihindari dengan mencegah T3 membaca balx
sampai keputusan telah dibuat, yaitu commit atau membatalkan efek T4.
Dua masalah di atas mengkonsentrasikan pada transaksi yang mengubah database
dan campur tangan mereka bisa membuat database menjadi corrupt. Namun,
transaksi yang hanya membaca database bisa juga memberikan hasil yang tidak
akurat jika mereka diijinkan untuk membaca hasil bagian dari transaksi yang
belum selesai yang secara bersamaan membaca database. Contohnya dijelaskan pada
masalah inconsistent analysis.
Masalah
Inconsistent Analys
Penjelasan: Masalah inconsistent
analysis muncul ketika sebuah transaksi membaca beberapa nilai dari
database tapi transaksi kedua mengubah beberapa darinya ketika eksekusi
transaksi yang pertama. Contohnya, sebuah transaksi yang meringkas data pada
sebuah database(contohnya, saldo total) akan mendapat hasil yang tidak akurat
jika, ketika berjalan, transaksi lain sedang mengubah database. Pada contoh
diatas, ringkasan transaksi T6 sedang berjalan secara bersamaan dengan
transaksi T5. Transaksi T6 sedang menjumlahkan saldo rekening x ($100),
rekening y ($50), dan rekening z($25). Namun, di tengah jalan, transaksi T5
telah mentransfer $10 dari balx ke balz, sehingga T6 sekarang mempunyai hasil
yang salah (lebih besar $10).
TRANSAKSI
Transaksi
adalah satu atau beberapa aksi program aplikasi yang mengakses/mengubah isi basis
data.Transaksi merupakan bagian dari pengeksekusian sebuah program yang
melakukan pengaksesan basis data dan bahkan juga melakukan serangkaian
perubahan data. DBMS yang kita gunakan
harus menjamin bahwa setiap transaksi harus dapat dikerjakan secara utuh atau
tidak sama sekali. Tidak boleh ada
transaksi yang hanya dikerjakan sebagian, karena dapat menyebabkan
inkonsistensi basis data. Untuk itu
transaksi selalu merubah basis data dari satu kondisi konsisten ke kondisi
konsisten lain. Untuk menjamin agar
integritas dapat tetap terpelihara maka setiap transaksi harus memiliki
sifat-sifat:
1.
Atomik, dimana semua operasi dalam
transaksi dapat dikerjakan seluruhnya atau tidak sama sekali.
2.
Konsisten, dimana eksekusi transaksi
secara tunggal harus dapat menjamin data tetap konsisten setelah transaksi
berakhir.
3.
Terisolasi, jika pada sebuah sistem basis
data terdapat sejumlah transaksi yang dilaksanakan secara bersamaan, maka semua
transaksi yang dilaksanakan pada saat yang bersamaan tersebut harus dapat
dimulai dan bisa berakhir.
4.
Bertahan, dimana perubahan data yang
terjadi setelah sebuah transaksi berakhir dengan baik, harus dapat bertahan
bahkan jika seandainya sistem menjadi mati.
Contoh kasus:
Ketika
sebuah transaksi mulai dikerjakan, maka transaksi itu berada dalam status aktif. Jika terjadi penghentian sebelum operasi
berakhir, maka transaksi segera beralih ke status gagal/failed. Namun, bila keseluruhan transaksi selesai
dikerjakan, maka transaksi itu berada pada status berhasil
sebagian/partially committed, dimana perubahan-perubahan data masih berada
di dalam memori utama yang bersifat volatile/tidak permanen. Transaksi dalam status ini masih mungkin
untuk pindah ke status failed, karena ada pembatalan transaksi baik sengaja
maupun tidak. Jika tidak beralih ke
status failed, maka nilai-nilai data yang ada di memori utama akan direkam ke
dalam disk yang bersifat permanen.
Begitu proses perekaman selesai, maka transaksi beralih ke status committed. Sementara itu, transaksi yang berada pada
status failed, maka DBMS harus menjalan proses rollback. Proses tersebut dapat berupa:
·
Mengulangi
pelaksanaan transaksi / restart, yang dilakukan pada transaksi yang
failed akbiat kemacetan perangkat keras ataupun perangkat lunak dan bukannya
penghentian transaksi secara sengaja oleh user.
·
Mematikan
transaksi / kill, yang dilakukan untuk transaksi yang dihentikan secara
sengaja oleh user atau akibat adanya kesalahan lojik dalam penulisan aplikasi.
Begitu
salah satu dari pilihan proses tersebut selesai dilakukan, maka transaksi
berpindah ke status batal (aborted). Status berhasil sempurna/committed maupun batal/aborted
merupakan status terminasi, yaitu status akhir dalam pelaksanaan transaksi.
KEAMANAN BASIS DATA
Keamanan
merupakan suatu proteksi terhadap pengerusakan data dan pemakaian data oleh pemakai
yang tidak punya kewenangan. Untuk menjaga keamanan Basis Data dapat dilakukan dengan:
(1) Penentuan perangkat lunak database server yang handal (2) Pemberian
otoritas kepada user mana saja yang berhak mengakses, serta memanipulasi data-data
yang ada.
a. Otorisasi :
·
Pemberian Wewenang atau hak istimewa
(priviledge) untuk mengakses sistem atau obyek database
·
Kendali otorisasi (=kontrol akses) dapat
dibangun pada perangkat lunak dengan 2 fungsi :
·
Mengendalikan sistem atau obyek yang dapat
diakses
·
Mengendalikan bagaimana pengguna
menggunakannya
·
Sistem administrasi yang bertanggungjawab
untuk memberikan hak akses dengan membuat account pengguna.
b. Tabel View :
·
Merupakan metode pembatasan bagi pengguna
untuk mendapatkan model database yang sesuai dengan kebutuhan perorangan.
Metode ini dapat menyembunyikan data yang tidak digunakan atau tidak perlu
dilihat oleh pengguna.
·
Contoh pada Database relasional,untuk pengamanan
dilakukan beberapa level:
1.
Relasi à
pengguna diperbolehkan atau tidak diperbolehkan mengakses langsung suatu relasi
2.
View à
pengguna diperbolehkan atau tidak diperbolehkan mengakses data yang terapat
pada view
3.
Read Authorization à pengguna diperbolehkan membaca data, tetapi tidak dapat memodifikasi.
4.
Insert Authorization à pengguna diperbolehkan menambah data baru, tetapi tidak dapat
memodifikasi data yang sudah ada.
5.
Update Authorization à pengguna diperbolehkan memodifikasi data, tetapi tidak dapat
menghapus data.
6.
Delete Authorization à pengguna diperbolehkan menghapus data.
·
Untuk Modifikasi data terdapat otorisasi
tambahan :
1.
Index Authorization à pengguna diperbolehkan membuat dan menghapus index data.
2.
Resource Authorization à pengguna diperbolehkan membuat relasi-relasi baru.
3.
Alteration Authorization à pengguna diperbolehkan menambah/menghapus atribut suatu relasi.
4.
Drop Authorization à pengguna diperbolehkan menghapus relasi yang sudah ada.
Tujuan keamanan
Basis Data
·
Secrecy/Confidentiality:
Informasi tidak boleh diungkapkan kepada pengguna yang tidak sah. Sebagai
contoh, mahasiswa seharusnya tidak diperbolehkan untuk memeriksa nilai siswa
lainnya.
·
Integrity: Hanya pengguna yang berwenang
harus diizinkan untuk memodifikasi data. Sebagai contoh, siswa mungkin
diperbolehkan untuk melihat nilai mereka, namun tidak diperbolehkan (jelas)
untuk memodifikasi mereka.
·
Availability: Pengguna yang terdaftar
tidak boleh ditolak akses. Sebagai contoh, seorang instruktur yang ingin
mengubah kelas harus diizinkan untuk melakukannya
Tingkatan Keamanan
Pada Database
1.
Fisikal : lokasi-lokasi dimana terdapat sistem
komputer haruslah aman secara fisik terhadap serangan perusak.
2.
Manusia : wewenang pemakai harus dilakukan
dengan berhati-hati untuk mengurangi kemungkinan adanya manipulasi oleh pemakai
yang berwenang
3.
Sistem Operasi : Kelemahan pada SO ini
memungkinkan pengaksesan data oleh pihak tak berwenang, karena hampir seluruh
jaringan sistem database menggunakan akses jarak jauh.
4.
Sistem Database : Pengaturan hak pemakai
yang baik.
Studi Kasus :
Stored Prosedre
Stored Prosedure adalah
program yang disimpan dalam data base seperti halnya data. Hal ini sebenarnya cukup tidak umum, karena kita mengharapkan yang
disimpan dalam database adalah data bukan
program.
Dengan adanya Store
Procedure, maka program SQL yang telah kita buat :
a.
Dapat
digunakan kapanpun
Seperti halnya pembuatan prosedur pada C++ / Pascal /
Java atau pemrograman yang lain, apabila pembuatan program bersifat modular
(dibuat kecil untuk setiap maksud/tujuan), akan lebih baik apabila pemrograman
tesebut menggunakan banyak prosedur. Dengan dibuat terpisah, kapanpun
diinginkan, hanya tinggal memanggil program tersebut.
b.
Lebih cepat dan efisien
Untuk program yang besar, pembuatan program Server Side,
terasa lebih mudah dibandingkan Client Side. Dengan Server Side, program lebih
bersifat Netral terhadap semua aplikasi. Disisi Programer, ia tidak perlu
mengetahui terlalu mendalam terhadap suatu program aplikasi seperti VB, Delphi,
Java , C++ Builder, PHP, ASP, J2ME, WAP, SMS dsb. karena tugas–tugas tersebut
sebenarnya dapat dilakukan oleh Server (dalam hal ini SQL Server) sedangkan aplikasi lainnyahanya untuk User interface/tampilan belaka, yang hanya berfungsi
untuk menampilkan data, memasukkan data, serta memberikan parameter-parameter
yang dibutuhkan oleh server untuk menghapus , mengubah, skeduling, backup dan
sebagainya. Sedangkan program yang sesungguhnya berada pada Server tersebut.
c.
Mudah dibuat dan dirawat karena kecil tapi ‘Power
Full’
Referensi
Tidak ada komentar:
Posting Komentar