A 3-a Formă Normală

Crearea bazelor de date PostgreSQL

Darryl Reeves

Industry Assistant Professor, New York University

Definirea celei de-a 3-a Forme Normale

Cerințe

  • 2NF este satisfăcută
  • Nu există „dependențe tranzitive"
    • Adică, toate coloanele non-cheie depind doar de PRIMARY KEY
Crearea bazelor de date PostgreSQL

Dependențe tranzitive

  • Implică 3 coloane dintr-un tabel
  • Coloanele X, Y, Z
  • coloana X -> coloana Y
  • coloana Y -> coloana Z
  • coloana X -> coloana Z
Crearea bazelor de date PostgreSQL

Exemplu: atribuirea sălilor cursurilor

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
  • denumire curs -> profesor
  • profesor -> număr sală
  • denumire curs -> număr sală
Crearea bazelor de date PostgreSQL

Exemplu: atribuirea sălilor cursurilor

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
  • denumire curs -> profesor
  • profesor -> număr sală
  • denumire curs -> număr sală
           (dependență tranzitivă)
Crearea bazelor de date PostgreSQL

Exemplu: atribuirea sălilor cursurilor

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. Actualizarea numărului sălii
Crearea bazelor de date PostgreSQL

Exemplu: atribuirea sălilor cursurilor

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. Actualizarea numărului sălii
  2. Adăugarea profesorilor noi
Crearea bazelor de date PostgreSQL

Exemplu: atribuirea sălilor cursurilor

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. Actualizarea numărului sălii
  2. Adăugarea profesorilor noi
  3. Ștergerea tuturor cursurilor unui profesor
Crearea bazelor de date PostgreSQL

Exemplu: atribuirea sălilor cursurilor

Cum modificăm structura datelor pentru a evita aceste probleme potențiale?

Crearea bazelor de date PostgreSQL

Exemplu: atribuirea sălilor cursurilor

Tabelul teacher

id name room_num
1 Maggie Winters 244
2 Jeremy Smith 309
3 Sarah Williams 313
Crearea bazelor de date PostgreSQL

Exemplu: atribuirea sălilor cursurilor

Tabelul teacher

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

Tabelul course_assignment

id name teacher_id
157 Algebra 1
162 Physics 1
321 Spanish I 2
497 History I 3
613 Spanish II 2
Crearea bazelor de date PostgreSQL

Să exersăm!

Crearea bazelor de date PostgreSQL

Preparing Video For Download...