1 / 11

Transaksi Materi 6

Transaksi Materi 6. Eko Prasetyo Teknik Informatika Universitas Bhayangkara Surabaya 2012. Sistem Manajemen Basis Data. Transaksi. Sebuah database dapat diakses oleh beberapa user dalam satu waktu . Hal ini berarti , dapat saja ada beberapa statement yang dijalankan .

boris
Download Presentation

Transaksi Materi 6

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TransaksiMateri 6 Eko Prasetyo TeknikInformatika UniversitasBhayangkara Surabaya 2012 SistemManajemen Basis Data

  2. Transaksi • Sebuah database dapatdiaksesolehbeberapa user dalamsatuwaktu. • Hal iniberarti, dapatsajaadabeberapa statement yang dijalankan. • Jikaoperasi data tersebutterjadipadasatutabel, atausatubaris data, makasangatberpotensimenghasilkan data yang tidakkonsisten. • Karenaitu, diperlukanisolasikoneksidariberbagai user yang melakukanoperasi database. • Isolasiinidimaksudkan agar hanyasatuoperasidari user tertentusaja yang dieksekusitiapwaktu. • Isolasidapatdiatursewaktuterjaditransaksi data. • Terminologitransaksidisinidiartikansebagaisebuah set sql statement yang melakukanoperasitertentu. • Dalamsatutransaksibisaterdiridaribeberapa statement. • Jikadalameksekusinyasalahsatudari statement tersebutmengalamikegagalan, makasebuahtraksaksijugaakangagaldansegalaperubahan yang telahdilakukandapatdikembalikan.

  3. Hal-halpentingterkaittransaksi • Atomic • Statement-statement yang digunakanpadatransaksidianggapsebagaisebuahsatu unit. • Consistent • Jikatransaksigagal database harustetapdalamkeadaan yang konsisten, sepertisebelumdiadakantransaksi. • Isolated • Sebuahtransaksiharusterisolasidaritransaksi yang lain. • Durable • Perubahan yang terjadisetelahtransaksiharuspermanen.

  4. Transaksi • Dalamtransaksi, kitadapatmenyertakanbeberapasql statement. • Dari rangkaian statement tersebutdapatdibuatsebuahsavepoint • Savepoint • Acuanuntukdapatmengembalikankondisi database padakeadaandimanasavepointberada. • Keyword statement transaksi • START TRANSACTION • Menginstruksikanmysqlbahwaakandilakukansebuahtransaksi. • COMMIT • Menyimpanperubahanpada database. • ROLLBACK • Tidakmenyimpanperubahan (mengembalikankondisiawal database).

  5. Transaksi • Secara default MySQLmempunyaivariabelsesiyaituautocommit yang bernilai 1 (default) • Artinyasetiapperintah query (baikDDLmaupunDML) dianggapsebagai statement query lengkapdansegeradisimpan. • Nilaivariabelinibisadiubahmenjadi 0 denganperintah SET AUTOCOMMIT = 0; jikainginmengaturstatusnyasecara manual. • Ketikamenggunakan statement START TRANSACTION, MySQLmengubahnilaiautocommit = 0, setelahmemanggil COMMIT, makanilainyadi-set kembalimenjadi 1. • Beberapaperintah SQL yang tidakdapatdi rollback olehtransaksi: • ALTER TABLE • CREATE INDEX • DROP DATABASE • DROP INDEX • DROP TABLE • LOCK TABLES • RENAME TABLES • SET AUTOCOMMIT=1 • START TRANSACTION • TRUNCATE TABLE • UNLOCK TABLES

  6. Tabel-tabel yang digunakan lecturer enrolled students faculty grade_scale course

  7. Contoh • Akandilakukan entry KRS (penambahanpadaisitabel enrolled) sebanyak 4 matakuliahuntukmahasiswa ‘12043094’ • Mata kuliah yang ditambahkan: ‘43210’, ‘43211’, ‘43212’ • Perintah query yang diberikanada 3: • insert into enrolled (sid, cid) values (‘12043094’,’43210’); • insert into enrolled (sid, cid) values (‘12043094’,’43211’); • insert into enrolled (sid, cid) values (‘12043094’,’43212’); • Ketiganyaharussuksesdijalankanataudigagalkansemuanya. • START TRANSACTION; • insert into enrolled (sid, cid) values (‘12043094’,’43210’); • insert into enrolled (sid, cid) values (‘12043094’,’43211’); • insert into enrolled (sid, cid) values (‘12043094’,’43212’); • COMMIT ;

  8. Contoh • Jikadipanggil ROLLBACK, makaketiga record tidakakandisimpandalam data base. • START TRANSACTION; • insert into enrolled (sid, cid) values (‘12043094’,’43210’); • insert into enrolled (sid, cid) values (‘12043094’,’43211’); • insert into enrolled (sid, cid) values (‘12043094’,’43212’); • ROLLBACK;

  9. Savepoint • Savepointmemungkinkankitakembalipadasuatukondisitertentupadatransaksi. • Sehinggajikakitakembalikankondisi data padasuatusavepointsegalaperubahan yang dilakukansetelahsavepointdapatdicommit, namunperubahansetelahsavepointtidakakantersimpan. • Untukkeperluanini, kitaharusmendefinisikansavepointdanmenggunakan keyword ROLLBACK TO SAVEPOINTuntukkembalipadasavepointtertentu. • Untukmembuatsebuahsavepoint: • SAVEPOINT<savepoint_name> • Kembalipadasavepointtertentu: • ROLLBACK TO SAVEPOINT<savepoint_name> • Untuksebuahnamasavepoint yang sudahdibuat, kemudiandalamtransaksi yang samadilakukanpenyimpanandengannama yang sama, makatransaksisebelumsavepointsebelumnyaakandi-commit.

  10. Contoh • ContohpenggunaanSAVEPOINT • START TRANSACTION; • insert into enrolled (sid, cid) values ('12043094','43210'); • insert into enrolled (sid, cid) values ('12043094','43211'); • SAVEPOINTsp1; • insert into enrolled (sid, cid) values ('12043094','43212'); • ROLLBACK TO SAVEPOINT sp1; • update enrolled set grade='D' where sid = '12043094' and cid='43210'; • COMMIT; • Hasilnya, record pertamadankeduasaja yang akandisimpanpermanendalam database.

  11. Any Question ? To Be Continued … Materi 7

More Related