MODUL 10 TRANSACTION

dokumen-dokumen yang mirip
MODUL VIII BASIS DATA TRANSACTION

Pertemuan IX MANAJEMEN TRANSAKSI

Manajemen Transaksi. Praktikum Sistem Basis Data. Gentisya Tri Mardiani, S.Kom., M.Kom

Modul Praktikum Sistem Basis Data 2010

Administrasi Basis Data. Transaksi dan Lock. Yoannita

Praktikum Basis Data 2017 TE UM MODUL 8 TRIGGER A. TUJUAN

BAB V IMPLEMENTASI DAN PENGUJIAN

Transaksi Semester Ganjil 2014 Fak. Teknik Jurusan Teknik Informatika. Caca E. Supriana, S.Si.,MT. Si

RECOVERY SYSTEM. Alif Finandhita, S.Kom

Manajemen Transaksi A. Konsep Transaksi 1. Membuat Tabel account dengan type Innodb

Transaction & Conccurency

MANAJEMEN TRANSAKSI. Alif Finandhita, S.Kom

Manajemen Transaksi. Sistem Basis Data. Gentisya Tri Mardiani, S.Kom., M.Kom

Transaksi. by: Ahmad Syauqi Ahsan

Distributed System. 8 Management Transaksi. Genap 2011/2012. Dahlia Widhyaestoeti, S.Kom dahlia74march.wordpress.

BAB IV IMPLEMENTASI DAN PENGUJIAN

MODUL VII STORED PROCEDURE

DEADLOCK & RECOVERY SYSTEM

Administrasi Basis Data. Integritas Data. Yoannita

Kusnawi, S.Kom, M.Eng

RECOVERY SYSTEM. Sistem Basis Data. Gentisya Tri Mardiani, S.Kom

Database Systems: Lab. Actvity 3: Fungsi-Fungsi MySql Advance. Pendahuluan. Pendahuluan

PENGONTROLAN BERBASIS KOMPUTER

SISTEM BASIS DATA 2. WAHYU PRATAMA, S.Kom., MMSI.

Nama : Putra Adi Nugraha dan Priska Kalista Kelas : B

RECOVERY SYSTEM. Sistem Basis Data. Gentisya Tri Mardiani, S.Kom., M.Kom

DATABASE CONTROL 1. SECURITY DATABASE. Suzan Agustri 81

JobsheetTEUM MODUL VI TRIGGER

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

Pertemuan I KONSEP DASAR STORED ROUTINES

PRAKTIKUM SISTEM BASIS DATA TUGAS 1 MANGROVE PERCETAKAN. Penyusun : Nama : Edi Sastrawijoyo NIM : Prodi : Teknik Informatika

Praktikum Basis Data (Database Server MySQL) Bekerja Dengan Tabel

Perintah MySQL Lanjutan

Pertemuan DDL INDIKATOR. Modul Teori Database Aknela

MODUL PRAKTIKUM BASIS DATA TEKNIK INFORMATIKA UIN SUNAN KALIJAGA YOGYAKARTA 2011 PENGENALAN DATABASE MYSQL

BAB IV ANALISIS DAN PERANCANGAN

Membuat Function, Stored Procedur dan View pada MySQL

LANGKAH-LANGKAH BACKUP & RECOVERY PADA DATABASE MYSQL

MODUL I PENGENALAN MYSQL

PERTEMUAN 10 PEMBUATAN TABEL

Administrasi Basis Data. Yoannita

MODUL VI INTERAKSI DATABASE

MySQL AL AZHAR COMPUTER CLUB

B. PETUNJUK. 2. Join. Praktikum Basis Data 2017 TE UM

DISTRIBUTED TRANSACTIONS

Praktikum MONITORING AND RESOLVING LOCK CONFLICTS. Tujuan :

DASAR-DASAR SQL SERVER 2005

LANGKAH-LANGKAH BACKUP & RECOVERY PADA DATABASE MYSQL

TUGAS I PRAKTIKUM SISTEM BASIS DATA. Nama: Krisna Pandu Wibowo( )

LAMPIRAN E FORMAT TABEL MYSQL

MODUL 1. Pembuatan tabel, pendefinisian constraint, export dan import PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE

[PRAKTIKUM BASIS DATA TERDISTRIBUSI D3 TI UNS]

Transaction dan Trigger. M. Saefudin SKom, MMSI

Mahasiswa memahami Pengertian Basisdata, Cara membuat basisdata, cara menginput data dan cara menampilkan data.

sistem basis data ti ti ukdw Transaksi Budi Susanto Teknik Informatika Universitas Kristen Duta Wacana Yogyakarta 11/14/11 budi susanto 1

