Duomenų bazės kūrimo technologija
5 (100%) 1 vote

Duomenų bazės kūrimo technologija

Vilniaus universitetas

Komunikacijos fakultetas

Informacijos ir komunikacijos katedra

Andrius Jurgelevičius,

Verslo informacijos vadybos

programos studentas

DUOMENŲ BAZIŲ KŪRIMO TECHNOLOGIJA

KURSINIS DARBAS

Vadovas doc. dr. P. Abarius

Vilnius, 2004

TURINYS

Įvadas 3

Duomenų bazės samprata 5

1. 1. Duomenų bazės sąvoka, pagrindinės funkcijos 5

1. 2. Duomenų bazių valdymo sistemos, jų funkcijos 6

2. Duomenų bazės projektavimas 8

2. 1. Duomenų bazės modelių tipai 8

2. 2. SQL kalba 9

2. 3. Reliacinis duomenų bazės modelis 11

2. 4. Reliacinė algebra 16

2. 5. Reliaciniai skaičiavimai 18

2. 6. Duomenų bazės normalizavimas, norminės formos 20

2. 7. Konceptualinis duomenų bazės modeliavimas 23

2. 8. Trijų lygių duomenų bazės architektūros projektavimas 25

3. Duomenų bazės kūrimas 29

3. 1. Duomenų bazės kūrimo žingsniai 29

Išvados 32

Bibliografinių nuorodų sąrašas 33

ĮVADAS

Teorija apie duomenų bazių struktūrą, jos valdymo sistemą, duomenų bazių praktinį pritaikymą įvairiausiose veiklos sferose yra ganėtinai jauna žinių sritis – ji gyvuoja šiek tiek daugiau nei 30 metų, tačiau po pirmųjų eksperementalių duomenų bazių atsiradimo 1950-aisiais metais industrinis pasaulis suprato jų svarbą. Mokslo sritis apie duomenų bazes pradėjo sparčiai vystytis. Šiandien be duomenų bazių sunku įsivaizduoti šiuolaikinį informacijos technologijų pasaulį. Jos naudojamos komercijos, valdžios, karinėse ir daugelyje kitų veiklos sferų, nuo aukščiausių valdžios instancijų iki didmeninės ir mažmeninės prekybos parduotuvių. Informacinės sistemos, naudojančios duomenų bazes, leido atsikratyti tokių problemų, kaip duomenų perteklius, silpna jų kontrolė, problematiškas priėjimas prie saugomos informacijos. Centralizuotose duomenų bazėse lengva realizuoti duomenų pakeitimus, sukurti ryšius tarp atskirų duomenų elementų. Duomenų bazių naudojimas organizacijai suteikė am tikrų privalumų:

Visi duomenys surinkti vienoje integruotoje saugykloje, į kurią gali patogiai kreiptis įvairūs vartotojai;

Išvengiama daugkartinio tų pačių duomenų įvedimo ir dubliavimo įvairiose programose;

Didesnis saugumo laipsnis;

Mažesnis perteklinių duomenų kiekis.

Mano darbo tikslas – nustatyti duomenų bazių kūrimo technologijų ypatumus. Darbe bus išanalizuoti svarbiausi duomenų planavimo, projektavimo klausimai, duomenų bazių modeliavimo principai, duomenų bazių įdiegimo problematika. Taip pat dėmesys bus skirtas ir problemoms ir nesėkmėms, atsirandančioms kuriant ir naudojant duomenų bazes, o taip pat ir patarimai kaip efektyviausiai pašalinti kilusius keblumus.

Duomenų bazės – tai nauja informacinių technologijų atšaka, sukurta einamiesiems duomenų saugojimo ir naudojimo uždaviniams spręsti. Kuriant vieningą duomenų bazę atsižvelgiama į organizacijos funkcinių sričių įvairovę, ji užtikrina vidinių ir išorinių ryšių palaikymą tarp įvairių funkcinės veiklos sričių. Šiuolaikinės organizacijos susiduria su žiauria konkurencija ne tik tarp savo šalies įmonių, bet ir tarptautiniu mastu. Todėl bet kurios organizacijoje naudojamos informacinės sistemos svarbiausias tikslas turėtų būti duomenų pavertimas informacija ir žiniomis, nes tik informacija ir žinios suteikia organizacijai konkurencinį pranašumą. Informacija ir žinios – tai organizacijos kompetencijos pagrindas, tai tie ištekliai, kurios organizacija naudoja gamindama aukštos kokybės prekes bei paslaugas ir kurių negali, arba beveik negali dubliuoti jokia kita konkurentinė organizacija. Kaupti duomenis ir iš jų gauti informaciją bei žinias stengiasi kiekviena organizacija. Būtent duomenų bazės leidžia sukaupti milžiniškus duomenų kiekius ir garantuoja lengvą priėjimą prie jų.

Kaip sukurti duomenų bazę, kurią būtų galima sėkmingai įdiegti skirtingos paskirties organizacijose, kokios duomenų bazių projektavimo pasirinkimo galimybės, kaip pasirinkti tinkamus projektavimo etapus, šios ir kitos problemos, reikalaujančios gilesnio nagrinėjimo, bus analizuojamos mano darbe.

