Changes between Version 45 and Version 46 of Normalization


Ignore:
Timestamp:
07/31/22 18:30:18 (2 years ago)
Author:
193041
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Normalization

    v45 v46  
    104104
    105105Во моментот има неколку ф.з. кои прават проблем. Тие се парцијални зависности (вистинско подмножество од к.к. определува непримарен атрибут) и со тоа е нарушена 2НФ. Да претпоставиме дека прва што прави проблем е ф.з. id_nastavnik → ime_nastavnik.\\\\
    106 Првобитната релација R која е составена од сите атрибути, ја декомпонираме на R1 и R2. Дел од R1 мора да биде id_nastavnik, заедно со сите атрибути кои тој ги определува, додека пак останатите атрибути одат во R2 (со тоа што за да може да се направи спојување без загуба, мора да има заеднички атрибут со R1, а тој атрибут би бил id_nastavnik).\\
    107 ----
    108 R1(id_nastavnik, prezime_nastavnik, opis_nastavnik, email_nastavnik, password_nastavnik, telefonski_broj_nastavnik)\\
    109 
    110 F1 = {\\
     106Првобитната релација R која е составена од сите атрибути, ја декомпонираме на R,,1,, и R,,2,,. Дел од R,,1,, мора да биде id_nastavnik, заедно со сите атрибути кои тој ги определува, додека пак останатите атрибути одат во R,,2,, (со тоа што за да може да се направи спојување без загуба, мора да има заеднички атрибут со R,,1,,, а тој атрибут би бил id_nastavnik).\\
     107----
     108R,,1,,(id_nastavnik, prezime_nastavnik, opis_nastavnik, email_nastavnik, password_nastavnik, telefonski_broj_nastavnik)\\
     109
     110F,,1,, = {\\
    111111id_nastavnik → ime_nastavnik,\\
    112112id_nastavnik → prezime_nastavnik,\\
     
    121121Примарни атрибути: id_nastavnik, email_nastavnik.\\
    122122
    123 **R1** се наоѓа во **BCNF**, бидејќи од секоја ф.з. во F1, левата страна е суперклуч, и понатаму не ја декомпонираме.\\
    124 ----
    125 R2(id_admin, ime_admin, prezime_admin, email_admin, password_admin, id_nastavnik, id_ucenik, ime_ucenik, prezime_ucenik, opis_ucenik, email_ucenik, password_ucenik, telefonski_broj_ucenik, id_kvalifikacija, dokument_kvalifikacija, id_predmet, ime_predmet, id_cas, vreme_pocetok_cas, tema_cas, id_domasno, opis_domasno, datum_zainteresiran, id_plakanja, iznos, id_slusanje, plateno, dali_zavrseno_domasno, cena_po_cas, broj_casovi_po_dogovor, opis_predava_predmet)\\
    126 F2 = { \\
     123**R,,1,,** се наоѓа во **BCNF**, бидејќи од секоја ф.з. во F,,1,,, левата страна е суперклуч, и понатаму не ја декомпонираме.\\
     124----
     125R,,2,,(id_admin, ime_admin, prezime_admin, email_admin, password_admin, id_nastavnik, id_ucenik, ime_ucenik, prezime_ucenik, opis_ucenik, email_ucenik, password_ucenik, telefonski_broj_ucenik, id_kvalifikacija, dokument_kvalifikacija, id_predmet, ime_predmet, id_cas, vreme_pocetok_cas, tema_cas, id_domasno, opis_domasno, datum_zainteresiran, id_plakanja, iznos, id_slusanje, plateno, dali_zavrseno_domasno, cena_po_cas, broj_casovi_po_dogovor, opis_predava_predmet)\\
     126F,,2,, = { \\
    127127id_admin → ime_admin, \\
    128128id_admin → prezime_admin, \\
     
    153153}\\
    154154
    155 R2 се' уште е во 1НФ поради парцијалните зависности. Една од повеќето ф.з. кои прават проблем е id_admin → ime_admin. id_admin ќе го ставиме во посебна релација R21, заедно со атрибутите кои тој ги определува. Се' останато оди во R22, заедно со id_admin кој е заеднички атрибут, за да се направи спојување без загуба на информации.\\
    156 ----
    157 R21(id_admin, ime_admin, prezime_admin, email_admin, password_admin)\\
    158 F21 = {\\
     155R,,2,, се' уште е во 1НФ поради парцијалните зависности. Една од повеќето ф.з. кои прават проблем е id_admin → ime_admin. id_admin ќе го ставиме во посебна релација R,,3,,, заедно со атрибутите кои тој ги определува. Се' останато оди во R,,4,,, заедно со id_admin кој е заеднички атрибут, за да се направи спојување без загуба на информации.\\
     156----
     157R,,3,,(id_admin, ime_admin, prezime_admin, email_admin, password_admin)\\
     158F,,3,, = {\\
    159159id_admin → ime_admin, \\
    160160id_admin → prezime_admin, \\
     
    165165Кандидат клучеви: id_admin, email_admin.\\
    166166Примарни атрибути: id_admin, email_admin.\\
    167 **R21** се наоѓа во **BCNF**, бидејќи од секоја ф.з. во F21, левата страна е суперклуч, и понатаму не ја декомпонираме.\\
    168 ----
    169 R22(id_admin, id_nastavnik, id_ucenik, ime_ucenik, prezime_ucenik, opis_ucenik, email_ucenik, password_ucenik, telefonski_broj_ucenik, id_kvalifikacija, dokument_kvalifikacija, id_predmet, ime_predmet, id_cas, vreme_pocetok_cas, tema_cas, id_domasno, opis_domasno, datum_zainteresiran, id_plakanja, iznos, id_slusanje, plateno, dali_zavrseno_domasno, cena_po_cas, broj_casovi_po_dogovor, opis_predava_predmet)
    170 F22 = {\\
     167**R,,3,,** се наоѓа во **BCNF**, бидејќи од секоја ф.з. во F,,3,,, левата страна е суперклуч, и понатаму не ја декомпонираме.\\
     168----
     169R,,4,,(id_admin, id_nastavnik, id_ucenik, ime_ucenik, prezime_ucenik, opis_ucenik, email_ucenik, password_ucenik, telefonski_broj_ucenik, id_kvalifikacija, dokument_kvalifikacija, id_predmet, ime_predmet, id_cas, vreme_pocetok_cas, tema_cas, id_domasno, opis_domasno, datum_zainteresiran, id_plakanja, iznos, id_slusanje, plateno, dali_zavrseno_domasno, cena_po_cas, broj_casovi_po_dogovor, opis_predava_predmet)
     170F,,4,, = {\\
    171171id_ucenik → ime_ucenik,\\
    172172id_ucenik → prezime_ucenik,\\
     
    192192}\\
    193193
    194 R22 е во 1НФ поради парцијалните зависности. Една од повеќето ф.з. кои прават проблем е id_ucenik → ime_ucenik,\\. id_ucenik ќе го ставиме во посебна релација R221, заедно со атрибутите кои тој ги определува. Останатото во R222.
    195 ----
    196 R221(id_ucenik, ime_ucenik, prezime_ucenik, opis_ucenik, email_ucenik, password_ucenik, telefonski_broj_ucenik)\\
    197 F221 = {\\
     194R,,4,, е во 1НФ поради парцијалните зависности. Една од повеќето ф.з. кои прават проблем е id_ucenik → ime_ucenik,\\. id_ucenik ќе го ставиме во посебна релација R,,5,,, заедно со атрибутите кои тој ги определува. Останатото во R,,6,,.
     195----
     196R,,5,,(id_ucenik, ime_ucenik, prezime_ucenik, opis_ucenik, email_ucenik, password_ucenik, telefonski_broj_ucenik)\\
     197F,,5,, = {\\
    198198id_ucenik → ime_ucenik,\\
    199199id_ucenik → prezime_ucenik,\\
     
    205205Кандидат клуч: id_ucenik.\\
    206206Примарни атрибути: id_ucenik.\\
    207 **R221** се наоѓа во **BCNF**, бидејќи од секоја ф.з. во F221, левата страна е суперклуч. Оваа релација понатаму не ја декомпонираме.\\
    208 ----
    209 Да го разгледаме тоа што ни остана во R222.
    210 R222(id_admin, id_nastavnik, id_ucenik, id_kvalifikacija, dokument_kvalifikacija, id_predmet, ime_predmet, id_cas, vreme_pocetok_cas, tema_cas, id_domasno, opis_domasno, datum_zainteresiran, id_plakanja, iznos, id_slusanje, plateno, dali_zavrseno_domasno, cena_po_cas, broj_casovi_po_dogovor, opis_predava_predmet)\\
    211 F222 = {\\
     207**R,,5,,** се наоѓа во **BCNF**, бидејќи од секоја ф.з. во F,,5,,, левата страна е суперклуч. Оваа релација понатаму не ја декомпонираме.\\
     208----
     209Да го разгледаме тоа што ни остана во R,,6,,.
     210R,,6,,(id_admin, id_nastavnik, id_ucenik, id_kvalifikacija, dokument_kvalifikacija, id_predmet, ime_predmet, id_cas, vreme_pocetok_cas, tema_cas, id_domasno, opis_domasno, datum_zainteresiran, id_plakanja, iznos, id_slusanje, plateno, dali_zavrseno_domasno, cena_po_cas, broj_casovi_po_dogovor, opis_predava_predmet)\\
     211F,,6,, = {\\
    212212id_kvalifikacija → dokument_kvalifikacija,\\
    213213id_predmet → ime_predmet,\\
     
    228228(id_admin, id_nastavnik, id_ucenik, id_kvalifikacija, ime_predmet, id_cas, id_domasno, id_plakanja, id_slusanje)\\
    229229Примарни атрибути: id_admin, id_nastavnik, id_ucenik, id_kvalifikacija, id_predmet, id_cas, id_domasno, id_plakanja, id_slusanje, ime_predmet.\\
    230 R222 е во 1НФ поради парцијалните зависности. Една од повеќето ф.з. кои прават проблем е id_kvalifikacija → dokument_kvalifikacija\\. id_kvalifikacija ќе го ставиме во посебна релација R2221, заедно со атрибутите кои тој ги определува. Останатото во R2222.
    231 ----
    232 R2221(id_kvalifikacija, dokument_kvalifikacija)\\
    233 F2221 = {\\
     230R,,6,, е во 1НФ поради парцијалните зависности. Една од повеќето ф.з. кои прават проблем е id_kvalifikacija → dokument_kvalifikacija.\\ id_kvalifikacija ќе го ставиме во посебна релација R,,7,,, заедно со атрибутите кои тој ги определува. Останатото во R,,8,,.
     231----
     232R,,7,,(id_kvalifikacija, dokument_kvalifikacija)\\
     233F,,7,, = {\\
    234234id_kvalifikacija → dokument_kvalifikacija\\
    235235}\\
    236236Кандидат клуч: id_kvalifikacija.\\
    237237Примарни атрибути: id_kvalifikacija.\\
    238 **R2221** се наоѓа во **BCNF**, бидејќи има само една ф.з. и левата страна на таа ф.з. е суперклуч.\\
    239 ----
     238**R,,7,,** се наоѓа во **BCNF**, бидејќи има само една ф.з. и левата страна на таа ф.з. е суперклуч.\\
     239----
     240R,,8,,(id_admin, id_nastavnik, id_ucenik, id_kvalifikacija, id_predmet, ime_predmet, id_cas, vreme_pocetok_cas, tema_cas, id_domasno, opis_domasno, datum_zainteresiran, id_plakanja, iznos, id_slusanje, plateno, dali_zavrseno_domasno, cena_po_cas, broj_casovi_po_dogovor, opis_predava_predmet)\\
     241F,,8,, = {\\
     242id_predmet → ime_predmet,\\
     243ime_predmet → id_predmet, \\
     244(id_predmet, id_ucenik) → datum_zainteresiran, \\
     245(ime_predmet, id_ucenik) → datum_zainteresiran,\\
     246id_cas → vreme_pocetok_cas,\\
     247id_cas → tema_cas, \\
     248id_plakjanja → iznos,\\
     249id_domasno → opis_domasno,\\
     250(id_ucenik, id_domasno) → dali_zavrseno_domasno,\\
     251(id_cas, id_slusanje) → id_plakjanja,\\ (id_cas, id_slusanje) → id_ucenik,\\ (id_cas, id_slusanje) → plateno,\\
     252(id_nastavnik, id_predmet) →  opis_predava_predmet,\\
     253(id_nastavnik, id_ucenik) →  cena_po_cas, \\
     254(id_nastavnik, id_ucenik) →  broj_casovi_po_dogovor\\
     255}\\
     256Кандидат клучеви: (id_admin, id_nastavnik, id_ucenik, id_kvalifikacija, id_predmet, id_cas, id_domasno, id_plakanja, id_slusanje);\\
     257(id_admin, id_nastavnik, id_ucenik, id_kvalifikacija, ime_predmet, id_cas, id_domasno, id_plakanja, id_slusanje)\\
     258Примарни атрибути: id_admin, id_nastavnik, id_ucenik, id_kvalifikacija, id_predmet, id_cas, id_domasno, id_plakanja, id_slusanje, ime_predmet.\\
     259R,,8,, е во 1НФ поради парцијалните зависности. Една од повеќето ф.з. кои прават проблем е id_cas → vreme_pocetok_cas.\\ id_cas ќе го ставиме во посебна релација R,,9,,, заедно со атрибутите кои тој ги определува. Останатото во R,,10,,.\\
     260----
     261R,,9,,(id_cas, vreme_pocetok_cas, tema_cas)\\
     262F,,9,, = {\\
     263id_cas → vreme_pocetok_cas,\\
     264id_cas → tema_cas, \\
     265}\\
     266Кандидат клучеви: id_cas.\\
     267Примарни атрибути: id_cas.\\
     268**R,,9,,** се наоѓа во **BCNF**, бидејќи левата страна на двете ф.з. е суперклуч.\\
     269----
     270R,,10,,(id_admin, id_nastavnik, id_ucenik, id_kvalifikacija, id_predmet, ime_predmet, id_cas, id_domasno, opis_domasno, datum_zainteresiran, id_plakanja, iznos, id_slusanje, plateno, dali_zavrseno_domasno, cena_po_cas, broj_casovi_po_dogovor, opis_predava_predmet)\\
     271F,,10,, = {\\
     272id_predmet → ime_predmet,\\
     273ime_predmet → id_predmet, \\
     274(id_predmet, id_ucenik) → datum_zainteresiran, \\
     275(ime_predmet, id_ucenik) → datum_zainteresiran,\\
     276id_plakjanja → iznos,\\
     277id_domasno → opis_domasno,\\
     278(id_ucenik, id_domasno) → dali_zavrseno_domasno,\\
     279(id_cas, id_slusanje) → id_plakjanja,\\ (id_cas, id_slusanje) → id_ucenik,\\ (id_cas, id_slusanje) → plateno,\\
     280(id_nastavnik, id_predmet) →  opis_predava_predmet,\\
     281(id_nastavnik, id_ucenik) →  cena_po_cas, \\
     282(id_nastavnik, id_ucenik) →  broj_casovi_po_dogovor\\
     283}\\
     284Кандидат клучеви: (id_admin, id_nastavnik, id_ucenik, id_kvalifikacija, id_predmet, id_cas, id_domasno, id_plakanja, id_slusanje);\\
     285(id_admin, id_nastavnik, id_ucenik, id_kvalifikacija, ime_predmet, id_cas, id_domasno, id_plakanja, id_slusanje)\\
     286Примарни атрибути: id_admin, id_nastavnik, id_ucenik, id_kvalifikacija, id_predmet, id_cas, id_domasno, id_plakanja, id_slusanje, ime_predmet.\\
     287R,,10,, е во 1НФ поради парцијалните зависности. Една од повеќето ф.з. кои прават проблем е id_predmet → ime_predmet.\\ id_predmet ќе го ставиме во посебна релација R,,11,,, заедно со атрибутите кои тој ги определува. Останатото во R,,12,,.\\
     288----
     289R,,11,,(id_predmet, ime_predmet)\\
     290F,,11,, = {\\
     291id_predmet → ime_predmet,\\
     292ime_predmet → id_predmet, \\
     293}\\
     294Кандидат клучеви: id_predmet, ime_predmet.\\
     295Примарни атрибути: id_predmet, ime_predmet.\\
     296**R,,11,,** се наоѓа во **BCNF**, бидејќи левата страна на двете ф.з. е суперклуч.\\
     297----
     298R,,12,,(id_admin, id_nastavnik, id_ucenik, id_kvalifikacija, id_predmet, id_cas, id_domasno, opis_domasno, datum_zainteresiran, id_plakanja, iznos, id_slusanje, plateno, dali_zavrseno_domasno, cena_po_cas, broj_casovi_po_dogovor, opis_predava_predmet)\\
     299F,,12,, = {\\
     300(id_predmet, id_ucenik) → datum_zainteresiran, \\
     301id_plakjanja → iznos,\\
     302id_domasno → opis_domasno,\\
     303(id_ucenik, id_domasno) → dali_zavrseno_domasno,\\
     304(id_cas, id_slusanje) → id_plakjanja,\\ (id_cas, id_slusanje) → id_ucenik,\\ (id_cas, id_slusanje) → plateno,\\
     305(id_nastavnik, id_predmet) →  opis_predava_predmet,\\
     306(id_nastavnik, id_ucenik) →  cena_po_cas, \\
     307(id_nastavnik, id_ucenik) →  broj_casovi_po_dogovor\\
     308}\\
     309Кандидат клучеви: (id_admin, id_nastavnik, id_ucenik, id_kvalifikacija, id_predmet, id_cas, id_domasno, id_plakanja, id_slusanje);\\
     310Примарни атрибути: id_admin, id_nastavnik, id_ucenik, id_kvalifikacija, id_predmet, id_cas, id_domasno, id_plakanja, id_slusanje.\\
     311R,,12,, е во 1НФ поради парцијалните зависности. Една од повеќето ф.з. кои прават проблем е id_plakjanja → iznos.\\ id_plakjanja ќе го ставиме во посебна релација R,,13,,, заедно со атрибутите кои тој ги определува. Останатото во R,,14,,.\\
     312----
     313R,,13,,(id_plakjanja, iznos)\\
     314F,,13,, = {\\
     315id_plakjanja → iznos\\
     316}\\
     317Кандидат клучеви: id_plakjanja.\\
     318Примарни атрибути: id_plakjanja.\\
     319**R,,13,,** се наоѓа во **BCNF**, бидејќи има само една ф.з. и левата страна на таа ф.з. е суперклуч.\\
     320----
     321R,,14,,(id_admin, id_nastavnik, id_ucenik, id_kvalifikacija, id_predmet, id_cas, id_domasno, opis_domasno, datum_zainteresiran, id_plakanja, id_slusanje, plateno, dali_zavrseno_domasno, cena_po_cas, broj_casovi_po_dogovor, opis_predava_predmet)\\
     322F,,14,, = {\\
     323(id_predmet, id_ucenik) → datum_zainteresiran, \\
     324id_domasno → opis_domasno,\\
     325(id_ucenik, id_domasno) → dali_zavrseno_domasno,\\
     326(id_cas, id_slusanje) → id_plakjanja,\\ (id_cas, id_slusanje) → id_ucenik,\\ (id_cas, id_slusanje) → plateno,\\
     327(id_nastavnik, id_predmet) →  opis_predava_predmet,\\
     328(id_nastavnik, id_ucenik) →  cena_po_cas, \\
     329(id_nastavnik, id_ucenik) →  broj_casovi_po_dogovor\\
     330}\\
     331Кандидат клучеви: (id_admin, id_nastavnik, id_ucenik, id_kvalifikacija, id_predmet, id_cas, id_domasno, id_plakanja, id_slusanje);\\
     332Примарни атрибути: id_admin, id_nastavnik, id_ucenik, id_kvalifikacija, id_predmet, id_cas, id_domasno, id_plakanja, id_slusanje.\\
     333R,,14,, е во 1НФ поради парцијалните зависности. Една од повеќето ф.з. кои прават проблем е id_domasno → opis_domasno.\\ id_domasno ќе го ставиме во посебна релација R,,15,,, заедно со атрибутите кои тој ги определува. Останатото во R,,16,,.\\
     334----
     335R,,15,,(id_domasno, opis_domasno)\\
     336F,,15,, = {\\
     337id_domasno → opis_domasno,\\
     338}\\
     339Кандидат клучеви: id_domasno.\\
     340Примарни атрибути: id_domasno.\\
     341**R,,15,,** се наоѓа во **BCNF**, бидејќи има само една ф.з. и левата страна на таа ф.з. е суперклуч.\\
     342----
     343R,,16,,(id_admin, id_nastavnik, id_ucenik, id_kvalifikacija, id_predmet, id_cas, id_domasno, datum_zainteresiran, id_plakanja, id_slusanje, plateno, dali_zavrseno_domasno, cena_po_cas, broj_casovi_po_dogovor, opis_predava_predmet)\\
     344F,,16,, = {\\
     345(id_predmet, id_ucenik) → datum_zainteresiran, \\
     346(id_ucenik, id_domasno) → dali_zavrseno_domasno,\\
     347(id_cas, id_slusanje) → id_plakjanja,\\
     348(id_cas, id_slusanje) → id_ucenik,\\
     349(id_cas, id_slusanje) → plateno,\\
     350(id_nastavnik, id_predmet) →  opis_predava_predmet,\\
     351(id_nastavnik, id_ucenik) →  cena_po_cas, \\
     352(id_nastavnik, id_ucenik) →  broj_casovi_po_dogovor\\
     353}\\
     354Кандидат клуч: (id_admin, id_nastavnik, id_ucenik, id_kvalifikacija, id_predmet, id_cas, id_plakanja, id_slusanje).\\
     355Примарни атрибути: id_admin, id_nastavnik, id_ucenik, id_kvalifikacija, id_predmet, id_cas, id_plakanja, id_slusanje.\\
     356R,,16,, е во 1НФ поради парцијалните зависности. Една од повеќето ф.з. кои прават проблем е (id_cas, id_slusanje) → id_plakjanja.\\ Ја разделуваме релацијата на R,,17,, и R,,18,,.
     357----
     358R,,17,,(id_cas, id_slusanje, id_plakjanja, id_ucenik, plateno)
     359F,,17,, = {\\
     360(id_cas, id_slusanje) → id_plakjanja,\\
     361(id_cas, id_slusanje) → id_ucenik,\\
     362(id_cas, id_slusanje) → plateno,\\
     363}\\
     364Кандидат клуч: (id_cas, id_slusanje).\\
     365Примарни атрибути: id_cas, id_slusanje.\\
     366**R,,17,,** e во **BCNF** поради тоа што левата страна на сите ф.з. е суперклуч.
     367---
     368R,,18,,(id_admin, id_nastavnik, id_ucenik, id_kvalifikacija, id_predmet, id_cas, id_domasno, datum_zainteresiran, id_slusanje, dali_zavrseno_domasno, cena_po_cas, broj_casovi_po_dogovor, opis_predava_predmet)\\
     369F,,18,, = {\\
     370(id_predmet, id_ucenik) → datum_zainteresiran, \\
     371(id_ucenik, id_domasno) → dali_zavrseno_domasno,\\
     372(id_cas, id_slusanje) → id_ucenik,\\
     373(id_nastavnik, id_predmet) →  opis_predava_predmet,\\
     374(id_nastavnik, id_ucenik) →  cena_po_cas, \\
     375(id_nastavnik, id_ucenik) →  broj_casovi_po_dogovor\\
     376}\\'
     377
     378