Vikten av datanormalisering

Skapa PostgreSQL-databaser

Darryl Reeves

Industry Assistant Professor, New York University

Exempel 1: redundant data

  • Dataredundans kan vara problematiskt
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, 
    ... 
);
Skapa PostgreSQL-databaser

Exempel 1: redundant data

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, 
    ... 
);
  • Problem 1: Olika banker/samma namn
  • Problem 2: Namnändringar
Skapa PostgreSQL-databaser

Exempel 1: redundant data

CREATE TABLE loan (
    borrower_id INTEGER REFERENCES borrower(id),
    bank_id INTEGER REFERENCES bank(id),
    ...
);
  • Banker delar namn men har unika id:n
  • Namnuppdateringar påverkar bara bank-tabellen
Skapa PostgreSQL-databaser

Exempel 2: slå ihop poster

applicant

id name
1 Jane Simmmons
2 Rick Demps
3 Pam Jones

borrower

id name
1 Jack Smith
2 Sara Williams
3 Jennifer Valdez
Skapa PostgreSQL-databaser

Exempel 2: slå ihop poster

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
Skapa PostgreSQL-databaser

Exempel 2: slå ihop poster

applicant

id name
1 Jane Simmmons
2 Rick Demps
3 Pam Jones

borrower

id name
1 Jack Smith
2 Sara Williams
3 Jennifer Valdez
Skapa PostgreSQL-databaser

Exempel 2: slå ihop poster

applicant

id name
1 Jane Simmmons
2 Rick Demps

borrower

id name
1 Jack Smith
2 Sara Williams
3 Jennifer Valdez
4 Pam Jones
Skapa PostgreSQL-databaser

Exempel 2: slå ihop poster

CREATE TABLE borrower (
    id SERIAL PRIMARY KEY,
    name VARCHAR(50) NOT NULL
);
Skapa PostgreSQL-databaser

Exempel 2: slå ihop poster

CREATE TABLE borrower (
    id SERIAL PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    approved BOOLEAN DEFAULT NULL
);
  • approved är NULL => sökande
  • approved är true => låntagare
  • approved är false => nekad ansökan
Skapa PostgreSQL-databaser

Varför normalisera data?

  • Minskar dataduplicering
  • Ökar datakonsistens
  • Förbättrar dataorganisationen
Skapa PostgreSQL-databaser

Nu kör vi en övning!

Skapa PostgreSQL-databaser

Preparing Video For Download...