ID (Indonesia) Translation

MySQL - Transaksi: Panduan untuk Pemula

Hai teman-teman, para ahli basis data masa depan! Hari ini, kita akan memulai perjalanan menarik ke dunia transaksi MySQL. Jangan khawatir jika Anda baru belajar pemrograman – saya akan menjadi panduan ramah Anda, memecah konsep yang kompleks menjadi bagian kecil dan mudah dipahami. Jadi, ambil secangkir minuman kesukaan Anda, dan mari kita masuk ke dalam!

MySQL - Transactions

Transaksi MySQL

Bayangkan Anda berada di bank, membuat transfer dari rekening tabungan Anda ke rekening giro. Anda tentu tidak mau uang menghilang dari tabungan Anda tanpa muncul di giro, kan? Itu adalah tempat transaksi berguna!

Dalam MySQL, transaksi adalah rangkaian operasi yang diperlakukan sebagai satu unit kerja. Itu seperti gelembung pelindung di sekitar rangkaian operasi basis data, memastikan bahwa mereka semua sukses atau gagal bersamaan.

mari lihat contoh sederhana:

START TRANSACTION;
UPDATE savings_account SET balance = balance - 100 WHERE account_id = 123;
UPDATE checking_account SET balance = balance + 100 WHERE account_id = 456;
COMMIT;

Dalam transaksi ini, kita memindahkan $100 dari rekening tabungan ke rekening giro. Perintah START TRANSACTION memulai transaksi kita, dan perintah COMMIT di akhir membuat perubahan permanen.

Properti Transaksi

Transaksi di MySQL mengikuti properti ACID. Tidak, bukan jenis asam yang Anda temukan di laboratorium! ACID berarti:

  1. Atomicity: Semua operasi dalam transaksi sukses atau mereka semua gagal.
  2. Consistency: Basis data tetap dalam keadaan konsisten sebelum dan setelah transaksi.
  3. Isolation: Transaksi terisolasi dari yang lain sampai mereka selesai.
  4. Durability: Setelah transaksi dikommit, itu tetap begitu meskipun terjadi kegagalan sistem.

Pikirkan ACID sebagai malaikat penjaga operasi basis data Anda, memastikan bahwa segalanya tetap rapi dan teratur!

Statement Transaksi di MySQL

MySQL menyediakan beberapa statement untuk mengelola transaksi. Mari kita lihat mereka dalam tabel praktis:

Statement Deskripsi
START TRANSACTION Memulai transaksi baru
COMMIT Menyimpan perubahan secara permanen ke basis data
ROLLBACK Membatalkan perubahan yang dibuat dalam transaksi saat ini
SET autocommit Mengaktifkan atau menonaktifkan mode autocommit
SAVEPOINT Membuat titik simpan dalam transaksi ke mana Anda dapat kembali rollback

Sekarang, mari kita jelajahi setiap satu dari ini secara detil.

Perintah COMMIT

Perintah COMMIT adalah seperti tombol "simpan" untuk transaksi Anda. Setelah Anda komit, semua perubahan yang Anda buat menjadi permanen.

START TRANSACTION;
INSERT INTO students (name, age) VALUES ('Alice', 20);
INSERT INTO students (name, age) VALUES ('Bob', 22);
COMMIT;

Setelah COMMIT ini, Alice dan Bob secara resmi menjadi bagian dari tabel students. Selamat datang, Alice dan Bob!

Perintah AUTOCOMMIT

Secara default, MySQL beroperasi dalam mode autocommit, yang berarti setiap pernyataan dianggap sebagai transaksi terpisah. Anda dapat mematikannya seperti ini:

SET autocommit = 0;

Sekarang, Anda harus secara manual mengkomitkan perubahan Anda. Itu seperti mematikan auto-save dalam permainan video – pastikan Anda selalu menyimpan (commit) secara regular!

Perintah ROLLBACK

ROLLBACK adalah tombol "undo" Anda. Jika sesuatu salah dalam transaksi Anda, Anda dapat menggunakan ROLLBACK untuk mengembalikan semua perubahan.

START TRANSACTION;
DELETE FROM students WHERE name = 'Alice';
-- Ups! Kami tidak bermaksud menghapus Alice!
ROLLBACK;

Aduh! Alice tetap aman di basis data kami. Ingat, ROLLBACK hanya bekerja untuk perubahan yang belum dikommit.

Perintah SAVEPOINT

SAVEPOINT memungkinkan Anda membuat titik simpan dalam transaksi. Anda kemudian dapat kembali ke titik ini jika diperlukan.

START TRANSACTION;
INSERT INTO students (name, age) VALUES ('Charlie', 21);
SAVEPOINT charlie_added;
INSERT INTO students (name, age) VALUES ('David', 23);
-- Ups! Kami hanya ingin menambah Charlie
ROLLBACK TO SAVEPOINT charlie_added;
COMMIT;

Dalam scenario ini, Charlie bergabung kelas, tetapi David tidak lolos. Sayang, David!

Tipe Tabel yang Aman untuk Transaksi di MySQL

Tidak semua tipe tabel di MySQL mendukung transaksi. Mesin penyimpanan utama yang mendukung transaksi adalah:

  1. InnoDB
  2. NDB Cluster

InnoDB adalah yang paling banyak digunakan dan default di versi MySQL terbaru. Itu seperti pisau瑞士 Army knife dari mesin penyimpanan MySQL – multifungsi dan dapat dipercaya!

Transaksi Menggunakan Program Klien

Ketika menggunakan program klien MySQL seperti klien perintah baris, Anda dapat menggunakan sama seperti perintah transaksi yang kita diskusikan. Mari kita lihat cerita kecil untuk mengilustrasikan:

mysql> START TRANSACTION;
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO pet_shop (pet_name, species) VALUES ('Fluffy', 'cat');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO pet_shop (pet_name, species) VALUES ('Rover', 'dog');
Query OK, 1 row affected (0.01 sec)

mysql> COMMIT;
Query OK, 0 rows affected (0.02 sec)

Dan begitu saja, Fluffy kucing dan Rover anjing telah menemukan rumah baru dalam basis data toko hewan peliharaan kami!

Ingat, transaksi adalah teman Anda dalam menjaga integritas data. Mereka memastikan bahwa operasi basis data Anda dapat dipercaya, bahkan ketika hal-hal tidak berjalan sesuai rencana. Latih menggunakan transaksi dalam operasi MySQL Anda, dan Anda akan menjadi maestro basis data dalam waktu singkat!

Itu saja untuk pelajaran hari ini tentang transaksi MySQL. Saya harap Anda menikmati perjalanan ini seperti saya. Tetap latih, tetap curiga, dan selamat coding!

Credits: Image by storyset