114
Andrejs STEPANOVS DATU BĀZES DATORIZĒTĀS PROJEKTĒŠANAS PROBLĒMU ANALĪZE Maģistra darbs Zinātniskais vadītājs Dr.sc.ing., prof. J.EIDUKS Rīga 2007

RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

Andrejs STEPANOVS

DATU BĀZES DATORIZĒTĀS PROJEKTĒŠANAS PROBLĒMU ANALĪZE

Maģistra darbs

Zinātniskais vadītājsDr.sc.ing., prof.

J.EIDUKS

Rīga 2007

Page 2: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

ANOTĀCIJA

DATU BĀZE, DATORIZĒTA PROJEKTĒŠANA, CASE RĪKI, DATU MODELIS,

TRANSFORMĀCIJAS LIKUMI

Maģistra darbā ir apskatīta datu bāzes datorizētas projektēšanas tehnoloģija. Ir izanalizēts

konceptuālais un loģiskais datu modelis, ka arī datu bāzu fiziskais modelis. Ir izpētīti

datorizētas projektēšanas CASE rīki, kas ļauj automatizēt datu bāzes veidošanas procesu un ar

transformācijas likumu palīdzību no datu bāzes konceptuāla un loģiskā modeļa iegūt fiziskās

struktūras. Darbā ir piedāvāti varianti kā šādus transformācijas procesus var uzlabot.

Maģistra darba apjoms ir 80 lappuses, kas sevī iekļauj 45 attēlus, 5 tabulas. Darbā ir

ievietotas atsauces uz 33 literatūras avotiem.

2

Page 3: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

SATURA RĀDĪTĀJS

IEVADS.....................................................................................................................................81. DATU BĀZES DATU MODEĻU ATTĪSTĪBA...............................................................10

1.1. Datu glabāšana izplātās datnēs......................................................................................101.2. Datu bāzes vadības sistēma un datu modelis................................................................101.3. Pirmsrelāciju datu bāzu modeli.....................................................................................11

1.3.1. Hierarhiskais datu bāzu modelis.........................................................................121.3.2. Tīkla datu bāzu modelis......................................................................................13

1.4. Relāciju datu bāzu modelis...........................................................................................131.4.1. Relāciju datu bāzu modeļa apraksts....................................................................141.4.2. Relāciju datu bāzu modeļa realizācija................................................................151.4.3. Relāciju datu bāzu modeļa fiziskās struktūras....................................................17

1.5. Objektu modelis............................................................................................................191.5.1. Objektorientētas pieejas jēdzieni........................................................................191.5.2. Objektu datu bāzu modelis.................................................................................201.5.3. Objektu datu bāzu fiziskās struktūras.................................................................21

1.6. Relāciju-objektu modelis..............................................................................................211.6.1. Relāciju-objektu modeļa apraksts.......................................................................211.6.2. Relāciju-objektu datu bāzu fiziskās struktūras...................................................22

1.7. Citi modeli.....................................................................................................................241.7.1. XML modelis......................................................................................................241.7.2. Asociatīvais datu modelis...................................................................................251.7.3. Modelis Realitāte-Atribūts-Vērtība....................................................................28

2. DATU BĀZU PROJEKTĒŠANA......................................................................................302.1. Realitāšu-saišu diagramma............................................................................................32

2.1.1. Realitāte un realitātes atribūts.............................................................................332.1.2. Saites un kardinalitāte.........................................................................................35

2.2. UML klašu diagramma.................................................................................................372.2.1. Klase un klases atribūti.......................................................................................372.2.2. Klases operācijas (metodes)...............................................................................382.2.3. Asociācijas saite (attiecības starp klasēm)..........................................................382.2.4. Vispārinājuma saite............................................................................................402.2.5. Agregācijas saite.................................................................................................402.2.6. Kompozīcijas saite..............................................................................................40

2.3. Paplašināta realitāšu-saišu diagramma..........................................................................412.4. Citi modeļi.....................................................................................................................43

3. CASE RĪKI..........................................................................................................................444. TRANSFORMĀCIJAS LIKUMI......................................................................................46

4.1. Relāciju datu bāzes transformācijas likumi...................................................................474.1.1. Vienkāršas struktūras..........................................................................................474.1.2. Unārā saite..........................................................................................................474.1.3. Binārā saite.........................................................................................................474.1.4. Ternārā un n-ārās saite........................................................................................484.1.5. Vispārinājuma un agregācijas saite....................................................................48

4.2. UML un realitāšu-saišu diagrammu atbilstība..............................................................694.3. Objektu datu bāzu transformācijas likumi....................................................................694.4. Relāciju-objektu datu bāzes transformācijas likumi.....................................................72

3

Page 4: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

4.4.1. Saliktais atribūts.................................................................................................734.4.2. Metode................................................................................................................734.4.3. Binārā saite viens pret daudziem........................................................................744.4.4. Vispārinājuma saite............................................................................................74

SECINĀJUMI.........................................................................................................................80LITERATŪRAS SARAKSTS................................................................................................83

4

Page 5: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

IEVADS

Datu bāzu sistēma ir datorizētā sistēma, kuras pamatuzdevums ir glābāt informāciju,

sniedzot lietotājiem rīkus šīs informācijas izgūšanai un modificēšanai. Par informāciju tiek

uzskatīts viss nepieciešamais lietotāja vai organizācijas darbam [6]. Datu bāzu pētījumu

panākumi ir cieši saistīti ar lietojumprogrammatūras attīstību, kura sasniedza milzīgu

ražotspēju un būtiski ietekmēja ekonomiku. Pasaulē datu bāzu tehnoloģijas pētniecībā tiek

ieguldīts vairāk nekā 10 miljardi eiro gadā. Datu bāzu pētījumu panākumu rezultāti kļuva par

komunikācijas sistēmu, transporta un loģistikas, finanšu pārvaldības, zināšanu bāzu sistēmu,

kā arī civilo un militāro lietojumprogrammu pamatu [5].

Datu bāzes ir informācijas sistēmu pamats. Lai sekmīgi realizētu sistēmu, kuras pamatā

ir datu bāze, pirmkārt, ir jādomā par datiem, tad par lietojumiem. Slikti izprojektēta

sistēma radīs kļūdas, kā rezultātā lietotāji pieņems nepareizus lēmumus, kuru sekas negatīvi

ietekmēs organizācijas darbību [5].

Datu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas,

nevis ar tehnisko realizāciju, bet gan ar datu bāzes satura definēšanu. Lai datu bāze būtu

kvalitatīva:

1) jāpārliecinās par datu bāzes satura atbilstību dotas problēmvides informācijas

struktūrai;

2) jānodrošina datu bāzes satura vienkāršošana, tādējādi atvieglojot tālāko darbu

izstrādātājiem un lietotājiem;

3) jānodrošina satura izteiksmība, tam jāspēj attēlot atšķirības un saites starp datiem;

4) jānovērš datu dublēšanās, jāizslēdz nevajadzīga informācija [5].

Informācija par apskatāmās problēmvides datiem tiek iegūta aptaujājot potenciālos

lietotājus un analizējot eksistējošos dokumentus, pētot organizācijas kultūru, pielietojot citas

sistēmu analīzes un zināšanu iegūšanas metodes. Lai veiksmīgi un kvalitatīvi varētu iegūt

informāciju no lietotājiem, labi jāizprot loģiskās datu struktūras, kurās viņi veido savu

izpratni:

1) informācijas sistēmu veidošanās sākumposmā tika uzskatīts, ka lietotāji informācijas

sistēmu iedomājas kā “melno kasti” un operē ar ieejas un izejas datiem;

2) vēlāk dominēja uzskats, ka lietotāji datus grupē un analizē kā tabulveida struktūras;

3) attīstoties objektorientētai programmēšanai, tika izvirzīta tēze, ka nedrīkst datus

apskatīt atsevišķi no to izmantojuma. Dati tika grupēti objektos atkarībā no to

5

Page 6: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

izmantojuma. Veidojās objektu hierarhijas, vienāda tipa objektiem piekārtojot

nepieciešamo funkcionalitāti (metodes).

Izmantojot šos priekšstatus, tika izveidoti vairāki datu konceptuālie modeļi, kuri tika un tiek

izmantoti datu bāzes projektēšanā. Populārākais no šiem modeļiem ir realitāšu-saišu

diagramma (Entity-Relationship diagram), kas dažādās izpildes modifikācijās ir visplašāk

lietotais datu bāzu datu konceptuālais modelis. Otrs populārākais modelis datu bāzu datu

modelēšanai ir UML valodas klašu modelis. Šis modelis ir orientēts uz datu objektu un

metožu priekšstatu.

Arī datu bāzu datu glabāšanas struktūras ir veikušas garu attīstības ceļu. Pirmās datu bāzes

izmantoja datu hierarhiskās, tīklveida struktūras. Plaša datu bāzes tehnoloģijas izmantošana

iesākās līdz ar relāciju struktūru izmantošanu datu glabāšanai. Turpinājumā tika ieviestas datu

objektu struktūras (objektu datu bāzes un relāciju-objektu datu bāzes).

Datu bāzes datorizētai projektēšanai tika izveidoti speciālas interaktīvas programmu

paketes, kuras ļauj grafiski definēt datu bāzes konceptuālo modeli un veikt tā transformāciju

uz norādītās datu bāzes vadības sistēmas datu glabāšanas struktūrām. Tehnoloģija, kad

informācijas sistēmas projektētājs savas vēlmes un priekšstatus definē grafisku diagrammu

veidā, un pēc tam sistēma automātiski veic datu bāzu datu, glabājamo struktūru un

lietojumprogrammu ģenerēšanu, tika nosaukta par CASE (Computer-Aided Software

Engineering) tehnoloģiju. Mūsdienās tiek piedāvātas vairāk kā 100 programmu pakešu, kas

realizē šo tehnoloģiju. Parasti šīs programmu paketes sauc par CASE rīkiem. Projektētājiem ir

iespējams izvēlēties savām vēlmēm vislabāk atbilstošo rīku.

Diemžēl, lai kvalitatīvi un efektīvi lietotu CASE tehnoloģiju un CASE rīkus, ir daudz

neatrisinātu problēmu:

1) esošo datu bāzu datu konceptuālo modeļu grafisko elementu klāsts ir nepilnīgs,

dažādos CASE rīkos tas ir atšķirīgs un bieži vien nepietiekams;

2) datu bāzu konceptuālā modeļa elementi parasti tiek transformēti uz vienkāršākām datu

glabāšanas struktūrām, kas nedod vēlamo efektivitāti. Bieži vien tas rada arī

nevajadzīgi sarežģītu datu glabāšanas interpretējumu;

3) neeksistē pilnvērtīgās un automātiskās datu bāzes konceptuālo modeļu elementu

transformācijas uz efektīvākajām relāciju, relāciju-objektu un objektu datu bāzes datu

glabāšanas struktūrām. Jo īpaši varētu atzīmēt, ka ļoti vājš transformāciju

nodrošinājums ir relāciju-objektu datu bāzēm.

Tāpēc ir ļoti svarīgi izvērtēt konceptuālo modeļu elementu esošo transformāciju klāstu un

nepieciešamos transformāciju papildinājumus.6

Page 7: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

1. DATU BĀZES DATU MODEĻU ATTĪSTĪBA

Gandrīz visas netriviālas lietojumprogrammas strādā ar lielu datu apjomu, vairums no

lietojumprogrammām ir veidotās tieši datu apstrādei. Pirms tika ieviestas datu bāzes vadības

sistēmas, lietojumprogrammas strādāja ar datiem, kas glabājas izplātās datnēs (flat files).

1.1. Datu glabāšana izplātās datnēs

Izplātā datne ir „datne, kas nav fizikāli saistīta ar citām datnēm un nesatur norādes uz tām.

Izplātajai datnei nepiemīt hierarhiska struktūra [8].

Šādai pieejai ir vairāki trūkumi:

glabājot datus izplātās datnēs nav iespējams attēlot loģiskās saites starp datiem;

šādas sistēmas ir grūti programmēt, īpaši, ja datu struktūra ir sarežģīta, tad arī visas

lietojumprogrammas ātrdarbība ir zema – lai atrastu kādu konkrētu informāciju, ir

jāapstrādā visa datne;

datu dublēšanās [15, 20].

1.2. Datu bāzes vadības sistēma un datu modelis

Vajadzība ērti un ātri strādāt ar lieliem datu apjomiem kalpoja par datu bāzes vadības sistēmu

rašanas iemeslu.

Datu bāzes vadības sistēma ir „lietojumprogrammatūra, kas organizē datus datu bāzē,

nodrošinot to uzglabāšanu, izguvi, drošību un integritāti” [8]. Datu bāzes vadības sistēmas

sniedz iespējas atjaunot datus, meklēt tos, kā arī ļauj lietojumprogrammu izstrādātājiem

mazāk domāt par datu glabāšanas fiziskām detaļām, vairāk pievēršoties loģiskiem

jautājumiem (1. att.).

7

Page 8: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

1. att. Informācijas sistēmas arhitektūra

Veidojot datu bāzi izstrādātājs sastapās ar problēmu kopu. Datu modeli piedāvā atšķirīgus

šādu problēmu risinājumus. E.Kods definē datu modeli kā trīs komponentu kombināciju:

1) datu struktūru tipu kopums (celtniecības bloki jebkurai datu bāzei, kas atbilst

modelim);

2) operatoru vai izvedumkārtulu kopums, kas ierobežo datu struktūru tipus, to

kombinācijas;

3) operāciju kopums, kas tiek pielietots datu struktūru tipiem (datu ievietošanai,

rediģēšanai, izgūšanai, u.t.t) [4].

1.3. Pirmsrelāciju datu bāzu modeli

Tā kā relāciju modelim ir svarīgāka loma datu bāzu tehnoloģijā un tas attīstībā, bieži datu

bāzu modeļus klasificē kā pirmsrelāciju un pēcrelāciju. Pirmsrelāciju modeļi sakarā ar relāciju

modeļa paradīšanās un tā pārākumu zaudēja savu popularitāti, bet to izpēte palīdz saprast kā

evolucionēja datu bāzu tehnoloģija un kādas prasības bija izvirzītas relāciju modeļim, kurā ir

novērsti vairāki no pirmsrelāciju modeļa trūkumiem. Pazīstamākie no pirmajiem datu bāzu

modeļiem ir hierarhiskais un tīkla datu bāzu modelis.

8

Page 9: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

1.3.1. Hierarhiskais datu bāzu modelis

Hierarhiskajā datu bāzu modelī dati tiek organizēti koka struktūrā: katram vecākam var būt

vairāki bērni, bet katram bērnam ir tikai viens vecāks (2. att.).

2. att. Hierarhiskais modelis

Hierarhiska datu bāzu modeļa pazīstamāka realizācija ir IBM sistēma IMS.

XML datubāzēm arī piemīt hierarhiskā struktūra (XML modelis ir apskatīts zemāk).

Hierarhiskā modeļa priekšrocības:

modelis nodrošina divu veidu saites starp realitātēm – “viens pret vienu” un “viens

pret daudziem”;

ātra piekļuve datiem, ja tiek izmantotas iepriekšdefinētas saites [10].

Modeļa trūkumi:

nav iespējams izveidot realitāti, kurai būtu vairāki vecāki (vienīgais, piesaistīt

jaunu vecāku var realitātes kopijai, kas noved pie datu dublēšanās);

nav izmantojama, ja ir bieži jāpielieto vaicājumi, kas nebija ieplānoti iepriekš –

modelis “nav elastīgs” [10].

9

Page 10: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

1.3.2. Tīkla datu bāzu modelis

Tīkla datu bāzu modelī dati tiek organizēti koka struktūrā, bet atšķirībā no hierarhiska modeļa

vienam bērnam var būt vairāki vecāki (3. att.).

3. att. Tīkla modelis

Līdzīgi kā hierarhiskam modelim, ja piekļuve datiem notiek izmantojot iepriekšdefinētas

saites, tad tā ir ātra [10].

Modeļa trūkumi:

neieplānoto vaicājumu izpilde var būt ļoti sarežģīta [10];

datu modelis nav pilnībā neatkarīgs no lietojumprogrammas (jā tiek mainītas datu

struktūras, tad arī jārediģē lietojumi).

1.4. Relāciju datu bāzu modelis

Relāciju modelis ir mūsdienu datu bāzu tehnoloģijas pamats [6]. Relāciju datu bāzu modeļi

piedāvāja E.Kods (Edgar F. Codd) 1970. gadā. Vēlāk vairākos darbos E.Kods raksta, kādus

mērķus viņš centās sasniegt ar šo modeli:

1) augsts datu neatkarības līmenis;

2) vienkāršāka iespējama struktūra, kas atbilst semantiskām prasībām (jānodrošina

iespēja neprogrammētājiem strādā ar datiem gadījumos, kuros agrāk bija nepieciešams

programmētāju darbs, ka arī jāpaaugstina programmētāju darba efektivitāte);

3) relatīvi vienkārša datu nepretrunīguma analīze;

4) failu integrēšana datu bāzēs;

10

Page 11: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