1. DUOMENŲ BAZĖS SAMPRATA

1. 1. Duomenų bazės sąvoka, pagrindinės funkcijos

Duomenų baze galima vadinti kartu saugomų ir tarpusavyje susijusių duomenų visumą, kuriems apdoroti pasitelkiamos programos. Duomenų bazė – tai duomenų hierarchijos aukščiausias lygmuo. Tai specialių būdu organizuotas integruotų duomenų visuos saugojimas, kuris vartotojui užtikrina patogią sąveiką ir greitą bei lengvą prieigą prie sukauptų duomenų. Kitaip tariant, duomenų bazė – tai ne kas kita, kaip dideli kompiuterio atminties įrenginiuose saugomi logiškai tarpusavyje susietų duomenų masyvų rinkiniai, iš kurių lengvai ir greitai
iškviečiami bei pateikiami norimu pavidalu valdomi duomenys, panaudojant programinę įrangą.

Kai kalbama apie visumą duomenų bazę sudarančių ir kartu veikiančių elementų, ji suvokiama kaip automatizuota sistema, kurią sudaro duomenys, programinė ir techninė įranga, papildomos priemonės, tokios, kaip kalbos priemonės, programavimo, duomenų aprašymo, užklausų priemonės, metodinės priemonės, pavyzdžiui, rekomendacijos ir instrukcijos apie duomenų bazės sukūrimą ir funkcionavimą, taipogi ir kiti personalo atstovai, kurių pagrindinė užduotis – duomenų bazės darbo kontrolė, ir visa užtikrina duomenų kaupimą, saugojimą, atnaujinimą, paiešką bei pateikimą vartotojui. Duomenų bazė – tai dinaminis objektas, kur saugomų duomenų reikšmės yra keičiamos, norint atspindėti realią tam tikros dalykinės srities padėtį.

Duomenų bazė gali būti išdėstyta viename kompiuteryje, taip vadinama, vietinė duomenų bazė, arba paskirstyta keliuose, sujungtuose į tinklą kompiuteriuose – paskirstyta duomenų bazė. Vietinės duomenų bazės efektyviau išnaudojamos, kai dirba vienas ar keli vartotojai, kai jų veiksmus galima suderinti. Paskirstytų duomenų bazių paskirtis – pateikti lankstesnes, daugelio nutolusių ir išsimėčiusių geografiškai vartotojų aptarnavimo formas, kai dirbama su dideliais duomenų kiekiais. Paskirstytos duomenų bazės sistemos suteikia daugiau galimybių valdant sudėtingus objektus ar procesus, susidedančius iš daugelio grandžių, pavyzdžiui, organizacija, jungiančią tam tikrą filialų skaičių. Viena iš paskirstytų duomenų bazių valdymo priemonių – tai duomenų tiražavimas. Tai procesas, kurio metu pradinės duomenų bazės objektų pakeitimai perkeliami į pačią duomenų bazę, ar jos dalis, esančias skirtinguose paskirstytos sistemos mazguose. Paskirstytų sistemų darbo organizavimas numato vartotojo prieigos prie duomenų apribojimus, nes tokiose sistemose iškyla daugiau pavojų duomenų saugumui.

1. 2. Duomenų bazių valdymo sistemos, jų funkcijos

Kai duomenys saugomi kompiuterio atmintyje, veiksmus su jais galima atlikti tik naudojantis programine įranga. Programinė įranga, skirta darbui su duomenų baze ir pati duomenų bazė vadinama duomenų bazės sistema. Kai kalbama apie kompiuterines sistemas, duomenų bazės sistema suvokiama kaip sistema, kurią sudaro jos vartotojai, asmenys tiesiogiai naudojantys duomenų bazės teikiamomis paslaugomis, bei taikomosios programos, kurios atlieka operacijas su duomenų baze. Pagrindinė duomenų bazės programinės įrangos paskirtis – suteikti vartotojui galimybę naudotis duomenų baze, nesigilinant į technines detales, taip pat traktuoti duomenų bazę kaip aukštesnio lygio objektą nei įrašų failas [9, p. 7]. Tokia programinė įranga vadinama duomenų bazių valdymo sistema. Duomenų bazės valdymo sistema yra tarsi sąsaja tarp vartotojo ir duomenų bazės.

Duomenų bazės valdymo sistema turi užtikrinti tikslų duomenų bazės veikimą, pašalinant atsiradusias kliūtis. Būna atvejų, kai duomenų bazėje atsiranda kelios duomenų kopijos, tai atsitinka nes kartais, norint panaudoti tuos pačius duomenis skirtingiems tikslams, prireikia juos dubliuoti. Šiuo atveju, toms kopijoms veltui eikvojama atmintis, prireikus modifikuoti duomenis, tenka kelis kartus naudoti tas pačias atnaujinimo proceso stadijas, o tai gali sukelti prieštaringos informacijos pateikimą. Todėl duomenų bazės valdymo sistema turi pasistengti atsikratyti atsiradusio duomenų dubliavimo, deja, dažniausiai visiškai užtikrinti duomenų nepertekliškumo tiesiog neįmanoma, šiuo atveju, duomenų perteklius yra minimizuojamas.

