Monday, April 27, 2020

MEKANISME SERIALIZIBILITY DAN CARA MENGGUNAKAN MATRIX LOCKING


Serializibility adalah untuk menemukan non serial schedule yang mengijinkan 
transaksi untuk berjalan secara bersamaan tanpa mengganggu satu sama lain,
dan kemudian memproduksi sebuah state database yang dapat diproduksi oleh sebuah eksekusi serial.

Jika sebuah set transaksi berjalan secara bersamaan, bisa dikatakan bahwa schedule (nonserial) adalah benar jika memproduksi hasil yang sama seperti beberapa eksekusi serial lainnya.
Schedule seperti itu disebut serializable. Untuk mencegah inkonsistensi dari transaksi yang mengganggu satu sama lain, penting untuk menjamin serializability dari transaksi yang jalan bersamaan.


Pada serializability, urutan operasi baca dan tulis itu penting. Berikut ini hal – hal yang perlu diperhatikan:

·     Jika dua transaksi hanya membaca satu item data yang sama, dua transaksi tersebut tidak mengalami konflik dan urutan menjadi tidak penting.
·     Jika dua transaksi melakukan operasi membaca ataupun menulis pada item data yang berbeda, dua transaksi tersebut tidak mengalami konflik dan urutan menjadi tidak penting.
·     Jika satu transaksi menulis sebuah item data dan transaksi lain baik membaca ataupun menulis pada item data yang sama, maka urutan eksekusi itu menjadi penting.

Untuk menjamin serializability, ada 2 metode yang dapat digunakan yaitu :

Growing phase

transaksi memperoleh semua kunci yang diperlukan tanpa melepas kunci data apapun. Setelah semua kunci diperoleh, transaksi berada dalam posisi terkunci.

Shrinking phase


Transaksi melepaskan semua kunci & tidak dapat memperoleh kunci baru. Dikendalikan oleh aturan berikut: Dua transaksi tidak dapat memiliki kunci yang saling bertentangan.

Tidak ada operasi unlock yang dapat mendahului operasi lock dalam transaksi yang sama. Tidak ada data yang diproses sampai semua kunci diperoleh – yaitu sampai transaksi berada dalam posisi terkunci.

Matrik Locking


Ketika suatu transaksi memerlukan jaminan kalau record yang diingini tidak akan berubah secara mendadak, maka diperlukan kunci untuk record tersebut.

Fungsi kunci (lock) adalah menjaga record tersebut agar tidak dimodifiksi transaksi lain.

Cara kerja dari kunci :
1. Kita asumsikan terdapat 2 (dua) macam kunci
Kunci X (kunci eksklusif) dan kunci S (kunci yang digunakan bersama-sama)

2. Jika transaksi A menggunakan kunci X pada record R, maka permintaan dari transaksi B harus menunggu sampai nanti transaksi A melepaskan kunci

3. Jika transaksi A menggunakan kunci S pada record R, Maka :
(a) Bila transaksi B ingin menggunakan kunci X, maka B harus menunggu sampai A melepaskan kunci tersebut.
(b) Bila transaksi B ingin menggunakan kuni S, maka B bisa menggunakan kunci S bersama A

4. Bila suatu transaksi hanya melakukan pembacaan saja,secara otomatis ia memerlukan kunci S. Bila transaksi tersebut ingin memodifikasi record, maka secara otomatis ia memerlukankunci X. Bila transaksi tersebut sudah menggunakan kunci S, setelah itu ia akan memodifikasi record, maka kunci S akan dinaikkan ke level kunci X.

5. Kunci X dan kunci S akan dilepaskan pada saat Synchpoint (synchronization point) . Bila synchpoint ditetapkan maka:
-semua modifikasi program menjalankan operasi COMMIT atau ROLLBACK
-semua kunci dari record dilepaskan

MASALAH PADA KONKURENSI


1.Lost update problem (Masalah hilangnya data yang diupdate)

 Sebuah transakasi yang melakukan update, namun pada waktu interfal yang bersamaan proses update tersebut ditimpa oleh transaksi lain.


2.Uncommitted dependency problem / dirty read (masalah kebergantungan terhadap transaksi yang belum commit)

Sebuah transaksi dibiarkan untuk melihat hasil transaksi intermediate (menengah) dari transaksi lain sebelum dilakukan commit. 


3.Inconsistent analysis problem (masalah analisa yang tidak konsisten)

Sebuah transaksi membaca beberapa nilai dari database tetapi transaksi kedua melakukan update terhadap sebagian dari beberapa nilai tersebut selama proses eksekusi yang pertama.

