
Setelah kita berhasil memetakan "arsitektur" data melalui ERD dan menentukan "kunci-kunci" pengaman pada bab sebelumnya, sekarang kita akan masuk ke tahap penyempurnaan yang disebut Normalisasi.
Normalisasi adalah teknik pengorganisasian data ke dalam tabel-tabel untuk meminimalkan redundansi (pengulangan data yang tidak perlu). Tujuan utamanya adalah memastikan bahwa setiap keping informasi hanya disimpan di satu tempat yang tepat. Data yang terpecah-pecah atau tidak sinkron dapat menyebabkan kesalahan diagnosis hingga kesalahan pemberian terapi kepada pasien.

Sebuah desain basis data yang buruk biasanya ditandai dengan tabel yang "terlalu gemuk", di mana terlalu banyak informasi dipaksakan masuk ke dalam satu tabel besar. Desain seperti ini akan memicu munculnya Anomali Data, yaitu keanehan atau kesalahan yang terjadi saat kita melakukan manipulasi data. Mari kita ambil contoh jika data mahasiswa, data mata kuliah, dan nilai digabungkan dalam satu tabel raksasa tanpa aturan:
Anomali ini terjadi ketika kita tidak bisa memasukkan sebuah data karena ada data lain yang belum tersedia.
nim agar data mata kuliah bisa disimpan.Kondisi ini terjadi ketika kita menghapus sebuah baris data, namun secara tidak sengaja kita juga kehilangan informasi penting lainnya yang seharusnya tetap ada.
Anomali ini muncul saat kita ingin mengubah (update) suatu data, namun data tersebut tersimpan di banyak tempat (duplikasi).
Secara sederhana, Ketergantungan Fungsional (FD) adalah kondisi di mana nilai suatu atribut ditentukan secara penuh oleh atribut lainnya. Kita menggunakan notasi panah (A → B) yang dibaca sebagai "A secara fungsional menentukan B", atau "B bergantung secara fungsional kepada A".
Bayangkan atribut NIM (Nomor Induk Mahasiswa). Jika saya menyebutkan NIM 100001, maka sistem secara otomatis akan menunjuk pada satu nama saja, yaitu Ali Akbar. Tidak mungkin NIM yang sama merujuk pada dua orang berbeda.