Kita duomenų bazės valdymo sistemos užduotis – užtikrinti veiksmingą duomenų bazės naudojimą. Duomenų baze naudojasi didelis vartotojų skaičius, ne paslaptis, kad atvėrus duomenų failą redagavimui, operacinė sistema neleidžia kitiems vartotojams ne tik į jį rašyti, bet ir skaityti iš jo tol, kol rašymo operacija bus baigta ir failas bus uždarytas. Taigi, duomenų bazės valdymo sistemoje taikomas duomenų izoliavimo metodas – kai vienas duomenų bazės vartotojas keičia bet kurį joje saugomą įrašą, kiti vartotojai tuo pat metu gali peržvelgti ar keisti kitus įrašus.

Duomenų bazė galės vadintis vientisa tik tuo atveju, jei ji atitiks tam tikras duomenų saugojimo sąlygas ir sugebės išlaikyti tas sąlygas atliekant įvairius pakeitimo veiksmus su duomenimis. Tik taip centralizuotai saugomi duomenys atitinka realaus pasaulio tam tikros – skirtos automatizuoti – dalies taikymo srities modelį [13, p. 3]. Duomenų vientisumas – duomenų tikslumo ir neprieštaravimo vienų kitiems problema. Duomenų bazės valdymo sistemos užduotis – garantuoti duomenų bazės integralumą atliekant pakeitimus joje. Tam, kad užtikrinti duomenų vientisumą, dažniausiai yra naudojama slaptažodžių sistema bei duomenų dalijimas į atskiras dalis. Be to į duomenų žodynus įrašomos duomenų reikšmių sudėtis ir ribos. Duomenų bazės valdymo sistema privalo tikrinti, kad pakeitus duomenis duomenų bazėje nebūtų pažeistos nustatytos sąlygos, taip pat turi uždrausti ir įspėti vartotoją apie nesankcionuotą duomenų pakeitimą, kurį atlikus, nebus vykdoma kuri nors sąlyga. Kaip bebūtų, bet duomenų reikšmių sudėties apribojimas ir
privalomi reikalavimai šiems duomenims yra silpnoji šiuolaikinių duomenų bazių valdymo sistemos dalis. Mes galime sugalvoti daug daugiau apribojimų negu juos gali realizuoti duomenų bazės valdymo sistemos. Todėl atsiranda būtinybė rašyti programas, kurios tikrintų, ar atitinka įvedami duomenys nustatytiems apribojimams. Rūpintis tokių programų rašymu turi būti pavesta duomenų bazės administratoriui.

Ne mažiau svarbi duomenų bazės valdymo sistemos funkcija – duomenų nepriklausomumo užtikrinimas. Kitaip tariant, duomenų bazės valdymo sistema turi pasirūpinti tuo, kad taikomosios duomenų apdorojimo programos nesikeistų modifikuojant duomenų saugojimo i organizavimo būdą. Svarbu tai, kad įmanomas kiek fizinis, tiek ir loginis duomenų organizavimas. Šiuo atveju, fizinis duomenų organizavimas nurodo skirtingus duomenų fizinio išdėstymo būdus kompiuterio atmintyje, o loginis – duomenų struktūros vaizdavimą, reikalingą vartotojams.

Organizacijos turimų duomenų sujungimo į vieningą, visiems prieinamą sistemą idėja turi tiek savo pranašumų, tiek trūkumų. Akivaizdus bendras duomenų bazės naudojimo privalumas rizikingas neteisingu duomenų bazės panaudojimu bei duomenų pakeitimu ar sugadinimu iš neatsakingų ir neturinčių įgaliojimų naudotis duomenų baze vartotojų pusės. Duomenų bazės administratorius ruošia duomenų bazės valdymo sistemos kontrolės priemones ir procedūras, kurios galės užkirsti galimybes neteisingai naudotis duomenimis, o be to, leis apibrėžti kiekvienam vartotojui ar jų grupei teises į duomenų vartojimą. Duomenų bazės valdymo sistema kontroliuoja priėjimo lygį bei fiksuoja duomenų panaudojimo arba papildymo statistiką. Duomenų bazės administratorius atsako už slaptažodžių bei nustatyto priėjimo lygio suteikimą. Tokiu būdu duomenų bazės administratorius sumažina galimybes ir riziką, kad viena vartotojų grupė gali sunaikinti kitos vartotojų grupės duomenis.

Duomenų bazės valdymo sistema turi atlikti ir daug kitų svarbių funkcijų, tarp kurių gali išskirti tokias, kaip duomenų bazės struktūros aprašymas ir įdiegimas, duomenų bazės pildymas duomenimis ir redagavimas, navigacija duomenų bazėje, taikomųjų vartotojų programų ir ataskaitų kūrimas ir dar daugelį kitų, daugiau ar mažiau reikšmingų funkcijų.

