Derde normaalvorm

PostgreSQL-databases maken

Darryl Reeves

Industry Assistant Professor, New York University

Derde normaalvorm definiëren

Vereisten

  • 2NF is voldaan
  • Geen “transitieve afhankelijkheden”
    • m.a.w. alle niet-sleutels hangen alleen af van de PRIMARY KEY
PostgreSQL-databases maken

Transitieve afhankelijkheden

  • Betrekken 3 kolommen in tabel
  • Kolommen X, Y, Z
  • kolom X -> kolom Y
  • kolom Y -> kolom Z
  • kolom X -> kolom Z
PostgreSQL-databases maken

Voorbeeld: lokaalindelingen per vak

id naam docent nr
157 Algebra Maggie Winters 244
162 Natuurkunde Maggie Winters 244
321 Spaans I Jeremy Smith 309
497 Geschiedenis I Sarah Williams 313
613 Spaans II Jeremy Smith 309
  • cursusnaam -> docent
  • docent -> kamernummer
  • cursusnaam -> kamernummer
PostgreSQL-databases maken

Voorbeeld: lokaalindelingen per vak

id naam docent nr
157 Algebra Maggie Winters 244
162 Natuurkunde Maggie Winters 244
321 Spaans I Jeremy Smith 309
497 Geschiedenis I Sarah Williams 313
613 Spaans II Jeremy Smith 309
  • cursusnaam -> docent
  • docent -> kamernummer
  • cursusnaam -> kamernummer
           (transitieve afhankelijkheid)
PostgreSQL-databases maken

Voorbeeld: lokaalindelingen per vak

id naam docent nr
157 Algebra Maggie Winters 244
162 Natuurkunde Maggie Winters 244
321 Spaans I Jeremy Smith 309
497 Geschiedenis I Sarah Williams 313
613 Spaans II Jeremy Smith 309
  1. Kamernummer bijwerken
PostgreSQL-databases maken

Voorbeeld: lokaalindelingen per vak

id naam docent nr
157 Algebra Maggie Winters 244
162 Natuurkunde Maggie Winters 244
321 Spaans I Jeremy Smith 309
497 Geschiedenis I Sarah Williams 313
613 Spaans II Jeremy Smith 309
  1. Kamernummer bijwerken
  2. Nieuwe docenten toevoegen
PostgreSQL-databases maken

Voorbeeld: lokaalindelingen per vak

id naam docent nr
157 Algebra Maggie Winters 244
162 Natuurkunde Maggie Winters 244
321 Spaans I Jeremy Smith 309
497 Geschiedenis I Sarah Williams 313
613 Spaans II Jeremy Smith 309
  1. Kamernummer bijwerken
  2. Nieuwe docenten toevoegen
  3. Alle vakken van een docent verwijderen
PostgreSQL-databases maken

Voorbeeld: lokaalindelingen per vak

Hoe passen we de datastructuur aan om deze problemen te voorkomen?

PostgreSQL-databases maken

Voorbeeld: lokaalindelingen per vak

teacher-tabel

id naam room_num
1 Maggie Winters 244
2 Jeremy Smith 309
3 Sarah Williams 313
PostgreSQL-databases maken

Voorbeeld: lokaalindelingen per vak

teacher-tabel

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

course_assignment-tabel

id naam teacher_id
157 Algebra 1
162 Natuurkunde 1
321 Spaans I 2
497 Geschiedenis I 3
613 Spaans II 2
PostgreSQL-databases maken

Laten we oefenen!

PostgreSQL-databases maken

Preparing Video For Download...