Tredje normalformen

Skapa PostgreSQL-databaser

Darryl Reeves

Industry Assistant Professor, New York University

Definiera tredje normalformen

Krav

  • 2NF är uppfyllt
  • Inga "transitiva beroenden" finns
    • dvs. alla icke-nyckelkolumner beror enbart på PRIMARY KEY
Skapa PostgreSQL-databaser

Transitiva beroenden

  • Involverar 3 kolumner i tabellen
  • Kolumnerna X, Y, Z
  • kolumn X -> kolumn Y
  • kolumn Y -> kolumn Z
  • kolumn X -> kolumn Z
Skapa PostgreSQL-databaser

Exempel: kurstilldelning av salar

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
  • kursnamn -> lärare
  • lärare -> salsnummer
  • kursnamn -> salsummer
Skapa PostgreSQL-databaser

Exempel: kurstilldelning av salar

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
  • kursnamn -> lärare
  • lärare -> salsummer
  • kursnamn -> salsummer
           (transitivt beroende)
Skapa PostgreSQL-databaser

Exempel: kurstilldelning av salar

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. Uppdatera salsummer
Skapa PostgreSQL-databaser

Exempel: kurstilldelning av salar

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. Uppdatera salsummer
  2. Lägga till nya lärare
Skapa PostgreSQL-databaser

Exempel: kurstilldelning av salar

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. Uppdatera salsummer
  2. Lägga till nya lärare
  3. Ta bort alla kurser för en lärare
Skapa PostgreSQL-databaser

Exempel: kurstilldelning av salar

Hur ändrar vi datastrukturen för att undvika dessa potentiella problem?

Skapa PostgreSQL-databaser

Exempel: kurstilldelning av salar

teacher-tabellen

id name room_num
1 Maggie Winters 244
2 Jeremy Smith 309
3 Sarah Williams 313
Skapa PostgreSQL-databaser

Exempel: kurstilldelning av salar

teacher-tabellen

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

course_assignment-tabellen

id name teacher_id
157 Algebra 1
162 Physics 1
321 Spanish I 2
497 History I 3
613 Spanish II 2
Skapa PostgreSQL-databaser

Nu kör vi en övning!

Skapa PostgreSQL-databaser

Preparing Video For Download...