Transaksi. by: Ahmad Syauqi Ahsan

dokumen-dokumen yang mirip
Administrasi Basis Data. Transaksi dan Lock. Yoannita

Kusnawi, S.Kom, M.Eng

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

BAB V IMPLEMENTASI DAN PENGUJIAN

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

Transaction & Conccurency

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

MODUL 10 TRANSACTION

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

BAB IV IMPLEMENTASI DAN PENGUJIAN

Gambar Layar pertama untuk pemecahan masalah Lost Update

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

Manajemen Transaksi (Penjadwalan & Kontrol konkurensi)

Pertemuan IX MANAJEMEN TRANSAKSI

Modul Praktikum Sistem Basis Data 2010

PENGONTROLAN BERBASIS KOMPUTER

DATABASE CONTROL 1. SECURITY DATABASE. Suzan Agustri 81

STRUCTURE QUERY LANGUAGE (SQL)

B a s i s D a t a - 1 C H A P T E R. SQL Operasi DML. Copyright 2005 PENS-ITS

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

IMPLEMENTASI CONCURENCY CONTROL UNTUK APLIKASI MULTIUSER MENGGUNAKAN DATABASE SQL SERVER. Wiwi Widayani STMIK AMIKOM Yogyakarta

SQL Lanjut. Modifikasi Database. Versi 2

MANAJEMEN TRANSAKSI. Alif Finandhita, S.Kom

IMPLEMENTASI CONCURENCY CONTROL UNTUK APLIKASI MULTIUSER MENGGUNAKAN DATABASE SQL SERVER Wiwi Widayani

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

MODUL VIII BASIS DATA TRANSACTION

B a s i s D a t a C H A P T E R. SQL Operasi DML. Arif Basofi PENS 2015

BAB I PENDAHULUAN : SISTEM BASIS DATA

SISTEM BASIS DATA By Novareza Klifartha

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

Praktikum MONITORING AND RESOLVING LOCK CONFLICTS. Tujuan :

Oracle Academic Initiative

Transaction dan Trigger. M. Saefudin SKom, MMSI

PERTEMUAN 9 MANIPULASI DATA

BAB 1 PENDAHULUAN. satu hal yang sangat dominan dan terjadi dengan sangat pesat. Informasi

SQL (Structure Query Language) Gentisya Tri Mardiani, S.Kom

Pengertian Query. Query adalah perintah-perintah untuk mengakses data pada sistem basis data

TEKNIK RECOVERY (ref. Fundamentals of DB Systems, Elmasri, N)

Basis Data. Bagian IV SQL (3) Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan

BAB 4 IMPLEMENTASI DAN EVALUASI. maka diperlukan suatu jaringan LAN yang terhubung antara komputer yang satu

Transaksi dan Data Integrity

BAB 4 IMPLEMENTASI DAN EVALUASI

BAB 4 IMPLEMENTASI DAN EVALUASI

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

LATAR BELAKANG IBM San Jose Research Laboratory.

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

MODUL V DATA MANIPULATION LANGUAGE (DML) 1

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

CONSTRAINT clients_client_num_pk PRIMARY KEY (client_number));

Distributed System. 9 Concurrency Control. Genap 2011/2012. Dahlia Widhyaestoeti, S.Kom dahlia74march.wordpress.

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

BAB V CURSOR AND RESULT SETS

Transaction & Conccurency

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP) PROGRAM STUDI : DIII MANAJEMEN INFORMATIKA Semester : 4

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

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

RECOVERY SYSTEM. Alif Finandhita, S.Kom

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

Agenda SQL. Pemakai SQL. Kemampuan SQL 02/12/2010 STRUCTURED QUERY LANGUAGE (SQL) Structured Query Language (SQL) (Pert. 9)

TUGAS PRAKTIKUM SISTEM BASIS DATA

STRUCTURE QUERY LANGUAGE DDL & DML

MySQL AL AZHAR COMPUTER CLUB

BERMAIN DATA DENGAN SQL SERVER

INTEGRITAS BASIS DATA. OLEH : Slamet Sn Wibowo Wicaksono

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

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

Praktikum TRIGGER. Tujuan :

Triggers. by: Ahmad Syauqi Ahsan

Pemodelan Basis Data. Rima Dias Ramadhani, S.Kom., M.Kom Wa:


Praktikum Basis Data 2017 TE UM

BAB II DASAR TEORI. 2.1 Konsep Dasar Sistem Aplikasi Pengertian Sistem. Pengertian sistem adalah kumpulan dari elemen-elemen yang berinteraksi

KURSUS ONLINE JASA WEBMASTERS

TSI Perbankan MANAJEMEN DATA LOCK. Obyektif : 1. Mengetahui konsep lock 2. Mengetahui konsep share pada file database. AS/400 hal. B.

DISTRIBUTED TRANSACTIONS

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

BAB III MODEL DATA RELASIONAL DAN ALJABAR RELASIONAL

Nama : Parisaktiana Fathonah NIM : Kelas : Prak Sistem Basis Data TI-2 B malam

Basis Data Spasial Modul 2

Basis Data. DDL & Aturan Referential

Introduction to SQL. Database Programming. 2 nd Chapter

INTERNET PROGRAMMING DATABASE

6. Kumpulan data yang diorganisir menggunakan metode tertentu sehingga menghasilkan informasi yang berguna bagi pemakainya, pengertian dari: JAWAB:

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

Basis Data Adalah.. Kumpulan file/table/arsip yang saling berhubungan yang disimpan dalam media penyimpanan elektronis

PENGAMANAN SISTEM basis DAta

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

MERANCANG WEB DATA BASE UNTUK CONTENT SERVER

Pertemuan 10. Bahasa Query Terapan

Pertemuan VI F U N C T I O N

Konsep Dasar. Relatsional dan RDBMS User dan Schema Database Membuat Tabel dan Mendefinisikan Constraint Input Data ke dalam Tabel

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

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

BAB IV ANALISIS DAN PERANCANGAN

BAB 11 SECURITY (KEAMANAN)

Data Manipulation Language (DML)

BAB III ANALISIS MASALAH

Perintah MySQL Lanjutan

Transkripsi:

08 Transaksi by: Ahmad Syauqi Ahsan

Kenapa Transaksi 2 Sistem database secara normal adalah diakses oleh banyak user atau proses pada waktu yang bersamaan. Baik query maupun modifikasi (insert, update, delete) Tidak seperti sistem operasi (seperti: Windows atau Linux) yang memungkinkan adanya interaksi diantara proses, sebuah DBMS perlu untuk menjaga proses-proses didalamnya untuk terhindar dari masalah yang mungkin timbul dari adanya interaksi antar proses.

Contoh: Interaksi yang buruk 3 Anda dan partner anda masing-masing mengambil $100 dari account yang sama pada mesin ATM yang berbeda secara hampir bersamaan. DBMS harus memastikan bahwa pengambilan uang pada salah satu account tidak hilang Perbandingan: sebuah OS memungkinkan dua orang untuk meng-edit sebuah dokumen pada waktu yang bersamaan. Jika keduanya menulis, perubahan dari salah satunya akan hilang.

Transaksi 4 Transaksi = adalah proses-proses yang melibatkan query dan/atau modifikasi pada database Umumnya dengan beberapa property yang berkaitan dengan masalah concurrency Terbentuk dalam SQL dari statemen tunggal atau kontrol programmer secara eksplisit.

ACID Transaction 5 ACID transaction adalah: Atomic: dikerjakan seluruhnya atau tidak sama sekali. Consistent: tetap mempertahankan batasan-batasan (constraints) pada database Isolated: yang terlihat oleh user hanya ada satu proses yang dieksekusi pada satu waktu Durable: akibat dari suatu proses tetap ada walaupun ada crash. Opsional: bentuk yang lebih lemah dari suatu transaksi seringkali juga didukung oleh ACID transaction.

COMMIT 6 Statement COMMIT pada SQL menyebabkan sebuah transaksi selesai sempurna. Setiap modifikasi pada database akan tersimpan secara permanen

ROLLBACK 7 Statemen ROLLBACK pada SQL juga menyebabkan sebuah transaksi selesai, tetapi dengan cara menggagalkan (abort). Tidak menimbulkan efek apa-apa pada database Kesalahan seperti pembagian dengan 0 atau constraint violation (pelanggaran terhadap batasan) dapat juga menyebabkan proses ROLLBACK, bahkan jika sang programmer tidak memintanya

Contoh:Proses-proses yang berinteraksi 8 Asusmsi ada relasi (tabel) Sells(bar, beer, price), dan misalkan Bar milik Joe menjual hanya bir Bud untuk R2.50 dan bir Miller untuk $3.00 Sally meng-query Sells untuk harga tertinggi dan harga terendah yang diterapkan oleh Joe. Joe memutuskan untuk berhenti menjual bir Bud dan bir Miller, tetapi akan menjual bir Heineken saja pada $3.50

Program milik Sally 9 Sally mengeksekusi dua statemen SQL berikut yang disebut (min) dan (max) untuk membantu kita mengingat apa yang mereka kerjakan. (max) (min) SELECT MAX(price) FROM Sells WHERE bar = 'Joe''s Bar'; SELECT MIN(price) FROM Sells WHERE bar = 'Joe''s Bar';

Program milik Joe 10 Pada waktu yang hampir bersamaan, Joe mengeksekusi langkah-langkah berikut. (del) dan (ins) (del) (ins) DELETE FROM Sells WHERE bar = 'Joe''s Bar'; INSERT INTO Sells VALUES ('Joe''s Bar', 'Heineken', 3.50);