2. DUOMENŲ BAZĖS PROJEKTAVIMAS

2. 1. Duomenų bazių modelių tipai

Kaip vieną iš svarbiausių duomenų bazės valdymo sistemos funkcijų galima paminėti jos kaip savotiškos sąsajos tarp vartotojo ir duomenų bazės vaidmens atlikimas. Duomenų bazės valdymo sistema suteikia galimybę vartotojui kreiptis į duomenų bazę loginėmis sąvokomis, o ne fizinių veiksnių, tokių, kaip operacinė sistema ar bet kokia kita aparatūra, pagalba. Tų loginių sąvokų rinkinys sudaro duomenų bazės modelį.

Duomenų modelis – tai ne kas kita kaip būdas struktūrizuoti duomenis. Svarbiausia loginio duomenų modelio paskirtis – sisteminti įvairiausių rūšių duomenis ir išryškinti jų savybes pagal tam tikrus požymius – dažniausiai pagal turinį, struktūrą, apimtį, ryšius ir dinamiką, be to, dėmesys turi būti skiriamas ir į tai, kad būtų tenkinami įvairių kategorijų vartotojų informaciniai poreikiai. Loginis duomenų modelis kuriamas etapais, kol galiusiai pasirenkamas optimalus variantas, žinoma, atsižvelgiant ir į ribojančius veiksnius.

Loginio duomenų modelio kūrimo proceso metu, pirmiausia išaiškinami tam tikros dalykinės srities objektai, procesai, kurie gali būti reikalingi duomenų bazės vartotojui. Pavyzdžiui, tokiais objektais gali būti investoriai, indėlininkai, tiekėjai, pirkėjai, prekės ir pan. Šiuo atveju, kiekvienam objektui atrenkamas jį apibūdinančių savybių, tokių kaip rekvizitas, atributas ar laukas, rinkinys, pavyzdžiui, indėlininkui – pavardė, vardas, asmens kodas, adresas, indėlio tipas, indėlio suma ir kt. Svarstant, kokie duomenys turėtų sudaryti duomenų bazę, reikia atsižvelgti ne tik į dalykinę sritį, aptarnaujamų problemų ratą, bet ir į darbo su tam tikrais duomenimis intensyvumą, duomenų dinamiką, koregavimo dažnumą, duomenų tarpusavio ryšius bei sąveiką su kitais veiksniais. Praktiškai ne visi vartotojai gali būti suinteresuoti visu duomenų modeliu, o tik tam tikra jo dalimi. Kuriant loginį duomenų modelį, pasirenkamas vienas iš trijų modeliavimo būdų: hierarchinis, tinklinis arba reliacinis.

Hierarchinio modelio struktūra yra medžio tipo, ji išreiškia vertikalius hierarchijos ryšius, t. y. žemesnieji lygiai pavaldūs aukščiau esantiems. Tinklinis modelis sudėtingesnis ir skiriasi nuo hierarchinio tuo, kad turi ir horizontalius ryšius, kurie gali būti ir nevienareikšmiai. Duomenys čia pateikiami orientuotais grafais. Reliacinės ir tinklinės duomenų sistemos yra ikireliacinių sistemų pavyzdys. Nors iki šiol tinklinės ir reliacinės sistemos veiksmingai naudojamos specifiniams uždaviniams spręsti, juos baigia išstumti reliacinės sistemos.

2. 2. SQL kalba

Sąsajai tarp vartotojo ir duomenų bazės sudaryti vartojama tam tikra formalioji kalba skirta užklausoms pateikti. Vienas pagrindinių užklausų kalbos dialektų, naudojamas daugelyje duomenų bazių, yra SQL. SQL – tai instrumentas, skirtas duomenų, esančių kompiuterinėje
bazėje nuskaitymui ir apdorojimui. Kitaip tariant, SQL (Structured Query Language) – tai struktūrizuota užklausų kalba. SQL kalba buvo sukurta 1970 – ųjų metų pabaigoje IBM korporacijos tyrimų centre. SQL darbo schema pavaizduota 1 pav.

1 pav. SQL užklausų kalbos panaudojimas dirbant su duomenų baze [4].

SQL darbo esmė yra ta, kad vartotojas šios užklausų kalbos pagalba kreipiasi į duomenų bazės valdymo sistemą, kuri apdoroja užklausą, randa reikalingus duomenis ir galiausiai pateikia juos vartotojui. Kitaip ši procedūra vadinama duomenų bazės užklausa, iš čia ir kilęs ir pavadinimas – struktūrizuota užklausų kalba. Tačiau dabar SQL panaudojama ne tik užklausų sudarymui, taip pat ji naudojama visų funkcinių galimybių, kurias vartotojui suteikia duomenų bazės valdymo sistema, realizavimui, o būtent:

Duomenų organizavimas, jo esmė yra ta, kad SQL suteikia vartotojui galimybę keisti duomenų pateikimo struktūrą ir nustatyti santykius tarp duomenų bazės elementų.

Duomenų nuskaitymas. SQL suteikia vartotojui galimybę gauti duomenis esančius DB ir jais naudotis.

