Importanța normalizării datelor

Crearea bazelor de date PostgreSQL

Darryl Reeves

Industry Assistant Professor, New York University

Exemplul 1: date redundante

  • Redundanța datelor poate fi problematică
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, 
    ... 
);
Crearea bazelor de date PostgreSQL

Exemplul 1: date redundante

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, 
    ... 
);
  • Problema 1: Bănci diferite/același nume
  • Problema 2: Modificări de nume
Crearea bazelor de date PostgreSQL

Exemplul 1: date redundante

CREATE TABLE loan (
    borrower_id INTEGER REFERENCES borrower(id),
    bank_id INTEGER REFERENCES bank(id),
    ...
);
  • Bănci cu același nume, id-uri distincte
  • Actualizările numelor afectează doar tabelul bank
Crearea bazelor de date PostgreSQL

Exemplul 2: consolidarea înregistrărilor

applicant

id name
1 Jane Simmmons
2 Rick Demps
3 Pam Jones

borrower

id name
1 Jack Smith
2 Sara Williams
3 Jennifer Valdez
Crearea bazelor de date PostgreSQL

Exemplul 2: consolidarea înregistrărilor

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
Crearea bazelor de date PostgreSQL

Exemplul 2: consolidarea înregistrărilor

applicant

id name
1 Jane Simmmons
2 Rick Demps
3 Pam Jones

borrower

id name
1 Jack Smith
2 Sara Williams
3 Jennifer Valdez
Crearea bazelor de date PostgreSQL

Exemplul 2: consolidarea înregistrărilor

applicant

id name
1 Jane Simmmons
2 Rick Demps

borrower

id name
1 Jack Smith
2 Sara Williams
3 Jennifer Valdez
4 Pam Jones
Crearea bazelor de date PostgreSQL

Exemplul 2: consolidarea înregistrărilor

CREATE TABLE borrower (
    id SERIAL PRIMARY KEY,
    name VARCHAR(50) NOT NULL
);
Crearea bazelor de date PostgreSQL

Exemplul 2: consolidarea înregistrărilor

CREATE TABLE borrower (
    id SERIAL PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    approved BOOLEAN DEFAULT NULL
);
  • approved este NULL => solicitant
  • approved este true => împrumutat
  • approved este false => cerere respinsă
Crearea bazelor de date PostgreSQL

De ce să normalizăm datele?

  • Reduce duplicarea datelor
  • Crește consistența datelor
  • Îmbunătățește organizarea datelor
Crearea bazelor de date PostgreSQL

Să exersăm!

Crearea bazelor de date PostgreSQL

Preparing Video For Download...