12
Logi~ko oblikuvawe na bazi podatoci Boj s-Kodovi normalni for mi  Д-р Вено Пачовски 08/04/2009 1/22 Funkciski i pove}ezna~ni видови funkciski zavisnosti 1 : 1  Матичен број   број на ЛК ( -  број на пасош  )  ДНК   отисок од прст ( - слика на рожница  ) 1 : n  Сопственик   парцели  Парцела -  координати ( најмалку 3)  Жители <– адреса (n : 1)  Матичен лекар -  пациенти m : n  Студенти  предмети  Читатели  книги

BP MAK P 08 Logicko Oblikuvanje Normalni Formi

Embed Size (px)

Citation preview

  • Logi~ko oblikuvawe na bazi podatociBojs-Kodovi normalni formi

    -

    08/04/2009 1/22

    Funkciski i pove}ezna~ni funkciski zavisnosti

    1 : 1 ( - ) ( - )

    1 : n - ( 3)

  • 08/04/2009 2/22

    Normalni formi - Voved

    Relacionite bazi se dominanten metod za smestuvawe na povtoruva~ki podatoci bidej}i ovozmo`uvaat smestuvawe i odr`uvawe na podatoci poefikasno od drugite tipovi na bazi podatoci.

    Fakti~ki, tie gi delat podatocite vo pove}e tabeli, a potoa, so povrzuvawe na tie tabeli, se dobiva baranata informacija.

    Se poka`uva deka e poefikasno da se smestat informaciite vo pove}e "tesni" tabeli otkolku vo edna mnogu {iroka tabela. Me|u drugoto, toa rezultira i so pokonzistentni i posigurni podatoci.

    Procesot na "delewe" na podatocite na nekolku pomali tabeli se vika "normalizacija" i e nare~en spored soodvetniot del od matemati~kata teorija {to se koristi pri definirawe i pojasnuvawe na relacionite bazi podatoci.

    Postojat pove}e pravila za podelba na podatocite vo zasebni tabeli, i tie pravila se narekuvaat normalni formi. ]e se obideme da gi pojasnime popodrobno prvite 4.

    08/04/2009 3/22

    Normalni formi

    1-va normalna forma - "Eliminiraj gi povtoruva~kite grupi". Toa zna~i deka, za sekoe mno`estvo na povrzani poliwa, treba da se napravioddelna tabela i na taa tabela da i se dodeli primaren klu~.

    2-ra normalna forma - konstruirano za odbegnuvawe na problemi. Ako pole vo edna tabela zavisi samo od del od slo`eniot klu~, potrebno e da se odvoi vo posebna tabela, zaedno so onoj del od klu~ot od koj zavisi.

    3-ta normalna forma - (sli~na na vtorata) dizajnirana za izbegnuvawe na anomaliite pri korekcija i bri{ewe. No, taa specifi~no e naso~ena kon vrskite vo tabelite {to imaat samo eden klu~. Poliwata {to ne pridonesuvaat kon opisot na klu~ot na tabelata treba da se odvojat vo posebni tabeli.

    4-ta normalna forma - naj~esto nema potreba da se odi podaleku od 3-tata NF. No, se pojavuvaat situacii kade informacijata treba u{te pove}e da se rasitni. 4-tata NF bara da gi odvoime nezavisnite povtoruva~ki vrski. Nitu edna tabela ne bi trebalo da sodr`i dve ili pove}e 1:n ili m:n vrski osven ako tie ne se direktno povrzani edna so druga.

  • 08/04/2009 4/22

    Osnovna datoteka 1/2

    Zapo~nuvame so osnovnata datoteka.

    Taa datoteka ja smestuvame vo tabela i ja primenuvame sekoja od prvite tri normalni formi za da vidime kako podatocite se transformiraat vo "normalizirani" tabeli.

    Da pretpostavime deka treba da se sostavi edna tabela vo koja }e se smestat site podatoci potrebni za da se naplatat privatnite telefonski razgovori i ovozmo`enite pogodnosti na vrabotenite voedna kompanija.

    Pod pogodnosti podrazbirame oprema {to mu e stavena na raspolagawe na vraboteniot, kako na primer: telefonska sekretarka, prenaso~uva~ na povici, mobilen telefon, pejxer i sl.

    Bi mo`ele da zapo~neme so slednata struktura:

    08/04/2009 5/22

    Osnovna datoteka 2/2 (struktura)

    Struktura na TELEFON:

    1 Vraboten *A202 Pozicija A203 Oddel A204 Oddel-Menaxer A205 Oprema 1 A306 Oprema 2 A307 Oprema 3 A308 Oprema 4 A309 Oprema 5 A30

  • 08/04/2009 6/22

    1-va normalna forma 1/4

    Prvoto "pravilo" za normalizirawe na bazite podatoci mo`e da se prevede kako "Eliminiraj gi povtoruva~kite grupi".

    za sekoe mno`estvo na povrzani poliwa, treba da se napravi oddelna tabela i na taa tabela da i se dodeli primaren klu~.

    zna~i treba da ja podelime tabelata vo dva dela, i toa:

    PERSONAL 1 Vraboten *A20

    2 Pozicija A203 Oddel A204 Oddel-Menaxer A20

    OPREMA 1 Vraboten *A20

    2 Oprema-opis *A30

    08/04/2009 7/22

    1-va normalna forma 2/4

    Site opisi na Oprema se smesteni vo posebna tabela Oprema i se povrzani so tabelata PERSONAL preku imeto na vraboteniot (Vraboten).

    Dvete tabeli se potesni od osnovnata, no i soodvetno podolgi. napredok, bidej}i relacionite bazi podatoci tabeli se dizajnirani da rabotat so

    relativno tesni, a dolgi tabeli daleku poefikasno otkolku so {iroki, a kratki tabeli.

    osobeno to~no ako operaciite {to se izvr{uvaat vrz ovie tabeli se vr{at so koristewe na klu~nite poliwa, bidej}i povrzuvaweto preku klu~ovite se vr{i osobeno brzo.

    Zabele`uvame deka poliwata na Oprema se dvete klu~ovi. Primarniot klu~ mora da bide edinstven i vo slu~ajot pretstavuva sostav na site poliwa, {to e dosta neprakti~no.

    Vo takov slu~aj, koga primarniot klu~ e mnogu dolg, pove}eto programeri voveduvaat ID odnosno identifikacioni {ifri za da se vospostavi edinstvenosta na klu~ot.

    Zna~i, tabelata Oprema }e go dobie sledniot oblik: Struktura na OPREMA 1 Vraboten *A20

    2 Oprema-ID *A23 Oprema-opis A30

  • 08/04/2009 8/22

    1-va normalna forma 3/4

    Sega, za da odgovorime na baraweto postaveno pogore, treba da gipovrzeme dvete tabeli, otkako vo vtorata tabela sme go na{le par~eto oprema {to ne interesira. Tabelata ODGOVOR }e bide lista na oddelite vo koi rabotat vraboteni koi ja koristat soodvetnata oprema i ova barawe }e bide izvr{eno daleku pobrzo, a }e zafati mnogu pomalku sistemski resursi (prostor na diskot i rabotna memorija).

    No, so ova ne se re{eni site problemi.

    [to ako treba da se smeni opisot na nekoe par~e oprema povrzano so nekoja vrednost na Oprema-ID. Na primer, namesto "Telefonska sekretarka", se voveduva "Telefonski prosleduva~ na povicite"? Ako soodvetniot jazik nema mo`nost za avtomatska promena na site soodvetni vrednosti, (a pove}eto nemaat), toga{ treba promenata da se izvr{i manuelno. Pri toa, sekoga{ postoi mo`nost nekade da se proma{i, odnosno da ne se izvr{i promenata, pa, kako rezultat, proizleguva deka ista {ifra mo`e da ima dva opisi.

    (nekonzistentnost na podatocite vo bazata) anomalija pri korekcija.

    08/04/2009 9/22

    1-va normalna forma 4/4

    Drugiot problem se pojavuva ako eden vraboten e premesten vo druga kompanija ili e otpu{ten, i pritoa e edinstven {to koristi nekoe par~e oprema.

    Toga{, so bri{ewe na negovite podatoci se gubi i referencata na toa soodvetno par~e oprema.

    Zna~i, opremata seu{te fizi~ki postoi i e vo firmata, no vo bazata podatoci ja nema i nema dokaz deka bilo koga postoela.

    anomalija pri bri{ewe.

  • 08/04/2009 10/22

    2-ra normalna forma 1/2

    Imeno, ako pole vo edna tabela zavisi samo od del od slo`eniot klu~, potrebno e da se odvoi vo posebna tabela, zaedno so onoj del od klu~ot od koj zavisi.

    Vo primerot daden pogore, poleto Oprema-opis zavisi samo od poleto Oprema-ID, {to e del od slo`eniot klu~. Nema nikakva vrska so poleto Vraboten. Zna~i, ako ovaa tabela ja podelime i formirame treta tabela, toga{ dobivame:

    PERSONAL 1 Vraboten *A20

    2 Pozicija A203 Oddel A204 Oddel-Menaxer A20

    INVENTAR 1 Vraboten *A20

    2 Oprema ID *A2

    OPREMA 1 Oprema ID *A2

    2 Oprema-opis A30

    08/04/2009 11/22

    2-ra normalna forma 2/2

    Anomaliite pri korekcija se daleku polesni za odbegnuvawe. Na primer, opisot se javuva samo na edno mesto vo celiot sistem, pa nema mo`nost za gre{ka.

    Anomaliite pri bri{ewe gi nema, bidej}i vrabotenite i nivnite podatoci se kompletno izolirani od opremata i opisot. Taka, pri bri{ewe na vraboten, se bri{e i vrskata, no ne i opisot na opremata.

    Zabele`uvame deka tabelite stanuvaat se pomali, so se pomalo duplirawe na {irokite vrednosti na poliwata. Ako nekade toa duplirawe ne mo`e da se izbegne, toga{ voveduvame ID broj.

    Pra{alnite procesi se isto tolku brzi kako prethodnite, iako koristime pove}e tabeli bidej}i vrskite se vospostaveni na klu~ni poliwa.

    Relacionite bazi se dizajnirani i optimizirani za obrabotka na klu~ni vrski pome|u tabelite.

  • 08/04/2009 12/22

    3-ta normalna forma 1/4

    Tretata normalna forma e sli~na na vtorata so samiot fakt {to e dizajnirana za izbegnuvawe na anomaliite pri korekcija i bri{ewe. No, taa specifi~no e naso~ena kon vrskite vo tabelite {to imaat samo eden klu~.

    Vo tabelata PERSONAL, dadena pogore zadovoleni se prvata i vtorata normalna forma. Imeno, nema povtoruva~ki grupi, i nema slo`eni klu~ovi. No, ima problem so strukturata na tabelata.

    Sekoj Vraboten ima Pozicija vo firmata, i mu pripa|a na nekoj Oddel.

    No, Oddel-Menaxerot nema nikakva vrska so vraboteniot (od aspekt na relacioni bazi podatoci). Toa pole mu pripa|a na poleto Oddel bidej}i toa e vraboten {to upravuva so Oddelot. Ova ka`uva deka ima smisla da se podeli informacijata za oddelite vo posebna tabela.

    08/04/2009 13/22

    3-ta normalna forma 2/4

    3-tata normalna forma specificira deka poliwata {to ne pridonesuvaat kon opisot na klu~ot na tabelata treba da se odvojat vo posebni tabeli.

    Taka, tabelata PERSONAL se deli na dva dela, pa se dobiva:

    PERSONAL 1 Vraboten *A20

    2 Pozicija A203 Oddel-ID A3

    ODDEL 1 Oddel-ID *A3

    2 Oddel-opis A203 Oddel-Menaxer A20

    INVENTAR 1 Vraboten *A20

    2 Oprema ID *A2

    OPREMA 1 Oprema ID *A2

    2 Oprema-opis A30

  • 08/04/2009 14/22

    3-ta normalna forma 3/4

    (Poleto Oddel-ID e vovedeno od isti pri~ini kako pogore. Imeno, ako treba da se duplira, toga{ gi pravime dupliranite vrednosti {to pomali.)

    Sega, na{eto pra{awe zavisi od site ~etiri tabeli.

    08/04/2009 15/22

    3-ta normalna forma 4/4

    So tretata normalna forma, informacijata vo sekoja tabela se odnesuva samo na klu~ot na tabelata.

    Celiot sistem se svede na ~etiri tabeli so vkupno 10 poliwa,

    No, pove}eto operacii se vr{at vrz klu~ovite, {to obrabotkata osobeno ja zabrzuva.

    Ovozmo`eno e sekoj vraboten da ima proizvolen broj na par~iwa Oprema i nema gubitok na prostor za onie {to imaat samo po edno ili dve par~iwa oprema. Podatocite za Oddel i Oprema se odvoeni vo svoi, posebni tabeli, i se obezbedeni od anomaliite na bri{ewe i korekcija.

  • 08/04/2009 16/22

    4-ta normalna forma 1/4

    Kaj pove}eto aplikacii nema potreba da se odi podaleku od 3-tata NF. No, se pojavuvaat situacii kade informacijata treba u{te pove}e da se rasitni.

    Na primer, {to ako sakame vo sistemot da gi vklu~ime i najva`nite telefonski broevi? Imeno, sekoj ~len na personalot ~uva telefonski broevi na najva`nite klienti i, pri eventualna promena na svojot broj, bi trebalo da gi izvesti klientite {to e mo`no pobrzo.

    Mo`eme da vklu~ime pole vo tabelata INVENTAR {to }e ja sodr`i i ovaa informacija.

    Struktura na: INVENTAR 1 Vraboten *A20

    2 Oprema ID *A23 Iten telefon A4

    08/04/2009 17/22

    4-ta normalna forma 2/4

    Sega, zabele`uvame deka broevite na par~iwata oprema nemaat nikakva vrska so brojot na telefonskite broevi. I u{te ne{to, nekoi vraboteni imaat pove}e par~iwa oprema, a drugi pak, pove}e broevi.

    Od druga strana, gornata tabela implicira deka ima vrska pome|u poliwata "Oprema-ID" i "Iten telefon" za sekoj vraboten, {to voop{to ne e to~no. Vsu{nost, nema nikakva vrska pome|u ovie dve poliwa osven, se razbira faktot deka tie se atributi na poleto Vraboten. Sekoj vraboten mo`e da ima pove}e Itni broevi, no i pove}e par~iwa oprema.

    4-tata NF bara da gi odvoime nezavisnite povtoruva~ki vrski. Specificira deka nitu edna tabela ne bi trebalo da sodr`i dve ili pove}e 1:n ili m:n vrski osven ako tie ne se direktno povrzani edna so druga.

  • 08/04/2009 18/22

    4-ta normalna forma 3/4

    Ili, da pretpostavime deka se javila potreba da smestime nekoe drugo dopolnitelno pole vo bazata koe, na primer, pretstavuva datum koga nekoj vraboten dobil nekoja oprema. Postoi direktna vrska pome|u dvete poliwa i tie logi~no pripa|aat vo edna tabela.

    Drug na~in da se gleda na ne{tata e deka postoi vrska 1:1 pome|upar~eto Oprema {to mu e dodeleno na Vraboten i datumot koga mu edodeleno. Postoi i vrska 1:n pome|u Vraboten i datumot. Tabelata izgleda vaka:

    Struktura na: INVENTAR 1 Vraboten*A20

    2 Oprema ID *A23 Datum dodeleno D

    No, vo originalniot primer za Itnite telefoni, sepak treba da kreirame dve tabeli, po edna za Oprema i za Itni telefoni,

    Struktura na: INV-OPR 1 Vraboten*A20

    2 Oprema ID *A2 Struktura na: INV-ITEL 1 Vraboten*A20

    2 Iten telefon A4

    08/04/2009 19/22

    4-ta normalna forma 4/4

    Ovde se pojavuva eden problem od prakti~na priroda.

    Imeno, kako da se organiziraat izve{taite, bidej}i nekoi od niv }e treba da vklu~at i tri, me|usebno povrzani tabeli.

    Izve{taite se obi~no povrzani so edniot od detalite, i dosta e te{ko da se povrze drugiot.

  • 08/04/2009 20/22

    - 5-ta NF

    5-ta NF - dekompozicija na tabelite {to mo`at da se dobijat kako rezultat na prirodno spojuvawe na tri i pove}e tabeli.

    08/04/2009 21/22

    Zavr{na napomena za normalizacijata

    treba da se obrati vnimanie da ne se izvr{i "prenormalizacija" odnosno prekumerna normalizacija.

    Vo ekstremen slu~aj, sekoja baza podatoci mo`e da se svede na golem broj tabeli so po samo dve poliwa. No, se poka`uva deka, pri pravewe na malku poslo`en pregled, treba da se povrzuvaat premnogu tabeli, so {to efektite od normalizacijata se gubat.

    Zna~i, prekumerna normalizacija ne e dobra osven ako pritoa ne se dobie nekakov nov kvalitet.

  • 08/04/2009 22/22

    !

    , ?