3e forme normale

Créer des bases de données PostgreSQL

Darryl Reeves

Industry Assistant Professor, New York University

Définir la 3e forme normale

Exigences

  • 2NF respectée
  • Aucune « dépendance transitive »
    • c.-à-d. toutes les colonnes non clés dépendent uniquement de la PRIMARY KEY
Créer des bases de données PostgreSQL

Dépendances transitives

  • Implique 3 colonnes d'un tableau
  • Colonnes X, Y, Z
  • colonne X -> colonne Y
  • colonne Y -> colonne Z
  • colonne X -> colonne Z
Créer des bases de données PostgreSQL

Exemple : attributions de salles de cours

id name teacher num
157 Algebra Maggie Winters 244
162 Physics Maggie Winters 244
321 Spanish I Jeremy Smith 309
497 History I Sarah Williams 313
613 Spanish II Jeremy Smith 309
  • course name -> teacher
  • teacher -> room number
  • course name -> room number
Créer des bases de données PostgreSQL

Exemple : attributions de salles de cours

id name teacher num
157 Algebra Maggie Winters 244
162 Physics Maggie Winters 244
321 Spanish I Jeremy Smith 309
497 History I Sarah Williams 313
613 Spanish II Jeremy Smith 309
  • course name -> teacher
  • teacher -> room number
  • course name -> room number
           (dépendance transitive)
Créer des bases de données PostgreSQL

Exemple : attributions de salles de cours

id name teacher num
157 Algebra Maggie Winters 244
162 Physics Maggie Winters 244
321 Spanish I Jeremy Smith 309
497 History I Sarah Williams 313
613 Spanish II Jeremy Smith 309
  1. Mise à jour du numéro de salle
Créer des bases de données PostgreSQL

Exemple : attributions de salles de cours

id name teacher num
157 Algebra Maggie Winters 244
162 Physics Maggie Winters 244
321 Spanish I Jeremy Smith 309
497 History I Sarah Williams 313
613 Spanish II Jeremy Smith 309
  1. Mise à jour du numéro de salle
  2. Ajout de nouveaux enseignants
Créer des bases de données PostgreSQL

Exemple : attributions de salles de cours

id name teacher num
157 Algebra Maggie Winters 244
162 Physics Maggie Winters 244
321 Spanish I Jeremy Smith 309
497 History I Sarah Williams 313
613 Spanish II Jeremy Smith 309
  1. Mise à jour du numéro de salle
  2. Ajout de nouveaux enseignants
  3. Suppression de tous les cours d'un enseignant
Créer des bases de données PostgreSQL

Exemple : attributions de salles de cours

Comment modifier la structure des données pour éviter ces problèmes potentiels ?

Créer des bases de données PostgreSQL

Exemple : attributions de salles de cours

table teacher

id name room_num
1 Maggie Winters 244
2 Jeremy Smith 309
3 Sarah Williams 313
Créer des bases de données PostgreSQL

Exemple : attributions de salles de cours

table teacher

id name room_num
1 Maggie Winters 244
2 Jeremy Smith 309
3 Sarah Williams 313

table course_assignment

id name teacher_id
157 Algebra 1
162 Physics 1
321 Spanish I 2
497 History I 3
613 Spanish II 2
Créer des bases de données PostgreSQL

Passons à la pratique !

Créer des bases de données PostgreSQL

Preparing Video For Download...