Duomenų apdorojimas. SQL pagalba galima keisti duomenų bazės turinį, t.y. įvesti naujus duomenis, trinti nebereikalingus, atnaujinti senus.

Priėjimo prie duomenų valdymas. SQL pagalba galima apsaugoti duomenis nuo nesankcionuoto vartojimo, apriboti vienų ar kitų vartotojų galimybes dirbant su duomenų baze.

Kolektyvinis darbas su duomenų baze. SQL suteikia galimybę keliems vartotojams vienu metu naudotis ta pačia duomenų baze netrukdant vienas kitam.

Duomenų bazės apsauga. SQL padeda užtikrinti duomenų bazės vientisumą apsaugodama ją nuo sugriovimo dėl įvairių nesuderintų pakeitimų duomenų bazėje.

Iš esmės SQL kalba vartojama reliacinėms operacijoms aprašyti. Šioje kalboje išskiriamos trys sakinių grupės: duomenų apibrėžimo sakiniai, kitaip dar vadinami duomenų apibrėžimo kalba DDL; duomenų apdorojimo sakiniai DML ir duomenų valdymo sakiniai DCL, taigi SQL = DDL+DML+DCL [9, p. 10].

Kaip bebūtu, reiktu pažymėti, kad SQL yra nepilnavertė kalba kaip pavyzdžiui COBOL, FORTRAN ar C++. Visų pirma, SQL neturi operatoriaus IF sąlygos patikrinimui; GOTO – perėjimų ir nuorodų organizavimui; DO arba FOR – ciklų sudarymui. SQL yra taip vadinama duomenų bazės pokalbe, kuri turi apie 30 operatorių skirtų valdyti duomenų bazę. SQL operatoriai įsiterpia į bazinę kalbą ir suteikia vartotojams galimybę naudotis duomenų baze. Nežiūrint į ne visai tikslų apibrėžimą, šiuo metu SQL yra vienintelė standartinė kalba skirta dirbti su reliacinėmis duomenų bazėmis.

Pačios SQL negalima pavadinti nei duomenų bazės valdymo sistema, nei atskiru programiniu produktu. SQL yra neatsiejama duomenų bazės valdymo sistemos dalis, tai tarsi instrumentas, kurio pagalba realizuojamas vartotojo ryšys su duomenų bazės valdymo sistema. Vienų žodžių, pagrindiniai SQL apibrėžimai būtų šie – SQL tai:

Interaktyvi užklausų kalba;

Duomenų bazių programavimo kalba;

Duomenų bazių administravimo kalba;

Priedų klientas/serveris sudarymo kalba;

Paskirstytų duomenų bazių kalba;

Duomenų bazių šliuzas.

Tokiu būdu, SQL tapo galingu instrumentu manipuliuojant reliacinėse duomenų bazėse esančia informaciją. Be to, SQL gali būti apibūdinta kaip lengvai suprantama ir universali programinė duomenų valdymo priemonė. SQL kalba turi daugybe privalumų, tarp jų galima išskirti tai, kad SQL nepriklauso nuo konkrečių duomenų bazės valdymo sistemų, ji yra standartizuota, gali būti perkelta iš vienų kompiuterinių sistemų į kitas, turi aukšto lygio struktūrą, suteikia galimybę dinamiškai keisti ir plėsti duomenų bazės struktūrą tuo pat metu naudojantis jos turiniu ir pan.

Kaip jau buvo pažymėta anksčiau, SQL naudojama apie 30 operatorių. Kiekvienas jų “prašo” duomenų bazės valdymo sistemą atlikti tam tikrą užduotį, pavyzdžiui, sukurti lentelę, nuskaityti duomenis, įvesti į ją papildomų duomenų ir pan. Visi SQL operatoriai turi vienodą struktūrą. Kiekvienas SQL operatorius prasideda veiksmažodžiu, t.y. pagrindiniu žodžiu, kuris nusako atliekamą veiksmą (INSERT, DELETE, CREATE ir COMMIT). Po to eina vienas ar keli sakiniai, kurie nusako duomenis su kuriais dirba operatorius arba patikslina operatoriaus atliekamą veiksmą. Kiekvienas sakinys prasideda pagrindiniu žodžiu, pavyzdžiui, WHERE, FROM, INTO ir HAVING. Vieni sakiniai operatoriuje yra būtini, kiti – ne. Pabrėžtina, kad konkreti sakinio struktūra ir turinys gali keistis. Iš pagrindinių SQL operatorių galima išskirti šiuos:

SELECT – nuskaito duomenis iš DB [4].SELECT [ALL | DISTINCT] {Atrenkamų objektų sąrašas | * }

INTO Bazinių – kintamųjų – sąrašas

FROM Nuorodų – į – lenteles – sąrašas

[WHERE Paieškos – sąlyga]

INSERT – įterpia duomenis į DB [4].INSERT INTO lentelės pavadinimas [stulpelių – sąrašas]

VALUES   {(įterpiamų – elementų – sąrašas) | užklausos specifikacija}

DELETE – trina duomenis iš DB [4].DELETE FROM lentelė