5) attālināto datu bāzu tīklu atbalsts;

6) datu bāzes administratora darba vienkāršošana [3, 7].

1.4.1. Relāciju datu bāzu modeļa apraksts

Būdams pēc izglītības matemātiķis, E.Kods piedāvāja datu apstrādei izmantot kopu teorijas

aparātu, kas iekļauj sevī tādas kopu operācijas kā apvienojums, šķēlums, starpība un Dekarta

reizinājums. E.Kods paradīja, ka jebkurus datus var attēlot kā īpaša veida divdimensiju tabulu

kopumu, kas matemātikā ir zināma kā attiecība, relācija (relation).

Mazāka datu vienība relāciju modelī ir atsevišķa, atomāra (nedalāma) datu vērtība, kas ir

atkarīga no konkrēta datu modeļa. Tā, vienā priekšmetiska jomā vārds un uzvārds var tikt

apskatīti kā viena vērtība, bet citā – kā divas atšķirīgas vērtības.

Par domēnu sauc viena tipa atomāru vērtību kopu. Piemēram, starppilsētu satiksmē,

sākuma vai gala staciju domēns ir apdzīvotu vietu kopa, bet reisa numuru domēns ir veselu

pozitīvu skaitļu kopa.

Domēnu nozīme ir sekojoša. Ja divu atribūtu vērtības tiek ņemtas no viena un tā paša

domēna, tad, iespējams, šos atribūtus ir jēga salīdzināt (piemēram, var veikt vaicājumu, lai

uzzinātu, vai ar trīs latiem pietiek, lai aizceļotu no Rīgas līdz Liepājai). Ja atribūtu vērtības

tiek ņemtas no dažādiem domēniem, tad to salīdzināšanai, visticamāk, nav nekādas nozīmes

(nav vērts salīdzināt reisa numuru ar biļetes cenu).

Attiecības sastāv no virsraksta un ķermeņa. Piemēram, autobusa satiksme (4. att.) [30].

4. att. Attiecības struktūra

11

Page 12: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

Tāpēc kā attiecība ir kopa, bet kopas pēc definējuma nesatur vienādus elementus,

noteiktajā laikā momentā nevar būt situācija, kad viens kortežs ir cita korteža dublikāts.

Augstākminētie un vēl citi matemātiskie jēdzieni tiek izmantoti kā relāciju modeļa

teorētiska bāze, bet praktiskajā realizācija tiek izmantoti sekojoši šo jēdzienu ekvivalenti:

Attiecība – Tabula (retāk Fails),

Kortežs – Rinda (retāk Ieraksts),

Atribūts – Lauks, Aile, Šūna.

Relāciju modeļi raksturo zema ātrdarbība, kas ir cena par iespēju veikt neieplānotus

vaicājumus [10]. Relāciju modelim ir vairākas priekšrocības. Modelis, atšķirībā no

hierarhiska un tīkla datu bāzu modeļiem, atbalsta neieplānoto vaicājumu izpildi. Saites vairs

nav datubāzes sastāvdaļā, tas tiek izmantotas nepieciešamības gadījumā. Relāciju datu bāzi

var modificēt, neapstādinot darbu ar to. Salīdzinot ar iepriekšējiem modeļiem, relāciju datu

bāzes sniedz sekojošas priekšrocības:

iebūvēta daudzlīmeņu integritāte: datu integritāte ir iebūvēta modelī lauku

līmenī, lai nodrošinātu datu pareizību; tabulas līmeņi, lai nodrošinātu ierakstu

nedublēšanos un, lai atklātu trūkstošas primāro atslēgu vērtības; saišu līmenī, lai

nodrošinātu to, ka saites starp tabulu pāriem ir spēkā esošas; un biznesa līmenī, lai

nodrošinātu datu atbilstības biznesa videi;

loģiskā un fiziskā datu neatkarība no datu bāzes lietojumprogrammām:

lietotāja izmaiņas datu bāzes loģiskajā projektējumā, vai lietojumprogrammatūras

izstrādāja izmaiņas datu bāzes fiziskajā realizācijā neietekmē lietojumprogrammas,

kas izmanto šo datu bāzi;

garantēts datu nepretrunīgums un precizitāte: dati ir nepretrunīgi un pareizi

pateicoties vairākiem datu integritātes līmeņiem;

ērta datu izguve: pēc lietotāja komandas, dati var būt izgūti kā no atsevišķas

tabulas, tā arī no vairākām saistītām tabulām datu bāzes robežās. Tas ļauj

lietotājam apskatīt informāciju gandrīz neierobežoto variantu skaitā [11].

1.4.2. Relāciju datu bāzu modeļa realizācija

Relāciju datu bāze ir attiecību kopa, kas satur visu informāciju, kurai jāglabājas datu bāzē. Bet

lietotāji var uztvert šādu datu bāzi kā tabulu kopu (5. att.) [30]:

12

Page 13: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

1) katrai tabulai ir unikāls vārds un tā sastāv no vienāda tipa rindām;

2) rindām ir fiksēts lauku un vērtību skaits (jebkurā laukā ne vairāk par vienu vērtību);

3) rindas obligāti atšķiras viena no otras minimāli ar vienu vērtību, kas ļauj viennozīmīgi

identificēt jebkuru tabulas rindu;

4) tabulas robežās stabiņiem ir unikāli vardi, katrā no tiem tiek izvietotas viendabīgas

datu vērtības (datumi, uzvārdi, veseli skaitļi vai naudas summas);

5) strādājot ar tabulu, tas rindas un stabiņus var apstrādāt jebkurā kārtība, neskatoties uz

to informacionālu saturu, ko veicina tabulu un stabiņu vārdu esamība. Iespēja izdalīt

jebkuru rindu vai jebkuru rindu kopu, kas atbilst noteiktam nosacījumam (piemēram,

reisi ar gala staciju Ventspils un pienākšanas laiku līdz 12:30).

5. att. Relāciju datu bāzi lietotājs var uztvert kā tabulu kopu

Eksistē vairākas relāciju modeļa realizācijas (TutorialD, TQL, Quel u.c), bet izplatītāka ir

IBM kompānijas izstrādāta strukturēto vaicājumu valoda SQL, kas ir arī standartizēta. SQL

valoda ir daudz kritizēta no teorētiķu puses, kuri uzskata, ka SQL valoda nekorekti atbalsta

relāciju modeli vai atbalsta to nepilnā mērā [6]. Neskatoties uz šiem pārmetumiem, SQL

valoda attīstās un uz to balstās gandrīz jebkura mūsdienu relāciju datu bāzu vadības sistēma,

piemēram, SQL2003 standarta realizācijas piedāvā tādi datu bāzu vadības sistēmu ražotāji kā

IBM, MySQL, Oracle, PostgreSQL, Microsoft, Sybase, kā arī citi [13].

13

Page 14: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

1.4.3. Relāciju datu bāzu modeļa fiziskās struktūras

SQL valodas struktūras nav ierobežotas ar tabulām un tabulu kolonnām. Nodaļā ir aprakstītas

tikai plašāk izmantotās struktūras. Ārpus aprakstītam eksistē arī fiziskās struktūras, kas ir

specifiskas noteiktām datu bāzu vadības sistēmām.

Tabulas ir realitāšu fiziskais ekvivalents, datu konteineris, kas sastāv organizēts rindu un

kolonnu veidā. Tabulas var būt saistītas sava starpā ar ārējo atsauču (foreign key) palīdzību.

Skats (view) ir struktūra, kuras pamatā ir vaicājuma rezultāts, bet kura var būt izmantotā

tādā pašā veidā (ar dažiem ierobežojumiem) kā tabula. Ja kādā instrukcijā ir norāde uz skatu,

tad vaicājuma rezultāta dati kļūst par skata saturu šis instrukcijas darbības laikā. Dažas datu

bāzu vadības sistēmas atbalsta materializētus skatus, kuri atšķirībā no skatiem tiek fiziski

veidoti uz skata vaicājuma pamata, tāpēc materializētie skati ir līdzīgi tabulām. Skata kolonnu

nosaukumi var neatbilst tabulu kolonnu nosaukumiem, bieži skatu kolonnām ir nosaukumi,

kuri ir vieglāk saprotami lietotājiem. Skatu izmantošanas iemesli:

datu grupu iepriekšēja sagatavošana labākai ātrdarbībai (lietojot materializētus skatus);

piekļuves ierobežošana tabulām, tabulu kolonnām vai noteiktām datu vērtībām;

tabulu iespējamo izmaiņu novēršana;

tabulu un kolonnu pārdēvēšana ērtākai saskarnei [1].

Skati parasti ir tik efektīvi, cik efektīvi ir vaicājumi, uz kuru pamatā skati tiek veidoti. Tāpēc

ir svarīgi veidot ātrdarbīgus, labi uzrakstītus vaicājumus.

Visi biznesa vides datu elementi tiek apskatīti kā kolonnu kandidāti.

Ierobežojumi (constraints) – noteikumi, kas nosaka, kuri dati ir pieļaujami veicot insert,

update un delete operācijas, t.i. veicot datu ievadi, rediģēšanu vai dzēšanu. Ierobežojumi

palīdz automātiski nodrošināt datu integritāti un filtrēt datus, kas tiek ievietoti datu bāzē.

SQL standartā eksistē četri ierobežojumu veidi (konkrētās datu bāzu vadības sistēmās

šādu ierobežojumu var būt vairāk):

1) unikalitātes ierobežojums (unique), jeb potenciālas atslēgas ierobežojums, nosaka,

ka vienas kolonnas vērtībām, vai vairāku kolonnu vērtību kombinācijai jābūt unikālai;

2) primāras atslēgas ierobežojums (primary key) tiek definēts vienai vai vairākām

kolonnām, kuru vērtība viennozīmīgi identificē katru tabulas ierakstu, primāras

atslēgas ierobežojums ir unikalitātes ierobežojuma īpašais gadījums. Tabulā

vienlaicīgi var eksistēt tikai viens primāras atslēgas ierobežojums, primāras atslēgas

vērtība nevar būt nedefinēta (vienāda ar NULL);

14

Page 15: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

3) ārējas atsauces ierobežojums (foreign key) tiek definēts vienai vai vairākām tabulas

kolonnām, kuras atsaucās uz citas (retāk tas pašas) tabulas kolonnu ar unikalitātes vai

primāras atslēgas ierobežojumu. Ārējas atsauces ierobežojums var novērst datu ievadi

tabulā, kurai nav atbilstošu vērtību saistītājā tabulā. Ārējas atsauces ir galvenais veids

kā sasaistīt relāciju datu bāzes tabulas savā starpā. Vienā tabulā var eksistēt vairākas

ārējas atsauces;

4) pārbaudes ierobežojumi (check) ļauj veikt salīdzināšanas operācijas, lai noteiktu, vai

vērtība atbilst dotajiem nosacījumiem [13].

Indeksi ir speciāli objekti, kas tiek noskaņoti virs tabulām un paātrina vairākas datu

manipulēšanas operācijas, piemēram, instrukciju select, update un delete izpildi. Indeksi var

paātrināt arī citas operācijas:

min() un max() vērtību noteikšana indeksēta kolonnā,

tabulas kolonnu šķirošana un grupēšana,

lauku tipa is null vai is not null meklēšana u.c.

Trigeris ir īpaša tipa procedūra, kura automātiski nostrādā, kad tabulā tiek izpildīta

noteikta, ar datu modificēšanu saistīta instrukcija. Trigeris ir tieši saistīts ar tabulu un tiek

uzskatīts par atkarīgo objektu. Piemēram, var rasties nepieciešamība atjaunot detaļu numurus

tabulā Realizācija, ja tika mainītas detaļu numuru vērtības tabulā Produkti, šādējādi

nodrošinot sinhronizāciju. Trigeris ir piesaistīts konkrētai tabulas modificēšanas komandai

(insert, update, un delete), tam ir arī noteiktais palaišanas laiks. Trigeri var būt palaisti pirms

modificēšanas komandas izpildes (before), pēc (after) vai modificēšanas komandas izpildes

vietā (instead of). Trigeri, kas tiek palaisti pirms modificēšanas komandas, vai modificēšanas

komandas vietā neredz izmaiņas, ko veic šī komanda, savukārt trigeri, kas tiek palaisti pēc

modificēšanas, var redzēt šis izmaiņas un ietekmēt tās [13].

SQL valoda nav procedūrorientēta (procedūrorientēta programma sastāv no instrukcijām,

kurās izpildās soli pa solim), arī pirmām relāciju datu bāzu vadības sistēmām nebija

procedūrorientēto iespēju. Procedūrorientētām valodām, kas bija populāras tolaik (C,

COBOL, Pascal u.c.) eksistēja paplašinājumi, kas ļāva iekļaut SQL vaicājumus

programmēšanas kodā. Ar laiku relāciju datu bāzes palika sarežģītākas un attīstījās ideja

glabāt procedūrorientētas programmēšanas moduļus kompilēta formā iekš relāciju datu bāzes

vadības sistēmas. SQL99 standartā parādījās glabājamas procedūras (persistent stored

routines) un trigeri, bet tolaik vadošajiem datu bāzu vadības sistēmu ražotajiem jau bija

izstrādāti savi procedūrorientēti moduļi. Glabājamas procedūras (stored procedures) ir

lineāras un secīgas programmas. Glabājamo procedūru sintakse ir atkarīga no realizācijas 15

Page 16: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

(datu bāzu vadības sistēmas), bet ir kopējas iezīmes. Glabājamas procedūras var atbalstīt

parametrus un atļauj lokālo mainīgo lietošanu; tas ir strukturētas un atļauj lietot apakšmoduļus

[14].

1.5. Objektu modelis

Objektu modelis ir cieši saistīta ar objektorientēto programmēšanu. Objektorientētas pieejas

idejas parādījās jau 1960-tājos gados, un šodien šī pieeja ir ļoti attīstīta, iekļaujot sevī daudz

koncepciju un jēdzienu.

1.5.1. Objektorientētas pieejas jēdzieni

Tradicionāli objektorientēta pieeja tiek balstīta uz sekojošam koncepcijām:

objekts un objekta identifikators,

atribūti un metodes,

klases,

hierarhijas un klašu mantošana, u.c. [32].

Jebkura pasaules realitāte objektorientētās sistēmās tiek modelēts objekta veidā.

Radīšanas laikā objektam tiek piešķirts sistēmas ģenerētais unikālais identifikators (object

identificator, OID), kas ir saistīts ar objektu tā pastāvēšanas laikā un netiek mainīts, ja mainās

objekta stāvoklis.

Katram objektam ir stāvoklis un uzvedība. Objekta stāvoklis ir objekta atribūtu vērtību

kopums. Objekta uzvedība – metožu kopums (programmas kods), kas operē ar objekta

stāvokli. Objekta atribūta vērtība tas ir arī objekts vai objektu kopa. Objekta stāvoklis un

uzvedība ir iekapsulēti objektā; objektu mijiedarbība notiek ar ziņojumu palīdzību un ar

attiecīgo metožu izpildi.

Objektu kopa ar identiskiem atribūtiem un metodēm veido objektu klasi. Objektam

jāpieder tikai vienai klasei (neskaitot mantošanas iespēju, kas tiek apskatīta zemāk). Ir

iespējama primitīvu iepriekšdefinētu klašu esamība, kuru objektiem-eksemplāriem nav

atribūtu: veselie skaitļi, simbolu virknes u.t.t. Klase, kuras objekti var kalpot par atribūtu

vērtībām citai klasei, tiek saukts par šī atribūta domēni.

16

Page 17: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

Ir iespējams veidot jauno klasi, par pamati ņemot jau eksistējošo – mantošana. Šajā

gadījumā jauna klase, ko sauc par eksistējošas klases (superklases) apakšklasi, manto visus

superklases atribūtus un metodes. Izšķir divus mantošanas veidus:

katrai klasei ir ne vairāk par vienu superklasi,

klase var mantot no vairākām klasēm (šādā gadījumā apakšklases objekts pieder

jebkurai superklasei),

Jāpiebilst, ka ar augstākminētajiem jēdzieniem objektorientēta pieeja nav ierobežota.

1.5.2. Objektu datu bāzu modelis

Objektu datu modelis tika izstrādāts, lai nodrošinātu pastāvīgu glabāšanu (persistence)

objektorientētām programmēšanas valodām. Palaižot objektorientēto programmu, visi tās

mainīgie tiek glabāti pamatatmiņā objektu veidā. Kad programmas izpilde ir pabeigta, atmiņā

tiek atbrīvota, bet objekti zaudēti. Objektu datu bāzes ļauj pārvietot objektus starp

pamatatmiņu un disku [28].

Visticamāk, svarīgākais raksturojums, kas atšķir objektorientētas datu bāzes, ir objektu

uzvedība. Datorsistēmās, kas balstījās uz tradicionālam datu bāzēm, eksistēja principiāla

robeža starp struktūras un uzvedības daļu. Tradicionāli informācija un procedūras tika

glabātas atsevišķi, dati un saites tika glabāti datu bāzē, bet procedūras – lietojumprogrammā.

Objektorientēta pieeja ļauj glabāt realitāšu apstrādes procedūras kopā ar datiem. Pielietojot šo

pieeju, realitātes uzvedība nav atkarīga no lietojumprogrammas. Objektorientētais modelis arī

tieši atbalsta saiti “daudzi pret daudziem”.

Objektorientētam modelim ir līdzība ar pirmsrelāciju modeļiem, jo šajā modelī pieeja

datiem notiek izmantojot iepriekšdefinētas saites, kas palielina ieplānoto vaicājumu

ātrdarbību, bet padara neieplānoto vaicājumu veidošanu grūtāku (vaicājumā nav iespējams

izveidot jaunas saites, kas bija iespējams relāciju modelī) [10]. Par objektu modeļa trūkumu

var nosaukt faktu, ka šim modelim nav tik attīstīta matemātiska aparāta, kāds tas ir relāciju

modelim.

Kaut arī objektu datu modelis sākumā nebija plānots kā relāciju modeļa konkurents,

vairāki eksperti bija tik sajūsmināti ar objektorientētas tehnoloģijas idejām, ka prognozēja šim

datu modelim lielus komerciālos panākumus. Reāla situācija ir tāda, ka datu bāzu izstrādātāji

17

Page 18: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

neredz objektu datu modeļa priekšrocības tik skaidri, lai varētu atteikties no relāciju modeļa

un segt uzdevumus, kas ir saistīti ar jauna modeļa ieviešanas izmaksām [28].

1.5.3. Objektu datu bāzu fiziskās struktūras

Objektu datu modelim nav tik attīstītas standartizētas datu apstrādes valodas, kāda ir SQL.

Tāpēc objektu datu bāzu fiziskās struktūras vēl vairāk nekā relāciju datu bāzu struktūras ir

atkarīgas no konkrētas realizācijas.

Objektorientētajā programmā realitāte ir pārstāvēta kā objekts. Atšķirība no relāciju

tabulām, objekts var iekļaut sevī arī uzvedību (objektorientēta pieejā īpaša uzmanība ir

pievērsta objektu mijiedarbībai) Pastāv nepieciešamība lietot vairākus līdzīga tipa objektus ar

līdzīgiem raksturojumiem. Klase ir šablons, no kura var veidot šādus līdzīgus objektus [19].

Objektu datu bāzu fiziskas struktūras realizē objektorientētas pieejas koncepcijas, tātad

iekļauj sevī objektu identifikatorus, objektu metodes, mantošanas mehānismus, abstraktās

klases un citas konstrukcijas.

1.6. Relāciju-objektu modelis

Relāciju-objektu datu bāzēm ir jāatbalsta gan relāciju, gan objektu iespējas. Šāda „tehnoloģiju

tuvošanās” notiek par pamatu ņemot relāciju datu bāzes un papildinot tās ar labākam objektu

tehnoloģijas īpašībām [6].

1.6.1. Relāciju-objektu modeļa apraksts

Relāciju-objektu modeli 1990. gadā piedāvāja Maikls Stounbreikers (Michael

Stonebraker) un šis modelis ir realizēts vairākas datu bāzu vadības sistēmās, arī standarts

SQL99 tika papildināts ar iespējam, kas saistīti ar objektorientēto datu tipu ieviešanu [13].

18

Page 19: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

6. att. Relāciju-objektu datu bāzēs objekti tiek pārveidoti relāciju struktūrās

Galvenā relāciju-objektu modeļa kritika ir saistīta ar to, ka objektu glabāšanai tiek

izmantotās relāciju struktūrās – tabulas un kolonnas, kas neļauj pilnvērtīgi izmantot objektu

pieejas priekšrocības (6. att.) [19].

1.6.2. Relāciju-objektu datu bāzu fiziskās struktūras

Relāciju-objektu datu bāzes iekļauj sevī visās relāciju datu bāzu fiziskās struktūras, ka arī

specifiskas struktūras, kas ļauj izmantot objektorientētas pieejas iespējas.

Lietotāju datu tipi (user-defined type), jeb objektu tipi papildina SQL ar mantošanas un

citām objektorientētas funkcionalitātes iespējām. Objektorientētas programmēšanas

terminoloģijā objektu tipi atbilst klasēm. Var veidot arī apakštipus – tipus, kuru pamatā ir

cits tips – supertips (7. att.) [13].

7. att. Objektu tips ar apakštipu (šeit un turpmākos attēlos relāciju struktūras ir apzīmētas ar

taisnstūriem, objektu – ar elipsēm)

Apakštipi manto atbilstoša supertipa raksturojumus, bet tiem ir arī savi raksturojumi.

Piemēram, var definēt objektu tipu telefonaNr, tad uz šī tipa pamata var izveidot jaunus

apakštipus – mājasTelefons, darbaTelefons, mobilaisTelefons u.t.t. Vai arī izveidot tipus datu

bāzes elementiem, kas tiek īpaši bieži izmantoti, piemēram, objektu tipu adrese, kura sastāvēs

no valsts nosaukuma, pilsētas un ielas nosaukuma, mājas un dzīvokļa numura.

Izmantojot iepriekšizveidoto objektu tipu var veidot objektu tabulu, kas ir ekvivalenta

objektorientētas programmēšanas klases eksemplāram (8. att.).

19

Page 20: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

8. att. Objektu tabula

Vai objektu kolonnu, kad atribūta datu tips ir kāds lietotāja izveidots objektu tips (9. att.).

9. att. Tabula ar objektu kolonnu

Objektu metodes ir funkcijas vai procedūras, kas var būt deklarēti kopā ar objektu tipu,

lai realizētu šī tipa objektu uzvedību [17].

Relāciju-objekta modeļa realizācija var atšķirties un ir atkarīga no konkrētas datu bāzu

vadības sistēmas. Tālāk tiek aprakstītas dažas fiziskas struktūras, kuras pastāv PostgreSQL,

citā DBVS tie var būt realizēti citā veidā.

Relāciju modelī tabulas lauku vērtībai jābūt atomārām datu objektam. PostgreSQL var tikt

lietoti arī saliktas vērtības, ko sauc par masīviem. Masīvs ir elementu kopa ar vienu kopējo

identifikatoru. Masīva elementiem var būt iebūvēts vai lietotāja definēts datu tips, bet tiem

obligāti jābūt vienā tipā. Ir pieļaujami daudzdimensiju masīvi, kuru katrs elements var būt ne

atomāra vērtība, bet cits masīvs. Relāciju-objektu modeļi no relāciju modeļa atšķir objektu

identifikatori. PostgreSQL ir atļauti vairāki ieraksti ar vienādu lauku saturu, jo šādā gadījumā

tiem būs dažādi objektu identifikatori (relāciju datu bāzēs vienās tabulas robežās ierakstu

viennozīmīgi identificē primāra atslēga) [29].

Mantošanas mehānisms PostgreSQL tiek realizēts ar atvasināto tabulu palīdzību. No

bāzes tabulas atvasinātai bērna tabulai ir tie paši lauki un ierobežojumi, kas papildus tiek

papildināti ar savējiem laukiem. Ievietojot datus atvasinātājā tabulā tie automātiski tiek

ievietoti arī bāzes tabulas atbilstošos laukos [29].

Relāciju-objektu modelis ir realizēts arī Oracle datu bāzu vadības sistēmā. Objektu skati

ļauj piekļūt relāciju datiem, izmantojot relāciju-objektu iespējas. Objektu skati ļauj izstrādāt

relāciju-objektu lietojumus nemainot relāciju struktūras. Cita Oracle relāciju-objektu fiziskā

struktūra ir atsauce (reference) – loģiskais rādītājs uz rindas objektu, kas ir veidots no objekta

identifikatora. Ar atsaucēm var modelēt asociācijas saites starp objektiem īpaši saiti daudzi

20

Page 21: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

pret vienu, kas samazina vajadzību izmantot ārējas atsauces. Salikto atribūtu un saites daudzi

pret daudziem modelēšanai Oracle atbalsta divus kolekciju tipus – masīvi (varrays) un

iekļautās tabulas, kad tabula tiek glabāta citas tabulas kolonnā (10. att.).

10. att. Iekļauta tabula

Kolekciju tipi var būt izmantoti jebkur, kur tiek izmantoti citi datu tipi [17]

1.7. Citi modeli

Datu bāzu projektēšanai un realizācijai parasti izmanto relāciju, objektu vai relāciju-objektu

modeļus. Bet eksistē arī citi modeļi, kuri šobrīd vēl nav tik populāri, vai arī tie tiek izmantoti

specifiskiem mērķiem.

1.7.1. XML modelis

XML valoda, jeb paplašināmās iezīmēšanas valoda ir programmēšanas valodas SGML

apakškopa, kas speciāli izstrādāta darbam ar tīmekļa dokumentiem [8]. Valoda galvenokārt

tiek izmantota automātiskai datu apmaiņai starp tīmekļa lapām un uzņēmumiem.

XML dokuments ir datu bāze, kas satur gan datus, gan meta datus:

1) XML elementi un atribūti apraksta datus, tie atbilst relāciju datu bāzu tabulām un

laukiem;

2) strukturēts hierarhiskais XML dokuments apraksta attiecības starp dažādam datu

tipiem un ir daudzmaz līdzvērtīgs saitēm starp tabulām relāciju datu bāzēs, bet labāk

atbilst saišu struktūrai starp klasēm objektu modelī [21].

21

Page 22: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

XML dokuments tiek organizēts teksta veidā, kas sniedz nozīmīgu priekšrocību – tas ir

universāli saprotams, bet arī trūkumus – šie dokumenti mēdz būt liela izmēra, var saturēt

dublējošus datus, lai šādu XML datni apstrādātu ir jāpārskata viss dokuments.

XML datu bāzes piemērs, meta dati ir iezīmēti ar treknrakstu:<planeta nosaukums="zeme"> <ieraksts regions="Afrika" valsts="Mauritānija" valoda="Bhojpuri" gads="1983" sievietes="99467" viriesi="97609"></ieraksts> <ieraksts regions="Afrika" valsts="Mauritānija" valoda="Franču" gads="1983" sievietes="19330" viriesi="16888"></ieraksts> <ieraksts regions="Eiropa" valsts="Somija" valoda="Čehu" gads="1985" sievietes="42" viriesi="36"></ieraksts>...</planeta>Šo XML datu bāzi var pārveidot relāciju tabulā (11. att.).

11. att. XML dokumenta pārveidošana relāciju tabulā

XML datu bāzes nekonkurē ar relāciju, objektu vai ar relāciju-objektu datu bāzēm. XML datu

bāzu uzdevums ir strādāt kopā ar tradicionālam datu bāzēm [28]. Kā jau bija minēts, galvenais

XML datu modeļa mērķis ir datu apmaiņa starp datu bāzēm, lietojumprogrammām.

1.7.2. Asociatīvais datu modelis

Asociatīvajā modelī datu bāze tiek veidota no divu tipu datu struktūrām:

datu vienumi (items), katram no kuriem ir unikālais identifikators, vārds un tips;

saites (links), katrai no kurām ir unikālais identifikators, kopā ar unikālajiem

identifikatoriem, kas attēlo fakta avotu, darbības vārdu un mērķi. Katrs no

objektiem – avots, darbības vārds un mērķis var būt saite vai datu vienums [28].

Piemēram, ir informācija „Flight BA1234 arrived at Riga Airport on 12-Aug-2006 at

10:25am” („Reiss BA1234 ir ielidojis Rīgas Lidostā 2006. gada 12. augustā, plkst. 10:25”,

asociatīva modeļa piemēros tiks lietota angļu valoda, jo pārtulkojot tos latviešu valodā

sastapās ar grūtībām, kas ir saistītas ar valodu īpatnībām. Lai modeļi varētu lietot neangļu

problēmvidei, tas ir jāadaptē). Piemērā ir septiņi datu vienumi: četri lietvārdi Flight BA1234, 22

Page 23: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

Riga Airport, 12-Aug-2006 un 10:25am, un trīs darbības vārdi arrived at, on un at. Lai

uzglabātu šos datus ir vajadzīgas trīs saites:

Flight BA1234 arrived at Riga Airport

... on 12-Aug-2006

... at 10:25am

Ja apskata asociatīvo modeļi no relāciju modeļa viedokļa, tad asociatīvo datu bāzi var

uzglabāt divās tabulās – viena datu vienumiem un otra saitēm (1., 2. tabula).

1. tabula

Datu vienumi

Identifikators Vērtība77 Flight BA123408 Riga Airport32 12-Aug-200648 10:25am12 arrived at67 on09 at

2. tabula

Saites

Identifikators Avots Darbības vārds

Mērķis

74 77 12 0803 74 67 3264 03 09 48

Cits piemērs no grāmatu tirdzniecības sfēras [28]. Interneta grāmatu (book) veikals strādā

izmantojot tirdzniecības punktus (legal entity) dažādās valstīs (country). Lai klients (person)

varētu veikt pirkumu, tam ir jāreģistrējas sistēmā. Katram tirdzniecības punktam ir sava

grāmatu cena (price) vietējā valūtā. Pērkot grāmatas klients krāj punktus (points), kurus pēc

tam klients varēs izmantot atlaižu saņemšanai veikalā.

Fragments shēmai, kas apraksta pasūtījumu struktūru (datu vienumi treknrakstā):

Legal entity sells Books

... worth Points

... in Country

... from Date

... at Price23

Page 24: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

Person lives in Country (12. att.)

12. att. Grāmatu tirdzniecības piemēra metadati

Grāmatu tirdzniecības piemēra dati (fragments, 13. att.):

13. att. Daļa no grāmatu tirdzniecības piemēra datiem

Relāciju modelī dati tiek glabāti, izmantojot atsevišķas tabulas atšķirīgo datu glabāšanai.

Katra tabula ir unikāli strukturēta, un programmas, kas ļauj lietotājam strādāt ar datu bāzi ir

atkarīgas no datu bāzes struktūras. Rezultātā, katru reizi izstrādājot datu bāzi ir jāizstrādā arī

24

Page 25: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

lietojums, bet mainot esošas datu bāzes struktūru, jāmaina arī no šis datu bāzes ir atkarīgas

programmas.

Salīdzinājumā, datu bāzes, kas izmanto asociatīvo datu modeļi (associative model of data)

glāba atšķirīgus datus kopā vienā struktūrā, kura nekad nemainās, neatkarīgi no uzglabāto

datu tipu daudzuma [28]. Šādu datu bāzu lietojumprogrammas modeļa autori sauc par „patiesi

atkārtoti lietojamiem”.

1.7.3. Modelis Realitāte-Atribūts-Vērtība

Modelis Realitāte-Atribūts-Vērtība (Entity-Attribute-Value), RAV tiek lietots gadījumos, kad

atribūtu (īpašību, parametru) skaits, kas var tikt izmantots realitātes vai objekta aprakstam,

potenciāli ir ļoti liels, bet skaits, kas faktiski tiek attiecināts uz doto objektu ir relatīvi neliels

[27].

Populārākais RAV modelēšanas piemērs produkciju (production) datu bāzēs ir piemērs ar

klīniskiem datiem (slimības vēsture, pašreizējas sūdzības, fiziskā izmeklēšana, speciālie

pētījumi, diagnozes), kurus var attiecināt uz pacientu. Šādu datu var būt ļoti daudz, bet

lielākai daļai no pacientiem ir tikai maza daļa no iespējamiem datiem. Ja šādas sistēmas datu

bāzi veidot ar standarta līdzekļiem, būs vajadzīgas tabulas ar tūkstošiem kolonnām, kuru

lielāka daļa nebūs neaizpildīta, bet šādas lietojumprogrammas saskarne būs nelietojama.

Situāciju arī pasliktinās tas, ka vienam un tam pašam atribūtam būs iespējamas vairākas

vērtības, piemēram, bērna augums un svars mainās bērnam augot, arī medicīna attīstās un

sistēmai būs bieži jāpievieno jaunas tabulas un kolonnas ar jauniem iespējamiem testiem.

RAV modelis spēj risināt šis problēmas, lielākas klīnisko datu krātuves lieto tieši RAV

modeļi.

RAV tabulā dati tiek ierakstīti trīs kolonnās:

1) Realitāte. Klīniskajiem pētījumiem, tā ir ārēja atsauce uz tabulu, kas satur pacienta

identifikatoru un laiku (vai laika intervālu), kad ir noticis aprakstāmais gadījums

Piemēram, „Pacients Aldis Zariņš, p.k. 230977-11201, 2006. gada 15. februārī plkst.

12:15”

2) Atribūts vai parametrs. Ārēja atsauce uz tabulu ar atribūtu aprakstiem (piemēram,

laboratorijas izmeklējumu apraksti – atribūta identifikators, nosaukums, apraksts, datu

tips, mērvienības, iespējamas vērtības, maksimālais ieraksta garums u.c.)

25

Page 26: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

Piemēram, „Ķermeņa temperatūra Celsija grādos”

3) Vērtība atribūtam. Ir atkarīga no datu tipa, citiem atribūta ierobežojumiem

Piemēram, „37,5”

RAV klīnisko izmeklējumu datu piemērs (3. tabula).

3. tabula

Klīniskie izmeklējumi

Realitāte Atribūts VērtībaPacients Aldis Zariņš, p.k. 230977-11201, 12:15 15.02.2006

Ķermeņa temperatūra Celsija grādos

37,5

Pacients Aldis Zariņš, p.k. 230977-11201, 12:15 15.02.2006

Klepus Jā

Pacients Aldis Zariņš, p.k. 230977-11201, 12:15 15.02.2006

Klepus veids Ar krēpām, asins piejaukums

Pacients Aldis Zariņš, p.k. 230977-11201, 12:15 15.02.2006

Sirds ritms, sitienu skaits minūtē

98

Modeļi realitāte-atribūts-vērtība var izmantot arī citās priekšmetiskās jomās, piemēram,

veikala čeku datu glabāšanai. Līdzīgi kā piemērā ar klīniskajiem datiem, čekā ir informācija

par mazu daļu no veikalā pieejamām precēm [27].

26

Page 27: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

2. DATU BĀZU PROJEKTĒŠANA

Tiek lietotas dažādas datu bāzes projektēšanas tehnoloģijas. Tās cita no citas atšķiras ar

dažādiem gala lietotāju priekšstatu veidiem par projektējamo informācijas sistēmu. Tiek

meklēts priekšstata variants, kurš ir vislabāk saprotams, lai lietotājs varētu sniegt visvairāk

informācijas par savām vēlmēm viņam vispiemērotākā formā.

Sākotnēji izstrādājamo informācijas sistēmu apskatīja kā “melno kasti”, kurai ir zināmi

tikai ieejas un izejas dati (tātad tos bija jāuzzina no lietotāja). Izmantojot šo informāciju,

Džeksons izstrādāja vienu no pirmajām formalizētajām datu bāzes projektēšanas metodēm.

Turpinājumā datu bāzes projektēšanas speciālistu domas dalījās:

1) vieni uzskatīja, ka lietderīgi noskaidrot projektējamās sistēmas darbības

pamatfunkcijas un tajās figurējošos datus (šiem mērķiem tika izveidota, piemēram,

datu plūsmas diagramma);

2) otri, lietderīgi veidot visu izmantojamo datu savstarpējās saistības modeli (šim

mērķim tika izstrādāta, piemēram, realitāšu-saišu diagramma).

Attīstoties objektorientētai programmēšanai, tika radītas arī objektu datu bāzes. Līdz ar to

veidojās uzskats, ka datus lietderīgi analizēt objektu formā, papildus apskatot ar objektiem

veicamās darbības (metodes). Tika izstrādātas tādas informācijas sistēmas modelēšanas

metode kā UML valoda (Unified Modeling Language). UML valodas modelēšanas tehnika

ietvēra sevī vairākas diagrammas, bet datu bāzes projektēšanai nozīmīgākā bija klašu

diagramma.

Datu bāzes sistēmas projektēšanas pamatdarbību secība var atšķirties, bet tai jāiekļauj sevī

tādus punktus kā problēmvides analīze un modelēšana, prasību iegūšana, datu diagrammu

izveidošana, sākotnējo datu struktūru veidošana un to kvalitātes pārbaude, datu bāzes

struktūrās definēšana (14. att.).

27

Page 28: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

14. att. Datu bāzes sistēmas projektēšanas pamatdarbību secība

Veidojot datu bāzi, dati tiek apskatīti un analizēti trīs līmeņos:

1) konceptuālais līmenis – lietotājs un datu bāzes izstrādātājs apskata problēmvides

datus, atlasa nepieciešamos un nosaka datu savstarpējas saites. Līmeņa rezultāts ir

pilnīgi neatkarīgs no datu bāzes realizācijas un tā var būt realitāšu-saišu diagramma,

UML klašu diagramma, arī kāds cits modelis (varianti tiek apskatīti šajā nodaļā);

2) loģiskais līmenis – datu bāzes projektētājs veido datu loģisko modeli noteiktām datu

bāzes sistēmas tipam, piemēram, relāciju, objektu vai relāciju-objektu (iespējamie

varianti tika apskatīti iepriekšējā nodaļā);

3) fiziskais līmenis – datu bāzes projektētājs realizē datu loģisko modeli konkrētai datu

bāzes vadības sistēmai, iegūstot datu glabāšanas fizisko struktūru definējumus,

piemēram, SQL kodu. Datu bāzes iegūšanas (transformācijas) varianti tiks apskatīti

nākamajā darba nodaļā (15. att.) [5].

28

Page 29: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

15. att. Datu bāzes veidošana (trīs līmeņi)

Iespējams apskatīt datu bāzes veidošanas procesu divos līmeņos, apvienojot datu loģisko

un fizisko modeļi kopā (piemēram, no realitāšu-saišu diagrammas tiek iegūtas Oracle datu

bāzes struktūras), ka arī citi varianti.

Ka jau bija minēts, veidojot datu konceptuālo modeli nav svarīgi vai turpmāk tiks

izmantota relāciju datu bāze, objektu datu bāze vai relāciju-objektu datu bāze, šis modelis tiek

veidots neatkarīgi no datu bāzes realizēšanai izmantotā tehnoloģiskā varianta.

2.1. Realitāšu-saišu diagramma

Vispārēja realitāšu-saišu diagrammas notācijas standarta nav – dažādās grāmatās un

programmatūrā tiek lietotās atšķirīgas notācijas [9, 24].

29

Page 30: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

2.1.1. Realitāte un realitātes atribūts

Realitāte (entity) ir “priekšmets” vai “objekts” reālajā pasaulē, kas ir skaidri atšķirams no

citiem objektiem [6, 24].

Modernajā literatūrā bieži ar terminu “realitāte” (entity) apzīmē nevis realitāti klasiskajā

nozīmē, bet gan realitātes eksemplāru. Šādos gadījumos realitātes (entity) termina vietā

izmanto terminus realitāšu kopa (entity set), realitāšu tips [6] vai pat realitāšu klase (entity

class). Šāda terminoloģijas attīstība, iespējams, ir saistīta ar objektu tehnoloģijas ietekmi –

entity atbilst objektam, bet entity set vai entity class atbilst klasei.

Realitātes atribūts – realitāti veidojošās datu kopas elements. Tas var identificēt

realitātes eksemplāru vai norādīt tā īpašību (16. att.). Var būt vienkāršie un saliktie atribūti

(apvieno vairākas datu vienības)

16. att. Realitāte ar atribūtiem

Bieži realitātes atribūti grafiski netiek apzīmēti elipšu veidā, bet tiek izvietoti iekš realitātes

taisnstūra (17. att.).

17. att. Realitāte ar atribūtiem (cits grafisks apzīmējums)

Ir izmantojami arī citi realitātes apzīmējumi (piemēram, taisnstūris ar noapaļotiem stūriem

Barkera notācijā), kā arī ir iespējams veidot realitāšu-saišu diagrammas zemākajā detalizācijas

līmenī, nenorādot atribūtus [31].

Atribūtu, kurš satur pats savus atribūtus sauc par salikto atribūtu (composite, complex

attribute ) [26]. Salikta atribūta piemērs ir atribūts adrese, kurš var sastāvēt no atribūtiem iela,

mājas numurs, pasta indekss (18. att.).

30

Page 31: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

18. att. Saliktais atribūts

Primāras atslēgas atribūti, jeb identifikatori tiek izmantoti, lai varētu atšķirt vienu

realitātes eksemplāru no cita. Diagrammā atslēgas atribūti tiek pasvītroti, iespējami arī citi

apzīmējumi (19. att.).

19. att. Atslēgas atribūts (Kods)

Realitātei var nebūt pietiekami daudz atribūtu lai izveidotu primāro atslēgu. Šādu realitāti

sauc par vājo realitāti (weak entity) (20. att.) [24]. Vājas realitātes eksistence ir atkarīga no

citas realitātes eksistences, piemēram, ja Darbiniekam ir piesaistīta vāja realitāte Automašīna

(realitāšu saišu jēdziens tiks apskatītas zemāk) un informācija par darbinieku vairāk netiek

uzglabāta, tad nav nepieciešama arī informācijas par viņa automašīnām [2].

20. att. Vāja realitāte

Eksistē realitāšu-saišu diagrammas notācijas, kur tiek arī norādīts atribūta obligātums. Ja

atribūts ir obligāts (mandatory), tas nozīme, ka realitātes eksemplārs nevar pastāvēt bez šī

atribūta vērtības. Piemēram, Darbiniekam obligāts atribūts ir darbinieka numurs un darbinieka

vārds, bet atribūts faksa numurs ir neobligāts (21. att.) [9].

31

Page 32: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

21. att. Atribūta obligātuma un atslēgas atribūta apzīmējums realitāšu-saišu diagrammas

Barkera notācija

Barkera realitāšu-saišu diagrammas notācijā neobligātie atribūti tiek apzīmēti ar neiekrāsota

punkta “°” simbolu, bet obligātie – ar zvaigznītes “*” simbolu (obligātiem atribūtiem ir

iespējams arī iekrāsota punkta apzīmējums “•”). Atslēgas atribūti Barkera notācijā tiek

apzīmēti ar “#” simbolu.

2.1.2. Saites un kardinalitāte

Saite (relationship) ir attieksme starp realitātēm [24]. Saitēm realitāšu-saišu diagrammās

parasti tiek piekārtota kardinalitāte (jeb attieksmes apjoms), kura ir attēlota ar ciparu, kurš

attēlo realitātei atbilstošo realitātes eksemplāru skaitu [12].

Izšķir sekojošus bināru saišu tipus:

viens pret vienu (one-to-one) – 1:1 attiecība;

viens pret daudziem (one-to-many) – 1:N attiecība (22. att.);

22. att. Saite viens pret daudziem

daudzi pret daudziem (many-to-many) – N:M attiecība (23. att.).

32

Page 33: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

23. att. Saite daudzi pret daudziem

Atribūtu piesaiste saitēm ir iespējama ne visās realitāšu-saišu notācijas (šādu iespēju

sniedz, piemēram, Cena notācija). Visbiežāk saišu atribūtus izmanto saitēm daudzi pret

daudziem (23. att.) [26].

Kaut arī modelējot visbiežāk tiek izmantotas binārās saites (saites starp divām realitātēm),

ir iespējamas unārās saites (vienas realitātes robežās), arī augstākas kārtas attieksmes (n-ārās,

piemēram, ternārās saites) (24., 25. att.) [26].

24. att. Unārā saite

25. att. Ternārā saite

Ar kardinalitātes palīdzību tiek noteiks maksimālais realitātes eksemplāru skaits. Daudzās

realitāšu-saišu diagrammu notācijās tiek izmantoti apzīmējumi minimālam realitātes

eksemplāru skaitam – saite var būt obligāta (mandatory), ja jāpastāv kaut vienam realitātes

eksemplāram, vai neobligāta (optional), kad šāds eksemplārs var arī nebūt [25]. Piemēram,

var uzskatīt, ka raksts nav iespējams bez autora (obligāta saite), bet ir iespējama situācija, kad

33

Page 34: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

autoram nav rakstu (neobligāta saite). Dažādās realitāšu-saišu notācijās ir iespējami atšķirīgi

saites obligātuma apzīmējumi (26. att.).

26. att. Saites obligātums

Piemēram, firmai var nebūt darbinieku, var būt vairāki darbinieki, bet darbiniekam jābūt

obligāti piesaistītam kādai firmai.

2.2. UML klašu diagramma

Vienota modelēšanas valoda (Unified Modeling Language, UML) ir standartizēta

specifikācijas valoda objektorientētai modelēšanai. UML iekļauj sevī grafisko notāciju, kuru

izmanto sistēmas abstrakta modeļa, jeb UML modeļa radīšanai [27].

Valoda tika izstrādāta ar mērķi rādīt universālo valodu priekšmetiskas jomas, kā arī

konkrēta programmēšanas uzdevuma aprakstam. Jebkurš no uzdevumiem tiek projektēts

veidojot noteiktu diagrammu kopumu.

Kaut UML tika izstrādāts objektorientētai programmatūras izstrādei, to var izmantot arī

neobjektorientēto datu bāzu projektēšanai [16]. Pirms modelēt datu bāzi ir jāveic biznesa

modelēšana, jānosaka prasības sistēmai, šiem mērķiem var izmantot virkni UML diagrammu,

bet pašu datu bāzes modeļi parasti veido ar klašu diagrammas palīdzību (darbā nav apskatīts

kāds noteikts UML standarts, bet UML klašu diagrammu pamatidejas, kuras izmanto datu

bāzu projektēšanā).

2.2.1. Klase un klases atribūti

Klase grafiski tiek attēlota taisnstūra veidā, kas papildus var būt sadalīts sekcijās. Šādās

sekcijās var būt norādīti klases vārds, atribūti un operācijas [22, 33].

34

Page 35: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

Darbinieks----

vardsuzvardsalgaamats

: String: String: Number: String

+++

getVards ()getUzvards ()atlaist ()

: char: char: void

27. att. Klases grafisks attēlojums

Datu bāzu modelēšanā UML klase atbilst realitātei (ja modelēšanai izvēlas realitāšu-saišu

diagrammu) vai tabulai (realizācijā).

Klases atribūti parasti tiek norādīti zem klases vārda (vārds un uzvārds, 27. att.).

Realizācijā klases atribūti atbilst tabulas kolonnām.

2.2.2. Klases operācijas (metodes)

Viena no galvenajām objektu pieejas īpašībām ir tā, ka objekti tiek apskatīti kopā ar to

uzvedību. Realitāšu-saišu modelī nav elementu, kas atbilst klases operācijām, bet realizācijā

metodes varētu atbilst iekļautām procedūrām.

Klases grafiskajā apzīmējumā metožu saraksts parasti ir attēlots zem atribūta saraksta.

2.2.3. Asociācijas saite (attiecības starp klasēm)

Asociācijas (associaton) saite var pastāvēt vienas klases robežās (28. att.). Šādā gadījumā tā

atbilst unārai saitei realitāšu-saišu diagrammā, bet realizācijā tabulai tiek pievienots papildus

lauks.

0..1

0..*Firma---

numursnosaukumsadrese

: int: String: String

28. att. Asociācijas saite vienas klases ietvaros (meitas firma)

35

Page 36: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

Visbiežāk asociācijas saite tiek izmantota divu klašu sasaistei (binārā saite). Šāda saite var

atbilst realitāšu-saišu diagrammas saitei viens pret vienu, viens pret daudziem vai daudzi pret

daudziem (29., 30. att.).

0..10..*

Darbinieks----

vardsuzvardsalgaamats

: String: String: Number: String

Firma---

numursnosaukumsadrese

: int: String: String

29. att. Asociācijas saite starp divām klasēm (0..1 un 0..*) – vienai firmai ir vairāki darbinieki

0..*0..*

Darbinieks----

vardsuzvardsalgaamats

: String: String: Number: String

Firma---

numursnosaukumsadrese

: int: String: String

30. att. Asociācijas saite starp divām klasēm (0..* un 0..*) – vienai firmai ir vairāki darbinieki,

darbinieks var strādāt vairākās firmās

Klašu diagrammā asociācijas saitei var būt piesaistīta asociācijas klase (31. att.).

0..*

0..*

Darbinieks----

vardsuzvardsalgaamats

: String: String: Number: String

Firma---

numursnosaukumsadrese

: int: String: String

Algo- datums : Date

31. att. Asociācijas saitei ir piesaistīta klase (0..* un 0..*)

Realitāšu-saišu diagrammā atbilstības šādai attiecībai nav (tikai paplašinātājā realitāšu-saišu

diagrammā, ir šādas diagrammas varianti arī ar citiem UML klašu diagrammas elementiem),

bet realizācijā šādas trešās klases atribūti var tikt piesaistīti vienai no pārējam klasēm, bet

gadījumā ar daudzi pret daudziem tiek izveidota trešā tabula, kas arī satur šai saitei piesaistītas

klases atribūtus.

36

Page 37: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

2.2.4. Vispārinājuma saite

Vispārinājuma (generalization) saite apraksta attiecības starp vispārīgāko elementu (vecāku)

un specifiskāko (bērnu). Bērns pilnībā atbilst vecākam, bet satur papildus informāciju (32.

att.).

Organizacija---

numursnosaukumsadrese

: int: String: String

Bezpelnas- finansetajs : String

AkcijuSabiedriba--

kapitalsapgrozijums

: Number: Number

32. att. Vispārinājuma saite starp klasēm

Viens no vispārinājuma saites izmantošanas mērķiem ir mantošana [22].

2.2.5. Agregācijas saite

Agregācijas (aggregation) saite ir asociācijas saites forma, kas apraksta attiecību vesels-daļa

(piemēram, automašīnai ir riteņi un dzinējs, 33. att.)

0..10..*

Automasina- izlaidums : Date

Ritenis--

gaisaSpiediensriepa

: Number: String

33. att. Agregācijas saite – automašīna „satur” riteņus

2.2.6. Kompozīcijas saite

Kompozīcija (composition) saite ir asociācijas saites forma, kurā bērns nevar pastāvēt bez

