Lompat ke konten utama

Kompetisi Ajak Teman: hadiah total Rp1.000.000 tunai untuk 3 pengajak terbanyak. Berakhir 29 November 2026. Ikut kompetisi

←

Desain Basis Data

Pelajaran 11 dari 20

Normalisasi

Bentuk normal kedua dan ketiga

Setelah pelajaran ini kamu bisa mengenali dependensi parsial (2NF) dan transitif (3NF), memecah tabelnya, dan membuktikan pemecahan dengan JOIN.

±13 menitDiperiksa 28 Sep 2026

Materi

Bentuk normal kedua menuntut setiap kolom bukan kunci bergantung pada seluruh kunci primer, bukan hanya sebagiannya. Microsoft mencatat aturan ini hanya relevan bila kunci primernya komposit. Contohnya tabel dengan kunci (id_pesanan, id_produk) yang juga menyimpan nama produk: nama produk hanya bergantung pada id_produk, jadi tabelnya melanggar 2NF dan nama produk dipindah ke tabel produk. Dalam istilah OpenStax Introduction to Computer Science, tabel 2NF tidak punya dependensi parsial.

Bentuk normal ketiga menambahkan syarat bahwa kolom bukan kunci tidak saling bergantung; setiap kolom bergantung pada kunci dan tidak pada yang lain. OpenStax menyebutnya tanpa dependensi fungsional transitif. Ujian dari Microsoft: kolom bukan kunci mana pun bisa diubah tanpa memengaruhi kolom lain. Pelanggarannya dipecah dengan cara yang sama, yaitu memindahkan kolom yang bergantung ke tabel yang kuncinya adalah penentunya.

TabelKunciMasalahPemecahan
pinjam(no_anggota, isbn, tgl, judul)(no_anggota, isbn)judul hanya bergantung pada isbn: melanggar 2NFjudul pindah ke buku(isbn, judul)
buku(isbn, judul, penerbit, kota_penerbit)isbnkota_penerbit bergantung pada penerbit: melanggar 3NFpenerbit(id, nama, kota); buku menyimpan penerbit_id

Pemecahan yang benar tidak kehilangan informasi: tabel aslinya bisa disusun ulang dengan JOIN kapan saja. Karena itu setiap pemecahan dibuktikan dengan kueri penyusun ulang. Bila rujukannya boleh kosong, pakai LEFT JOIN supaya baris tanpa pasangan tidak hilang dari hasil.

SELECT b.isbn, b.judul, pn.nama, pn.kota
FROM buku b
LEFT JOIN penerbit pn ON pn.id = b.penerbit_id;

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 1 dari 3

Tabel nilai(email, kode_kelas, nilai, nama_kelas) berkunci primer (email, kode_kelas). Bentuk normal mana yang dilanggar?

Pilih satu jawaban

Latihan 2 dari 3

Tabel kelas_lama(kode, nama, pengajar, hp_pengajar) berkunci kode melanggar 3NF. Pemecahan mana yang benar?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke