Lompat ke konten

Pertemuan 14: Bentuk Normal 3 ​

Fase 4 · Normalisasi±100 menitSumber: slide 125-129

Tujuan pembelajaran ​

Setelah pertemuan ini, Anda mampu:

  • menjelaskan ketergantungan fungsional (A → B);
  • mengenali kolom yang tidak bergantung pada key;
  • membawa tabel 2NF ke 3NF.

Peta materi ​

1. Ketergantungan fungsional ​

Jika nilai atribut A menentukan nilai atribut B secara pasti, kita katakan B bergantung pada A, ditulis A → B.

ContohBenar?Alasan
nim → namaYaSatu NIM pasti satu nama
sku → nama_produk, hargaYaSatu SKU pasti satu produk
nama → nimTidakDua mahasiswa bisa bernama sama

Biasanya A adalah attribute key dan B adalah atribut non-key. Pada 3NF kita memeriksa: apakah setiap atribut non-key benar-benar bergantung pada key tabelnya?

2. Aturan Bentuk Normal Ketiga (3NF) ​

3NF

  1. Tabel sudah dalam bentuk 2NF.
  2. Pindahkan kolom yang tidak bergantung pada key ke tabel lain.

Alasannya: jika kolom tersebut berubah, kita takut harus mengubah banyak baris.

3. Menemukan masalahnya pada tabel order ​

Dari Pertemuan 13, tabel order kita:

kode_order PKtanggalpembelialamat_pengirimanpenjual
O0012024-01-10JokoJl. Mawar 1Galeri Olahraga
O0022024-01-12JokoJl. Mawar 1Galeri Olahraga
O0032024-01-15JokoJl. Mawar 1Toko Botol

Hanya tanggal yang benar-benar ditentukan oleh kode_order. Kolom pembeli, alamat, dan penjual adalah data milik pembeli, alamat, dan penjual, bukan milik order itu.

Apa risikonya? ​

Joko pindah rumah. Alamat lama tertulis di tiga baris (dan bisa ratusan pada toko sungguhan).

  • Jika semua diubah: pekerjaan berat.
  • Jika ada yang terlewat: Joko punya dua alamat berbeda di data. Data tidak konsisten. Masalah ini disebut update anomaly.

4. Memindahkan ke tabel sendiri ​

Kolom yang tidak bergantung pada keyPindah ke tabel
Pembelipembeli
Alamat pengirimanalamat
Penjualpenjual

Hasil 3NF untuk kasus laporan order:

Enam tabel: pembeli, alamat, penjual, produk, order, detail_order. Sekarang setiap kolom non-key hanya bergantung pada key tabelnya. Joko pindah rumah? Ubah satu baris di tabel alamat.

Diagram lengkap versi PlantUML

Materi asli menyertakan tautan PlantUML dan diagram ERD final di slide 129. Bandingkan dengan diagram di atas.

Catatan pendalaman untuk dosen

Secara formal, 3NF melarang ketergantungan transitif, yaitu key → kolom X → kolom Y, di mana Y bergantung pada X dan bukan langsung pada key. Pada contoh ini, kolom alamat bergantung pada pembeli, bukan pada kode_order.

Latihan ​

  1. Tentukan ketergantungan fungsional pada tabel mahasiswa (nim, nama, kode_prodi, nama_prodi). Mengapa nama_prodi perlu dipindah?
  2. Normalisasi tabel pesanan (kode_pesanan, kode_pelanggan, nama_pelanggan, kota_pelanggan, tanggal) sampai 3NF.
  3. Tulis satu contoh update anomaly dari kasus yang Anda pilih sendiri.
Contoh jawaban
  1. nim → nama, kode_prodi; kode_prodi → nama_prodi. nama_prodi bergantung pada kode_prodi, bukan langsung pada nim. Jika nama prodi berganti, kita harus mengubah semua baris mahasiswa prodi itu. Pindahkan ke tabel prodi (kode_prodi PK, nama_prodi).
  2. pelanggan (kode_pelanggan PK, nama_pelanggan, kota_pelanggan) dan pesanan (kode_pesanan PK, kode_pelanggan FK, tanggal).
  3. Contoh: nama dosen pembimbing tertulis di 40 baris mahasiswa. Dosen berganti nama, hanya 38 baris yang diubah. Dua baris sisanya memakai nama lama.

Kuis cepat ​

1. Jika nim menentukan nama secara pasti, ditulis...

2. Aturan inti 3NF adalah...

3. Mengapa pembeli, penjual, dan alamat sebaiknya dipisah dari tabel order?

4. Masalah ketika data yang sama tersebar di banyak baris lalu hanya sebagian yang diubah disebut...

Terjawab 0 dari 4 soal

Rangkuman ​

Yang harus diingat

  • A → B: nilai A menentukan nilai B.
  • 3NF: setiap kolom non-key harus bergantung pada key tabelnya; yang tidak, dipindah ke tabel lain.
  • Tujuannya: perubahan data cukup dilakukan di satu tempat.
  • Praktiknya, 3NF sudah cukup baik untuk kebanyakan sistem.
IstilahArti
Ketergantungan fungsionalA menentukan B secara pasti (A → B)
Update anomalyData tidak konsisten karena perubahan tidak merata
3NFBentuk normal ketiga

Tugas mandiri ​

Ambil nota atau formulir dari tugas Pertemuan 12-13. Normalisasikan sampai 3NF, tuliskan ketergantungan fungsionalnya, dan gambar ERD akhirnya. Tulis satu update anomaly yang terhindar berkat 3NF.

Progres tersimpan di browser Anda dan tampil di halaman beranda.

Ruang Belajar · Materi kuliah dan pelatihan teknologi