Pentingnya normalisasi data

Membuat Database PostgreSQL

Darryl Reeves

Industry Assistant Professor, New York University

Contoh 1: data redundan

  • Redundansi data bisa bermasalah
CREATE TABLE loan (
    borrower_id INTEGER REFERENCES borrower(id),
    bank_name VARCHAR(50) DEFAULT NULL,
    ...
);
CREATE TABLE bank ( 
    id SERIAL PRIMARY KEY, 
    name VARCHAR(50) DEFAULT NULL, 
    ... 
);
Membuat Database PostgreSQL

Contoh 1: data redundan

CREATE TABLE loan (
    borrower_id INTEGER REFERENCES borrower(id),
    bank_name VARCHAR(50) DEFAULT NULL,
    ...
);
CREATE TABLE bank ( 
    id SERIAL PRIMARY KEY, 
    name VARCHAR(50) DEFAULT NULL, 
    ... 
);
  • Masalah 1: Bank berbeda/nama sama
  • Masalah 2: Perubahan nama
Membuat Database PostgreSQL

Contoh 1: data redundan

CREATE TABLE loan (
    borrower_id INTEGER REFERENCES borrower(id),
    bank_id INTEGER REFERENCES bank(id),
    ...
);
  • Bank dapat berbagi nama dengan id berbeda
  • Pembaruan nama bank hanya memengaruhi tabel bank
Membuat Database PostgreSQL

Contoh 2: konsolidasi rekaman

applicant

id name
1 Jane Simmmons
2 Rick Demps
3 Pam Jones

borrower

id name
1 Jack Smith
2 Sara Williams
3 Jennifer Valdez
Membuat Database PostgreSQL

Contoh 2: konsolidasi rekaman

applicant

id name
1 Jane Simmmons
2 Rick Demps
3 Pam Jones

borrower

id name
1 Jack Smith
2 Sara Williams
3 Jennifer Valdez
4 Pam Jones
Membuat Database PostgreSQL

Contoh 2: konsolidasi rekaman

applicant

id name
1 Jane Simmmons
2 Rick Demps
3 Pam Jones

borrower

id name
1 Jack Smith
2 Sara Williams
3 Jennifer Valdez
Membuat Database PostgreSQL

Contoh 2: konsolidasi rekaman

applicant

id name
1 Jane Simmmons
2 Rick Demps

borrower

id name
1 Jack Smith
2 Sara Williams
3 Jennifer Valdez
4 Pam Jones
Membuat Database PostgreSQL

Contoh 2: konsolidasi rekaman

CREATE TABLE borrower (
    id SERIAL PRIMARY KEY,
    name VARCHAR(50) NOT NULL
);
Membuat Database PostgreSQL

Contoh 2: konsolidasi rekaman

CREATE TABLE borrower (
    id SERIAL PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    approved BOOLEAN DEFAULT NULL
);
  • approved bernilai NULL => applicant
  • approved bernilai true => borrower
  • approved bernilai false => aplikasi ditolak
Membuat Database PostgreSQL

Mengapa menormalisasi data?

  • Mengurangi duplikasi data
  • Meningkatkan konsistensi data
  • Memperbaiki organisasi data
Membuat Database PostgreSQL

Ayo berlatih!

Membuat Database PostgreSQL

Preparing Video For Download...