WHERE Paieškos – sąlyga

UPDATE – atnaujina pasenusius DB duomenis [4].UPDATE Lentelė

SET Išraiškų – nuorodų – sąrašas

WHERE Paieškos sąlyga

Tarp kitų galima išskirti
tvarkymo, priėjimo prie duomenų valdymo, transakcijų valdymo ir programinio SQL operatorius.

2. 3. Reliacinis duomenų bazės modelis

Reliacinį, kitaip dar vadinamą sąryšinį, modelį 1970 metais pasiūlė E. F. Kodas (Codd). Visi iki to momento egzistavę priėjimai prie įrašų sujungimo iš skirtingų failų naudojo fizines rodykles arba adresus diske. Pavyzdžiui, tarkime, kad vienoje iš tų senų sistemų mums prireikė sujungti įrašą A su įrašu B. Tam mums reikės prie įrašo A prijungti laukelį, kuriame bus patalpintas įrašo adresas diske. Tas pridėtinis laukelis, arba fizinė rodyklė, visada rodys iš įrašo A į įrašą B. Kodas gi įrodė teoriškai ir praktiškai, kad toks duomenų bazės tipas žymiai apriboja vartotojų galimybes manipuliuoti duomenimis. Be to, tokios duomenų bazės labai jautriai reaguoja į pakeitimus fizinėje aplinkoje. Kai į kompiuterinę sistemą buvo įdiegiamas naujas diskasukis arba buvo keičiami duomenų saugojimo adresai, papildomai buvo reikalinga pakeisti tam tikrus failus. Jeigu prie įrašo formato faile buvo prijungiami nauji laukai, tai buvo neišvengiamas visų failų įrašų fizinių adresų keitimas. Šiuo atveju, programuotojų ir vartotojų galimybės buvo smarkiai apribotos susiduriant su fizinėmis problemomis ir nebuvo galima atlikti tam tikras operacijas su duomenimis taip, kaip tai būtų leidusi loginė struktūra.

Būtent reliacinis duomenų bazės modelis, paremtas duomenų loginiu ryšiu, sugebėjo įveikti šias problemas. Tai leido vartotojui visiškai nesirūpinti duomenų fizine struktūra. Reliacinio modelio ašį sudaro lentelė. Matematikoje lentelę atitinka santykis. Santykis, šiuo atveju, išreiškiamas lentele, kurioje duomenys pateikiami dvimačiu masyvu, sudarytu iš horizontalių eilučių ir vertikalių stulpelių.

Toliau reliacinis modelis bus nagrinėjamas remiantis pateikta supaprastinta reliacine duomenų baze „Statybinės firmos darbininkai“:

Darbininkai Darb. Nr. Pavardė Specialybė Vad. Nr.

0258 Markus Tinkuotojas 0123

0359 Šnepkus Stalius 0521

0270 Čėrkus Dažytojas 0889

0691 Lesnickas Suvirintojas 1254

0562 Vėlavičius Santechnikas 5670

0458 Andrijauskas Mūrininkas 3679

Paskyrimas

Darb. Nr. Pastato Nr. Darbo pr. Dienų sk.

0258 35 08. 30 14

0359 125 10. 25 5

0270 125 08. 00 7

0691 113 10. 30 5

0562 14 9. 25 20

0458 41 12. 00 14

0270 14 10. 00 14

0691 187 11. 30 10


 

PastatasPastato Nr. Tipas Adresas

35 Parduotuvė Pilies 4

125 Gyvenamasis Vydūno 7

187 Gyvenamasis Žirmūnų 36

113 Ofisas Gedimino 10

14 Kotedžas Fabijoniškių 1A

41 Sandėlys Upės 12C

 

Specialybė

Tipas Užm. Per sav. Val. per sav.

Tinkuotojas 125 Lt 35

Stalius 220 Lt 25

Dažytojas 100 Lt 22

Suvirintojas 200 Lt 20

Santechnikas 150 Lt 26

Mūrininkas 210 Lt 40

Šioje duomenų bazėje kiekvienas reliacijos stulpelis vadinamas reliacijos atributu. Atitinkamai, stulpelio pavadinimas atlieka atributo vardo funkciją. Toliau bus naudojami terminai atributas ir atributo vardas vietoj terminų stulpelis ir stulpelio pavadinimas. Mūsų pavyzdyje lentelės „Darbininkai“ atributų vardai yra šie: {Darb. Nr}, {Pavardė}, {Specialybė}, {Vad. Nr.}. Reikia pabrėžti, kad reliacijos atributų skaičius kitaip vadinamas reliacijos laipsniu. Taigi, lentelės „Darbininkai“ reliacijos laipsnis bus lygus keturiems. Kadangi duomenų bazės vartotojas nekreipia dėmesio į atributų eilės tvarką reliacijoje, tai ši tvarka laikoma neesminė. Iš to seka, kad bet kokia reliacijos atributų pora negali turėti vienodų vardų. Reliacijos eilutės vadinamos kortežais. Pabrėžiama, kad nėra nustatytos kortežų išdėstymo tvarkos, todėl jokie du kortežai negali turėti vienodų reikšmių rinkinių. Rinkinys visų galimų reikšmių, kurios gali būti priskirtos atributams, vadinamas atributo sritimi. Dvi atributų sritys gali sutapti tik tuo atveju, jeigu jos turi tas pačias reikšmes. Pavyzdžiui, atributai Pavardė ir Specialybė iš lentelės „Darbininkai“ turi skirtingas atributų sritis, nors kiekvieno jų reikšmės yra simbolių eilutės. Du atributai su ta pačia sritimi nebūtinai turi turėti vienodus vardus. Pavyzdžiui, atributai {Vad. Nr.} ir {Darb. Nr.} turi tą pačią sritį, į kurią įeina numeriai, kurie atlieka darbuotojų identifikacijos vaidmenį.

