Apa itu Normalisasi?
Normalisasi adalah proses mengorganisasi data dalam database untuk mengurangi redundansi dan meningkatkan integritas data. Setiap "normal form" adalah level aturan yang semakin ketat.
First Normal Form (1NF)
Aturan 1NF:
- Setiap kolom hanya menyimpan satu nilai (atomic)
- Tidak ada kolom yang menyimpan daftar/array
- Setiap baris harus unik (ada primary key)
Contoh Melanggar 1NF
-- ❌ Melanggar 1NF: kolom phones menyimpan banyak nilai
| id | name | phones |
|----|-------|---------------------------|
| 1 | Budi | 08123, 08456, 08789 |
| 2 | Siti | 08111 |
Solusi: Memenuhi 1NF
-- ✅ Memenuhi 1NF: satu nilai per kolom
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL
);
CREATE TABLE phones (
id SERIAL PRIMARY KEY,
user_id INT REFERENCES users(id),
phone VARCHAR(20) NOT NULL
);
-- Data:
-- users: (1, "Budi"), (2, "Siti")
-- phones: (1, 1, "08123"), (2, 1, "08456"), (3, 1, "08789"), (4, 2, "08111")
Cara Cek 1NF
Lihat setiap kolom di tabel. Jika ada kolom yang berisi comma-separated values, JSON array, atau data berulang, tabel tersebut melanggar 1NF.