logo

A treia formă normală (3NF)

  • O relație va fi în 3NF dacă este în 2NF și nu conține nicio dependență parțială tranzitivă.
  • 3NF este utilizat pentru a reduce duplicarea datelor. De asemenea, este folosit pentru a obține integritatea datelor.
  • Dacă nu există o dependență tranzitivă pentru atributele non-prime, atunci relația trebuie să fie în a treia formă normală.

O relație este în a treia formă normală dacă îndeplinește cel puțin una dintre următoarele condiții pentru fiecare dependență de funcție netrivială X → Y.

  1. X este o super-cheie.
  2. Y este un atribut principal, adică fiecare element al lui Y face parte dintr-o cheie candidată.
  3. Exemplu:

    java 8

    Tabelul EMPLOYEE_DETAIL:

    EMP_ID EMP_NAME EMP_ZIP EMP_STATE EMP_CITY
    222 Harry 201010 SUS Noida
    333 Stephan 02228 NE Boston
    444 Și 60007 NE Chicago
    555 Katharine 06389 Regatul Unit Norwich
    666 Ioan 462007 MP Bhopal

    Super-cheie din tabelul de mai sus:

     {EMP_ID}, {EMP_ID, EMP_NAME}, {EMP_ID, EMP_NAME, EMP_ZIP}....so on 

    Cheia candidatului: {EMP_ID}

    Atribute non-prime: În tabelul dat, toate atributele, cu excepția EMP_ID, sunt non-prime.

    Aici, EMP_STATE și EMP_CITY depind de EMP_ZIP și EMP_ZIP depind de EMP_ID. Atributele non-prime (EMP_STATE, EMP_CITY) depind tranzitiv de super-cheie (EMP_ID). Încalcă regula a treia formă normală.

    De aceea trebuie să mutăm EMP_CITY și EMP_STATE în noul tabel, cu EMP_ZIP ca cheie primară.

    Tabelul ANGAJATI:

    EMP_ID EMP_NAME EMP_ZIP
    222 Harry 201010
    333 Stephan 02228
    444 Și 60007
    555 Katharine 06389
    666 Ioan 462007

    Tabelul EMPLOYEE_ZIP:

    convertiți șirul în interger
    EMP_ZIP EMP_STATE EMP_CITY
    201010 SUS Noida
    02228 NE Boston
    60007 NE Chicago
    06389 Regatul Unit Norwich
    462007 MP Bhopal