Visų leistinų atributo reikšmių aibė reliacijoje vadinama domenu. Tuščioji reikšmė (žymima NULL) priskiriama atributui eilėje, kai ano reikšmė nežinoma arba neturi prasmės. Tarkime, kad kažkokiu konkrečiu atveju atributas yra nepanaudojamas. Pavyzdžiui, kai kurie darbininkai iš lentelės „Darbininkai“ neturi vadovų. Tokiu atveju, atributo {Vad. Nr.} reikšmė jiems
Be to, kai mes įvedinėjame duomenis į reliacijos eilutę, mes galime ir nežinoti vienos ar net kelių tos eilutės atributų reikšmių. Abiem atvejais mes nieko neįvedinėjam ir eilutė į duomenų bazę įvedama su tuščiomis tų atributų reikšmėmis. Tuščia reikšmė – tai ne tarpas ir ne nulis, šiuo atveju atributas nepanaudojamas, arba reikšmė paprasčiausiai šiuo metu nežinoma, ir gali būti įvesta vėliau.

Lentelės „Darbininkai“ eilutėje patalpinta visa reikalinga informacija apie konkretų darbininką. Mes teigsime, kad kiekvienas tarnautojas pateiktas viena ir tik viena lentelės „Darbininkai“ eilute. Tokiu atveju, jeigu kuris nors atributas vienareikšmiškai apibrėžia kiekvieną darbuotoją, mes galime teigti, kad tas pats atributas vienareikšmiškai nusako ir lentelės „Darbininkai“ eilutę. Atkreipdami dėmesį į tai, teigsime, kad atributas {Darb. Nr.} vienareikšmiškai nusako įmonės darbuotoją. Iš to seka teiginys, jog atributo reikšmė vienareikšmiškai nusako lentelės „Darbininkai“ kortežą, o tai reiškia, kad atributas {Darb. Nr.} yra lentelės „Darbininkai“ raktas.

Atributų rinkinys, vienareikšmiškai apibrėžiantis bet kurią lentelės kortežą, vadinamas viršrakčiu arba superraktu. Viršraktis tampa lentelės raktu, jeigu jis praranda savo universalumą, pašalinus iš jo bent vieną atributą. Reliacijos raktas – tai minimalus atributų rinkinys, tai minimalus superraktas. Minimalumas suprantamas taip, kad nė vienas raktinių atributų aibės poaibis vienareikšmiškai neapibrėžia reliacijos kortežų. Pavyzdžiui, lentelėje „Darbininkai“ atributų rinkinio {Darb. Nr., Pavardė} reikšmės vienareikšmiškai nusako kiekvieną reliacijos kortežą – tai tos lentelės viršraktis. Tačiau šis atributų rinkinys nėra minimalus, taigi, jis nėra ir raktas. Šitame pavyzdyje atskirai paimtas atributas {Darb. Nr.}yra raktas, kadangi kiekvienas reliacinės lentelės kortežas vienareikšmiškai apibrėžiamas atributo {Darb. Nr.} reikšme.

Reliacinėje lentelėje „Paskyrimas“ raktas susideda iš atributų {Darb. Nr.} ir {Pastato Nr.} poros. Atskirai nė vienas iš šių atributų vienareikšmiškai nenusako kiekvienos eilutės, tačiau kartu šie atributai duoda vienareikšmišką nusakymą, kurio ir reikalaujama iš rakto. Raktas vadinamas sudėtiniu raktu jeigu jį sudaro du ar daugiau atributų.

Kiekvienoje iš duotų reliacinių lentelių gali būti daugiau nei vienas atributų rinkinys, kurį galime laikyti raktu. Šie atributų rinkiniai vadinami potencialiais raktais. Pavyzdžiui, Atributas {Pavardė} gali būti potencialiu lentelės „Darbininkai“ raktu. Tokiu atveju mes teigsime, kad pavardės niekada nesikartoja. Jeigu pavardės galės kartotis, tai atributas {Pavardė} nėra potencialus raktas. Kai vienas iš potencialių raktų yra išrenkamas reliacijos raktu, jį galime pavadinti pirminiu raktu. Paprastai pirminiu raktu išrenkamas potencialus raktas, kuriuo lengviausia naudotis įvedinėjant duomenis.

