Lompat ke konten

Pertemuan 13: Bentuk Normal 2 ​

Fase 4 · Normalisasi±100 menitSumber: slide 122-124

Tujuan pembelajaran ​

Setelah pertemuan ini, Anda mampu:

  • menyebutkan aturan 2NF;
  • menemukan data yang berulang pada tabel 1NF;
  • memecah tabel menjadi beberapa tabel yang terhubung foreign key.

Peta materi ​

1. Aturan Bentuk Normal Kedua (2NF) ​

2NF

  1. Tabel sudah dalam bentuk 1NF.
  2. Buat tabel terpisah untuk nilai yang muncul berulang pada beberapa baris.
  3. Tambahkan primary key pada setiap tabel.
  4. Hubungkan tabel dengan foreign key.

2. Mulai dari tabel 1NF ​

Ingat hasil dari Pertemuan 12:

kode_ordertanggalpembelialamat_pengirimanpenjualskunama_produkhargajumlahberat
O0012024-01-10JokoJl. Mawar 1Galeri OlahragaBRG001Sepatu Lari3500001800
O0012024-01-10JokoJl. Mawar 1Galeri OlahragaBRG002Kaos900002200
O0022024-01-12SariJl. Melati 5Galeri OlahragaBRG001Sepatu Lari3500001800

Dua jenis pengulangan muncul:

  • Data produk (nama, harga, berat) tertulis ulang setiap kali produk dipesan. "Sepatu Lari" muncul dua kali.
  • Data order, pembeli, dan penjual tertulis ulang pada setiap baris produk di order yang sama. "Joko" dan "Galeri Olahraga" muncul berulang.

3. Memecah tabel ​

Pisahkan setiap kelompok data yang berulang menjadi tabel sendiri.

Tabel produk ​

sku PKnama_produkhargaberat
BRG001Sepatu Lari350000800
BRG002Kaos90000200

Tabel order ​

kode_order PKtanggalpembelialamat_pengirimanpenjual
O0012024-01-10JokoJl. Mawar 1Galeri Olahraga
O0022024-01-12SariJl. Melati 5Galeri Olahraga

Tabel detail_order (tabel relasi) ​

kode_order FKsku FKjumlah
O001BRG0011
O001BRG0022
O002BRG0011

Primary key detail_order adalah gabungan (kode_order, sku). Tabel ini adalah implementasi hubungan many to many antara order dan produk, persis seperti yang Anda pelajari di Pertemuan 7.

4. Apa yang kita peroleh? ​

SebelumSesudah
"Sepatu Lari" ditulis di setiap baris yang memesannyaDitulis sekali di tabel produk
Harga naik: harus ubah semua baris orderCukup ubah satu baris di produk
Data order ditulis ulang untuk setiap produkData order ditulis sekali per order

Tabel order belum sempurna

Perhatikan kolom pembeli, alamat_pengiriman, dan penjual. Joko dan Galeri Olahraga masih bisa berulang pada order-order lain. Ini yang diselesaikan oleh 3NF.

Catatan pendalaman untuk dosen

Dalam definisi formal, 2NF berarti tidak ada atribut non-key yang bergantung pada sebagian dari composite key. Pada contoh ini nama_produk hanya bergantung pada sku (sebagian dari key gabungan kode_order + sku), dan tanggal hanya bergantung pada kode_order. Cara "pecah nilai yang berulang" yang dipakai di materi ini adalah versi praktis dari aturan formal itu dan menghasilkan tabel yang sama.

Latihan ​

Lanjutkan tabel Nota Kantin dari Pertemuan 12. Pecah menjadi tabel menu, nota, dan detail_nota. Tentukan primary key dan foreign key setiap tabel, lalu gambar ERD-nya.

Contoh jawaban
  • menu (kode_menu PK, nama_menu, harga)
  • nota (no_nota PK, tanggal, kasir)
  • detail_nota (no_nota FK, kode_menu FK, jumlah). Primary key: gabungan no_nota dan kode_menu.

Kolom harga pindah ke menu karena hanya bergantung pada menu.

Kuis cepat ​

1. Syarat pertama agar sebuah tabel masuk 2NF adalah...

2. Pada tabel 1NF kita, data yang berulang paling jelas adalah...

3. Tabel yang menghubungkan order dengan produk (many to many) pada hasil 2NF adalah...

4. Manfaat utama memecah tabel pada 2NF adalah...

Terjawab 0 dari 4 soal

Rangkuman ​

Yang harus diingat

  • 2NF = sudah 1NF + data berulang dipisah ke tabel sendiri + primary key + foreign key.
  • Hasilnya: produk, order, dan tabel relasi detail_order.
  • Manfaat: setiap fakta tersimpan sekali, perubahan cukup di satu tempat.

Tugas mandiri ​

Normalisasikan tabel 1NF dari tugas Pertemuan 12 yang Anda buat sendiri hingga 2NF. Sertakan tabel sebelum dan sesudah, serta ERD hasil akhir.

Progres tersimpan di browser Anda dan tampil di halaman beranda.

Ruang Belajar · Materi kuliah dan pelatihan teknologi