Changes between Version 41 and Version 42 of Normalization


Ignore:
Timestamp:
07/31/22 14:16:10 (2 years ago)
Author:
193041
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Normalization

    v41 v42  
    102102Од нив избираме еден за примарен клуч. Најоптимално во пракса би било за примарен клуч да биде избран клуч кој ќе овозможи побрзо пребарување (пр. составен од атрибути кои се цели броеви, наместо стрингови) и според тоа за примарен клуч го избираме клучот \\
    103103**id_admin, id_nastavnik, id_kvalifikacija, id_predmet, id_cas, id_domasno, id_plakanja, id_slusanje**.
    104 
    105 
    106 
    107 Со тоа можеме да видеме дека имаме парцијални зависности, односно дека подмножество на кандидат клучот покажува кон непримарни атрибути и се наоѓаме во 1НФ. За да преминеме во 2НФ треба да ги отстраниме парцијалните зависности со што ќе ги поделеме во табели, започнувајќи од функциските зависности на атрибутите. \\
    108 
    109 R1 = (id_admin, ime_admin, prezime_admin, email_admin, password_admin)\\
    110 
    111 R2 = (id_nastavnik, ime_nastavnik, prezime_nastavnik, opis_nastavnik, email_nastavnik, password_nastavnik, telefonski_broj_nastavnik)\\
    112 
    113 R3 = (id_ucenik, ime_ucenik, prezime_ucenik, opis_ucenik, email_ucenik, password_ucenik, telefonski_broj_ucenik)\\
    114 
    115 R4 = (id_kvalifikacija, dokument_kvalifikacija)\\
    116 
    117 R5 = (id_predmet, ime_predmet)\\
    118 
    119 R6 = (id_predmet, id_ucenik, datum_zainteresiran)\\
    120 
    121 R7 = (id_cas, vreme_pocetok_cas, tema_cas)\\
    122 
    123 R8 = (id_plakjanja, iznos)\\
    124 
    125 R9 = (id_domasno, opis_domasno)\\
    126 
    127 R10 = (id_ucenik, id_domasno, dali_zavrseno_domasno)\\
    128 
    129 R11 = (id_cas, id_slusanje, id_plakjanja, id_ucenik, plateno)\\
    130 
    131 R12 = (id_nastavnik, id_predmet, opis_predava_predmet)\\
    132 
    133 R13 = (id_nastavnik, id_ucenik, cena_po_cas, broj_casovi_po_dogovor)\\
    134 
    135 Кога ќе погледнеме во горе поделените табели, имаме дел од табелите кои што се наоѓаат во BCNF, односно дека со нив веќе сме завршиле со нормализација. Но, гледаме дека вака ќе имаме губење на информации, односно дека, некои табели воопшто нема да имаат спојување, со што ако ги оставеме така ќе дојде до нивно губење, затоа ќе треба да постојат уште една табели, со цел да се запазе спојувањето на табелите и примарните атрибути да може да се влечат од една табела. \\
    136 
    137 R14 = (id_admin, id_nastavnik, id_ucenik, id_kvalifikacija, id_predmet, id_cas, id_plakjanja, id_domasno, id_slusanje)\\
    138 
    139 Од функциските зависности добивме 14 табели од кои:\\
    140 
    141 R1 = (id_admin, ime_admin, prezime_admin, email_admin, password_admin) -BCNF, бидејќи имаме една функциска зависност, која доаѓа од id_admin кој што претставува кандидат клуч.\\
    142 
    143 R2 = (id_nastavnik, ime_nastavnik, prezime_nastavnik, opis_nastavnik, email_nastavnik, password_nastavnik, telefonski_broj_nastavnik) -BCNF, бидејќи имаме една функциска зависност, која доаѓа од id_nastavnik кој што претставува кандидат клуч.\\
    144 
    145 R3 = (id_ucenik, ime_ucenik, prezime_ucenik, opis_ucenik, email_ucenik, password_ucenik, telefonski_broj_ucenik) -BCNF, бидејќи имаме една функциска зависност, која доаѓа од id_ucenik кој што претставува кандидат клуч.\\
    146 
    147 R4 = (id_kvalifikacija, dokument_kvalifikacija) -BCNF, бидејќи имаме една функциска зависност, која доаѓа од id_kvalifikacija кој што претставува кандидат клуч.\\
    148 
    149 R5 = (id_predmet, ime_predmet) -BCNF, бидејќи имаме една функциска зависност, која доаѓа од id_predmet кој што претставува кандидат клуч.\\
    150 
    151 R6 = (id_predmet, id_ucenik, datum_zainteresiran) -BCNF, бидејќи имаме една функциска зависност, која доаѓа кандидат клуч, односно супер клучот составен од id_predmet и id_ucenik.\\
    152 
    153 R7 = (id_cas, vreme_pocetok_cas, tema_cas) -BCNF, бидејќи имаме една функциска зависност, која доаѓа од id_cas кој што претставува кандидат клуч.\\
    154 
    155 R8 = (id_plakjanja, iznos) -BCNF, бидејќи имаме една функциска зависност, која доаѓа од id_plakjanja кој што претставува кандидат клуч.\\
    156 
    157 R9 = (id_domasno, opis_domasno) -BCNF, бидејќи имаме една функциска зависност, која доаѓа од id_domasno кој што претставува кандидат клуч.\\
    158 
    159 R10 = (id_ucenik, id_domasno, dali_zavrseno_domasno) -BCNF, бидејќи имаме една функциска зависност, која доаѓа кандидат клучот, односно исто така супер клуч составен од id_ucenik, id_domasno.\\
    160 
    161 R11 = (id_cas, id_slusanje, id_plakjanja, id_ucenik, plateno) -BCNF, бидејќи имаме една функциска зависност, која доаѓа кандидат клучот, односно исто така супер клуч составен од id_cas, id_slusanje.\\
    162 
    163 R12 = (id_nastavnik, id_predmet, opis_predava_predmet) -BCNF, бидејќи имаме една функциска зависност, која доаѓа кандидат клучот, односно исто така супер клуч составен од id_nastavnik, id_predmet.\\
    164 
    165 R13 = (id_nastavnik, id_ucenik, cena_po_cas, broj_casovi_po_dogovor) -BCNF, бидејќи имаме една функциска зависност, која доаѓа кандидат клучот, односно исто така супер клуч составен од id_nastavnik, id_ucenik.\\
    166 
    167 R14 = (id_admin, id_nastavnik, id_ucenik, id_kvalifikacija, id_predmet, id_cas, id_plakjanja, id_domasno, id_slusanje) -BCNF, бидејќи немаме функциски зависности и самиот супер клуч претставува и кандидат клуч.\\
    168 
    169 Табелите ги сведивме до BCNF, така крајниот резултат на нормализација е со 14 табели.