Skip to content

M06 · Bab 6± 55 menitDraf AI

Desain Database & Transaksi

Tujuan belajar

  • Memodelkan entity dan relasi 1-N serta N-M dengan tabel penghubung
  • Menerapkan normalisasi 1NF–3NF dan tahu kapan denormalisasi disengaja
  • Memilih primary key (bigint identity vs uuid) dan menjaga data dengan foreign key, NOT NULL, UNIQUE, CHECK
  • Memakai transaksi (BEGIN/COMMIT/ROLLBACK) dan menjelaskan ACID
  • Mengenali anomali konkurensi (dirty read, non-repeatable read, phantom read, lost update) dan isolation level yang mencegahnya

Prasyarat: SQL Dasar dengan PostgreSQL

Kuis

5 soal · lulus bila minimal 70% benar

1.Di psql kamu menjalankan BEGIN;, lalu INSERT order (sukses), lalu UPDATE product SET stock = stock - 5 ... yang melanggar CHECK (stock >= 0), lalu COMMIT;. Apa yang terjadi?
2.Dua request checkout berjalan bersamaan. Keduanya membaca stock = 2, menghitung 2 - 1 di Java, lalu menjalankan UPDATE product SET stock = 1 WHERE id = 2. Hasil akhirnya stock = 1 padahal dua barang terjual. Perbaikan paling sederhana?
3.Tabel orders punya kolom customer_id, customer_name, dan customer_email. Saat Budi mengganti email, sebagian order lama masih menampilkan email lamanya. Masalah desain apa ini?
4.Satu produk bisa masuk banyak kategori, dan satu kategori berisi banyak produk. Cara memodelkannya yang benar?
5.Dalam satu transaksi READ COMMITTED, SELECT stock FROM product WHERE id = 2 menghasilkan 2, lalu query yang sama beberapa detik kemudian menghasilkan 50 karena transaksi lain sudah commit. Anomali apa ini, dan level mana yang mencegahnya?

Jawab semua soal dulu (0/5)