4.Nonrepeatabel (atau fuzzy) read

Sebuah transaksi A membaca ulang data item yang sebelumnya telah dibaca, sementara itu transaksi lain  melakukan modifikasi. Sehingga A akan menerima 2 buah nilai yang berbeda untuk data item yang sama.

5.Phantom read

Transaksi A mengeksekusi sebuah query yang menerima sekumpulan tuple dari sebuah relasi dengan predikat tertentu, melakukan eksekusi ulang query pada waktu berikutnya tetapi menemukan kembali sekumpulan tuple tambahan (phantom) yang disisipkan oleh transaksi lain.

TRANSAKSI PADA SISTEM BASIS DATA

Outcome dari Transaksi

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.


Contoh : Rollback Statement mengembalikan semua proses yang terjadi didalam transaksi ke dalam kondisi awal

  

Atomicity, Consistency, Isolation, and Durability (ACID)

Singkatan dari Atomicity, Consistency, Isolation, and Durability. Empat karakteristik yang menjamin transaksi database diproses secara reliable. Model ACID merupakan salah satu konsep tertua dan paling penting dari teori database transaksional.
·     Atomicity mengacu pada kemampuan database untuk menjamin bahwa baik semua bagian transaksi dilakukan atau tidak sama sekali. Jika salah satu bagian dari transaksi gagal, seluruh transaksi gagal.
·     Consistency memastikan data dapat dikembalikan dalam keadaan sebelum transaksi dimulai, jika terjadi kegagalan.
·     Isolation memastikan transaksi yang masih dalam proses dan belum dilakukan (committed) harus tetap terisolasi terhadap transaksi lainnya.
·     Durability memastikan data yang telah disimpan (committed data) disimpan oleh sistim sebagaimana keadaannya , bahkan jika dalam keadaan kegagalan sistim dan restart sistem, data tersebut tersedia dalam tahapan dan keadaan yang benar.

Contoh : transfer dana dari satu rekening bank ke bank lain, bahkan melibatkan beberapa perubahan seperti mendebet satu account dan mengkredit lain, adalah satu transaksi.

KONKURENSI PADA SISTEM BASIS DATA


Konkurensi adalah proses-proses (lebih dari satu proses) yang terjadi pada saat bersamaan. Dalam DBMS berarti mengijinkan banyak transaksi pada saat bersamaan untuk mengakses data yang sama. Dalam melakukan konkurensi dibutuhkan suatu Concurency Control Mechanism (CCM) agar transaksi yang dilakukan oleh banyak user pada suatu sistem di dalam waktu yang bersamaan tidak saling “mengganggu” dan tidak menghasilkan inconsistency data.

Prinsip-prinsip Konkurensi

Konkurensi meliputi hal-hal sbb:
    Alokasi waktu pemroses untuk proses-proses
    Pemakaian bersama dan persaingan untuk mendapatkan sumber daya
    Komunikasi antarproses
    Sinkronisasi aktivitas banyak proses.

Tiga masalah dalam Konkurensi :

1.  Lost Update Problem
Masalah operasi update yang sukses dari seorang pengguna kemudian ditimpali oleh operasi update dari pengguna lain.

2.  Uncomited dependency problem (ketergantungan yg tidak sukses/modifikasi sementara)
Masalah terjadi saat suatu transaksi membaca data dari transaksi lain yg belum dicommit.

3.  Inconsistent analysis problem
Masalah terjadi saat satu transaksi membaca beberapa nilai tetapi transaksi kedua pd waktu sama memodifikasi nilai tersebut.


Dua Outcome dari Konkurensi :

1.       Commit
Jika operasi berjalan sukses, maka transaksi disebut commited, basis data mencapai kondisi konsisten yang baru.

2.       Abort
Jika operasi berjalan tidak sukses, maka transaksi disebut aborted (gagal)Jika transaksi gagal maka basis data kembali ke keadaan konsisten sebelum transaksi dimulai. Disebut roll back atau undone.

Locking

Jika sebuah transaksi ingin record/resource tidak berubah dalam waktu tertentu maka dia meminta lock. jenis lock :

1.  Exclusive Lock (Xlock) à write lock
2.  Shared Lock (Slock) à read lock 

Deadlock

Situasi dimana dua atau lebih transaksi dalam kondisi wait-state, satu sama lain menunggu lock dilepaskan sebelum dapat memulai. Dapat diatasi dengan cara :
  • Deteksi dan pecahkan deadlock
  • Deteksi deadlock à wait-for-graph
  • Pecahkan deadlock à salah satu dirollback paksa (bagaimana penanganan rollback ini?)
  • Ostrich Algorithmà diabaikan

