3. normální forma

Tvorba PostgreSQL databází

Darryl Reeves

Industry Assistant Professor, New York University

Definice 3. normální formy

Požadavky

  • Je splněna 2NF
  • Neexistují žádné „tranzitivní závislosti"
    • Tj. všechny neklíčové sloupce závisí pouze na PRIMARY KEY
Tvorba PostgreSQL databází

Tranzitivní závislosti

  • Zahrnují 3 sloupce v tabulce
  • Sloupce X, Y, Z
  • sloupec X -> sloupec Y
  • sloupec Y -> sloupec Z
  • sloupec X -> sloupec Z
Tvorba PostgreSQL databází

Příklad: přiřazení místností kurzům

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
  • název kurzu -> učitel
  • učitel -> číslo místnosti
  • název kurzu -> číslo místnosti
Tvorba PostgreSQL databází

Příklad: přiřazení místností kurzům

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
  • název kurzu -> učitel
  • učitel -> číslo místnosti
  • název kurzu -> číslo místnosti
           (tranzitivní závislost)
Tvorba PostgreSQL databází

Příklad: přiřazení místností kurzům

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. Aktualizace čísla místnosti
Tvorba PostgreSQL databází

Příklad: přiřazení místností kurzům

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. Aktualizace čísla místnosti
  2. Přidání nových učitelů
Tvorba PostgreSQL databází

Příklad: přiřazení místností kurzům

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. Aktualizace čísla místnosti
  2. Přidání nových učitelů
  3. Smazání všech kurzů učitele
Tvorba PostgreSQL databází

Příklad: přiřazení místností kurzům

Jak upravit strukturu dat, abychom těmto problémům předešli?

Tvorba PostgreSQL databází

Příklad: přiřazení místností kurzům

Tabulka teacher

id name room_num
1 Maggie Winters 244
2 Jeremy Smith 309
3 Sarah Williams 313
Tvorba PostgreSQL databází

Příklad: přiřazení místností kurzům

Tabulka teacher

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

Tabulka course_assignment

id name teacher_id
157 Algebra 1
162 Physics 1
321 Spanish I 2
497 History I 3
613 Spanish II 2
Tvorba PostgreSQL databází

Pojďme si procvičit!

Tvorba PostgreSQL databází

Preparing Video For Download...