Interleaving of Statements 11 Meskipun (max) harus dilakukan sebelum (min), dan (del) dilakukan sebelum (ins), tidak ada batasan lain pada urutan dari statemen-statemen ini, kecuali kita mengelompokkan statemen milik Sally dan/atau milik Joe kedalam transaksi.

Contoh: Strange Interleaving 12 Misalkan urutan eksekusi adalah seperti berikut: (max) (del) (ins) (min) Harga dari Joe {2,50; 3.00} {2,50; 3.00} {3.50} Statement (max) (del) (ins) (min) Hasil 3.00 3.50 Sally akan melihat bahwa nilai MAX < MIN

13 Menyelesaikan permasalahan dengan Transaksi Jika kita mengelompokkan statemen-statemen dari Sally (max) dan (min) kedalam satu transaksi, maka dia tidak akan dapat melihat ketidakkonsistensian ini. Sally akan melihat harga-harga milik Joe pada satu waktu yang sama. Bisa jadi sebelum atau sesudah Joe merubah harga ataupun ditengahtengah, nilai (max) dan (min) akan di hitung dari harga yang sama pada waktu yang sama pula.

Masalah yg Lain: ROLLBACK 14 Misalkan Joe mengeksekusi (del)(ins) tidak sebagai transaksi. Tetapi setelah proses eksekusi statemen-statemen ini, dia mengeluarkan statemen ROLLBACK Jika Sally mengeksekusi statemennya setelah (ins) tetapi sebelum rollback, dia melihat nilai 3.50, yang tidak pernah ada dalam database.

Solusi 15 Jika Joe mengeksekusi (del)(ins) sebagai transaksi, akibat yang ditimbulkan tidak dapat dilihat oleh orang lain sampai transaksi tersebut di-commit. Jika transaksi tersebut di-rollback, maka akibat dari transaksi tersebut tidak akan pernah terlihat

Isolation Level (Level Isolasi) 16 SQL mendefinisikan 4 level isolasi = pilihan interaksi yang diijinkan oleh transaksi yang dijalankan pada waktu yang hampir bersamaan. Hanya ada satu level ("serializable") = ACID transaction Setiap DBMS mengimplementasikan transaksi dengan caranya masing-masing

Memilih Level Isolasi 17 Didalam sebuah transaksi, kita bisa mengatakan: SET TRANSACTION ISOLATION LEVEL X where X = 1. SERIALIZABLE 2. REPEATABLE READ 3. READ COMMITTED 4. READ UNCOMMITTED

Serializable Transactions 18 Jika Sally = (max)(min) dan Joe = (del)(ins), dimana masingmasing adalah transaksi. Dimana Sally menjalankannya dengan level isolasi SERIALIZABLE. Sehingga Sally akan melihat database baik sebelum maupun setelah Joe mengeksekusi transaksi. Tetapi tidak pernah ditengah-tengahnya.

Level Isolasi adalah Pilihan 19 Pilihan anda, misalkan menjalankan secara serializable, hanya berakibat bagaimana anda melihat suatu database, tetapi tidak bagi orang lain. Contoh: Jika Joe menjalankan transaksi secara serializable, tetapi Sally tidak. Maka Sally mungkin melihat tidak ada harga pada Bar milik Joe. Terlihat oleh Sally seperti kalau dia menjalankan transaksinya ditengahtengah transaksi milik Joe.

Transaksi Read-Committed 20 Jika Sally menjalankan dengan level isolasi READ COMMITTED, kemudian dia dapat melihat hanya data-data yang sudah di commit saja, tetapi bisa jadi datanya akan berubah pada waktu yang berbeda. Contoh: dibawah READ COMMITTED, interleaving (max)(del)(ins)(min) adalah dimungkinkan, selama Joe melakukan commit. Sally akan melihat MAX < MIN

Transaksi Repeatable-Read 21 Kebutuhannya adalah seperti read-committed, ditambah: jika data dibaca lagi, maka segala sesuatu yang terlihat pertama kali akan juga terlihat pada yang kedua kali. Tetapi yang kedua dan pembacaan berikutnya mungkin akan melihat lebih banyak tuple.

Contoh: Repeatable Read 22 Misalkan Sally menjalankan transaksi dengan REPEATABLE- READ, dan urutan eksekusinya adalah (max)(del)(ins)(min). (max) melihat nilai 2.50 dan 3.00 (min) dapat melihat 3.50, tetapi harus juga melihat 2.50 dan 3.00, karena mereka terlihat oleh pembacaan sebelumnya oleh (max).

Read Uncommitted 23 Sebuah transaksi yang berjalan dibawah READ UNCOMMITTED dapat melihat data didalam database, bahkan jika data tersebut ditulis oleh transaksi yang belum dicommit (dan mungkin juga tidak akan pernah di-commit). Contoh: Jika Sally menjalankan transaksi dibawah READ UNCOMMITTED, dia dapat melihat harga 3.50 bahkan jika Joe pada akhirnya menggagalkan (abort) transaksinya.

24 Tanya Jawab Terima Kasih