Alasan mengapa konkurasi sangat penting pada sistem basis data karena database pastinya akan diakses oleh banyak orang secara bersamaan, untuk menghidari kesalahan tentunya monkurensi ini sangat penting untuk menghindari masalaj tersebut. 


Sunday, April 12, 2020

MENJAWAB SOAL INTEGRITAS DATA


Apa kegunaan integritas basis data

Kegunaan integritas data sendiri yaitu untuk menjaga kemurnian data atau menjaga data-data yang tidak valid agar tidak masuk ke database. Integritas data juga tergolong murah dan mudah menjaga data integrity di level database dibandingkan dengan aplikasi, selain itu bugs nya juga sedikit.

Jelaskan jenis-jenis integritas basis data


·       Integritas Entitas (Entity Integrity), dimana tidak ada baris data duplikat dalam satu table.
·       Integritas Jangkuan (Domain Integrity), dimana tidak ada item data yang melanggar jangkuan nilai di tiap kolom data.
·       Integritas Acuan (Referential Integrity), yang menjaga relasi/korespodensi antar table.
·       Integritas Data Antar Tabel (Redundant Data Integrity), dimana data di sebuah table tidak terulang di table lain

Contoh untuk Integritas Entitas
Integritas entitas mendifinisikan sebuah baris sebagai sebuah entitas yang unik untuk suatu tabel. Dalam integritas entitas, tidak ada baris yang di duplikat didalam suatu tabel.

Contoh :
create table Pembelian
(ID Pembelian smallint,
ID model smallint,
DeskripsiModel varchar (40),
Primary Key (IDPembelian));

contoh untuk Integritas Domain
Domain adalah nilai-nilai yang dimungkinkan diasosiasikan dengan setiap atribut, Integritas domain merupakan validasi masukan dari sebuah kolom. Dengan integritas domain, tidak ada data yang melanggar jangkauan nilai di tiap kolom data.

Jenis domain yang harus dimiliki oleh setiap atribut :
1.   Karakter bebas
2.   Alphanumerik
3.   Alphabet
4.   Numerik

Pemeliharaan integritas domain :
1.  Pendifinisian skema
2.  Pemanfaatan properti field
3.  Penerapan proses validasi pada pemasukan data

Contoh :
Create table biografi
(idpenulis smallint unsigned not null,
tahunLahir year not null,
kotalahir varchar (40) not null default
‘Kosong’);
create domain nilai numerik(3,2)
constraint value-test check (value >=0.00)


PENTINGNYA INTEGRITAS DATA DALAM SISTEM BASIS DATA


Integritas data adalah menjamin konsistensi data terhadap semua konstrain yang diberlakukan terhadap data tersebut, sehingga memberikan jaminan keabsahan data itu sendiri.
Tujuannya adalah menjaga data agar data yang tidak valid tidak masuk ke database. Menjaga konsistensi data pada relasi keterkaitan antar tabel.
Integritas data dapat dikelompokkan sebagai berikut :
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 yang dihubungkan.
4.      User Defined integritas
User difined integritas mengizinkan  kita untuk menentukan  spesific business rules  sendiri  yang tidak sama pada kategori integrity yang lain
Jenis-jenis Integritas Data :
  • Domain integrity (Integritas jangkauan nilai)
Tidak ada item data yang melanggar jangkauan nilai di tiap kolom data.
  • Integrity Entity (Integritas Entitas)
Tidak ada baris data duplikat dalam satu tabel.
  • Integrity Referential (Integritas acuan)
Menjaga relasi atau korespondensi antar tabel.
  • Redudant Data Integrity (Integritas Data Antar Tabel)
Data di sebuah tabel tidak berulang di tabel lain.
  • Bussiness Rule Integrity (Integritas Aturan Nyata)
Data di suatu tabel harus memiliki nilai yang layak dan dapat diterima ditempat sistem basis data itu diterapkan. Integritas jenis ini bersifat kasuistis, artinya sangat bergantung pada jenis data, lokasi, lingkungan, dan waktu penerapan basis data.
  • Membuat Constraint
Constraint merupakan suatu aturan yang membatasi jenis data yang diijinkan untuk dimasukkan ke dalam tabel.

ASPEK-ASPEK TERHADAP KEAMANAN DATA


Beberapa bentuk serangan atau akses yang secara sengaja dapat merusak atau merugikan pemilik data:

·     SQL injection, yaitu jenis aksi hacking pada keamanan komputer di mana seorang penyerang bisa mendapatkan akses ke basis data di dalam system,
·     Pengambilan data / pembacaan data oleh pihak yang tidak berwenang,
·     Pengubahan data oleh pihak yang tidak berwenang,
·     Penghapusan data oleh pihak yang tidak berwenang,
·     Pencurian backup database.

Level-level pengamanan basis data

·     Fisikal : Adalah lokasi-lokasi dimana terdapat sistem komputer haruslah aman secara fisik terhadap serangan perusak.
·     Manusia : Adalah wewenang pemakai harus dilakukan dengan berhati-hati untuk mengurangi kemungkinan adanya manipulasi oleh pemakai yang berwenang.
·     Sistem Operasi : Merupakan kelemahan pada Sistem Operasi ini memungkinkan pengaksesan data oleh pihak tak berwenang, karena hampir seluruh jaringan sistem database menggunakan akses jarak jauh
·     Sistem Database : Adalah pengaturan hak pemakai yang baik.

Bentuk otoritas user terhadap data

·     Relasi, yaitu pengguna diperbolehkan atau tidak diperbolehkan mengakses langsung suatu relasi.
·     View, yaitu pengguna diperbolehkan atau tidak diperbolehkan mengakses data yang terapat pada view.
·     Read Authorization, yaitu pengguna diperbolehkan membaca data, tetapi tidak dapat memodifikasi.
·     Insert Authorization, yaitu pengguna diperbolehkan menambah data baru, tetapi tidak dapat memodifikasi data yang sudah ada.
·     Update Authorization, yaitu pengguna diperbolehkan memodifikasi data.
·     Delete Authorization, yaitu pengguna diperbolehkan menghapus data.

FUNGSI PROTEKSI BASIS DATA



DBMS pada umumnya memiliki fasilitas proteksi data, yaitu fasilitas yang bertujuan untuk melindungi data dari berbagai resiko yang mungkin terjadi dan membawa dampak dalam basis data

Security merupakan suatu proteksi terhadap pengrusakan data dan pemakaian data oleh user yang tidak berwenang. Organisasi harus dapat mengidentifikasi masalah keamanan yang mungkin mengganggu jalan operasional basis data.
Penyalahgunaan basis data dapat dikategorikan sebagai tindakan yang disengaja maupun yang tidak sengaja.

Percaya atau tidak, keamanan data / data security akan atau bahkan sudah menjadi hal penting dalam kehidupan kamu sehari-hari. Betapa tidak, kini melakukan perekaman data hingga penyebaran data semakin gampang.

Oleh karena itu, kemanan data menjadi prioritas utama guna menjamin kerahasiaan dan terjaganya konfidensi pengguna dengan penyedia layanan penyimpanan data. Berikut beberapa aspek keamanan data pada DBMS

Confidentiality / Privacy


Kerahasiaan data. Data hanya boleh diakses oleh orang yang berwenang

·     Data-data pribadi
·     Data-data bisnis; daftar gaji, data nasabah
·     Sangat sensitif dalam e-commerce dan healthcare

Serangan : penyadapan (teknis dengan sniffer / logger, man in the middle attack; non-teknis dengan social engineering).
Proteksi: enkripsi

Integrity
Informasi tidak boleh berubah (tampered, altered, modified) oleh pihak yang tidak berhak

Serangan
·     Pengubahan data oleh orang yang tidak berhak, spoofing
·     Virus yang mengubah berkas

Proteksi
·     Message Authentication Code (MAC), digital signature / certificate, hash functions, logging


Availability
Informasi harus tersedia ketika dibutuhkan 

Serangan
·     Meniadakan layanan (Denial of Service / DoS attack) atau menghambat layanan (server dibuat lambat)

Proteksi

·     Backup, redundancy, DRC, BCP, firewall


Non-repudiation

Tidak dapat menyangkal (telah melakukan transaksi)

·     Menggunakan digital signature
·     Loggin

Authentication

Meyakinkan keaslian data, sumber data, orang yang mengakses data, server yang digunakan
·     Identity Card
·     Password , PIN
·     Biometric Identity

Serangan: identitas palsu, terminal palsu, situs gadungan

Access Control

Mekanisme untuk mengatur siapa boleh melakukan apa
·     Membutuhkan adanya klasifikasi data: public, private, confidential, (top) secret
·     Role-based access

Accountability

·     Dapat dipertanggung-jawabkan
·     Melalui mekanisme logging dan audit
·     Adanya kebijakan dan prosedur (policy & procedures)