logo

Trečioji normalioji forma (3NF)

  • Ryšys bus 3NF, jei jis yra 2NF ir neturės jokios pereinamosios dalinės priklausomybės.
  • 3NF naudojamas duomenų dubliavimui sumažinti. Jis taip pat naudojamas duomenų vientisumui pasiekti.
  • Jei nėra tranzityvinės priklausomybės ne pirminiams atributams, tada ryšys turi būti trečiosios normaliosios formos.

Ryšys yra trečiosios normaliosios formos, jei jis atitinka bent vieną iš šių sąlygų kiekvienai netrivialinei funkcijos priklausomybei X → Y.

  1. X yra super raktas.
  2. Y yra pagrindinis atributas, t. y. kiekvienas Y elementas yra tam tikro kandidato rakto dalis.
  3. Pavyzdys:

    sąjunga prieš sąjungą visi

    EMPLOYEE_DETAIL lentelė:

    EMP_ID EMP_NAME EMP_ZIP EMP_STATE EMP_CITY
    222 Hari 201010 m AUKŠTYN Noida
    333 Stephanas 02228 JAV Bostonas
    444 Ir 60007 JAV Čikaga
    555 Katharine 06389 JK Noridžas
    666 Jonas 462007 MP Bopalas

    Super raktas aukščiau esančioje lentelėje:

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

    Kandidato raktas: {EMP_ID}

    Nepagrindiniai atributai: Pateiktoje lentelėje visi atributai, išskyrus EMP_ID, nėra pirminiai.

    Čia EMP_STATE ir EMP_CITY priklauso nuo EMP_ZIP ir EMP_ZIP priklauso nuo EMP_ID. Nepagrindiniai atributai (EMP_STATE, EMP_CITY) laikinai priklauso nuo super rakto (EMP_ID). Tai pažeidžia trečiosios normalios formos taisyklę.

    Štai kodėl turime perkelti EMP_CITY ir EMP_STATE į naują lentelę, o EMP_ZIP kaip pagrindinį raktą.

    tigrinio liūto skirtumas

    DARBUOTOJŲ lentelė:

    EMP_ID EMP_NAME EMP_ZIP
    222 Hari 201010 m
    333 Stephanas 02228
    444 Ir 60007
    555 Katharine 06389
    666 Jonas 462007

    EMPLOYEE_ZIP lentelė:

    EMP_ZIP EMP_STATE EMP_CITY
    201010 m AUKŠTYN Noida
    02228 JAV Bostonas
    60007 JAV Čikaga
    06389 JK Noridžas
    462007 MP Bopalas