Download as pdf or txt
Download as pdf or txt
You are on page 1of 138

TURINYS

1 2

.................................................................................................................................................... 3

VADAS ................................................................................................................................. 3
.................................................................................................................................................... 8

KANONINS SCHEMOS IR RELIACINIS MODELIS ......... 8


2.1. Duomen pavaizdavimas lentelinje formoje ...................................................................... 8 2.2 Duomen bazi kanonins schemos .................................................................................... 10 2.3. Duomen bazi valdymo sistemos ..................................................................................... 13 2.4. Kanonini schem klasifikavimas ...................................................................................... 14 2.5. Kanonini schem transformavimas .................................................................................. 15 2.6. Reliacins algebros operacijos............................................................................................ 19 2.7. Reliacinio skaiiavimo kalba SQL ..................................................................................... 27 2.7.1 Duomen bazs deklaravimas ...................................................................................... 28 2.7.2. Duomen lenteli sukrimas ....................................................................................... 28 2.7.3 Paprastosios uklausos.................................................................................................. 29 2.7.4. Duomen terpimas, modifikavimas, paalinimas....................................................... 32 2.7.5. Lenteli struktros modifikavimas .............................................................................. 33 2.7.6. Virtualios lentels ir sinonimai .................................................................................... 34 2.7.7. Indeks sukrimas ....................................................................................................... 36 2.7.8. Iraik panaudojimas.................................................................................................. 37 2.7.9. Agreguot funkcij panaudojimas............................................................................... 39 2.7.10. Predikatai BETWEEN, IN ir LIKE operatoriuje SELECT.......................................... 40 2.7.11. Rezultat riavimas.................................................................................................. 41 2.7.12. Eilui grupavimas .................................................................................................... 43 2.7.13. Slygotos eilui grups ............................................................................................ 44 2.7.14. Lenteli sumavimas ................................................................................................... 45 2.7.15. Lenteli sujungimas ................................................................................................... 45 2.7.16. Rezultat lenteli riavimas ir grupavimas.............................................................. 47 2.7.17. Vidinis lenteli sujungimas ....................................................................................... 48 2.7.18. Sub-uklausos su pavienmis grinamomis reikmmis ......................................... 51 2.7.19. Sub-uklausos su grupe grinam reikmi ............................................................ 53 2.7.20. Raktaodi ANY ir ALL panaudojimas .................................................................... 54 2.7.21. Predikato EXISTS panaudojimas ............................................................................... 55 2.7.22. Koreliuotos vidins uklausos ............................................................................. 56

.................................................................................................................................................. 58

FUNKCINS PRIKLAUSOMYBS IR RAKTAI ...................... 58


3.1. Funkcini priklausomybi apibrimas.............................................................................. 58 3.2. Funkcini priklausomybi ivedimo taisykls ................................................................... 59 3.3. Galin funkcini priklausomybi aib................................................................................ 62 3.4. Ivedimo taisykli savybs ................................................................................................. 64 3.5. Santyki schemos raktai ..................................................................................................... 68

.................................................................................................................................................. 70

FUNKCINI PRIKLAUSOMYBI DENGTYS .......................... 70

TURINYS

IR J EKVIVALENTIKUMAS ................................................................. 70
4.1. Ivesties orientuotieji acikliniai grafai................................................................................ 70 4.2. Uduot funkcini priklausomybi ir atribut aibi ekvivalentikumas ........................... 74 4.3. Tiesiogins funkcins priklausomybs ............................................................................... 77 4.4. Minimalios funkcini priklausomybi dengtys .................................................................. 80 4.5. Redukuotosios ir optimaliosios dengtys ............................................................................. 87

.................................................................................................................................................. 91

SUDTINI FUNKCINI PRIKLAUSOMYBI DENGTYS .......................................................................................................................... 91


5.1. Sudtins funkcins priklausomybs .................................................................................. 91 5.2. Sudtini funkcini priklausomybi aibs pertvarkymas .................................................. 94 5.3. Funkcini priklausomybi atstatymas i struktrini tip aibs ...................................... 100

................................................................................................................................................ 104

JUNGIMO/PROJEKCIJOS PRIKLAUSOMYBS IR RELIACINI SCHEM PROJEKTAVIMAS .............................. 104


6.1. Daugiareikms priklausomybs ...................................................................................... 104 6.2. Jungimo/projekcijos priklausomybs ............................................................................... 106 6.3. Pagrindinis duomen bazi projektavimo kriterijus......................................................... 110 6.4. Reliacini schem projektavimo dekompozicijos metodas.............................................. 113 6.5. Nenormalizuot schem trkumai.................................................................................... 125 6.6. Dekompozicijos metodo trkumai.................................................................................... 126 6.7. Pilnosios reliacins duomen bazs.................................................................................. 130 6.8. Duomen bazi projektavimo sintezs metodas............................................................... 130

LITERATRA ............................................................................................................. 137

VADAS

1
VADAS
Tradicinis duomen bazi projektavimas apibriamas, kaip procesas, kurio metu yra analizuojami vartotoj poreikiai, apraomos duomen savybs ir poreikiams. relevantin informacija atvaizduojama DBVS palaikomomis duomen struktromis [1]. is procesas suskaidomas keturis etapus: reikalavim analizs faz, konceptualaus, loginio ir fizinio projektavimo fazes. Konceptualaus projektavimo fazje modeliuojama vartotoj informacija bei jos apdorojimas. ioje fazje naudojami trys pagrindiniai semantiniai modeliai - objektinis, EER- ir reliacinis duomen modeliai. ie modeliai yra neutrals, neorientuoti konkret DBVS palaikom model. Reikalavim analizs fazje giliai analizuojama organizacijos veikla ir rezultate tiksliai apraomos atskir vartotoj grupi funkcijos. Taiau duomen struktros paprastai lieka netiksliai apibrtos, neformalizuotos. Konceptualaus projektavimo fazje formalizuojami semantiniai sryiai tarp problemini svok, panaudojant tam tikr vien ar net kelis semantinius duomen modelius. Pastaruoju atveju integruojant atskir vartotoj grupi informacijos poreikius konceptualiniame lygmenyje skirtingus duomen semantinius modelius tenka transformuoti, kad specifikuoti duomen bendrsias savybes globalinje schemoje. Loginio projektavimo fazje sudaroma DB login schema, orientuota pasiriktos DBVS duomen model, kuris gali skirtis nuo duomen modelio, panaudoto, sudarant globalin schem. ia taip reikalingos modelio transformacijos, ypa tuo atveju, kai norima login schem suprojektuoti automatizuotu bdu. Savo ruotu, kuriant sofistines, plaios paskirties DBVS stengiamasi suprogramuoti unifikuotus duomen manipuliavimo modulius, orientuotus tipini plataus spektro semantini duomen sryi apdorojim. Tokie sryiai dar vadinami duomen abstrakcijomis. Fizinio projektavimo metu DBVS palaikomo duomen modelio login schema papildoma konkreios kompiuterins aplinkos ir operacins sistemos duomen fiziniais parametrais. itokia nuosekli projektavimo fazi seka bdinga taip vadinamai duomen tiesioginei ininerijai. Konceptualaus projektavimo fazje, kai apraomi vairi vartotoj informacijos poreikiai fiksuojami semantiniai sryiai tarp problemini svok, aptinkamos siauros, nesuderintos arba, atvirkiai, persotintos, plaios svokos. iuo atveju poreiki integracijos etape tenka vesti naujas svokas (dalykins srities konceptus), kad panaikinti svok nesuderinamum ir upildyti pastebtas semantines spragas. Tokie procesai yra humanizuoti, ia reikalingi ekspertai, gerai imanantys dalykin srit, kad duomen modelius bt galima semantikai praturtinti. Analogika situacija pastebima, sprendiant duomen atvirktins ininerijos udavinius [2], kai projektuojant konceptualaus lygio globalin schem panaudojamos palikuonins veikianios DB ir j schemos bei vertinami nauji informacijos poreikiai. iuo atveju reikalavim integracijos procese fiksuojant semantinius sryius tarp koncept gali atsirasti taip vadinamos semantins

TURINYS

spragos, kurios upildomos vedant naujus adjekvaius konceptus. EER- diagramos naudojamas kaip reliacini duomen bazi modelio kvazi-standartas, ir j pagalba specifikuojami duomen struktriniai apribojimai. Tiesiogins ininerijos atveju struktriniai EER-apribojimai transformuojami reliacinius apribojimus, o atvirktins ininerijos atveju EER- apribojimai transformuojami koncepcinio OBJEKTSVYBI modelio konstrukcijas [3], semantins iraikos galimybi poiriu bdingas abstraktiems duomen tipams, kuri apraymui gali bti panaudojama SQL3 kalba [4]. Vienas i pagrindini tiksl projektuojant DBVS yra padengti vartotoj, naudojani duomen bazes, udavini semantik. Projektuojamos plaios paskirties DBVS orientuojamos tam tikro duomen modelio panaudojim. Objektiniuose ir EER duomen modeliuose naudojamos bendrosios duomen abstrakcijos yra tipo/supertipo (specializavimo/apibendrinimo), agregavimo ir asociatyviniai sryiai. Asociatyviniai sryiai duomen bazi koncepcinio projektavimo stadijoje yra materializuojami arba, kitais odiais tariant, paveriami agregatini sryi tipais. Tarp dalykins srities koncept uduoti tipo/supertipo sryiai dar vadinami isa sryiais. Agregatinius ir isa sryius, specifikuotus duomen bazi koncepcinse schemose, vadinsime pagrindiniais struktriniais apribojimais. altiniuose [5,6] pateikta jungtin semantini sryi taksonomija. ios klasifikacijos sryiai naudojami lingvistikoje, logikoje ir kognityvinje psichologijoje. Isami i semantini sryi analiz pateikta [5]. Specifikuojant semantinius sryius panaudosime apibendrintas objektins orientacijos duomen abstrakcijas [3], bdingas abstraktiems duomen tipams [4]. Daugeliui iandienos kompanij globalus prijimas prie duomen bazi (DB) yra pagrindinis skms altinis. Taiau tai taip pat yra didel problema, nes daugelis duomen bazi atsirado nepriklausomai viena nuo kitos laiko atvilgiu. lugo arba nedav tiktinos naudos nemaai duomen integravimo projekt. Technins prieastys - tai struktrinis ir semantinis heterogenikumas, taip pat integravimo udavinio sudtingumas, be to, danai nevertinama duomen integravimo kaina ir nauda. Federatyvinio informacijos integravimo poiriu [30] naudojami trys metodai, kaip isprsti heterogenik duomen bazi schem integravimo problem [31,32,33]. Kad ivengti semantini konflikt tarp skirting schem specifikacij, jos turi turti bendresn viening duomen model, kurio pagrindu turi bti sudarytos koncepcinio lygio schemos organizacijos padaliniams ir aktoriams. i problematika yra organizacij modeliavimo problematika [7,34,35]. Pragmatiniai ir semantiniai aspektai detaliai inagrinti monografijoje [8]. Pagrindins nuostatos, kuri prisilaikoma ioje monografijoje pragmatiniais klausimais, pateiktos [9]. Informacijos sistema yra mons arba organizacijos dalis ir jos branduol sudaro duomen saugyklos, patalpintos kompiuterins sistemos iorinje atmintyje. Kadangi informacijos sistemos apima daug organizacijos padalini, tai duomen vedimas, saugojimas, apdorojimas ir panaudojimas bna paskirstytas, priklausomai nuo to, kokie vartotojai ir kokius informacinius udavinius sprendia valdymo procese. Vartotoj informacijos poreikiai slygoja informacijos sistemos turin, ireikiam realaus pasaulio objektais ir sryiais tarp j. Apibriant organizacijos model knygos [10] autoriai naudoja koncepcinio modelio svok. Jos turin sudaro objekt sistema, kurios pagrindu apibriama realaus pasaulio nagrinjama dalis. Informacijos sistema (IS) susideda i trij dali [11]: koncepcins schemos, informacijos bazs ir informacinio procesoriaus. Koncepcin schema ir informacijos baz yra statin sistemos dalis, kai tuo tarpu informacinis procesorius keiia bazs turin

TURINYS

prisilaikant apribojim, kuriuos ireikia koncepcin schema. Klasikinis ESYBI-RYI (ER) formalizmas [12] ir jo ivystymai siekia aprayti objekt sistemos statin struktr. ER-diagramos yra grafin notacija, charakterizuojanti esybi tipus, j atributus ir sryius, kurie sujungia tarpusavyje objektus. ER-formalizmo pasekjai [13,14] stengsi padidinti koncepcini schem iraikos galimybes. ios koncepcini schem galimybs padengiamos vairiais apribojimais. Struktriniai apribojimai yra pateikiami deklaratyvioje formoje ir tik vliau juos informacinis procesorius konvertuoja procedrin form. Struktriniai apribojimai susiaurina reikmi sritis, kuriose esybi arba sryi atributai yra interpretuojami. Vartotoj poreiki nustatymas apima tris modeliavimo lygius [15] : meta-lyg, problemin lyg ir egzempliori lyg. Kitais odiais tariant visi trys lygiai yra sudaryti i meta-tip, tip ir tip- egzempliori. Egzempliori lygis susideda i problemins srities koncept pavyzdi. Probleminio lygio konceptai yra meta-lygio svok (AGENTAS, VYKIS, VEIKSMAS, ESYB, RYYS) pavyzdiai. Probleminio lygio svokos vardina problemins srities objektus arba sryius (PIRKJAS, PARDAVJAS, USAKYMAS). Meta-svokos ir meta-ryiai apibriami naudojant tikslus orientuot vartotoj poreiki nustatymo terminologij. ESYBS, RYIAI, VYKIAI, AGENTAI yra svokos, kurios naudojamos kaip specials meta-svokos OBJEKTAS atvejai. RYYS gali bti nagrinjamas kaip subordinuotas OBJEKTAS. OBJEKTAS ir RYYS turi savo egzempliorius. RYI-EGZEMPLIORI egzistavimas slygojamas sryi tarp atatinkam OBJEKT-EGZEMPLIORI egzistavimu. Paprastai objekto-egzemplioriaus svoka reikia kok nors pavien daikt, t. y. objekto pavyzd, o OBJEKTAS reikia panai daikt klas. iame darbe OBJEKTO svoka naudojama kaip objektegzempliori KLAS, kadangi mes norime OBJEKT suprasti kaip tip, t. y. kaip esybi aib su identika struktra. Treiojo skyriaus teoriniame nagrinjime mes norime apsiriboti objekt sistemos statine struktra. Daktaro tezse [16] narinjamas ESYBI-RYI-LAIKO modelis, iplstasis ER-modelis, kuris naudojamas istorinei informacijai ir mons funkcijoms modeliuoti. Laikas yra vedamas kaip atskira esybi klas. Kiekvienas objektas arba objekt sryis gali bti sujungtas su LAIKU. Tai yra gera idja natraliau pavaizduojant objektus ir tuo paiu j schemas. Taiau laike egzistuojantys objektai ir sryiai ER-formalizmo kalbos prasme yra RYIAI, kurie savyje apjungia laik. Koncepcini schem prasme, statiniu aspektu LAIK galima traktuoti kaip problemin objekt, nesuteikiant jam ypatingo statuso. Funkcin metodologija [17,18] orientuota valdymo funkcij dekompozicij, kai tuo tarpu objektins metodologijos [19,20] orientuotos pirmiausia objekt identifikavim. Vliau prie i objekt, duomen objekt, prijungiamos procedros. Tai yra du skirtingi konceptualaus modeliavimo prasme poiriai. iose dviej krypi metodologijose naudojami trij tip modeliai: objekt sistemos modelis, bsen transformavimo ir duomen sraut diagramos. ie trys modeliuojamos sistemos aspektai tarpusavyje suderinami. Funkcijos gali bti dekomponuotos iki subfunkcij ir, analogikai, objektai gali bti suskaidyti subobjektus tam, kad subfunkcijos ir subobjektai tarpusavyje susibalansuot. Bsen transformavimo diagramos iliustruoja veiksmus, kurie priklauso nuo objekt atribut reikmi, ir iose diagramose naudojami veiksmai yra funkcijos i duomen sraut diagram; bsen diagram vykiai traktuojami kaip procedros objekt atribut reikmi atvilgiu. Kiekviena duomen sraut

TURINYS

diagramos saugykla yra objekt ir sryi rinkinys i objekt sistemos modelio; sraut diagramos funkcijos manipuliuoja duomenimis, specifikuotais objekt sistemos atributais. iame leidinyje ketvirtame ir penktame skyriuose isamiai inagrinti struktrini tip projektavimo klausimai, kurie teoriniu poiriu nra pakankamai vientisai itirti objektins metodologijos srityje [19,20]. ias spragas pabandyta upildyti pasinaudojant nusistovjusiais konceptais i duomen bazi reliacins teorijos [21]. ioje teorijoje pakankamai detaliai inagrintos duomen priklausomybs - funkcins, daugiareikms, jungimo-projekcijos. J pagrindu ivystyti duomen bazi logins struktros projektavimo dekompozicijos ir sintezs metodai. Mintos duomen priklausomybs sudaro fundamental pagrind objekt sistemos vienareikmikam, normalizuotam iskyrimui. ios duomen priklausomybs yra populiarios, taiau j yra ir daugiau.Visas kitas priklausomybes, kurios padidina duomen semantins iraikos galimybes, padengiamos procedriniais objektais, kurie realizuojami duomen apdorojimo procedromis IS eksploatavimo metu. Objekt sistemoje ioms procedroms numatomi duomen objekt atitikmenys. Procedra PR bus adekvati objektui Q, jeigu procedros PR kiekvienas ijimo kintamasis yra objekto Q savyb ir kiekvienam objektuiegzemplioriui qQ procedra PR priskiria tiksliai po vien objekto Q savybi reikm. Tai yra procedrini ir duomen objekt suderinamumo kriterijus. Juo vadovaujantis duomen objektai yra specializuojami, o procesai i sraut diagramos dekomponuojami, kad gauti subalansuot objekt sistem. Monografijoje pateiktas koncepcini taip vadinam OP schem matematinis pagrindimas. iomis schemomis specifikuojami specializuoti objektai su adekvaiomis objekt savybmis. Objekto Q savyb P yra adekvati, jeigu kiekvienas objektas-egzempliorius qQ gauna tiksliai po vien kiekvienos savybs P reikm. Meta-sryis tarp ESYBS ir OBJEKTO vairiuose poiriuose yra skirtingai suprantami. Poiryje [15] ESYB yra OBJEKTO specialus atvejis. Prieingai [20], ESYBS konceptas apima objektus-egzempliorius, OBJEKTUS-klases, atributus, ryius ir asociacijas. ia OBJEKTO konceptas yra specialus ESYBS koncepto atvejas. Ta pati esyb pasireikia skirtingai ir elgiasi skirtingai, priklausomai nuo konteksto, kuriame ESYB vartoja tas pats arba kitas vartotojas. Vartotoj informacijos poreiki nustatymo ir ini atvaizdavimo procese specialistai ir ekspertai manipuliuoja esybi vardais, kurie yra traukiami IS konceptual model. Jis atvaizduoja duomen savybes ir struktrinius apribojimus. Problemins srities prieasipasekmi fenomenas slygoja tarp esybi taksonominius sryius. Taksonominiai sryiai yra keliai, vedantys nuo bendresni esybi prie detalesni. Formaliai irint ie sryiai yra dalinis sutvarkymas - jie yra tranzityvs, refleksyvs ir antisimetriniai. is poiris yra apraytas [22]. Pasinaudojant esybi vard aibs daliniu sutvarkymu apibriamas universalus struktrinis tipas. Bet kuris objektas Q yra universalaus tipo potipis. Suprantama, kad is pasilytas formalizmas nra vienintelis. ia inomos analogikos paskirties kitos matematins schemos [23,24]. Silomas poiris yra ini atvaizdavimo abstrakioje semiotinje erdvje metodo [25] dalinio atvejo ivystymas, pritaikant j objektini duomen bazi koncepcini schem projektavimui. Objektinse duomen bazse naudojamos struktrini tip elgsenos standartins funkcijos [26].Koncepcinje schemoje specifikuoti objekt apribojimai, kurie pateikiami deklaratyvinje formoje, program sudarymo arba generavimo CASE priemonmis etape konvertuojami procedrin form. Apribojim korektikumas kontroliuojamas dviejose stadijose -

TURINYS

programos kompiliavimo metu (static type cheking) ir jos vykdymo metu (run time checking) [27]. Struktrinis OP modelio komponentas papildytas tipinmis struktrini tip elgsenos funkcijomis ir vartotojo uduotomis operacijomis [28] ibaigia model. is ibaigtas modelis traktuojamas objektiniu. Objektinio komponento kalbos prototipu yra SQL3 kalba [29], kuri atvilgiu SQL turi abstraki duomen tip prapltim. vade trumpai apvelgti vairs poiriai informacijos sistem duomen semantikos analiz ir duomen struktr projektavim. Pagrindinis duomen bazi projektavimo metodas, kuris turi pakankam teorin ibaigtum yra reliacini duomen bazi projektavimo dekompozicijos metodas [21], kuris ivystytas etajame skyriuje iki universali struktrini tip sintezs metodo. is metodas gali bti panaudotas objektini duomen bazi ir duomen objekt struktriniam komponentui projektuoti. Pateikta teorin mediaga yra naudojama Kauno technologijos universiteto Informatikos fakultete, skaitant bakalaurini studij Duomen bazi paskait kurs ir magistrini studij kurs Duomen bazs ir semantiniai modeliai.

DUOMEN BAZI RELIACIN TEORIJA

2
KANONINS SCHEMOS IR RELIACINIS MODELIS
2.1. Duomen pavaizdavimas lentelinje formoje
Reliacins duomen bazs yra populiarios, jos orientuotas vartotojui betarpikam naudojimui. Reliacini duomen bazi modelio pagrindiniai privalumai yra: - duomen struktros paprastumas ; - nesudtingi duomen manipuliavimo metodai ir kalbos. Visi duomenys, kur jie bebt urayti, - ar kompiuterio ekrane,ar atspausdinti popieriuje - pateikiami lentelse. Programuotojas loginiame lygyje taipogi sivaizduoja duomen pateikimo form lentelin.Tos paios lentels visos eiluts turi t pat format. Lentels duomenys charakterizuoja vien apibendrint dalykins srities objekt, o viena lentels eilut charakterizuoja vien realaus pasaulio objekt-egzempliori (konkret tarnautoj, padalin, detal ir t.t.). Jeigu du apibendrinti informaciniai objektai TARNAUTOJAS ir PADALINYS susieti tarpusavyje sryiu, pavyzdiui VYKDOMOS_PAREIGOS , tai toks sryis traktuojamas kaip savarankikas apibendrintas objektas ir jam skiriama duomen bazje nauja lentel, kur suraomi duomenys, charakterizuojantys sry VYKDOMOS_PAREIGOS. Paimkime pavyzd (r. 2.1 lentel.). Lentelje Grafikas surayti duomenys, kurie charakterizuoja lktuv reisus.
REISO_NR
t1 t2 tp

ISKRIDIMO_PUNKTAS Vilnius Berlynas Vilnius Talinas Vilnius

ATVYKIMO_PUNKTAS Berlynas Vilnius Talinas Vilnius ara

2.1 lentel. Grafikas ISKRIDIATVYKIMO_LAIKAS MO_LAIKAS 11.30 15.00 11.43 14.20 21.50 13.43 17.13 12.45 15.22 4.10

83 84 213 214 109

Lentels eilut skiriama vienam reisui. Lentels eilut vadinsime korteu. Reisus charakterizuoja stulpeliai REISO_NR, ISKRIDIMO_PUNKTAS, ATVYKIMO_ PUNKAS, ISKRIDIMO_LAIKAS, ATVYKIMO_LAIKAS. Eiluts formatas keiiantis met sezonams ilieka nepakits, kai tuo tarpu reisai ir atatinkam eilui duomenys keiiant grafik modifikuojami. Lentels stulpeliai yra vadinami atributais, o atributai turi savo vardus.Kiekvienam atributui priskiriamos leistin reikmi sritys, kurias

KANONINS SCHEMOS IR RELIACINIS MODELIS

vadinsime domenais. Korteai turi komponentus, kuri skaiius sutampa su lentels atribut skaiiumi. Jeigu lentel ms pavyzdyje turi penkis stulpelius, tai korteai vardijami penkiavieiais. Duomen lentel toliau vadinsime duomen santykiu. Atribut rinkinys sudaro santykio schem. Pateiksime grietesn santykio apibrim. Sakykime, kad turime santykio schem R = {A1, A2, , An}. Schemoje kiekvienam atributui Ai atitinka domenas atributo netuia ir suskaiiuojama reikmi aib Di = dom(Ai). Ankstesniame pavyzdyje dom(REISO_NR) - tai dvienkli ir trienkli sveikj skaii aib, dom(ISKRIDIMO_PUNKTAS) = dom(ATVYKIMO_PUNKTAS) - tai Vilnius ir kiti miestai, su kuriais Vilniaus aerodromas turi oro linijas. Sakykime, kad D = D1 D2 Dn. Schemos R santykis r(R) (j, jeigu i konteksto yra aiku, ymsime paprastumui r) - tai aibs R atvaizd aibje D rinkinys {t1, t2, ,tp}. ia: - santykio r korte skaiius. Kiekvienas atvaizdas (r. 2.1 lentel ir 2.1 pav.) tj r turi tenkinti griet apribojim tj(Ai) Di; 1 i n; 1 j p. Pavyzdiui, 2.1 lentels antrasis korteas gali bti uduotas naudojant atvaizd t2: t2(REISO_NR) = 84; t2(ISKRIDIMO_PUNKTAS) = Berlynas; t2(ATVYKIMO_PUNKTAS) = Vilnius; t2(ISKRIDIMO_LAIKAS) = 15.00; t2(ATVYKIMO_LAIKAS) = 17.13 . Tas pats korteas t2 gali bti uduotas, kaip funkcini por aib: t2 = {(REISO_NR; 84), (ISKRIDIMO_PUNKTAS; Berlynas), (ATVYKIMO_PUNKTAS; Vilnius), (ISKRIDIMO_LAIKAS; 15.00), (ATVYKIMO_LAIKAS; 17.13)}
tj

Ai

tj(Ai)

2.1 pav.

Naudojant atvaizdus t ivengiama atribut Ai sutvarkymo aibje R. Kitais odiais tariant, stulpeli idstymo tvarka neturi reikms, nes neduoda jokios papildomos informacijos apie dalykin srit. Santyk apibrme, kaip korte aib, todl korte idstymas lentelje taip pat neduoda papildomos informacijos apie dalykin srit. Pabrime, kad korte aib suprantame, kaip paprastj aib, o ne kaip multi-aib, t.y. vienodi korteai lentelse nesaugojami, ir dublikatai taipogi jokios papildomos informacijos neduoda! Tai yra viena i reliacinio modelio prielaid, nors manipuliuojant duomenimis lentelse gali atsirasti ir korte-dublikat. Tradicikai korteas suprantamas kaip reikmi sraas, uduotas tokia komponent tj(Ai) idstymo tvarka, kaip schemoje R specifikuojami atributai Ai, 1 i n. Ateityje schem R patogumui specifikuosime srau R = (A1, A2, ..., An) arba stulpeliu: R A1 A2 An.

10

KANONINS SCHEMOS IR RELIACINIS MODELIS

Santykio schema yra invariantin (nekintanti) laiko atvilgiu, taiau santykis r, charakterizuojantis dalykins srities objektus ir sryius tarp j, gali keistis. Todl korteai gali bti modifikuojami, naujai terpiami arba paalinami. Tam naudojamos atitinkamos trys operacijos: 1) MOD(r; A1 = d1, A2 = d2, ..., An = dn ; C1 = c1, C2 = c2, ..., Cg = cg); 2) ADD(r; A1 = d1, A2 = d2, ..., An = dn); 3) DEL(r; A1 =d1, A2 = d2, ..., An = dn). Operacijoje MOD atributai C1, C2, ..., Cg - tai atributai, kuri reikms pakeiiamos naujomis reikmmis c1, c2, ..., cg. Visose trijose operacijose reikms d1, d2, ..., dn identifikuoja korte, kuriam atliekama operacija. Duomen bazi reliacin model sudaro struktrin arba deklaratyvin ir manipuliacin dalys. Deklaruojant reliacins duomen bazs struktr apraomos santyki schemos. Santyki schem visuma sudaro duomen bazs schem. Duomen manipuliavimui paprastai naudojami taip vadinama korte skaiiavimo arba tiesiog reliacinio skaiiavimo kalba SQL (Structured Query Language-angl.), kurios operatoriai turi reliacins algebros atitikmenis. Skyriaus antrojoje pusje apraomos reliacins algebros operacijos ir pateikiama standartizuota reliacinio skaiiavimo kalba SQL.

2.2 Duomen bazi kanonins schemos


Duomen bazi kanonin schema (KS) yra koncepcinio projektavimo rezultatas. Ji susideda i duomen ra (korte) tip ir ryi tarp j. Savo ruotu ra tipas susideda i duomen element (atribut) arba lauk. Tarp dviej tip fiksuojamas binarinis ryys, jeigu tarp j egzistuoja asociatyvinis ryys. Binariniai ryiai bna trij tip 1:1, 1:M, N:M. Tarkime, kad vienas duomen tipas susideda i logini ra, kuri aib yra T1, o kit tip sudaro ra aib T2. Egzistuojant binarinio ryio R12 tipui 1:1 tarp duomen tip T1 ir T2,tarpusavyje asocijuojama po du raus t1 T1 ir t2 T2. Binarinio ryio R12 tipo 1:M atveju vienam loginiam raui t1 T1 asocijuojama aib S1 ra t2, t2 S1 T2, ir tuo paiu metu vienam loginiam raui t2 T2 asocijuojamas vienas loginis raas t1 T1. Tarp duomen tip T1 ir T2 binarinio ryio R12 tipas N:M nustatomas tada, jeigu raas t1 T1 asocijuojamas su ra t2 aibe S1; t2 S1 T2, o raas t2 T2 asocijuojamas su ra t1 aibe S2; t1 S2 T1. Asocijuojant duomen tip T1 su tipu T2 btina, kad tipai T1 ir T2 turt bent po vien element A1 ir A2 su bendra reikmi sritimi. raas t1 T1 yra asocijuojamas su rau t2 T2, jeigu duomen bazje t1(A1) = t2(A2), t.y.: konkreiam raui t1 asocijuojama ra t2 aib S1: S1 = {t2 | t1(A1) = t2(A2), t1 T1, t2 T2; dom(A1) = dom(A2)} Bendru atveju duomen bazje aib S1 gali bti tuia. Asocijuojant tip T1 su tipu T2 asocijavimo kriterijumi gali bti gali bti paimtas nebtinai vienas tipo T1 laukas, o keli laukai ir btinai tiek pat tipo T2 lauk.

KANONINS SCHEMOS IR RELIACINIS MODELIS

11

Binariniai ryiai tarp dviej duomen tip gali bti nustatyti keli. Jeigu tipas T1 asocijuojamas su tipu T2 kelis, pavyzdiui, du kartus, tai kiekvieno ryio R12 ir R'12 atveju tipuose T1 ir T2 yra bent po vien duomen element por A1, A2 ir A'1, A'2 toki, kad kiekviena lauk pora A1, A2 ir A'1, A'2 turi bendras reikmi sritis, t.y. dom(A1) = dom(A2) ir dom(A'1)= dom (A'2).
MAKL1 MAKL_NR MIESTAS VADOVAS MAKL_NR / MAKL_NR MAKL2 MAKL_NR ATLYGIS PRIEDAS

2.2 pav.

MAKL PAVARDE VARDAS IDARB_DATA MAKL_NR MIESTAS VADOVAS ATLYGIS PRIEDAS

PIRK FIRMA PIRK_NR PAVARDE VARDAS ADRESAS MIESTAS VALSTIJA INDEKSAS

PARD UZSAK_NR PIRK_DATA PIRKEJAS MAKLERIS APMOKETA

MAKL_NR/MAKLERIS

PIRK_NR/PIRKEJAS

UZSA KOMPL_NR UZSAK_NR KIEKIS IVYKD_POZ PREK KOMPL_NR VIETA PAVAD KIEKIS KAINA PAPILD_POZ KOMPL_NR/KOMPL

SUDE KOMPL ELEM KIEKIS

KOMPL_NR/KOMPL

2.3 pav.

Paimkime kanonins schemos pavyzd (r. 2.2 pav.). Duomen tipas MAKL1 susideda i element MAKL_NR, MIESTAS, VADOVAS, o tipas MAKL2 - i MAKL_NR, ATLYGIS, PRIEDAS. Kiekvienam makleriui, dirbaniam prekybinje firmoje abiejuose duomen tipuose skiriama po vien ra. Makleriai identifikuojami naudojant lauk MAKL_NR, kur kiekvienas makleris turi savo unikal numer. Tarp MAKL1 ir MAKL2 iuo atveju nustatomas 1:1 tipo asociatyvinis ryys, kuris 2.2 pav.

12

KANONINS SCHEMOS IR RELIACINIS MODELIS

parodytas dviej krypi rodykle. Vir rodykls parodyti asociatyviniai laukai. iuo atveju lauk vardai sutampa. Todl schemoje juos parodyti nebtina. 2.3 paveiksle parodyta kita kanonin schema, sudaryta visai prekybins firmos duomen bazei PREKYBA. Tipas MAKL susideda i ra, kurie charakterizuoja maklerius; PIRK - i ra, kurie charakterizuoja pirkjus; PARD raai charakterizuoja usakymus, kuriuos pirkjai yra pateik makleriams; USA raai charakterizuoja usakym sudt, t.y. komplektus, kurie eina kiekvien usakym; PREK tipo raai charakterizuoja preki (KOMPL_NR) likuius (PREK.KIEKIS) vairiuose miestuose; duomen tipo SUDE rauose registruojami duomenys apie kiekvieno komplekto sudt, t.y. duomenys apie tai, kokie elementai (ELEMEN) ir kokiais kiekiais (SUDE.KIEKIS) eina komplekt (KOMPL). ia ir ateityje, esant btinumui, skirtingi atributai su tuo paiu vardu, jeigu jie naudojami kaip skirting ra tip elementai, bus identifikuojami naudojant tip ymes ir element vardus, atskirtus per tak. Pavyzdiui, atributai PREK.KIEKIS ir SUDE.KIEKIS yra skirtingi: pirmasis nusako preki likuius, o antrasis elemento skaii, kuriuo jis eina komplekt. Beje, ioje dalykinje srityje sudtinis elementas gali bti savarankika preke (USA.KOMPL_NR) ir turti savo sandliavimo punkt (VIETA). Kanonins schemos elementai APMOKETA, IVYKD_POZ, PAPILD_POZ yra LOGICAL tipo ir gali turti dvi reikmes .F. arba .T.. Jeigu kuris nors usakymas (PARD.UZSAK_NR) yra apmoktas ( APMOKETA = .T. ) ir to usakymo kur nors komplekt (UZSA.KOMPL_NR) pirkjas i prekybins firmos yra gavs, tai tada IVYKD_POZ = .T. . Jeigu prekybin firma i kurio nors punkto (VIETA), kur yra sandliuojama kuri nors prek (PREK.KOMPL_NR), organizuoja tos preks pristatym pirkjams, tai PAPILD_POZ = .T. , kitu atveju - PAPILD_POZ = .F..Naudojantis ia dalykine sritimi iliustruosime kanonins schemos ryi tipus ir kitus pavyzdius. Tarp duomen tip MAKL ir PARD parodytas 1:M tipo ryys MAKL_NR/MAKLERIS su asociavimo atribut pora MAKL_NR ir MAKLERIS. ra aibje MAKL kiekvienam makleriui numatomas vienas raas su unikalia lauko MAKL_NR reikme. ra aibje PARD po vien ra skiriama kiekvienam usakymui su unikalia lauko PARD.UZSAK_NR reikme. Tipo MAKL lauko MAKL_NR reikm gali atsikartoti keli skirting tipo PARD ra lauke MAKLERIS, nes tas pats makleris gali bti prims kelet usakym. Todl tarp ra tip MAKL ir PARD nustatomas ryio tipas 1:M. Tarp duomen tip UZSA ir PREK asociatyviniai laukai nenurodyti, nes j vardai KOMPL_NR abiejuose tipuose sutampa. Tarp duomen tip PREK ir SUDE parodytas ryys KOMPL_NR/KOMPL yra N:M tipo, nes komplektas, uregistruotas tipo PREK rau gali susidti i keli skirting element ir, atvirkiai, komplektas uregistruotas tipu SUDE gali bti sandliuojamas keliuose miestuose.
MAKL1 MAKL_NR MIESTAS VADOVAS MAKL_NR / MAKL_NR VADOVAS / MAKL_NR MAKL2 MAKL_NR ATLYGIS PRIEDAS

2.4 pav.

Paimkime dar vien nedidel kanonins schemos pavyzd (r. 2.4 pav.), kuriame tipai MAKL1 ir MAKL2 sujungti dviem ryiais MAKL_NR/MAKL_NR ir VADO-

KANONINS SCHEMOS IR RELIACINIS MODELIS

13

VAS/MAKL_NR. ioje kanoninje schemoje leistinai nustatytas ryys VADOVAS/MAKL_NR, kadangi MAKL1 elementas VADOVAS ir MAKL2 elementas MAKL_NR turi bendr reikmi srit, t.y. dom(VADOVAS) = dom(MAKL_NR).

2.3. Duomen bazi valdymo sistemos


Program kompleksas, skirtas duomen mainams tarp fizins duomen bazs (FDB), saugojamos iorinje atmintyje, ir pagrindins (operatyviosios) atminties realizuoti sudaro duomen bazi valdymo sistem (DBVS). DBVS paskirt iliustruoja 2.5 paveikslas. DBVS panaudojimas supaprastina vartotoj programas, paspartina j sudarym ir sumaina duomen pertekli fizinje duomen bazje. vairs loginiai failai, kuriais operuoja vartotoj programos, gali bti gauti i t pai fizini fail, kurie organizuojami naudojant vairius fizins organizacijos metodus. Konkreti DBVS yra orientuota tam tikr vien ar kelis fizins organizacijos metodus. Taiau klasifikuojant DBVS, irima, kokio tipo duomen struktras palaiko viena ar kita DBVS loginiame (programuotojo) lygyje. Taip yra skiriamos reliacins, hierarchins ir tinklins DBVS.
Programin ranga

Informacija

Vartotoj programos Poreikiai duomenys DB standartins ir individualios programos


DB administratorius

poreikis

FDB
DBVS

2.5 pav.

Svarbi viet informacinje sistemoje uima DB administratorius, kuris turi garantuoti sistemos funkcionalum. Administratorius turi: utikrinti DB patikimum, DB saugum, duomen pilnum ir suderinamum. ioms funkcijoms realizuoti nepakanka DBVS, ir jis naudoja DB standartines programas bei savo individualias originalias programas.

14

KANONINS SCHEMOS IR RELIACINIS MODELIS

2.4. Kanonini schem klasifikavimas


Paprastai DBVS palaiko kanoninmis schemomis uduotus 1:M ryi tipus. Jeigu suprojektuotoje DB kanoninje schemoje yra N:M tipo ryi ir pasirinkta DBVS toki ryi nepalaiko, tai toki schem reikia transformuoti. Kanonini schem transformavimo bdai aptariami sekaniame skyrelyje. Jeigu suprojektuotoje schemoje yra 1:1 ryi, tai toki ryi tip galima traktuoti kaip dalin tipo 1:M atvej, kai M = 1.

T1

R12

T2

2.5 pav.

E a) medio tipo KS : A B G D

F C

D b) paprastoji tinklin KS : A B

E C

c) sudtingoji tinklin KS :

E A D B

F C

2.6 pav.

Tarkime, kad schemoje yra tik 1:M tipo asociatyviniai ryiai. Paimkime duomen tipus T1, T2 ir 1:M tipo ry R12 (r. 2.5 pav.). Tipas T1 ryio R12 atvilgiu yra pagrindinis, o tipas T2 io ryio atvilgiu yra detalusis. Jeigu schemoje neegzistuoja n vieno tokio detaliojo duomen tipo, kad jis bt detalus atvilgiu dviej ar daugiau ryi, kuriais jis sujungtas su pagrindiniais, tai sakome, kad schema yra hierarchin arba medio tipo. Jeigu schema netenkina io apibrimo ir jeigu schemoje kiekvienas atskirai paimtas

KANONINS SCHEMOS IR RELIACINIS MODELIS

15

duomen tipas vis ryi, kuriais jis sujungtas su kitais duomen tipais, atvilgiu yra tik detalusis arba tik pagrindinis, tai tokia schema bus vadinama paprastja tinkline. Jeigu schema netenkina abiej apibrim, tai j vadinsime sudtingja tinkline. Schema, pateikta 2.6a paveiksle, yra medio tipo, kadangi ir B, ir C, ir D tipai yra detals ne daugiau kaip vieno ryio atvilgiu. Schema 2.6b paveiksle yra paprastoji tinklin, nes duomen tipas B yra detalus vis ryi atvilgiu, o A ir C - pagrindiniai.Schema 2.5c paveiksle yra sudtingoji tinklin, kadangi B tipas vienu metu yra ir pagrindinis, ir detalus dviej ryi D ir E atvilgiu.

2.5. Kanonini schem transformavimas


Kuriamos duomen bazi valdymo sistemos (DBVS) yra orientuotos vien i kanonini schem klas. Bdingas hierarchini DBVS pavyzdys yra IMS sistema. Kadangi paprastosios tinklins schemos yra sudtingj tinklini schem dalinis atvejis, tai DBVS, aptarnaujanios sudtingsias tinklines struktras, gali skmingai aptarnauti ir paprastsias. Analogikai hierarchin kanonin schema taip pat yra sudtingj tinklini schem variantas, todl sudtingj tinklini schem DBVS gali skmingai palaikyti ir medio tipo schemas. Kadangi medio tipo duomen struktr aptarnavimui fizins organizacijos metodai yra paprastesni, tai hierarchins DBVS yra nesudtingos ir, suprantama, pigesns, lyginant su sudtingj tinklini schem DBVS. Toki DBVS charakteringas pavyzdys yra IDMS sistema. Suprojektuotos kanonins schemos klas priklauso nuo duomen prigimties, nuo to, kokia yra dalykins srities duomen struktra. Jeigu projektuotojas yra profesionaliai sisavins tam tikr DBVS, tai kuriant informacines sistemas, jis duomen bazs kanonin schem suorientuoja toki, kad sisavinta DBVS galt j fizinje duomen bazje palaikyti (nors ir neefektingai!). Pateiktoje kanonini schem klasifikacijoje bus naudojami tik 1:M ryiai. Jie, padengia realizacine prasme ir 1:1 ryius. Tiek hierarchins, tiek tinklins DBVS nepalaiko N:M ryi ta prasme, kad DBVS neturi komand, kuriomis galima betarpikai apdoroti saugojamus iorinje atmintyje asocijuotus raus dviej tip, tarp kuri egzistuoja N:M asociatyvinis ryys. Jeigu jie kanoninje schemoje ir nurodyti, tai jie realizuojami tik vartotoj iorinmis programomis. Savo ruotu, nei medio tipo, nei tinklini DB schemomis N:M ryiai negali bti deklaruojami, kadangi jie vartotoj programomis nepalaikomi. ia paymsime, kad reliacini DB schemomis nagrinti asociatyviniai ryiai nedeklaruojami aplamai ir realizuojami tik programiniu bdu. Duomen apdorojimo paspartinimui ia paprastai naudojami papildomi fizins organizacijos indeksiniai duomen failai. Tai, suprantama, reikalauja ir papildomos iorins atminties duomen saugojimui. Apie fail indeksavim bus kalbama io skyriaus paskutiniame skyrelyje. 2.7 paveiksllyje parodytas pavyzdys, kaip N:M ryys gali bti eliminuotas vedant papildom rao tip. Pradinje schemoje (r. 2.7a pav.) ra tipai UZSA ir SUDE sujungti N:M tipo asociatyviniu ryiu KOMPL_NR/ELEMEN, kurio dka UZSA tipo ra poaibis su kuria nors pasikartojania lauko KOMPL_NR reikme yra asocijuojamas su tipo SUDE ra poaibiu tokiu, kad ra lauko ELEMEN reikm atsikartoja. 2.7 paveiksle ra tip atributai yra sugrupuoti, blokeli kairje pusje parodant

16

KANONINS SCHEMOS IR RELIACINIS MODELIS

identifikacinius (raktinius) laukus, o deiniojoje pusje - neidentifikacinius. UZSA tipo raai yra identifikuojami lauk KOMPL_NR ir UZSAK_NR reikmi poromis, ir kiekvienas raas turi unikali i reikmi por, o SUDE tipo raai turi unikalias lauk KOMPL ir ELEMEN reikmi poras. Kadangi dom(KOMPL) = dom(ELEMEN), t.y. ie laukai turi bendras reikmi sritis, tai tarp ra tip UZSA ir SUDE gali bti uduoti du asociatyviniai ryiai. Eliminuojant ry KOMPL_NR/ELEMEN vestas naujas rao tipas ELEM su identifikaciniu lauku ELEMEN (r. 2.7b pav.). iame tipe bus saugojami raai, skirti visiems elementams, kurie naudojami kaip SUDE tipo prekini komplekt (SUDE.KOMPL) komponentai (SUDE.ELEMEN). Tarp ra tip ELEM ir UZSA ryys KOMPL_NR/ELEMEN jau unikalias lauk KOMPL ir ELEMEN reikmi poras. Kadangi dom(KOMPL_NR) = bus 1:M tipo. Nustatytas ryys ELEMEN/ELEMEN tarp ra tip ELEM ir SUDE bus 1:M tipo taip pat. Sudarytos naujos schemos DB, suprantama, turs dubliuojamus duomenis, taiau informaciniu poiriu po schemos transformacijos jos turinys ilieka nepakits. Analogikai sekaniu ingsniu turi bti eliminuojamas ir N:M ryys KOMPL_NR/KOMPL.
a) kanonin schema su N:M tipo ryiu KOMPL_NR/ELEMEN : b) kanonin schema po N:M tipo ryio eliminavimo:

UZSA KOMPL_NR KIEKIS UZSAK_NR IVYKD_POZ KOMPL_NR/ ELEMEN SUDE KOMPL ELEMEN KOMPL_NR/KOMPL

UZSA KOMPL_NR KIEKIS UZSAK_NR IVYKD_POZ KOMPL_NR/ELEMEN ELEM KIEKIS ELEMEN

KOMPLEK/ ELEMEN SUDE KOMPL ELEMEN

KOMPL_NR/ KOMPL KIEKIS

2.7 pav

2.8 paveiksle parodyta, kaip sudtingj tinklin schem (r. 2.8a pav.) galima pertvarkyti hierarchin (r. 2.8b pav.). iuo atveju atsiranda duomen dubliavimas, nes usakymai bus registruojami du kartus. 2.9 paveiksle parodyta, kaip galima hierarchin kanonin schem (r. 2.9a pav.) transformuoti paprastj tinklin. (r. 2.9b pav.) iuo atveju usakymai taip pat dubliuojami.ia reikia pastebti, kad asociatyvinis ryys tarp PARD1 ir PARD2 yra 1:1, nes abiejuose tipuose identifikacinis laukas yra UZSAK_NR. Taiau toks ryys gali bti traktuojamas kaip ryio 1:M dalinis atvejis ir paprastoji tinklin DBVS pilnai utikrina tokio tipo login realizacij. vedant naujus ra tipus

KANONINS SCHEMOS IR RELIACINIS MODELIS

17

reikia ivengti bereikalingo lauk dubliavimo ir palikti tik identifikacinius ir asociatyvinius laukus.
a) Tinklin schema: MAKL1 MAKL_NR MIESTAS VADOVAS PARD UZSAK_NR PIRKEJAS MAKLERIS APMOKETA PARD_DATA PIRK1 FIRMA PIRK_NR VALSTIJA

MAKL_NR/MAKLERIS

PIRK_NR/PIRKEJAS

UZSA KOMPL_NR UZSAK_NR KIEKIS IVYKD_POZ b) Medio tipo schema, gauta transformuojant tinklin schem: MAKL1 MAKL_NR MIESTAS VADOVAS MAKL_NR/MAKLERIS PARD1 UZSAK_NR MAKLERIS APMOKETA PARD_DATA PIRK1 FIRMA PIRK_NR VALSTIJA PIRK_NR/PIRKEJAS PARD2 UZSAK_NR PIRKEJAS

UZSA KOMPL_NR UZSAK_NR KIEKIS IVYKD_POZ

2.8 pav.

18

KANONINS SCHEMOS IR RELIACINIS MODELIS

a) Medio tipo schema: MAKL1 MAKL_NR MIESTAS VADOVAS MAKL_NR/MAKLERIS PARD1 UZSAK_NR MAKLERIS APMOKETA PARD_DATA

UZSA KOMPL_NR UZSAK_NR KIEKIS IVYKD_POZ b) Paprastoji tinklin schema, gauta transformuojant medio tipo schem: MAKL1 MAKL_NR MIESTAS VADOVAS MAKL_NR/MAKLERIS PARD1 UZSAK_NR MAKLERIS APMOKETA PARD_DATA PARD2 UZSAK_NR

UZSA KOMPL_NR UZSAK_NR KIEKIS IVYKD_POZ

2.9 pav.

KANONINS SCHEMOS IR RELIACINIS MODELIS

19

2.6. Reliacins algebros operacijos


Reliacinje algebroje yra penkios pagrindins ir trys papildomos, ivestins operacijos. 1. Suma. Schemos R santyki r1 ir r2 suma r3 = r1 r2 yra aib korte, kurie priklauso arba santykiui r1 arba r2, arba abiems kartu:
r1 A a d c B b a b C c f d r2 A b d B g a C a f r3 = r1 r2 A B a b d a c b b g C c f d a

Skirtumas. Schemos R santyki r1 ir r2 skirtumas r3 = r1 r2 yra aib korte kurie priklauso r1, bet nepriklauso r2 (santykiai r1 ir r2 paimti i sumavimo pavyzdio):
r3 = r1 r2 A B a b c b C c d

3. Sandauga. Dviej schem R ir S santyki r ir s sandauga g = r s yra schemos G = R S korte g aib, kuri gaunama santykio r korteus paimant visose kombinacijose su santykio s visais korteais:
r A a d c B b a b C c f d s D b d E g a g=rs A a a d d c c B b b a a b b C c c f f d d D b d b d b d E c a g a g a

4. Projekcija. Projekcijos operacijos esm sudaro tai, kad santykiui kai kurie korte komponentai paalinami, o lik sukeiiami arba nesukeiiami vietomis. Paimkime schemos R = (A, B, C) santyk r. Santykio r projekcija schemoje S = (A, C) bus santykis s ir s = S (r)= A,C (r), o to paties santykio r projekcija schemoje S = (B, A) bus santykis g; g = BA (r) kuriame stulpeliai B ir A yra sukeisti vietomis:
r A a d c B b a b C c f g s = AC (r) A C a c d f a d g = BA (r) B A b a a d

20

KANONINS SCHEMOS IR RELIACINIS MODELIS

Paimkime bendrj atvej. Tegul R ir S yra schemos tokios, kad S R, o r - schemos R santykis (schemos egzempliorius) ir S = (A1, A2, ...,An). Schemos S egzempliorius s gali bti gautas i schemos R santykio r panaudojant projekcijos operacij:
s = S ( r ) = A1,A 2,...,A n ( r )

Gautam santykiui s bdinga tokia savyb: kiekvienam jo korteui u , u s, santykyje r egzistuoja korteas v, kurio visi komponentai stulpelyje Ai sutampa su korteo u komponentais stulpelyje Ai; Ai R; Ai S. 5. Selekcija. Sakykime, kad F - tai formul, sudaryta i: - operand, kuriais gali bti konstants ir/arba atributai Ai R; - aritmetini palyginimo operatori (=, , <, >, ); - logini operatori (, , ). Selekcija F (r) rezultate duoda santyk s, kur sudaro aib korte t, priklausani r, toki, kad staius konstantes ir/arba korteo t komponentus t(Ai) formuls F atitinkamus operandus, formul yra teisinga. Pavyzdys:
r A 2 3 5 B 4 2 1 C 3 1 1 s = B > C (r) A B C 2 4 3 3 2 1

Pastebsime, kad selekcijos operacijose naudojami aritmetinio tipo operandai, nors kai kuri aritmetini operatori atveju (pavyzdiui, operatoriaus = arba atveju) galima paimti ir simbolinius operandus. Toliau pateiksime likusias tris ivestines operacijas, kurios gali bti ireiktos ankstesnmis pagrindinmis operacijomis. 6. Sankirta. Schemos R santyki r1 ir r2 sankirta r3 = r1 r2 yra aib korte, kurie priklauso ir r1, ir r2. Sankirta r3 nustatoma, panaudojus du kartus skirtumo operacijas r1 (r1 r2):
r1 A A D C B b a b C c f a r2 A b d B g a C a f r1 r2 A B a b c b C c a r3 = r1 (r1 r2) A B C d a f

7. Jungtis. Schem R ir S santyki r ir s jungtis, panaudojant atvilgiu stulpeli Ai R ir Bj S aritmetin palyginimo operatori , uraysime r s . Kaip ir anksiau, operatoriumi gali bti =, , <, , >, .Operacijos rezultate gauname schemos G = (R S) santyk g, kuris yra dekartins sandaugos r s poaibis toks, kad kiekviename jo kortee t komponentas t(Ai) yra -ryyje su to paties korteo komponentu t(Bj ). Pavyzdys:
Ai Bj

KANONINS SCHEMOS IR RELIACINIS MODELIS g = r s r A 2 7 1 B 2 8 2 C 3 9 3 s D 3 6 E 1 2 A 4 1 1

21

B<D

B 5 2 2

C 6 3 3

D 6 3 6

E 2 1 2

Jungties operacija realizuojama nuosekliai dvejomis pagrindinmis operacijomis - sandauga ir selekcija. Jeigu Q - operatorius yra lygybs operatorius, tai jungtis yra vadinama ekvi-jungtimi. Kaip pastebjome i pavyzdio, selekcijos ir jungties operacijos atveju, lygiai kaip ir selekcijos atveju, operandai yra sudaryti i skaitmenini reikmi. Taiau jei aritmetinis palyginimo operatorius yra = arba , tai operandai gali turti ir simbolines reikmes. 8. Natralioji jungtis. Natraliosios jungties operacija santykiams r ir s taikoma tada, kai i santyki schemos R ir S turi bendr atribut AiR S. Rezultate gaunamas naujos schemos G santykis g. Operacij ymsime g = r s. Ji realizuojama nuosekliai taikant dekartins sandaugos, selekcijos ir projekcijos operacijas. 1) Paskaiiuojama sandauga r s. 2) Gautoje sandaugoje atrenkami tie korteai, kuri Ai-komponentai i r ir s tuose paiuose korteuose sutampa. 3) Pasikartojanius stulpelius Ai S (arba Ai R) treiuoju veiksmu paaliname:
r s A a a e B c b b C a a a B c b C c a D a d g = r s A B a B e B C a a D d d

Natraliosios jungties operacija gali bti naudojama tiek skaitmeniniams, tiek simboliniams operandams. Paymkime schemos S atributus Ai sutrumpinimo tikslu S.Ai, o ios schemos santykio s komponentus - s.Ai. Jeigu R S = (B1, B2, ..., Bk) tai operacija r s gali bti urayta tokiu bdu: r s = G ( r. B = s. B r. B = s. B ... r. B = s. B ) (r s) )
1 1 2 2 k k

ia: G - schema, sudaryta i R ir S vis atribut, iskyrus pasikartojanius schemos S atributus S.B1, S.B2, , S.Bk. Natraliojoje jungtyje, kaip matome i jos bendrojo pavidalo, antruoju selekcijos veiksmu tarp aritmetini lygybs operatori panaudoti loginiai konjunkcijos operatoriai. J skaiius turi bti toks, kad bt galima sulyginti santyki r ir s visas pasikartojani stulpeli Bi reikmes; i = 1, 2, , k. Aprayt operacij iliustracijai pateiksime pavyzd. iam pavyzdiui ir sekanio skyrelio pavyzdiams, kur bus iliustruojama reliacinio skaiiavimo kalbos operatoriai, naudosime nedidels mokomosios duomen bazs eias lenteles makl, pirk, pard, usa, prek, sude (r. 2.2-2.7 lenteles) ios duomen bazs kanonin schema buvo naudojama 2.4 skyrelyje kanonini schem transformavimo pavyzdiams ir pakartotinai ios schemos uklausai reikalingas fragmentas pateiktas 2.10 paveiksle.
2.2 lentel. makl

22
MAKL_ NR 000001 000003 000004 000006 000008 000011 000012 000013 000015 000016 000019 000020 PAVARDE Zambini Vidoni Coudray Thomas McLester Michaels Charles Marin Roddic Long Rolfes Sanders

KANONINS SCHEMOS IR RELIACINIS MODELIS


VARDAS Rick Cheryl Sandy Pat Debble Delores Ted Mark Mary Nicole Chuck Kathy IDARB _DATA 80/02/15 83/03/06 80/06/06 81/01/08 81/04/12 82/05/05 83/02/02 83/06/05 84/02/13 84/08/18 84/09/09 85/03/23 MIESTAS LOS ANGELES NEW YORK LOS ANGELES NEW YORK LOS ANGELES CHICAGO CHICAGO LOS ANGELES NEW YORK NEW YORK LOS ANGELES CHICAGO VADOVAS 000000 000000 000001 000003 000001 000012 000000 000001 000003 000003 000001 000012 ATLYGIS 6000 5780 6237 5875 4792 4927 5945 4802 5493 5190 4586 3783 PRIEDAS 5.0 5.0 5.0 5.0 5.0 7.0 5.0 11.0 3.0 7.0 6.0 5.0

2.3 lentel. pirk


PIRK_NR FIRMA PAVARDE Leonard Martin Pollock LeClere Daniels Jackson Goets Hobbe Hart Campbell Hamilton McVeigh Squire Thompson Trujillo Long VARDAS Rick Lisa Daniel Domin George Dennis John Lake Paul Linda Robert John Ana Kathy Michelie Chuck ADRESAS MIESTAS Oceansid e Wasau Yonkers New York Los Angeles San Francisko Milwouk es New York Las Wegas Phoenix Phoenix San Francisko Las Vegas St.Lonis Milwauk ee White Plains VAL -STIJA CA WI NY NY CA CA WI NY NV AZ AZ CA NV MO WI NY INDEKSAS 92054 54401 10709 10013 90233 94119 53201 10713 89106 85012 85004 94102 89108 63121 53220 10605

000001 000003 000009 000011 000016 000017 000018 000019 000022 000024 000025 000027 000028 000031 000032 000033

Leonard Design Services Ace Furniture Custom Furniture The Office American Business Suppl Blacks Furniture Store Interior Systems The Designer Las Vegas Furniture Baker Furniture Modern Furniture Store Al Office Supply Store Acceat Furniture Design Als Furniture & Suppli Contemporary Designs Interior Designs

1550 Keystone St. 1960 Lindley Ave. 5934 Pine Needles 101 Pierce St. 5601 Grand Ave. 7010 Balcom Ave. 899 Kenwood St. 6043 Whiteside Blvd. 8301 Sale St. 6700Tyler St. 366 Shirley Ave 1240 Embar 20984 Horizon Hills 40555 Brentwood 5670 Colorado Blvd. 40677 Misty Isle Dc.

KANONINS SCHEMOS IR RELIACINIS MODELIS


000034 000035 000036 000040 000042 000043 000045 000046 La Cienega Furniture Valley Furniture New Horizons Design Center Interiors Cohens Furniture To Design furniture Classic Interiors Commercial Interiors Keegan Yanish Brendon Gilbert Cohen Tsuma Lawson Young Marilyn Diane Kelly Chuck Larry Tamio Eric Sandy 6045 Vineland Blvd. 10111 Ventura Blvd. 12508 Robin Hood Ln. 7619 Kraft Dc. 908 Gien Oaks Ave. 4564 Benedict Can 2015 Edmonton 14097 Gilmore Los Angeles Encino Chicago Las Vegas San Francisko Rochester St.Louis Ventura CA CA IL NV CA NY MO CA

23
90815 91316 60619 89106 94119 14625 63106 93003

2.4 lentel. pard


UZSAK_NR 02002 02003 02004 02005 02006 02007 02008 02009 200010 020011 020012 020013 020014 020015 020016 020017 020018 020019 020020 020021 020022 020023 020024 020025 020026 PARD_DATA 87/09/21 87/09/21 87/09/21 87/09/21 87/09/22 87/09/22 87/09/22 87/09/22 87/09/22 87/09/22 87/09/22 87/09/23 87/09/23 87/09/23 87/09/23 87/09/24 87/09/24 87/09/24 87/09/24 87/09/25 87/09/25 87/09/25 87/09/25 87/09/25 87/09/25 MAKLERIS 000008 000006 000019 000001 000012 000015 000003 000012 000011 000015 000008 000012 000001 000015 000015 000006 000011 000013 000013 000008 000004 000003 000012 000003 000004 PIRKEJAS 000025 000043 000034 000016 000036 000019 000011 000018 000031 000040 000027 000036 000001 000019 000011 000032 000038 000016 000031 000046 000027 000040 000045 000019 000017 APMOKETA .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F.

24

KANONINS SCHEMOS IR RELIACINIS MODELIS 2.5 lentel.uzsa


UZSAK_NR 020002 020002 020002 020003 020003 020004 020004 020004 020005 020006 020006 020007 020007 020008 020009 020010 020010 020011 020011 020011 020012 020013 020013 020014 020015 020016 020016 020017 020018 020019 020020 020020 020021 020021 KOMPL_NR 001032 001025 001013 001021 001005 001027 001038 001013 001019 001007 001031 001022 001033 001007 001029 001005 001021 001029 001025 001031 001015 001022 001019 001021 001025 001031 001025 001029 001038 001027 001024 001032 001013 001025 PAVAD WORKSTATION-ELECTRONIC OFFICE HOME OFFICE SUITE KIEKIS 2 3 3 4 2 5 5 5 2 25 25 3 3 3 31 5 2 7 4 7 5 2 1 2 15 4 2 6 4 3 7 4 8 8 KIEKIS 2 2 IVYKD_POZ .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. VIETA CHICAGO LOS 2.6 lentel. prek KAINA PAPILD _POZ 1296.29 .F. 1395.49 .F.

KOMPL _NR 001001 001002

KANONINS SCHEMOS IR RELIACINIS MODELIS


ANGELES 001005 001007 001008 001009 001015 001019 001021 001022 001024 001025 001029 001031 001032 001033 001038 001038 001007 001007 001013 001013 001032 001038 001027 001027 001031 001031 001024 001025 001001 001005 001029 EXECUTIVE SUITE ENSEMBLE WOOD DESK-SINGLE PEDESTAL WORKSTATION-STAND CHAIR-ADJUSTABLE SWIVEL CREDENZA-OAK SLIDING DOOR TABLE-BOARD ROOM MANAGERS OFFICE ENSEMBLE TABLE-WALNUT OCCACIONAL LAMP-BRASS TABLE DESK-EXECUTIVE-5 FOOT FILE CABINET-2 DRAWER CHAIR-EXECUTIVE SWIVEL/TILT FILE CABINET-4 DRAWER CHAIR-TRADITIONAL ARM LAMP-DRAFTING SWING ARM LAMP-DRAFTING SWING ARM WOOD-DESK SINGLE PEDESTAL WOOD-DESK SINGLE PEDESTAL CHAIR-MODERN PNEUMATIC CHAIR-MODERN PNEUMATIC FILE CABINET-4 DRAWER LAMP- DRAFTING SWING ARM DESK-EXECUTIVE-6 FOOT DESK-EXECUTIVE-6 FOOT CHAIR-EXECUTIVE SWIVEL/TILT CHAIR-EXECUTIVE SWIVEL/TILT LAMP-BRASS TABLE DESK-EXECUTIVE -5 FOOT WORKSTATION-ELECTRONIC OFFICE EXECUTIVE SUITE ENSEMBLE FILE CABINET-2 DRAWER 1 29 22 124 15 12 3 5 140 63 200 79 15 20 169 47 35 62 115 35 71 89 20 56 44 76 56 47 3 0 145 CHICAGO NEW YORK LOS ANGELES CHICAGO NEW YORK NEW YORK NEW YORK NEW YORK CHICAGO LOS ANGELES NEW YORK LOS ANGELES CHICAGO CHICAGO LOS ANGELES NEW YORK CHICAGO LOS ANGELES CHICAGO LOS ANGELES LOS ANGELES CHICAGO CHICAGO NEW YORK CHICAGO NEW YORK NEW YORK NEW YORK LOS ANGELES NEW YORK LOS ANGELES 2125.79 736.21 275.66 245.38 745.00 4250.00 2380.79 414.95 230.79 985.00 89.95 420.00 134.69 125.00 149.59 149.59 736.21 736.21 275.80 275.80 134.69 149.59 1475.00 1475.00 420.00 420.00 230.79 985.00 1296.29 2125.79 89.95

25

.F. .F. .F. .T. .T. .F. .F. .F. .F. .F. .T. .F. .F. .T. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .F. .T.

KOMPL 001001

ELEMEN 001007

2.7 lentel. sude KIEKIS 1

26
001001 001001 001001 001005 001005 001005 001021 001021 001021 001021 001002 001002 001002

KANONINS SCHEMOS IR RELIACINIS MODELIS


001013 001032 001038 001027 001031 001024 001025 001031 001024 001015 001025 001032 001013 1 1 1 1 1 1 1 1 1 1 1 1 1

Uklausa: Kokie pirkjai pateik usakymus makleriams, kuriems vadovauja (PIRK.VADOVAS) vadovas, kurio kodas yra 000001? Kokios yra t pirkj pavards (PIRK.PAVARDE), pirkj kodai (PIRK.PIRK_NR) ir firmos (PIRK.FIRMA)? Kada pateikti tie usakymai (PARD.PARD_DATA) ir kokios yra makleri, kurie prim usakymus, pavards (MAKL.PAVARDE) ?
MAKL PAVARDE VARDAS IDARB_DATA MAKL_NR MIESTAS VADOVAS ATLYGIS PRIEDAS PIRK FIRMA PIRK_NR PAVARDE VARDAS ADRESAS MIESTAS VALSTIJA INDEKSAS

PARD UZSAK_NR PARD_DATA PIRKEJAS MAKLERIS APMOKETA

MAKL_NR/MAKLERIS

PIRK_NR/PIRKEJAS

2.10 pav.

Atsakym galima gauti vairiais bdais. Uklausos formavimo efektyvumo palyginimui paimsime du uklaus uraymo bdus. 1 uklausa: m2 = (MAKL.PAVARDE, MAKL_NR, VADOVAS) (makl) ; m3 = MAKLERIS MAKL_NR (m2) ; mu1 = m3 pard ; mu2 = (MAKL.PAVARD, VADOVAS, PARD_DATA, PIRKJAS) (mu1) mu3 = PIRK_NR PIRKEJAS (mu2) ; mup1 = mu3 pirk ;

KANONINS SCHEMOS IR RELIACINIS MODELIS

27

mup2 = (MAKL. PAVARD,VADOVAS, PARD_DATA, FIRMA,PIRK_NR, PIRK.PAVARD) (mup1) . atsakymas = VADOVAS = 000001 (mup2) ; ioje uklausos programoje panaudota papildoma atribut pervardinimo operacija . Ji reikalinga tam, kad bt galima naudoti natraliosios jungties operacij. Pirma kart, pavyzdiui, ji buvo panaudota tam, kad sujungti tarpin lentel m2 su duomen bazs lentele pard, naudojant kanonins schemos asociatyvin ry MAKL_NR/MAKLERIS ia pastebime tok dalyk, kad tarpines lenteles talpiname tik asociatyvinius laukus ir laukus, kurie buvo nurodyti vartotojo uklausoje, o paskutinje lentelje paliekame tik atsakymui reikalingus stulpelius. 2 uklausa: m1 =VADOVAS = 000001 (makl) ; m2 = (MAKL.PAVARDE, MAKL_NR, VADOVAS) (m1) ; m3 = MAKLERIS MAKL_NR (m2) ; mu1 = m3 pard ; mu2 = (MAKL.PAVARD, VADOVAS, PARD_DATA,PIRKJAS) (mu1) mu3 = PIRK_NR PIRKEJAS (mu2) ; mup1 = mu3 pirk ; atsakymas = (MAKL.PAVARD, VADOVAS, PARD_DATA, FIRMA,PIRK_NR, PIRK.PAVARD) (mup1) . Palygin ias dvi uklausas pastebime, kad antroji uklausa bus efektingesn, kadangi apdorojamos tarpins lentels gausis maesns, nors atsakymo lentel atsakymas abiem atvejais sutaps. Uraant uklausas reikia stengtis programoje pirmiausia naudoti selekcijas ir projekcijos operacijas, ir vliau jungties operacijas. Tokiu bdu galima sumainti apdorojam duomen apimt ir paspartinti programos vykdym. Atsakym, kaip pastebjome, galima gauti t pat, nepriklausomai nuo to, koki teising operacij sek panaudojame. Reliacin algebros kalba yra pilna, ta prasme, kad galima gauti bet kok norim atsakym, taiau reliacins algebros operacijos yra labiau teorinio pobdio, ir praktikoje beveik nenaudojamos reliacins algebros programavimo kalbos. Reliacins algebros operacijos sudaro reliacinio skaiiavimo pagrind, sudarant praktikoje plaiai naudojamas duomen manipuliavimo kalbas. Reliacinio skaiiavimo deklaratyviosios SQL kalbos procesoriai optimizuoja algebrini operacij sek tokiu bdu, kad gauti efekting duomen irinkim i reliacins DB ir tarpini rezultat apdorojim. Vartotojas, raydamas SQL program, algebrini operacij sekos optimizavimu gali nesirpinti.

2.7. Reliacinio skaiiavimo kalba SQL

Jeigu reliacins algebros kalba yra procedrin, SQL kalba yra deklaratyvioji, ir jos uklaus operatoriai pateikiami deklaratyvinje formoje, t.y. vartotojas deklaruoja norimo rezultato lentels struktr ir neuduoda elementari reliacins algebros

28

KANONINS SCHEMOS IR RELIACINIS MODELIS

operacij. Pateikta kalba yra universali, nors kai kurie sintaksiniai elementai, pavyzdiui, operatori skyrikliai arba pagalbini veiksm komandos, priklausomai nuo panaudotos DBVS, gali skirtis. Aprayme pateikiama kalbos operatori uraymo sintaks, taiau ji nebus komentuojama, kadangi kalbos konstrukcij panaudojimas bus iliustruojamas pavyzdiais. Iliustravimui panaudosime praeitame skyrelyje pateikta mokomosios DB kanonine schema ir ten pat patektomis duomen lentelmis.

2.7.1 Duomen bazs deklaravimas


Naudojant SQL operatorius, DB deklaruojama komanda create database [<kelias>]< DB vardas >; Nurodytoje direktorijoje sukuriama sub-direktorija DB vardu. ia vliau bus kuriami ir saugomi DB failai. ioje sub-direktorijoje sukuriamos sistemins lentels, kuriose saugojama informacija apie sukurtos DB lenteli struktr. Egzistuojani DB sra galima perirti tokiu bdu : show database; DB aktyvizuojama komanda start database [<DB vardas>]; DB udaroma taip: stop database; Aktyvizuojant nauj baz, senj nebtina udaryti: ji udaroma automatikai, taiau norint baz visai panaikinti, prie tai j btina udaryti. DB paalinama komanda: drop database < DB vardas >; Po ios komandos paalinami visi su DB susij objektai: DB lentels, virtualiosios lentels (SuperView), sinonimai, sisteminiai failai ir t.t.

2.7.2. Duomen lenteli sukrimas


Nauja DB lentel sukuriama komanda create table <lent.vardas> (<stulp.vardas><tipas>[,<stulp.vardas><tipas>...]); DB lentels vardas duomen bazje turi bti unikalus. Duomen tipai naudojami standartiniai ir ia j necharakterizuosime. Pagrindiniai duomen tipai matosi sekaniame pavyzdyje.

Pavyzdys :

KANONINS SCHEMOS IR RELIACINIS MODELIS

29

create table MAKL (MAKL_NR char(6), PAVARD char(15), VARDAS char(10), DARB_DATA date, MIESTAS char(15), VADOVAS char(6), ATLYGIS numeric(6.0), PRIEDAS numeric(4.1);

2.7.3 Paprastosios uklausos


Paprastosios uklausos sintaks : select <sakinys> from <lentel> [where <slyga>] into table <rez. lent.> (stulp. sraas) ; Pavyzdys Uklausa select FIRMA, PAVARD, VARDAS from PIRK; duoda lentel i trij stulpeli:
FIRMA Leonard Design Services Ace Furniture Custom Furniture ... Classic Interiors Commercial Interiors LTD PAVARDE Leonard Martin Pollock Lawson Young VARDAS Rick Lisa Daniel Eric Sandy

iai lentelei duomenys gaunami i lentels PIRK stulpeli FIRMA, PAVARD, VARDAS. Jeigu duomenys igaunami i vis stulpeli, stulpeliai nevardinami, o select sakinyje nurodome simbol"*". Pavyzdys select * from MAKL; Operatorius iduos lentel, susidedani i vis lentels MAKL stulpeli. Jeigu norime, kad operatorius stulpelyje atrinkt tik skirtingus korteus, tada select sakinyje naudojamas raktinis odis DISTINCT. Pavyzdys

30

KANONINS SCHEMOS IR RELIACINIS MODELIS

select distinct KOMPL_NR, PAVAD from PREK; Operatorius kiekvien komplekt lentel urays tik vien kart, nors tas komplektas gali bti sandliuojamas ir keliose vietose. ia paymsime, kad DISTINCT raktaodis nenaudotinas, jeigu stulpeli tarpe yra logini tip. Pavyzdys su WHERE slyga select KOMPL_NR, PAVAD, VIETA, KIEKIS from PREK where VIETA="CHICAGO"; Atsakyme gaunami tik t korte duomenys, kurie tenkina WHERE slyg (r. sekani lentel).
KOMPL_NR 001001 001005 001009 001024 001032 001033 001007 001013 001038 001027 001031 PAVAD WORKSTATION-ELECTRONIC OFFICE EXECUTIVE SUITE ENSEMBLE CHAIR-ADJUSTABLE SWIVEL LAMP-BRASS TABLE FILE CABINET-4 DRAWER CHAIR-TRADITIONAL ARM WOOD DESK-SINGLE PEDESTAL CHAIR-MODERN PNEUMATIC LAMP-DRAFTING SWING ARM DESK-EXECUTIVE-6 FOOT CHAIR-EXECUTIVE SWIVEL/TILT VIETA CHICAGO CHICAGO CHICAGO CHICAGO CHICAGO CHICAGO CHICAGO CHICAGO CHICAGO CHICAGO CHICAGO KIEKIS 2 1 124 140 15 20 35 115 89 20 44

Paiekos slygoje galima naudoti palyginimo operatorius: = < > <= >= <> ! - lygu; - maiau negu; - daugiau negu; - maiau arba lygu; - daugiau arba lygu; - nelygu; - neigimas (!<, !>, !=).

Tarpusavyje gali bti lyginamos tik palyginamos, t.y. to paties tipo reikms. Be to, tarpusavyje palyginami tipai yra SMALINT, INTEGER, NUMERIC ir FLOAT. Simbolinio tipo reikms imamos tarp viengub arba dvigub kabui.Palyginimo savybs yra: 1) palyginant simbolinio tipo reikmes, naudojamas ASCII vaizdavimo bdas ir todl, pavyzdiui "Z" < "a"); 2) select * from UZSA where IVYKD_POZ=.T. ir select * from UZSA where IVYKD_POZ yra ekvivalentiki; 3) WHERE slygoje galima naudoti standartines funkcijas; pavyzdiui, panaudojus UPPER( ) funkcij, simbolin eilut konvertuojama didij raidi eilut, o funkcija CTOD( ) datos simbolin eilut konvertuoja stulpelio datos format.

KANONINS SCHEMOS IR RELIACINIS MODELIS

31

4) WHERE sakinyje gali bti naudojamos kombinuotos slygos su loginmis jungtimis. Pavyzdys select KOMPL_NR, PAVAD, KIEKIS, VIETA from PREK where VIETA="LOS ANGELES" and KIEKIS < 20; WHERE slygoje galima panaudoti tokias logines jungtis (pirmumo tvarka ): NOT - irenka korteus, kurie netenkina pateiktos slygos; AND - tenkina abi slygas; OR - tenkina bent vien slyg. Jeigu logins jungtys yra to paties tipo, sudtin WHERE slyga tikrinama i kairs dein. Sudtingu atveju galima naudoti skliaustelius. Pavyzdys su atsakymu select KOMPL_NR, VIETA, KIEKIS, KAINA from PREK where VIETA="LOS ANGELES" or VIETA="NEW YORK" and KIEKIS < 20 and KAINA < 1000; KOMPL_NR 001002 001008 001015 001022 001025 001031 001038 001007 001013 001032 001001 001029 Kitas pavyzdys su atsakymu select KOMPL_NR, PAVAD, VIETA, KIEKIS, KAINA from PREK where (VIETA="LOS ANGELES" or VIETA="NEW YORK") and (KIEKIS < 20 and KAINA < 1000); KOMPL_NR 001015 001022 VIETA NEW YORK NEW YORK KIEKIS 15 5 KAINA 745.00 414.95 VIETA LOS ANGELES LOS ANGELES NEW YORK NEW YORK LOS ANGELES LOS ANGELES LOS ANGELES LOS ANGELES LOS ANGELES LOS ANGELES LOS ANGELES LOS ANGELES KIEKIS 2 22 15 5 63 79 169 62 35 71 3 145 KAINA 1395.49 275.66 745.00 414.95 985.00 420.00 149.59 736.21 275.80 134.69 1296.29 89.95

32

KANONINS SCHEMOS IR RELIACINIS MODELIS

Sakinys INTO TABLE nra btinas. Jis naudojamas rezultatams atsiminti iorins atminties lentelje. Jeigu norime siminti ne visus stulpelius, reikia nurodyti ir stulpeli sra: INTO TABLE <rez. lent.> (stulp. sraas) Pavyzdys select KOMPL_NR, PAVAD, KIEKIS, VIETA from PREK where VIETA = "LOS ANGELES" into table LA_PR (KOMPL_NR, PAVAD, KIEKIS) ; Sukurta lentel LA_PR bus saugojama DB ir uregistruota DB kataloge.

2.7.4. Duomen terpimas, modifikavimas, paalinimas


lentel terpiant raus, naudojamas operatorius INSERT INTO <lentels vardas> [(<stulpeli sraas>)] VALUES (<reikmi sraas>) Pavyzdys INSERT INTO MAKL VALUES ("000001", "Zambini", "Riek", (02/15/80), "LOS ANGELES", "000000", 6000, 5.0); Operatorius veda vien korte su visais komponentais. Stulpeli sraas praleistas, kadangi visi rao komponentai upildomi reikmmis ir tos reikms srae idstytos taip pat, kaip atitinkami stulpeliai deklaruotoje lentelje MAKL. Norint terpti reikmes visus lentels stulpelius, stulpeli nurodyti nebtina. Stulpeli sraas specifikuojamas, norint modifikuoti atskirus stulpelius. Taip pat galima terpti dalin reikmi sra. Tada btina nurodyti ir atatinkam stulpeli sra tokia pat tvarka. terpiamame kortee nespecifikuotiems stulpeliams priskiriamos nulins reikiamo tipo reikms Vis terpiam reikmi tipai turi atitikti stulpeli paskelbtus tipus. Norint terpti duomenis i atrinkt egzistuojanios lentels eilui, reikia naudoti operatori insert into <lent. vardas> [(<stulp. sraas>)] <SELECT operatorius>; SELECT sakinys operatoriuje INSERT gali bti taikomas kitai lentelei, kuri yra informacijos altinis. Pavyzdys insert into MAKL1

KANONINS SCHEMOS IR RELIACINIS MODELIS

33

select * from MAKL where PAVARDE <> "Zambini";

Eilui modifikavimui naudojamas operatorius UPDATE: UPDATE <lent. vardas> SET <stulp. vardas> = <iraika> [,<stulp. vardas> = <iraika>...] [<WHERE sakinys>]; Pavyzdys Padidinti priedo procent koeficientu 1.25 tarnautojams-makleriams, sidarbinusiems iki 1992 m. liepos 5 dienos: update MAKL set PRIEDAS = (PRIEDAS * 1.25) where IDARB_DATA < CTOD("07/05/92"); Eilui paalinimui i lentels naudojamas operatorius DELETE: DELETE FROM <lent. vardas> [<WHERE sakinys>]; Pavyzdys delete from MAKL where PAVARDE = "LONG";

2.7.5. Lenteli struktros modifikavimas


Norint papildyti lentel naujais stulpeliais, naudojama komanda: ALTER TABLE <lent. vardas> ADD (<stulp. vardas> <duomen tipas> [,<stulp. vardas> <duomen tipas>...]); Pavyzdys alter table MAKL1 add (TELEF char(8)); Norint efektyviai modifikuoti lentel, paprastai elgiamasi taip: pirmiausiai sudaroma lentel su norimais stulpeliais, po to nauj lentel terpiamos eiluts i jau egzistuojanios lentels. Pavyzdys create MAKL2

34

KANONINS SCHEMOS IR RELIACINIS MODELIS

(MAKL_NR char(6), PILNAS_VARD char(25), IDARB_DATA date, ATLYGIS decimal(6.0), PRIEDAS decimal(4.1)); insert into MAKL2 select MAKL_NR, (PAVARDE+VARDAS), IDARB_DATA, ATLYGIS, PRIEDAS from MAKL; Jeigu stulpeliui duomenys nepriskiriami, jie inicijuojami tuiais tarpais arba nuliais, priklausomai nuo duomen tipo. Datos stulpeliai inicijuojami tuia datos eilute ("mm/dd/yy"), loginiai stulpeliai - reikme .F. . Lentel paalinama i DB komanda DROP TABLE : drop table MAKL2;

2.7.6. Virtualios lentels ir sinonimai


Virtualios (view) lentels sudaromos i DB lenteli. Su jomis galime elgtis taip pat, kaip su bazinmis lentelmis. Joms taikomas SELECT operatorius. Per view lenteli duomenis galima urayti ir bazin fail, jeigu view-lentel sujungta tik su vienu baziniu duomen failu. Virtuali lenteli duomenys nesaugojami ir egzistuoja tik SQL programos vykdymo metu. Kai duomenys baziniuose failuose keiiasi, view-lentels atvaizdas i karto "atsinaujina". Virtualiose lentelse mes atvaizduojame bazini lenteli projekcijas ir selekcijas. Virtuali lenteli sukrimui naudojama CREATE VIEW komanda: CREATE VIEW <virt. l. vardas> [(<virt. l. stulp. sr.>)] AS <SELECT operatorius> [WITH CHECK OPTION]; Jeigu <virt. l. stulp. sraas> nenurodytas, tai <virt.l.stulp.sr.> atitinka sra i SELECT operatoriaus dalies. sra reikia aikiai nurodyti, jeigu bent vieno stulpelio sudarymui panaudojama standartin funkcija ar kokia nors iraika. Treioji dalis naudojama modifikuojamose virtualiose lentelse. i dalis parodo, kad js esate saugs ir neterpsite toki duomen, kurie neatitinka SELECT dalies WHERE slygos. Pavyzdys create view LOSAN as select MAKL_NR, PAVARDE, IDARB_DATA from MAKL1 where MIESTAS = "LOS ANGELES" ; select * from LOSAN;

KANONINS SCHEMOS IR RELIACINIS MODELIS

35

Antrasis operatorius pateikia virtualios lentels duomenis ekrane:


MAKL_NR 000001 000004 000008 000013 000019 PAVARDE Zambini Coudray McLester Marin Rolfes IDARB_DATA 80/02/15 80/06/06 81/04/12 83/06/05 84/09/09

Nesudtingos restruktrizacijos pavyzdys create view ADRES (PILN_V, MIESTAS, VALSTIJA) as select PAVARDE+VARDAS, MIESTAS, VALSTIJA from PIRK; Duomen sujungimo pavyzdys create view UZSAKYM (UZSAK_NR,PARD_DATA,MAKLERIS) as select PARD.UZSAK_NR,PARD.PARD_DATA,MAKL.PAVARDE from PARD, MAKL where PARD.MAKLERIS = MAKL.MAKL_NR; select * from UZSAKYM; is pavyzdys iliustruoja, kaip virtualioje lentelje UZSAKYM galima apjungti duomenis i dviej bazini lenteli PARD ir MAKL, panaudojant natralij jungt:
UZSAK_NR 020002 020003 020004 020005 020006 020023 020024 020025 020026 PARD_DATA 87/09/21 87/09/21 87/09/21 87/09/21 87/09/22 87/09/25 87/09/25 87/09/25 87/09/25 MAKLERIS McLester Thomas Rolfes Zambini Charles Vidoni Charles Vidoni Coudray

Virtualios lentels paalinamos analogikai, kaip ir bazins lentels. Pavyzdys. drop view UZSAKYM ; Bazini ir virtuali lenteli vardams galima sukurti sinonimus, paprastai, trumpesnius, kad lengviau bt sudaryti SELECT, DROP ir kitus operatorius. Pavyzdys.

36

KANONINS SCHEMOS IR RELIACINIS MODELIS

create synonym P1 for PIRK; create synonym UZ for UZSAKYM; Sinonimai paalinami komanda DROP. Pavyzdys. drop synonym UZ;

2.7.7. Indeks sukrimas


Kaip ir storoms knygoms, duomen failams naudojami indeksai. Jie paspartina paiek. SQL procesorius jais stengiasi pasinaudoti. Indeksas nesudaromas virtualioms lentelms. Bet jeigu baziniam failui sudarytas indeksas, tai procesorius juo pasinaudoja, sudarydamas virtuali lentel i atitinkamos bazins lentels. Pavyzdys
Indekso lentel Indekso raktas rao Nr Coudray 3 Thomas 4 Vidoni 2 Zambini 1 SQL-duomen lentel makleris Kiti laukai MIESTAS ATLYGIS LOS ANGELES 6000 NEW YORK 5780 LOS ANGELES 6237 NEW YORK 5875

rao 1 2 3 4

Indekso raktas PAVARDE Zambini Vidoni Coudray Thomas

IDARB_DATA 80/02/15 80/03/06 80/06/06 81/01/08

ios dvi INDEX- ir SQL-lentels iliustruoja, kad tuo atveju, kai SQL-lentel bt skaitoma i fizinio duomen failo be indekso, ji bt nuskaitoma fiziniu nuoseklumu: 1 raas, 2 raas ir t.t. Jeigu SQL-lentel indeksuota, paieka joje vykdoma INDEX-rakto reikms augimo (arba majimo) tvarka. Duotame pavyzdlyje SQL-lentel indeksuota lauko PAVARDE atvilgiu reikmi augimo tvarka. Todl duomen loginiai raai i SQL-lentels bus nuskaitomi prisilaikant nurodyto riavimo. Indekso raktas vartotojui yra neprieinamas. Indeksai paspartina duomen paiek, bet pailgina duomen ra terpimus ir paalinimus. Indeksuoti galima t pai lentel keli lauk atvilgiu. Indeks failas sukuriamas CREATE INDEX komanda: CREATE [UNIQUE] INDEX <ind. vardas>

KANONINS SCHEMOS IR RELIACINIS MODELIS

37

ON <lent. vardas> ( <stulp. vardas> [ASC/DESC] [,<stulp. vardas> [ASC/DESC] ]); iuo operatoriumi specifikuoti stulpeliai vadinami indeks raktais. i lauk reikms idstomos j didjimo (ASC) arba majimo (DESC) tvarka Pavyzdys create index PAV on PIRKEJAS (PAVARDE); create unique index UZSAK on PARDUOTA (UZSAK_NR); Panaudojus raktaod UNIQUE, negalima rayti ra su pasikartojania indekso rakto reikme. Indeksas paalinamas komanda: drop index UZSAK;

2.7.8. Iraik panaudojimas


iraikas gali eiti: aritmetiniai operatoriai +, -, /, *, **, ^; (ia: / - dalyba, * - daugyba, ** - klimas kvadratu, ^ - eksponent;) konstantos - skaitmenins, logins, simbolins; programos kintamieji; standartins funkcijos. Iraikos naudojamos: galutini rezultat pakeitimui; nauj skaiiuojam stulpeli apibrimui SELECT sakinyje; WHERE sakinio slyg apibrimui; HAVING sakinio iraik apibrimui.

Pavyzdys, iliustruojantis naujo skaiiuojamo stulpelio terpim select MAKL_NR, PAVARDE, VARDAS, ATLYGIS*12,"(METIN ATL)" from MAKL where ATLYGIS*12 > 50000;
MAKL_NR 000001 000003 PAVARDE Zambini Vidoni VARDAS Rick Cheryl EXP1 72000 69360 EXP2 (METIN ATL) (METIN ATL)

38 000004 000006 000008 000011 000012 000013 000015 000016 000019

KANONINS SCHEMOS IR RELIACINIS MODELIS Coudray Thomas McLester Michaels Charles Marin Roddick Long Rolfes Sandy Pat Debbie Delores Ted Mark Mary Nicole Chuck 74844 70500 57504 59124 71340 57624 65916 62280 55032 (METIN ATL) (METIN ATL) (METIN ATL) (METIN ATL) (METIN ATL) (METIN ATL) (METIN ATL) (METIN ATL) (METIN ATL)

Du kiti pavyzdiai iliustruos standartini funkcij TUDAY ir UPPER panaudojim. Funkcija TUDAY nustato einamj kompiuterin dat, o funkcija UPPER simbolin eilut paveria didiosiomis raidmis. Pavyzdys, iliustruojantis standartins funkcijos TUDAYTE panaudojim select PAVARDE, VARDAS, IDARB_DATA from MAK where (TUDAY( ) IDARB_DATA) > 365*5; Pavyzdys, iliustruojantis standartins funkcijos UPPER panaudojim select FIRMA, MIESTAS, VALSTIJA from PIRK where UPPER(MIESTAS) = "SAN FRANCISCO";
FIRMA Black's Furniture Store A1 Office Supply Store Cohen's Furniture MIESTAS San Francisco San Francisco San Francisco VALSTIJA CA CA CA

iame pavyzdyje, funkcija UPPER, kai miestai yra i DB irenkami, j pavadinimus paveria didiosiomis raidmis, o ie pavadinimai sulyginami su programoje usiduota konstanta SAN FRANCISCO. Taiau iuo atveju rezultatyvinje lentelje miest pavadinimai ivedami tokie, kaip jie sugojami DB. Norint miestus atspausdinti didiosiomis raidmis, UPPER funkcij panaudoti SELECT sakinyje. Pavyzdys select FIRMA, UPPER(MIESTAS), VALSTIJA from PIRK where UPPER(MIESTAS)="SAN FRANCISCO";
FIRMA Black's Furniture Store A1 Office Supply Store Cohen's Furniture EXP1 SAN FRANCISCO SAN FRANCISCO SAN FRANCISCO VALSTIJA CA CA CA

KANONINS SCHEMOS IR RELIACINIS MODELIS

39

2.7.9. Agreguot funkcij panaudojimas


Pagrindins agreguotos funkcijos yra: COUNT () - eilui skaiius; SUM () - skaitmeninio stulpelio reikmi suma; MIN () - skaitmeninio datos arba simbolinio stulpelio reikms minimumas; MAX () - skaitmeninio datos arba simbolinio stulpelio reikms maksimumas; AVG () - skaitmeninio stulpelio vidutin reikm.

Pavyzdys select COUNT(*) from MAKL;


COUNT1 12

SQL funkcijos netaikomos konstantoms, atminties kintamiesiems ir loginiams stulpeliams. Pavyzdys select SUM (ATLYGIS) from MAKL;
SUM1 12

Pavyzdys select MAX(ATLYGIS), MIN(ATLYGIS), AVG(ATLYGIS) from MAKL;


MAX1 6237 MIN2 3783 AVG3 5284.17

Agreguot funkcij argumentams galima taikyti raktaod DISTINCT. Pavyzdys select COUNT(DISTINCT Miestas) from PIRK;

40 COUNT1 15

KANONINS SCHEMOS IR RELIACINIS MODELIS

Pavyzdys select COUNT(*) from PIRK where VALSTIJA="NY";


COUNT1 5

2.7.10. Predikatai BETWEEN, IN ir LIKE operatoriuje SELECT


Sakin where ATLYGIS >= 1500 and ATLYGIS <= 2500 galima pakeisti kitu sakiniu where ATLYGIS BETWEEN 1500 and 2500 ir sakin where VALSTIJA="AZ" or VALSTIJA="MO" or VALSTIJA="WI" galima pakeisti sakiniu where VALSTIJA IN("AZ", "MO", "WI") , o irinkimo slygos abiem atvejais iliks tos paios. Pavyzdys select FIRMA, MIESTAS, VALSTIJA, INDEKSAS from PIRK where VALSTIJA in ("AZ","MO","WI");
FIRMA Ace Furniture Interior Systems Baker Furniture Modern Furniture Store Al's Furniture & Supplies Contemporary Designs Classic Interiors MIESTAS Wasau Milwaukee Phoenix Phoenix St. Louis Milwaukee St. Louis VALSTIJA WI WI AZ AZ MO WI MO INDEKSAS 54401 53201 85012 85004 63121 53220 63106

KANONINS SCHEMOS IR RELIACINIS MODELIS

41

Pavyzdys select FIRMA,MIESTAS,VALSTIJA,INDEKSAS from PIRK where VALSTIJA like "N_";


FIRMA Custom Furniture The Office The Designer Las Vegas Furniture Accent Furniture Designs Interior Designs Design Center Interiors To Design Furniture MIESTAS Yonkers New York New York Las Vegas Las Vegas White Plains Las Vegas Rochester VALSTIJA NY NY NY NV NV NY NV NY INDEKSAS 10709 10013 10713 89106 89108 10605 89106 14625

Pavyzdys select distinct KOMPL_NR,PAVAD from PREK where PAVAD like "%DESK%";
KOMPL_NR 001007 001025 001027 PAVAD WOOD DESK-SINGLE PEDESTAL DESK-EXECUTIVE-5 FOOT DESK-EXECUTIVE-6 FOOT

2.7.11. Rezultat riavimas


SELECT <stulpeliai> FROM <lentels> WHERE <slyga> ORDER BY <stulpelis> [ASC/DESC] [,<stulpelis> [ASC/DESC]...]; Pavyzdys select KOMPL_NR,PAVAD,VIETA,KIEKIS from PREK order by VIETA asc, PAVAD asc;
KOMPL_NR PAVAD VIETA KIEKIS

42 001009 001031 001013 001033 001027 001038 001007 001001 001031 001019 001022 001007

KANONINS SCHEMOS IR RELIACINIS MODELIS CHAIR-ADJUSTABLE SWIVEL CHAIR-EXECUTIVE SWIVEL/TILT CHAIR-MODERN PNEUMATIC CHAIR-TRADITIONAL ARM DESK-EXECUTIVE-6 FOOT LAMP-DRAFTING SWING ARM WOOD DESK-SINGLE PEDESTAL WORKSTATION-ELECTRONIC OFFICE CHAIR-EXECUTIVE SWIVEL/TILT TABLE-BOARD ROOM TABLE-WALNUT OCCASIONAL WOOD DESK-SINGLE PEDESTAL CHICAGO CHICAGO CHICAGO CHICAGO CHICAGO CHICAGO CHICAGO CHICAGO LOS ANGELES NEW YORK NEW YORK NEW YORK 124 44 115 20 20 89 35 2 79 12 5 29

Pavyzdys select KOMPL_NR,PAVAD,VIETA,KIEKIS from PREK order by VIETA asc,KIEKIS desc;


KOMPL_NR 001024 001009 001013 001022 001021 001005 PAVAD LAMP-BRASS TABLE CHAIR-ADJUSTABLE SWIVEL CHAIR-MODERN PNEUMATIC TABLE-WALNUT OCCASIONAL MANAGERS OFFICE ENSEMBLE EXECUTIVE SUITE ENSEMBLE VIETA CHICAGO CHICAGO CHICAGO NEW YORK NEW YORK NEW YORK KIEKIS 140 124 115 5 3 0

Pavyzdys select KOMPL_NR,PAVAD,VIETA,KIEKIS from PREK where VIETA=CHICAGO order by KOMPL_NR;


KOMPL_NR 001001 001005 001007 001009 001013 001024 001027 PAVAD WORKSTATION-ELECTRONIC OFFICE EXECUTIVE SUITE ENSEMBLE WOOD DESK-SINGLE PEDESTAL CHAIR-ADJUSTABLE SWIVEL CHAIR-MODERN PNEUMATIC LAMP-BRASS TABLE DESK-EXECUTIVE-6 FOOT VIETA CHICAGO CHICAGO CHICAGO CHICAGO CHICAGO CHICAGO CHICAGO KIEKIS 2 1 35 124 115 140 20

KANONINS SCHEMOS IR RELIACINIS MODELIS 001031 001032 001033 001038 CHAIR-EXECUTIVE SWIVEL/TILT FILE CABINET-4 DRAWER CHAIR-TRADITIONAL ARM LAMP-DRAFTING SWING ARM CHICAGO CHICAGO CHICAGO CHICAGO 44 15 20 89

43

2.7.12. Eilui grupavimas


Eilutes galima grupuoti, SELECT operatoriuje panaudojus du papildomus GROUP BY- ir HAVING- sakinius. Grups atvilgiu galima panaudoti agreguotas funkcijas. GROUP BY- ir HAVING- sakiniais operacijas perkeliame nuo visos lentels prie grupi. GROUP BY- sakinys sujungia eilutes su vienodomis stulpeli reikmmis vien grup. Kiekvienas stulpelis, pamintas GRUOP BY- sakinyje, turi bti specifikuotas SELECT- sakinyje, ir atvirkiai. Skaiiuojam stulpeli GROUP BY- sakinyje galima nespecifikuoti. Pavyzdys select KOMPL_NR, PAVAD, SUM(KIEKIS) from PREK group by KOMPL_NR, PAVAD;
G_KOMPL_NR 001001 001002 001005 001007 G_PAVAD WORKSTATION-ELECTRONIC OFFICE HOME OFFICE SUITE EXECUTIVE SUITE ENSEMBLE WOOD DESK-SINGLE PEDESTAL SUM1 5 2 1 126

Pavyzdys: grupavimo bdu galima suskaiiuoti pardavj skaii kiekviename mieste select MIESTAS, COUNT(*) from MAKL group by MIESTAS;
G_MIESTAS CHICAGO LOS ANGELES NEW YORK COUNT1 3 5 4

GROUP BY-sakinys gali bti naudojamas kartu su ORDER BY-sakiniu. Pavyzdys select KOMPL_NR, PAVAD, SUM(KIEKIS)

44

KANONINS SCHEMOS IR RELIACINIS MODELIS

from PREK group by KOMPL_NR, PAVAD order by PAVAD;


G_KOMPL_NR 001009 001031 001013 001033 001015 001025 001027 001005 G_PAVAD CHAIR-ADJUSTABLE SWIVEL CHAIR-EXECUTIVE SWIVEL/TILT CHAIR-MODERN PNEUMATIC CHAIR-TRADITIONAL ARM CREDENZA-OAK SLIDING DOOR DESK-EXECUTIVE-5 FOOT DESK-EXECUTIVE-6 FOOT EXECUTIVE SUITE ENSEMBLE SUM1 124 199 150 20 15 110 76 1

2.7.13. Slygotos eilui grups


Slygotos eilui grups nurodomos HAVING-sakiniu. HAVING-sakinys vykdomas analogikai WHERE-slygai. Pavyzdys Preki, kuri vieneto kaina didesn u 500 lt ir bendras kiekis didesnis u 10, sra galima suformuoti tokiu SELECT-operatoriumi: select PAVAD, KOMPL_NR, SUM(KIEKIS), KAINA from PREK where KAINA>500 group by PAVAD, KOMPL_NR ,KAINA having SUM(KIEKIS)>10 order by PAVAD;
G_PAVAD CREDENZA-OAK SLIDING DOOR DESK-EXECUTIVE-5 FOOT DESK-EXECUTIVE-6 FOOT TABLE-BOARD ROOM WOOD DESK-SINGLE PEDESTAL G_KOMPL_NR 001015 001025 001027 001019 001007 SUM1 15 110 76 12 126 G_KAINA 745 985 1475 4250 736.21

Paprastai HAVING sakinys naudojamas kartu su GROUP BY-sakiniu. Jei GROUP BYsakinys nepanaudotas, tai HAVING-sakinys vis lentel traktuoja kaip paprast grup.

KANONINS SCHEMOS IR RELIACINIS MODELIS

45

2.7.14. Lenteli sumavimas


Skirtingais SELECT sakiniais gautas lenteles galima sumuoti, panaikinant eilutesdublikatus. Sumuojamos lentels turi turti tokio pat tipo ir formato stulpelius. Rezultatus galima riuoti, paskutiniame SELECT operatoriuje panaudojant ORDER BY-sakin. Pavyzdys Norint nustatyti miestus, kuriuose randasi nors vienas pirkjas, nors vienas makleris arba tuose miestuose yra sandliuojama nors vieno tipo prek, galima panaudoti SELECToperatorius kartu su korte sumavimo operatoriumi UNION: select MIESTAS from PIRK union select MIESTAS from MAKL union select VIETA from PREK order by 1;
MIESTAS CHICAGO Chicago Encino LOS ANGELES Las Vegas Los Angeles

iame pavyzdlyje matome, kad stulpelis ORDER BY-sakinyje gali bti nurodytas ne vardu, o jo numeriu.

2.7.15. Lenteli sujungimas


Lenteli sujungimui naudojamas SELECT-operatorius. Sujungiamos lentels nurodomos sakinyje FROM, o sujungimo slygos nurodomos sakinyje WHERE. Pavyzdys select UZSAK_NR, MAKL, MAKL_NR, PAVARDE from PARD, MAKL where PARD.MAKLERIS = MAKL.MAKL_NR;
PARD.UZSAK_NR 020002 MAKL.MAKL_NR 000008 MAKL.PAVARDE McLester

46 020003 020004 020005 020006 020007 020008 020009 020010 020011

KANONINS SCHEMOS IR RELIACINIS MODELIS 000006 000019 000001 000012 000015 000003 000012 000011 000015 Thomas Rolfes Zambini Charles Roddick Vidoni Charles Michaels Roddick

ioje uklausoje duomenys irenkami i lenteli makl ir pard. Irenkami duomenys asocijuojami panaudojat kanonins schemos (r. 2.10 pav.) ry MAKL_NR/MAKLERIS. Asociacija realizuojama natraliosios jungties algebrine operacija. WHERE-sakinio sujungimo slygoje tarpusavyje gali bti palyginami tik palyginami (t.y. to paties tipo) stulpeliai.
MAKL PAVARDE VARDAS IDARB_DATA MAKL_NR MIESTAS VADOVAS ATLYGIS PRIEDAS PARD UZSAK_NR PARD_DATA PIRKEJAS MAKLERIS APMOKETA

MAKL_NR/MAKLERIS

2.10 pav.

Pavyzdys: Irinkti maklerio Charles gautus usakymus. select UZSAK_NR, MAKL.MAKL_NR, PAVARDE from PARD, MAKL where PARD.MAKLERIS = MAKL.MAKL_NR and PAVARDE = "Charles";
PARD.UZSAK_NR 020006 020009 020013 020024 MAKL.MAKL_NR 000012 000012 000012 000012 MAKL.PAVARDE Charles Charles Charles Charles

SELECT- ir WHERE-sakiniuose galima panaudoti iraikas ir funkcijas. Pavyzdys:

KANONINS SCHEMOS IR RELIACINIS MODELIS

47

Irinkti usakymo 20021 komplektus, j kiekius, komplekt kainas ir suskaiiuoti, kiek reikia mokti u io usakymo komplektus. select distinct UZSA.KOMPL_NR, UZSA.KIEKIS, KAINA, (UZSA.KIEKIS*KAINA) from UZSA, PREK where PREK.KOMPL_NR = UZSA.KOMPL_NR and UZSAK_NR = "020021";
UZSA.KOMPL_NR 001013 001024 001025 UZSA.KIEKIS 8 6 8 PREK.KAINA 275.80 230.79 985.00 EXP1 2206.40 1384.74 7880.00

Pavyzdys select MAKL.PAVARDE, UZSAK_NR, FIRMA from PARD, MAKL, PIRK where MAKL_NR = MAKLERIS and PIRKEJAS = PIRK_NR order by MAKL.PAVARDE;
MAKL.PAVARDE Charles Charles Charles Charles Coudray Coudray Marin Marin McLester PARD.UZSAK_NR 020006 020009 020013 020024 020022 020026 020019 020020 020002 PIRK.FIRMA New Horizons Interior Systems New Horizons Classic Interiors A1 Office Supply Store Black's Furniture Store American Business Supply Al's Furniture & Supplies Modern Furniture Store

2.7.16. Rezultat lenteli riavimas ir grupavimas


Rezultatus galima riuoti ir grupuoti analogikai kaip irenkant duomenis i vienos lentels. Pavyzdys select UZSAK_NR,PARD_DATA,PAVARDE from PARD,MAKL where MAKLERIS = MAKL_NR

48

KANONINS SCHEMOS IR RELIACINIS MODELIS

order by PARD_DATA DESC, PAVARDE;


PARD.UZSAK_NR 020024 020026 020022 020021 020025 020023 020020 020019 020018 020017 020013 PARD.PARD_DATA 87/09/25 87/09/25 87/09/25 87/09/25 87/09/25 87/09/25 87/09/24 87/09/24 87/09/24 87/09/24 87/09/23 MAKL.PAVARDE Charles Coudray Coudray McLester Vidoni Vidoni Marin Marin Michaels Thomas Charles

Pavyzdys select MAKL_NR, PAVARDE, count(*) from PARD, MAKL where MAKL.MAKL_NR = PARD.MAKLERIS group by MAKL_NR, PAVARDE having count(*) > 2 order by 3;
G_MAKL_NR 000003 000008 000012 000015 G_PAVARDE Vidoni McLester Charles Roddick COUNT1 3 3 4 4

2.7.17. Vidinis lenteli sujungimas


Pavyzdys: Irinkti vadovams pavaldius maklerius, nurodant ir vadov, ir pavaldini pavardes. select VAD.PAVARDE,"Vadovauja:",PAVAL.PAVARDE from MAKL VAD,MAKL PAVAL where VAD.MAKL_NR = PAVAL.VADOVAS order by VAD.PAVARDE desc;
VAD.PAVARDE EXP1 PAVAL.PAVARDE

KANONINS SCHEMOS IR RELIACINIS MODELIS Zambini Zambini Zambini Zambini Vidoni Vidoni Vidoni Charles Charles Vadovauja: Vadovauja: Vadovauja: Vadovauja: Vadovauja: Vadovauja: Vadovauja: Vadovauja: Vadovauja: Coudray McLester Marin Rolfes Thomas Roddick Long Michaels Sanders

49

ioje uklausoje panaudota principin naujov: tai paiai bazinei duomen lentelei makl, kurios vardas SELECT-sakinyje yra MAKL sukuriama papildomos virtualios lentels vad ir paval; vad = paval = makl; su naujais vardais VAD ir PAVAL. Programiniu bdu sudarytos lentels traktuojamos kaip savarankikos lentels, ir jos natraliosios jungties bdu sujungiamos rezultayvin lentel, pasinaudojant asociatyviniu ryiu VAD.MAKL_NR/PAVAL.VADOVAS. is asociatyvinis ryys uklausoje realizuojamas WHERE-sakiniu where VAD.MAKL_NR = PAVAL.VADOVAS . Reliacins algebros kalba i uklausa gali bti urayta tokiu bdu: m1 = (VADOVAS, PAVARDE) (makl) ;
VADOVAS 000000 000000 000001 000003 000001 000012 000000 000001 000003 000003 000001 000012 PAVARDE Zambini Vidoni Coudray Thomas McLester Michaels Charles Marin Roddick Long Rolfes Sanders

m2 = VADOVASMAK; PAVARDEPAVAL.PAVARDE (m1) ;


MAK 000000 000000 000001 000003 PAVAL.PAVARDE Zambini Vidoni Coudray Thomas

50 000001 000012 000000 000001 000003 000003 000001 000012

KANONINS SCHEMOS IR RELIACINIS MODELIS McLester Michaels Charles Marin Roddick Long Rolfes Sanders

m3 = (MAKL_NR, PAVARDE) (makl) ;


MAKL_NR 000001 000003 000004 000006 000008 000011 000012 000013 000015 000016 000019 000020 PAVARDE Zambini Vidoni Coudray Thomas McLester Michaels Charles Marin Roddick Long Rolfes Sanders

m4 = MAKL_NRMAK; PAVARDEVAD.PAVARDE (m3) ;


MAK 000001 000003 000004 000006 000008 000011 000012 000013 000015 000016 000019 000020 VAD.PAVARDE Zambini Vidoni Coudray Thomas McLester Michaels Charles Marin Roddick Long Rolfes Sanders

mm = m2m4 ;

KANONINS SCHEMOS IR RELIACINIS MODELIS MAK 000001 000001 000001 000001 000003 000003 000003 000012 000012 PAVAL.PAVARDE Coudray McLester Marin Rolfes Thomas Roddick Long Michaels Sanders VAD.PAVARDE Zambini Zambini Zambini Zambini Vidoni Vidoni Vidoni Charles Charles

51

atsakymas = (VAD.PAVARDE, PAVAL.PAVARDE) (mm) ;


VAD.PAVARDE Zambini Zambini Zambini Zambini Vidoni Vidoni Vidoni Charles Charles PAVAL.PAVARDE Coudray McLester Marin Rolfes Thomas Roddick Long Michaels Sanders

Rezultatyvin lentel gavome toki pat, kaip ir SQL-uklausos atveju. SQL-uklausoje buvo terptas papildomas stulpelis EXP1 su pastovia jo eilui reikme Vadovauja:.

2.7.18. Sub-uklausos su pavienmis grinamomis reikmmis


Pirmajame (ioriniame) SELECT-operatoriuje galima naudoti vidin SELECToperatori, patalpint iorinio operatoriaus WHERE-slygoje. ia galimi du atvejai: 1) vidinis SELECT-sakinys grina vien vienviet korte (pavien reikm); 2) vidinis SELECT-sakinys grina kelet vienviei korte (grup reikmi). Pirmuoju atveju iorin WHERE-slyga tikrina, kaip tenkinama aritmetin palyginimo slyga, kai jos deinje pusje grinama viena palyginimui skirta reikm.

Pavyzdys select UZSAK_NR,PARD_DATA from PARD

52

KANONINS SCHEMOS IR RELIACINIS MODELIS

where PIRKEJAS = (select PIRK_NR from PIRK where FIRMA="American Business Supply") order by PARD_DATA;
UZSAK_NR 020005 020019 PARD_DATA 87/09/21 87/09/24

iame pavyzdyje vidinis (antrasis) SELECT-operatorius grina i lentels PIRK vienintel reikm PIRK_NR = 000016, o pirkjas (PIRKEJAS) su iuo kodu turi du usakymus 020005 ir 020019, uregistruotus PARD lentelje. Vidiniuose SELECT-operatoriuose galima naudoti agreguotas funkcijas, nes jos suskaiiuoja pavienes reikmes. Pavyzdys select PAVARDE, ATLYGIS from MAKL where ATLYGIS > (select avg (ATLYGIS) from MAKL) order by PAVARDE;
PAVARDE Charles Coudray Roddick Thomas Vidoni Zambini ATLYGIS 5945 6237 5493 5875 5780 6000

Iorinje WHERE-slygoje galima naudoti logines jungtis, kurios jungia kelis vidinius SELECT-operatorius. Pavyzdys select UZSAK_NR, PARD_DATA from PARD where PIRKEJAS = (select PIRK_NR from PIRK where FIRMA = "American Business Supply") or MAKLERIS = (select MAKL_NR from MAKL where PAVARDE="Zambini") order by UZSAK_NR;
UZSAK_NR PARD_DATA

KANONINS SCHEMOS IR RELIACINIS MODELIS 020005 020014 020019 87/09/21 87/09/23 87/09/24

53

i uklausa bus teisingai suformuota, jeigu DB saugojami duomenys ipildo slyg, kad firma atstovauja visada vienas pirkj (PIRK_NR) ir makleris su nurodyta pavarde(PAVARDE) turi unikal kod (MAKL_NR).

2.7.19. Sub-uklausos su grupe grinam reikmi


Jeigu vidinis SELECT-operatorius grina daugiau kaip vien reikm, palyginimui reikia naudoti predikatus IN, ANY, arba ALL. Vidinis operatorius gali grinti grup reikmi, taiau tik vienam iorinio operatoriaus stulpeliui.

Pavyzdys select UZSAK_NR, PIRKEJAS, PARD_DATA from PARD where PIRKEJAS in (select PIRK_NR from PIRK where INDEKSAS like "9%") order by UZSAK_NR;
UZSAK_NR 020004 020005 020012 020014 020019 020021 020022 020026 PIRKEJAS 000034 000016 000027 000001 000016 000046 000027 000017 PARD_DATA 87/09/21 87/09/21 87/09/22 87/09/23 87/09/24 87/09/25 87/09/25 87/09/25

Iorinio SELECT-operatoriaus WHERE-slyga gyja poym teisinga", jeigu stulpelio PIRKEJAS reikm sutampa su viena kuria nors reikme i aibs, kuri suformuoja vidinis SELECT-operatorius. Vidinis SELECT-operatorius negali turti ORDER BY- arba UNION-sakini. Vidinis operatorius gali turti GROUP BY- arba HAVING-sakinius. Taiau ie sakiniai gali bti panaudoti tik vien kart, bendrai imant iorinius ir vidinius SELECToperatorius. Pavyzdys:

54

KANONINS SCHEMOS IR RELIACINIS MODELIS

Irinkti pirkj numerius, firmas, pavardes, vardus ir miestus t pirkj, kurie turi usakymus, kuriuos eina komplektas su kodo reikme 001025. select PIRK_NR, FIRMA, PAVARDE, VARDAS, MIESTAS from PIRK where PIRK_NR in (select PIRKEJAS from PARD where UZSAK_NR in (select UZSAK_NR from UZSA where KOMPL_NR = "001025")) order by PIRK_NR;
PIRK_NR 000011 000019 000025 000040 000046 FIRMA The Office The Designer Modern Furniture Store Design Center Interiors Commercial Interiors LTD PAVARDE LeClerc Hobbs Hamilton Gilbert Young VARDAS Dominique Luke Robert Chuck Sandy MIESTAS New York New York Phoenix Las Vegas Ventura

iuos trij lygi SELECT-operatorius galima pakeisti vieno lygio sujungimo tipo uklausa, gaunant t pat rezultat: select PIRK_NR, FIRMA, PAVARDE, VARDAS, MIESTAS from PIRK, PARD, UZSA where PIRK_NR = PIRKEJAS and PARD.UZSAK_NR = UZSA.UZSAK_NR and KOMPL_NR = "001025" order by 1; Kiekvien uklaus su vidiniais SELECT-operatoriais galima pakeisti sujungimo tipo uklausa, taiau atvirkias teiginys neteisingas. Pavyzdiui, jeigu duomenis reikia irinkti ioriniais ir vidiniais SELECT-operatoriais, tai j galima realizuoti, tik naudojant sujungimo tipo uklaus.

2.7.20. Raktaodi ANY ir ALL panaudojimas


Raktaodis ANY leidia nustatyti, ar WHERE-slyga teisinga bent vienai reikmei i t, kurias grina vidinis SELECT-operatorius. Pavyzdys select MAKL_NR, PAVARDE, MIESTAS, PRIEDAS from MAKL where PRIEDAS < any (select PRIEDAS from MAKL where MIESTAS="CHICAGO")

KANONINS SCHEMOS IR RELIACINIS MODELIS

55

order by MAKL_NR;
MAKL_NR 000001 000003 000004 000006 000008 000012 000019 000020 PAVARDE Zambini Vidoni Coudray Thomas McLester Charles Rolfes Sanders MIESTAS LOS ANGELES NEW YORK LOS ANGELES NEW YORK LOS ANGELES CHICAGO LOS ANGELES CHICAGO PRIEDAS 5.0 5.0 5.0 5.0 5.0 5.0 6.0 5.0

Mieste CHICAGO dirba trys makleriai, kurie gauna tokius priedus : Michaels - 7.0 % Charles - 5.0 % Sanders - 5.0 % atsakym papuola tie makleriai, kurie gauna priedus, maesnius u 7.0 %. Jeigu nortume irikti visus maklerius, kurie gauna tokius pat priedus, kaip ir CHICAGO dirbantys makleriai, tai vietoje WHERE-slygos where PRIEDAS = any reikt panaudoti ankstesnje uklausoje toki WHERE-slyg: where PRIEDAS in Raktaodis ALL leidia nustatyti, ar iorin WHERE-slyga teisinga visoms vidinio SELECT-operatoriaus.grinamoms reikmms. Pavyzdys select MAKL_NR, PAVARDE, MIESTAS, PRIEDAS from MAKL where PRIEDAS > all (select PRIEDAS from MAKL where MIESTAS = "CHICAGO") order by MAKL_NR;
MAKL_NR 000013 000015 PAVARDE Marin Roddick MIESTAS LOS ANGELES NEW YORK PRIEDAS 11.0 8.0

2.7.21. Predikato EXISTS panaudojimas


Jeigu WHERE-slygoje naudojamas EXISTS predikatas, i slyga vertinama reikme "teisinga", jeigu vidinis sakinys grina bent vien korte.

56

KANONINS SCHEMOS IR RELIACINIS MODELIS

Pavyzdys select PIRK_NR, FIRMA, MIESTAS, VALSTIJA from PIRK where exists (select * from PARD where PIRK.PIRK_NR = PARD.PIRKEJAS) order by PIRK_NR; is iorinis SELECT-operatorius irenka pirkjus, kurie yra usisak kokias nors prekes. Jei ioje uklausoje EXISTS predikat pakeisime NOT EXISTS predikatu, atsakyme bus irinkti pirkjai, neusak preki.
PIRK.PIRK_NR 000003 000009 000022 000024 000028 000033 000035 000042 PIRK.FIRMA Ace Furniture Custom Furniture Las Vegas Furniture Baker Furniture Accent Furniture Designs Interior Designs Valley Furniture Cohen's Furniture PIRK.MIESTAS Wasau Yonkers Las Vegas Phoenix Las Vegas White Plains Encino San Francisco PIRK.VALSTIJA WI NY NV AZ NV NY CA CA

Paymtina, kad konstrukcij SELECT * vidinje uklausos dalyje galima panaudoti tik su EXISTS arba NOT EXISTS predikatu i iorins dalies.

2.7.22. Koreliuotos vidins uklausos Koreliuotose vidinse uklausose stulpeli reikmes vidiniams SELECTsakiniams nustato iorinis SELECT-operatorius. Tos iorins reikms aktyvizuoja vidin uklaus. Jeigu tiek ioriniame, tiek vidiniame SELECT-sakiniuose naudojama ta pati lentel, tai juose tai lentelei reikia priskirti skirtingus vardus, nes iuo atveju vienoje lentelje tuo paiu metu nagrinjamos skirtingos eiluts. Pavyzdys select ISOR.VARDAS, ISOR.PAVARDE, ISOR.MIESTAS, ISOR.IDARB_DATA,ISOR.ATLYGIS from MAKL ISOR where ATLYGIS= (select max(ATLYGIS) from MAKL VIDIN where VIDIN.MIESTAS = ISOR.MIESTAS) order by ISOR.PAVARDE;

KANONINS SCHEMOS IR RELIACINIS MODELIS ISOR.VARDAS Ted Sandy Pat ISOR.PAVARDE Charles Coudray Thomas ISOR.MIESTAS CHICAGO LOS ANGELES NEW YORK ISOR.ATLYGIS 5945 6237 5875

57

Kiekvienam makleriui viena atlygio reikm i iorinio SELECT-operatoriaus perduodama vidiniam SELECT-sakiniui, kuris paruoia vien vidin maksimalaus atlygio reikm. Jeigu ios reikms sutampa, tai makleris i iorinio sakinio yra tinkamas atsakymui.

DUOMEN BAZI RELIACIN TEORIJA

3
FUNKCINS PRIKLAUSOMYBS IR RAKTAI
3.1. Funkcini priklausomybi apibrimas
Tarkime, kad R = (A1, A2,..., An) yra santyki schema, o X ir Y - du ios schemos atribut poaibiai. Sakoma, kad X su Y sieja funkcin priklausomyb (FP) X Y , jeigu bet kuriame schemos R santykyje r(R) dviejuose korteuose t1 ir t2 pasikartojant Xkomponentams t1(X) ir t2(X) btinai turi pasikartoti ir Y-komponentai t1(Y) ir t2(Y), t.y. jei t1(X) = t2(X), tai ir t1(Y) = t2(Y).
PREK KOMPL_NR PAVAD KIEKIS VIETA KAINA PAPILD_PO PREK KOMPL_NR PAVAD KIEKIS VIETA KAINA PAPILD_PO

3.1 pav.

3.2 pav.

Paimkime schem PREK ir funkcines priklausomybes KOMPL_NR KAINA, KOMPL_NR PAVADINIMAS, PAVADINIMAS KOMPL_NR (r. 3.1 pav.). Nepriklausomai nuo to, kuriame mieste (VIETA) komplektas (KOMPL_NR) yra sandliuojamas, komplekto kaina ilieka ta pati, t.y. pasikartojant KOMPL_NRkomponentui, btinai pasikartoja ir KAINA-komponentas (r. 3.1 lent.). 3.1 lentelje i priklausomyb nepaeidiama ir modifikuojant lentels duomenis t priklausomyb negalima paeisti. T pat galima pasakyti ir apie kitas funkcines priklausomybes. Funkcini priklausomybi schemoje PREK galima nurodyti ir daugiau. Pavyzdiui, teisingos yra funkcins priklausomybs KOMPL_NR,VIETA KIEKIS ir KOMPL_NR,VIETA PAPILD_POZ (r. 3.2 pav.). Tarkime, kad R santykio schema; A, B, C, D jos atributai, o A B, B C duotosios funkcins priklausomybs. Galima nesunkiai rodyti, kad FP A C logikai seka i pirmj dviej. Paimkime du santykio r(R) korteus t1 ir t2 (r. 3.1 lentel). ia: t1 = <a1, b1, c1, d1>, o t2 = <a1, b2, c2, d2>. Kadangi t1(A) = t2(A) = a1 ir duota, kad A B, tai btinai t1(B) turi sutapti su t2(B). Pateiktame santykyje r(R) taip nra: t1(B) = b1, o

FUNKCINS PRIKLAUSOMYBS IR RAKTAI

59

t2(B) = b2. Tai reikia, kad santykis neteisingas ir B-komponentus turime suvienodinti, pavyzdiui, tokiu bdu: t1(B) = t2(B) = b1. Pradinse slygose buvo duota, kad B C. Jeigu t1(B) = t2(B) = b1 , o t1(C) = c1 ir t2(C) = c2, tai Ckomponentus taip pat suvienodiname: t1(C) = t2(C) = c1. Todl i slygos t1(A) = t2(A) ir A B, B C seka, kad t1(C) = t2(C). Tai reikia, kad teisinga yra A C. Ji logikai seka i dviej ankstesnij ir gali bti ivesta pasinaudojant tranzityvumo taisykle.
3.1 lentel C D c1 d1 c2 (c1) d2

t1 t2

A a1 a1

B b1 b2 (b1)

Schemoje R nurodytas FP vadinsime uduotj funkcini priklausomybi (UFP) aibe. Kitas FP galima ivesti naudojant funkcini priklausomybi ivedimo taisykles, kurias panagrinsime sekaniuose dviejuose skyreliuose.

3.2. Funkcini priklausomybi ivedimo taisykls

Jeigu schemoje R yra uduota funkcini priklausomybi aib F , tai visas kitas FP galima ivesti taikant funkcini priklausomybi ivedimo taisykles. Jeigu i F taikant ivedimo taisykles galima ivesti X Y, tai fakt ateityje ymsime X Y F+. Parodysime, kad jei XYF+, tai X Y yra teisinga ir ymsime F |=FT X Y. Mes norime rodyti, kad jei X Y ivedama naudojant korektikas taisykles, tai bet kuris santykis r(R), tenkinantis F turi tenkinti ir X Y. Paymj raidmis X, Y, Z, W schemos R atribut poaibius, pateiksime eias ivedimo taisykles, kuriose atribut poaib X Z = W paprastumui ymsime X,Z , o schemos W korte - x,z (atribut reikms atskirsime taip pat kableliu be tarpo). FT1. Refleksyvumas: FT2. Papildymas: FT3. Adityvumas: FT4. Projektyvumas: FT5. Tranzityvumas: FT6. Pseudotranzityvumas: X |=FT X X. X Y |=FT X,Z Y. X Y; X Z |=FT X Y,Z. X Y,Z |=FT X Y; X Z. X Y; Y Z |=FT X Z. X Y; Y,Z W |=FT X,Z W.

Norint parodyti, kad ios taisykls korektikos (patikimos), reikia sitikinti, kad bet koks santykis r(R), tenkinantis F, turi tenkinti ir FP i F+ . Santykis r(R) tenkina X Y, jeigu santykis-projekcija Y (X=x (r)) kiekvienai x reikmei turi ne daugiau kaip vien korte. Panagrinkime santyk prek (r. 3.2 lentel) su dviem korteais t1 ir t2 tokiais, kad t1(KOMPL_NR) = t2(KOMPL_NR). ioje schemoje KOMPL_NR KAINA yra uduota ir KAINA (KOMPL_NR=001027 (prek)) = <29.00>. ios dvi operacijos prie bet koki

60

FUNKCINS PRIKLAUSOMYBS IR RAKTAI

atributo KOMPL_NR reikmi duoda ne daugiau kaip vien korte (vien arba nei vieno).
3.2 lentel. prek KOMPL_NR 001038 t1 t2 001027 001027 PAVAD CTRL SUPER AT I/O CTRL LOCAL BUS VESA IDE CTRL LOCAL BUS VESA IDE KIEKIS 89 20 56 VIETA KAUNAS KAUNAS VILNIUS KAINA 15.00 29.00 29.00 PAPIL_POZ .F. .F. .F.

Panagrinkime taisykli FT1 FT6 patikimum atskirai po vien. FT1. Refleksyvumas. X X visada teisinga, nes X (X=x (r)) negali turti daugiau kaip vien korte FT2. Papildymas. Usiduokime X Y ir Z R. Tada X,Z=x,z (r) X=x (r) , nes santyk X,Z=x,z (r) btinai padengs santykis X=x (r). Kadangi Y (X=x (r)) turi ne daugiau kaip vien korte (tai iliustravome pavyzdiu), todl Y (X,Z=x,z (r)) tikrai negali turti daugiau kaip vien korte. Taigi, X,Z Y yra teisinga. Pavyzdiui, jei KOMPL_NR KAINA, tai teisinga yra ir KOMPL_NR,VIETA KAINA.. Tarkime KOMPL_NR = 001027. Pavaizduokime rezultatus po santykio prek dviej selekcij (r. 3.3 ir 3.4 lenteles).
3.3 lentel. KOMPL_NR = 001027 (prek) KOMPL_NR 001027 001027 PAVAD CTRL LOCAL BUS VESA IDE CTRL LOCAL BUS VESA IDE KIEKIS 20 56 VIETA KAUNAS VILNIUS KAINA 29.00 29.00 PAPIL_POZ .F. .F.

3.4 lentel. KOMPL_NR,VIETA = 001027,KAUNAS (prek) KOMPL_NR 001027 PAVAD CTRL LOCAL BUS VESA IDE KIEKIS 20 VIETA KAUNAS KAINA 29.00 PAPIL_POZ .F.

iose lentelse: KOMPL_NR,VIETA = 001027,KAUNAS (prek) KOMPL_NR = 001027 (prek);

FUNKCINS PRIKLAUSOMYBS IR RAKTAI

61
= 001027

KAINA (KOMPL_NR,VIETA <29.00>.

= 001027,KAUNAS

(prek)) = KAINA (KOMPL_NR

(prek)) =

FT3. Adityvumas. Sakykime X Y; X Z yra teisingos. Jeigu r tenkina X Y ir X Z tai abu santykiai-projekcijos Y (X=x (r)) ir Z (X=x (r)) turi ne daugiau kaip po vien korte. Santykis YZ (X=x (r)) turs taip pat ne daugiau kaip vien korte, nes kitu atveju arba Y (X=x (r)), arba Y (X=x (r)) turt bent po du korteus. Todl teisinga bus funkcin priklausomyb X Y,Z. FT4. Projektyvumas. Tarkime X Y,Z teisinga arba Y,Z (X=x (r)) turi ne daugiau kaip vien korte kiekvienai x reikmei. Kadangi Y (Y,Z (X=x (r))) = Y (X=x (r)), tai Y (X=x (r)) turi ne daugiau kaip vien korte ir X Y yra teisinga. FT5. Tranzityvumas. X Y; Y Z |=FT X Z. Tranzityvum rodme pavyzdiu ankstesniame skyrelyje. FT6. Pseudotranzityvumas. Sakykime, duotos teisingos FP X Y ir Y,Z W. Paimkime t1, t2 r tokius, kad (3.1) t1(X,Z) = t2(X,Z) I (3.1) seka, kad (3.2) t1(X) = t2(X) ir (3.3) t1(Z) = t2(Z). I X Y (buvo usiduota) ir (3.2) seka, kad (3.4) t1(Y) = t2(Y), o i (3.3) ir (3.4) seka, kad (3.5) t1(Y,Z) = t2(Y,Z). Buvo usiduota taip pat Y,Z W. I jos ir (3.5) darome ivad, kad (3.6) t1(W) = t2(W)
PREK KOMPL_NR PAVAD KIEKIS VIETA KAINA PAPILD_PO W Z Y X

3.3 pav.

62

FUNKCINS PRIKLAUSOMYBS IR RAKTAI

Tokiu bdu, jeigu t1(X,Z) = t2(X,Z), tai ir t1(W) = t2(W) ir X,Z W yra teisinga. Paimkime ankstesn schem PREK su nurodytomis funkcinmis priklausomybmis, kurios yra sunumeruotos (r. 3. 3 pav.). ioje schemoje panaudoti tokie paymjimai : X = KOMPL_NR, Y = PAVAD, Y,Z = PAVAD,VIETA, W = KIEKIS, Z = VIETA, X,Z = KOMPL_NR,VIETA. Treioji FP gali bti ivesta i pirmj dviej naudojant pseudotranzityvumo taisykl.

3.3. Galin funkcini priklausomybi aib

PREK KOMPL_NR PAVAD KIEKIS VIETA KAINA PAPILD_PO

3.4 pav.

Uduotj FP aib F kartu su kitomis funkcinmis priklausomybmis, kurios iteraciniu bdu ivestos i F arba i anksiau ivestj panaudojant korektik taisykli rinkin (sistem), vadinsime funkcini priklausomybi galine aibe ir ymsime j F+. Paimkime ankstesn schem PREK ir uduotj funkcini priklausomybi aib F (r. 3.4 pav.). I ios F naudojant formalias taisykles galima sudaryti F+ (r. 3.5 pav.)

FUNKCINS PRIKLAUSOMYBS IR RAKTAI


F+ PREK KOMPL_NR PAVAD KIEKIS VIETA KAINA PAPILD_PO H F 1 2 3 4 5 6 F-

63

3.5 pav.

Pirmoji FP PAVAD KAINA ivesta i PAVAD KOMPL_NR, o KOMPL_NR KAINA naudojant tranzityvumo taisykl FT5. Pasinaudojant pseudotranzityvumu (FT6) ivestos 2-oji, 3-oji ir 4-oji funkcins priklausomybs. Ivedam FP aibje F+ yra ir daugiau, pavyzdiui: KOMPL_NR KOMPL_NR (FT1); KOMPL_NR,VIETA VIETA (FT1, FT2) ir t.t. Pateiksime tris naujus apibrimus. Jeigu turim schem R ir X R , o Y X, tai FP X Y visada teisinga ir vadinama trivialija funkcine priklausomybe. Funkcin priklausomyb KOMPL_NR, VIETA VIETA bus trivialioji, nes priklausomybs deiniosios puss atributas VIETA yra ir priklausomybs kairiojoje pusje. Paymkime schemoje R visas manomas funkcines priklausomybes H: H = { X Y | X,Y R } Tada F- = H F+ sudaro uduotj funkcini priklausomybi F ior. Visos X Y F logikai neseka i F ir yra F atvilgiu neteisingos. Pavyzdiui, neteisingos yra 5-oji ir 6oji funkcins priklausomybs (r. 3.5 pav.).
F+ PREK KOMPL_NR PAVAD KIEKIS VIETA KAINA PAPILD_PO X+ X

3.6 pav.

64

FUNKCINS PRIKLAUSOMYBS IR RAKTAI

Schemoje R paimkime uduotj FP aib F ir vien poaib X R. Atribut poaibis Y R bus vadinamas X-dengtimi X+ , jeigu bet kokiam Z Y galioja X Z F+ . Schemoje PREK usidav X = PAVAD,VIETA, jo dengtis bus X+ = PAVAD, VIETA,KOMPL_NR,KIEKIS,KAINA,PAPILD_POZ (r. 3.6 pav.). i funkcini priklausomybi deiniosios puss yra X+ poaibiai, o aib X+ iame pavyzdyje sudaro visi schemos atributai.

3.4. Ivedimo taisykli savybs


Panagrinsime anksiau pateiktos FP ivedimo taisykli sistemos FT1 FT6 tokias savybes: - patikimum, - perteklikum, - pilnum. Patikimumas. Schemai R funkcins priklausomybs X Y ivedimo taisykl FT yra patikima, jeigu j naudojant funkcin priklausomyb X Y tenkina bet kuris schemos R santykis r(R). Kad FT1 FT6 yra patikimos, rodm anksiau (3.3 skyrelyje). Perteklikumas. Pirmiausia pastebsime, kad pasinaudojant FT1FT6, funkcini priklausomybi ivedimo taisykli galima sugalvoti ir daugiau. Trivialiosios funkcins priklausomybs ivedimo taisykl (3.7) Y X |=FT X Y galima apibrti naudojant refleksyvum (FT1) ir papildym (FT2). Tarkime, kad X = A,B; Y = A. Tada: AA (refleksyvumas)
Y

A,B A
X Y

(papildymas).

Kitas pavyzdys: X Y ; X,Y = Z' ; Z' W |=FT X W i taisykl pagrsime anksiau nagrintu pseudotranzityvumu FT6: X Y, Y,Z W |=FT X,Z W Tarkime, kad X = A ; Y= B ; Z' = A,B ; W=C. Jeigu: AB
X Y Z Y

(3.8)

(duota);

FUNKCINS PRIKLAUSOMYBS IR RAKTAI

65

B,A C A,A C
Z' X Z W W

(duota)

tada Kadangi gauname

(pseudotranzityvumas).

A,A = A , AC.
X W

Pseudotranzityvumo taisykl FT6 yra bendresn u 3.8 taisykl. Dl ios prieasties pakanka pasinaudoti pseudotranzityvumu, kad pagrsti 3.8 taisykl. i taisykl yra dalinis FT6 atvejis , nes pseudotranzityvumo atveju atributams Z joki apribojim nra. Suprantama, kad parodytos 3.7 ir 3.8 taisykls yra perteklins atvilgiu FT1 FT6, nes jos buvo sudarytos pasinaudojant FT1, FT2 ir FT6. Galima paklausti, ar ivedimo taisykli FT1 FT6 sistemos viduje nra perteklini. Pasirodo, kad taip. Pavyzdiui, FT6 gali bti sudaryta i FT1, FT2, FT3 ir FT5. rodykime tai. ZZ (FT1); X,Z Z (FT2); (3.9) XY (FT6 prielaida); (3.10) X,Z Y (i 3.10 pagal FT2); (3.11) X,Z Y,Z (i 3.9 ir 3.11 pagal FT3); (3.12) Y,Z W (FT6 prielaida); (3.13) X,Z W (FT6 ivestis - i 3.12 ir 3.13 pagal FT5). (3.14) Paimkime kit atvej. Parodysime, kad pasinaudojant taisyklmis FT1, FT2 ir FT6 galima ivesti taisykles FT3, FT4 ir FT5. Tranzityvumas FT5 yra FT6 dalinis atvejis, kai iraikose 3.13 ir 3.14 atribut poaibis Z = . Lieka ivesti FT3 ir FT4.

Pradkime nuo FT3: Y',Z' Y',Z'


Y Z W

(FT1); (FT3 prielaida); (i 3.15 ir 3.16 pagal FT6); (FT3 prielaida); (i 3.17 ir 3.18 pagal FT6); (i 3.19, kadangi X',X'=X').

(3.15) (3.16) (3.17) (3.18) (3.19)

X Y'
Y

X,Z' Y',Z'
Z Y W Y

X Z' X,X Y',Z' X Y',Z'

66

FUNKCINS PRIKLAUSOMYBS IR RAKTAI

Ivesime FT4 taisykl: Y' Y' Y',Z' Y' Y',Z', Y'


Y Z Y W

(FT1); (FT2); (ta pati 3.20); (FT4 prielaida); (i 3.21 ir 3.22 pagal FT6); (FT4 ivestis - i 3.23); (FT4 ivestis, analogikai pagal 3.20 3.23).

(3.20) (3.21) (3.22) (3.23)

X Y',Z' X, Y' X Y' X Z'

Inagrintas paskutinis atvejis rodo, kad FT1, FT2 ir FT6 sudaro piln taisykli poaib atvilgiu FT1 FT6. Todl pakanka sudarant F+ pasinaudoti tik iomis taisyklmis. Taisykls FT1, FT2 ir FT6 yra vadinamos Amstrongo aksiomomis. Tolimesniam nagrinjimui bus naudinga dar viena taip vadinama kaupimo taisykl. FT7. Kaupimas: X Y,Z ; Y V,W |=FT X Y,Z,W. Kad i taisykl korektikomis taisyklmis. korektika pakanka pasinaudoti anksiau ivestomis (3.24) (3.25) (3.26) (3.27) (3.28)

X Y,Z XY Y V,W X V,W X Y,Z,V,W X Y,Z,W

(duota); (FT4); (duota); (i 3.25 ir 3.26 pagal FT5); (i 3.24 ir 3.27 pagal FT3); (FT7 ivestis - ir 3.28 pagal FT4).

Kaupimo taisykl FT7 yra paprasta ir kartu su FT1 ir FT4 sudaro atvilgiu Amstrongo aksiom pilnj taisykli sistem. Kad tai rodytume, reikia parodyti, kad i FT1, FT4 ir FT7 galima ivesti FT2 ir FT6. Pradsime nuo FT2: XY X,Z X,Z X,Z X,Y,Z X,Z Y X,Z X,Z XY X,Z X,Y,Z Y,Z W X,Z X,Y,Z,W X,Z W (FT2 prielaida) (FT1) (i 3.29 ir 3.30 pagal FT7) (FT2 ivestis - i 3.31 pagal FT4). (3.29) (3.30) (3.31)

Parodykime, kad pseudotranzityvumo taisykl FT6 seka i FT1, FT4 ir FT7: (FT1); (FT6 prielaida); (i 3.22 ir 3.23 pagal FT7); (FT6 prielaida); (i 3.34 ir 3.35 pagal FT7); (FT6 ivestis - i 3.26 pagal FT4). (3.32) (3.33) (3.34) (3.35) (3.36)

FUNKCINS PRIKLAUSOMYBS IR RAKTAI

67

Tokiu bdu sistema FT1 , FT4 ir FT7 yra pilna atvilgiu FT1 , FT2 ir FT6. Jeigu Amstrongo aksiom sistema yra pilna, tai ir taisykli sistema FT1 , FT4 ir FT7 bus pilna. i taisykli sistem vadinsime trumpai B-aksiomomis. Pilnumas. Schemoje R apibrme F+ kaip FP aib, kuri sudaro uduotj FP aibe F kartu su kitomis FP, kurias galima ivesti pasinaudojant Amstrongo aksiomomis i F arba iteraciniu bdu i F ir i anksiau ivestj. Kadangi Amstrongo sistema (arba FT1 FT6) yra patikima, tai X Y ivesta i F yra teisinga arba, kitais odiais tariant, logikai seka i F (ymsime F |= X Y). Dabar rodysime, kad sistema FT1 FT6 yra pilna, t. y. atvirki dalyk: kiekviena FP X Y, kuri logikai seka i F, gali bti ivesta panaudojant FT1 FT6 sistemos taisykles. Kitais odiais tariant, neegzistuoja FP W Z , kuri logikai seka i F, taiau neivedama naudojant taisykli sistem.Tuo tikslu sudarykime santyk r(R), kuris tenkina visas funkcines priklausomybes i F+, bet netenkina X Y F. Sakykime, kad R = (A1 , A2 ,..., An), o ai ir bi du skirtingi elementai i dom(Ai ), i = 1, 2, ..., n. Pradioje sudarykime santyk s(R) funkcinei priklausomybei X Y F. is santykis turi du korteus t ir u. Korteas t = <a1, a2, ..., an>, o a , jeigu A X + ; i u Ai = i b i , kitu atveju .

( )

Pavaizduokime i situacij 3.7 paveiksllyje. is santykis netenkina FP X Y i aibs F. Kodl? Korteuose t ir u t(X) = u(X). Sakykime, kad t(Y) = u(Y). Tada komponentai i u(Y) turt bti ai ir Y turt priklausyti X+. Kadangi X X+ F+, tai i projektyvumo taisykls X Y irgi turt priklausyti F+. Bet tai prietaraut slygai X Y F. Toliau parodysime, kad s(R) tenkina visas FP i F+.Tam tik reikia perirti priklausomybes W Z; W X+ , nes jeigu W X+, tai t(W) u(W).
X+
X Y F

A1 t u a1 a1

A2 a2 a2

A3 a3 a3

A4 a4 b4

A5 a5 b5

... ... ...

s (R) An an bn

+ W Z F

3.7 pav.

Sudarykime toki iraik sek, kai W X+:

68

FUNKCINS PRIKLAUSOMYBS IR RAKTAI

X X+ (i Xdengties apibrimo); + (FT4); X W W Z; t(W) = u(W) (uduota); XZ (i 3.37 3.39 du kartus panaudojus FT5).

(3.37) (3.38) (3.39) (3.40)

Tokiu bdu i 3.40 gauname, kad Z X+ ir t(Z) = u(Z), o santykis s(R) tenkina W Z. Sudarykime kit santyk r(R), tenkinant visas FP i F+ , bet prietaring kiekvienai X Y F. Jis vadinamas Amstrongo santykiu ir gaunamas apjungiant santykius s(R), sudarytus kiekvienai X Y F . Amstrongo santykis r(R) dviej FP atveju X Y ; U V i F pateiktas 3.8 paveiksllyje. Amstrongo santykis r (R) tenkina visas FP i F+ ir paeidia visas FP i F.
X+
X Y F

A1 a1 a1 c1 d1

A2 a2 a2 c2 c2 U

A3 a3 a3 c3 c3 U+ 3.8 pav.

A4 a4 b4 c4 c4 V

A5 a5 b5 c5 d5 F-

... ... ... ... ...

r (R) An an bn cn dn

I Amstrongo santykio analizs galima padaryti ivad, kad neegzistuoja priklausomybi W Z, kurios logikai seka i F ir nra ivedamos naudojant FT1 FT6 (arba Amstrongo sistem FT1, FT2, FT6). Tokiu bdu F |= X Y tada ir tik tada, kai X Y F+. Pakankamumo slyga (tada) seka i taisykli sistemos FT1 FT6 patikimumo, o btinumo slyga (tik tada) i taisykli sistemos FT1 FT6 pilnumo, kur iliustravome Amstrongo santykiu.

3.5. Santyki schemos raktai


Sakykime, kad: R = (A1 , A2 ,..., An) - santykio schema; F - uduotj funkcini priklausomybi aib; X - schemos R atriburt poaibis.

FUNKCINS PRIKLAUSOMYBS IR RAKTAI

69

X yra schemos raktas, jeigu: 1) X Y F+ 2) visiems Y X galioja Y R F+ Jeigu schemoje R tenkinama tik pirmoji slyga ir netenkinama antroji, tai raktas X vadinamas superraktu. Jeigu schema tenkina pirmj slyg ir X yra nurodytas schemoje R, tai X vadinamas paymtuoju raktu. Paymtasis raktas gali bti superraktas. Schemoje R gali bti nurodyti keli paymtieji raktai arba net visi. Toliau schemose nurodysime tik raktus (o ne superraktus). Raktinius (pirminius) atributus ymsime simboliu * . Paimkime schem MAI su nurodytu raktu X = M,A (r. 3.9 pav.).
MAI

* Miestas * * Adresas Indeksas *


Y X

3.9 pav.

Parodysime, kad Y = A,I taip pat yra raktas. Pasinaudokime funkcini priklausomybi ivedimo taisyklmis FT1 FT6 : 1) IM (duota); 2) A,I M (FT2); 3) AA (FT1); 4) A,I A (FT2); 5) A,I M,A (FT3); 6) M,A I (duota); 7) M,A M,A (FT1); 8) M,A M,A,I (FT3); 9) A,I M,A,I (FT5). Panaudojus ivedimo taisykles FT1, FT2 ir FT6 funkcin priklausomyb A,I M,A,I galima nustatyti paprasiau: 1) M,A I (duota); 2) M,A M,A (FT1); 3) M,A M,A,I (FT3); 4) IM (duota); 5) A,I M,A,I (FT6). Dar paprasiau nauj rakt Y = A,I galima nustatyti naudojant B-aksiomas: 1) IM (duota); 2) A,I A,I (FT1); 3) A,I M,A,I (FT7).

DUOMEN BAZI RELIACIN TEORIJA

4
FUNKCINI PRIKLAUSOMYBI DENGTYS IR J EKVIVALENTIKUMAS
4.1. Ivesties orientuotieji acikliniai grafai
iame skyrelyje panagrinsime orientuotj aciklini ivedimo (OAI) graf panaudojim modeliuojant schemoje R funkcins priklausomybs X Y ivedim i UFP aibs F. OAI grafas - tai orientuotas grafas be cikl visose virnse. Grafo virns bus paenklintos schemos R atribut ymmis (vardais) ir OAI grafas poaibiui X R sudaromas taisyklmis GT1 ir GT2. GT1. Kiekvienam atributui i X skiriama po vien izoliuot grafo H' virn ir paenkliname izoliuotas virnes atatinkam atribut vardais. Sudarytas H' yra OAI grafas. GT2. Jeigu H yra OAI grafas, turintis vis virni tarpe virnes a1, a2, ...,ak, su j ymmis a1= ym(A1), a2= ym(A2), ... , ak= ym(Ak), o A1, A2 ,..., Ak Z F, tai papildytas grafas H bus sudarytas i ankstesniojo, pridedant nauj virn u su yme c = ym(C), C Z, (jeigu tokios virns grafe nebuvo) bei lankus (ai, u), i = 1, 2, ...,k , (jeigu virn u po pirmo ingsnio nebuvo izoliuotoji ir lanko (ai, u) dar nra grafe. ingsn kartojame visiems C Z ir visoms funkcinms priklausomybms W Z F; W = A1,A2,...,Ak , jei tik grafas H visiems atributams Ai i W turi virnes su atatinkamomis ymmis ym (Ai). Sudarytas grafas H yra OAI grafas poaibiui X R. Sakome, kad grafas H sudarytas poaibiui X, nes taisyklje GT1 poaibiui X skyrme izoliuotj virn. Kiekvienoje iteracijoje taisykl GT2 kartojame, jeigu po paskutinsiteracijos OAI grafas buvo papildytas. Proces baigiame, jeigu graf H paskutinje iteracijoje nebepakeitme. OAI grafo H panaudotja aibe U(H) vadinsime FP i F, panaudotas taisyklse GT1 ir GT2. Paimkime schem ST_GR su UFPA (r. 4.1 pav.). Sudarykime iai schemai OAI graf atvilgiu X=U,LA (4.2 pav.). Sudarytame OAI grafe U(H) susideda i pirmj trij funkcini priklausomybi. Virns su ymmis U ir LA po pirmos taisykls GT1 pritaikymo grafe H buvo izoliuotosios. Galutinai sudarytame grafe H jos liko pirminmis, nes joks lankas jas neeina. Ketvirtoji FP liko nepanaudota, nes grafo virn su yme U po pirmos taisykls GT1 panaudojimo buvo izoliuotoji. Penktoji FP sudarant H taip pat nereikalinga, nes atributas STudentas nepriklauso poaibiui Y anksiau panaudotose funkcinse priklausomybse A1 ,A2 ,...,Ak Y U(H).

FUNKCINI PRIKLAUSOMYBI DENGTYS IR J EKVIVALENTIKUMAS


ST_GR KAtedra Katedros_Vedjas Dstytojas Usimimas LAikas VIeta STudentas

71

4.1 pav.

VI U 1

2 3 LA D KA 6 KV

4.2 pav.

Sudarytas OAI grafas H dengia FP X Y, jeigu X yra grafo H pirmins virns ir jis turi virnes su poaibio Y vis atribut vardais. Jeigu grafe H pirmini virni vardai yra X - vardai ir vis virni i H atributus paymsime X+ , tai bet kokiems Y X+ grafas H dengia FP X Y. Ankstesniame pavyzdyje sudarytas OAI grafas dengia funkcines priklausomybes U,LA VI; U,LAD ir U,LA KA; U,LA VI,D ir t.t. OAI grafas gali bti sudarytas laisvai uduotai funkcinei priklausomybei X Y F+. Jo sudarymui panaudosime nagrintas taisykles GT1 ir GT2. OAI grafo sudarymo proces tskime tol, kol grafe gauname virnes su visomis Y-ymmis. Jeigu tai nepavyksta padaryti, reikia, kad OAI grafas funkcinei priklausomybei X Y neegzistuoja. is algoritmas panaus ankstesnj, kai OAI graf konstravome poaibiui X R. Skirtumas tik tas, kad proces sustabdome, jeigu Y X+. 4.2 pav. parodytas toks grafas funkcinei priklausomybei U,LA U,KA .
X Y

Sudarant graf, paeiliui buvo panaudotos 1-oji, 2-oji ir 3-oji funkcins priklausomybs. Pastebsime tai, kad jeigu F |= X Y, tai funkcinei priklausomybei X Y egzistuoja OAI grafas. Be to, jeigu F |= X Y, tai vien kart panaudojus B-

72

FUNKCINI PRIKLAUSOMYBI DENGTYS IR J EKVIVALENTIKUMAS

aksiom FT1, kelis kartus FT7 ir galiausiai vien kart panaudojus FT4 galima sudaryti toki funkcini priklausomybi sek, kad X Y bt sekoje paskutinioji. Iliustruokime tai ankstesniu pavyzdiu. Paimkime pradioje funkcini priklausomybi bet koki sek S, sudaryt funkcinei priklausomybei U,LA U,KA : LA,VI D U,LA U,LA U,LA VI U,LA U,LA,VI U,LA U,LA,VI,D U,LA U,VI,D D KA U,LA U,VI,D,KA U,LA U,KA
VI U 1

(duota); (FT1); (duota); (FT7); (FT7); (FT4); (duota); (FT7); (FT4).

(4.1) (4.2) (4.3) (4.4) (4.5) (4.6) (4.7) (4.8) (4.9)

2 3 LA D KA

4.3 pav.

Perkelkime sekoje S funkcin priklausomyb X X pirmj viet. Funkcin priklausomyb LA,VI D (4.1) perkelkime t viet, kad ji i karto bt panaudota deiniosios puss kaupimui (t.y. prie FP (4.5)). Gausime sek S': U,LA U,LA U,LA VI U,LA U,LA,VI LA,VI D U,LA U,LA,VI,D U,LA U,VI,D D KA U,LA U,VI,D,KA U,LA U,KA (FT1); (duota); (FT7); (duota); (FT7); (FT4); (duota); (FT7); (FT4). (4.10) (4.11) (4.12) (4.13) (4.14) (4.15) (4.16) (4.17) (4.18)

Sekoje S' visos funkcins priklausomybs, kurios ivestos naudojant taisykl FT4 (pavyzdyje (4.15)), iskyrus paskutin FP (4.18), gali bti gautos netaikant FT4 taisykls. Funkcin priklausomyb

FUNKCINI PRIKLAUSOMYBI DENGTYS IR J EKVIVALENTIKUMAS

73

U, LA U, VI, D
W" Z W' W

yra ivesta i

U, LA LA, U, VI, D .
W"

Jeigu Z W ivedime toliau bt nenaudojama, tai j reikt i sekos S' imesti. Kadangi taip nra, j turime palikti, o palikus galimos dvi situacijos: arba jos atvilgiu bus taikoma taisykl FT4, arba taisykl FT7. Jeigu atvilgiu Z W pritaikyta FT4, tai bt gauta, pavyzdiui, Z W"; W" W, bet Z W" gali bti ivesta i Z W',W i karto. Taip, kad Z W bt galima i sekos S' paalinti. Ms pavyzdyje tokios situacijos nra. Turime kit situacij, kurioje Z W panaudojama kartu su funkcine priklausomybe (4.16)
U V

D KA taisykle FT7 ivedant funkcin priklausomyb (4.17)


Z W V

U,LA U,VI,D,KA . U Vietoje ios FP iveskime nauj, pasinaudojant (4.14) ir (4.16):


Z W' W V

U,LA LA,U,VI,D,KA. U Tada sek S' pertvarkysime galutin sek S": U,LA U,LA U,LA VI U,LA U,LA,VI LA,VI D U,LA U,LA,VI,D D KA U,LA U,LA,VI,D,KA U,LA U,KA (FT1); (duota); (FT7); (duota); (FT7); (duota); (FT7); (FT4). (4.19) (4.20) (4.21) (4.22) (4.23) (4.24) (4.25) (4.26)

Paskutinioji (4.26) priklausomyb X Y ivesta taisykle FT4 po to, kai funkcins priklausomybs (4.25) deinioji pus buvo tiek sukaupta, kad pilnai padengt Y. iuo pavyzdiu pailiustravome piln atitikim tarp dviej priklausomybs X Y ivedimo algoritm - tarp B-aksiom sekos konstravimo ir OAI grafo sudarymo iai priklausomybei. Kadangi B-aksiom sistema yra pilnoji tai ir OAI graf galima sudaryti bent kuriai funkcinei priklausomybei i F+.

74

FUNKCINI PRIKLAUSOMYBI DENGTYS IR J EKVIVALENTIKUMAS

Paimkime atvej, kai yra sudaryti du OAI grafai. Tarkime, kad H grafas sudarytas FP X Y F+ ir grafas L funkcinei priklausomybei Y Z F+. Suprantama, X Z F+. Tada norint sudaryti OAI graf FP X Z, grafus H ir L galima suklijuoti tokiu bdu. Grafo H virnes su Y-ymmis sutapatiname su grafo L virnmis, turiniomis atitinkamas Y-ymes. Toks grafas dengs ir X Y ir X Z. Be to, jeigu H sudarytas funkcinei priklausomybei X Y, o V W U(H), tai F |= X V. Aiku, jeigu V W panaudotas sudarant graf H, tai jame buvo numatytos virns visiems V atributams. Todl V X+ ir X V F+. Jeigu V W U(H), tai egzistuoja OAI grafas funkcinei priklausomybei X V, kuriame FP V W yra nepanaudota.

4.2. Uduot funkcini priklausomybi ir atribut aibi ekvivalentikumas


Dvi UFP aibs F ir G yra ekvivalentikos, jeigu F+ = G+. Aibi F ir G ekvivalentikum ymsime F G. Kad nustatant F G nereikt skaiiuoti F+ ir G+, panaudosime paprastesn bd, bet prie tai parodysime, kad: (4.27) (F+)+ = F+; ir i F G seka
F+ G+.

(4.28)

Pirmasis teiginys trivialus. Jeigu F |= X Y, tai FP X Y bus ivedama i F panaudojus kuri nors pilnj ivedimo taisykli sistem ir priklausys F+. Jeigu egzistuot FP X Y, priklausanti (F+)+ ir nepriklausanti F+ , tai tada panaudota sistema bt nepilna. Antrajam teiginiui paneigti reikt rasti egzistuojani toki FP X Y, kad F |= X Y , bet nepriklausani G+. Bet pagal (4.28) teiginio prielaid F G ir G |= X Y, nes papildomos funkcins priklausomybs i G F negali sutrukdyti ivesti X Y. Todl X Y G+. Paimkime dvi funkcini priklausomybi aibes F ir G. Jeigu X Y G ir kiekvien X Y galima ivesti i F, tai apibendrinant fakt naudosime paymjim F |= G. Dvi aibs F ir G yra ekvivalentins tada ir tik tada, kai F |= G ir G |= F. Padarykime prielaid, kad F|=G ir G|=F. rodysime, kad tada F G. Sakykime, F |= G, o X Y G. Kadangi F |= F+ ir F+ apima kiekvien X Y G, tai G F+ ir G+ (F+)+ = F+ (ir. 4.27 ir 4.28 iraikas). Sakykime, kad be F |= G dar G |= F. Tada analogikai F+ G+. I G+ F+ ir F+ G+ gaunam, kad F+ = G+ arba F G. Dabar rodykime, kad F G tik tada, kai F |= G ir G |= F. Tam padarykime prielaid, kad F G, ir pamatysime, kad btinai F |= G. I ties, jeigu F G, tai pagal apibrim F+ = G+. Jei X Y G+ tai F |= X Y. Jeigu X Y G, tai X Y G+ ir tada vl F |= X Y arba F |= G. Kadangi pagal apibrim F ir G ekvivalentikumas yra simetrinis, tai G |= F. Tokiu bdu negalima situacija, kad

FUNKCINI PRIKLAUSOMYBI DENGTYS IR J EKVIVALENTIKUMAS

75

ekvivalentikumui F G prietaraut du kartus paimti teiginiai G |= F ir F |= G. Paimkime pavyzd (r. 4.4 pav.).
F D_GR VIeta Usimimas LAikas Dstytojas
4.4 pav.

G 3 4 5 6

Kad nustatyti F G, pakanka pastebti, kad 4-oji FP ivedama i 1-sios ir 2-sios, 5-oji ivedama i 1-sios ir 3-sios, 6-oji ivedama i 2-sios ir 3-sios, o visos trys pirmosios ivedamos i 4-sios, 5-sios ir 6-sios. UFP aib F yra neperteklin, jeigu ji neturi nuosavo poaibio F' tokio, kad F F'. Aib F yra neperteklin funkcini priklausomybi aibs G dengtis, jeigu F |= G ir F neperteklin. Ankstesniame pavyzdyje F dengia G ir yra neperteklin. Bet kokia funkcin priklausomyb i G yra perteklin F atvilgiu. Analogikai funkcinms priklausomybms apibrime atribut ekvivalentikum. Dvi atribut aibs X ir Y ekvivalentikos FP aibs F atvilgiu, jeigu F |= X Y ir F |= Y X. Aibi X ir Y ekvivalentikum ymsime X Y. Ankstesniame pavyzdyje F atvilgiu U,LA LA,D . Panagrinsime kit svarb teigin. Paimkime dvi ekvivalentikas ir neperteklines aibes F ir F' (r. 4.5 pav.).
F D_GR VIeta Usimimas LAikas Dstytojas
X Y
4.5 pav.

F'

W V

Jeigu X Y F , tada aibje F' egzistuoja funkcin priklausomyb V W ir X V atvilgiu F (ir F' atvilgiu taip pat). rodymui sudarysime OAI graf H' funkcinei priklausomybei X Y F panaudojant F' . Pasirinkime
X Y

VI, LA U F

76

FUNKCINI PRIKLAUSOMYBI DENGTYS IR J EKVIVALENTIKUMAS

ir sudarykime OAI graf H' panaudojant F' (r. 4.6 pav.).

VI

LA

4.6 pav.

iame grafe U(H') = {VI, LA D; LA, D U}. Kiekviena FP i U(H') turi OAI graf aibje F. Aibje U(H') turi egzistuoti funkcin priklausomyb V W, kuri turi OAI graf H aibje F , ir iame grafe panaudojama X Y. Paimkime i U(H') funkcin priklausomyb
V W

LA, D U ir sudarykime jai OAI graf H aibje F (r. 4.7 pav.).

LA

D
X

VI

4.7 pav.

iame grafe btinai bus naudojama


X Y

FUNKCINI PRIKLAUSOMYBI DENGTYS IR J EKVIVALENTIKUMAS

77

VI,LA U . Kodl? Jeigu aibje U(H') nebt tokios V W, tai tada funkcinei priklausomybei X Y egzistuot OAI grafas aibje F {X Y} ir tokiu bdu X Y bt perteklin aibje F. Kadangi aibje U(H) yra funkcin priklausomyb X Y, tai F |= V X. Bet aibje U(H') buvo V W. Taigi, F' |= X V ir todl F |= X V .

4.3. Tiesiogins funkcins priklausomybs


Neperteklinje funkcini priklausomybi aibje F iskirsime FP poaib EF(X), X R, kuri kairiosios puss yra ekvivalentikos atributams X. Tada EF = {EF(X) | X R , EF(X) } Jeigu yra uduotos dvi neperteklins ekvivalentins aibs F ir G, tai pasinaudoj ankstesniame skyrelyje pateiktu rodymu, galime tvirtinti, kad EF turi tiek pat aibi, kiek j turi EG. Naudojant schemoje D_GR uduotas aibes F ir F' atributams X R, pavyzdiui, X = VI,LA galima nurodyti tiksliai po vien aib EF(VI,LA) ir EF'(VI,LA): EF(VI, LA) = {VI,LA U; LA, D VI; U, LA D} , EF'(VI, LA) = {VI,LA D; LA, D U; LA, D VI; U, LAD} Tiksliai po vien aib EF(X) ir EF'(X) bt galima nurodyti ir kitiems X R, jeigu tik egzistuoja EF(X) (taip pat ir EF'(X) ). Funkcini priklausomybi EF(X) kairij pusi aib toliau ymsime eF(X). Dabar pateiksime tiesiogins FP X Y apibrim. Uduotai FP aibei G atribut poaibis Y R yra tiesioginje funkcinje priklausomybje nuo X R, jeigu funkcinei priklausomybei X Y egzistuoja atvilgiu G bent viena neperteklin dengtis F ir joje OAI grafas H tokie, kad U(H) EF(X) = Prie i slyg, turint neperteklin dengt F , ios dengties FP X Y galima ivesti i funkcini priklausomybi, kurios priklauso F EF(X). Tada ir egzistuoja X Y. Gali bti atvej, kai EF(X) = . Be to, i X Y seka X Y. Paimkime pavyzd (r. 4.8 pav.
G F KAtedra MOdulis MEtai Diplomant_Skaiius

4.8 pav.

ia F yra neperteklin aib ir dengia aib G. Funkcinei priklausomybei MO, ME DS OAI grafas parodytas 4.9 pav.

78

FUNKCINI PRIKLAUSOMYBI DENGTYS IR J EKVIVALENTIKUMAS

iame grafe U(H) = {MO KA; KA,ME DS}, o EF(X) = . Kadangi U(H) EF(X) = , tai MO,ME DS. Galima parodyti, kad FP X Y pakanka nustatyti atvilgiu G bent vien neperteklin dengt F , tenkinani U(H) EF(X) = , ir tada X Y. Sakykime, kad F' - bet kokia kita neperteklin G dengtis, ekvivalentin aibei F (r. 4.10 pav.). Sudarykime aibje F OAI graf H funkcinei priklausomybei X Y (r. 4.11 pav.).

MO

KA

ME

DS

4.9 pav.
F F'

Katedros_Kodas Katedros_Pavadinimas MOdulis MEtai Diplomant_Skaiius


YX G

4.10 pav.

MO

KP

KK

ME

DS

4.11 pav.

FUNKCINI PRIKLAUSOMYBI DENGTYS IR J EKVIVALENTIKUMAS

79

iame grafe U(H) = {MO KP; KP KK; ME,KK DS}. ia X Y, kadangi sudarant H nepanaudotos funkcins priklausomybs i EF(X), kai X = MO,ME ir Y = DS. Kiekvienai W Z U(H) sudarykime aibje F' OAI grafus (r. 4.12 pav.).

KP
W

KK
Z

KK

KP

MO

KK

KP

ME

DS

4.12 pav.

Sujunkime juos vien graf H' funkcinei priklausomybei X Y (r. 4.13 pav.).
W Z

KK
X

KK

KP

KK

KP

ME

DS

4.13 pav.

Grafo H' fragmentas dengia W Z U(H). Tada F' |= X W arba F |= X W, nes F' F. Grafe H' nebus panaudot funkcini priklausomybi i EF'(X), kadangi jos nebuvo naudojamos sudarant OAI grafus kiekvienai W Z U (H). Sakykime, kad grafe H iliko U V EF'(X), nes viename i pavieni graf ji buvo panaudota. Jeigu W Z yra tokia, kad sudarant graf H' buvo panaudota U V EF'(X), tai F' |= W U arba F |= W U. Kadangi U X, tai F |= W X ir X W, o W Z EF'(X). Taiau X Y ir sudarant graf H funkcini priklausomybi i EF'(X) mes nenaudojome. Todl prielaida, kad grafe H' , sudarytame aibje F' funkcinei priklausomybei X Y gali bti panaudota U V EF'(X), yra neteisinga. Padarome ivad, kad X Y uduotoje aibje G yra teisinga tik tada, kai kiekvienoje G dengtyje F U(H) EF(X) = .

80

FUNKCINI PRIKLAUSOMYBI DENGTYS IR J EKVIVALENTIKUMAS

4.4. Minimalios funkcini priklausomybi dengtys

Paimkime penkias neperteklines ekvivalentines UFP aibes (r. 4.14 pav). Visos aibs F1F5 yra neperteklins. Kit neperteklini iame pavyzdyje nra. Aibs F1 ir F2 yra minimalios, kadangi jos turi po tris funkcines priklausomybes ir kit maesni UFP aibi nra. Sakykime, kad F neperteklin ir bet kokia (minimali arba neminimali) UFP aib, o EF(X) . Paimkime bet kokios FP kairij pus X ir atribut poaib Y R tokius, kad X Y. Tada egzistuoja toks Z eF(X), kad Y Z. Paimkime kit pavyzd (r. 4.15 pav).
F1 F2 F3 F4 F5

D_GR VIeta Usimimas LAikas Dstytojas

4.14 pav.
F

VIeta Usimimas LAikas Dstytojas Technin_Metodin_priemon priemons_Panaudojimo_Poymis


XYZ
4.15 pav.

EF(X)

FUNKCINI PRIKLAUSOMYBI DENGTYS IR J EKVIVALENTIKUMAS

81

VI
Y

LA

TM

PP

4.16 pav.

ia LA,D,TM VI,LA,TM. Paimkime Z eF(X), kuriam OAI grafas atvilgiu Y Z bt minimalus, t.y. grafas turt minimal virni skaii. Ms pavyzdyje usiduokime Z = U,LA,TM ir Y = VI,LA,TM .Sudarykime funkcinei priklausomybei Y Z OAI graf (r. 4.16 pav.). Paymkime graf H ( j punktyrais paymti elementai neeina). Sakykime, kad aibje U(H) yra U V EF'(X). Tada H dengt FP Y U ir virnes, skirtas atributams i V, bt galima paalinti. Tegul grafas su paalintomis virnmis bus H', o H', kaip ir H, dengs Y U. Ir ia gauname prietar, kad funkcinei priklausomybei Y Z grafas H buvo minimalus. Reikia, kad Z buvo parinktas neteisingai ir vietoje jo reikjo pasirinkti U. Tokiu bdu aibje U(H) negali bti funkcini priklausomybi EF(X). ia seka ivada, kad Y Z. Jeigu Y eF(X), tai usidavus Z = Y i karto gautume, kad Y Z, nes visada Y Y. Nagrintame pavyzdyje paimkime Y' = U,LA,TM. Kaip ir anksiau X Y' , o Y' eF(X). Naujai sudarytas grafas H funkcinei priklausomybei Y' Z' bus minimalus, kai Y' = Z' (r. 4.17 pav.). Sudarant j funkcins priklausomybs U V EF'(X) nenaudojamos ir Y' Z'.
U

Y' Z'

LA

PP

TM

4.17 pav.

82

FUNKCINI PRIKLAUSOMYBI DENGTYS IR J EKVIVALENTIKUMAS

Dabar rodysime kit teigin, kuris jau susijs su minimaliomis UFP aibmis. Paimkime neperteklin UFP aib F (r. 4.18 pav.).
F 1 2 F' 3

VIeta Usimimas LAikas Dstytojo_Kodas Dstytojo_Pasas Technin_Metodin_priemon priemons_Panaudojimo_Poymis


YZX

4.18 pav.

Jeigu F yra minimali FP aib, tai jokioje EF'(X) neegzistuoja skirting Y U ir Z V i F toki, kad Y Z. Padarykime prielaid, kad F yra minimali, Y eF(X) , Y Z, bet Y U ir Z V yra skirtingos. Parodysime, kad tada Y U (1-j FP) ir Z V (2-j FP) galima sujungti vien Z U,V (3-j FP) ir i F gauti sumaint jai ekvivalentik aib F'. Sudarykime aibje F funkcinei priklausomybei Y Z OAI graf H, kuriame nenaudojamos funkcins priklausomybs i EF(X) (r. 4.19 pav.). ia: U(H) = {DK DP} ir U (H) EF'(X) = ir Y Z . Bet sudarytas H funkcinei priklausomybei Y Z yra OAI grafas ir aibje F' (r. 4.20 pav.), o U(H) = {DK DP} ir U (H) EF'(X) = ir Y Z . Abiem atvejais grafe H nenaudojamos nei Y U, nei Z V. Kadangi H dengia Y Z, tai F |= Y Z. Bet Z U,V F' , todl F' |= Y U. Dl toki pat prieasi F' |= Z V. Visos kitos funkcins priklausomybs i F yra ir aibje F' . Todl F' |= F. Ir atvirkiai, i F seka visos funkcins priklausomybs i F' . Tam pakanka pastebti, kad F |= Z U,V. I ties, Y Z, nes Y, Z EF(X) , o Y U ir Z V F . Todl F |= F' ir F F'. Priklausomybi Y U ir Z V apjungimas reikia, kad F nebuvo minimali, ir tai prietarauja padarytai prielaidai. Jeigu naujoje aibje F' vl aptiktume skirtingas Y U ir Z V i EF'(X) tokias, kad Y Z, tai jas vl apjungtume ir gautume nauj, dar maesn dengt, ekvivalentin ankstesniajai (ir pradinei F). Minimalios aibs F' funkcini priklausomybi i EF'(X) tarpe neliks skirting Y U ir Z V toki, kad Y Z. i ivada galioja visiems X R, EF(X) .

FUNKCINI PRIKLAUSOMYBI DENGTYS IR J EKVIVALENTIKUMAS

83

VI
2

LA
1

U
U

DK
Z

DP

4.19 pav.

VI 3
U

LA 3
Y

DK
Z

DP

4.20 pav.

Apibendrinkime iuo momentu gautus rezultatus. Tiriant UFP aib pakanka nustatyti bent vien neperteklin dengt F, kad sitikinti tiesiogine FP X Y (rodme 4.3 skyrelyje), jeigu ji egzistuoja. Pamus neperteklinje dengtyje F du atribut poaibius X ir Y tokius, kad X Y visada egzistuos Z eF(X) toks, kad Y Z (rodme io skyrelio pradioje). Tai sudaro prielaidas minimizuoti F ir tirti minimali dengi savybes. Jeigu dvi Y U ir Z V yra skirtingos ir Y Z, tai tokias funkcines priklausomybes galima apjungti vien ir tokiu bdu minimizuoti neperteklin dengt. Minimalioje dengtyje F ekvivalentikumo klasi skaiius |EF| iliks toks pat kaip ir pradinje neperteklinje dengtyje. I anksiau (skyriuje 4.3) inome, kad dengtyje F prie uduoto X funkcini priklausomybi aibei EF(X) atitinka tiksliai viena funkcini

84

FUNKCINI PRIKLAUSOMYBI DENGTYS IR J EKVIVALENTIKUMAS

priklausomybi aib EG(X) kitoje ekvivalentinje dengtyje G. Todl |EF|= |EG| . Padaryt ivad pagrindu parodysime dar stipresn fakt, kad ekvivalentikumo klasse EF(X) ir EG(X) funkcini priklausomybi skaiius sutampa, t. y. |EF(X)| = |EG(X)| . Paimkime dvi minimalias ekvivalentines dengtis F ir G su nurodytomis funkcini priklausomybi ekvivalentikumo klasmis (4.21 pav.). Kiekvienai ekvivalentikumo klasei, pavyzdiui, EF(X2), atitinka viena ekvivalentikumo klas EG(X2). Bet kurioje poroje atribut poaibis i eF(X2) ir atribut poaibis i eG(X2) tarpusavyje yra ekvivalentiki.
F EF(X1) 1 2 3 EF(X2) 4 5 EF(X3) 6 EF(X1) 7 8 9 G EF(X2) 10 11 EF(X3) 12 EF(X1) 1 2 3 F' EF(X2) 4' 5 EF(X3) 6

VI U LA DK DP TM PP
X3 X2 X1

4.21 pav.

Pavyzdiui, 5 - osios funkcins priklausomybs


Y U

VI,LA DP ir 9 - osios funkcins priklausomybs


Z V

LA,DK U kairiosios puss yra ekvivalentikos:


Y Z

VI,LA LA,DK . Ekvivalentikumo klasse EF(X) ir EG(X) funkcini priklausomybi skaiius visada sutampa. Ms pavyzdyje: |EF(X1)| = |EG(X1)| = 2 , |EF(X2)| = |EG(X2)| = 3 , |EF(X3)| = |EG(X3)| = 1 . Paimkime F ir G ir parodykime, kad tikrai |EF(X)| = |EG(X)|. Sakykime, kad X = X2 , ir palyginkime funkcines priklausomybes i EF(X2) ir EG(X2). EF(X2):
Y1 U1

EG(X2):
Z1 V1

U,LA DK ;
Y2 U2

LA,DK U ;
Z2 V2

FUNKCINI PRIKLAUSOMYBI DENGTYS IR J EKVIVALENTIKUMAS

85

LA,DP VI,U ;
Y3 U3

VI,LA DK ;
Z3 V3

VI,LA DP .

U,LA VI .

Aibje EF(X2) visos kairiosios puss turi bti skirtingos. Prieingu atveju atatinkamas funkcines priklausomybes bt galima apjungti, o tai prietaraut prielaidai, kad F yra minimali. Dl tos paios prieasties aibje EG(X2) visos kairiosios puss taip pat skirtingos. Aibje eG(X2) bent vienas elementas turi skirtis nuo vis element i eF(X2). Kitu atveju |EF(X2)| = |EG(X2)| ir nieko daugiau rodynti netekt. Sakykime, kad Z1 nesutampa su jokiu ei eF(X2). Tada pasinaudoj ankstesniu rodymu galime teigti, kad aibje eF(X2) turi egzistuoti Yk toks, kad Z1 Yk . Ms pavyzdyje(r. 4.22 pav.):
Z1 Y2

LA,DK LA,DP

LA

Z1

DK

DP

Y2

4.22 pav.
Z1 V1 V1 V1

Funkcinje priklausomybje teising priklausomyb

LA,DK U aib Z1 pakeiskime Y2 ir gausime kit


Y2 Y2

LA,DP U . Aib EG(X2) papildysime priklausomybe LA,DP U .

Kadangi Z1 Y2, tai Z1 V1 paalinus i modifikuotos aibs G' ilieka lygyb (G')+ =
G+. Gautoji EG'(X2) atrodys taip:
Y2 Z2 Z3 V1 V2 V3

LA,DP U ; VI,LA DK ; U,LA VI .

86

FUNKCINI PRIKLAUSOMYBI DENGTYS IR J EKVIVALENTIKUMAS

Jeigu naujoje eG'(X2) atribut poaibis Y2 sutapt su kuriuo nors Zj , tai funkcines priklausomybes Y2 V1 ir Zj Vj apjungtume vien Y2 V1,Vj . Bet gautas rezultatas prietaraut, kad G buvo minimali. Tokiu bdu Y2 nesutaps su jokiu Zj. Aibs G modifikavim galima tsti iki galo, kol visi elementai modifikuotoje aibje eG'(X2) sutaps su atatinkamais elementais i eF(X2). Jeigu neaptiksime prietar, kad G nebuvo minimali, tai modifikuotoje EG'(X2) funkcini priklausomybi skaiius nepasikeis ir |EF(X2)| = |EG(X2)|. Pernumeruokime i naujo minimali aib EG'(X2) taip, kad Zj tapt Yj . EF(X2):
Y1 Y2 Y3 U1 U2 U3

EG'(X2):
Z1 Z2 Z3 V1 V2 V3

U,LA DK ; LA,DP VI,U ; VI,LA DP .


F 1 2 3 4 5 6 G 7

U,LA VI ; LA,DK U ; VI,LA DK .


F' 8 1 2 3 8'

AUTOMOBilis TECHN_Pasas SAVININKas TALONAS DATA LAIKAS NUSIKALTimas


X = X1 = TECH_P : EF(TECH_P) = {FP1;FP2} EG(TECH_P) = {FP5;FP6} EF(TALONAS) = {FP3;FP4} EG(TALONAS) = {FP7;FP8}

X = X2 = TALONAS :

4.23 pav.

Panaiais samprotavimais remiantis galima teigti, kad i Yj Zj seka Zj Yj . Paskutins ivados pagrindu, turdami dvi minimalias F ir G bei nustatytas ekvivalentikumo klases EF(X) ir EG(X), funkcini priklausomybi Y U EF(X) ir Z V EG(X), toki, kad Y Z ir Z Y, kairisias puses galima sukeisti vietomis, nepaeidiant tokiu veiksmu F ir G ekvivalentikumo ir minimalumo. Pavyzdyje 4-osios funkcins priklausomybs i F kairiosios puss LA,DP vietoje galima statyti 9-osios FP i G kairij pus LA,DK ir gauti nauj miniali F' (ir. 4.21 pav.) su nauja funkcine priklausomybe 4'.

FUNKCINI PRIKLAUSOMYBI DENGTYS IR J EKVIVALENTIKUMAS

87

Toliau panagrinsime pavyzd (r. 4.23 pav.),kuris taip pat iliustruoja minimalios aibs F modifikavimo galimyb. I aibi F ir G paimkime 4-j ir 8-j funkcines priklausomybes:
Y Z U V

FP4 = TECHN_P,DATA,LAIKAS TALONAS,NUSIKALT ; FP8 = AUTOMOB,DATA,LAIKAS TALONAS,NUSIKALT . iame pavyzdyje Y Z , todl 4-oje FP vietoj Y galima statyti Z ir sudaryti FP8', gaunant toki F', kad F+ = (F')+.(r. 4.23 pav.).

4.5. Redukuotosios ir optimaliosios dengtys


Pradkime nuo pavyzdio, pateikto 4.24 pav.
G' 1 2 3 4 5 G 6 7 8 F' F 9 10

FAkultetas MOdulis TEma Ved_Dstytojas LAipsnis APimtis

A X X' Y Z

4.24 pav.

iame pavyzdyje visos funkcini priklausomybi aibs G' , G , F' , F yra ekvivalentins. Aibje G 4-oji FP panaudota vietoje 1- osios i G' . 4-oji FP yra redukuota kairija puse atvilgiu 1-osios, kurios kairiojoje pusje buvo paalintas FA atributas. 6 - oji ir 7- oji priklausomybs yra redukuotos kairiosiomis pusmis atatinkamai 2-osios ir 3-osios priklausomybi atvilgiu. Po redukcijos kairiosiomis pusmis G turi ilikti ekvivalentika G' . 5-osios funkcins priklausomybs i G deiniojoje pusje paalin atribut FA gavome 8-j. Ji redukuota deinija puse atvilgiu 5-osios. Analogiku bdu 9-oji ir 10oji funkcins priklausomybs yra redukuotos deiniosiomis pusmis atatinkamai 6-osios ir 7-osios atvilgiu. Gauta F' po redukcijos turi ilikti ekvivalentika aibei G, o tuo paiu ir aibei G' . Pastebsime, kad 8-ojoje FP MO , gautoje po redukcijos deinija puse, deinioji pus yra tuia aib. Pati FP yra perteklin ir j atmetus gauname vl ekvivalentik aib F, kuri toliau redukuoti nra galimybs. Pastebsime taip pat, kad 5oji FP aibje G yra perteklin, nes G {FP5} G', ir j bt galima paalinti i G. Taiau aibje G' , kol i nebuvo redukuota i kairs, 5-j FP MO FA paalinti negalima. Jeigu j paalintumme, tai G' {FP5} nebus ekvivalentika aibei G' , nes i

88

FUNKCINI PRIKLAUSOMYBI DENGTYS IR J EKVIVALENTIKUMAS

priklausomyb MO FA i kit priklausomybi aibje G' neivesime. Pateiksime bendrj atvej apibrimus. Atributas A yra paalinis FP X Y kairiojoje pusje, jeigu X = A,X' ; X X' ir (F {X Y}) { X' Y } F . Atributas B bus paalinis priklausomybs X Y deiniojoje pusje, jeigu Y = B,Y' ; Y Y' ir (F { X Y}) {X Y'} F . Funkcin priklausomyb X Y bus redukuota kairija puse, jeigu ji neturi paalini atribut kairiojoje pusje. Kairija puse redukuot FP dar vadiname pilnja FP. Funkcini priklausomybi aib F, kuri susideda i priklausomybi, redukuot kairiosiomis pusmis, vadinsime kairiosiomis pusmis redukuota aibe. Funkcin priklausomyb X Y bus redukuota deinija puse, jeigu ji neturi paalini atribut deiniojoje pusje. FP aib F, kuri susideda i priklausomybi, redukuot deiniosiomis pusmis, vadinsime deiniosiomis pusmis redukuota aibe. Funkcini priklausomybi aib F, redukuot kairiosiomis ar deiniosiomis pusmis ir neturini FP X , vadinsime redukuotja aibe. Ms pavyzdyje aib G yra redukuota kairiosiomis pusmis, aib F' - redukuota kairiosiomis ir deiniosiomis pusmis, o F - redukuotja. rodysime, kad aib G' redukavus kairiosiomis pusmis, o vliau gaut aib G redukavus deiniosiomis pusmis, gaut aib F' toliau redukuoti kairiosiomis pusmis nra tikslo, nes nebegalima k nors pakeisti. Paimkime aibje F' priklausomyb X Y ; Y:
X Y

MO,TE AP
A X'

Sakykime, kad atributas A aibje X yra paalinis ir X' = X A . Padarius i prielaid F' {X Y} {X' Y} F' ir F' |= X' Y . Sudarykime aibje F' funkcinei priklausomybei X' Y OAI graf H (r.4.25 pav.). ia U(H) = { TE AP. } .
X' Y

TE

AP

4.25 pav.

Jeigu X Y U(H) , tai X Y yra perteklin aibje F' ir tuo paiu X Y yra neredukuota denija puse, nes Y . Bet mes nagrinjame F' redukuota deniosiomis pusmis. Taigi, X Y negali bti perteklin. Bet tada ji turt bti naudojama grafe H, o tada F' |= X' X . Kadangi F' G , seka G |= X' X . Suprantama X' X galt bti ivesta aibje G nenaudojant X' Y,Z . Ieit, kad
G {X Y,Z} {X' Y,Z} G

arba, kitais odiais tariant, kad G nra redukuota kairiosionis pusmis. Bet tai prietarauja pradinms slygoms ir F' , kuri yra redukuota deniosiomis pusmis,

FUNKCINI PRIKLAUSOMYBI DENGTYS IR J EKVIVALENTIKUMAS

89

redukuoti dar kart kairiosionis pusmis neteks. Galiausiai aibje F' paalinus funkcines priklausomybes X , gausime redukuot aib F. Apibendrinsime gautus tarpinius rezultatus. Redukuota dengtis F bus visada neperteklin, nes joje yra paalintos visos X ; X R ir perteklini FP nelieka. Atvirkias teiginys bus neteisingas, nes neperteklins dengties funkcins priklausomybs gali bti neredukuotos kairiosiomis arba deniosiomis pusmis. Jeigu F yra FP aib, nepertekiln ir redukuota kairiosiomis pusmis, tai po redukcijos deniosiomis pusmis, priklausomybs X negausime, nes tada toki X bt galima paalinti ir FP skaiius aibje F sumat , o tai prietaraut jos neperteklikumui. I anksiau turjome, kad neperteklin F gali bti neminimali ir teigti, kad redukuota aib yra minimali bt neteisinga. Sugrkime prie minimali FP aibi ir paimkime dar vien pavyzd, kuriame UFP aibs F1 degtys yra G ir F2 (r. 4.26 pav.). Aibs F1 ir G yra redukuotos. Aib F2 nra redukuota, nors yra minimali. Redukavus FP3' kairija puse gausime 3-j FP, o redukavus FP6' denija puse gausime FP6. Po redukcijos gausime nauj minimalij ir redukuotj aib F3.
F1 1 2 3 4 5 6 7 8 G 9 10 11 12 1 2 F2 3' 4' 5 6' 1 2 F3 3 4' 5 6

VI U LA DK Dst_paso_Serija Dst_paso_Nr TM PP

4.26 pav.

Minimali dengt F2 redukavus kairiosiomis pusmis, FP skaii sumainti negalima. Jeigu funkcins priklausomybs X Y, Y i ekvivalentikumo klass EF(X) kairiojoje pusje X = X',A atribut A paalinsime, tai naujoje minimalioje aibje F, F' F , naudosime vietoje X Y nauj X' Y. Jeigu gautoje F' nustatytume toki situacij, kad Z' V ir Z' eF(X), tai priklausomybes X' Y ir Z' V galtume apjungti, bet tai prietaraut F minimalumui. Todl minimali dengt redukuojant kairiosiomis pusmis, FP skaiius pasikeisti negali. FP skaiius pasikeisti negali minimali dengt redukuojant deiniosiomis pusmis. Jeigu FP X Y ; Y deiniojoje pusje Y =Y',B perteklin atribut B atmestume, tai naujosios aibs F', F' F, priklausomybje X Y visada Y' , nes kitu atveju FP X Y' aibje F' reikt atmesti, o tai vl prietaraut F minimalumui. Pateiksime nauj apibrim. Aib F yra optimali, jeigu neegzistuoja kita ekvivalentin aib su maesniu panaudot atributini vard skaiiumi. Po redukcijos aibje F3 panaudot atribut vard skaiius tapo maesnis negu aibje F1, taiau aib F3 nra optimali F1 dengtis, nes egzistuoja jai ekvivalentin G, o joje panaudot atribut vard skaiius yra dviem maesnis. Aibje F3 panaudot

90

FUNKCINI PRIKLAUSOMYBI DENGTYS IR J EKVIVALENTIKUMAS

atributini vard skaii bt dar galima sumainti tokiu bdu. Paimkime i G priklausomyb FP10 ir i F3 priklausomyb FP5, t.y.
Z Y V U

FP10 = VI,LA DK ; FP5 = VI,LA DS,DN . Kadagi Y Z, tai FP5 aibje F3 galima pakeisti nauja priklausomybe FP5'
Z U V

VI,LA DS,DN,DK . Naujoje aibje, sakykime F4 (r. 4.27 pav.) redukav FP5' deinija puse gausime pakaital FP5'' = VI,LA DK. Sakykime, kad paskutin gauta minimali dengtis yra F (r. 4.27 pav.). i dengtis, lyginant j su pradine usiduota minimalia ir redukuota aibe F1 (r. 4.26 pav.), turi maesn bendr atribut skaii. Palyginkime j su jai ekvivalentine dengtimi G.

G 7 8 9 10 11 12 1 2

F3 3 4' 5 6 1 2

F4 3 4' 5' 6 1 2 3

F 4' 5'' 6

VI U LA DK DS DN TM PP

4.27 pav.

Aib F nra optimali, nes egzistuoja dengtis G su maesniu panaudot atributini vard skaiiumi. Aib F sudarme minimizavimo ir redukcijos bdu, taiau jos optimalumo nepsiekme. Optimali dengi sudarymo taisykls nagrinjamos sekaniame skyriuje.

DUOMEN BAZI RELIACIN TEORIJA

5
SUDTINI FUNKCINI PRIKLAUSOMYBI DENGTYS
5.1. Sudtins funkcins priklausomybs
iame skyrelyje parodysime, kaip usiduotj funkcini priklausomybi (UFP) aib F galima pateikti kitokioje, labiau kompakti koje formoje.
A kn k

A 2n 2

A1n1

A k2 A k1

A 22 A 21

A12 A11
Q R

Rk

R2

R1

B1 B2

Bm

5.1 pav. Struktrini tip grafinis vaizdavimas

Paimkime atribut poaibius R1, R2, ..., Rk, R S. ia: S - universalioji schema. Sudtin funkcin priklausomyb (SFP) (R1; R2; ...; Rk) R yra teisinga, jeigu kiekvienas santykis s (S) tenkina funkcines priklausomybes Ri Rj , Ri R;1 i, j k.

92

SUDTINI FUNKCINI PRIKLAUSOMYBI DENGTYS

Sudtinje funkcinje priklausomybje (R1, R2, ..., Rk) R sraas (R1, R2, ..., Rk) yra ios sudtins FP kairioji pus, Ri - kairioji aib, R - deinioji aib. Dalinis SFP atvejis yra sudtin funkcin priklausomyb, kurioje R = . Toki SFP nurodysime tik srau (R1, R2, ..., Rk). Sudtins funkcins priklausomybs apibendrina usiduot funkcini priklausomybi aib, atribut ir i priklausomybi grupavim ekvivalentikumo klases (struktrinius tipus). Struktriniams tipams vaizduoti naudosime grafin notacij (r. 5.1 pav.). Struktrini tip komponent paymjimai pateikti 5.2 pav. Kiekviena SFP turi savo normalizuot pavidal, charakterizuoja dalykins srities tam tikr informacijos vienet ir sudaro savarankik duomen struktr.
R

A in i

B1 A i2 A i1
Q

B2

Ri
a) sudtin funkcin priklausomyb Q b) SFP kairioji atribut aib R i

Bm
c) SFP denioji atribut aib R

5.2 pav. Struktrini tip komponent grafinis ymjimas

Sakykime, kad Q - SFP aib, o F - aib, susidedanti i funkcini priklausomybi. Aib Q yra ekvivalentin aibei F, ymsime Q F, jeigu kiekvienas santykis s(S), tenkindamas F, tenkina Q; ir atvirkiai - tenkindamas Q, tenkina ir F. Aib Q yra Fdengtis, jeigu Q F.
F' VI U LA DK DP TM PP Zi' Yi' Zi Yi X EF(X) F

5.3 pav. Usiduotos FP aibs F' ir jos neperteklins dengties F pavyzdys

SUDTINI FUNKCINI PRIKLAUSOMYBI DENGTYS

93

Sakykime, turime UFP aib F' ir jos neperteklin dengt F, sudaryt i funkcini priklausomybi. Kaip galima gauti aibs F' dengt Q, sudaryt i SFP? Tam panaudosime SFP sudarymo taisykl SFPT.
Sudtini funkcini priklausomybi sudarymo taisykl SFPT. Funkcins priklausomybs i F sugrupuojamos ekvivalentikumo klases EF(X), X S. Kiekvienai EF(X) aibje Q skiriama viena SFP, kurioje kiekvienai kairiajai pusei i eF(X) numatoma viena kairioji aib; deiniosios puss i EF(X) apjungiamos deinij aib.

Aiku, kad dengtis Q turs |EF| sudtini funkcini priklausomybi. Paimkime dvi ekvivalentines aibes F' ir F (r. 5.3 pav.). ia aib dengtis Q turs |EF| sudtini funkcini priklausomybi. Taisykle SFPT sudaryta sudtini funkcini priklausomybi aib Q, kuri yra ekvivalentin FP aibei F' (ir jos dengtis), yra:
Q = {(DK; DP) DK,DP; (U,LA; LA,DK; LA,DP; VI,LA) DK,U,VI,DP;
Ri Ri' R

(U,LA,TM) PP}. SFP aib Q yra usiduot FP aibs F' dengtis. Ji yra.sudaryta panaudojant F. Parodysime, kad taisykl SFT1 yra korektika, ir Q F'. Kadangi F F', tai rodymui, kad Q F' pakanka nustatyti, kad Q F. Paimkime bet kok X, X S ir sudtin funkcin priklausomyb (R1; R2; ...; Rk ) R toki, kad Ri eF(X); 1 i k. Aibs F funkcini priklausomybi Zi Yi, Zi eF(X) kairiosios puss Zi tiksliai vien kart atkartojamos SFP (R1; R2; ...; Rk) R kuria nors kairija aibe. Sakykime, kad Zi atkartoja Ri. Bet: Ri R (seka i SFP apibrimo); Yi R (seka i taisykls SFT1); ir tada Ri Yi (FP projektyvumas). Kadangi Ri =Zi, gauname, kad kiekviena Zi Yi i EF(X) gali bti ivesta i SFP, sudarytos pagal taisykl SFT1. Apibendrin i ivad visiems Zi eF(X) ir visiems X S; EF(X) gauname, kad visos FP i F ivedamos i SFP aibs Q Atvirkias teiginys, kad visos SFP i Q ivedamos i F bt neteisingas tik tuo atveju, jeigu bet koks santykis s(S), tenkinantis funkcines priklausomybes Zj Yi i EF(X); X S; EF(X) netenkint sudtini funkcini priklausomybi (R1; R2; ...; Rk) R, i Q. Priklausomybs (R1; R2; ...; Rk) R visos kairiosios aibs Ri; i = 1,2,...,k atkartojamos tiksliai po vien kart kairiosiomis pusmis Zi eF(X). Tarkime, kad: Ri = Zi; Zi Yi EF(X); ir Ri' = Zi'; Zi' Yi' EF(X). Sudarytoje SFP visos kairiosios aibs yra tarpusavyje ekvivalentikos ir Ri Ri'. I Ri Yi ir Ri Ri' sumos gausime funkcin priklausomyb Ri Yj,Ri'. Be to: Zi' Yi' (duota) ir Ri' Yi', ( nes Ri' = Zi'); Ri Yi,Ri',Yi' (FP kaupimas); Ri Yi,Yi' (FP projektyvumas).

94

SUDTINI FUNKCINI PRIKLAUSOMYBI DENGTYS

Tsiant deniosios puss kaupimo proces visos aibs EF(X) atvilgiu gausime: Ri R; R = Yi | Zi' Yi EF(X). Funkcin priklausomyb Ri R bus teisinga visoms i = 1, 2, ..., k. Tokiu bdu visos priklausomybs (R1; R2; ...; Rk) R; i = 1, 2, ..., k ,sudarytos i F naudojant taisykl SFT1 gaunamos teisingos. Apibendrin i ivad visiems X S, EF(X) sakysime, kad santykis s(S) tenkindamas FP i F tenkina ir SFP i Q. I abiej rodym seka, kad Q F. Sudtini funkcini priklausomybi arba struktrini tip (ST) aib Q vadinama UFP aibs F struktrine dengtimi, jeigu bet kuriuose dviejose sudtinse funkcinse priklausomybse Qi ir Qj i Q neegzistuoja dvi skirtingos kairiosios aibs Ri ir Rj tokios, kad Ri Rj. Kitais odiais tariant, dviejuose skirtinguose struktriniuose tipuose Qi ir Qj negali egzistuoti atatinkamos dvi kairiosios aibs Ri ir Rj, kurios priklauso tai paiai ekvivalentikumo klasei eF(X), Q F; X S; EF(X) . Struktrins dengties apibrimas kokybiniu poiriu nieko naujo neduoda, lyginant j su SFP aibs dengtimi. Abiem atvejais - tiek SFP, tiek ST dengi atvejais - suprantame, kad yra modeliuojama ta pati UFP aib. Taiau struktrini tip ir j dengi terminologija bus naudojama pabrti tam metodologiniam faktui, kad struktriniai tipai yra sudaromi specifikuojant informacins sistemos duomen FP tiesioginiu bdu naudojant sintezs metod (r. 6.8 sk.), t.y. jos gali bti uduotose lokalinse schemose, o ne universaliojoje santyki schemoje, kuri apima visus sistemos atributus.

5.2. Sudtini funkcini priklausomybi aibs pertvarkymas


Pasinaudokime praeitame skyrelyje inagrinta SFP sudarymo taisykle SFPT sudarykime funkcini priklausomybi aibei F' (r. 5.4 pav.) SFP dengt Q':
Q' = {(DK,DP) DK,DP; (U,LA; LA,DK; LA,DP; VI,LA) DK,U,VI,DP; (U,LA,TM; LA,DK,DP,TM) PP}.

Praeitame skyrelyje buvome sudar SFP aib Q funkcini priklausomybi aibei F' (r. 5.4 pav.):
Q = {(DK; DP) DK,DP; (U,LA; LA, DK; LA,DP; VI,LA) DK,U,VI,DP; (U,LA,TM) PP}.

Aibs F ir F' yra ekvivalentins. Aib F yra neperteklin perteklins F' dengtis. Kadangi F F', tai ir sudarytos SFP aibs yra ekvivalentins, t.y. Q Q'. iame pavyzdyje aib Q' atvilgiu Q yra perteklin, nes treiojoje SFP randasi perteklin aib LA,DK,DP,TM. iame skyrelyje inagrinsime vairias struktrini dengi pertvarkymo operacijas.

SUDTINI FUNKCINI PRIKLAUSOMYBI DENGTYS

95

F' VI U LA DK DP TM PP

5.4 pav. FP aib F yra neperteklin F' dengtis

Sakykime, kad turime SFP aib Q ir jos sudtin funkcin priklausomyb (R1 ; R2 ;; R. vesime kelet nauj apibrim. Sudtinje FP atributas A yra perkeliamasis, Rk ) jeigu j perklus i kairiosios aibs Ri deinij aib R naujoji SFP aib ilieka ekvivalentin senajai Q. Kairioji aib Ri yra perteklin, jeigu i karto galima perkelti jos visus atributus deinij aib R nepaeidiant ekvivalentikumo. Sudtin funkcin R yra redukuota kairiosiomis aibmis, jeigu visose priklausomyb (R1 ; R2 ;; Rk) kairiosiose aibse Ri; i = 1, 2, ,k nra perkeliam atribut. (R1 ; R2 ;; Rk) R yra redukuota deiniaja aibe, jeigu deiniojoje pusje R nra paalini atribut, kuriuos paalinus ankstesn sudtin funkcin priklausomyb liks ivedama i modifikuotos naujosios SFP aibs. SFP yra redukuotoji, jeigu ji redukuota kairiosiomis ir deinija aibmis. SFP aib yra redukuotoji, jeigu ji susideda i redukuotj SFP. SFP aib Q yra minimali, jeigu neegzistuoja kita jai ekvivalentin aib, kurios bendras kairij aibi skaiius yra maesnis u SFP aibs Q kairij aibi skaii. SFP aibi modifikavimo taisykls yra gana paprastos, lyginant jas su UFP aibs modifikavimu. SFP aibi modifikavimas yra vaizdesnis, kai naudojama grafin notacija, nors teoretin baz ia ilieka ta pati, kaip ir UFP aibi atveju. Toliau aptarsime ias taisykles.
LA
U U
DK DP TM Q

DP

DK
O

LA DK

LA DP

VI
LA

LA TM

LA

Ri
DK DP DK PP

VI DP

5.5 pav. Struktrini tip aibje Q tipo Q kairiojoje aibje Ri atributas DP yra perkeliamasis

96

SUDTINI FUNKCINI PRIKLAUSOMYBI DENGTYS

SFP aib redukuojama analogikai FP aibs atveju: pradioje kairiosiomis atribut aibmis, vliau deiniosiomis. Redukuojant kairiosiomis aibmis perkeliamieji atributai i kairij aibi perkeliami atatinkam SFP deinisias aibes. Redukavimo kairiosiomis aibmis taisykl RKAT. Aibs Q sudtins funkcins priklausomybs Q kairiosios atribut aibs Ri atribut A perkeliame deinij aib, jeigu Q (Ri - A) Ri , ir sudarom vietoj Q nauj priklausomyb Q'.
U U
LA

DP

DK

LA
DK

LA DP

VI LA

LA
TM

DK
TM

LA O

Q'

DK DP

DK
U
VI DP

PP DP

5.6 pav.Struktrinje dengtyje Q' struktrinis tipas Q' gautas atribut DP perklus

deinij pus Po io veiksmo aib Q bus pertvarkyta nauj Q', kurioje vietoje priklausomybs Q bus vesta nauja priklausomyb Q' su nauja kairija aibe R 'i = R i A , o deinioji aib bus papildyta atributu A. Jeigu po perklimo aptinkame priklausomyb S (SQ') su kairija aibe X toki, kad R'i S, tai priklausomybes Q' ir S apjungiame, susumuodami j kairisias ir deinisias aibes. Paimkime grafiniame pavidale sudaryt priklausomybi aib Q su priklausomybs Q kairija aibe Ri (r. 5.5 pav.). ioje aibje atributas DP yra perkeliamasis. Pritaikius redukavimo taisykl RKAT gausime nauj SFP aib Q' (r. pav. 5.6 pav.), kurioje priklausomyb Q' yra pamodifikuota. ia Q' Q, nes: LA,DK,TM LA,DK,TM DK DP LA,DK,TM LA,DK,TM,DP (refleksyvumas); (FP specifikuota tipu O); (kaupimas).

Tokiu bdu R 'i R i ir redukavimo taisykl veikia korektikai. Redukuojant kairiosiomis aibmis galima tokia situacija, kad visa kairioji atribut aib yra perteklin. Tokia situacija gali bti aptikta, jeigu SFP aib buvo sudaryta i perteklini FP aibs. Eliminuojant perteklines kairisias aibes naudojama taisykl PKAET. Perteklini kairij aibi eliminavimo taisykl PKAET. Aibs Q priklausomybs Q su duotosiomis kairiosiomis aibmis Ri ir Rj aibs Ri visi atributai perkeliami ios priklausomybs deinij aib, jeigu po perklimo Q |= Ri Rj .

SUDTINI FUNKCINI PRIKLAUSOMYBI DENGTYS

97

ia paymsime, kad bet kokiame tipe Q aib Ri, kuri ruoiams eliminuoti, negali bti vienintel, jeigu prie tai buvo panaudota taisykl RKAT. Jeigu taisykl RKAT buvo naudota tiek kart, kad daugiau jos taikyti nereikjo, tai bent viena kairioji redukuota aib Ri turi ilikti, nes kitu atveju priklausomyb Q su kairija aibe Ri, taisykle RKAT bt buvusi apjungta su kita priklausomybe S. Pritaikius i taisykl 5.5 paveiksllio tipui Q, kairiosios aibs Ri visus atributus galima perkelti deinij aib (r. 5.7 pav.).
U U

DP

DK

LA
DK

LA DP

VI LA

LA
TM

LA O

Q''

DK DP

DK

PP
DP LA DK TM

U
VI DP

5.7 pav. Struktrin dengtis Q'' su kairiosiomis aibmis redukuota SFP Q''

Priklausomyb LA,DK,TM U,LA,TM lieka ivedama aibje Q'': LA,DK,TM LA,DK,TM (refleksyvumas) LA,DK U,LA (specifikuota antrojoje SFP) LA,DK,TM U,LA,DK,TM (kaupimas) LA,DK,TM U,LA,TM (projektyvumas) Paymsime t fakt, kad redukavimo kairiosiomis aibmis ir perteklini kairij aibi eliminavimo klausimas neaktualus, jeigu SFP aib buvo sudaryta naudojant SFPT taisykl i redukuotos usiduot FP aibs. Be to, po taisykli RKAT ir PKAET daugkartinio ir pilno taikymo visada gauta SFP aib bus usiduot FP aibs F struktrin dengtis, nes taisykl RKAT garantuoja, kad dviejuose skirtinguose struktriniuose tipuose Qi ir Qj negali egzistuoti atatinkamos dvi kairiosios aibs Ri ir Rj, kurios priklauso tai paiai ekvivalenti kumo klasei eF(X), Q F; X S; EF(X) . Redukavimo deiniosiomis aibmis taisykl RDAT1. Deiniojoje aibje R paliekami atributai R (R1 R2 ... Rk), o kiti paalinami. Tris kartus pritaikius i taisykl vietoj ST aibs Q'', pateiktos 5.7 pav., gausime nauj, modifikuot (r. pav. 5.8 pav.). Taisykls RDAT1 patikimumas akivaizdus, nes kairiosios atribut aibs visada refleksyviai uduota savo atributus.

98

SUDTINI FUNKCINI PRIKLAUSOMYBI DENGTYS


U U

DP

DK
O

LA DK

LA DP

VI
LA

LA
TM

LA

PP DK DP

5.8 pav. Struktrin dengtis, gauta pritaikius redukavimo deiniosiomis aibmis taisykle RDAT1

Redukavimo deiniosiomis aibmis taisykl RDAT2. Aibs Q struktrinio tipo Q (su bet kuria paimta kairija aibe Ri) de iniosios atribut aibs R atribut A + paaliname, jeigu po paalinimo A (R i )Q . Redukuojant tipo Q kairij aib Ri galima

usiduoti bet kuri, nes pagal SFP apibrim visos kairiosios aibs yra ekvivalentikos. + Atribut dengties (R i )Q indeksas Q panaudotas, kad paymti t fakt, jog atributin dengtis

(R i )+

nustatoma

vertinant

vis

specifikuot

usiduotj

funkcini

priklausomybi aib.
U U

DP

DK
O

LA DK

LA DP

VI
LA

LA
TM

LA

PP

5.9 pav. Struktrin dengtis, gauta pritaikius redukavimo deiniosiomis aibmis taisykl RDAT2

Panaudojus i taisykl atvilgiu 5.8 pav. parodyto treiojo struktrinio tipo gauname redukuot struktrini tip aib (r. 5.9 pav.). Taisykl RDAT2 yra bendresn atvilgiu RDAT1 ir universali. Taisykls RDAT1 taikymas apsiriboja tik vienu struktriniu tipu. Dl to ji yra labai paprasta, taiau tik j naudojant negalima atlikti pilnos redukcijos deiniosiomis aibmis. Naudojant taisykl RDAT2 vertinamos visos uduotos FP. Pavyzdiui, atributo DK paalinimo i treiojo struktrinio tipo (r. 5.8 pav.) galimyb pasinaudojant kairija aibe U,LA,TM pastebime i to fakto, kad egzistuoja funkcin priklausomyb U,LA LA,DK, kuri specifikuota antruoju struktriniu tipu. Todl DK (U,LA,TM)+. Struktrini dengi minimizavimo taisykl SDMT. Jeigu struktrins dengties Q struktrinis tipas Q turi dvi kairisias aibes Ri ir Rj tokias, kad Ri Rj, tai kairioji aib Ri paalinama.

SUDTINI FUNKCINI PRIKLAUSOMYBI DENGTYS

99

5.9 paveiksllio antrajame struktriniame tipe LA,DP LA,DK. Kairij aib LA,DP paalinus gausime minimali ir redukuot struktrin dengt (r. 5.10 pav.). Minimizavimo taisykls taikymo prielaida yra tiesiogins FP egzistavimas. Nustatant i slyg struktrini dengi atveju patogu pasinaudoti struktrini tip detalumo samprata.
U U

DP

DK

LA DK

VI
LA

LA
TM

LA

PP

5.10 pav. Struktrin dengtis, gauta pritaikius minimizavimo taisyk SDMT

Sakykime, kad turime struktrins dengties Q du tipus Q ir O su atatinkamomis kairiosiomis aibmis Ri = X,Y ir Rj.Struktrinis tipas Q bus detalusis atvilgiu O, jeigu X Rj, t.y., jeigu egzistuoja struktrinio tipo Q kairiosios aibs Ri poaibis X, ekvivalentikas struktrinio tipo O kairiajai aibei Rj. Analogikai O atvilgiu Q bus apibedrinantis ST. 5.10 pav. treiasis tipas yra detalusis atvilgiu antrojo, nes U,LA VI,LA. Antrasis tipas yra detalusis atvilgiu pirmojo, nes LA,DK DK. ia kairisias ekvivalentines aibes LA,DP ir LA,DK sieja tiesiogin funkcin priklausomyb LA,DP LA,DK , nes funkcins priklausomybs LA,DP LA,DK ivedimui (egzistavimo patvirtinimui) nereikia naudoti antruoju tipu specifikuotomis FP: ia atributas LA yra bendras abiem priklausomybs pusms, o likusius detaliojo ST kairij aibi poaibius sieja funkcin priklausomyb DP DK, specifikuota pirmuoju struktriniu tipu.
a)

LA
U

b)

PS PN

DK LA

PS PN

VI
LA

PS PN

DK LA

LA DK

VI
LA

5.11 pav. Optimali stuktrin dengtis (b), gauta i dengties (a) panaudojus vietoj kairiosios aibs {LA, PS, PN} aib {LA, DK}

Anksiau buvo paymta, kad redukavimas kairiosiomis aibmis nereikalingas, jeigu struktrin dengtis buvo sudaryta i redukuotos FP aibs panaudojant taisykl SFPT. Perteklines kairisias aibes eliminuoti nereikia taip pat, jeigu perteklins FP buvo eliminuotos i usiduot FP aibs iki taisykls SFPT panaudojimo. T pat fakt galima paymti ir apie ST aibs minimizavim - jis nereikalingas, jeigu tai buvo atlikta su usiduot FP aibe, i kurios buvo sudaryta ST dengtis. Taiau redukavim deiniosiomis aibmis atlikti btina, norint gauti paprastesnius tipus. Tuo atveju, jeigu SFP dengtis

100

SUDTINI FUNKCINI PRIKLAUSOMYBI DENGTYS

sudaroma tiesioginiu bdu, t.y. neatliekant UFPA redukavimo ir minimizavimo, tai apraytos ST dengties pertvarkymo operacijos turi bti naudojamos aprayta tvarka. Skyrelio pabaigoje parodysime, kaip struktrinius tipus dar galima supaprastinti naudojant ST dengi optimizavim. 5.11a pav. pateiktas supaprastintas pavyzdys, kuriame vietoje atributo su vardu Dstytojo_Pasas panaudoti du atributai - Paso_Serija ir Paso_Numeris. Nesunku pastebti, kad bendr atribut skaii struktrinje dentyje (r. 5.11a pav.) galima sumainti antrojo struktrinio tipo antrojoje kairiojoje aibje vietoje poaibio PS,PN staius atribut DK (r. 5.11b pav.). Abi struktrins dengtys iliks ekvivalentins, kadangi atribut ekvivalentikumas PS,PN DK seka i funkcini priklausomybi, specifikuot pirmuoju tipu.

5.3. Funkcini priklausomybi atstatymas i struktrini tip aibs


Dabar panagrinsime atvirki udavin: kaip sudaryti FP aib G , ekvivalentin uduotai struktrini tip aibei Q. Paimkime Q ir G tokius, kad G Q. FP aib G bus vadinama charakteringja aibe. Jeigu ST i Q kiekviena kairioji aib Ri yra panaudojama funkcins priklausomybs i G kairija puse tiksliai vien kart, tai aib G vadinsime ST aibs Q natralija charakteringja aibe. Natraliajai charakteringajai aibei sudaryti naudosime taisykl NCHT. Paimkime ST aibs Q sudtin funkcin priklausomyb Q = (R1; R2; ...; Rk) R. Taisykl NCHT. Kiekvienai priklausomybei Q i Q numatomas funkcini priklausomybi poaibis {R1 R2; R2 R3; ...; Rk-1 Rk; Rk R1,R}. Funkcini priklausomybi poaibius, sudarytus visiems Q i Q, apjungiame FP aib G. rodymas, kad NCHT yra korektika, t.y. G Q yra trivialus ir analogikas taisykls SFT korektikumo rodymui. Paimkime ST aib Q (r. 5.12 pav.) i anksiau nagrinto pavyzdio ir sudarykime pagal taisykl NCHT FP dengt G (r. 5.13 pav.).
U U

DP

DK

LA DK

VI
LA

LA
TM

LA

PP

5.12 pav. Struktrini tip aibs pavyzdys, i kurio bus atstatyta natralioji charakteringoji FP aib

SUDTINI FUNKCINI PRIKLAUSOMYBI DENGTYS

101

G VI U LA DK DP TM PP

G' VI U LA DK DP TM PP

5.13 pav. Natralioji charakteringoji FP aib sudaryta i struktrini tip aibs

Gauta natralioji charakteringoji FP aib G nra redukuota deiniosiomis FP pusmis, nors ST aib Q ir buvo redukuota. Po redukcijos de iniosiomis pusmis gausime redukuotj FP aib G'. Kadangi Q buvo minimali, tai FP dengtis bus minimali taip pat. Baigiant ST ir FP aibi dengi analiz panagrinkime dar vien nesudting pavyzd (r. 5.14 pav.). Kompiuterizuotos informacijos sistemos vartotojais (VAR) gali bti finansistas (FIN), komersantas (KOM), gamybos dispeeris (DIS) ir technologas (TECH). Organizacijos valdymo funkcijos sugrupuotos prekybos ir gamybos valdymo funkcij sistemas. Savo ruotu prekybos sistemoje skiriamos buhalterins apskaitos ir sandli apskaitos posistems. Gamybos valdymo sistemoje skiriamos gamybos operatyvaus valdymo ir gamybos normavimo posistems. Duomenys, reikalingi i funkcij palaikymui, slyginai suskirstyti pagal ias valdymo funkcijas ir tikslu utikrinti duomen bazi sankcijonuot panaudojim eksploatuojami pagal schemas (SCH) PRekyba ir GAmyba, bei poshemes (POS) PR_BUH, PR_SAN, GA_OV ir GA_NOR.
PRekyba GAmyba

PR_BUH PR_SAN

GA_OV GA_NORM

sl3 sl1 sl2 sl4


FIN KOM DIS TECH

sl5

T1
Buhalterija

T2

T3
Dispeerin

T4
Vyr. technologo skyrius

5.14 pav. Dalykins srities pavyzdys, kuriam bus sudaryta FP aib

102

SUDTINI FUNKCINI PRIKLAUSOMYBI DENGTYS

Vartotojas prisijungdamas per terminal (TER) prie duomen poschemi naudoja vien slaptaod. Pavyzdiui, finansistas gali prisijungti per terminal T1 prie schemos PR poschemi PR_BUH ir PR_SAN naudodamas slaptaod sl1. Tas pats vartotojas su tuo paiu slaptaodiu gali prisijungti tik prie vienos schemos poschemi. Tas pats vartotojas gali naudoti tik vien tos paios schemos poschem. ia ivardinti ir kiti nenurodyti duomen bazi sankcijonuot panaudojim charakterizuojani duomen apribojimai gali bti aprayti naudojant uduot funkcini priklausomybi aib F (r. 5.15 pav.).
F SCHema POSchem VARtotojas SLAptaodis TERminalas F+

* * * *

5.15 pav. Usiduot FP minimalios ir redukuotos aibs F pavyzdys

Aib F yra minimali ir redukuota. Pasinaudoj taisykle SFT i aibs F sudarykime jos struktrin dengt Q' (r. 5.16 pav.). Redukav minimali ST aib Q' deiniosiomis atribut aibmis gausime jai ekvivalentin minimali redukuot aib Q (r.
VAR
SLA POS TER SCH SCH VAR

POS

SLA

SCH VAR SLA

SCH

TER

POS

5.16 pav. Minimali nerudukuota struktrin dengtis Q' , sudaryta taisykle SFT i minimalios ir redukuotos FP aibs

5.17 pav.). Aib Q yra tuo paiu ir optimali. Pritaik taisykl NCHT atstatykime FP dengt. J redukav FP deiniosiomis pusmis gausime minimali redukuot aib G (r. 5.18 pav.). Ji bus ekvivalentin pradinei aibei F (r. 5.15 pav.), taiau jos nesutampa.

SUDTINI FUNKCINI PRIKLAUSOMYBI DENGTYS


VAR
SLA POS TER SCH SCH VAR

103

POS

SLA

SCH

TER

POS

5.17 pav. Redukuota struktrin dengtis, gauta redukavus struktrinius tipus deiniosiomis aibmis
G SCH POS VAR SLA TER G+

5.18 pav. I optimalios struktrins dengties atstatyta minimali ir redukuota natralioji charakteringoji FP aib, kuri nra optimali

Nors struktrin dengtis Q buvo optimali, taiau atstatyta FP aibs dengtis G nra optimali, nes joje bendras atribut skaiius (16) yra didesnis u minimalios dengties F bendr atribut skaii (15). Lyginant tarpusavyje FP aibes F ir G pastebime, kad aibje G vietoj funkcins priklausomybs VAR,SLA SCH naudojama funkcin priklausomyb VAR,SLA POS,TER. Aibje G funkcin priklausomyb VAR,SLA SCH yra perteklin (r 5.18 pav.), kai tuo tarpu aibje F (r. 5.15 pav.) ji jokiu bdu nra perteklin, nes be jos sudarant 5.16 paveiksllyje parodyt struktrin dengt niekaip negaltume ivesti kairij aibi ekvivalentikum VAR,SLA POS,TER. Palyginkime tarpusavyje optimali FP aib F su jos struktrine dengtimi Q (r. 5.17 pav.). Optimalioje struktrinje dengtyje Q bendras atribut skaiius yra 12, kuris yra maesnis u bendr atribut skaii 15 funkcinje dengtyje F. Bendru atveju optimalioje struktrinje dengtyje bendras atribut skaiius visada yra nedidesnis u skaii ekvivalentinje optimalioje funkcinje dengtyje. is teiginys yra trivialus ir jo nerodysime. Usiduot FP aibs specifikavimas struktrinmis dengtimis yra kompaktikesnis. Be vaizdumo tai yra papildomas ST dengi panaudojimo privalumas.

DUOMEN BAZI RELIACIN TEORIJA

6
JUNGIMO/PROJEKCIJOS PRIKLAUSOMYBS IR RELIACINI SCHEM PROJEKTAVIMAS
6.1. Daugiareikms priklausomybs
Paimkime dalykins srities pavyzd. 6.1 paveiksllyje pavaizduotas gaminio (GAMINYS) technologinis marrutas ir to gaminio sandliavimas: gaminys G1 apdorojamas technologinmis (OPERACIJA) operacijomis O1 ir O2, o po to, kai jau jis yra pagamintas, sandliuojamas arba sandlyje (SANDLIS) S1 arba sandlyje (SANDLIS) S2. Gaminio G1 sandlyje S1 likutis (KIEKIS) yra K1, o sandlyje S2 to paio gaminio likutis (KIEKIS) yra K2. Paimkime duomen, kurie charakterizuoja i dalykin srit, reliacin schem R = (GAMINYS, OPERACIJA, SANDLIS, KIEKIS) ir duomen santyk, pavaizduot 6.1 lentelje. Paymsime toki svarbi ios dalykins srities savyb, kad informacija apie tai, kokiomis operacijomis gaminys yra apdorojamas, yra nepriklausoma nuo informacijos apie to gaminio sandliavimo vietas ir to gaminio likuius sandliuose. Analogikai, gaminio sandliavimo vietos ir likuiai sandliuose yra nepriklausomi nuo gaminio technologinio marruto. Kitais odiais tariant, tarp gaminio technologini duomen ir duomen apie gaminio sandliavim nra tiesiogini asociatyvini ryi, nra koki nors duomen priklausomybi, pavyzdiui, inom i anksiau, funkcini priklausomybi. Netiesioginiai asociatyviniai ryiai tarp nagrinjamos problemins srities sandliavimo ir technologini duomen yra. Taiau ie ryiai egzistuoja per duomen atribut GAMINYS, kadangi tas pats gaminys apdorojamas tam tikromis operacijomis, o po apdorojimo tas pats gaminys yra sandliuojamas tam tikrose sandliavimo vietose ir tose vietose yra tam tikri gaminio kiekiai. Netiesiogini asociatyvini ryi egzistavimas sudaro prielaidas vesti daugiareikmes priklausomybes, kurias toliau apibrime formaliai.
K1 O1 S1 G1 O2 K2 S2

6.1 pav. Gaminio G1, kuris apdorojimas operacijomis O1 ir O2,sandyje S1kiekis yra K1ir sandjyje S2kiekis yra K2

JUNGIMO/PROJEKCIJOS PRIKLAUSOMYBS IR RELIACINI SCHEM PROJEKTAVIMAS


6.1 lentel.Gamini apdorojimo ir sandliavimo duomen pavyzdys GAMINYS OPERACIJA SANDLIS KIEKIS s G1 O1 S2 K2 t G1 O2 S1 K1 u G1 O1 S1 K1 v G1 O2 S2 K2 G2 O2 S2 K3 u'=s' G2 O3 S2 K3 v'=t' G3 O1 S1 K4 s''=t''=u''=v''
X Y Z

105

Paimkime schemos R atribut poaibius X, Y ir Z = R X,Y . Schemos R duomenys tenkina daugiareikm priklausomyb (DP) X >> Y, jeigu bet kokiame schemos R egzemplioriuje r(R) esant dviems korteams s ir t, kuri X-komponentai sutampa, t.y. s(X) = t(X), tame paiame egzemplioriuje r(R) btinai egzistuos korteai u ir v tokie, kad bus ipildytos slygos: u(X) = v(X) = s(X) = t(X) ; u(Y) = s(Y) ; u(Z) = t(Z) ; v(Y) = t(Y) ; v(Z) = s(Z) . DP reikalavim galima perfrazuoti taip: jeigu santykyje r(R) yra du korteai s ir t su vienodais X-komponentais, tai iuose korteuose Y-komponentus sukeitus vietomis gausime korteus u ir v, kurie btinai priklauso paimtam duomen santykiui. 6.1 lentelje pateikti duomenys daugiareikm priklausomyb GAMINYS >> OPERACIJA tenkina. Paimkime, pavyzdiui, 6.1 lentels korteus s = <G1, O1, S2, K2> ir t = <G1, O2, S1, K1>. iuose korteuose s(GAMINYS) = t(GAMINYS) = G1, o komponentus s(OPERACIJA) = O1 ir t(OPERACIJA) = O2 sukeit vietomis gausime korteus u = <G1, O1, S1, K1> ir v = <G1, O2, S2, K2>, kurie priklauso tai paiai lentelei. Pateiktame DP apibrime nereikalaujama, kad korteai s, t, u ir v turi bti skirtingi. Usiduokime kitus du korteus s' = <G2, O2, S2, K3> ir t' = <G2, O3, S2, K3>, kuriuose X-komponentai taip pat sutampa. Komponentus s'(Y) = O2 ir t'(Y) = O3 sukeit vietomis gausime turimus korteus u' = s' ir v' = t'. Priklausomybs GAMINYS >> OPERACIJA reikalavimus tenkins ir lentels paskutinis korteas. Paymj s'' = t'' = <G3, O1, S1, K4> ir komponentus s''(Y) = O1, t''(Y) = O1 sukeit vietomis gausime u'' = v'' = s'' = t'' = <G3, O1, S1, K4>. Nenagrindami DP ivedimo vis taisykli pateiksime tik dvi reliacini schem projektavimo poiriu svarbias taisykles: DT1) X Y |= X >> Y ; DT2) X >> Y |= X >> Z ; Z = R X,Y . TaisyklDT1 teigia, kad kiekviena funkcin priklausomyb (FP) yra daugiareikm priklausomyb. Paimkime funkcin priklausomyb GAMINYS,SANDLIS KIEKIS
X Y

bei korteus t ir u (r. 6.1 lent.), kuriuose t(X) = u(X) = G1,S1 . Kadangi 6.1 lentels duomenys funkcin priklausomyb X Y tenkina, tai t(Y) = u(Y) = K1. iuose korte-

106

JUNGIMO/PROJEKCIJOS PRIKLAUSOMYBS IR RELIACINI SCHEM PROJEKTAVIMAS

uose vienodus komponentus t(Y) ir u(Y) sukeitus vietomis gausime, suprantama, teisingus duomenys, ir daugiareikm priklausomyb X >> Y nepaeisime. Pabrime, kad atvirkias teiginys, jog kiekviena DP yra tuo paiu metu ir FP, yra neteisingas. Antroji taisykl DT2 taip pat yra triviali. Paimkime t pai anksiau turt DP GAMINYS >> OPERACIJA .
X Y

Jeigu i DP yra teisinga, tai teisinga bus ir priklausomyb GAMINYS >> SANDLIS,KIEKIS ,
X Z = R X,Y

nes korteuose s ir t sukeit komponentus s(Z) = S2,K2 ir t(Z) = S1,K1 vietomis gausime, kaip ir DP X >> Y atveju, teisingus tuos paius korteus u ir v. Daugiareikms priklausomybs X >> Y vedimas schemoje R bus korektikas, jei bet kok schemos egzempliori r galima suprojektuoti schemas R1 = X,Y ir R2 = X,Z , gaunant dvi naujas lenteles r1 = R1 (r) ir r2 = R2 (r), kurias natraliosios jungties operacija sujungus tarpusavyje atstatysime paimt egzempliori r. Po projekcijos operacijos 6.1 lentels duomenys bus atvaizduoti 6.2 ir 6.3 lenteli duomenimis. ias lenteles natraliosios jungties operacija sujung gausime pirmin 6.1 lentel. Tai yra bdas, kaip patikrinti, ar duomen lentel tenkina daugiareikm priklausomyb.
6.2 lentel.Gamini operacijos 6.3 lentel. Gamini sandliavimas

GAMINYS G1 G1 G2 G2 G3
X

OPERACIJA O1 O2 O2 O3 O1
Y

GAMINYS G1 G1 G2 G3
X

SANDLIS S2 S1 S2 S1 Z

KIEKIS K2 K1 K3 K4

6.2. Jungimo/projekcijos priklausomybs


Praeitame skyrelyje nagrintas DP apibendrina taip vadinamos jungimo/projekcijos priklausomybs (JPP) arba, kitais odiais tariant, kiekviena daugiareikm priklausomyb yra JPP. Kaip ir DP atveju, uduodant JPP duomen lentelje turi egzistuoti netiesioginiai asociatyviniai ryiai. Jeigu DP X >> Y atveju schemoje R buvome iskyr dvi atribut grupes Y ir Z = RX,Y ,tai JP priklausomybei bendruoju atveju iskirsime kelias atribut grupes Ri; i = 1, 2, , p . Kiekviena atribut grup Ri turi turti tiesiogin asociacij su bent viena atribut grupe Rj per i grupi bendrus atributus Ri R j . Schemos R duomenys turi jungimo/projekcijos priklausomyb *[R1; R2; , Rp], jeigu schemos R bet kokiame santykyje r(R) egzistuojant korteams t1, t2, , tp tokiems, kad ti(Ri Rj) = tj(Ri Rj), tame paiame santykyje r(R) bus korteas t toks, kad t(Ri) =

JUNGIMO/PROJEKCIJOS PRIKLAUSOMYBS IR RELIACINI SCHEM PROJEKTAVIMAS

107

ti(Ri) ; i = 1, 2, , p . Universaliosios schemos R atribut poaibius Ri toliau vadinsime priklausomybs komponentais. Paimkime schem R su usiduota FP aibe (r. 6.2a pav.) ir ios schemos egzempliori (r. 6.4 lent.). Sugrupuokime universaliosios schemos R atributus tris naujas schemas, suteikdami ioms schemoms vardus R1, R2 ir R3. Taip pat uduokime tarp nauj schem asociatyvinius ryius ir pavaizduokime juos kanoniniame pavidale (r. 6.2b pav.). Atribut grups R1 ir R3 tiesiogiai asocijuojamos per bendr atribut , ir R2 - per atribut atribut grups R3 ir R2 - per atribut K, o R VE.
R uniuko Vardas uniuko eimininkas VEisl Kalyts eimininkas Kalyts Vardas R1 V VE R3 K R2 KV K VE

6.2a pav.Veislininkysts schemos pavyzdys

6.2b pav. Atribut grupavimas schemas R1, R2, R3

t1 t2 t3 t

V Tobis Margis Pukis Tobis

6.4 lentel. Universalaus santykio r pavyzdys VE K KV Bear Dog Race Mirta Wolf Dog Fox Morka Bear Vilk Fox atr Bear Dog Fox Morka

Kad nustatyti, ar jungimo/projekcijos priklausomyb JP1 = *[R1; R2; R3] yra teisinga, turime sigilinti universaliosios schemos R atribut vard semantik; i semantika lieka tik dalykins srities eksperto galvoje ir tik dalis dalykins srities duomen semantikos uduodama formaliai. Priklausomybs komponento R1 atributais V, ir VE charakterizuojami patinukai: j vardai, kokiems eimininkams jie priklauso ir kokios yra j veisls. Funkcinmis priklausomybmis V ir V VE uduodama tik tokia semantika uniukas su vardu v priklauso nedaugiau, kaip vienam eimininkui ir turi nedaugiau, kaip vien veisl ve. Analogikai komponento R2 atributai KV, K ir VE charakterizuoja kalytes. Komponent R1 ir R2 duomenys yra slyginai nepriklausomi ir asocijuojami tik bendru atributu VE. io asociatyvinio atributo semantika yra tokia: uniukas v gali bti kryminamas su kalyte kv, jei abu v ir kv turi t pai veisl ve. Komponento R3 atributai ir K turi tarpusavio tiesiogin asociatyvin ry, kurio semantika yra: uniuko eimininkas ir kalyts eimininkas k yra sudar sutart dl savo globotini kryminimo.is asociatyvinis sryis yra uduodamas tiesiog atribut apjungimu vien poaib-komponent R3. Paimtas i universaliosios schemos duomen lentels koks nors korteas <v; , ve; k, kv> interpretuojamas taip: uniukas su vardu v ir kalyt su vardu kv gali bti sukryminti, jeigu jie yra tos paios veisls ve ir, jeigu eimininkai ir k yra tarpusavyje sudar sutart dl savo globotini kryminimo. Iskirdami priklausomyb JP1 = *[R1; R2; R3] tvirtiname, kad bet kokiame schemos R egzemplioriuje r korte t1, t2 ir t3 komponentus <v, ,ve>, <kv, k, ve> ir <, k>

108

JUNGIMO/PROJEKCIJOS PRIKLAUSOMYBS IR RELIACINI SCHEM PROJEKTAVIMAS

galime natraliosios jungties bdu apjungti korte t = <v, , ve, k, kv> , kuris turi priklausyti egzemplioriui r. Kitais odiais tariant, gautas korteas bus teisingas, ir uniukas su vardu v ir kalyt su vardu kv gali bti sukryminti, nes abu partneriai yra tos paios veisls, o j eimininkai turi sudar sutart dl globotini kryminimo. iame pavyzdyje asociacija, uduota reikmi pora-kintamuoju <v, kv>, yra netiesiogin ir visada teisinga, jeigu tik ipildytos slygos dl uniuk poros veisls ir uniuk eiminink sutarties. Apibrime jungimo-projekcijos priklausomyb bendruoju atveju. Schema R turi jungimo-projekcijos (JP) priklausomyb *[R1; R2; ; Rp], jeigu schemos R; R =

UR
i =1

bet kokiame egzemplioriuje r egzistuojant korteams t1, t2, , tp tokiems, kad ti(RiRj) = tj( RiRj ) , tame paiame egzemplioriuje r btinai bus korteas t toks, kad t(Ri) = ti(Ri) ; i = 1, 2, , p. 6.2 lentelje pateikti duomenys priklausomyb JP1 = *[R1; R2; R3] tenkina. Paimkime korteus t1 = <Tobis, Bear, Dog, Race, Mirta>; t2 = <Margis, Wolf, Dog, Fox, Morka>; t3 = <Pukis, Bear, Vilk, Fox, atr>. t1(R1 R2) = t2(R1 R2) = <Dog> ; t2(R2 R3) = t3(R2 R3) = <Fox> ; t1(R1R3) = t3(R1 R3) = <Bear> , tai tada toje paioje lentelje bus teisingas korteas t = <Tobis, Bear, Dog, Fox, Morka> , nes t(R1) = t1(R1) = <Tobis, Bear, Dog> ; t(R2) = t2(R2) = <Morka, Fox, Dog> ; t(R3) = t3(R3) = <Bear, Fox> . JP priklausomybms naudosime grafin ymjim. 6.4 paveiksllyje parodyta priklausomyb JP1. Pastebsime tai, kad uduotos JP priklausomybs komponentai turi apimti visus nagrinjamos schemos R atributus. Kadangi
R V VE K KV R1 R2 R3 JP1

6.4 pav. JP priklausomybs grafinis vaizdavimas

JUNGIMO/PROJEKCIJOS PRIKLAUSOMYBS IR RELIACINI SCHEM PROJEKTAVIMAS

109

Ar tikrai paimtos 6.4 lentels duomenys tenkina priklausomyb JP1? Suprojektuokime i lentel schemas R1 = V,,VE , R2 = KV,K,VE ir R3 = ,K . Suprojektav gausime santykius r1, r2 ir r3 (r. 6.5, 6.6 ir 6.7 lenteles).
6.5 lentel. r1 6.6 lentel r2 6.7 lentel. r3

V Tobis Margis Pukis

Bear Wolf Bear

VE Dog Dog Vilk

KV Mirta Morka atr


6.8 lentel. r1 || r2

K Race Fox Fox

VE Dog Dog Vilk

Bear Wolf Bear

K Race Fox Fox

6.9 lentel. r1 || r2 || r3

V Tobis Tobis Margis Margis Pukis

Bear Bear Wolf Wolf Bear

VE Dog Dog Dog Dog Vilk

K Race Fox Race Fox Fox

KV Mirta Morka Mirta Morka atr

V Tobis Tobis Margis Pukis

Bear Bear Wolf Bear

VE Dog Dog Dog Vilk

K Race Fox Fox Fox

KV Mirta Morka Morka atr

Natraliosios jungties operacija sujunkime ias tris lenteles vien. Kokias lenteles ir Kokia nuoseklumo tvarka jungsime lenteles, rezultat gausime t pat. Sujunkime pradioje lenteles r1 ir r2. Po sujungimo gausime tarpin lentel r1 || r2 . i tarpin lentel sujung su lentele r3 gausime rezultatin, kuri savo turiniu sutampa su pradine lentele r (r. 6.4 lent.). is faktas parodo, kad paimtas schemos R egzempliorius r duomen priklausomyb JP1 = *[R1; R2; R3] tenkina. Sekaniame skyrelyje remiantis pastebta duomen savybe bus suformuluotas pagrindinis DB projektavimo kriterijus. 6.5 paveiksle parodyta schemos S pavyzdys su daugiareikme priklausomybe VE >> KA. Kita daugiareikm priklausomyb VE >> RA,RI yra perteklin, nes ji ivedama i usiduotos priklausomybs VE >> KA pagal praeitame skyrelyje nagrint DP ivedimo taisykl. JP priklausomyb JP2 = *[S1; S2] atvilgiu parodyt DP yra perteklin taip pat. JP priklausomybs komponent S1 ir S2 atributai tarpusavyje turi
S KArv VEisl RAcionas RIebumas S1 S2 JP2

6.5 pav. JP2, ivesta i VE >> KA

vien asociatyvin ry per bendr atribut VE. Pieno riebum ir karvms duodamo paaro racion neapsprendia konkreti karv (atributo KA reikm), o tik karvs veisl, ir visos karvs tos paios veisls yra eriamos vienod racion paarais ir t karvi pieno

110

JUNGIMO/PROJEKCIJOS PRIKLAUSOMYBS IR RELIACINI SCHEM PROJEKTAVIMAS

riebumas pagal iame pavyzdyje daromas prielaidas yra vienodas. Schemos R atribut grupavimas daugiareikmi priklausomybi X >> Y , X >> Z ; Z = R X; kairisias bei deinisias puses ir schemos R atribut grupavimas JP priklausomybs *[X,Y; X,Z] du komponentus atliekami ta paia semantine prasme vienodai. Tiek DP, tiek JP priklausomybs vienodai apriboja schemos R egzempliori leistinas atributines reikmes. Taiau JP priklausomyb yra bendresn ir DP priklausomyb yra jos dalinis atvejis, kai JP priklausomyb turi du komponentus. Aprayt analogij tarp DP ir JP pateiksime formalia JP priklausomybs ivedimo taisykle JPT1: JPT1) X >> Y |= *[X,Y; X,Z]; Z = R - X -Y . Suprantama, kad *[R1; R2] |= R1R2 >>R1, taiau teigti, kad bendruoju atveju, kai JPP turi daugiau negu du komponentus, i JPP galima ivesti DP bt neteisinga. Pavyzdiui, ankstesns priklausomybs JP1 = *[R1; R2; R3] komponentai R1 ir R2 apima schemos R visus atributus, taiau priklausomyb *[R1; R2] ir tuo paiu priklausomyb BR >> MN,MO yra neteisingos, nes DB schema R = {R1, R2} duos informacijos nuostolius. Pavyzdiui, korteas <Margis, Wolf, Dog>, sujungtas su korteu <Dog, Race, Mirta> duos korte <Margis, Wolf, Dog,Race, Mirta>, kuris nepriklauso universaliam santykiui r.

6.3. Pagrindinis duomen bazi projektavimo kriterijus


Praeitame skyrelyje buvo parodyta, kaip galima patikrinti, ar schemos R egzempliorius r tenkina usiduot jungimo-projekcijos priklausomyb *[R1; R2; ; Rp]. Jeigu duomen santykis r tenkina usiduot JP priklausomyb, tai j galima suprojektuoti santyki schemas R1, R2, ,Rp , o antruoju veiksmu gautas projekcijas natraliosios jungties operacija atstatydavome egzempliori r. Jeigu tai padaryti pavyksta bet kokio teisingo egzemplioriaus atveju, tai tada galima teigti, kad JP priklausomyb yra usiduota teisingai. Natralu i situacij charakterizuoti tokiu bdu. Egzemplioriai r charakterizuoja dalykins srities bsenas vairiais laiko momentais. Visus duomenys, kurie charakterizuoja leistin bsen tam tikru laiko momentu galima saugoti reliacinje DB, kurios schema yra R = {R1, R2, ,Rp}. Saugojamas lenteles r1, r2, , rp galima apjungti vien universal santyk r = r1 || r2 || || rp , kuris pilnai charakterizuoja dalykins srities bsen duotam laiko momentui. Sakysime, kad DB schema R neduoda informacijos nuostoli, kadangi i jos duomen visada galima atstatyti dalykins srities bsen. Jeigu DB schema kriterij tenkina, tai tada lenteles ri; i = 1, 2, , p; galima eksploatuoti nepriklausomai, jos yra maesns ir lengviau palaikomos. Usiduokime DB schem R={R1, R2, R3} ; R1 = V,,VE ; R2 = KV,K,VE ; R3 = ,K . Universalioji santyki schema, kuri apima visus dalykins srities atributus bus R = R1 R2 R3 . Sakykime, kad tam tikru laiko momentu dalykin sritis yra charakterizuojama schemos R egzemplioriumi r, kuris pateiktas 6.10 lentelje.
V Tobis Margis Bear Wolf VE Dog Dog K Race Fox
6.10 lentel. r KV Mirta Morka

JUNGIMO/PROJEKCIJOS PRIKLAUSOMYBS IR RELIACINI SCHEM PROJEKTAVIMAS Pukis Bear Vilk Fox atr

111

6.11 lentel. r1 = R1(r) t1

6.12 lentel. r2 = R2(r) t2

6.13 lentel. r3 = R3(r) t3

V Tobis Margis Pukis

Bear Wolf Bear

VE Dog Dog Vilk

KV Mirta Morka atr

K Race Fox Fox

VE Dog Dog Vilk

Bear Wolf Bear

K Race Fox Fox

Suprojektav santyk r DB schem R gausime tris projekcijas r1 = R1(r), r2 = R2(r) ir r3 = R3(r) (r. 6.11, 6.12, 6.13 lenteles), kurias, natraliosios jungties bdu apjung, gausime santyk s = r1 || r2 || r3 (r. 6.14 lent.).
6.14 lentel. s = r1 || r2 || r3 t

V Tobis Tobis Margis Pukis

Bear Bear Wolf Bear

VE Dog Dog Dog Vilk

K Race Fox Fox Fox

KV Mirta Morka Morka atr

Gautas santykis s skiriasi nuo bsen charakterizuojanio santykio r tuo, kad santykyje s atsirado naujas korteas < Tobis, Bear, Dog, Fox, Morka>. Jis yra
neteisingas, nes patinuk Tobis ir patel Morka nra numatyta kryminti, nors jie yra tos paios veisls. iame skyrelyje paimtas dalykins srities pavyzdys skiriasi nuo ankstesnio pavyzdio tuo, kad ia duomenis neapribojome ankstesne JP priklausomybe *[R1; R2; R3] . Dabartiniame pavyzdyje kryminimui partnerius eimininkai parenka tos paios veisls, taiau individualiai, o ne pagal bendr iankstin eiminink sutart dl uniuk kryminimo. Pasirinkta DB schema iame pavyzdyje yra atsitiktin, ir ia nevertinami duomen apribojimai. Usiduota DB schema R={R1, R2, R3} ikraipo dalykins srities bsenas, nes i DB lenteli r1, r2 ir r3 atstatytas santykis turi papildomus neteisingus korteus. Paeiliui panaudotas projekcijos ir natralaus sujungimo operacijas uduokime funkcija mR , kai DB schema yra R = {R1, R2, , Rp} : mR(r) = R1 (r) || R1 (r) || || R1 (r) = s . Sakysime, kad schemos R duomen baz isaugoja informacij arba R tenkina pagrindin DB projektavimo kriterij, jeigu bet koks dalykin srit charakterizuojantis santykis r gali bti isaugotas duomen bazje, t.y.: mR(r) = R1 (r) || R1 (r) || || R1 (r) = r . Ankstesniame pavyzdyje s r, todl schema R = {R1, R2, R3} duoda informacijos nuostolius. Funkcijai mR bdingos tokios savybs: 1) r mR(r) ;

112

JUNGIMO/PROJEKCIJOS PRIKLAUSOMYBS IR RELIACINI SCHEM PROJEKTAVIMAS

2) jeigu r s , tai mR(r) mR(s) ; 3) mR(r) = mR(mR(r)) . Pirmoji savyb seka i to fakto, kad pamus korte t r (r. 6.14 lent.) ir j suprojektavus schemas R1, R2 ir R3, gauti korteai t1 r1, t2 r2 ir t3 r3 (r. 6.11, 6.12, 613 lent.) btinai tarpusavyje susijungs, nes t1(R1 R2) = t2(R1 R2) ; t1(R1 R3) = t3(R1 R3) ; t2(R2 R3) = t3(R2 R3) . Todl santykyje (r1 || r2 || r3) = s btinai bus atstatytas korteas t, ir t s . Antrja funkcijos mR savybe, vadinama monotonikumu, galima sitikinti pastebjus, kad jeigu r s, tai r1 = R1 (r) R1 (s) , r2 = R2 (r) R2 (s) , r3 = R3 (r) R3 (s) . Jeigu t1 r1 R1 (s) , t2 r2 R2 (s) , t3 r3 R3 (s) , ir t1, t2, t3 tarpusavyje susijungia, tai po sujungimo bus atstatytas korteas t, ir jis btinai turi priklausyti santykiui mR (s). Treij savyb, vadinam idempotentikumu, galima rodyti tokiu bdu. Jeigu r1, r2 ir r3 yra gauti, suprojektavus t pat santyk r, tai kiekvienas korteas t1 r1, t2 r2 ir t3 r3 natraliosios jungties operacijoje (r1 || r2 || r3) = mR (r) su kokiu nors kitu korteu susijungia (sakome santykiai r1, r2 ir r3 yra pilnai sujungiami). Tokiu bdu visi korteai t1, t2, t3, kaip komponentai, rasis santykio mR (r) korteuose, o santykio mR (r) visi korteai bus sudaryti tik i toki sujungiam komponent. Pasinaudokime ankstesniu paymjimu s = mR (r). Jeigu dar kart suprojektuosime santyk s, tai projekcijos bus: r1 = R1 (s) , r2 = R2 (s) , r3 = R3 (s) . Bet sujung tarpusavyje vienodus santykius visada gausime t pat rezultat. Tokiu bdu mR (r) = mR (s) = mR (mR (r)) . Toliau pagrindin DB projektavimo kriterij apibrime per dalykins srities duomen apribojimus, palikdami ankstesnius paymjimus. Pasinaudodami funkcijos mR idempotentikumo savybe santyk s = mR (r) = mR (mR (r)) apibrime, kaip ios funkcijos nejudant tak, o nejudani tak aib paymsime FIX(R). Jeigu r FIX(R), tai schema R dalykins srities bsen neikraipo. Paymkime galim bsen aib raide B. Jeigu B FIX(R) (r. 6.6 pav.), tai tada visos galimos bsenos i duomen bazs su schema R bus atstatomos. 6.6 paveiksle duomen baz di; di = R(ri); parodyta, kaip lenteli ,gaut i bsenos ri projekcijos operacija R , visuma, o duomen bazs di vis lenteli sujungimas natraliosios jungties operacija parodytas kaip ||(di).

JUNGIMO/PROJEKCIJOS PRIKLAUSOMYBS IR RELIACINI SCHEM PROJEKTAVIMAS

113

Kokios yra dalykins srities galimos bsenos? Jas apibrime, kaip leistinas, kurios charakterizuojamos apribojimus tenkinaniais duomenimis. Paymkime duomen apribojimus (funkcines, daugiareikmes ir JP priklausomybes) raide C,o leistin bsen aib - SAT(C). Tada pagrindinis DB kriterijus bus ireikiamas tokiu bdu: SAT(C) FIX(R).
r1

R R

( r1 )

( s1 )

s1 SAT(C) s2

|| ( d 1 )

d1

(s2 )

|| ( d 2 )

d2

FIX(R) s3
|| ( d 3 )

(s3 )

d3

6.6 pav. Pagrindinis DB kriterijus: SAT(C) FIX(R)

Sekaniame skyrelyje bus parodyta, kaip dekompozicijos metodu galima suprojektuoti DB schemas, tenkinanias tokiame pavidale uduot pagrindin informacijos isaugojimo kriterij.

6.4. Reliacini schem projektavimo dekompozicijos metodas


io metodo idja yra ta, kad universaliajai santyki schemai R uduodamos duomen priklausomybs, kuri pagrindu schema R dekomponuojama, gaunant kelet santyki schem, kuri visuma DB schem. Visoms santyki schemoms - pradinei, tarpinms ir rezultatyvinms - apibriamos taip vadinamos santyki schem normalins formos. Pati primytiviausia santyki schemos normalin forma yra pirmoji normalin forma (1NF). iai normalinei formai taikomi minimals reikalavimai Pirmoji normalin forma. Schema R yra pirmojoje normalinje formoje, jeigu kiekvienas jos egzempliorius sudaro ploki lentel. Lentel yra plokia, jeigu shemos atributai yra nepriklausomi (be hierarchini ryi) ir atribut reikms yra atomarins

114

JUNGIMO/PROJEKCIJOS PRIKLAUSOMYBS IR RELIACINI SCHEM PROJEKTAVIMAS

Schemos R santykio r(R) atributo reikm yra atomarin, jeigu ji neskaidoma dalis tam, kad asocijuoti jas su kitos ar tos paios lentels duomenimis. Paimkime dvi duomen lenteles 6.15 ir 6.16 .
6.15 lentel. Pilotai 6.16 lentel. Zodiako_ enklai

PILOTAS Blonskis J. Gustas R. Gudas S.

GIM_DATA 70/08/02 45/09/21 50/09/16

PRADIA 08/01 09/03 09/03

PABAIGA 08/22 10/04 10/04

ENKLAS Litas Mergel Mergel

Pilot lentels atributo GIM_DATA reikms nra terminalins, nes gimimo mnuo ir diena gali bti panaudotos Zodiako enklo nustatyti. Duomenys apie pilotus gali bti pavaizduoti 6.17 arba 6.18 lentelmis, panaudojant tik atomarines atribut reikmes.
6.17 lentel. Modifikuota lentel Pilotai 6.18 lentel. Modifikuota lentel Zodiako_enklai

PILOTAS Blonskis J. Gustas R. Gudas S.

GIM_DATA MET MN DIENA 70 08 02 45 09 21 50 09 16

PRADIA MN DIENA 08 01 09 03 09 03

PABAIGA MN DIENA 08 22 10 04 10 04

ENKLAS Litas Mergel Mergel

Taiau ir iuo atveju abi lentels netenkina 1NF reikalavim, nes atribut vardai uduodami per du hierarchinius lygius. Tie patys duomenys pateikti 6.19 ir 6.20 lentelse. J schemose atribut vardai parinkti tokie, kad abi santyki schemos tenkint 1NF reikalavimus.
6.19 lentel. 1NF lentel Pilotai 6.20 lentel. 1NF lentel Zodiako_enklai

PILOTAS Blonskis J. Gustas R. Gudas S.

ME 70 45 50

M 02 09 09

DI 02 21 16

PR_M 08 09 09

PR_D 01 03 03

PA_M 08 10 10

PA_D 22 04 04

ENKLAS Litas Mergel Mergel

Pagrindinis privalumas yra tai, kad 1NF schem atveju duomen lenteli atvilgiu galima taikyti reliacins algebros operacijas. Kitas privalumas yra tai, kad naudojant atomarines atribut reikmes galima duomen atvilgiu uduoti stipresnius apribojimus. Paimkime dvi panaias reliacines schemas (r. 6.7 pav.) su usiduotomis analogikomis funkcinmis priklausomybmis GIM_DATAENKLAS ir M,DIENKLAS. Antroji FP yra stipresn, kadangi kairiosios puss atributai yra labiau detals, ir j reikmi pasikartojimo tikimyb duomen lentelse yra didesn. Pavyzdiui 6.21 lentelje atributo GIM_DATA jokia reikm nepasikartoja, kai tuo tarpu

JUNGIMO/PROJEKCIJOS PRIKLAUSOMYBS IR RELIACINI SCHEM PROJEKTAVIMAS

115

6.22 lentelje tiek Gusto R., tiek Gudo S. gimimo mnesiai ir dienos sutampa. I io sutapimo seka, kad ir j Zodiako enklai turi sutapti. FP apribojimus galima duomen santykiuose kontroliuoti programikai, ir tokiu bdu utikrinti auktesn duomen vientisum.
P1 PILOTAS GIM_DATA ENKLAS P2 PILOTAS ME M DI ENKLAS

6.7 pav. Dviej schem pavyzdys, kuriame schemoje P2 uduota FP yra stipresn u analogik FP i schemos P1 6.21 lentel. P1 6.22 lentel. P2

PILOTAS Blonskis J. Gustas R. Gudas S.

GIM_DATA 70/02/02 45/09/21 50/09/21

ENKLAS Litas Mergel Mergel

PILOTAS Blonskis J. Gustas R. Gudas S.

ME 70 45 50

M 02 09 09

DI 02 21 21

ENKLAS Litas Mergel Mergel

Antroji normalin forma. Santyki schema R yra antrojoje normalinje formoje (2NF), jeigu ji yra 1NF ir kiekvienas nepirminis atributas A yra tik pilnojoje funkcinje priklausomybje nuo bet kurio rakto. Schemos R atributas A vadinamas pirminiu usiduot funkcini priklausomybi aibs F atvilgiu, jeigu A eina bent vien schemos rakt. Kitu atveju jis vadinamas nepirminiu. Paimkime funkcin priklausomyb XY i aibs F+ ir atribut poaib X', X'X . Jeigu X'Y F+, tai funkcin priklausomyb XY vadiname daline, o X'Y vadiname pilnja. Jeigu X yra schemos R raktas, tai Y yra dalinje funkcinje priklausomybje nuo rakto X. Schemoje GRAFIKAS (6.8 pav.) atributai REISAS ir DATA yra pirminiai; atributas GALERJA yra dalinje FP nuo rakto REISAS,DATA , o funkcin priklausomyb REISASGALERJA yra pilnoji. Paymtina, kad kiekviena dalin FP yra tranzityvioji:

REISAS,DATA REISAS,DATA REISAS GALERJA REISAS,DATA REISAS REISAS,DATA GALERJA

(refleksyvumas) (usiduota) (projektyvumas) (tranzityvumas)

116

JUNGIMO/PROJEKCIJOS PRIKLAUSOMYBS IR RELIACINI SCHEM PROJEKTAVIMAS


F+ GRAFIKAS F

REISAS DATA
PILOTAS GALERJA Y X' X

6.8 pav. REISASGALERJA yra pilnoji funkcin priklausomyb, o REISAS,DATAGALERJA yra dalin

Kadangi REISAS,DATA GALERJA yra dalin FP nuo rakto, tai i FP yra tuo paiu ir tranzityvioji nuo rakto taip pat. ia ivada pasinaudosime vliau analizuodami auktesnes normalines formas. Schema GRAFIKAS nra 2NF, nes egzistuoja nepirminis atributas GALERJA, kuris yra dalinje funkcinje priklausomybje nuo rakto REISAS,DATA . Kita schema GRAFIKAS1 (r. 6.9 pav.) yra 2NF, nes abu nepirminiai atributai PILOTO_KODAS ir PILOTO_PAVARD yra tik pilnosiose FP nuo rakto REISAS,DATA .
F+ GRAFIKAS1 F

REISAS DATA
PILOTO_KODAS PILOTO_PAVARD A YX

6.9 pav. Santyki schemos 2NF pavyzdys

Treioji normalin forma. Santyki schema R yra treiojoje normalinje formoje (3NF), jeigu ji yra 1NF ir neegzistuoja nepirminis atributas A, kuris yra tranzityviojoje FP nuo bet kurio rakto. Nors schema GRAFIKAS1 yra 2NF, taiau nebus 3NF, nes atributas PILOTO_PAVARD yra tranzityviojoje funkcinje priklausomybje nuo rakto REISAS,DATA . Apibrime 2NF ir 3NF grieiau. Tarkime, kad: F - usiduot funkcini priklausomybi aib; F+ - funkcini priklausomybi galin aib; R - santyki schema; X - bet koks R raktas; XR; YR; A - nepirminis atributas; AX; AY .

JUNGIMO/PROJEKCIJOS PRIKLAUSOMYBS IR RELIACINI SCHEM PROJEKTAVIMAS

117

Schema R atvilgiu F yra 3NF, jeigu neegzistuoja trejetas X, Y ir A tokie, kurie tenkina ias tris slygas: 1) XY F+ 2) YA F+ 3) YX F+ 2NF yra dalinis 3NF atvejas, kai papildomai pareikalaujama, kad YX . Tarkime, kad: F - usiduot funkcini priklausomybi aib; F+ - funkcini priklausomybi galin aib; R - santyki schema; X - bet koks R raktas; XR; YR; YX; A - nepirminis atributas; AX; AY . Schema R atvilgiu F yra 2NF, jeigu neegzistuoja trejetas X, Y ir A tokie, kurie tenkina ias tris slygas: 1) XY F+ 2) YA F+ 3) YX F+ 6.9 paveikslo schemoje usiduokime: X = REISAS,DATA ; Y = PILOTO_KODAS ir A = PILOTO_PAVARD. Su ia usiduota trejuke i karto paneigiame, kad schema GRAFIKAS1 nra 3NF, nes tenkinamos visos trys slygos, taiau negalima paneigti, kad shema nra 2NF, nes usiduota usiduotoje trejukje YX . Taiau paneigti, kad schema GRAFIKAS nra 2NF, nepavyks, nes tokia trejuk, kai YX, neegzistuoja. I ia seka, kad nagrinjama schema yra 2NF. 6.10 paveiksle pateikta schema PREK1 bus 3NF, nes paneigti j nepavyks. Usiduokime, pavyzdiui, X = KOMPL_NR,VIETA ; Y = PAVAD,VIETA ir A = KIEKIS . Usiduotoje trejukje galioja KOMPL_NR,VIETA PAVAD,VIETA ; PAVAD,VIETA KIEKIS . Tokiu bdu pirmosios dvi slygos tenkinamos, taiau funkcin priklausomyb PAVAD,VIETA KOMPL_NR,VIETA yra teisinga, ir treioji slyga netenkinama. Jeigu bandysime iekoti koki nors kit trejuk X, Y, A, kuri patenkint visas tris slygas, tai padaryti nepavyks. I ia seka, kad schema PREK1 yra 3NF.
PREK1 PAVADinimas KIEKIS VIETA PAPILDomas_POymis

KOMPLekto_NR

6.10 pav. 3NF schemos pavyzdys

Dabar rodysime tok teigin: jei schema R su usiduota FP aibe F yra 3NF, tai ji yra ir 2NF. Tam pakanka parodyti, kad kiekviena dalin FP yra tranzityvioji. Tarkime, kad nepirminis atributas A yra dalinje FP nuo rakto X. Tada egzistuos X', X'X, toks, kad F |= X'A . ia bus netiesa, kad X'X, nes tokiu atveju X' bt raktas. Taip pat inome, kad AX, nes A yra nepirminis atributas, ir AY. Tokiu bdu nepirminis

118

JUNGIMO/PROJEKCIJOS PRIKLAUSOMYBS IR RELIACINI SCHEM PROJEKTAVIMAS

atributas A tranzityviai priklauso nuo rakto X, nes: X X', X'A, X'X F+, A X',X . I ia seka ivada, kad, jeigu FP yra dalin, tai ji yra ir tranzityvioji. Tuo atveju, kai nagrinjama schema R yra 3NF, usiduotoje FP aibje F nra (arba joje negalime ivesti) tranzityvij FP nuo rakto X. Jeigu taip, tai tada nra ir dalini FP. Jeigu nra dalini FP, tai nagrinjama schema yra 2NF. Paimkime DB schem R = {R1, R2, Rn}. ia Ri (i = 1, 2, ...,n); yra santyki schema. Sakysime, kad DB schema R yra 3NF, jeigu kiekviena santyki schema Ri yra 3NF. Dekompozicijos metodo esm sudaro tai, kad DB schema suprojektuojama, dekomponuojant pradin universalij schem R, kuri turi visus atributus, smulkesnes santyki schemas Ri . Dekompozicijos rezultate gauname normalizuot DB schem R. Jeigu dekompozicijos procese panaudojamos tik funkcins priklausomybs, tai gauta DB schema R gali tenkinti 3NF reikalavimus. Toliau pateiktas normalizavimo algoritmas, kuris garantuoja 3NF reikalavimus. Normalizavimo algoritmas NA3. Tarkime, kad R - universalioji schema, ir joje yra uduota FP aib F. ioje schemoje nustatome trejuk X, Y ir A, kurios dka paneigiame, kad schema R nra 3NF. ia, kaip ir anksiau, panaudoti tokie paymjimai: F - usiduot funkcini priklausomybi aib; F+ - funkcini priklausomybi galin aib; R - santyki schema; X - bet koks R raktas; XR; A - nepirminis atributas; AX; AY . Algoritmas susideda i 2 punkt. 1) Schema suskaidoma dvi naujas schemas R1 ir R2: R1 = X,A ; R2 = R-A . T.y. pirmj schem keliame rakt X ir nepirmin atribut A, o schem R2 paliekame toki pat kaip pradin R tik joje atmetame atribut A. Aiku, kad schema R1 btinai bus 3NF, o gautoje schemoje R2 i naujo usiduodame FP aib, ir patikriname ar i schema tenkina 3NF reikalavimus. Jeigu schema R2 yra 3NF, tai normalizavimo procesas baigimas ir DB schema R = {R1, R2}. Jeigu R2 netenkina 3NF reikalavimus, tai schem R2 traktuojame kaip pradin R ir kartojame 1 punkt. Suprantama, kad senojoje modifikuotoje schemoje R2 atribut skaiius bus vienu atributu sumaintas. ingsn kartojant visada pasieksime galiausiai schemos R2 3NF, o tai reikia, kad algoritmas yra baigtinis. Toliau vykdome 2 punkt. 2) Tarkime, kad po pirmo punkto kartojimo gavome DB schem R = {R1, R2, ..., Rn}. Patikriname, ar gautoje santyki schem aibje nra schem su vienodais raktais. Jeigu gavome kelias tokias schemas, tai jas apjungiame vien, paimdami bendr rakt ir visus nepirminius atributus. Tarkime, kad yra gautos dvi schemos X,A ir X,B. ias dvi schemas apjung gausime schem X,A,B . Apjungt (i dviej ar daugiau schem) schem traktuojame kaip schem R ir tikriname, ar ji yra 3NF. Jei ji nra 3NF, tai vykdome 1 punkt. Jei apjungt schem po io punkto vykdymo nebegauname, tai algoritm baigiame, o jo rezultatas yra R = {R1, R2, ..., Rm}. Paymsime t fakt , kad pateiktas algoritmas rezultate duoda DB schem, kuri tenkina pagrindin DB projektavimo - informacijos isaugojimo - kriterij (r. 6.3 sk.). I ties, kai pirmuoju punktu schem R iskaidme dvi schemas R1 ir R2, tai bet kokius i schem du santykius r1(R1) ir r2(R2) natraliosios jungties operacija sujung atstatysime universalj r(R). Jeigu, tsiant algoritm, schema R2 bt toliau dekomponuojama, gautume vietoj R2 dvi naujas, o i nauj schem bet kokius santykius sujung atstatytume santyk r2(R2). Algoritm baigus vykdyti gaunama DB schema R =

JUNGIMO/PROJEKCIJOS PRIKLAUSOMYBS IR RELIACINI SCHEM PROJEKTAVIMAS

119

{R1, R2, ..., Rn}. I DB santyki r1, r2, ..., rn galima atstatyti universalj santyk r(R). Tokiu bdu algoritmas NA3 utikrina informacijos isaugojimo kriterij. Pritaikykime NA3 schemai GRAFIKAS (r. 6.8 pav.), kuri netenkina, kaip jau buvo parodyta anksiau 2NF reikalavimus. Paymkime (6.11a pav.): X = REISAS,DATA ; Y = REISAS ; A = GALERJA . Pasirinktas trejetas tenkina visas tris slygas: 1) XY F+ ; 2) YA F+ 3) YX F+ . Pritaik algoritmo 1 punkt, gausime 3NF DB schem R = {R1, R2} (6.11b pav.). Pritaikykime NA3 schemai GRAFIKAS1 (r. 6.9 pav.), kuri netenkina 3NF reikalavimus. Paymkime (6.12a pav.): X = REISAS,DATA ; Y = PILOTO_KODAS ; A = PILOTO_PAVARD . Po dekompozicijos gausime 3NF DB schem R = {R1, R2} (6.12b pav.). Pastebsime, kad taikant algoritm NA3 rezultate visada gausime tiksliai vien santyki schem su universaliosios schemos raktais, o santyki kit schem raktai btinai skirsis nuo universaliosios shemos rakt.

a)
GRAFIKAS

b)
R1 R2

REISAS DATA
PILOTAS GALERJA A Y X

REISAS
GALERJA

REISAS DATA
PILOTAS

6.11 pav. Schemos GRAFIKAS dekomponavimas, sudarant DB schem {R1, R2}.


GRAFIKAS1 R1 R2

REISAS DATA
PILOTO_KODAS PILOTO_PAVARD A YX

PILOTO_KODAS PILOTO_PAVARD

REISAS DATA
PILOTO_KODAS

6.12 pav. Schemos GRAFIKAS1 dekomponavimas, sudarant DB schem {R1, R2}.

Ketvirtoji normalin forma. Prie nagrinjant ketvirtj normalin form (4NF) apibrime trivialisias daugiareikmes priklausomybes (DP). Schemoje R daugiareikm priklausomyb X >> Y yra trivialioji, jei : a) X,Y = R

120

JUNGIMO/PROJEKCIJOS PRIKLAUSOMYBS IR RELIACINI SCHEM PROJEKTAVIMAS

arba b)Y X . Pirmuoju atveju schemoje R be atribut i aibi X ir Y kit atribut nra, ir tada aiku, kad bet kokiame santykyje r(R) dviejuose korteuose s ir t X-komponentams sutampant Y-komponentus sukeiiant vietomis nauj korte u ir v, besiskiriani nuo s ir t, neivesime. Todl visada s,t r(R) , o tai reikia, kad prie bet koki X ir Y daugiareikm priklausomyb X >> Y bus teisinga. Antruoju atveju rodymas taip pat labai paprastas: XX (FP refleksyvumas); XY (FP projektyvumas); X >> Y (DP pirmoji aksioma). Kaip matome X >> Y visada teisinga, jeigu Y X . Paimkime santyki schem R su bet kokiu jos raktu K ir jos atribut du poaibius X, Y; X,Y R . Schema R yra 4NF, jeigu neegzistuoja netrivialij daugiareikmi priklausomybi X >> Y, kuri kairiosios puss X nepadengia schemos R bent vien rakt K. Atvirkiai: schema R nebus 4NF, jeigu schemoje R yra bent viena netrivialioji DP ir jos kairioji pus nedengia jok rakt K. Jeigu shemoje R egzistuoja netrivialioji daugiareikm priklausomyb X >> Y ir X K , tai tokia DP nemai o 4NF. Paimkime schem R su usiduotomis FP ir DP (6.10 pav.). Norint nustatyti, ar i schema yra 4NF turime pradioje usiduoti FP ir DP ir nustatyti po to, pasinaudojant funkcinmis priklausomybmis, raktus. ioje schemoje usiduot FP ir DP aib paymta raide D, o i D ivedamos priklausomybs paymtos D+. ia: 3 DP ivesta i 1 FP, panaudojant DP ivedimo pirmj aksiom; 4DP ivesta i 2 DP, panaudojant DP ivedimo antrj aksiom; 5 ir 6 DP yra trivialiosios DP, kurios nustatant schemos normalin form yra ignoruojamos. i schema nebus 4NF, nes usiduota antroji DP nra trivialioji, o ios DP kairioji pus - atributas GAMINYS - nedengia rakt GAMINYS,OPERACIJA,SANDLIS . Schema GAMYBA nebus 4NF ir dl 3 DP, kuri yra ivesta i 1 FP. i DP nra trivialioji, o jos kairioji pus GAMINYS,SANDLIS nedengia rakt GAMINYS,OPERACIJA,SANDLIS .
D+ D GAMYBA

GAMINYS OPERACIJA SANDLIS


KIEKIS

6.13 pav. Schema GAMYBA su usiduotomis FP ir DP, kuri nra 4NF

Normalizavimo algoritmas NA4. is algoritmas taikomas atvilgiu netrivialij DP. ia panaudosime tokius paymjimus: R - santyki schema; D - usiduot FP ir DP aib; D+ - galin aib DP, kuri susideda i aibs D daugiareikmi priklausomubi ir DP, kurios ivedamos i D ; K - bet koks R raktas; KR;

JUNGIMO/PROJEKCIJOS PRIKLAUSOMYBS IR RELIACINI SCHEM PROJEKTAVIMAS

121

X >> Y - netrivialioji DP; X >> Y D+ ; X,Y R ; Z = R-X-Y ; Z . Algoritmas susideda i 2 punkt. 1) Schema suskaidoma dvi naujas schemas R1 ir R2: R1 = X,Y ; R2 = R-Y . T.y. pirmj schem keliame schemos R atribut poaibius X ir Y, o schem R2 paliekame toki pat kaip pradin R tik joje atmetame atributus Y. Gautoje schemose R1 ir R2 i naujo usiduodame F- ir D- priklausomybes, ir patikriname ar ios schemos tenkina 4NF reikalavimus. Jeigu abi schemos R1 ir R2 yra 4NF, tai normalizavimo procesas baigimas ir DB schema R = {R1, R2}. Jeigu viena i i nauj schem, pavyzdiui R2, netenkina 3NF reikalavimus, tai schem R2 traktuojame kaip pradin R ir kartojame 1 punkt. Suprantama, kad senojoje modifikuotoje schemoje R2 atribut skaiius bus vienu atributu sumaintas. ingsn kartojant visada pasieksime galiausiai schemos R2 4NF, o tai reikia, kad algoritmas yra baigtinis. Toliau vykdome 2 punkt. 2) Tarkime, kad po pirmo punkto kartojimo gavome DB schem R = {R1, R2, ..., Rn}. Patikriname, ar gautoje santyki schem aibje nra schem su vienodais raktais. Jeigu gavome kelias tokias schemas, tai jas apjungiame vien, paimdami vien bendr ir visus nepirminius atributus. Tarkime, kad yra gautos dvi schemos X,A ir X,B . ias dvi schemas apjung gausime schem X,A,B . Apjungt (i dviej ar daugiau schem) schem traktuojame kaip schem R ir tikriname, ar ji yra 4NF. Jei ji nra 4NF, tai vykdome 1 punkt. Jei apjungt schem po io punkto vykdymo nebegauname, tai algoritm baigiame, o jo rezultatas yra R = {R1, R2, ..., Rm}.
a)
D+ D GAMYBA

b)

GAMINYS OPERACIJA SANDLIS


KIEKIS Y X

R1

R2

GAMINYS GAMINYS OPERACIJA SANDLIS


KIEKIS

6.14 pav. Pradins schemos GAMYBA dekomponavimas DB 4NF

Pritaikykime algoritm schemai GAMYBA (r. 6.13 pav.), kurios normalizavim pradsime nuo netrivialiosios 2 daugiareikms priklausomybs GAMINYS >> OPERACIJA (6.14a pav.), kuri trukdo 4NF. Pirmuoju algoritmo punktu iskirsime naujas schemas R1 ir R2, kurios abi yra 4NF (6.14b pav.). I ties schema R1 yra 4NF, nes ia joki netrivialij DP uduoti negalime. Schemoje R2 i parodytos FP galsime ivesti daugiareikm priklausomyb GAMINYS,SANDLIS >> KIEKIS , taiau pastaroji yra trivialioji, nes schemoje R2 be X- ir Y- atribut kit nra. Pagaliau, jeigu i DP ir nebt trivialioji, kairioji priklausomybs pus dengia vis

122

JUNGIMO/PROJEKCIJOS PRIKLAUSOMYBS IR RELIACINI SCHEM PROJEKTAVIMAS

rakt GAMINYS,SANDLIS , ir todl i DP nemaio 4NF. Kadangi kit netrivialij DP uduoti negalime, tai ia turime pripainti, kad schema R2 yra 4NF. Reikia paymti, kad tok pat rezultat btume gav, jeigu normalizavim btume pradj nuo 4 DP, kuri buvo ivesta antrja ivedimo taisykle i 2 DP. Jeigu dekomponavim btume pradj nuo 3 DP, kuri buvo ivesta pirmja ivedimo taisykle i 1 FP, tai po pirmosios iteracijos gautume t pat rezultat, kaip ir tuo atveju, jeigu algoritm NA3 taikytume 1 funkcins priklausomybs atvilgiu. Ir dar pastebsime, kad taikant NA4 pavyksta supiaustyti dekompozicijos rezultate universaliosios schemos rakt, kai tuo tarpu, taikant NA3, rezultate gaudavome DB schemos vien santyki schem su universaliosios schemos raktu. Tarkime, kad rezultatyvin DB schema yra R = {R1, R2, ..., Rn}. DB schema R yra 4NF, jeigu kiekviena jos santyki schema Ri (i = 1, 2, ..., n) yra 4NF. Duomen bazs schema R , bdama 4NF, bus ir 3NF. Kad pastarasis teiginys yra teisingas, reikia rodyti, kad schemos R kiekviena santyki schema Ri , bdama 4NF, bus ir 3NF. Pastarasis teiginys seka i to fakto, kad kiekviena FP yra DP. Tarkime, kad turime schem R, kuri yra 4NF, bet nra 3NF. Tada egzistuos nepirminis atributas A, kuris tranzityviai per atribut poaib Y priklausys nuo rakto X: XY F+ ;YA F+ ;YX F+ . Bet i YA seka Y >> A ; Y yra neraktas ir Y >> A . Todl taikant NA4 atributams Y,A bus numatyta nauja schema , ir tokiu bdu tranzityvioji FP X A bus eliminuota. Algoritmo NA4 taikymo procese eliminuosime visas tranzityviasias FP nuo rakto ir tokiu bdu utikrinsime schemos R 4NF.
Jungimo/projekcijos normalin forma. Jungimo/projekcijos normalin forma (JPNF) nustatoma naudojant jungimo/projekcijos priklausomybes (JPP). 6.2 skyrelyje buvo pateikta i priklausomybi ivedimo taisykl JPT1: JPT1) X >> Y |= *[X,Y; X,Z]; Z = R - (XY) .

i taisykl leidia ivesti JPP i DP. Dabar parodysime, koks yra ryys tarp FP ir JPP. is ryys nra tiesioginis, taiau jei 3NF dumen bazs schema R = {R1, R2, ..., Rn} yra suprojekuota, naudojant NA3 ir usiduot FP aib F, (paymsime j kaip funkcij R(F)), tai i ios DB schemos vienareikmikai seka jungimo/projekcijos priklausomyb *[ R1; R2; ...;Rn] . Paymsime i ivedimo taisykl JPT2: JPT2) R(F) |= *[ R1; R2; ...;Rn] . Analogi kai jei 4NF dumen bazs schema R = {R1, R2, ..., Rn} yra suprojekuota, naudojant NA4 ir usiduot FP ir DP aib D (paymsime j kaip funkcij R(D)), tai i ios DB schemos vienareikmikai seka jungimo/projekcijos priklausomyb *[ R1; R2; ...;Rn] . Paymsime i ivedimo taisykl JPT3: JPT3) R(D) |= *[ R1; R2; ...;Rn] .

JUNGIMO/PROJEKCIJOS PRIKLAUSOMYBS IR RELIACINI SCHEM PROJEKTAVIMAS


C+ R C

123

V
VE K KV R1 R2 R3 JP1 R1 R4 R5 R1 R6 JP2 JP3 R3 R JP4

6.15 pav. Usiduot priklausomybi aibs C ir galins priklausomybi aibs C+ pavyzdys

6.15 paveiksle parodytas usiduot priklausomybi aibs C pavyzdys. Kitos priklausomybs, kurios gali bti ivestos i C, sudaro galin priklausomybi aib C+. Naudojant taisykl JPT2 i usiduot funkcini priklausomybi ivesta JP2. Parodysime, kaip tai atlikta. Pritaik algoritmo NA3 pirmj punkt funkcins priklausomybs V atvilgiu, vliau VVE atvilgiu ir, galiausiai, KV K atvilgiu gausime tokias schemas:
R11 V R12 V VE R4 KV K R5 V KV

Algoritmo antruoju punktu apjungus dvi pirmsias schemas su bendru raktu V, gausime DB schem R(F) = {R1, R4, R5}, kuri yra 3NF :
R1 R4 R5

V
VE

KV
K

V KV

Tada, taikant taisykl JPT2, R(F) |= *[ R1; R4; ...;R5] . Priklausomyb JP3 ivesta pasinaudojant funkcine priklausomybe V ,VE : V ,VE (usiduota aibje C); V >> ,VE (pritaikyta taisykl DT1); V >> ,VE |= *[ R1; R6] (pritaikyta taisykl JPT3). Priklausomyb JP4 = *[R3; R] yra trivialioji, kadangi ji turi vien komponent vis universalij schem R. Suprantama, kad bet kokius santykius r3, r3 = R3(r(R)), ir r(R) natraliosios jungties operacija apjungus visada gausime universaliosios schemos R santyk r(R). Kadangi trivialij JPP galima uduoti daug, tai jos niekada nespecifikuojamos, taiau jomis patogu pasinaudoti apibriant jungimo/projekcijos normalin form (JPNF).

124

JUNGIMO/PROJEKCIJOS PRIKLAUSOMYBS IR RELIACINI SCHEM PROJEKTAVIMAS

Santyki schema R yra usiduot priklausomybi C atvilgiu jungimo/projekcijos normalinje formoje (penktojoje normalinje formoje), jeigu kiekviena JPP i aibs F+ (JPP = *[R1; R2; ...; Rn]) yra arba trivialioji, arba kiekvienas priklausomybs komponentas Ri (i = 1, 2, ..., n) yra schemos R super-raktas. Pagal apibrim trivialioji priklausomyb JP4 nemaio JPNF, kai tuo tarpu vis kit 6.12 paveiksle parodyt JP priklausomybi JP1, JP2 ir JP3 atvilgiu schema R nra JPNF, nes, pavyzdiui, JP1 yra netrivialioji JPP ir visi jos komponentai nedengia rakt V,KV . Normalizavimo algoritmas NA5. is algoritmas taikomas atvilgiu netrivialij JPP. ia panaudosime tokius paymjimus: R - santyki schema; C - usiduot FP, DP ir JPP aib; C+ - galin JPP aib, kuri susideda i aibs C jungimo/projekcijos priklausomubi ir JPP, kurios ivedamos i C ; K - bet koks R raktas; KR; *[R1; R2; ...; Rn] - netrivialioji JPP i aibs C+ ; Ri R ; i = 1, 2, ..., n . Algoritmas susideda i 2 punkt. 1) Schema R suskaidoma naujas schemas R1, R2, ..., Rn . Gautose schemose Ri (i = 1, 2, ..., n) i naujo usiduodame F-, D- ir JP- priklausomybes, ir patikriname ar ios schemos tenkina JPNF reikalavimus. Jeigu gautos viso santyki schemos yra JPNF, tai normalizavimo procesas baigimas ir DB schema R = {R1, R2, ..., Rn }. Jeigu viena i i nauj schem, pavyzdiui Rj, netenkina JPNF reikalavimus, tai schem Rj traktuojame kaip pradin R ir kartojame 1 punkt. Suprantama, kad schemose R1, R2, ..., Rn atribut skaiius, lyginant su schemos R atribut skaiiumi, bus sumaintas. ingsn kartojant visada pasieksime galiausiai schem JPNF, o tai reikia, kad algoritmas yra baigtinis. Toliau vykdome 2 punkt. 2) Tarkime, kad po pirmo punkto kartojimo gavome DB schem R = {R1, R2, ..., Rm}. Patikriname, ar gautoje santyki schem aibje nra schem su bedrais raktais. Jeigu gavome kelias tokias schemas, tai jas apjungiame vien, paimdami bendr rakt ir visus nepirminius atributus. Tarkime, kad yra gautos dvi schemos X,A ir X,B . ias dvi schemas apjung gausime schem X,A,B . Apjungt (i dviej ar daugiau schem) schem traktuojame kaip schem R ir tikriname, ar ji yra JPNF. Jei ji nra JPNF, tai vykdome 1 punkt. Jei apjungt schem po io punkto vykdymo nebegauname, tai algoritm baigiame, o jo rezultatas yra R = {R1, R2, ..., Rp}. Pritaik io algoritmo pirm punkt atvilgiu usiduotos JP1 (r. 6.15 pav.) gausime DB schem R = {R1, R2, R3} (6.16 pav.).
R1 V VE R2 KV K VE R3

6.16 pav. JPNF duomen bazs schema

Kadangi kiekviena santyki schema yra JPNF, tai ir visa DB schema yra JPNF. Kiekviena JPNF duomen bazs schema yra ir 4NF. is teiginys seka i JPT3 taikymo: jeigu dar aptiktume sudaryt santyki schem tarpe bent vien netrivialij DP, kuri maio 4NF, tai i jos bt galima dar ivesti netrivialij JPP, o tai reikt, kad DB schema nra JPNF. Bet mes DB buvome normalizav iki JPNF.

JUNGIMO/PROJEKCIJOS PRIKLAUSOMYBS IR RELIACINI SCHEM PROJEKTAVIMAS

125

6.5. Nenormalizuot schem trkumai


Paimkime 1NF santyki schem GRAFIKAS (6.17a pav.), kuri normalizav gausime JPNF dumen bazs schem {G1, G2}(6.17b pav.).
a)
GRAFIKAS

b)
G1 G2

REISas DATA
PILOTAS GALerja

REIS
GAL

REIS DATA
PILOTAS

6.17 pav. DB schema {G1, G2}, gauta normalizavus santyki schem GRAFIKAS

6.23 lentel.Grafikas

6.24 lentel.G1

6.25 lentel. G2

REIS
112 112 203

DATA
06/06 06/07 06/07

PILOTAS
Blonskis J. Gustas R. Blonskis J.

GAL
7 7 8

REIS
112 203

GAL
7 8

REIS
112 112 203

DATA
06/06 06/07 06/07

PILOTAS
Blonskis J. Gustas R. Blonskis J.

Paimkime pradins schemos vien egzempliori Grafikas. Po projekcijos operacijos patalpinkime duomenis schem G1 ir G2 lenteles G1 (6.24 pav.) ir G2 (6.25 pav.). ia pastebsime tokius nenormalizuotos schemos trkumus: 1) nenormalizuot schem lentelse yra bereikalingas duomen dubliavimas; 2) nenormalizuot schem lentelse pasireikia duomen modifikavimo, paalinimo ir terpimo anomalijos (nepageidautini reikiniai). Dl funkcins priklausomybs REIS GAL lentelje Grafikas pasikartojant atributo REIS reikmms pasikartos ir atributo GAL reikms, ir tai yra bereikalingas duomen dubliavimas. Po normalizavimo lentelje G1 ie duomenys nebebus dubliuojami. Su bereikalingu dubliavimu siejasi modifikavimo anomalijos. Jeigu tarkime 112 reisu skrendantiems lktuvams vietoj 7 galerjos bus priskirta kokia nors kita, pavyzdiui 6 galerja, tai tada atributo GAL reikm turt bti modifikuojama tiek kart kiek kart pasikartoja atributo REIS reikm 112. Kadangi lentelje G1 atributo REIS reikms nedubliuojamos, tai atributo GAL reikm pakanka modifikuoti vien kart. Paalinimo ir terpimo anomalijos susijusios su tuo, kad nenormalizuotoje lentelje yra saugojama nevienalyt informacija. Lentelje Grajikas saugojama informacija apie pilot darbo grafik ir apie galerj priskyrim lktuv reisams. Jeigu

126

JUNGIMO/PROJEKCIJOS PRIKLAUSOMYBS IR RELIACINI SCHEM PROJEKTAVIMAS

tarkime paalintume duomenis apie 203 reiso lktuv skrydius (duotu pavyzdiu korte <203; 06/07; Blonskis J.; 8>), tai automatikai prarastume informacij apie 203 reiso lktuvams priskirt galerj. Jeigu paliksime vien korte <203; ; ; 8> su atribut DATA ir PILOTAS neapibrta reikme , tai negalima kontroliuoti duomen bazs pilnum, nes tampa neaiku, k reikia saugojama reikm reikia - ar i atribut reikm yra neinoma ir reikia vesti trkstamus duomenis, ar einamuoju DB eksploatavimo metu i atribut reikm yra nereikalinga. Kitais odiais tariant, simbolis (paprastai ia naudojamas tarpo enklas) gauna dvigubo neapibrtumo prasm neinoma reikm - neadjekvati reikm. Normalizuotoje DB paalinus duomenis apie 203 reiso lktuv skrydius (duotu atveju lentelje G2 paalinus korte <20; 06/07; Blonskis J.>), informacija apie 203 reisui priskirt galerj iliks lentels G1 kortee <203; 8>. Analogika situacija susidaro terpiant naujus korteus nenormalizuotos schemos lentelje Grafikas. Tarkime, kad i lentel reikia terpti nauj korte <304; ; ; 6> tam, kad duomen bazje patalpinti informacij apie naujam 304 reisui prislirt 8 galerj. Taiau ia vl turime situacij, kai eksploatuojamos DB atribut reikms turi dvigub neapibrtum. ioje situacijoje, korte <304; 8> terpus lentel G1, dvigubo neapibrtumo ivengiame. Kuo auktesnis yra DB normalizavimo laipsnis, tuo dubliavimo ir anomalij lygis yra sumainamas.

6.6. Dekompozicijos metodo trkumai


Paprastai praktikoje projektuojant duomen bazes apsiriboja 3NF, kadangi ia pakanka naudoti nesunkiai suvokiamas funkcines priklausomybes. Dekompozicijos metodo trkumus inagrinsime apsiribojant 3NF. 1 trkumas: funkcini priklausomybi nuostoliai. Naudojant normalizavimo algoritm NA3 universaliajai schemai R gautos DB schemos R santyki schemose Ri (i = 1, 2, ...,n) suprojektuot FP aib FR;FR =

UF
i =1

Ri

; nra ekvivalentin pradinje schemoje

R uduot FP aibei F. Paimkime 5.3 skyrelyje nagrint pavyzd (6.18 pav.).


F+ F R SCHema POSchem VARtotojas SLAptaodis TERminalas

* * * *
A Y X

JUNGIMO/PROJEKCIJOS PRIKLAUSOMYBS IR RELIACINI SCHEM PROJEKTAVIMAS


6.18 pav. Normalizavimui pasirinkta schema R

127

Eliminuodami tranzityvij funkcin priklausomyb VAR,SLA SCH pasirinkime normalizavimui trejuk X, Y, A (r. 6.18 pav.) ir sudarykime DB schem R = {R1, R2} (6.18pav.), kuri yra 3NF. Po normalizavimo suprojektavus funkcines priklausomybes gausime j aib FR ; FR = FR1 FR2 . Taiau FR nra F dengtis, nes i FR neivesime funkcines priklausomybes SCH,SLA TER ir SCH,VAR POS . Tokiu atveju sakome, kad DB schema R nepilnai charakterizuoja FP aib F. Jeigu DB schemoje atsiranda FP nuostoliai, tai prarandame galimyb kontroliuoti duomen vientisum, duomen bazs duomen santykius neapjungiant universaliosios schemos R duomen santyk.
FR1 R1 R2 SCH POS FR2

* * * *

POS VAR SLA TER

6.19 pav. Po normalizavimo DB schemoje gaunami FP nuostoliai

2 trkumas: usidavus perteklin uduot funkcini priklausomybi aib dekompozicijoje gausime perteklini santyki schem. Paimkime schem R (6.20 pav.), kurioje uduot funkcini priklausomybi F yra perteklin: ia funkcin priklausomyb REG_DATA,FAKUL PR_KOM yra perteklin, nes ji gali bti ivesta i kitos priklausomybs FAKUL PR_KOM , jos kairij pus papildius atributu REG_DATA . Pradjus pirmuoju ingsniu normalizavim nuo perteklins priklausomybs REG_DATA,FAKUL PR_KOM gausime dvi santyki schemas R1 ir R2 (6.20b), i kuri pirmoji nra 3NF. Antruoju ingsniu R1 dekomponavus R11 ir R12, rezultate gausime DB schem {R11, R12, R2} (6.20c pav.). Gautoje DB schemoje santyki schema R12 yra perteklin. Jeigu REG_DATA,FAKUL PR_KOM nebt uduota, ir normalizavim pradtume nuo neperteklins priklausomybs FAKUL PR_KOM, tai i karto gautume DB schem {R11, R2}.

128

JUNGIMO/PROJEKCIJOS PRIKLAUSOMYBS IR RELIACINI SCHEM PROJEKTAVIMAS


a) R

* MODULIS
REGistracijos_DATA FAKULtetas PRograminis_ KOMitetas A Y X b) R1 * REG_DATA * FAKUL PR_ KOM A Y X c) R11 * FAKUL PR_ KOM R12 * REG_DATA * FAKUL R2 * MODULIS REG_DATA FAKUL R2 * MODULIS REG_DATA FAKUL

6.20 pav. Normalizavus pradin schem R su pertekline FP REG_DATA,FAKUL PR_KOM DB schemoje {R11, R12, R2} santyki schema R12 gaunama perteklin

3 trkumas: santyki schem rezultatyvinis skaiius priklauso nuo to, kokia minimali FP aib yra uduota. Paimkime t pai pradin schem R su su skirtingomis minimaliomis uduotomis FP aibmis F (6.21a pav.) ir F' (6.22a pav.); F F'. Pritaik
F a) R

* * PRojektas * Dstytojo Kodas * Dstytojo Pasas


KAtedra Mokslinis Laipsnis A Y X b) R1 * DP KA R2 * PR * DK DP ML R22 * PR * DK DP

* *
A Y X

c)

R1 * DP KA

R21 * DK ML

* *

6.21 pav. Normalizavus schem R su usiduota FP aibe F gaunama DB schema {R1, R21, R22}

JUNGIMO/PROJEKCIJOS PRIKLAUSOMYBS IR RELIACINI SCHEM PROJEKTAVIMAS


F'
a) R

129

* * PRojektas * Dstytojo Kodas * Dstytojo Pasas


KAtedra Mokslinis Laipsnis A Y X b) R1 * DP KA R2 * PR * DK DP ML

* *
A Y X

c)

R1 * DP KA

R23 * DP ML

* *

R22 * PR * DK DP R22 * PR * DK DP

d)

R3 * DP KA ML

* 6.22 pav. Normalizavus schem R su usiduota FP aibe F' gaunama DB schema {R3, R22}

algoritmo NA3 pirm punkt atvilgiu tranzityviosios priklausomybs DP KA gausime santyki schemas R1 ir R2 (6.21b pav.), o schema R2 dar nra 3NF. Pritaik algoritmo pirm punkt dar kart atvilgiu tranzityviosios priklausomybs DK ML gausime DB schem R = {R1, R21, R22} (6.21c pav.), kuri yra 3NF. Pritaikykime algoritm NA3, kai schemoje R yra uduota FP aib F'. Po algoritmo pirmojo punkto taikymo atvilgiu tranzityviosios priklausomybs DP KA gausime kaip ir anksiau santyki schemas R1 ir R2 (6.22b pav.). Pritaik algoritmo pirm punkt dar kart atvilgiu tranzityviosios priklausomybs DP ML gausime santyki schemas R1, R22 ir R23 (6.22c pav.). Kadangi schemos R1 ir R21 turi t pat rakt DP, tai ias schemas apjungiame ir gauname rezultatyvin 3NF bazs schem R' = {R3, R22} (6.22d). Gautos dvi DB schemos R ir R' skiriasi, ir schemoje R yra trys santyki schemos, o R' - dvi. Sudarant schem R santyki schemas R1 ir R21 apjungti negaljome, nes j raktai DP ir DK skyrsi, nors uduotos FP aibs F atvilgiu ie raktai yra ekvivalentiniai. treij dekompozicijos metodo trkum bt galima paalinti, jeigu algoritmo NA3 (r. 6.4 sk.) antrj punkt modifikuotume taip: 2) Tarkime, kad po pirmo punkto kartojimo gavome DB schem R = {R1, R2, ..., Rn}. Patikriname, ar gautoje santyki schem aibje nra schem su ekvivalentiniais raktais. Jeigu gavome kelias tokias schemas, tai jas apjungiame vien, paimdami bendr rakt ir visus nepirminius atributus. Tarkime, kad yra gautos dvi schemos X,A ir X',B. ias dvi schemas apjung gausime schem X,A,B . Apjungt (i dviej ar daugiau schem) schem traktuojame kaip schem R ir tikriname, ar ji yra 3NF. Jei ji nra 3NF, tai

130

JUNGIMO/PROJEKCIJOS PRIKLAUSOMYBS IR RELIACINI SCHEM PROJEKTAVIMAS

vykdome 1 punkt. Jei apjungt schem po io punkto vykdymo nebegauname, tai algoritm baigiame, o jo rezultatas yra R = {R1, R2, ..., Rm}. Suprantama, kad algoritmas po itokio modifikavimo tapt sudtingesnis, nes antruoju algoritmo punktu tekt nustatyti rakt ekvivalentikum, o tam savo ruotu reikt usiduot FP aib F suskirstyti FP ekvivalentikumo klases (r. 4.3 sk.). 4 trkumas: DB projekto nevienareikmikumas. Tame paiame pavyzdyje (r. 6.21 pav.), kur uduota FP aib yra F, jeigu normalizavim pradsime ne nuo dalins priklausomybs PR,DP KA, o nuo kitos dalins PR,DK KA , tai vietoj DB schemos R (6.21c pav.) gausime schem R' (6.22d pav.).

6.7. Pilnosios reliacins duomen bazs.


Paimkime reliacins duomen bazs (RDB) schem R (R = {R1, R2, ...,Rn}); ir usiduot FP aib F. RDB R atvilgiu F yra pilnoji, jeigu tenkina keturis reikalavimus: 1) aib F pilnai charakterizuoja schema R; 2) kiekviena santyki schema Ri yra 3NF; i = 1, 2, ..., n . 3) aibs F atvilgiu negalime sudaryti kit RDB schem su maesniu santyki schem skaiiumi toki, kad tenkint pirmuosius du reikalavimus; 4) schema R tenkina pagrindin DB projektavimo kriterij.

Paimkime usiduot FP aib F ir DB schem R; R = {R1, R2, ...,Rn}. Sakysime, kad schema R pilnai charakterizuoja FP aib F, jeigu F {K Ri Ri R; K schemos Ri bet koks raktas} . 6.4 skyrelyje buvo parodyta, kad normalizavimo algoritmas NA3 garantuoja schemos R treij normalin form ir utikrina pagrindinio kriterijaus reikalavimus, taiau, kaip buvo parodyta 6.6 skyrelyje, netenkina pirmojo, o tuo paiu ir treiojo reikalavim. Toliau pateikiamas RDB sintezs metodas, kuris tenkina visus keturis RDB reikalavimus.

6.8. Duomen bazi projektavimo sintezs metodas


is metodas pagrstas struktrini dengi (r. 5 sk.) panaudojimu. Universaliojoje santyki schemoje R uduotos funkcini priklausomybi (UFP) aibs F struktrin dengt Q buvome apibr taip: struktrini tip aib Q vadinama UFP aibs F struktrine dengtimi, jeigu F Q ir bet kuriuose dviejuose struktriniuose tipuose Qi ir Qj i Q neegzistuoja dvi skirtingos kairiosios aibs Ri ir Rj tokios, kad Ri Rj. Kitais odiais tariant, dviejuose skirtinguose struktriniuose tipuose Qi ir Qj negali egzistuoti atatinkamos dvi kairiosios aibs Ri ir Rj, kurios priklauso tai paiai ekvivalentikumo klasei eF(X), Q F; X R; EF(X) . Tame paiame skyriuje buvo parodyta, kaip galima i FP aibs F sukonstruoti jos sudtini funkcini priklausomybi dengt G ir po

JUNGIMO/PROJEKCIJOS PRIKLAUSOMYBS IR RELIACINI SCHEM PROJEKTAVIMAS

131

to struktrin dengt Q tokias, kad bt patenkintas dengi reikalavimas F G Q. Parodyta, kad struktrins dengties konstravim galima atlikti redukavimo kairiosiomis aibmis taisykle RKAT. Perteklini kairij aibi eliminavimo taisykle PKAET galima paalinti perteklines kairisias aibes. Naudojant struktrini dengi minimizavimo taisykl SDMT galima pilnai minimizuoti struktrin dengt Q, nustatant i FP aibs F tiesiogines FP. Kad supaprastinti taisykls SDMT euristik tiesioginms FP aptikti vestos apibedrinanij ir detalij struktrini tip svokos. Struktrini dengi tiesioginis konstravimas naudojant RKAT, PKAET, RDAT1, RDAT2 ir SDMT turi tok privalum, kad konstruojant struktrines dengtis nebtina pareikalauti, kad FP aib F bt uduota universaliojoje schemoje R, nes pastaroji praktiniu poiriu gali bti pakankamai didel ir i anksto prie pradedant DB projektavim net neinoma. Natralu, kad FP aib yra paskirstyta (nustatoma renkant informacij i skirting vartotoj) ir gali bti nuolat kaupiama analizuojant informacijos sistemos vis vartotoj informacijos poreikius ir iuos poreikius apibendrinant. Tarkime, kad pradiniu momentu turime nustat tik dvi funkcines priklausomybes LA,DK LA,DP ir LA,DP LA,DK (r. 5.9 pav.), kurias traktuojame, kaip sudtines FP. Kadangi i priklausomybi kairiosios aibs yra ekvivalentins, t.y. LA,DK LA,DP , tai taisykle RKAT ios trys SFP bus apjungtos vien (U,LA; LA,DK; LA,DP) LA,DK,DP,U . Po to taisykle RDAT1 visi deiniosios aibs atributai bus paalinti, ir gausime priklausomyb Q = (LA,DK; LA,DP). Tarkime, kad po kurio laiko sukaupme dar dvi funkcines priklausomybes DK DP ir DP DK ir sudarme dar vien sudtin priklausomyb O = (DP; DK). Dabar turime sudar struktrinius tipus O ir Q (r. 6.23a pav.), taiau ia LA,DK LA,DP . i tiesiogin FP seka i detaliojo tipo O egzistavimo, kur DP DK . Po kairiosios aibs LA,DK eliminavimo gausime nauj struktrin dengt (6.23b pav.), kurioje vietoj tipo Q panaudotas tipas Q'.
a) LA DP DK DK O LA DP b) LA DP

DP Q

DK O

Q'

6.23 pav. Struktrinis tipas Q' gautas minimizuojant Q

RDB sintezs metodo algoritmas SINTEZ susideda i trij punkt: 1) I duotos FP aibs F sudaroma minimali redukuota struktrin dengtis Q = {Q1, Q2, ..., Qn}. 2) Kiekvienam struktriniam tipui Qi i aibs Q numatome po vien santyki schem Ri ; i = 1, 2, ..., n . 3) Antruoju punktu gautas schemas Ri papildome dar santyki schema R , skirta universliajam struktriniam tipui, jeigu tokios schemos aibje {R1, R2, ..., Rn,} nebuvo. Sudaryta RDB schema yra R; R = {R1, R2, ..., Rn, R}. Paimkime i 5 skyriaus dalykins srities (r. 5.10, 5.11 pav.) minimalios redukuotos struktrins dengties pavyzd (6.24a pav.) ir sudarykime algoritmo SINTEZ antruoju

132

JUNGIMO/PROJEKCIJOS PRIKLAUSOMYBS IR RELIACINI SCHEM PROJEKTAVIMAS

punktu RDB schem (6.24b pav.). Kiekvienai santyki schemai Ri (i = 1, 2, ..., n) galima paymti rakt aib {Kij; j = 1, 2, ..., m}: raktas Kij yra priskiriamas kiekvienai struktrinio tipo Qi kairiajai aibei Kj. ia taip pat parodyta natralioji charakteringoji FP aib G, kuri sudaryta naudojant taisykl NCHT (r. 5.3 sk.). Visos funkcins priklausomybs bus raktins, t. y. i FP kairiosios puss bus raktai (o ne super-raktai), nes kiekviena sudtin FP Qi buvo redukuota kairiosiomis aibmis.
a) PS PN Q1 LA VI LA U LA DK U DK LA Q2 TM Q3

PP b) R1 R2 R3 * U * LA * TM PP

* PS * PN DK

* ** * * *

LA VI U DK

6.24 pav. RDB schema {R1, R2, R3} gauta i ST aibs {Q1, Q2, Q3}

Algoritmo treiajame punkte vesta universliosios schemos svoka, kuri yra analogika universalaus struktrinio tipo svokai. Apibrime universliojo ST svok. Pateiksime universaliojo struktrinio tipo apibrim. Paymkime: F FP aib i kurios buvo sintezuota struktrin dengtis; eF(Q) - struktrinio tipo Q atribut kairij poaibi R aib (R eF(Q)); EF(Q) struktrinio tipo Q FP ekvivalentikumo klas. Struktrinis tipas Q (QQ) bus universalusis, jeigu i F galima ivesti FP aib {R A ; R eF(Q); A struktrins dengties atributas}. Pateiksime dar dviej projektavimo prasme nauding savok apibrimus. Struktrinis tipas Q su kairiosiomis aibmis {Rj; j = 1, 2, ,m} bus detalusis atvilgiu tipo O sukairiosiomis aibmis {Ri; i = 1, 2, ,n}, jeigu jeigu egzistuoja X, Ri ir Rj tokie, kad X Rj, (X Ri) t.y., jeigu egzistuoja struktrinio tipo Q kairiosios aibs Ri poaibis X, ekvivalentikas struktrinio tipo O kairiajai aibei Rj. Apibrime universliojo detaliojo ST svok. Tarkime, kad turime ST tip aib Q; Q = {Q1, Q2, ..., Qn}. Struktrinis tipas Qy su kairiosiomis aibmis {Rj; j = 1, 2, ..., m} yra universalusis detalusis, jeigu aibje {Rj; j = 1, 2, ..., m} egzistuoja kairioji aib Rj ir kiekvienas tipas Qx i aibs Q turi kairij aib Ri toki, kad Ri Y; YRj ; {Rj; j = 1, 2, ..., m}. i iorin priklausomyb ymsime Qy Qx ir sakysime, kad struktrinis tipas Qy detalizuoja Qx, o struktrinis tipas Qx apibendrina Qy . Analogikai apibrime universaliosios detalizuotos schemos svok. Tarkime, kad turime DB schem R; R = {R1, R2, ..., Rn}. Schema Ry su nustatyta rakt aibe {Kj; j = 1, 2, ..., m} yra universalioji detalizuota, jeigu rakt aibje {Kj; j = 1, 2, ..., m} egzistuoja

JUNGIMO/PROJEKCIJOS PRIKLAUSOMYBS IR RELIACINI SCHEM PROJEKTAVIMAS

133

raktas Kj ir kiekvienoje schemoje Rx i aibs R egzistuoja raktas Kx tokie, kad Kx Y; YKj . i iorin priklausomyb ymsime Ry Rx ir sakysime, kad santyki schema Ry detalizuoja Rx, o schema Rx apibendrina Ry . Detalizavimo priklausomyb abiem atvejais tiek struktrini tip, tiek DB schem atvejais - pasiymi refleksyvumu ir tranzityvumu, t.y. R R ir i R1 R2 R3 seka R1 R3 . ia rodysime teigin, kad kiekvienas universalusis detalizuotas struktrinis tipas yra universalusis. Jeigu struktrinis tipas Qy i Q su kairiosiomis aibmis {Rj; j = 1, 2, ..., m} yra universalusis detalusis, kuris kiekvien tip Qx i aibs Q detalizuoja, tai Qx turi kairij aib Rx toki, kad Rx Y; YRj . Tai reikia, kad i atstatytos charakteringosios FP aibs F galima ivesti priklausomybes Rx Y ir Y Rx . Bet Rj Y (FP projektyvumas), o Y Rx . Tarkime, kad V yra tipo Qx deinioji aib o atributas A paimtas i V . Tada i FP tranzityvumo savybs seka, kad Rj A. Jeigu V usiduosime Qy deinj aib, ir AV , tai i karto gausime Rj A. Priklausomyb Rj A ivesime ir tais atvejais, kai A paimsime i tip Qy arba Qx bet kurios kairiosios aibs. Tai reikia, kad vis FP aib {Rj A; Rj eF(Qy); A struktrins dengties atributas} galima ivesti i F. Ms pavyzdyje Q3 Q3 Q2 Q1 (6.24 pav.). Kadangi Q3 yra universalusis detalusis, o tuo paiu ir universalusis struktrinis tipas, tai algoritmo ketvirtuoju punktu papildomos schemos vesti nereikjo. Paimkime struktrins dengties kit pavyzd, nagrint 5.2 skyrelyje (6.25 pav.). ioje struktrinje dengtyje neaptiksime universaliojo detaliojo tipo, kuris detalizuoja vis dengt. Pavyzdiui, Q1 Q2 , nes {POS} {POS, TER}, taiau Q1 nedetalizuoja Q3 ir Q4. Taiau tipas Q1 yra universalusis, ir tai galime pastebti neatstatinjant vis charakteringj FP aib, o pasinaudojant FP ivedimo refleksyvumo ir kaupimo taisyklmis (r. 3.2 ir 3.4 sk.): POS, TER POS, TER (refleksyvumas); POS, TER VAR, SLA (duota); POS, TER POS, TER, VAR, SLA (kaupimas); POS, TER POS, TER, VAR, SLA, SCH (kaupimas);
VAR
SLA POS TER SCH SCH VAR Q4

Q1

POS
Q2

SLA

Q3

SCH

TER

POS

6.25 pav . ioje struktrinje dengtyje stuktrinis tipas Q1 yra universalusis

Paimkime kit pavyzd, kai sintezs treiuoju punktu btina vesti papildom santyki schem. io pavyzdio dalykin sritis buvo nagrinta 6.1 skyrelyje. I funkcini priklausomybi sudarius struktrin dengt (6.26a pav.), algoritmo SINTEZ antruoju ir treiuoju punktais gausime DB schem (6.26b pav.), kuri sudaro santyki schemos R ir R2. Ketvirtuoju algoritmo punktu struktrin dengt papildius universaliuoju tipu Q3 gausime DB schem {R1, R2, R3}.

134
a) KArv

JUNGIMO/PROJEKCIJOS PRIKLAUSOMYBS IR RELIACINI SCHEM PROJEKTAVIMAS


VEisl RAcijonas Q1 Q2 b) R1 R2

* KA
VE

* VE * RA
RI

VEisl c) VE KA Q1 RA Q2

RIebumas d) VE KA R1 R2 R3

* KA
Q3 VE

* VE * RA
RI

* KA * RA

VE

RI

6.26 pav . Struktrin dengtis, papildyta universaliuoju struktriniu tipu Q3

Paimkime dar vien dalykins srities pavyzd (r. 6.1 pav.), ypating tuo, kad nevisi atributai yra apimti funkcinmis priklausomybmis arba, kitais odiais tariant, dalykinje srityje egzistuoja laisvj atribut. iame pavyzdyje galima sudaryti tik vien FP ekvivalentikumo klas Q1 (6.27a pav.) ir atributas OPE netrauktas jokios FP kairij ar deinij pus. Sudarant universalj tip Q (6.27b pav.) tipo Q1 kairij aib {GAM, SAN} teko papildyti laisvuoju atributu OPE, ir tokiu bdu DB schema bus R = {R1, R} (6.27c pav.). Jeigu laisvj atribut bt daugiau, tai juos visus reikt jungti universalaus struktrinio tipo deinij aib.
a) b) OPE GAM SAN Q1 Q c)

GAMinys SANdlis Q1

OPEracija

GAM SAN

R1

* GAM * SAN
KIEKIS

* OPE * GAM * SAN

KIEKIS

KIEKIS

6.27 pav . Universalusis struktrinis tipas Q2 sudarytas prijungiant laisvj atribut OPE

Papildomos universaliojo struktrinio tipo vedimas reikalingas, kad patenkinti pagrindin DB projektavimo kriterij. Dekompozicijos metode, kaip inome i 6.4 skyrelio, taikant normalizavimo algoritm NA3 sudarytoje DB schemoje visada gausime vien santyki schem su universaliuoju raktu, o tai garantuoja, kad DB schema utikrins pagrindin informacijos isaugojimo kriterij. io kriterijaus utikrinimui sintezs metode vietoj santyki schemos su universaliuoju raktu vedme papildom universalj struktrin tip.

JUNGIMO/PROJEKCIJOS PRIKLAUSOMYBS IR RELIACINI SCHEM PROJEKTAVIMAS

135

Skirtumas ia yra tik toks, kad panaudojant universalj struktrin tip papildomos santyki schemos, kuri algoritme SINTEZ buvome paymj R, raktas gali gautis maesnis, lyginant j su universaliuoju raktu. Toliau parodysime, kaip galima supjaustyti papildom schem R, panaudojant JP priklausomybes, uduodamas schemoje R. Paimkime i ankstesnio pavyzdio papildomai vest universalj struktrin tip Q ir jame panaudot atribut aibje uduokime JP priklausomyb. Suprantama, kad ia mes paimame i jo sudaryt santyki schem R, kurios visi atributai yra raktiniai.
a) R * OPE * GAM * SAN S1 S2 JP 6.28pav . Universaliojo struktrinio tipo reliacin schema R dekomponuota dvi santyki schemas S1 ir S2 b) S1 * GAM * SAN S2

* GAM * OPE

Schem R panaudojant normalizavimo algoritm NA5 (r. 6.4 sk.) dekomponuosime be informacijos nuostoli (r.6.3 sk.) dvi schemas S1 ir S2. Kadangi schem R1 (r. 6.27 pav.) ir S1 raktai sutampa, tai pagal algoritm NA5 ias schemas galima apjungti, ir DB schemoje {R1, R} vietoj R panaudosime S2. Rezultatyvin DB schema bus {R1, S2}. Sintezs metodas utikrina pilnj RDB reikalavimus: 1) aib F pilnai charakterizuoja schema R; 2) kiekviena santyki schema Ri yra 3NF; 3) aibs F atvilgiu negalime sudaryti kit RDB schem su maesniu santyki schem skaiiumi toki, kad tenkint pirmuosius du reikalavimus; 4) schema R tenkina pagrindin DB projektavimo kriterij. I i keturi reikalavim ketvirtj utikriname panaudojant DB schemoje papildom universalj struktrin tip, kuris, kaip buvo k tik parodyta, gali bti dekomponuojamas. Charakterizuosime sintezs metod pirmaisiais trimis poiriais. Palikime tokius paymjimus: F FP aib, i kurios buvo sintezuota minimali ir redukuota struktrin dengtis Q; eF(Q) - struktrinio tipo Q (Q Q) atribut kairij poaibi K aib (K eF(Q)); EF(Q) struktrinio tipo Q FP ekvivalentikumo klas; G natralioji charakteringoji FP aib, atstatyta (r. 5.3 sk.) i struktrins dengties Q. Sakykime, kad i F tiesioginiu bdu, t. y. naudojant sudtini FP sudarymo taisykl SFPT (r. 5.1 sk.) ir vliau nuosekliai taikant SFP pertvarkymo taisykles (r. 5.2 sk.) buvo sudaryta SFP redukuota ir minimali struktrin dengtis Q. Kadangi SFPT ir SFP pertvarkymo taisykls yra patikimos, tai Q F. Sakykime, kad i Q algoritmo SINTEZ antruoju punktu sudarme DB schem R; R = {R1, R2, ..., Rn}. i schema pilnai charakterizuos F. Tai seka i toki samprotavim. Jei i Q panaudojant patikim natraliosios charakteringosios aibs sudarymo taisykl NCHT (r. 5.3 sk.) sudarysime

136

JUNGIMO/PROJEKCIJOS PRIKLAUSOMYBS IR RELIACINI SCHEM PROJEKTAVIMAS

DB schemos R FP aib G, tai G Q. Shema R charakterizuos G, nes G {K Ri Ri R; K santyki schemos Ri bet koks raktas i aibs eF(Q)}. Bet i Q F ir G Q seka G F. Kadangi R charakterizuoja G, tai tuo paiu charakterizuoja ir F. Tokiu bdu sintezs metodu sudaryta DB schema tenkina pilnj DB pirmj reikalavim. Antrasis reikalavimas tenkinamas taip pat. Natraliosios charakteringosios aibs G visos funkcins priklausomybs yra raktins, t. y. i FP kairiosios puss yra raktai, nes kiekviena sudtin FP Q buvo redukuota kairiosiomis aibmis. Kadangi visos FP i aibs G yra tik raktins, tai j tarpe nebus nei vienos tranzityviosios FP nuo rakto, o tai reikia, kad kiekviena Ri ir tuo paiu R yra 3NF. Sudaryta R yra minimali, t. y. negalima sudaryti kit DB schem su maesniu santyki schem skaiiumi. Antruoju algoritmo SINTEZ punktu kiekvienam struktriniam tipui Q buvome paskyr po vien santyki schem Ri . Paymkime struktrins dengties Q ekvivalentikumo klasi aib EF(Q); EF(Q) = { EF(Q) | Q Q} Taiau struktrinje dengtyje Q ekvivalentikumo klasi skaiius EF(Q) negali bti sumaintas, nes SFP aib Q algoritmo SINTEZ pirmuoju punktu buvo redukuota kairiosiomis aibmis, dl ko SFP aib Q tapo struktrine dengtimi, kurioje struktrini tip skaii sumainti nebegalima. I ia seka , kad DB schema R yra minimali. Kadangi prie tai buvome parod, kad R tenkina abu pirmuosius pilnj DB reikalavimus, o santyki schem skaii schemoje R sumainti negalima, tai i ia seka, kad R tenkina ir treij reikalavim. Sintezs metodas turi t privalum, lyginant metod su dekompozicijos metodu, kad jis garantuoja DB pilnumo kriterij. Be to, abu metodai tenkina pagrindin informacijos isaugojimo kriterij (r. 6.3 sk.). Sintezs metodo trkumas, lyginant j su dekompozicijos metodu, yra tas, kad sintezs keliu suprojektuota DB gali turti daugiau santyki schem. Pavyzdiui, sintezs keliu i struktrins dengties (r. 6.25 pav.) gausime keturias santyki schemas, kai tuo tarpu dekompozicijos metodu tai paiai dalykinei sriiai sudaryta RDB turs tik dvi schemas.

DUOMEN BAZI RELIACIN TEORIJA

LITERATRA
1. A. Dogac, B. Yuruten, S. Spacapietra. A generalized expert system for database design. IEEE Transactions on Software Engineering, 18(4), 1989, pp. 479-491. 2. R.H.L. Chiang. A knowledge-based system for perfoming reverse engineering of relational databases. Decision Support Systems 13, 1995, pp. 295-312. 3. B.Paradauskas. Conceptual Object-Relationship-Property Approach: Three Different Interpretations of the Same Entity. INFORMATICA, 6(4), 1995, pp. 497522. 4. American National Standarts Institute (ANSI) Database Commitee (X3H2). Database Language SQL3. J.Melton, Editor. August 1994. 5. C. Storey. Understanding Semantic Relationships. VLDB Journal, 2, 1993, pp. 455-488. 6. R. Chaffin, D.J. Herrman. The nature of semantic relations: A comparison of two approaches. In: M. Evens (ed.). Relational Models of the Lexicon: Representing Knowledge in Semantic Networks. New York: Cambridge University Press, 1988, pp. 289-334. 7. Bubenko J. Extending the Scope of Information Modelling. Fourth Internacional Workshop on the Deductive Approach to Information Systems and Databases, Lloret Costa Brava, Universitat Politecnica de Catalunya, 1993. 8. R.Gustas. Semantic and Pragmatic Dependencies of Information Systems. Monograph.- Technologija,Kaunas,1997,p. 273. 9. F3 Consortium,. F3 Reference Manual, ESPRIT Project 6612, Swedish Institute for Systems Development, Electrum 212, S-16440, Kista, Sweden, 1994. 10. Boman, J. Bubenko, jr., P. Johannesson, B. Wangler. Models, Concepts and Information: an Introduction to Conceptual Modelling for Information Systems Development.- Royal Institute of Technology and Stockholm University, Sweden, Oktober 1993. 11. ISO. Concepts and Terminology for the Conceptual Schema and the Information base. ISO/TC9/SC5/WG3, 1982. 12. P.P.S. Chen. The Entity-Relationship Model - Towards a Unified View of Data. ACM Transactions on Database Systems, vol. 1,no. 1,pp. 9-36, 1976. 13. M.L. Brodie. On the Development of Data Models. In "On Conceptual Modelling Perspectives from Artificial Intelligence, Databases and Programming Languages", pp. 19-47, Springer Verlag, New York, 1984. 14. R. Hull. A Survey of Theoretical Research on Typed Complex Database Objects. In Databases, J. Paredaens (Ed), Academic Press, London, 1987. 15. A. Dardenne, A. van Lamsweerde, S. Fickas. Goal-directed Requirments Acquisition. In "Science of Compiuter Programing", vol. 20, pp. 3-50, 1993. 16. B. Wangler. Contributions to Functional Requirements Modelling. Doctoral Thesis, Royal Institute of Technology and Stockholm University, Sweden, 1993. 17. DeMarco. Structured Analysis and Systems Specifications. Englewood Cliffs, New Jersey: Prentice Hall, 1979.

138

LITERATRA

18. E. Yourdon. Modern Structured Analysis. Englewood Cliffs,New Jersey: Yourdon Press, 1989. 19. G. Booch. Object-Oriented Design. Redwood City, Calif.: Benjamin/Cummings, 1991 20. J. Rumbaugh, et al. Object-Oriented Modeling and Design. Englewood Cliffs, New Jersey: Prentice-Hall International, Inc., 1991. 21. D. Maier. The Theory of Relational Databases. Compiuter Science Press Rockville, 1983. 22. B. Paradauskas. Conceptual and Relational Schemes of Entities. Informatica, vol. 4, no. 3-4, pp. 351-359, Vilnius, 1993. 23. R.J. Brachman and H.J. Levesque, eds. Readings in Knowledge Representation. Morgan Kaufmann, Los Altos, CA, 1985. 24. Sciore. The Universal Instance and Database Design. Doctoral Diss., Princeton Univ., Priceton, NJ, 1980. 25. E. Ambrazeviius, B. Paradauskas. The Method of Knowlegde Representation for Semiotical Design of Complex System Models. Cybernetics Problems: Situational Management and Semiotical Modelling, State Academy of Sciences, Mocsow, pp. 313, ( in Russian). 26. B. Paradauskas, A. Vainauskas. Koncepcini schem procedrin interpretacija. Konferencijos Informacins technologijos 97 praneim mediaga. Technologija. 27. I.B.Zdonik and D.Maier. Readings in Object-Oriented Databases. Morgan Kaufmann, 1989. 28. B.Paradauskas. Conceptual Object-Relationship-Property Approach: Three Different Interpretations of the Same Entity. INFORMATICA, Vol.6, No.4, 497-522. 29. American National Standarts Institute (ANSI) Database Commitee (X3H2). Database Language SQL3. J.Melton, Editor. August 1994. 30. R. Butkien, B. Paradauskas. Federatyvinis informacijos integravimo poiris.Konferencijos Integruotosios projektavimo ir gamybos sistemos praneim mediaga.- Kaunas,1997, 10 p. 31. W. Litwin. Malpha: A Relational Multidatabase Manipulation language. In Proc. 1th IEEE Int. Conf. on Data Ingineering, Los Angeles, February 1984, IEEE. 32. Spacapietra S., and Parent C. View integration: a step forward in solving structural conflicts. IEEE Transactions on Data and Knowledge Engineering,1992. 33. Litwin, L.Mark, and N.Roussopoulos. Interoperatability of multiple autonomous databases. ACM Computing Surveys, 1990. 34. Y.Papakonstantinou, H.Garcia-Molina, and J.Widom. Object exchange across heterogeneos information sources. In IEEE Internacional Conference on Data Enginearing, March 1995. 35. Davis A.M. Software Requirements: Analysis and Specification. Englewood Cliffs, N.J.:Prentice-Hall, Inc., 1990.

You might also like