vecāka (piemēram, darbiniekam noteikti jābūt piesaistītai firmai, bet firma, savukārt, var būt

bez darbiniekiem, 34. att.).

37

Page 38: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

0..1

0..*Darbinieks

----

vardsuzvardsalgaamats

: String: String: Number: String

Firma---

numursnosaukumsadrese

: int: String: String

34. att. Kompozīcijas saite

2.3. Paplašināta realitāšu-saišu diagramma

Mūsdienās datu bāzi projektē ar realitāšu-saišu diagrammu, kurai ir pievienoti citi, papildus

elementi. Šādi elementi arī ir iekļauti modernajos CASE rīkos (piemēram, Oracle Designer

papildināja savu realitāšu-saišu diagrammu ar „vai” saiti, bet PowerDesinger piedāvā

ER+Merise notāciju), bet diagrammu sauc par paplašināto realitāšu-saišu diagrammu

(extended, advanced entity-relationship diagramm). Sakarā ar objektorientētas koncepcijas

attīstību, visbiežāk realitāšu-saišu diagrammai pievieno UML diagrammas elementus.

Runājot par paplašināto realitāšu-saišu diagrammu, pirmkārt piemin vispārinājumu,

(generalization). Vispārinājuma saite nosaka to, ka atsevišķas realitātes ar kādiem kopīgiem

atribūtiem var būt vispārināti uz augstāka līmeņa realitāti, ko sauc par vispārējo (generic),

superklases vai supertipa realitāti. Apakšēja līmeņa realitātes – apakštipu realitātes,

vispārinājuma hierarhijā var pārklāties (overlapping) vai nepārklāties (disjoint) (35. att.) [26]

[25, 31].

35. att. Vispārinājums ar apakštipiem, kas nepārklājas

Diagramma apraksta situāciju, kurā Darbinieks var būt Vadītājs, vai Operators, vai

Apkopējs, vai Sekretāre (36. att.). Nepārklāšanas (apzīmēta ar „d” burtu) nozīme, ka viens

Darbinieks nevar būt Operators un, piemēram, Apkopējs vienlaicīgi.

38

Page 39: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

36. att. Vispārinājums ar apakštipiem, kas pārklājas, ar pilnīguma ierobežojumu

Šajā situācijā apakštipi pārklājas („o” burts diagrammā) – Cilvēks var būt apskatīts gan kā

Darbinieks, gan kā Pircējs vienlaicīgi (36. att.). Pilnīguma ierobežojums tiek apzīmēts ar

dubulto līniju, un tas nozīme, ka apakštipu kopa ir pilna – vienīgi iespējamie Cilvēka tipi datu

bāzē ir Darbinieki un Pircēji.

Eksistē realitāšu-saišu diagrammas notācijas (piemēram, Barker notācija), kur apakštipi

grafiski tiek izvietoti iekš supertipiem (37. att.) [25].

37. att. Vispārinājuma saite

Vispārinājuma saiti sauc arī par „ir” saiti („is-a” relationship) starp apakštipiem un

supertipu (Darbinieks ir Cilvēks, Operators ir Darbinieks, Vīrietis ir Cilvēks u.t.t.).

Līdzīgi kā vispārinājuma saite, agregācijas saite, ir saites forma starp supertipu un

apakštipu, bet pretēji „ir” saitei, agregācijas saite apraksta attiecību vesels-daļa, tāpēc šo saiti

sauc arī par „daļa no” saiti („part of” relationship) [26] . Piemēram, Lietotāja rokasgrāmata

ir daļa no Programmatūras produkta (38. att.).

39

Page 40: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

38. att. Agregācijas saite (saite „daļa no”)

Oracle veidotājā projektēšanas rīkā Designer eksistē loģiskā „vai” saite (39. att.).

Att. 39. „Vai” saite

„Vai” saite (arc) ir ierobežojums divām vai vairākām realitātes saitēm. No visām „vai” saitēm

vienlaicīgi spēkā var būt tikai viena (cilvēks ir vai vīrietis, vai sieviete, ne abi vienlaicīgi).

Eksistē arī citi realitāšu-saišu diagrammas paplašinājumu elementi. Šādu elementu

izmantošana ļauj projektētam precīzāk aprakstīt problēmvidi.

2.4. Citi modeļi

Datu bāzes konceptuāla līmeņa izveidošanai var pielietot ne tikai realitāšu-saišu diagrammu

vai UML klašu diagrammu. Eksistē arī daudzi citi modeļi, bet vairākums no tiem vai nu vēl

nav guvis popularitāti, vai tiek lietots šaurās nozarēs. Piemēram, objektu-lomu modelēšanas

(Object-Role Modeling) īpatnība ir tā, ka diagrammas sintakse ir sarežģīta [9]. MADS pieeja

tiek pielietota pārsvarā telpiski-temporālo datu bāzu konceptuālai projektēšanai [18].

Salīdzinoši populārā ir dimensiju un datu noliktavu modelēšana [1].

40

Page 41: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

3. CASE RĪKI

CASE tehnoloģija (Computer-Aided Software Engineering, CASE) ir „datoru un specializētas

programmatūras izmantošana programmu sastādīšanai” [8]. Šāda specializēta programmatūra

var ievērojami atvieglot datu bāzu izstrādi, jo ļauj no projektējuma (diagrammām) iegūt datu

bāzes fiziskās struktūras. Lai varētu spriest par tehnoloģijas stāvokli, tika apskatīti vairāki

CASE rīki, kuru specializācija ir datu bāzu modelēšana. Apskatītos rīkus var klasificēt

sekojošā veidā:

Rīki datu bāzu un lietojumu izstrādei

Silverrun,

PowerDesigner,

Visible Analyst un Visible Developer,

Telelogic System Architect un Telelogic TAU (vāja datu bāzu modelēšanas daļa –

uzsvars uz biznesa procesiem),

Embarcadero ER/Studio un Describe.

Rīki datu bāzu izstrādei (neatbalsta lietojumu ģenerēšanu):

Altova DatabaseSpy (rīks ar zemo funkcionalitāti);

Erwin;

Toad Data Modeler;

Xcase.

Rīki diagrammu zīmēšanai (specializējas diagrammu veidošanā, bet var iekļaut

ierobežotas iespējas datu bāzu ģenerēšanai):

Dia (bezmaksas rīks);

Concept Draw (datu bāzu diagrammas var pārveidot kodā);

Microsoft Visio.

Vēl viens izplatīts rīks DB Visual Architect ir veidots Mac OS operētājsistēmai, tāpēc šis rīks

netika apskatīts.

Visiem rīkiem ir pieejamas demonstrācijas versijas (var lejupielādēt mājas lapā vai pasūtīt

pa pastu) ar lietošanas laika ierobežojumu (15 vai 30 dienas) vai ierobežotu funkcionalitāti

(piemēram, ierobežots modeļa elementu skaits).

Apskatot CASE rīku funkcionalitāti, radās vairāki secinājumi par stāvokļi šajā sfērā.

Pirmkārt, rīku modelēšanas iespējas ir ierobežotas. Piemēram, ar tiem nevar veidot ternārās

41

Page 42: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

saites vai „vai” tipa saites. Attiecībā par struktūrām, ko var iegūt, lietojot CASE projektēšanas

rīkus:

1) relāciju datu bāzes (SQL) – relāciju struktūras var iegūt izmantojot gandrīz visus

CASE rīkos;

2) objektu datu bāzes (piemēram, Java vai C#) – tikai dažos CASE rīkos no projektējuma

var iegūt objektu struktūras, piemēram, PowerDesigner;

3) relāciju-objektu datu bāzu struktūras (SQL ar objektu iespējam) – neviens no

apskatītājiem CASE rīkiem šādas iespējas nesniedz, kaut arī relāciju-objektu

tehnoloģija ir vairāk nekā 10 gadu veca un to atbalsta tādi vadošie datu bāzu vadības

sistēmu ražotāji kā Oracle, IBM un PostgreSQL.

Kaut arī eksistē daudzi automatizētas projektēšanas rīki, kas ļauj veidot relāciju datu

bāzes, parasti šis izveidotas struktūras ir pārāk vienkāršas, t.i. netiek izmantotas visas iespējas,

ko var sniegt relāciju modelis un SQL. Piemēram, CASE rīki pārsvarā ģenerē tabulas un

saites (ārējas atsauces), tiek aizmirsts par vairākām pārējam fiziskām struktūrām, kas var

ievērojami uzlabot datu bāzes kvalitāti – skatiem, indeksiem, pārbaudes ierobežojumiem.

Bieži vienam un tam pašam projektējumam var atbilst vairākas realizācijas. Piemēram,

viens pret vienu saiti starp divām realitātēm parasti realizē, veidojot divas tabulas ar ārējam

atsaucēm, bet kādā konkrēta gadījumā šādu saiti varētu realizēt arī ar vienas tabulas palīdzību.

Īpaši daudz tādu izvēles variantu varētu būt objektu-relāciju datu bāzē, kur var izmantot

relāciju un objektu tehnoloģiju iespējas kopā, vienai tabulai veidot objektu struktūru, bet citai

relāciju. CASE rīki piedāvā šādus variantus ļoti ierobežotā apjomā, rezultātā atkal ir ietekmēta

datu bāzes kvalitāte.

Kopumā jāsecina, ka CASE rīkiem ir daudz attīstības iespēju un kaut tie var ievērojami

palīdzēt datu bāzu projektēšanā to funkcionalitāte ir nepietiekama – lai izejā saņemtu labāku

produktu, kvalitatīvāko datu bāzi, CASE rīku ģenerētas struktūras ir jāuzlabo manuāli.

42

Page 43: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

4. TRANSFORMĀCIJAS LIKUMI

Transformācijas likumi ļauj no projektējuma iegūt datu bāzi (no konceptuāla līmeņa iegūt

loģisko, no loģiskā fizisko, pašu datu bāzi, piemēram, SQL kodu). Apskatot literatūru un

modernus CASE rīkus, tika secināts, ka pastāv trīs populārākie datu bāzes projektēšanas

paņēmieni – realitāšu-saišu diagramma, UML klašu diagramma un paplašināta realitāšu saišu

diagramma (realitāšu-saišu diagramma ar papildus iespējam, arī tām, ko sniedz UML). Tāpat,

eksistē trīs populārākie datu bāzu realizācijas veidi – relāciju, objektu un relāciju-objektu

(apvieno relāciju un objektu datu bāzu funkcionalitāti) (40. att.).

40. att. Datu bāzes datorizētā projektēšana

Nodaļā tiek apskatīta objektu (UML klašu diagramma) un relāciju (realitāšu-saišu un

paplašināta realitāšu saišu diagramma) projektēšanas elementu transformācija relāciju (SQL)

un relāciju-objektu struktūrās (SQL standarts, datu bāzu ražotāju realizācija) arī šo

projektēšanas elementu savstarpēja atbilstība.

43

Page 44: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

4.1. Relāciju datu bāzes transformācijas likumi

Relāciju datu bāzes ir visplašāk atbalstītas ar CASE rīkiem. Lielākoties CASE rīki veic tikai

vienkāršas transformācijas ar unārām saitēm, binārām saitēm (viens pret vienu, viens pret

daudziem, daudzi pret daudziem). CASE rīkos parasti nav iekļautas ternāro saišu

transformācijas, arī vispārinājumu un agregācijas saites CASE rīku diagrammās ir pārstāvēti

ierobežoti, tāpēc šis transformācijas apskatīt darbā bija īpaši svarīgi.

CASE rīku veidotas struktūrās parasti ir ierobežotas ar tabulām, unikalitātes

ierobežojumiem, primāras atslēgas ierobežojumiem, ārējas atsauces ierobežojumiem. Netiek

lietotas tādas struktūrās kā indeksi, pārbaudes ierobežojumi, trigeri, skati. Darbā tiek

piedāvāts lietot skatus vispārinājuma saites realizēšanai, bet pārbaudes ierobežojumus „vai”

saites realizēšanai.

4.1.1. Vienkāršas struktūras

Realitāšu-saišu diagrammas realitāte atbilst UML klašu diagrammas klasei, galvenā atšķirība

ir metodes, kurus realitāšu-saišu diagrammā attēlot nav iespējams. Gan klase, gan realitāte,

veicot transformācijas likumus tiek pārveidota tabulā.

4.1.2. Unārā saite

Unārai saitei viens pret vienu un viens pret daudziem atbilst viena tabula. Tabula ir

jāpapildina ar ārējas atsauces atribūtu, kuras domēns sakrīt ar primāras atslēgas atribūtu.

Daudzi pret daudziem saitei ir jāveido otrā tabula ar divām ārējam atslēgām.

4.1.3. Binārā saite

Viens pret vienu saites gadījumā, ja abas realitātes ir obligātas, tad katra no realitātēm kļūst

par tabulu un vienas tabulas obligātais un unikālais (not null, unique) atribūts kalpo par ārējo

44

Page 45: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

atsauci. Gadījumā ar vienu obligātu realitāti, transformācijas likumi ir tie paši. Ja ir divas

neobligātas realitātes, tad ārējas atsauces atribūts nav unikāls un obligāts.

Viens pret daudziem saite var būt obligāta vai neobligāta „daudzi” pusē, neietekmējot

transformāciju. Ārējas atsauces atribūtam ir jāparādās pusē „daudzi”, un šī atribūta vērtībai

jābūt obligātai (not null) tikai gadījumā ja „viens” realitāte ir obligāta (piemēram, UML

gadījumā 1..1, nevis 0..1).

Binārai saitei daudzi pret daudziem ir jāizveido jaunā, trešā tabula, kas saturēs abu

realitāšu primāras atslēgas. Saišu obligātums transformāciju neietekmē.

4.1.4. Ternārā un n-ārās saite

Ir (n+1) n-ārās saites iespējamie veidi: visas n puses ar kardinalitāti „viens”, (n -1) puses ar

kardinalitāti „viens” un viena puse ar kardinalitāti „daudzi”, (n -2) puses ar kardinalitāti

„viens” un divas puses ar „daudzi”, līdz visbeidzot visas puses ir „daudzi”. Šādas saites

realizācijai jāveido jaunā tabula (kopējais tabulu skaits n+1). Šī tabula satur ārējas atslēgas uz

visām realitāšu tabulām.

4.1.5. Vispārinājuma un agregācijas saite

Katrai no realitātēm tiek veidota atsevišķa tabula, apakštipa realitāšu tabulas satur ārējas saites

uz supertipa realitāšu tabulām.

Šo pašu saiti var realizēt citādi, izveidojot vienu tabulu ar visu supertipu un apakštipu

realitāšu atribūtiem, bet apakštipu realitāšu tabulu vietā izveidojot skatus.

Agregācijas saites gadījumā atribūti netiek mantoti – katra no realitātēm satur savu

atribūtu kopu. Šādu saiti var realizēt kā viens pret daudziem saiti, vai saiti viens pret vienu,

atkarībā no loģikas.

Plašāk ar transformācijas likumiem var iepazīties ar piemēru palīdzību (4. tabula) [26].

Tabulā lietotie apzīmējumi:

1) <pa> - primāras atslēgas ierobežojums,2) <O> - obligāts (mandatory, not null),3) <āa> - ārējas atsauces ierobežojums (foreign key).

45

Page 46: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

4. tabula

Relāciju datu bāzes transformācijas likumi

KONCEPTUĀLAIS LĪMENIS LOĢISKAIS UN FIZISKAIS LĪMENIS

Objektorientēta pieeja (UML klašu diagramma)

Relāciju pieeja (realitāšu-saišu diagramma)

Relāciju pieeja, SQL valoda

Klase Realitāte Tabula

create table Darbinieks ( ...);

Klases atribūts Realitātes atribūts Tabulas kolonna

create table Darbinieks ( numurs INTEGER, vards VARCHAR2(30), uzvards VARCHAR2(30), alga NUMBER, amats VARCHAR2(150), constraint PK_DARBINIEKS primary key (numurs));

46

Page 47: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

Atslēgas atribūts Atslēgas atribūts Primāras atslēgas kolonna

create table Darbinieks ( numurs INTEGER, ... constraint PK_DARB primary key (numurs));

– Atribūta obligātums Kolonnas vērtības obligātums

create table Darbinieks ( ... vards VARCHAR2(30) not null, ...);

Klases metode – Iekļautas procedūras

47

Page 48: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

Unārā saiteUnārā asociācijas saite (0..1 : 0..1)

Ir iespējama situācija, kad darbinieks ir laulāts ar citu kompānijas darbinieku.

Unārā saite viens pret vienu (abas puses neobligātas)

Tabula ar ārējo atsauci

create table Darbinieks ( numurs CHAR(6), vards VARCHAR(20), lau_numurs CHAR(6), constraint PK_DARBINIEKS primary key (numurs), constraint FK_DAR_DAR foreign key (lau_numurs) references Darbinieks (numurs));

Unārā asociācijas saite (1 : 0..*) Unārā saite viens pret daudziem (puse „daudziem” neobligāta, puse „viens” obligāta)

Viena tabula ar ārējo atsauci

48

Page 49: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

create table Inzenieris ( numurs CHAR(6), vards VARCHAR(20), vad_numurs CHAR(6) not null, constraint PK_INZENIERIS primary key (numurs), constraint FK_INZ_INZ foreign key (vad_numurs) references Inzenieris (numurs));

Unārā asociācijas saite (0..* : 0..*)

Katram darbiniekam ir iespēja būt par atskaites līdzautoru kopā ar citiem darbiniekiem, vai arī uzrakstīt atskaiti vienam.

Unārā saite daudzi pret daudziem (abas puses neobligātas)

Divas tabulas (viena ar divām ārējām atsaucēm)

create table Darbinieks ( numurs CHAR(6), vards VARCHAR(20), constraint PK_DARBINIEKS primary key (numurs));

create table Lidzautors ( autora_numurs CHAR(6), lidzaut_numurs CHAR(6), constraint PK_LIDZAUTORS primary key (autora_numurs, lidzaut_numurs), constraint FK_LID_DAR1 foreign key (autora_numurs) references Darbinieks (numurs), constraint FK_LID_DAR2 foreign key (lidzaut_numurs)

49

Page 50: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

references Darbinieks (numurs));

Binārā saite viens pret vienuAsociācijas saite (1 : 1)

Katrai atskaitei ir viena abreviatūra un katra abreviatūra reprezentē tieši vienu atskaiti.

Saite viens pret vienu (abas realitātes obligātas)

Divas tabulas (viena ar ārējo atsauci)

create table Atskaite ( numurs INTEGER, nosaukums VARCHAR2(150), constraint PK_ATSKAITE primary key (numurs));create table Abreviatura ( abr_numurs CHAR(6), atsk_numurs INTEGER not null unique, constraint PK_ABREVIATURA primary key (abr_numurs), constraint FK_ABR_ATS foreign key (atsk_numurs) references Atskaite (numurs));

Asociācijas saite (0..1 : 1)

Jābūt vadītājam priekš katra departamenta, bet darbinieks var vadīt ne vairāk par vienu departamentu.

Saite viens pret vienu (viena no realitātēm ir obligāta)

Divas tabulas (viena ar ārējo atsauci)

Transformācija sakrīt ar iepriekšējo gadījumu

50

Page 51: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

Asociācijas saite (0..1 : 0..1)

Daži no datoriem ir piesaistīti inženieriem, bet ne obligāti visiem inženieriem ir dators.

Saite viens pret vienu (abas realitātes ir neobligātas)

Divas tabulas (viena ar ārējo atsauci)

create table Inzenieris ( inz_numurs INTEGER, dat_numurs INTEGER, constraint PK_INZENIERIS primary key (inz_numurs));create table Dators ( dat_numurs INTEGER, inz_numurs INTEGER, constraint PK_DATORS primary key (dat_numurs), constraint FK_DAT_INZ foreign key (inz_numurs) references Inzenieris (inz_numurs));

Binārā saite viens pret daudziemAsociācijas saite (1..1 : 1..*)

Katra prece ir piesaistīta tieši vienai partijai, partijā var būt viena vai vairākas preces.

Saite viens pret daudziem (abas realitātes obligātas)

Divas tabulas (viena ar ārējo atsauci)

Jāizveido ārējas atsauces lauks (partijas numurs), šī lauka vērtība nevar būt nedefinēta („null”).

create table Prece ( ...

51

Page 52: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

par_numurs INTEGER not null, ... constraint FK_PRE_PAR foreign key (par_numurs) references Partija (numurs));

Asociācijas saite (0..1 : 0..*)

Darbinieks var strādāt maksimāli vienā firmā (vai būt nepiesaistīts nevienai no firmām). Firma var būt neviens darbinieks vai daudzi darbinieki.

Saite viens pret daudziem (abas realitātes neobligātas)

Divas tabulas (viena ar ārējo atsauci)

Jāizveido ārējas atslēgas lauks (numurs firmai, kurā strādā darbinieks)

create table Darbinieks ( ... fir_numurs INTEGER, ... constraint FK_DAR_FIR foreign key (fir_numurs) references Firma (numurs));

Asociācijas saite (0..1 : 1..*)

Katrs departaments publicē vienu vai vairākas atskaites. Nav obligāti, ka kāda konkrēta atskaite ir departamenta publicēta.

Saite viens pret daudziem (realitāte „daudzi” obligāta, realitāte „viens” neobligāta)

Divas tabulas (viena ar ārējo atsauci )

Transformācija sakrīt ar iepriekšējo gadījumu

52

Page 53: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

Binārā saite daudzi pret daudziemAsociācijas saite (0..* : 0..*)

Katrs darbinieks var strādāt nevienā, vienā vai vairākās firmās, bet katrā firmā ir neviens, viens, vai vairāki darbinieki.

Saite daudzi pret daudziem (abas realitātes neobligātas)

Trīs tabulas

Jāizveido trešā tabula ar divām ārējam atsaucēm.

create table FirmasDarbinieki ( fir_dar_numurs INTEGER not null, fir_numurs INTEGER, dar_numurs INTEGER, constraint PK_FIRDARB primary key (fir_dar_numurs), constraint FK_FIRDAR_FIR foreign key (fir_numurs) references Firma (numurs), constraint FK_FIRDAR_DAR foreign key (dar_numurs) references Darbinieks (numurs));

Ternārā un n-ārā saiteTernārā asociācijas saite 1 : 1 : 1 Ternārā saite 1:1:1 Četras tabulas (viena ar trim ārējam atsaucēm)

53

Page 54: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

Darbinieks izmanto tieši vienu datoru priekš katra no projektiem. Katrs dators projektā tiek piesaistīts darbiniekam. Darbinieks var strādāt vairākos projektos, katrā no tām izmantojot citu datoru.

create table Darbinieks ( dar_numurs CHAR(6), constraint PK_DARBINIEKS primary key (dar_numurs));

create table Projekts ( proj_nosaukums CHAR(100), constraint PK_PROJEKTS primary key (proj_nosaukums));

create table Dators ( dat_numurs INTEGER, constraint PK_DATORS primary key (dat_numurs));

create table Lieto_datoru ( dar_numurs CHAR(6), proj_nosaukums CHAR(100), dat_numurs INTEGER not null, constraint PK_LIETO_DATORU primary key (dar_numurs, proj_nosaukums), constraint FK_LIE_DAR foreign key (dar_numurs) references Darbinieks (dar_numurs), constraint FK_LIE_PRO foreign key (proj_nosaukums)

54

Page 55: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

references Projekts (proj_nosaukums), constraint FK_LIE_DAT foreign key (dat_numurs) references Dators (dat_numurs), unique (dar_numurs, dat_numurs), unique (proj_nosaukums, dat_numurs));

Ternārā asociācijas saite 1 : 1 : 1..*

Katrs projektam piesaistītais darbinieks strādā šīm projektam paredzētājā vietā (izvietojums), bet var strādāt arī kādā citā projektā, atbilstoši citā vietā. Jebkurā no izvietojumiem var strādāt vairāki darbinieki.

Ternārā saite 1:1:N Četras tabulas (viena ar trim ārējam atsaucēm)

No iepriekšēja gadījuma atšķiras unique() sekcija SQL izteiksmē.

create table Darbinieks ( dar_numurs CHAR(6), constraint PK_DARBINIEKS primary key (dar_numurs));

create table Projekts ( proj_nosaukums CHAR(100), constraint PK_PROJEKTS primary key (proj_nosaukums));

create table Izvietojums(

55

Page 56: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

izv_nosaukums CHAR(100), constraint PK_DATORS primary key (dat_numurs));

create table Piesaistits ( dar_numurs CHAR(6), proj_nosaukums CHAR(100), izv_nosaukums CHAR(100) not null, constraint PK_PIESAISTITS primary key (dar_numurs, proj_nosaukums), constraint FK_PIE_DAR foreign key (dar_numurs) references Darbinieks (dar_numurs), constraint FK_PIE_PRO foreign key (proj_nosaukums) references Projekts (proj_nosaukums), constraint FK_PIE_IZV foreign key (dat_numurs) references Izvietojums (izv_nosaukums), unique (dar_numurs, izv_nosaukums));

Ternārā asociācijas saite 1 : 1..* : 1..*

Katram no inženieriem, strādājot noteiktajā projektā, ir tieši viens vadītājs, bet projektam var būt vairāki vadītāji, bet inženieriem var būt vairāki vadītāji un vairāki projekti. Vadītājs var pārvaldīt vairākus projektus.

Ternārā saite 1:N:N Četras tabulas (viena ar trim ārējam atsaucēm)

No iepriekšēja gadījuma atšķiras unique() sekcija SQL izteiksmē (šajā gadījumā šī ierobežojuma nav)

56

Page 57: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

create table Projekts ( proj_nosaukums CHAR(100), constraint PK_PROJEKTS primary key (proj_nosaukums));

create table Vaditajs ( vad_numurs CHAR(6), constraint PK_VADITAJS primary key (vad_numurs));

create table Inzenieris( inz_numurs CHAR(6), constraint PK_INZENIERIS primary key (inz_numurs));

create table Parvalda ( proj_nosaukums CHAR(100), vad_numurs CHAR(6) not null, inz_numurs CHAR(6), constraint PK_PARVALDA primary key (proj_nosaukums, inz_numurs), constraint FK_PAR_PRO foreign key (proj_nosaukums) references Projekts (proj_nosaukums), constraint FK_PIE_VAD foreign key (vad_numurs) references Vaditajs (vad_numurs),

57

Page 58: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

constraint FK_PIE_INZ foreign key (inz_numurs) references Inzenieris (inz_numurs));

Ternārā asociācijas saite 1..* : 1..* : 1..*

Darbinieki var izmantot atšķirīgas iemaņas jebkurā no vairākiem projektiem, un katram projektam ir vairāki darbinieki ar daudzām iemaņām.

Ternārā saite N:N:N Četras tabulas (viena ar trim ārējam atsaucēm)

No iepriekšēja gadījuma atšķiras ceturtās tabulas primāra atslēga.

create table Darbinieks ( dar_numurs CHAR(6), constraint PK_DARBINIEKS primary key (dar_numurs));

create table Iemana ( iem_nosaukums CHAR(150), constraint PK_IEMANA primary key (iem_nosaukums));

create table Projekts( proj_nosaukums CHAR(150), constraint PK_PROJEKTS primary key (proj_nosaukums));

58

Page 59: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

create table Izmantota_iemana ( dar_numurs CHAR(6), iem_nosaukums CHAR(150), proj_nosaukums CHAR(150), constraint PK_PARVALDA primary key (dar_numurs, iem_nosaukums, proj_nosaukums), constraint FK_PAR_DAR foreign key (dar_numurs) references Darbinieks (dar_numurs), constraint FK_PAR_IEM foreign key (iem_nosaukums) references Iemana (iem_nosaukums), constraint FK_PAR_PRO foreign key (proj_nosaukums) references Projekts (proj_nosaukums));

Vispārinājuma un agregācijas saiteVispārinājuma saite

Cilvēks var būt pircējs, vai darbinieks, vai abi kopā, vai neviens no tiem.

Vispārinājuma saite Trīs saistītas tabulas

create table Cilveks ( cilv_pers_kods CHAR(11), cilv_vards CHAR(30), cilv_adrese CHAR(100), constraint PK_CILVEKS primary key (cilv_pers_kods));

create table Darbinieks ( dar_pers_kods CHAR(11), dar_amats CHAR(15),

59

Page 60: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

constraint PK_DARBINIEKS primary key (dar_pers_kods), constraint FK_DAR_CILV foreign key (dar_pers_kods) references Cilveks (cilv_pers_kods));

create table Pircejs ( pir_pers_kods CHAR(11), pir_kredits CHAR(12), constraint PK_PIRCEJS primary key (pir_pers_kods), constraint FK_PIR_CILV foreign key (pir_pers_kods) references Cilveks (cilv_pers_kods));

Tā pati situācija, cita realizācija Viena tabula un divi skati

create table Cilveks ( cilv_pers_kods CHAR(11), cilv_vards CHAR(30), cilv_adrese CHAR(100), dar_amats CHAR(15), pir_kredits CHAR(12),

60

Page 61: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

constraint PK_CILVEKS primary key (cilv_pers_kods));

Create view Darbinieks ASSELECT cilv_pers_kods, cilv_vards, cilv_adrese, dar_amatsFROM Cilveks;

Create view Pircejs ASSELECT cilv_pers_kods, cilv_vards, cilv_adrese, pir_kreditsFROM Cilveks;

Agregācijas saite

Programma un lietotāja rokasgrāmata ir daļa no programmatūras produkta.

Agregācijas saite Trīs tabulas

Realizācija kā saitei viens pret vienu

create table Programmaturas_produkts ( numurs INTEGER, nosaukums VARCHAR2(150), cena NUMBER(5,2) constraint PK_PROGPRODUKTS primary key (numurs));create table Programma ( numurs CHAR(6), versija VARCHAR2(150), prod_numurs INTEGER not null unique, constraint PK_PROGRAMMA primary key (numurs), constraint FK_PRO_PROD foreign key

61

Page 62: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

(prod_numurs) references Programmaturas_produks (numurs));

create table Lietotaja_rokasgramata ( numurs CHAR(6), versija VARCHAR2(150), lpp_skaits NUMBER, izdevējs VARCHAR2(150), prod_numurs INTEGER not null unique, constraint PK_LIETROKASGRAMATA primary key (numurs), constraint FK_LIET_PROD foreign key (prod_numurs) references Programmaturas_produks (numurs));

Saites ar asociācijas klasiAsociācijas klase (asociācijas saite 0..1 : 0..*)

Darbinieks var strādāt nevienā vai vienā firmā, vienā firmā strādā neviens vai vairāki darbinieki.

Saitei viens pret daudziem ir piesaistīti atribūti (asociācija)

Divas tabulas (asociācijas atribūti tika piesaistīti bērna tabulai)

create table Firma ( numurs CHAR(6), nosaukums CHAR(30), adrese CHAR(100) constraint PK_FIRMA primary key (numurs));

create table Darbinieks ( numurs CHAR(6), fir_numurs CHAR(6), vards CHAR(30), datums DATE, amats CHAR(30), constraint PK_DARBINIEKS primary key (numurs), constraint FK_DAR_FIR foreign key (fir_numurs)

62

Page 63: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

references Firma (numurs));

Asociācijas klase (asociācijas saite 0..* : 0..*)

Darbinieks var strādāt vairākās firmās.

Saitei daudzi pret daudziem ir piesaistīti atribūti (asociācija)

Trīs tabulas (asociācijas atribūtiem tika izveidota trešā tabula)

create table Firma ( numurs CHAR(6), nosaukums CHAR(30), adrese CHAR(100) constraint PK_FIRMA primary key (numurs));

create table Darbinieks ( numurs CHAR(6), vards CHAR(30), constraint PK_DARBINIEKS primary key (numurs), ); create table Algo ( numurs INTEGER, fir_numurs CHAR(6), dar_numurs CHAR(6), datums DATE, amats CHAR(30), constraint PK_ALGO primary key (numurs), constraint FK_ALG_FIR foreign key (fir_numurs) references Firma (numurs), constraint FK_ALG_DAR foreign key (dar_numurs)

63

Page 64: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

references Darbinieks (numurs));

Citas saites„Vai” saite

Cilvēks var būt vai nu vīrietis, vai nu sieviete, bet ir arī iespējams uzglābāt no dzimuma neatkarīgo informāciju (Cilvēks realitātes atribūti)

Trīs tabulas un pārbaudes ierobežojums

create table Virietis ( vir_numurs CHAR(11), ... constraint PK_VIRIETIS primary key (vir_numurs)); create table Sieviete ( siev_numurs CHAR(11), ... constraint PK_SIEVIETE primary key (siev_numurs));

create table Cilveks ( cilv_numurs CHAR(11), numurs_vir CHAR(11), numurs_siev CHAR(11), ... constraint PK_CILVEKS primary key (cilv_numurs), constraint FK_CILV_VIR foreign key (numurs_vir) references Virietis (vir_numurs), constraint FK_CILV_SIEV foreign key (numurs_siev) references Sieviete (siev_numurs));

64

Page 65: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

Pārbaude tabulai Cilveks: CHECK ( numurs_vir IS NOT NULL AND numurs_siev IS NULL) OR ( numurs_vir IS NULL AND numurs_siev IS NOT NULL) OR ( numurs_vir IS NULL AND numurs_siev IS NULL)

Obligāta „vai” saite Atšķirībā no iepriekšēja gadījuma, cits ir tikai pārbaudes ierobežojums:

Pārbaude tabulai Cilveks: CHECK ( numurs_vir IS NOT NULL AND numurs_siev IS NULL) OR ( numurs_vir IS NULL AND numurs_siev IS NOT NULL)

65

Page 66: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

4.2. UML un realitāšu-saišu diagrammu atbilstība

Kā ir redzams (4. tabula), UML klašu diagrammas un realitāšu-saišu diagrammas notācijas ir

ļoti līdzīgas un veikt transformācijas starp tām ir iespējams gandrīz jebkurā gadījumā. Pat ja

klasiskajā realitāšu-saišu diagrammā var nebūt konkrēto UML elementu (piemēram,

vispārinājuma saites), šādi elementi tiek izmantoti paplašinātajā realitāšu-saišu diagrammā.

Tāpēc bieži CASE datu bāzu projektēšanas rīkos tiek izmantota papaplašinātais realitāšu-

modelis (piemēram, ER+Merise notācija rīkā Sybase PowerDesigner), jo tajā izstrādātāji

papildus realitāšu-saišu diagrammas elementiem var iekļaut arī UML klašu diagrammas

funkcionalitāti, ka arī citas papildus idejas.

4.3. Objektu datu bāzu transformācijas likumi

Objektu definēšanas valoda ODL (Object Definition Language) ir standarts objektu datu

bāzes struktūras un satura aprakstam [23].

41. att. Klase Pircējs

Klases ODL valodā tiek definētas sekojoši (41. att.):class Pircejs { attribute string kontaNum attribute string vards attribute string piegadesAdrese attribute string majasTelefonaNum attribute string darbaTelefonaNum}

66

Page 67: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

42. att. Saite viens pret daudziem

Saites viens pret daudziem realizācija (42. att.):class Pircejs { attribute string kontaNum attribute string vards attribute string piegadesAdrese attribute string majasTelefonaNum attribute string darbaTelefonaNum relationship set<Pasutijums> Veic inverse Pasutijums::Veikts}

class Pasutijums { attribute string pasutijumaNum attribute string pasutijumaDatums attribute string pasutijumaPrioritate attribute string pasutijumaSumma relationship Pasutijums Veikts inverse Pircejs::Veic}

43. att. Saite daudzi pret daudziem

Saites daudzi pret daudziem realizācija (43. att.):class Darbinieks { attribute string vards attribute string alga relationship set<Projekts> Strada inverse Projekts::Piesaistits}

class Projekts { attribute string projektaNum attribute string apraksts attribute string sakumaDatums attribute string beiguDatums relationship set<Darbinieks> Piesaistits inverse Darbinieks::Strada}

67

Pircējs

kontaNumvārdspiegādesAdresemājasTelefonaNumdarbaTelefonaNum

Pasūtījums

pasūtījumaNumpasūtījumaDatumspasūtījumaPrioritātepasūtījumaSumma

1 0..*

Page 68: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

44. att. Saite daudzi pret daudziem ar asociācijas klasi

Saite daudzi pret daudziem ar asociācijas klasi tiek realizēta kā divas saites viens pret

daudziem (44. att.):class Katalogs { attribute string sezona attribute integer gads attribute string apraksts attribute string derigumaDatums relationship set<KatalogaProdukts> Satur1 inverse KatalogaProdukts::Ieklauts1}

class Produkts { attribute string produktaNum attribute string razotajs attribute string dzimums attribute string apraksts relationship set<KatalogaProdukts> Ieklauts2 inverse KatalogaProdukts::Satur2}

class KatalogaProdukts { attribute real cena attribute real akcijasCena relationship Katalogs Satur1 inverse Katalogs::Ieklauts1 relationship Produkts Satur2 inverse Produkts::Ieklauts2}

68

Page 69: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

45. att. Vispārinājuma saite

Vispārinājuma saites realizācijai tiek pielietots atslēgvārds extends (45. att.):class Pasutijums { attribute string pasutijumaNum attribute string pasutijumaDatums attribute real piegadesCena attribute real cena}

class InternetaPasutijums extends Pasutijums { attribute string epastaAdrese attribute string atbildesVeids}

class TelefonaPasutijums extends Pasutijums { attribute string telefonaOperators attribute string zvanaSakumaLaiks attribute integer zvanaGarums}

class PastaPasutijums extends Pasutijums { attribute string sanemsanasDatums attribute string uznemumaOperators}

Eksistē arī citi objektu datu bāzu transformāciju likumi, bet bieži šos transformēšanas

jautājumus var pieskaitīt objektorientētas programmēšanas tehnoloģijai.

4.4. Relāciju-objektu datu bāzes transformācijas likumi

Relāciju-objektu transformācijas likumi ir grūtāk izpētāmi, jo tie nav realizēti CASE

rīkos, arī nav apskatīti literatūrā. Šajā gadījumā var palīdzēt zināšanas par fiziskajām

struktūrām, gan tam, kas ir aprakstītas SQL standartā, gan tām, ko piedāvā datu bāzu vadības 69

Pasūtījums

pasūtījumaNumpasūtījumaDatumspiegādesCenacena

InternetaPasūtījums

epastaAdreseatbildesVeids

TelefonaPasūtījums

telefonaOperatorszvanaSākumaLaikszvanaGarums

pastaPasūtījums

saņemšanasDatumsuzņēmumaOperators

Page 70: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

sistēmu ražotāji. Piemēram, PostgreSQL ir atvasināto tabulu struktūra, kad viena tabula manto

citas tabulas atribūtus. Šis struktūras loģika atbilst vispārinājuma saites loģikai.

Relāciju-objektu transformācijas ir tieši tas gadījums, kad ir iespējami vairāki

transformāciju varianti, jo šajā modelī ir pieejamas divu veidu struktūras, un bieži kādas

diagrammas struktūras realizēšanai var izmantot gan objektu, gan relāciju struktūras. Tāpēc

relāciju-objektu modelī ir spēkā visas relāciju transformācijas, kas tika aprakstītas iepriekšējā

apakšnodaļa, gan modelim specifiskās transformācijas. Piemēram, pieminēto vispārinājuma

saiti relāciju-objektu modelī var realizēt ar atvasinātam tabulām, bet arī ar trīs tabulām un

ārējas atsauces ierobežojumiem.

Relāciju-modelis ļauj realizēt tādas konceptuāla līmeņa struktūras, kuras ar relāciju modeļi

realizēt ir pietiekami grūti. Galvenais relāciju modeļa ierobežojums ir saistīts ar to, ka tabulas

lauka datu vērtībai jābūt atomāram datu objektam, piemēram, tekstam vai skaitlim – relāciju

modelis neparedz situāciju, kad lauka ir ierakstīti teksts kopa ar skaitli, vai vairāki skaitļi un

līdzīgas. Šāda pieeja ierobežo izstrādātāja iespējas konceptuālajā līmeņi. Turpretī relāciju-

objektu modelis ļauj konceptuālajā līmenī veidot saliktus atribūtus, šajā modelī ir pieejama

tāda struktūra kā masīvs, kas ļauj viena laukā glabāt vairākas vērtības.

4.4.1. Saliktais atribūts

Saliktais atribūts relāciju pieejā tiek realizēts ar objektu kolonnu palīdzību. Pirmkārt, ir

jāizveido objektu tips. Objektu tipam līdzīgi, ka tabulai var būt vairākas kolonnas, ka kolonnu

vērtību domēns tiek ņemts kāds no standarta datu tipiem, vai iepriekšizveidotais objektu tips

(šādi var realizēt atribūtus ar sarežģītāko hierarhiju). Izveidotais objektu tips tālāk tiek

pielietots kā datu tips tabulas kolonnai, bet šādu kolonnu sauc par objektu kolonnu.

70

Page 71: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

4.4.2. Metode

UML klašu diagrammā ir iespēja definēt klases metodes. Relāciju-objektu modelī šīs metodes

var realizēt. Piemēram, lai to izdarītu Oracle datu bāzes vadības sistēma, ir jāizveido objektu

tips. Tipa definīcijas beigās ir jāieraksta atslēgvārds member procedure un metodes

nosaukumu. Tad, lai šo metodi realizētu ir jāveido objektu tipa ķermenis, kurā var aprakstīt

visas iepriekšdefinētas metodes. Izveidoto objektu tipu ar metodēm var pielietot tālāk veidojot

tabulas vai objektu tabulas.

4.4.3. Binārā saite viens pret daudziem

Saiti viens pret daudziem objektu-relāciju modeļi var realizēt dažādos ceļos, neskaitot relāciju

pieejas ārējas atsauces ierobežojumu. Oracle datu bāzu vadības sistēmā var izveidot tabulu ar

iekļautu tabulu, otrais veids ir atsauču (REF) izmantošana. Abu variantu realizācijai sākumā ir

jāizveido objektu tips, tad šis objektu tips īpašā veidā tiek piesaistīts tabulai iekļautas tabulas

gadījumā, vai to piesaista kolonnai ar REF atslēgvārda palīdzību.

PostgreSQL datu bāzu vadības sistēmā eksistē konstrukcija masīvs ar kuras palīdzību var

realizēt saiti viens pret daudziem gadījumā, ja „daudzi” pusē ir tikai viens atribūts.

4.4.4. Vispārinājuma saite

Īpaši ērti relāciju-objektu modeļi var realizēt vispārinājuma saiti, jo mantošana ir viena no

objektorientētas programmēšanas pamatkoncepcijām. Relāciju modeli vispārinājuma saites

realizēšanai bija nepieciešami vairāki ārējo atsauču ierobežojumi, vai skati. Relāciju-objektu

modelī PostgreSQL gadījumā bērnu tabulām tiek pievienots atslēgvārds inherits (manto), kas

nodrošina to, ka bērnu tabulas satur vecāka tabulas atribūtus, un mainot informāciju bērnu

tabulā tā tiek mainīta arī vecāku tabulas atbilstošos atribūtos.

Plašāk ar transformācijas likumiem var iepazīties ar piemēru palīdzību (5. tabula) [13, 17, 29].

71

Page 72: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

72

Page 73: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

5. tabula

Relāciju-objektu datu bāzes transformācijas likumi

KONCEPTUĀLAIS LĪMENIS LOĢISKAIS UN FIZISKAIS LĪMENIS

Objektorientēta pieeja (UML klašu diagramma)

Relāciju pieeja (realitāšu-saišu diagramma)

Relāciju-objektu pieeja, SQL valoda

Saliktais atribūts Tabula ar objektu kolonnu (Oracle sintakse)

Atribūta tipam nav izmantots kāds no standarta datu tipiem (CHAR, NUMBER, DATE u.t.t.), bet gan izveidots jaunais objektu tips T_Kontakti

create type T_Kontakti as object ( telefons NUMBER, fakss NUMBER, adrese VARCHAR(70));

create table Darbinieks ( numurs CHAR(6), vards CHAR(40), amats CHAR(100), kontaktinfo T_KONTAKTI, constraint PK_DARBINIEKS primary key (numurs));

73

Page 74: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

Metode Realitāšu-saišu notācijā metodes attēlot nav iespējams

Objektu tabula ar metodi (Oracle sintakse)

create type O_Darbinieks as object ( numurs CHAR(6), vards CHAR(30), uzvards CHAR(30), telefons NUMBER, MEMBER PROCEDURE DarbinieksIzvade);

create type body O_Darbinieks AS MEMBER PROCEDURE DarbinieksIzvade IS BEGIN DBMS_OUTPUT.PUT(‘Darbinieka numurs’||numurs); DBMS_OUTPUT.PUT(‘ Darbinieka vārds’||vards); DBMS_OUTPUT.PUT(‘ uzvārds:’||uzvards); DBMS_OUTPUT.PUT(‘ Darbinieka tel.’||telefons); DBMS_OUTPUT.NEW_LINE; END DarbinieksIzvade;END;

create table Darbinieks OF O_Darbinieks;

Asociācijas saite (0..1 : 0..*) Saite viens pret daudziem (abas realitātes neobligātas)

Tabula ar iekļauto tabulu (Oracle sinakse)

Iekļautai tabulai ir jāizveido objektu tips (piemērā T_Darbinieks)

74

Page 75: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

Darbinieks var strādāt maksimāli vienā firmā (vai būt nepiesaistīts nevienai no firmām). Firma var būt neviens darbinieks vai daudzi darbinieki.

create type T_Darbinieks as object ( vards CHAR(30), telefons NUMBER);

create type Tabula_Darbinieks as table of T_Darbinieks;

create table Firma ( numurs CHAR(6), nosaukums CHAR(100), darbinieks TABULA_DARBINIEKS, constraint PK_Firma primary key (numurs))nested table darbinieks store as darb_tabula;

Tā pati situācija, cita realizācija Atsauce (Oraclesintakse)

Jāizveido ārējas atslēgas lauks (numurs firmai, kurā strādā darbinieks)

create type TipsDarbinieks as object( ...);

create type TipsFirma as object (

75

Page 76: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

... darbinieks REF TipsDarbinieks ...);

Asociācijas saite (0..1 : 0..*)

Papildus nosacījums: „daudzi” klasei ir tikai viens atribūts

Saite viens pret daudziem (abas realitātes neobligātas)

Papildus nosacījums: realitātei „daudzi” ir tikai viens atribūts

Viena tabula ar lauku-masīvu (PostgreSQL sintakse)

Šis variants ir alternatīvs standarta transformācijai, kad saite viens pret daudziem tiek pārveidota divās tabulās (viena ar ārējo atsauci) un var būt pielietots ne jebkurā situācijā.Pārveidojums ir iespējams tikai ja „daudzi’ realitātei ir viens atribūts.

create table Darbinieks ( numurs ... atskaites_nosaukums text[], constraint PK_FIRMA primary key (numurs));

Vispārinājuma saite Vispārinājuma saite Trīs tabulas, divas no tām atvasinātas (PostgreSQL sintakse)

76

Page 77: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

Cilvēks var būt pircējs, vai darbinieks, vai abi kopā, vai neviens no tiem.

create table Cilveks ( cilv_pers_kods char(11), cilv_vards char(30), cilv_adrese char(100), constraint PK_Cilveks primary key (cilv_pers_kods));

create table Darbinieks ( dar_amats char(15))INHERITS (cilveks);

create table Pircejs ( pir_kredits CHAR(12))INHERITS (cilveks);

77

Page 78: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

SECINĀJUMI

Tiek projektētas datu bāzes dažādām problēmvidēm, eksistē temporālās, telpiskās datu bāzes,

datu noliktavas un citi datu bāzu veidi. Visiem datu bāzu tipiem ir nepieciešama projektēšanas

tehnika, kas diemžēl neeksistē vai ir vāji attīstīta. Šādas projektēšanas tehnikas izstrādi jāsāk ar

universālām pieejam – tādām datu bāzu tehnoloģijām, kas ir mazāk piesaistītas konkrētiem

uzdevumiem.

Projektējot datu bāzi, ir lietderīgi izmantot diagrammas datu konceptuālajam, loģiskajām un

fiziskajām modelim. Izplatītākie konceptuālo modeļu veidi ir:

1) realitāšu-saišu diagramma,

2) UML klašu diagramma,

3) realitāšu-saišu diagramma ar dažiem paplašinājumiem, ieskaitot UML elementus.

Jāpiebilst, ka, izstrādājot konceptuālo modeļi, nav svarīgi kurā DBVS datu bāze tiks realizēta.

Tātad, izvēloties kādu no projektēšanas pieejām ir jādomā, vai šīs projektēšanas veids ir labi

saprotams klientiem un pašiem izstrādātājiem, vai ar tā palīdzību var aprakstīt pietiekami

sarežģītas problēmvides struktūras. Attīstības gaitā UML klašu diagramma un realitāšu saišu

diagrammas ir tik uzlabojušās, ka tagad tas spēj sniegt līdzīgu funkcionalitāti un daži

automatizētas projektēšanas rīki ļauj brīvi pārveidot UML klašu diagrammu realitāšu-saišu

diagrammā un otrādi. Ārpus minētājiem, eksistē vairākas citas modelēšanas pieejas, bet tās ir vai

nu pārāk sarežģītas (piemēram, objektu-lomu modelēšana), vai arī domāti specifiskiem mērķiem,

piemēram, MADS konceptuālas modelēšanas pieeja, kas ir domāta temporālo un telpisko datu

bāzu projektēšanai, tāpēc dotajā brīdī šis pieejas nav kļuvušās populāras izstrādātāju vidū.

Eksistē vairāki datu bāzu loģiskie modeļi, uz kuriem balstās datu bāzu vadības sistēmas.

Neapšaubāmais līderis ir relāciju modelis. Vairāki zinātnieki un izstrādātāji apgalvo, ka liels

potenciāls ir objektorientētām datu bāzēm, kuru galvenā atšķirība ir tā, ka objekti netiek atdalīti

no uzvedības. Eksistē minēto tehnoloģiju hibrīds – relāciju-objektu datu bāze. Katrai no

tehnoloģijām ir sava pieeja datu glabāšanai, savas fiziskās struktūras. Relāciju modelī dati tiek

glabāti tabulās, objektorientēta modelī – objektos, bet tas nav visas fiziskās struktūras, eksistē

indeksi, kas palielina ātrdarbību, ierobežojumi, kas rūpējas par datu integritāti, metodes, kas

nodrošina objektu uzvedību u.c. Nevar viennozīmīgi pateikt, kura no tehnoloģijām ir labāka.

Eksistē uzdevumi, problēmvides, kuros labāk ir izmantot kādu noteiktu tehnoloģiju, bieži vien

tehnoloģijas izvēle ir atkarīga no izstrādātāju pieredzes, dokumentācijas esamības un citiem

iemesliem. Ar relāciju, objektu un relāciju-objektu modeļi datu bāzu vadības sistēmas nav

