3. Postać normalna

Tworzenie baz danych w PostgreSQL

Darryl Reeves

Industry Assistant Professor, New York University

Definicja 3. postaci normalnej

Wymagania

  • Spełniona 2NF
  • Brak "zależności przechodnich"
    • Wszystkie kolumny niekluczowe zależą wyłącznie od PRIMARY KEY
Tworzenie baz danych w PostgreSQL

Zależności przechodnie

  • Obejmują 3 kolumny w tabeli
  • Kolumny X, Y, Z
  • kolumna X -> kolumna Y
  • kolumna Y -> kolumna Z
  • kolumna X -> kolumna Z
Tworzenie baz danych w PostgreSQL

Przykład: przypisanie sal do kursów

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
  • nazwa kursu -> nauczyciel
  • nauczyciel -> numer sali
  • nazwa kursu -> numer sali
Tworzenie baz danych w PostgreSQL

Przykład: przypisanie sal do kursów

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
  • nazwa kursu -> nauczyciel
  • nauczyciel -> numer sali
  • nazwa kursu -> numer sali
           (zależność przechodnia)
Tworzenie baz danych w PostgreSQL

Przykład: przypisanie sal do kursów

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. Aktualizacja numeru sali
Tworzenie baz danych w PostgreSQL

Przykład: przypisanie sal do kursów

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. Aktualizacja numeru sali
  2. Dodawanie nowych nauczycieli
Tworzenie baz danych w PostgreSQL

Przykład: przypisanie sal do kursów

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. Aktualizacja numeru sali
  2. Dodawanie nowych nauczycieli
  3. Usuwanie wszystkich kursów nauczyciela
Tworzenie baz danych w PostgreSQL

Przykład: przypisanie sal do kursów

Jak zmienić strukturę danych, aby wyeliminować te potencjalne problemy?

Tworzenie baz danych w PostgreSQL

Przykład: przypisanie sal do kursów

Tabela teacher

id name room_num
1 Maggie Winters 244
2 Jeremy Smith 309
3 Sarah Williams 313
Tworzenie baz danych w PostgreSQL

Przykład: przypisanie sal do kursów

Tabela teacher

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

Tabela course_assignment

id name teacher_id
157 Algebra 1
162 Physics 1
321 Spanish I 2
497 History I 3
613 Spanish II 2
Tworzenie baz danych w PostgreSQL

Czas na ćwiczenia!

Tworzenie baz danych w PostgreSQL

Preparing Video For Download...