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 12 dari 20

Normalisasi

Bentuk normal Boyce-Codd (BCNF)

Setelah pelajaran ini kamu bisa mengenali determinan yang bukan kunci kandidat pada tabel 3NF, menguji aturannya pada data, dan memecah tabel menjadi BCNF.

±14 menitDiperiksa 28 Sep 2026

Materi

Tabel yang sudah 3NF masih bisa menyimpan anomali bila punya lebih dari satu kunci kandidat yang saling beririsan. Buku terbuka Database Design karya Adrienne Watt (BCcampus, CC BY) menyebut bentuk normal Boyce-Codd (BCNF) sebagai kasus khusus 3NF dan merumuskannya singkat: sebuah tabel memenuhi BCNF jika, dan hanya jika, setiap determinan adalah kunci kandidat. Determinan adalah sisi kiri dependensi fungsional, yaitu A pada A → B. OpenStax Introduction to Computer Science hanya menyebut BCNF sebagai versi 3NF yang lebih tinggi untuk mengatasi anomali, tanpa rumusan lebih lanjut.

Contoh di klinik fisioterapi: tabel terapi(pasien, layanan, terapis) dengan dua aturan bisnis. Setiap pasien punya satu terapis untuk setiap layanan, dan setiap terapis hanya menangani satu layanan. Dependensinya (pasien, layanan) → terapis dan terapis → layanan, sehingga kunci kandidatnya (pasien, layanan) dan (pasien, terapis). Tabel ini lolos 3NF, karena layanan adalah bagian dari kunci kandidat, bukan kolom bukan kunci. Namun determinan terapis bukan kunci kandidat, jadi BCNF dilanggar. Anomalinya sama dengan modul 1: layanan seorang terapis tersimpan di setiap baris pasiennya, terapis baru tidak bisa dicatat sebelum punya pasien, dan menghapus pasien terakhir menghapus layanan terapisnya.

Sebelum: terapiSesudah: pasien_terapis + terapis_layanan
pasienlayananterapispasien, terapisterapis, layanan
RinaPunggungDewaRina, DewaDewa, Punggung
JoniPunggungDewaJoni, DewaLusi, Lutut
RinaLututLusiRina, Lusi

Pemecahannya mengikuti pola Watt: dependensi yang bermasalah dipindah ke tabelnya sendiri, terapis_layanan(terapis, layanan) berkunci terapis, dan sisanya menjadi pasien_terapis(pasien, terapis). Setiap determinan kini menjadi kunci di tabelnya, dan layanan pasien tetap bisa disusun ulang dengan JOIN lewat terapis. Watt mencatat BCNF jarang dipakai, dan Microsoft menyatakan tiga bentuk normal pertama cukup untuk sebagian besar rancangan. Bentuk keempat (4NF), yang membahas dependensi bernilai banyak, hanya disebut namanya di kelas ini.

Latihan

0/3 lulus

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

Latihan 2 dari 3

Di tabel bimbingan berlaku (peserta_id, bidang) → mentor dan mentor → bidang. Mengapa tabel itu memenuhi 3NF tetapi tidak memenuhi BCNF?

Pilih satu jawaban

Latihan 3 dari 3

Pemecahan mana yang membuat data bimbingan memenuhi BCNF tanpa kehilangan siapa membimbing siapa?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke