Naujos duomenų bazės kūrimas naujos bazės pagrindinės sąvokos
5 (100%) 1 vote

Naujos duomenų bazės kūrimas naujos bazės pagrindinės sąvokos

Vilniaus teisės ir verslo kolegija

Ekonomikos katedra

Naujos duomenų bazės kūrimas. Naujos bazės pagrindinės sąvokos.

Atliko:

RV 4/1

Tikrino: dėstytojas

2004, Vilnius

Turinys:Įžanga 3

1. Duomenų organizavimo principai, duomenų vaizdavimas 4

2. Reliacinės duomenų bazės, jų savybės 6

3. Duomenų normalizavimas ir normalinės formos 8

4. Duomenų bazių valdymo sistemos, jų funkcijos ir sudėtis 10

5. Duomenų bazės kūrimas ir redagavimas 13

6. Žinių bazių sistemų kūrimas 14

7. Navigacijos duomenų bazėje priemonės 14

8. Duomenų bazės rikiavimas ir indeksiniai failai 14

9. Paieškos priemonės 15

10. Ataskaitų kūrimas 17

11. Taikomųjų programų kūrimas, užklausų kalba SQL 18

12. Ryšys su kitomis programomis 19

13. Duomenų bazių taikymas 20

14. Populierių duomenų bazių valdymo sistemų palyginimas 21

15. Access 2002 apžvalga 22

16. Pavyzdys 32

Literatūra 34

Įžanga:

Šiame skyriuje supažindinama su pagrindinėmis duomenų bazių (DB) sąvokomis, jų kūrimo ir panaudojimo principais. Daugiausia dėmesio skiriama reliaciniam duomenų tvarkymo būdui. Glaustai aprašomas duomenų normalizavimas, tai iliustruojama tipiniu pavyzdžiu.

Skyriuje pateikiama žinių apie duomenų bazių valdymo sistemas (DBVS), jų paskirtį, svarbiausias funkcijas bei sudedamąsias dalis. Apžvelgiamos įvairios DB vartotojams teikiamos galimybės, instrumentai, taikomųjų programų kūrimas, užklausų kalba SQL ir kt.

Skyriaus pabaigoje apibūdinama tipinė DB taikymo situacija, taip pat kai kurių DBVS lyginamosios charakteristikos.

Duomenų bazės samprata

Terminas „duomenų bazė” atsirado XX amžiaus 6-ojo dešimtmečio pabaigoje, tačiau ir šiuo metu vis dar įvairiai apibrėžiamas. Yra kelios DB sampratos. Pagrindinės yra dvi.

DB – tai kartu saugomų ir susijusių duomenų, skirtų apdoroti kompiuteriu, visuma. Duomenys atitinka realaus pasaulio tam tikros – skirtos automatizuoti – dalies (taikymo srities) modelį. Duomenų pavyzdžiai: bibliotekos kartoteka, telefonų abonentų knyga, pirkėjų užsakymų registracijos žurnalas ir kt. Duomenys saugomi ir apdorojami ne bet kaip, o laikantis tam tikrų susitarimų, taisyklių. Kitaip tariant, duomenys tam tikru būdu sutvarkyti (priešingu atveju nebūtų DB). Reiktų skirti vadinamąjį fizinį ir loginį duomenų organizavimą. Pirmasis nurodo duomenų fizinio išdėstymo būdus kompiuterio atmintyje, o antrasis – duomenų struktūros vaizdavimą – modelį, reikalingą vartotojams.

Duomenims, saugomiems DB, būdingos šios savybės:

q integruotumas;

q nepertekliškumas;

q nepriklausomumas.

Duomenų integruotumas reiškia, kad visi duomenys kaupiami ir saugomi kartu nustačius jų tarpusavio ryšius. Taip saugomus duomenis dažniausiai naudoja ne vienas, o keli vartotojai.

Antroji savybė nusako tai, jog duomenys saugomi vengiant jų dubliavimo. Kai yra pertekliškumas, t.y. kelios duomenų kopijos, joms veltui eikvojama atmintis, o modifikuojant duomenis tenka kelis kartus naudoti tas pačias atnaujinimo operacijas. Be to, kai duomenų kopijos atitinka skirtingas atnaujinimo stadijas, tai gali iššaukti prieštaringos informacijos pateikimą.

Duomenų nepriklausomumas reiškia, kad duomenų apdorojimo taikomosios programos nesikeičia modifikuojant duomenis.

Antroji DB samprata yra platesnė, ji apima ne tik tvarkingai saugomus duomenis, bet ir programinę įrangą, skirtą duomenų bazėms kurti ir įvairiais būdais apdoroti.

Duomenų organizavimo principai, duomenų vaizdavimas

Prieš pradėdami nagrinėti duomenų organizavimą, apibrėšime duomenų elemento (DE) sąvoką. DE vadinsime minimalią prasmingą duomenų dalį. Kaip minėta, DB duomenys saugomi ne bet kaip, o kaip susietų tarpusavyje DE visuma, t. y. joje turi būti nustatyti ryšiai tarp įvairių DE. Toks duomenų sruktūros pateikimo būdas dažnai vadinamas duomenų modeliu. Jį patogu grafiškai vaizduoti ovalinėmis diagramomis. Tokiose diagramose DE vaizduojami ovalais, kurių viduje užrašomas DE vardas, o ryšiai vaizduojami linijomis (žr. 1 pav.).

1 pav. Duomenų vaizdavimas ovaline diagrama

1 pav. diagramoje yra du DE , o kiekvienas DE gali turėti daug reikšmių. Pvz., DE „Studentas” gali turėti reikšmes: «JONAITIS J», «PETRAITIS P» ir kt., DE „Stipendija” – 0, 200 ir kt.

Yra du pagrindiniai ryšių tarp DE tipai. Pirmasis – tai vadinamasis ryšys „vienas su vienu”, arba paprastas ryšys. Sakoma, jog tarp DE „A” ir „B” egzistuoja paprastas ryšys, jeigu bet kuriuo momentu kiekvieną „A” reikšmę atitinka tik viena „B” reikšmė. Toks ryšys vaizduojamas paprasta rodykle (žr. 2 pav.). Šiuo atveju sakoma, kad „A” identifikuoja „B”.

2 pav. Ryšio „vienas su vienu” pavyzdys

Antras tipas – tai vadinamasis ryšys „vienas su daugeliu” arba sudėtingas ryšys. Tarp DE „A” ir „B” egzistuoja sudėtingas ryšys, jeigu bet kuriuo momentu vieną „A” reikšmę atitinka kelios „B” reikšmės. Toks ryšys vaizduojamas dviguba rodykle (žr. 3 pav.).

3 pav. Ryšio „vienas su daugeliu” pavyzdys

Tarp bet kurių dviejų DE dažnai egzistuoja abipusis ryšys. Pavyzdžiui, jei DE yra „Vyras” ir „Moteris”,
tai tarpusavio ryšys tarp jų gali atspindėti santuokos formą (žr. 4 pav.).

4 pav. Galimi ryšių tarp DE „Vyras” ir „Moteris” variantai

Pirmuoju (a) atveju 4 pav. vaizduojama tradicinė krikščioniška santuokos forma, antruoju (b) atveju – daugpatystė, trečiuoju (c) – daugvyrystė, ketvirtuoju (d) – grupinė santuoka.

Kitame pavyzdyje pateikiama ovalinė diagrama su gausesniais DE ir ryšiais tarp jų (žr. 5 pav.).

5 pav. Duomenys apie skyriaus tarnautojus ir jų ryšiai

Šioje diagramoje vaizduojami ne visi galimi ryšiai tarp DE. Čia, pavyzdžiui, nematyti sudėtingo ryšio „Alga” – „Tarnautojas” (o be tokio ryšio nebūtų galima atsakyti štai į tokį vartotojo klausimą „Kokie tarnautojai gauna algą, didesnę negu 1000 litų?”).

Jeigu yra N skirtingų DE, tai tarp jų galimi N* (N-1) ryšiai. Todėl didelėse DB, kuriose būna šimtai ar tūkstančiai DE, ryšių skaičius be galo išaugtų (pvz., jei N=1000, tai ryšių skaičius siektų milijoną). Norint sumažinti ryšių skaičių, DE jungiami į grupes. Tokios DE grupės vadinamos įrašais. Įrašų struktūrą taip pat galima pavaizduoti ovalinėmis diagramomis (žr. 6 pav.). Konkretaus įrašo struktūros pavyzdys pateiktas 7 pav.

6 pav. Bendras įrašo ovalinės diagramos pavidalas

7 pav. Įrašo vaizdavimo ovaline diagrama pavyzdys

Įraše yra bent vienas DE (ar jų rinkinys), kurio visos reikšmės yra nepasikartojančios, t. y. jo reikšmės vienareikšmiškai identifikuoja kitas įrašo reikšmes. Toks DE (ar jų rinkinys) vadinamas raktu. Kiti (neraktiniai) DE vadinami atributais (žr. 6 pav.). Jei raktas susideda iš kelių DE, jis vadinamas sudėtiniu. Sudėtinis raktas apdorojant duomenis traktuojamas kaip vienas DE ir diagramoje vaizduojamas vienu ovalu. 8a pav. parodytas sudėtinis raktas „Programuotojas”+„Programos Nr.”.

8 pav. Sudėtinių ir galimų raktų pavyzdys

Įrašas gali turėti kelis raktus, vadinamus galimais raktais. 8 pav. diagramoje yra du galimi raktai – „Programuotojas”+„Programos Nr.” ir „Programuotojas”+„Programos pavadinimas”. Vienas iš galimų raktų yra pirminis raktas (faktiškai naudojamas DE identifikacijai), o kiti – alternatyvieji raktai (raktai-kandidatai).

Pirminiam raktui DE reikia parinkti taip, kad iš anksto būtų žinomas jų įgyjamų reikšmių diapazonas, o DE jame būtų kuo mažiau. Labai pabrėžtina rakto savybė yra jo pertekliškumo nebuvimas: iš rakto, kurį sudaro keli DE, negalima išmesti jokio DE (to rakto nesuardant). Įrašo rakto svarba didelė – juo galime atskirti DE vieną nuo kito, pagal jį nustatoma įrašo vieta atmintyje.

Panašiai kaip DE, į grupes sujungiami ir įrašai. Įrašų su tarpusavio ryšiais visuma sudaro DB. Jos sudarymo metu labai svarbu tai, kaip sugrupuojami DE, t. y. kokie DE surenkami į vieną įrašą, kokie parenkami raktai ir kaip tarp įrašų nustatomi ryšiai.

Ryšiai tarp skirtingų įrašų vaizduojami rodyklėmis tarp tų įrašų raktų – taip gaunamas DB rodyklinis modelis, kitaip tariant, DB struktūros diagrama. DB, rezervuojančios lėktuvų bilietus, diagramos pavyzdys parodytas 9 pav.

9 pav. DB struktūros ovalinės diagramos pavyzdys

Kompaktiškesnis įrašo ir DB struktūros vaizdavimo būdas yra stačiakampė diagrama. Tokioje diagramoje DE vaizduojami stačiakampiais, o įrašai – stačiakampių blokais. Raktiniai DE pabraukiami. 10 pav. pateikiama stačiakampė diagrama, gauta iš 9 pav. parodytos ovalinės diagramos.

10 pav. DB struktūros stačiakampės diagramos pavyzdys

Reliacinės duomenų bazės, jų savybės

Pagal tai, kokiu būdu duomenys jungiami į visumą, išskiriami šie duomenų organizavimo (sutvarkymo) modeliai: reliacinis, hierarchinis, tinklinis. Pastaruoju metu bene populiariausios DB, kuriose duomenys organizuojami pagal reliacinį modelį, – tai reliacinės DB. Reliacinė DB yra tokia duomenų visuma, kurioje informacija (duomenys) saugoma vadinamosiose dvimatėse lentelėse. (Toliau dvimatės lentelės vadinamos tiesiog lentelėmis.) Lentelės pavyzdys parodytas 1 pav.

