Skema yang buruk akan menghantui aplikasi bertahun-tahun. Section ini membahas perancangan relational database dari pemetaan entitas dunia nyata sampai normalisasi bertingkat, disertai contoh tabel tidak normal yang diperbaiki langkah demi langkah.
Mengubah kebutuhan dunia nyata menjadi struktur tabel MySQL: mengenali entitas dari deskripsi masalah, menurunkan atribut menjadi kolom, memilih tipe data, dan membedakan entitas kuat dari entitas lemah.
Buka → # Relasi One-to-OneMemecah satu entitas menjadi dua tabel berelasi satu-ke-satu: alasan pemisahan, pola primary key yang sekaligus foreign key, alternatif foreign key UNIQUE, serta praktik CREATE, INSERT, dan JOIN.
Buka → # Relasi One-to-ManyMembangun relasi satu-ke-banyak antara pelanggan dan pesanan: foreign key selalu ditempatkan di tabel anak, anti-pattern kolom pesanan1/pesanan2 dibedah lalu diperbaiki, plus JOIN, LEFT JOIN, dan agregasi.
Buka → # Relasi Many-to-ManyMengenali relasi banyak-ke-banyak seperti mahasiswa dan kursus, membuktikan mengapa satu foreign key tidak pernah cukup, lalu memetakan solusi tabel perantara sebagai dua relasi satu-ke-banyak.
Buka → # Junction TableImplementasi penuh relasi banyak-ke-banyak lewat tabel enrollment: composite primary key, dua foreign key, atribut milik relasi seperti nilai dan tanggal daftar, penolakan pasangan ganda, dan query join tiga tabel.
Buka → # Normalisasi DatabaseTujuan normalisasi lewat demonstrasi anomali insert, update, dan delete pada tabel buruk, pengantar ringan functional dependency, trade-offnya, serta peta jalan 1NF, 2NF, dan 3NF.
Buka → # First Normal FormBedah pelanggaran 1NF: kolom yang memuat daftar produk terpisah koma dan kelompok kolom telepon_1/telepon_2/telepon_3, diperbaiki menjadi baris terpisah pada tabel anak, beserta alasan kenapa atomicity menentukan kemampuan query.
Buka → # Second Normal FormBedah 2NF: ketergantungan parsial pada composite primary key ditunjukkan lewat tabel enrollment yang menyimpan nama mahasiswa dobel, anomali update dua baris, lalu perbaikan sebelum/sesudah menjadi tiga tabel bersih.
Buka → # Third Normal FormBedah 3NF: ketergantungan transitif ditunjukkan lewat kolom kota yang mengikuti kode pos, anomali konsistensi pada dua baris berkode pos sama, dan perbaikan pemisahan tabel wilayah sebelum/sesudah.
Buka → # DenormalisasiMelanggar normalisasi dengan sengaja untuk kecepatan baca: kolom cache jumlah_pesanan dan total_belanja di tabel pelanggan, pola UPDATE manual, risiko data basi yang dibuktikan nyata, serta aturan main denormalisasi terukur.
Buka → # Merancang Skema DatabaseStudi kasus sintesis utuh: merancang skema aplikasi manajemen tugas dari paragraf kebutuhan menjadi entitas, relasi, CREATE TABLE lengkap dengan foreign key dan constraint, data contoh, query verifikasi, checklist perancangan, dan review desain.
Buka →