OPTIMALISASI QUERY DALAM BASIS DATA MY SQL MENGGUNAKAN INDEX

Concurrency Control Semester Ganjil 2014 Fak. Teknik Jurusan Teknik Informatika. Caca E. Supriana, S.Si.,MT. Si

Konsep Dasar Basis Data. Oleh: Harnan Malik Abdullah, ST., MSc. Program Pendidikan Vokasi Universitas Brawijaya 2017

BAB 1 PENDAHULUAN Latar Belakang Masalah

Praktikum TRIGGER. Tujuan :

MODUL VII STORED PROCEDURE

Penguncian pada Concurrency Control

Apa itu DDL & DML? Semua perintah SQL dibagi dalam 2 kategori besar sesuai fungsinya, yaitu :

Modul Praktikum Sistem Basis Data S1-TI

Modul 3. Oleh : Mohammad Sholikin. 1

Pemrograman Web. Koneksi dan Manipulasi Basis Data. 7 Adam Hendra Brata

Database Systems: Lab. Actvity 1: Database Design. Merancang Database. Merancang Database. Tipe Tabel MySQL.

Backup & Recovery System. Teknik Informatika

Pemrograman Web. Koneksi dan Manipulasi Basis Data. Adam Hendra Brata

PERTEMUAN 9 MANIPULASI DATA

VIEW : Tabel Virtual VIEW 5/29/2017

SQL. Pemrograman Web II. Ganjil

TRIGGER TRIGGER 5/29/2017 HANI IRMAYANTI, S.KOM

Database Management System. Program yang memungkinkan item-item dalam suatu database disusun, diolah dan diperbaharui

MODUL 2 PENGENALAN DATA DEFINITION LANGUAGE (DDL) & DATA MANIPULATION LANGUAGE (DML)

MODUL II SQL A. TUJUAN

Database Interfaces. By: Arif Basofi

MODUL III REPLIKASI MULTI-MASTER (TWO-WAY)

PENDAHULUAN PENDAHULUAN TRANSAKSI TRANSAKSI TRANSAKSI 24/04/2016 TEKNIK RECOVERY

Contoh SQL Constraint

STRUCTURE QUERY LANGUAGE (SQL)

Pemrograman Web. Koneksi dan Manipulasi Basis Data. 7 Adam Hendra Brata

STRUCTURE QUERY LANGUAGE DDL & DML

Ada dua cara untuk melakukan backup dan pemulihan Oracle: Recovery Manager dan dikelola pengguna backup dan pemulihan.

BAB 4 IMPLEMENTASI DAN EVALUASI

Mekanisme Penanganan Deadlock Dalam Pemrosesan Transaksi Oleh DBMS Menggunakan Algoritma Backtracking

LAPORAN PRAKTIKUM MODUL 1 PENGENALAN MYSQL

Oracle Academic Initiative

PERINTAH DASAR MySQL

d. Primary Key Primary key atau unique key adalah suatu nilai di basis data yang digunakan untuk mengidentifikasi keunikan baris-baris di dalam tabel.

Praktikum Basis Data 2017 TE UM

MODUL PEMPROGRAMAN SQL TINGKAT DASAR 1 STANDAR KOMPETENSI: MENERAPKAN BAHASA PEMPROGRAMAN SQL TINGKAT DASAR SMK NEGERI 1 MAJALENGKA

STORE PROCEDURE. Pemrograman Client Server Sarji, S.Kom Studi kasus pada

JDBC. Imam Fahrur Rozi

PENGANTAR PRAKTIKUM BERKAS DAN BASIS DATA 2010/2011. Rizki Arif Firdaus

MODUL II REPLIKASI NATIF (ONE-WAY) MySQL

Contoh SQL Constraint

Oracle Academic Initiative

Gambar 4.8 Topologi replikasi basis data. Gambar 4.9 Konfigurasi IP pada master dan slave

Pemrograman Basis Data dan SQL

Transkripsi:

MODUL 10 TRANSACTION A. TUJUAN Memahami konsep dan urgensi transaksi dalam kehidupan sehari-hari Mampu mengimplementasikan transaksi basis data Mampu menyelesaikan operasi-operasi sensitif dengan memanfaatkan transaksi basis data B. PETUNJUK Awali setiap aktivitas dengan doa, semoga berkah dan mendapat kemudahan Pahami tujuan, dasar teori, dan latihan-latihan praktikum dengan baik dan benar Kerjakan tugas-tugas praktikum dengan baik, sabar, dan jujur Tanyakan kepada asisten/dosen apabila ada hal -hal yang kurang jelas. C. DASAR TEORI 1. Transaksi Basis Data Transaksi merupakan serangkaian kelompok dari operasi manipulasi database yang dilakukan seolah-olah sebagai satu unit kerja secara individu. Contoh kegiatan bertransaksi salah satunya apabila si A yang memiliki saldo di Bank sebesar Rp 10.000.000,00 ingin mentransfer uang ke rekening si B sebesar Rp 1.500.000,00. Maka dapat diilustrasikan secara sederhana proses yang terjadi adalah sebagai berikut : 1) Saldo si A dikurangi Rp 1.500.000,00 sehingga saldo akhir si A menjadi sebesar Rp 8.500.000,00 2) Saldo si B bertambah sebesar Rp 1.500.000,00 Jika di antara langkah (1 ) dan (2) terjadi hal-hal buruk yang tidak diinginkan, misalnya saja mesin ATM crash, terjadi pemadaman listrik, UPS gagal up, disk pada server penuh, atau ada cracker yang merusak infrastruktur jaringan. Maka dapat dipastikan bahwa saldo si A berkurang, tetapi saldo si B tidak bertambah. Hal tersebut merupakan sesuatu yang tidak diharapkan untuk terjadi. Dari ilustrasi di atas, maka dapat disimpulkan bahwa solusi yang tepat adalah memperlakukan perintah -perintah sebagai satu kesatuan operasi. Sederhananya, lakukan semua operasi atau tidak sama sekali. Uniknya, konsep penyelesaian di atas sudah dikemukakan oleh para ahli sejak puluhan tahun silam. Konsep yang disebut transaksi basis data (database transaction) ini sebenarnya cukup sederhana, antara lain: Tandai bagian awal dan akhir himpunan perintah, Putuskan di bagian akhir untuk mengeksekusi (COMMIT) atau membatalkan (ROLLBACK) semua perintah. 2. Properti Transaksi Basis Data Dalam transaksi basis data, terdapat properti-properti yang menjamin bahwa transaksi dilaksanakan dengan baik. Properti-properti ini dikenal sebagai ACID (Atomicity, Consistency, Isolation, Durability). 1

Atomicity Transaksi dilakukan sekali dan sifatnya atomic, artinya merupakan satu kesatuan tunggal yang tidak dapat dipisah, baik itu pekerjaan yang dilaksanakan secara keseluruhan, ataupun tidak satupun, biasa dikenal dengan jargon all or nothing. Consistency Jika basis data pada awalnya dalam keadaan konsisten, maka pelaksanaan transaksi dengan sendirinya juga harus meninggalkan basis data tetap dalam status konsisten. Isolation Isolasi memastikan bahwa secara bersamaan (konkuren) eksekusi transaksi terisolasi dari yang lain. Durability Begitu transaksi telah dilaksanakan (di-commit), maka perubahan yang diakibatkan tidak akan hilang atau tahan lama (durable), sekalipun terdapat kegagalan sistem. 3. Penanganan Kesalahan Fasilitas penanganan kesalahan (error handling) biasa diperlukan untuk mengantisipasi terjadinya kesalahan pada suatu proses transaksi, sehingga programmer bisa mengatur skenario jika suatu operasi gagal sebagian atau seluruhnya. Secara default skenario dari transaksi adalah AUTO COMMIT dimana seluruh proses yang berhasil dilaksanakan akan secara otomatis secara fisik disimpan dalam database. Jika diinginkan mulai dari posisi tertentu, maka AUTO COMMIT tidak berfungsi, dapat digunakan perintah START TRANSACTION. Selanjutnya suatu perintah sesudah pernyataan START TRANSACTION akan ditunda untuk disimpan sampai bertemu pernyataan COMMIT yang akan menyimpan seluruh proses yang tertunda, atau bertemu pernyataan ROLLBACK yang akan membatalkan seluruh proses yang tertunda. Akan tetapi perlu diingat bahwa terdapat beberapa perintah yang tidak dapat di ROLLBACK karena mengandung fungsi COMMIT secara implisit. Perintah peritah tersebut adalah sebagia berikut : ALTER TABLE BEGIN CREATE TABLE CREATE DATABASE CREATE INDEX DROP DATABASE DROP TABLE DROP INDEX LOAD MASTER DATA LOCK TABLES SET AUTOCOMMIT = 1 START TRANSACTION TRUNCATE TABLE UNLOCK TABLES 2

D. LATIHAN PRAKTIKUM 1. Transaksi di MySQL MySQL mendukung transaksi melalui storage engine InnoDB (full ACID compliance) dan BDB (BerkeleyDB) sejak versi 4.0. Oleh karena itu, untuk dapat mengimplementasikan transaksi, DBMS MySQL harus mendukung salah satu atau kedua engine transactional. Untuk memeriksa apakah tabel sudah menggunakan engine InnoDB dapat dilihat pada struktur tabel. Perlu sekali diperhatikan, engine non-transactional (seperti MyISAM) tidak dapat digunakan untuk mengimplementasikan transaksi basis data 2. Tabel Transaksi Membuat sebuah tabel transaksi sebagai berikut : Membuat tabel di PhpMyAdmin Membuat tabel dengan SQL Query Perhatikan tipe atau storage engine-nya, HARUS InnoDB 3