1 pav. Lentelės pavyzdys (užsakymų registracijos žurnalas)

Lentelę sudaro eilutės ir stulpeliai, taigi lentelės forma yra įprasta ir suprantama vartotojui. Lentelės eilutės vadinamos įrašais, o stulpeliai – laukais (žr. 1 pav.). Laukams duodami vardai (pvz. „UŽSAKYMO NUMERIS”, „PIRKĖJO KODAS” ir pan.). Pažymėtina, kad lauko sąvoka atitinka DE sąvoką anksčiau nagrinėtuose duomenų vaizdavimuose. Į lentelės įrašus įtraukiamos duomenų porcijos, kurias sudaro DE reikšmės, dar vadinamos laukų reikšmėmis (pvz., «A2599», «98 01 26» ir pan.). Bet kurios eilutės ir bet kurio stulpelio susikirtime turi būti tik viena DE reikšmė, o ne tų reikšmių rinkinys.

Reliacinėse DB kiekviena lentelė pasižymi tokiomis savybėmis:

q Visi įrašai yra vienodai organizuoti, turi tą pačią struktūrą. Visuose įrašuose yra tiek pat laukų, o laukai yra vienarūšiai, t. y. kiekvieno lauko reikšmės yra vieno tipo. Tačiau skirtinguose laukuose gali būti įvairių tipų duomenys;

q Lentelėje negali būti tuščių įrašų, taip pat identiškų įrašų, t. y. įrašų su pilnai pasikartojančiais duomenimis, nors atskiri duomenų elementai gali būti tušti arba pasikartojantys;

q Įrašų ir laukų išdėstymo tvarka lentelėje nėra svarbi. Atliekant duomenų
apdorojimo operacijas lentelės eilutės ir stulpeliai gali būti peržiūrimi bei tvarkomi bet kuria tvarka, nepriklausomai nuo jų informacinio turinio.

Kiekvienai lentelei suteikiamas vardas, kuriuo ji saugoma kompiuterio išorinėje atmintyje (diske) kaip atskiras objektas. Lentelės vardas turėtų atspindėti atitinkamo realaus informacinio objekto pavadinimą, o laukų vardai – to objekto atributų pavadinimus. Pavyzdžiui, 1 pav. parodytai lentelei galėtų būti suteiktas vardas „UŽSAKYMAI” (laukų vardai pavaizduoti paveikslėlyje).

Lentelėms nustatomi raktai, t. y. laukai ar laukų grupės, kurių įgyjamos reikšmės yra nepasikartojančios, taigi šios reikšmės vienareikšmiškai identifikuoja tų lentelių įrašus. Lentelės gali turėti po kelis raktus, iš kurių konkrečiu momentu faktiškai naudojamas tik vienas – pirminis raktas.

Labai dažnai naudojama sutrumpinta lentelių pateikimo forma, kai iš pradžių užrašomas lentelės vardas, o po to tarp skliaustelių išvardijami lentelės laukų vardai. Laukų, įeinančių į pirminio rakto sudėtį, vardai pabraukiami. Toks užrašas vadinamas lentelės schema. 1 pav. pateiktos lentelės schema atrodo taip:

UŽSAKYMAI (UŽSAKYMO NUMERIS, PIRKĖJO KODAS, PREKĖS KODAS, UŽSAKYMO DATA, UŽSAKYTAS KIEKIS).

Į reliacinių DB sudėtį įeinančios lentelės tarpusavyje susiejamos. Ryšį tarp atskirų lentelių nustato bendri, sutampantys tų lentelių laukai, kurie dar vadinami siejančiais laukais. Taip susietų lentelių visuma ir apibrėžia reliacinį modelį. Kitaip negu rodykliniuose duomenų modeliuose, kur ryšiams iliustruoti naudojamos rodyklės, reliaciniame modelyje nėra atskirų elementų vaizduoti ryšiams – jie atspindimi pačiomis lentelėmis (siejančiais laukais). Atidesnis skaitytojas pastebės reliacinio modelio tam tikro laipsnio pertekliškumą. Pertekliniai laukai įvedami dažniausiai dėl dviejų priežasčių: a) daliai lentelių reikalingi laukai, skirti suformuoti pirminius raktus, t. y. vienareikšmius lentelių įrašų identifikatorius; b) kai kurioms lentelėms reikalingi laukai, kurie nėra pirminiai raktai (ar jų dalis), bet naudojami nustatyti ryšiams.

