Lingkungan Basis Data
Lingkungan Basis Data
Konkurensi (CONCURRENCY)
Konkurensi adalah kondisi kejadian dimana banyak proses berjalan di waktu yang bersamaa.
Pada proses konkuren yang berinteraksi mempunyai beberapa masalah yang harus
diselesaikan. Dengan begitu konkurensi akan berkaitan dengan bagaimana membuat struktur
dan cara kerja, agar permasalahan dapat teratasi.
Masalah ini timbul jika dua transaksi mengakses item database yang sama yang
transaksi Ika mengubah nilai tersebut dalam database, sehingga nilai yang sudah di update
Masalah ini timbul jika transaksi membaca suatu record yang sudah dimodifikasi oleh
transaksi lain tetapi belum terselesaikan (uncommited), terdapat kemungkinan kalau transaksi
Nilai saldo menjadi tidak benar disebabkan terjadi RollBack pada T7 yang membatalkan
timbul jika sebuah transaksi membaca suatu nilai tetapi transaksi yang kedua mengupdate
Transaksi A menjumlahkan nilai 1, nilai 2 dan nilai 3 Transaksi B nilai 1 + 10, nilai 3 –10
Locking
KONSEP DASAR :
Ketika sebuah transaksi memerlukan jaminan kalau record yang diinginkan tidak akan
berubah secara mendadak, maka diperlukan kunci untuk record tersebut FUNGSI Locking
berfungsi untuk menjaga record tersebut agar tidak dimodifikasi oleh transaksi lain.
1. Share (S)
Kunci ini memungkinkan pengguna dan para pengguna konkuren yang lain dapat membaca
Kunci ini memungkinkan pengguna untuk membaca dan mengubah record. Sedangkan
pengguna konkuren lain tidak diperbolehkan membaca ataupun mengubah record tersebut.
MYSQL dan Locking
MySQL merupakan software database berbasis client-server. Hal ini berarti bahwa beberapa
client dapat melakukan koneksi ke server MySQL secara bersamaan. Masing-masing client
dapat melakukan select, insert, update, maupun delete data di server MySQL. Hal ini tentunya
dapat menjadi masalah jika terjadi bentrok antar-client.
Sebagai contoh dalam proses transaksi pemesanan barang. Jika terdapat 2 (dua) pelanggan
melakukan transaksi pada waktu yang sama, misalnya melakukan pemesanan barang.
Keduanya akan menambahkan data di tabel yang sama dan mungkin saja data yang
dimasukkan tertukar atau tidak valid. Hal ini tidak akan terjadi jika pada saat satu pelanggan
melakukan transaksi, pelanggan yang lain harus menunggu sampai proses transaksi selesai.
Untuk mengatur proses query yang terjadi dalam suatu sistem yang memiliki user banyak
(multi-user-system), kita dapat memanfaatkan dua hal di MySQL.
Pertama kita dapat mengunci tabel (table-locking). Cara ini dapat dilakukan jika tipe tabel
yang digunakan adalah MyISAM.
Kedua, dapat menggunakan perintah BEGIN, COMMIT dan ROLLBACK. Cara ini dapat
dilakukan jika tipe tabel adalah tabel transaksi, yaitu InnoDB.
Terdapat 4 (empat) prinsip dasar transaksi yang biasa disingkat sebagai ACID, yaitu:
Atomicity. Atom merupakan komponen terkecil dari materi, atau sesuatu yang tidak dapat
dibagi-bagi lagi. Prinsip ini berlaku pada proses transaksi. Semua proses (perintah) yang ada
di dalam satu paket transaksi harus selesai semua atau tidak selesai sama sekali. Dengan kata
lain, dalam satu transaksi tidak boleh ada proses (perintah) yang gagal dieksekusi.
Consistency. Bahwa kegagalan satu proses dalam transaksi tidak akan mempengaruhi
transaksi lainnya.
Isolation. Secara sederhana, bahwa data yang sedang digunakan dalam satu transaksi, tidak
dapat digunakan oleh transaksi lainnya sebelum seluruh proses transaksi yang pertama selesai.
Durability. Jika sebuah transaksi selesai dieksekusi, hasilnya tetap tercatat dengan baik.
Mengunci Tabel
Mengunci tabel (table-locking) dapat dilakukan untuk membatasi akses terhadap suatu table
jika ada user yang sedang aktif mengakses tabel. Suatu tabel yang sedang terkunci (locked),
tidak dapat diakses dengan bebas oleh user lain. Untuk mengunci tabel di MySQL dapat
menggunakan kata kunci LOCK.
Bentuk umum perintah LOCK :
LOCK TABLE table1 locktype, table2 locktype, ...;
Dimana tipe lock (locktype) yang dapat dipilih antara lain:
READ. Semua user MySQL dapat membaca (mengakses) tabel, namun tabel tersebut tidak
dapat diubah oleh siapapun, termasuk user yang mengeksekusi perintah LOCK. Dengan kata
lain, tabel bersifat read-only.
READ LOCAL. Sama seperti READ, tetapi perintah INSERT dapat dilakukan selama tidak
merubah record (data) yang ada.
WRITE. User yang aktif diperbolehkan untuk membaca dan mengubah tabel (read-and-
write). User yang lain tidak dapat mengubah isi tabel, hanya dapat membaca tabel (read-
only).
LOW PRIORITY WRITE. Seperti halnya WRITE, hanya saja user lain dapat melakukan
READ LOCK.
Untuk membuka tabel yang terkunci, gunakan perintah UNLOCK TABLES;
Contoh table-locking:
> LOCK TABLES trans READ, customer READ LOCAL;
> SELECT sum(value) FROM trans WHERE customer_id= some_id;
> UPDATE customer SET total_value=total WHERE customer_id=some_id;
> UNLOCK TABLES;
BEGIN, COMMIT dan ROLLBACK
BEGIN atau START TRANSACTION digunakan untuk memulai transaksi, COMMIT untuk
mengakhiri transaksi dan menyimpan semua perubahan, sedangkan ROLLBACK digunakan
untuk menghentikan proses transaksi dan mengabaikan semua perubahan yang telah
dilakukan.
Pada tipe tabel InnoDB, tidak berlaku transaksi didalam transaksi (nested transaction), artinya
jika perintah BEGIN dieksekusi sebelum transaksi selesai dilakukan (perintah COMMIT),
maka secara otomatis, perintah COMMIT akan dieksekusi terlebih dahulu.
Perintah transaksi diatur oleh client. Jika pada saat proses transaksi berlangsung, koneksi
client dengan server terputus, maka secara otomatis, MySQL akan membatalkan semua
perubahan yang sudah terjadi (seperti halnya mengeksekusi perintah ROLLBACK).
Bentuk umum perintah transaksi :
BEGIN; SELECT | INSERT | UPDATE | DELETE; COMMIT;
Contoh :
> SET AUTOCOMMIT=0;
> BEGIN;
> INSERT INTO pesan VALUES(NULL,'P0001',now());
> SET @id := LAST_INSERT_ID();
> INSERT INTO detil_pesan VALUES (@id,'B0001','2','2500');
> COMMIT;
Timestamping
TIMESTAMPING Adalah salah satu alternatif mekanisme kontrol konkurensi yang dapat
2. Suatu transaksi memerintahkan untuk menulis sebuah item yan nilainya sudah
PENGERTIAN :
Crash adalah suatu failure atau kegagalan dari suatu sistem PENYEBAB DARI
KEGAGALAN ADALAH :
2. Power failure yaitu informasi yang disimpan pada memori utama dan register akan hilang
3. Software Error yaitu output yang dihasilkan tidak betul dan sistem databasenya sendiri
1. Volatile storage, biasanya informasi yang terdapat pada volatile akan hilang, jika terjadi
2. Non Volatile Storage, biasanya informasi yang terdapat pada non volatile strorage tidak
3. Stable Storage, informasi yang terdapat dalam stable storage tidak pernah hilang. contoh:
Harddisk RAID
Jenis-jenis kegagalan
1. Logical Error, program tidak dapat lagi dilaksanakan disebabkan oleh kesalahan input,
2. System Error, sistem berada pada keadaan yang tidak diinginkan, seperti terjadi
deadlock, sebagai akibat program tidak dapat dilanjutkan namun setelah beberapa
volatile storage, tetapi data pada non volatile storage masih tetap ada.
4. Disk Failure, hilangnya data dari sebuah blok disk disebabkan oleh kerusakan head
Security
SECURITY adalah suatu proteksi data terhadap perusakan data dan pemakaian oleh pemakai
1. Di dalam suatu perusahaan siapa yang diijinkan untuk mengakses suatu sistem
3. Di dalam pengontrolan hardware, apakah ada proteksi untuk penyimpanan data (data
storage)
1. Katagori yang tidak disengaja Contoh: Anomali yang disebabkan oleh pendistribusian
2. Katagori yang disengaja Contoh: Insert, Delete & Update oleh pihak yang tidak
berwenang
jaringan
KONSEP VIEW adalah cara yang diberikan pada seorang pemakai untuk mendapatkan model
1. Relasi, seorang pemakai diperbolehkan atau tidak mengakses langsung suatu relasi
2. View, seorang pemakai diperbolehkan atau tidak mengakses data yang terdapat pada
view
4. Insert Authorozation, pemakai boleh menambah data baru, tetapi tidak dapat
5. Update Authorization, pemakai boleh memodifikasi tetapi tidak dapat menghapus data
satu relasi
(2009). Sistem Basis Data Dalam Paket Five In One. PT Elex Media
Komputindo.
Ladjamudin, A. B. Bin. (2005). Analisis dan Desain Sistem Informasi. Graha Ilmu. Pahlevi, S.
Sukamto, R. A., & Shalahuddin, M. (2018). Rekayasa Perangkat Lunak Terstruktur Dan
Berorientasi Objek. Informatika.