3 TEMA

 

 

 

Duomenų bazės samprata

 

Duomenų bazė -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.

Platesne prasme duomenų bazė tapatinama su duomenimis ir programų rinkiniu, atliekančiu tų programų apdorojimo operacijas. Toks rinkinys vadinamas duomenų bazių valdymo sistema (DBVS).

Plačiausia prasme duomenų bazė – tai informacinių, programinių, matematinių, kalbinių, organizacinių ir techninių priemonių, įvertinant saugomus duomenis ir taip pat technologiniame procese užimtą personalą, sistema, skirta centralizuotam duomenų kaupimui, siekiant gauti tuo metu reikalingą informaciją.

Duomenims, saugomiems duomenų bazėje, būdingos šios savybės:

§    integruotumas;

§    nepertekliškumas;

§    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ė – nepertekliškumas - 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.

Duomenų bazių modeliai. Pagal tai, kokiu būdu duomenys jungiami į visumą, išskiriami šie duomenų organizavimo modeliai (DB tipai):

§    tinklinis modelis;

§    hierarchinis modelis;

§    reliacinis modelis;

§    objektinis modelis.

Pastaruoju metu bene populiariausios duomenų bazės, kuriose duomenys organizuojami pagal reliacinį modelį, -tai reliacinės duomenų bazės.

 

Hierarchinis modelis. Hierarchiniam duomenų modeliui yra būdingas žemesnio lygmens objektų pavaldumas aukštesniojo lygmens objektams. Aukštesnio ir žemesnio lygmens objektus sieja ryšys “vienas su daugeliu”. Be įprastinių operatorių, tokiose DB naudojami ir perėjimo iš vieno hierarchijos lygio į kitą operatoriai.

Pavyzdžiui, muzikinių grupių hierarchinės DB modelis galėtų būti toks:

Pav. 1 Hierarchinio modelio pavyzdys

 

Tinklinis modelis . Tinklinę duomenų struktūrą galima pateikti, pavyzdžiui, tokia schema:

Pav. 2 Tinklinio modelio pavyzdys

 

Tinklinis modelis dažniau taikomas geografinėse informacinėse sistemose.

 

Reliacinis duomenų modelis. Reliacinį duomenų modelį 1969 metais pasiūlė firmos IBM darbuotojas E.F.Kodas (E.F.Codd). Reliacinė duomenų bazė – tai tokia duomenų visuma kurioje informacija saugoma dvimatėse lentelėse. Kiekviena lentelė susideda iš eilučių (dar vadinamų įrašais arba kortežais (record)) ir stulpelių (dar vadinamų laukais arba atributais (field)). Naudosime įvairias šių terminų poras.

Eilutėse yra duomenys apie pateiktus lentelėje faktus (dokumentus, žmones, vienu žodžiu, – vieno tipo objektus). Stulpelių ir eilučių susikirtimuose yra konkrečios saugomų lentelėje duomenų reikšmės (laukų reikšmės).

Pav. 3 Dvimatės lentelės pavyzdys

      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:

§    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. atskiro lauko reikšmės yra vieno tipo. Tačiau skirtinguose laukuose gali būti skirtingų tipų duomenys;

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

§    Į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. Lentelės vardas turėtų atspindėti atitinkamo realaus informacinio objekto pavadinimą, o laukų vardai – to objekto atributų pavadinimus.

 

Lentelių raktai. Nors skaitoma, kad eilutės lentelėje nėra išrūšiuotos, bet kuri DBVS turi rūšiavimo pagal eilutes ir stulpelius įrankius.

Kadangi stulpelių išdėstymo tvarka taip pat nesvarbi, kreipimasis į juos vykdomas pagal jo vardą, kurie duotoje lentelėje turi būti unikalūs, bet neprivalo būti tokie visoje duomenų bazėje.

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 (primary key). Jei pirminį raktą sudaro keli laukai, jis vadinamas sudėtiniu pirminiu raktu  (composite primary key).

 

Lentelių pateikimo formos. 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.  3 pav. pateiktos lentelės schema atrodo taip:

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

CUSTOMERS

CustomerID

CompanyName

City

Country

...

Didesniam vaizdumui gauti nustatant ryšius tarp lentelių taip pat dažnai naudojama stačiakampė lentelės schema:

Užsakymai

UŽSAKYMO NUMERIS

PIRKĖJO KODAS

PREKĖS KODAS

UŽSAKYMO DATA

UŽSAKYTAS KIEKIS

 


         

          Ryšiai tarp lentelių. Į 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).

          Galima pastebėti 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.

Reliacinis DB modelis. Ankstesnėje temoje suformuotą rodyklinį bilietų rezervavimo DB modelį:

pervesime į reliacinį DB modelį:

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

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

 

Arba:

 

 

Pirmoje schemoje sąryšį (relationchip) tarp lentelių sukuria raktinis atributas Reiso Nr.”. Čia lentelė „REISAS” vadinama pagrindine (master) lentele lentelės „LAISVOS VIETOS” atžvilgiu, o lentelė „LAISVOS VIETOS” -antrine (detail) lentele lentelės „REISAS” atžvilgiu.

Antroje schemoje raktiniai atributai CustomerID išskirti į pirminį (PK) ir išorinį (FK) raktus.  Pirminio rakto prasmę jau aptarėme anksčiau.

Laukas, nurodantis įrašą kitoje lentelėje, kuris susijęs su duotu įrašu, vadinamas išoriniu raktu (foreign key). Mūsų atveju lentelės Orders išorinis raktas yra laukas CustomerID.

Kitaip tariant, išorinis raktas – tai laukas ar jų rinkinys, kurio reikšmės sutampa su kitos lentelės pirminio rakto reikšmėmis.

Ryšys tarp lentelių nustatomas (sudaromas) priskiriant vienos lentelės išorinio rakto reikšmes kitos lentelės pirminio rakto reikšmėms.

Toliau pateikimas įstaigos darbinės veiklos informacinio modelio pavyzdys:

 

Įstaigos darbinės veiklos reliacinės DB modelis bus:

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.

                 Taigi, reliacinė DB lentelių schema bus:

Lentelių sąryšio schema (relationship), sudaryta su DBVS MS Access atrodys sekančiai:

                                                                                                                            

 

Parengta pagal:

 

  1. J.Adomaitis ir kt. Informatika I dalis Vadovėlis, L-kla “Technolgija”, Kaunas, 1999.
  2. A.Saulis, O.Vasilecas INFORMACINIŲ SISTEMŲ PAGRINDAI, mokomoji knyga, Technika, Vilnius, 1998.
  3. Prieiga per internetą: http://distance.ktu.lt/kursai/informatika1/8/