Bet kurią duomenų struktūrą galima vaizduoti tiek rodykline, tiek lentelių forma. Toliau panagrinėsime kelis pavyzdžius, kuriuose parodysime duomenų modelio, pavaizduoto stačiakampėmis diagramomis, pervedimą į reliacinį modelį.

Anksčiau pateikta DB, skirta lėktuvų bilietų rezervavimui, pervedama į reliacinę DB, susidedančią iš dviejų lentelių:

REISAS (REISO_NR., IŠVYKIMO PUNKTAS, ATVYKIMO PUNKTAS, LĖKTUVO TIPAS);

LAISVOS VIETOS (REISO_NR., DATA, LAISVOS VIETOS).

Šiuo atveju nėra perteklinių laukų (DE), nes rodykliniame modelyje ryšį tarp atskirų įrašų tipų nurodo bendras atributas „Reiso Nr.”. Pateiktose schemose lentelė „REISAS” vadinama pagrindine lentele lentelės „LAISVOS VIETOS” atžvilgiu, o lentelė „LAISVOS VIETOS” – antrine lentele lentelės „REISAS” atžvilgiu. Pažymėtina, kad į reliacinę DB įeinančių lentelių schemų užrašymo tvarka gali būti bet kokia.

Panagrinėsime DB, aprašančią kurios nors įstaigos skyrių darbinę veiklą (žr. 2 pav.).Čia kiekvienas darbas atliekamas viename skyriuje.

2 pav. DB, aprašančios darbinę įstaigos veiklą, rodyklinis vaizdavimas

Pervedę šios DB rodyklinę formą į reliacinę, gauname tokias lentelių schemas:

SKYRIUS (SKYRIAUS_NR, PAVADINIMAS, VADOVAS, BIUDŽETAS);

DARBAS (DARBO_NR, SKYRIAUS_NR, DARBO_APRAŠYMAS);

DARBUOTOJAI (DARBUOTOJO_NR, DARBO_NR, PAVARDĖ, SKYRIAUS_NR, ALGA);

DARBINĖ_VEIKLA (PASKYRIMO_DATA, DARBUOTOJO_NR, PAREIGOS);

ALGOS_KEITIMAI (KEITIMO_DATA, DARBUOTOJO_NR, ALGA).

Čia atsižvelgiama į tai, jog požymis „DARBO_NR” nėra visuotinai priimtas identifikatorius įstaigoje, o kiekviename skyriuje yra savi darbų numeriai. Todėl pilnai darbų identifikacijai į lentelės „DARBAS” schemą įvedamas papildomas laukas „SKYRIAUS_NR”, kuris kartu su lauku „DARBO_NR” sudaro pirminį raktą. Laukas „DARBUOTOJO_NR” įvedamas į lentelių „DARBINĖ_VEIKLA” ir „ALGOS_KEITIMAI” schemas taip pat kaip pirminio rakto dalis. Į lentelę „DARBUOTOJAI” įvestas papildomas laukas („DARBO_NR”), neįeinantis į pirminio rakto sudėtį, bet naudojamas ryšiui užtikrinti. Šis laukas pabrauktas punktyrine linija.

Kai DB sudaro daug lentelių, svarbu, kad būtų patenkinama vadinamoji duomenų pilnumo sąlyga – bet kurią antrinės lentelės siejančio lauko reikšmę turi atitikti tokia pati reikšmė iš pagrindinės lentelės lauko. Pvz., bet kuris lentelėje „DARBUOTOJAI” pasitaikęs skyriaus numeris turi būti aprašytas lentelėje „SKYRIUS”.

Duomenų normalizavimas ir normalinės formos

