Senin, 17 Juni 2013

uas



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
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 T­1 membaca nilai dari balx sampai update T2 telah selesai.
Masalah Uncommited Dependency (dirty read)
Masalah+Uncomitted+Dependency
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
Masalah+Inconsistent+Analysis
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 bal­z, 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

INTEGRITAS DATA, CONCURENCY, TRANSAKSI DAN KEAMANAN BASIS DATA

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

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

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.

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. 



Referensi