DEV Community

Dhiecoderweb
Dhiecoderweb

Posted on • Originally published at dhiecoderweb.com

Cara Menormalisasi Database (Database Normalization)

Salah satu tantangan terbesar dalam merancang database adalah menghindari anomali data: duplikasi data yang tidak perlu, kesulitan dalam update, dan ketidakkonsistenan. Solusinya adalah Normalisasi Database — proses mengorganisasikan tabel dan kolom sedemikian rupa sehingga dependensi antar data menjadi logis dan efisien. Artikel ini memandu Anda melalui proses normalisasi dari bentuk tidak normal hingga 3NF (Third Normal Form).

Mengapa Normalisasi Penting?

Database yang tidak dinormalisasi rentan terhadap tiga jenis anomali:

  • Anomali Insert: Tidak bisa memasukkan data tertentu tanpa memasukkan data lain yang tidak relevan.
  • Anomali Update: Mengubah satu fakta mengharuskan update di banyak baris, rawan inkonsistensi.
  • Anomali Delete: Menghapus satu record secara tidak sengaja menghilangkan informasi lain.

Tabel Awal (Unnormalized / 0NF)

Bayangkan sebuah tabel pesanan yang menyimpan semua informasi dalam satu tabel:

-- Tabel TIDAK ternormalisasi (contoh masalah)
-- Perhatikan kolom produk yang menyimpan banyak nilai sekaligus
CREATE TABLE pesanan_buruk (
    id_pesanan     INT,
    tanggal        DATE,
    nama_pelanggan VARCHAR(100),
    alamat         VARCHAR(200),
    kota           VARCHAR(50),
    produk_dibeli  VARCHAR(500),  -- "Laptop,Mouse,Keyboard" -- nilai ganda!
    harga_produk   VARCHAR(200),  -- "9500000,350000,750000" -- nilai ganda!
    total_bayar    DECIMAL(10,2)
);
Enter fullscreen mode Exit fullscreen mode

Tabel di atas memiliki banyak masalah: kolom produk_dibeli dan harga_produk berisi beberapa nilai sekaligus, data pelanggan diulang di setiap pesanan, dan tidak ada Primary Key yang jelas.


Artikel ini ditampilkan sebagian. Untuk pembahasan selengkapnya, beserta contoh dan langkah detailnya, Anda dapat membacanya pada sumber aslinya:

Cara Menormalisasi Database (Database Normalization)

Tutorial pemrograman dan tools developer lainnya juga tersedia di dhiecoderweb.com.

Top comments (0)