Bet kurią DB galėtų sudaryti tik viena lentelė. Tačiau jei būtų daug lentelės laukų ir gausu duomenų, atsirastų žymus duomenų pertekliškumas, dubliavimas, o apdorojant duomenis reikėtų sugaišti nemažai papildomo laiko. Norint to išvengti, tenka didelę, sudėtingos struktūros lentelę suskaidyti (dekomponuoti) į mažesnes, paprastesnės struktūros lenteles. Šis procesas vadinamas normalizavimu. Jo metu sprendžiamos tokios problemos: a) kaip sugrupuoti duomenų elementus, t. y. kokius laukus surinkti į vieną lentelę, b) kaip parinkti raktus, c) kaip tarp lentelių nustatyti ryšius.

Normalizuojama keliais žingsniais
metu lentelės įgyja atitinkamas pateikimo formas, vadinamas normalinėmis formomis (NF). Taigi normalizuojamos lentelės pervedamos iš vienos NF į kitą. Pirmiausia apibrėšime terminą „funkcinė priklausomybė”.

Sakoma, kad lentelės laukas B funkcionaliai priklauso nuo tos pačios lentelės lauko A, jei bet kuriuo momentu kiekvieną A reikšmę atitinka ne daugiau kaip viena B reikšmė. Kitaip tariant, A lauko reikšmės identifikuoja B lauko reikšmes. Trumpai tai užrašoma naudojant rodyklę: A -> B. Jei keli laukai priklauso nuo vieno lauko A, pateikiamas jų sąrašas, pvz., A -> B, C, D.

Pažymėtina, kad funkcinės priklausomybės atspindi duomenų vidinius, prasminius ryšius, tuo tarpu laukai – duomenų struktūrą.

Jei neraktinis laukas funkcionaliai priklauso nuo sudėtinio rakto atskiros dalies, tai suprantama kaip šio lauko dalinė funkcinė priklausomybė nuo rakto. Jei neraktinis laukas priklauso tik nuo viso sudėtinio rakto, o ne nuo atskirų dalių, tai sakoma, kad yra pilna funkcinė šio lauko priklausomybė nuo rakto. Jei A, B ir C laukams egzistuoja priklausomybės A -> B bei B -> C, bet atvirkštinių priklausomybių nėra, tai sakoma, kad C tranzityviai priklauso nuo A.

Dabar apibūdinsime tris pagrindines NF. Lentelė yra pirmosios normalinės formos (1NF), jeigu kiekvienas neraktinis laukas yra pilnoje arba dalinėje funkcinėje priklausomybėje nuo bet kokio galimo tos lentelės rakto.

Lentelė yra antrosios normalinės formos (2NF), jeigu kiekvienas jos neraktinis laukas yra pilnoje funkcinėje priklausomybėje nuo bet kokio galimo tos lentelės rakto.

Lentelė yra trečiosios normalinės formos (3NF), jeigu kiekvienas jos neraktinis laukas yra tiesioginėje pilnoje, bet ne tranzityvioje priklausomybėje nuo bet kokio galimo tos lentelės rakto.

Kaip 1NF lentelės pavyzdį galima pateikti lentelę, turinčią informaciją apie gaminių tiekimą. Lentelės schema yra tokia:

TIEKIMAS (TIEKĖJO_NR (TN), GAMINIO_NR (GN), TIEKĖJO_PAVARDĖ (TP), DUOMENYS_APIE_TIEKĖJĄ (TD), TIEKIMO_KAINA (TK)).

Funkcinės priklausomybės tarp šios lentelės laukų:

TN+GN -> TP, TD, TK

TN -> TP, TD .]

Čia pirmoje eilutėje parodytos pilnos funkcinės priklausomybės nuo pirminio rakto, o antroje – dalinės funkcinės priklausomybės nuo sudėtinio rakto dalies TN.

Kaip matome, laukai TP ir TD, būdami neraktiniais laukais, funkcionaliai priklauso nuo vienintelio galimo rakto TN+GN dalies TN. Taigi ši lentelė nėra 2NF, tai reiškia, kad ji yra 1NF.

Šiuo metu Jūs matote 30% šio straipsnio.
Matomi 2741 žodžiai iš 9135 ž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.