Second Normal Form (2NF) — Database

Second Normal Form (2NF) Syarat 2NF: Sudah memenuhi 1NF Semua kolom non-key bergantung pada seluruh primary key, bukan hanya sebagian (no partial dependency)…

Second Normal Form (2NF)

Syarat 2NF:

Partial Dependency

Terjadi ketika primary key terdiri dari lebih dari satu kolom (composite key), dan ada kolom yang hanya bergantung pada sebagian dari composite key tersebut.

Contoh Melanggar 2NF

-- ❌ Melanggar 2NF
-- PK: (student_id, course_id)
-- student_name hanya bergantung pada student_id, bukan course_id
| student_id | course_id | student_name | grade |
|------------|-----------|--------------|-------|
| 1          | 101       | Budi         | A     |
| 1          | 102       | Budi         | B     |
| 2          | 101       | Siti         | A     |

Solusi: Memenuhi 2NF

-- ✅ Memenuhi 2NF: pisahkan partial dependency
CREATE TABLE students (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100) NOT NULL
);

CREATE TABLE enrollments (
    student_id INT REFERENCES students(id),
    course_id INT REFERENCES courses(id),
    grade CHAR(1),
    PRIMARY KEY (student_id, course_id)
);

Kapan 2NF Relevan?

2NF terutama relevan ketika tabel menggunakan composite primary key. Jika primary key hanya satu kolom (seperti auto-increment id), tabel yang memenuhi 1NF biasanya otomatis memenuhi 2NF.

Yang akan kamu pelajari