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:

Šiuo metu Jūs matote 31% šio straipsnio.
Matomi 2817 žodžiai iš 9007 žodžių.
Peržiūrėkite iki 100 straipsnių per 24 val. Pasirinkite apmokėjimo būdą:
El. bankininkyste - 1,45 Eur.
Įveskite savo el. paštą (juo išsiųsime atrakinimo kodą) ir spauskite Tęsti.
SMS žinute - 2,90 Eur.
Siųskite sms numeriu 1337 su tekstu INFO MEDIA ir įveskite gautą atrakinimo kodą.
Turite atrakinimo kodą?
Po mokėjimo iškart gausite atrakinimo kodą, kurį įveskite į laukelį žemiau:
Kodas suteikia galimybę atrakinti iki 100 straispnių svetainėje ir galioja 24 val.