Anksčiau pateiktame reliacinės duomenų bazės pavyzdyje skirtingose lentelėse kartais naudojami tie patys atributų vardai, pavyzdžiui, atributas {Pastato Nr.} lentelėse „Pastatas“ ir „Paskyrimas“. Šiam atributui suteikiama išorinio rakto sąvoką.

Vienos lentelės atributų rinkinys, kuris tampa raktas kitoje lentelėje, vadinamas išoriniu raktu. Taigi, šiuo atveju, atributas {Pastato Nr.}, kuris atlieka rakto vaidmenį lentelėje „Pastatas“, tuo pat metu yra ir lentelės „Paskyrimas“ išorinis raktas. Išoriniai raktai sudaro svarbius ryšius tarp lentelių. Jų dėka, vienos lentelės duomenis surišami su kitos lentelės duomenimis. Išorinio rakto atributai nebūtinai turi turėti tuos pačius vardus kaip ir rakto atributai, kuriuos jie atitinka. Pavyzdžiui, lentelės „Darbininkai“ atributai {Darb. Nr.} ir {Vad. Nr.} turi skirtingus vardus, nors juos abu sudaro reikšmės iš srities, kurioje yra darbuotojus identifikuojantys numeriai. Taigi, {Vad. Nr.} tai ne kas kita kaip reliacinės lentelės „Darbininkai“ išorinis raktas, kuris nurodo į savo pačios lentelės raktą. Kiekvienam darbuotojui atributas {Vad. Nr.} priskiria atitinkantį vadovą, kuris taip pat yra darbuotojas. Tokiu būdu, atributas {Vad. Nr.} turi turėti reikšmę, kuri yra kažkokio kito lentelės „Darbininkai“ kortežo rakto reikšmė . Taigi ,{Vad. Nr.} yra rekursinio išorinio rakto , t.y. išorinio rakto, nurodančio į savo paties reliacinę lentelę pavyzdys.

Kuriant reliacinę duomenų bazę turi būti laikomasi apribojančių sąlygų, kurios palaiko duomenų vientisumą. Šios apribojančios sąlygos suteikia teisingoms duomenų reikšmėms duomenų bazėje nustatymui loginį pagrindą, taip pat perspėja apie klaidas, pasitaikančias modifikuojant ir apdorojant duomenis. Tokios galimybės labai vertingos, kadangi pagrindinis duomenų bazės tikslas – suteikti vartotojui tikslią informaciją. Kodo suformuotame reliaciniame modulyje yra keletas apribojančių sąlygų, naudojamų duomenų bazėje sukauptų duomenų tikrinimui. Svarbiausios iš jų:

Kategorijų vientisumas;

Nuorodų vientisumas;

Funkcinės priklausomybės.

Reliacinės lentelės eilutės yra konkrečių realaus pasaulio objektų atitikmenys duomenų bazėje [8, p. 7]. Pavyzdžiui, lentelės „Darbininkai“ eilutė pateikia konkretų
tarnautoją, lentelės „Pastatas“ eilutė pateikia konkretų pastatą, o lentelės „Paskyrimas“ eilutė pateikia konkretų darbuotojo paskyrimą į konkretų pastatą. Reliacinės lentelės raktas vienareikšmiškai apibrėžia kiekvieną kortežą, tuo pačiu, ir kiekvieną kategorijos elementą. Tokiu būdu, jeigu vartotojai nori manipuliuoti konkrečios eilutės duomenimis, jie turi žinoti tos eilutės rakto reikšmę. Todėl svarbu, kad elementas nebūtų įrašomas į duomenų bazę iki to momento, kol nebus pilnai nustatytos jo raktinių atributų reikšmės. Taigi, raktas ar rakto dalis negali turėti tuščios (NULL) reikšmės – tai ir yra kategorijų vientisumo taisyklė. Nuorodų gi vientisumas gali būti paaiškintas taip: norint sujungti vienos lentelės eilutes su eilutėmis iš kitos lentelės, naudojami išoriniai raktai. Pavyzdžiui, atributas {Specialybė} naudojamas lentelėje „Darbininkai“ tam, kad pateiktų vartotojui kiekvieno darbuotojo specialybę, jog būtų galima apskaičiuoti savaitės užmokesčio įmonėje dydį. Todėl reikia pabrėžti, kad kiekvienos eilutės atributo {Specialybė} reikšmės būtų lygios tam tikroms raktinio atributo {Tipas} reikšmėms lentelėje „Specialybė“. Priešingu atveju, išorinis raktas {Specialybė} į nieką nenurodys. Iš čia ir seka nuorodų vientisumo taisyklė – kiekviena netuščia išorinio rakto reikšmė turi būti lygi vienai iš raktinių reikšmių kitoje lentelėje.

Šiuo metu Jūs matote 51% šio straipsnio.
Matomi 4556 žodžiai iš 9007 žodžių.
Siųskite sms numeriu 1337 su tekstu INFO MEDIA (kaina 1,45 €) ir įveskite gautą kodą į laukelį žemiau:
Kodas suteikia galimybę atrakinti iki 100 straispnių svetainėje ir galioja 24 val.