Jika sudah memiliki tabel non-transactional dan ingin mengubahnya menjadi transactional, gunakan perintah ALTER. Sebagai contoh, perintah berikut akan mengubah engine tabel non-transactional menjadi InnoDB : PhpMyAdmin SQL Query 3. Implementasi Transaksi Transaksi di MySQL diinisiasi dengan menggunakan pernyataan START TRANSACTION atau BEGIN dan diakhiri dengan COMMIT untuk menerapkan semua transaksi. Untuk membuat suatu kegiatan transaksi dalam PhpMyAdmin dapat menggunakan Stored Procedure. a. COMMIT 1) Membuat stored procedur dengan nama trans1 yang berisikan perintah seperti di bawah ini. Dimana ditambahkan dua baris data ke dalam tabel trans_demo. 2) Panggil stored procedure dengan perintah CALL Maka akan muncul dua baris data yang telah ditambahkan. 4

3) Periksa data pada tabel trans_demo. Dapat diperhatikan pada gambar di atas, bahwa tabel trans_demo kosong. Hal tersebut dikarenakan tidak diterapkannya transaksi dengan memanggil perintah COMMIT. Seingga mengakibatkan transaksi di-rollback secara implisit. Selanjutnya ubah isi perintah pada procedure trans1 menjadi seperti di bawah ini. Dimana telah ditambahkan perintah COMMIT setelah diberikan perintah penambahan data. Panggil stored procedure dengan perintah CALL Maka akan muncul dua baris data yang telah ditambahkan. Periksa data pada tabel trans_demo. Ketika telah ditambahkan perintah COMMIT, maka data telah tersimpan secara permanen (tidak di-rollback). b. Autocommit Mode Selain menggunakan pernyataan START TRANSACTION, juga dapat menggunakan pernyataan SET untuk mengatur nilai variabel autocommit. Nilai default autocommit adalah 1, yang menyatakan bahwa transaksi basis data telah aktif. Dengan kata lain, setiap perintah akan langsung diterapkan secara permanen. 1) Modifikasi isi perintah procedure trans1 dengan mengganti START TRANSACTION dengan SET seperti di bawah ini. 5

2) Panggil procedure 3) Periksa pada data tabel trans_demo Data yang baru ditambahkan akan disimpan secara permanen, karena telah mengaktifkan transaksi basis data. 4. Rollback Transaksi Akhir pernyataan transaksi dapat berupa COMMIT atau ROLLBACK, tergantung pada kondisinya. Pernyataan ROLLBACK digunakan untuk menggugurkan rangkaian perintah. ROLLBACK akan dilakukan manakala ada satu atau lebih perintah yang gagal dilaksanakan. Di samping itu, ROLLBACK juga dapat dilakukan secara eksplisit dengan memanggil pernyataan ROLLBACK. 1) Membuat procedure roll yang berisikan perintah seperti di bawah ini 2) Panggil procedure dengan perintah CALL Dapat dilihat bahwa data yang ditambahkan tidak akan muncul karena adanya pernyataan ROLLBACK yang akan menggugurkan rangkaian perintah. 5. Checkpointing Idealnya, ROLLBACK akan menggugurkan keseluruhan perintah dalam blok transaksi. Kondisi ini terkadang tidak dikehendaki, misal terdapat tiga perintah, namun kita hanya ingin menggugurkan perintah setelah perintah kedua (perintah pertama masih ada). Dalam kasus ini, kita bisa memanfaatkan fitur checkpointing. 6

1) Membuat procedure dengan nama cekpoint yang berisikan perintah seperti di bawah ini. 2) Panggil dengan menggunakan perintah CALL dan amati hasil penambahan data pada tabel trans_demo. Hasil Dapat dilihat bahwa data yang ditambahkan sebelum ditandai dengan perintah SAVEPOINT akan disimpan secara permanen. Sedangkan jika ada penambahan data diantara perintah SAVEPOINT dan perintah ROLLBACK, maka data tidak akan tersimpan permanen. Data akan tersimpan secara permanen jika sudah ada pernyataan COMMIT. E. TUGAS PRAKTIKUM 1. Mengapa diperlukan fungsi commit, rollback, dan checkpoint pada transsaction? 2. Implementasikan 1 contoh dari fungsi commit, rollback, dan checkpoint pada data yang ada di modul sebelumnya! 7