L'importance de la normalisation des données

Créer des bases de données PostgreSQL

Darryl Reeves

Industry Assistant Professor, New York University

Exemple 1 : données redondantes

  • La redondance des données peut poser problème
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, 
    ... 
);
Créer des bases de données PostgreSQL

Exemple 1 : données redondantes

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, 
    ... 
);
  • Problème 1 : banques différentes/même nom
  • Problème 2 : changements de nom
Créer des bases de données PostgreSQL

Exemple 1 : données redondantes

CREATE TABLE loan (
    borrower_id INTEGER REFERENCES borrower(id),
    bank_id INTEGER REFERENCES bank(id),
    ...
);
  • Banques au même nom, ids distincts
  • Les mises à jour de noms n'affectent que la table bank
Créer des bases de données PostgreSQL

Exemple 2 : consolidation des enregistrements

applicant

id name
1 Jane Simmmons
2 Rick Demps
3 Pam Jones

borrower

id name
1 Jack Smith
2 Sara Williams
3 Jennifer Valdez
Créer des bases de données PostgreSQL

Exemple 2 : consolidation des enregistrements

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
Créer des bases de données PostgreSQL

Exemple 2 : consolidation des enregistrements

applicant

id name
1 Jane Simmmons
2 Rick Demps
3 Pam Jones

borrower

id name
1 Jack Smith
2 Sara Williams
3 Jennifer Valdez
Créer des bases de données PostgreSQL

Exemple 2 : consolidation des enregistrements

applicant

id name
1 Jane Simmmons
2 Rick Demps

borrower

id name
1 Jack Smith
2 Sara Williams
3 Jennifer Valdez
4 Pam Jones
Créer des bases de données PostgreSQL

Exemple 2 : consolidation des enregistrements

CREATE TABLE borrower (
    id SERIAL PRIMARY KEY,
    name VARCHAR(50) NOT NULL
);
Créer des bases de données PostgreSQL

Exemple 2 : consolidation des enregistrements

CREATE TABLE borrower (
    id SERIAL PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    approved BOOLEAN DEFAULT NULL
);
  • approved est NULL => applicant
  • approved est true => borrower
  • approved est false => demande refusée
Créer des bases de données PostgreSQL

Pourquoi normaliser les données ?

  • Réduit la duplication des données
  • Accroît la cohérence des données
  • Améliore l'organisation des données
Créer des bases de données PostgreSQL

Passons à la pratique !

Créer des bases de données PostgreSQL

Preparing Video For Download...