Page 79: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

ierobežotas. Līdzīgi kā ar projektēšanas metodēm eksistē ne tik izplātītie modeļi, arī modeļi,

kurus izmanto specifiskos uzdevumus.

Praksē konceptuāla un loģiskā līmeņa pārveidojumus fiziskajās struktūrās CASE rīki neveic

tik labi:

1) CASE rīku diagrammas ir ierobežotas, piemēram, nevar izveidot ternāro saiti, vai nav

realizēta mantošana. Šādā gadījumā izstrādātājam ir jāizdomā, kā apiet šos

ierobežojumus, kā rezultātā diagramma nav tik kvalitatīva – tā ir sliktāk pārskatāma, tajā

ir lieki elementi u.t.t.;

2) veiktas transformācijas ir nekvalitatīvas, jo netiek izmantotas visas iespējas, ko sniedz

modelis. CASE rīks veido vienkāršākas struktūras, tiek aizmirsts par iespējām, ko var

dot, piemēram, skati, indeksi un citas fiziskās struktūras;

3) ar izplatītāko CASE rīki palīdzību nevar izveidot relāciju-objektu datu bāzi;

4) CASE rīki reti piedāvā transformācijas variantus. Bieži vienu to pašu uzdevumu var

atrisināt dažādos ceļos, bet rīks izvēlās kādu vienu, iespējams šajā gadījumā ne pašu

labāko.

Sakarā ar minētājiem CASE rīku nepilnībām, bet lielu nepieciešamību pēc atbalsta, ko tie

varētu sniegt datu bāzu izstrādātājiem, tika izpētīts, kā CASE rīkus var uzlabot, bet konkrēti, tika

apskatīti diagrammu elementi, kas sniedz vairākas papildus iespējas datu bāzu projektētājiem,

fiziskās struktūras, kuras pareizi pielietojot, var izveidot kvalitatīvāko datu bāzi (ātrāko,

vienkāršāko, labāk atbilstošu uzdevumam u.t.t), bet galvenais, tika piedāvāti transformācijas

likumi, gan tie likumi, kuri ir iekļauti labākajos rīkos, gan arī tie, kuru tur nav, kā arī tika

piedāvāti projektēšanas uzdevumu risināšanas varianti – kā diagrammas elementu kopu var

pārvērst fiziskajās struktūrās dažādos veidos.

CASE tehnoloģiju var uzlabot, pirmkārt, papildinot konceptuālo modeli, ieviešot tajā

papildus konstrukcijas – „vai” saiti, vispārinājuma un agregācijas saiti, ternāro un augstākas

kārtas saiti, arī konstrukcijas, kuras var realizēt ar relāciju-objektu tehnoloģijas palīdzību

(objektus, saliktus atribūtus). Otrkārt, jāizmanto visas datu bāzu sniegtas iespējas jeb fiziskās

struktūras. CASE rīkiem transformācijas rezultātā jāveido skati, kurus var izmantot

vispārinājuma saites, „vai” saites realizācijai. Transformāciju rezultātā jāveido relāciju-objektu

fiziskas struktūras – masīvus; mantošanu, ar kuras palīdzību var realizēt vispārinājuma saiti;

iekļautas tabulas; atsauces, ar kurām var realizēt saiti viens pret daudziem; masīvus, kas ļauj

realizēt neatomārus atribūtus. Pieredzējušām lietotājam jāpiedāvā iespējas izvēlēties no

iespējamiem transformāciju variantiem. Darbā ir apskatīti četri varianti, kā var realizēt saiti viens

pret daudziem (ar ārējas atsauces, masīva, iekļautas tabulas, atsauču palīdzību), tāpēc lietotājam

būtu jāpiedāvā visi iespējamie varianti, nevis katru reizi realizēt šo saiti ar ārējam atsaucēm, kā

79

Page 80: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

tas tiek praktizēts CASE rīkos. Līdzīgi jābūt iespējai izvēlēties, vai konkrēta struktūra tiek

pārveidota tabulās vai tabulās un skatos, šādas iespējas pastāv realizējot vispārinājuma saiti, bet

ja pielieto relāciju-objektu struktūrās, tad variantu skaits ir vēl lielāks.

Pamatojoties uz veikto analīzi tiks veidots jauns CASE rīks, kas novērsīs augstākminētas

nepilnības. Par šī CASE rīka loģisko pamatojumu kalpos šis maģistra darbs, kā arī katedras

ietvaros veiktie pētījumi par šāda CASE rīka fiziskās realizācijas variantiem.

80

Page 81: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

LITERATŪRAS SARAKSTS

1) Allen S., Terry E. Beginning Relational Data Modeling, 2nd edition. – Apress, 2005. – 632 p.

Grāmata ir interesanta ne tikai ar to, ka tajā ir izklāstīti datu modelēšanas principi, bet arī

ar to, ka tajā ir informācija par datiem kā tādiem, datu apstrādes vēsturi, ir sniegts šāda

modelējuma pamatojums – kāpēc tas ir vajadzīgs biznesam.

2) Bagui S., Earp R. Database Design Using Entity-Relationship Diagrams. – Auerbach

Publications, 2003. – 242 p.

Grāmata apskata relāciju datu bāzu lomu programmatūras izstrāde, realitāšu-saišu

diagrammas teoriju, ir aprakstītās paplašinātas realitāšu-saišu diagrammas koncepcijas,

Barkera realitāšu-saišu diagrammas notācija, ka arī citi jautājumi, kas ir veltīti datu bāzu

izstrādei, lietojot realitāšu-saišu diagrammu.

3) Codd E. A Relational Model of Data for Large Shared Data Banks// Communications of the

ACM. – June 1970. – Vol. 13, No. 6. – pp. 377-287.

Viens no pirmajiem (ja ne pirmais) Koda rakstiem par relāciju modeli.

4) Codd E. Data Models in Database Management// Proc. Workshop in Data Abstraction,

Databases and Conceptual Modelling, Pingee Park, Colo. – June 1980. – No.74.

Relāciju modeļa autora rakstā ir teorētiskā informācija par datu modeļi, uzdevumiemi,

ko tam ir jāveic.

5) Connolly T., Begg C. Database Systems: A Practical Approach to Design, Implementation,

and Management, 3rd editon. – Adisson Wesley, 2001. – 1236 p.

Grāmata, kas apskata visas datu bāzu tehnoloģijas pamattēmas, ieskaitot datu bāzu

tehnoloģijas ietekmi uz ekonomiku; relācijas modeli, analīzes un projektēšanas metodes,

arī jaunos virzienus datu bāzu pētījumos.

6) Date C. An Introduction To Database Systems, 7th edition. – Addison Wesley Longman,

1999. – 938 p.

Grāmatā tiek apskatīti gan datu bāzu pamati, gan arī autora redzējums par datu bāzu

iespējamo attīstību. Īpaša uzmanība tiek veltīta relāciju modelim.

7) Date C. The relational model will stand the test of time // Intelligent Enterprise. – 1999. –

June 1, Volume 2, Number 8.

Raksts, kas ir veltīts relāciju modeļa autora Koda (Codd) darbiem. Rakstā pamatdaļas

ietver relāciju modeļa mērķu un attīstības ceļa analīzi.

8) Datortermini. Lielā terminu vārdnīca. / Internets. – http://www.termini.lv/

81

Page 82: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

9) Halpin T. Information Modeling and Relational Databases: from conceptual analysis to

logical design. – Morgan Kaufmann, 2001. – 792 p.

Grāmatā pārsvarā iet runa par objektu-lomu modelēšanu. Autors apgalvo, ka salīdzinot

ar realitāšu-saišu diagrammām un UML modelēšanu, objektu-lomu modelēšanai pieejai

ir vairākas priekšrocības. Lai lasītājs par to pārliecinātos, grāmatā daudz uzmanības ir

veltīts arī ER un UML projektēšanai. Grāmata arī ir vērtīga apskatot relāciju datu bāzu

modelēšanas tehnoloģiju vispār.

10) Harrington J. Object-Oriented Database Design Clearly Explained. – Morgan Kaufmann,

1999. – 328 p.

Grāmatā par objektu datu bāzu projektēšanu ir apskatīti tādi jautājumi kā datu bāzu

vēsture, objektorientēta paradigma, objektorientēto datu bāzu standartizācija,

objektorientētas pieejas priekšrocības. Grāmatas otrajā daļā ir apskatīti konkrēti

projektēšanas piemēri.

11) Hernandez M. Database Design for Mere Mortals. A Hands On Guide For Relational DBMS

Design, 2nd edition. – Addison-Wesley Professional, 2003. – 672 p.

Grāmata ir plaši apskatītas relāciju struktūras, sniegtas autora izstrādātas vadlīnijas

relāciju datu bāzu projektēšanai.

12) Ievīte I, Kirikova M. Diagrammas sistēmu analīzē un projektēšanā. Lekciju palīgmateriāls

RTU ASTF jaunāko kursu studentiem. – Rīga: RTU, 1997. – 33 lpp.

Lekciju palīgmateriālā apskatītas realitāšu-saišu, datu-plūsmu, stāvokļu pārejas ka arī

citu diagrammu konstruēšanas pamati.

13) Kline K., Kline D., Hunt B. SQL In A Nutshell, 2nd edition. – O'Reilly Media, Inc., 2004. –

700 p.

Grāmata ir veidota rokasgrāmatas formātā un tajā ir apskatīts standarts SQL2003, ka arī

šī standarta realizācijas īpatnības Microsoft, Oracle, IBM, PostgreSQL, MySQL datu

bāzu vadības sistēmās.

14) Kriegel A, Trukhnov B. SQL Bible. – John Wiley & Sons, 2003. – 831 p.

Apskatīti dažādi jautājumi, kas ir saistīti ar SQL valodu: objektorientētas iespējas, SQL

standarts SQL:1999, šī standarta realizācijas, SQL saistība ar XML, OLAP.

15) Matthew N., Stones R. Beginning Databases with PostgreSQL: From Novice to Professional,

2nd edition. – Apress, 2005. – 664 p.

Grāmata ir veltīta PostgreSQL datu bāzes vadības sistēmai, bet tajā ir arī aprakstīta datu

bāzes tehnoloģijas attīstības vēsture.

16) Naiburg E., Maksimchuk R. UML for Database Design. – Addison-Wesley Professional,

2001. – 320 p.

82

Page 83: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

Liela grāmatas daļa ir veltīta UML klašu diagrammai, ir apskatītas arī citas datu bāzu

projektēšanas iespējas, izmantojot UML.

17) Oracle Database. Application Developer’s Guide. Object-Relational Features. 10g Release 1

(10.1). – Oracle Corporation, 2003. – 252 p.

Dokuments apraksta Oracle datu bāzes relāciju-objektu iespējas. Dokumentā ir apskatīti

arī projektēšanas jautājumi.

18) Parent C., Spaccapietra S., Zimanyi E. Conceptual Modeling for Traditional and Spatio-

Temporal Applications. The MADS Approach. – Berlin: Springer, 2006. – 470 p.

MADS pieeja tiek izmantota galvenokārt telpiski-temporālo lietojumu datu bāzu

konceptuālai projektēšanai. Grāmatā plaši apskatīta telpisko un temporālo datu bāzu

teorija un datu bāzu projektēšanas teorija.

19) Paterson J., Edlich S., Horning H. The Definitive Guide to db4o. – Apress, 2006. – 510 p.

Grāmata ir par objektu datu bāzi db4o (database for object, jeb datu bāze objektiem) un

ir domāta programmētājiem. Darbā ir arī teorētiska informācija par objektu pieeju un par

objektu datu bāzu sniegtajām priekšrocībām.

20) Powell G. Beginning Database Design. – Wiley Publishing, 2006. – 496 p.

Grāmata ir domāta datu bāzes tehnoloģijas pašu pamatu apguvei. Šajā darbā labi ir

aprakstīta datu bāzu evolūcija no failu sistēmām līdz relāciju-objektu modelim.

21) Powell G. Beginning XML Databases. – Indianapolis:Wiley Publishing, 2007. – 470 p.

Autors apskata gan XML tehnoloģiju, šis tehnoloģijas uzdevumus, tas saistību ar datu

bāzēm. Grāmatā ir piemēri, kā XML tehnoloģija tiek izmantota relāciju datu bāzēs, dau

bāzu vadības sistēmās Oracle un SQL Server.

22) Rumbaugh J., Jacobson I., Booch G. The Unified Modeling Language Reference Manual. –

Adisson Wesley Longman Inc., 1999. – 568 p.

UML veidotāju grāmatas, iepazīstina ar UML valodas koncepcijām.

23) Satzinger J., Jackson R., Burd S. System Analysis and Design in a Changing World, 4th

edition. – Thomson Course Technology, 2006. – 712 p.

Grāmatā ir apskatīti vairāki programmatūras izstrādes jautājumi, bet tā arī iekļauj

nodaļas par datu bāzu projektēšanu, iekļaujot informāciju par objektorientētām un

relāciju-objektu datu bāzēm.

24) Silberschatz A., Korth H., Sudarshan S. Database System Concepts, 5th edition. – McGraw-

Hill, 2006. – 1142 p.

Grāmatā ir apskatīti visi galvenie jautājumi, kas ir saistīti ar datu bāzu tehnoloģiju. Ir

apskatītas arī tādas tēmas kā objektu datu bāzes un XML, paplašināta realitāšu-saišu

diagramma, relāciju valodas (ne tikai SQL).

83

Page 84: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

25) Simsion G., Witt G. Data Modeling Essentials, 3rd edition. – Morgan Kaufmann, 2005. –

560 p.

Apskata datu bāzu projektēšanas jautājumus: supertipu un apakštipu projektēšanu,

realitāšu-saišu diagrammas paplašinājumus, datu noliktavu projektēšanu kā arī daudzus

citus.

26) Teorey T., Lightstone S., Nadeau T. Database Modelig & Design: Logical Design, 4th

edition. – Morgan Kaufmann, 2006. – 296 p.

Grāmata ir interesanta ar to, ka tajā nav plaši aprakstīta datu bāzu teorija (informācija, ko

var atrast desmitos citu grāmatu), bet gan kodolīgi ir apskatīta datu bāzu modelēšana, arī

transformācijas likumi no realitāšu-saišu un UML konstrukcijām uz SQL. Grāmatā ir arī

nodaļa par moderniem CASE rīkiem.

27) Wikipedia: Entity-Attribute-Value model / Internet. – http://en.wikipedia.org/wiki/Entity-

Attribute-Value_model

Brīvās enciklopēdijas raksts par modeli Realitāte-Atribūts-Vērtība.

28) Williams S. The Associative Model of Data, 2nd edition. – Lazy Software, 2002. – 272 p.

Autors piedāvā jauno datu modeli – asociatīvu datu modeļi, aprakstot tā būtību un

sniegtas priekšrocības. Grāmatā ir plaši aprakstīta datu bāzu attīstības vēsture,

argumentēti objektu un relāciju modeļu trūkumi.

29) Worsley J., Drake J. Practical PostgreSQL. – O’Reilly Media, Inc., 2002. – 636 p.

Grāmatā ir aprakstīti praktiskie jautājumi darbam ar relāciju-objektu datu bāzu vadības

sistēmu PostgreSQL. Grāmatā ir interesanta ar to, ka tajā ir informācija par struktūrām,

kas ir specifiskās PostgreSQL kā relāciju-objektu sistēmai. Jāpiezīmē, ka tieši

PostgreSQL (tolaik Postgres) sistēmas izstrādi pārvaldīja relāciju-objektu modeļa autors

Maikls Stounbreikeris (Michael Stonebraker).

30) Кириллов В. Основы проектирования реляционных баз данных / Интернет. –

http://www.citforum.ru/database/dbguide/index.shtml

Internetā publicētais mācību līdzeklis apskata dažādas relāciju datu bāzes problēmas:

sākot ar datu bāzu definīciju, realitāšu saišu diagrammu, datu bāzu projektēšanu un

beidzot ar bibliotēkas datu bāzes projektēšanas piemēru.

31) Крёнке Д. Теория и практика построения баз данных, 8-е издание. - Санкт-Петербург:

Питер, 2003. – 800 стр.

Darbs, kas aptver visas datu bāzu tehnoloģijas pamattēmas, ieskaitot relāciju un objektu

datu bāzes, datu bāzu projektēšanu un citas.

84

Page 85: RĪGAS TEHNISKĀ UNIVERSITĀTE · Web viewDatu bāzes izveidošana ir grūts un atbildīgs uzdevums. Galvenās problēmas ir saistītas, nevis ar tehnisko realizāciju, bet gan ar

32) Кузнецов С. Объектно-ориентированные базы данных - основные концепции,

организация и управление: краткий обзор / Интернет. –

http://www.citforum.ru/database/articles/art_24.shtml

Rakstā minētas objektorientēto datu bāzu pamatkoncepcijas.

33) Леоненков А. Объектно-ориентированный анализ и проектирование с использованием

UML и IBM Rational Rose. – Москва: Бином. Лаборатория знаний, 2006. – 320 стр.

Grāmāta par UML valodu un tas pielietošanu.

85