datu bāzes tehnoloģijas  · web viewmaģistra darbā apskatīta datu bāzes projektēšana....

124
` Uldis Vaicis Objektu datu bāzes projektēšanas automatizācijas realizēšanas tehnoloģiju analīze un izvērtējums Maģistra DARBS Zinātniskais vadītājs: Profesors, Dr.sc.ing. Jānis Eiduks Rīga 2016

Upload: others

Post on 21-Jan-2021

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

Uldis Vaicis

Objektu datu bāzes projektēšanas automatizācijas realizēšanas

tehnoloģiju

analīze un izvērtējums

Maģistra DARBS

Zinātniskais vadītājs:

Profesors, Dr.sc.ing. Jānis Eiduks

Rīga 2016

Page 2: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

ANOTĀCIJA

RELĀCIJU – OBJEKTU DATU BĀZE, CASE RĪKI, UML, KLAŠU DIAGRAMMA,

DATU MODEĻU TRANSFORMĀCIJA, DATU MODELIS, DATU BĀZES

PROJEKTĒŠANA

Maģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju –

objektu datu bāzes projektēšanas iespēju izpētei. Noskaidrots, ka atšķirībā no relāciju un

objektorientēto datu bāžu projektēšanas, relāciju – objektu datu bāzei no datu semantiskā

modeļa tiek iegūti struktūru varianti. Tātad transformācija nav viennozīmīga un jālieto

iteratīvas daudzkriteriālās optimizācijas procedūras. To realizēšanai ir apskatīti saliktu

struktūru vērtēšanas kritēriji jeb metrikas. Ir veikta izpēte, kā tiek iegūtas relāciju – objektu

datu bāzes struktūras eksistējošajās realizācijās, kādi modeļi un tehnoloģijas tiek lietoti, un

kādi ir to izmantošanas ierobežojumi. Veiktā analīze, ļāva darbāizveidot relāciju – objektu

datu bāzes projektēšanas automatizācijas sistēmas prototipu, kurš ļauj projektētājam precizēt

savas vēlmes, izvēloties vienu no potenciālajiem relāciju – objektu datu bāzes struktūras

variantiem. Šāda iespēja relāciju – objektu datu bāzei tiek realizēta pirmo reizi.

Maģistra darba apjoms ir 88 lappuses, 67attēli un12 tabulas. Darbā ir ievietotas

atsauces uz 16 literatūras avotiem.

Page 3: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

SatursIEVADS.....................................................................................................................................8

1. DATU BĀZES UN PROBLĒMVIDE.............................................................................11

1.1. Datu bāzes projektēšana............................................................................................11

1.2. Relāciju datu bāzes neatbilstība problēmu vidēm ar saliktiem objektiem (relāciju

datu bāzes trūkumi)..............................................................................................................12

1.3. Relāciju-objektu datu bāzes nepieciešamība saliktām problēmu vidēm...................14

2. RELĀCIJU-OBJEKTU DATU BĀZES DATU GLABĀŠANAS STRUKTŪRAS.......24

2.1. Objektu orientētās tehnoloģijas relāciju-objektu datubāzē........................................24

2.2. Datu bāzes objekts.....................................................................................................26

2.3. Glabāšanas elementi un struktūras:...........................................................................30

2.4. Asociāciju veidi.........................................................................................................32

3. RELĀCIJU – OBJEKTU DATU BĀZES PROJEKTĒŠANA........................................33

3.1. Relāciju – objektu datu bāzes konceptuālais modelis...............................................33

3.2. Objektu orientētie konceptuālie modeļi.....................................................................35

3.2.1. Projektēšanas iespējas izmantojot UML diagrammu saimes klašu diagrammu 35

3.2.2. Paplašinātais UML modelis relāciju-objektu datu bāzes projektēšanai.............38

3.3. Objektu relāciju datu bāzes projektēšanas automatizācija[3]....................................44

3.4. Daudzkriterialitāte relāciju – objektu datu bāzes projektēšanā.................................47

4. TRANSFORMĀCIJAS NO KONCEPTUĀLĀ MODEĻA UZ RELĀCIJU-OBJEKTU

FIZISKO MODELI..................................................................................................................51

4.1. Transformāciju veidi.................................................................................................51

5. RELĀCIJU-OBJEKTU DATU BĀZES PROJEKTĒŠANAS RĪKI...............................58

5.1. MIGROX integrētais karkass....................................................................................58

5.2. O-ODM relāciju-objektu datu bāzes projektēšanas karkass......................................59

Page 4: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

6. RELĀCIJU-OBJEKTU DATU BĀZES DATU STRUKTŪRAS NOVĒRTĒJUMA

KRITĒRIJI...............................................................................................................................61

6.1. Objektorientētās struktūras novērtējuma metrikas....................................................61

6.2. Relāciju - objektu datu bāzes struktūras novērtējuma metrikas................................64

7. VEIDŅA VADĪTA RELĀCIJU - OBJEKTU DATU BĀZES PROJEKTĒŠANAS

AUTOMATIZĀCIJAS PROTOTIPS......................................................................................66

7.1. Konceptuālā modeļa izveide......................................................................................67

7.2. Lietotāja definētas konstruktora funkcijas.................................................................68

7.3. Lietotāja definēti šabloni objektu metodēm..............................................................70

7.4. Konceptuālā modeļa un transformāciju datu glabāšanas datu bāzes struktūras........71

7.5. Izmantotie kritēriji struktūras vērtējumam................................................................76

7.6. Veidņa vadītas sistēmas prototips.............................................................................81

SECINĀJUMI..........................................................................................................................86

IZMANTOTĀ LITERATŪRA................................................................................................88

Page 5: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

IEVADSIkdienas dzīvē (darbā un atpūtā) cilvēki saskaras ar dažādām datu sistēmām. Datu

sistēma ir organizēta simbolu (grafiska zīme, vārds, skaitlis, priekšmets, subjekts, kas tāds

kas apzīmē kādu ideju, īpašību) kolekcija un metodes, ko izmanto, lai darbotos ar tiem. Lai

risinātu savus biznesa vai pētniecības uzdevumus, cilvēks veido savu priekšstatu (modeli) par

attiecīgajām datu sistēmām. Tas tiek izmantots gan analīzei, gan lēmumu pieņemšanai. Datu

sistēmas bieži ir ļoti apjomīgas. To efektīvai izmantošanai ir nepieciešams datorizēts atbalsts.

Tiek izstrādātas informācijas sistēmas (IS), kuras nodrošina datu sistēmas modeļa glabāšanu,

nepieciešamo datu iegūšanu un to attēlošanu. Datu glabāšanai un nepieciešamo datu

iegūšanai vairāk nekā 90% gadījumos izmanto datu bāzes tehnoloģiju. Tās lietošana

nodrošina sekojošas priekšrocības:

1) datu sistematizācija;

2) datu dublēšanās novēršana;

3) datu veseluma (integritātes) nodrošināšana;

4) lietotāja autentifikācijas un tiesību kontrole (datu aizsardzība);

5) vienotas datu bāzes valodas izmantošana vaicājumiem un administrēšanai;

6) lietojumprogrammu neatkarība, no datu bāzes loģiskā un fiziskā modeļa

izmaiņām.

Datu bāze iekļauj lielu faktu daudzumu. Starp tiem eksistē daudzas un dažādas saites.

Tas jāņem vērā, veidojot datu bāzes datu glabāšanas struktūru. Sākotnēji (19. gs. 60, 70 gadi)

izstrādātāji vairāk domāja par datu fiziskās glabāšanas iespējām, un mazāk uzmanības

pievērsa datu semantikai. Rezultātā izstrādātās datu bāzes un informācijas sistēmas nebija

kvalitatīvas (lietotāji bieži nebija apmierināti). Arī mūsdienās ir problēmas ar informācijas

sistēmu kvalitāti. Pēdējo pētījumu rezultāti parāda, ka no visām izstrādātajām informācijas

sistēmām tikai 25% var uzskatīt par kvalitatīvām. Kāpēc? Problēmas parasti nav saistītas ar

lietojumprogrammām (tikai speciālos gadījumos). Vaina ir datu bāzē: nekorekts vai

neveiksmīgs datu bāzes struktūras definējums, izstrādātāji nav izpratuši problēmvides

semantiku, lietotāju vajadzības un fiziskās realizācija iespējas.

5

Page 6: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

Sākot ar 19. gs. 70 gadu beigām, datu konceptuālai analīzei (nesaistītai ar realizāciju)

tika pievērsta ar vien lielāka uzmanība.Datu bāzes projektēšanas process tika sadalīts 3

etapos:

1) datu (ne datu bāzes) konceptuālā modeļa izstrāde;

2) datu bāzes loģiskā modeļa izstrāde (izvēlētā datu bāzes vadības sistēmas tipa

datu bāzes loģiskās struktūras konstruēšana);

3) datu bāzes fiziskā modeļa izstrāde (izvēlētās datu bāzes vadības sistēmas datu

bāzes fiziskās struktūras konstruēšana).

Lai varētu veikt pirmo etapu, bija nepieciešama konceptuālā modeļa notācijas: datu,

datu grupējumu un saišu apzīmējumu sistēma. 19. gs. 70 gadu vidū Pīters Čens izstrādāja

realitāšu - saišu (Entity-Relationship (ER)) konceptuālo modeli. To izmantoja relāciju un

hierarhisku datu bāžu projektēšanai.

Datu bāzē ir daudz dažāda tipa dati un attiecīgas saites starp tiem. Lai pilnvērtīgi un

kvalitatīvi varētu veidot datu konceptuālo modeli, bija nepieciešams datora atbalsts (modeļa

diagrammas vizualizēšana, visu datu, to grupējumu aprakstu glabāšana un sistematizācija).

19. gs. 70 gadu beigās tika izstrādāta CASE (Computer Aided/Assisted Software/System)

tehnoloģija (lieto arī terminu datorizētā sistēminženierija).

Tiek izmantoti trīs galvenie datu bāzes vadības sistēmu (DBVS) tipi:

1) relāciju DBVS;

2) objektorientētās DBVS;

3) relāciju - objektu DBVS.

Relāciju datu bāzes sistēma ir izstrādāta, izmantojot relāciju algebru. Šis

matemātiskais pamats ļauj izmantot daudzas noderīgas metodes un teorēmas no kopu teorijas.

Tomēr tās var izmantot tikai vienkāršiem datiem. Ir arī problēmas ar datu nepieciešamajām

transformācijām starp lietojumu un datu bāzes sistēmu. Lietojumos tiek izmantoti objekti

(objektu orientētās programmēšanas valodas), bet relāciju datu bāzē objektu konstrukciju nav.

Objektorientētās datu bāzēs var veidot lietotāja definētus datu tipus, dažādus objektu

konteinerus (kolekcijas un sarakstus), kā arī iekļautus objektus. Tas rada kopību starp

lietojumprogrammas un datu bāzes datu tipa sistēmām, kas ļauj vienkāršāk pieprasīt un

saņemt objektu tipa datus. Diemžēl objektorientētajām datu bāzes sistēmām nav stingra

matemātiska pamatojuma, kas rada problēmas to darbības metožu detalizētai analīzei un

jaunu efektīvāku pilnveidojumu veidošanai.

6

Page 7: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

Kā jau minēts, relāciju datu bāzes konceptuālā modeļa veidošanai lieto P. Čena

izstrādāto realitāšu – saišu (Entity – Relationship (ER)) modeli. Objektorientētās datu bāzes

konceptuālā modeļa veidošanai tiek izmantota Unificētās modelēšanas valodas (Unified

Modeling Language (UML)) klašu diagramma. Relāciju – objektu datu bāzes konceptuālā

modeļa izstrādei speciāla modeļa nav. Maģistra darbā ir mēģināts šo problēmu analizēt un

risināt.

7

Page 8: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

1. DATU BĀZES UN PROBLĒMVIDE

1.1. Datu bāzes projektēšana

Lai izstrādātu kvalitatīvu lietojumu, ir jāveic datu bāzes projektēšana atbilstošajai

problēmu videi. Par datu bāzes projektēšanas procesu tiek uzskatīts darbību kopums, kurš ir

jāveic, lai no problēmvides, tajā esošajiem elementiem un asociācijām, tiktu iegūta atbilstoša

datu bāzes struktūra, kura pilnībā atbilst sistēmas definētajām prasībām. Izveidot piemērotu

datu bāzes struktūru datu bāzē ne vienmēr ir iespējams reālās dzīves atbilstošās situācijas

sarežģītības un nepārskatāmības dēļ. Datu bāzes projektēšanas process sastāv no trīs fāzēm –

konceptuālā modeļa izveidošanas, konceptuālā modeļa transformēšanas uz loģisko modeli,

loģiskā modeļa transformēšana uz fizisko modeli. Konceptuālajā modelī tiek attēloti reālās

dzīves koncepti un saites ar citiem konceptiem. Pamatā tas tiek veidots balstoties uz

projektējamās sistēmas biznesa prasībām – kādi koncepti tiks iekļauti biznesa sistēmā un kuri

koncepti savā starpā mijiedarbosies. Tādējādi tiek iegūts vienkāršs, viegli pārskatāms un

saprotams problēmvides atspoguļojums. Šis modelis netiek veidots kādai datu bāzes sistēmai

un nav atkarīgs no tālākās realizācijas – tas sniedz vispārīgu priekšstatu par projektējamo

reālās dzīves situāciju un iesaistītajiem konceptiem. Līdz ar to, šis modelis ir kā izejas punkts

citu specifiskāku modeļu izveidošanai. Transformējot konceptuālo modeli uz loģisko modeli,

tiek iegūts padziļināts problēmvides modelis. Šajā modelī jau katram konceptam ir definēts

tā atribūtu jeb īpašību kopumus. Tāpat arī šajā fāzē konceptiem tiek izdalīti unikāli

identifikatori (primārās atslēgas) un norādīts, kādā veidā koncepti mijiedarbojos – kuri ir

atribūti, ar kuriem koncepti tiek sasaistīti (arējās atslēgas). Fiziskā modeļa veidošana,

balsoties uz izveidoto loģisko modeli, ir datu bāzes projektēšanas pēdējā fāze. Šajā fāzē tiek

veidota izvēlētās datu bāzes vadības sistēmas datu bāzes struktūra. Tas nozīmē, ka visi

loģiskā modeļa elementi tiek pārveidoti par atbilstošās datu bāzes sistēmas elementiem. Šajā

fāzē ir nepieciešams arī noteikt visus datu tipus visiem atribūtiem, lai būtu iespējams izveidot

nepieciešamās tabulas un to struktūras.

8

Page 9: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

1.2. Relāciju datu bāzes neatbilstība problēmu vidēm ar saliktiem

objektiem (relāciju datu bāzes trūkumi)Datu bāze – strukturēta datu kopas glabāšanas sistēma, lai dati būtu pieejami dažādiem

lietojumiem. Relāciju datu bāzē informācija tiek attēlota tabulās, kuras sastāv no rindām un

kolonnām. Tabula tiek uzskatīta par relāciju tādā mērā, ka tā ir kolekcija no viena veida datu

tipiem-rindām. Dati tabulās var tikt sasaistīti balstoties uz izveidotām atslēgām vai

konceptiem un ir iespēja no tabulas šos datus izgūt balstoties uz pielietotajiem sasaistes un

identifikācijas mehānismiem. Datu bāzes vadības sistēma (DBMS) nodrošina datu glabāšanu,

uzturēšanu un izgūšanu. Relāciju datu bāzes gadījumā relāciju datu bāzes sistēma nodrošina

šos uzdevumus. Relāciju datu bāzē dati tiek organizēti ievērojot dažādus integritātes likumus,

lai nodrošinātu, ka dati ir korekti un pieejami. Kā pirmais nosacījums ir – lai rindas datu

bāzes tabulā būtu unikālas – to nodrošina ar primārās atslēgas kolonnām vai kolonnu kopu.

Datu bāze ir organizēta no tabulām, kurās glabājas dati. Relāciju datu bāzē kolonas satur datu

bāzē definētos vienkāršos tipus (number, varchar, char, utt). Izmantojot SQL (Structured

Query Language) ir iespējams šos datus no datu bāzes izgūt norādot dažādus kritērijus.

Relāciju tabulas veidošanas komanda ir :create table <tabulas nosaukums> (

<atribūta nosaukums><atribūta datu tips>,

. . .

);

Tātad, tabulu var izveidot sekojoši:create table magistra_darbs(

md_id number,

md_nosaukums varchar2(2000 char),

md_apraksts varchar2(2000 char),

md_datums date,

md_autors varchar2(2000 char),

md_atzime number);

Datu ievietošanas tabulā sql komanda:INSERT INTO

MAGISTRA_DARBS( MD_ID, MD_NOSAUKUMS, MD_APRAKSTS,

MD_DATUMS, MD_AUTORS, MD_ATZIME )

VALUES

9

Page 10: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

( mg_seq.nextval, 'Relāciju objektu db projektēšana', 'Kā

projektēt relāciju datu bāzi', sysdate, 'Uldis Vaicis', null

);

Datu izgūšanas vienkāršs piemērs:select * from MAGISTRA_DARBS where MD_ATZIME is null;

Iegūtais rezultāts:

1.1. att. Datu izgūšanas piemēra rezultāti

Lai relāciju datu bāzē modelētu saites, nepieciešams izmantot pazīmes, ar kurām

vairāku tabulu datus sasaistītu kopā. Pārsvarā tiek izmantota pamata tabulas kolonna, kura

kalpo kā primārā atslēga (Primary Key (PK)) un saistītās tabulas kolonna – ārējā atslēga

(Foreign Key (FK)), kura saistās ar pamata tabulas primāro atslēgu. Primārā atslēga tabulā ir

unikāls lauks, kurš tabulā viennozīmīgi identificē kādu no datu rindām. Lai veiktu sasaisti,

nepieciešams datu izguves vaicājumā sasaistīt iesaistīto tabulu primārās un ārējās atslēgas.

Parasti šīs atslēgas tiek veidotas tabulu projektēšanas vai veidošanas brīdī, bet diemžēl ir

iespējams, ka šīs atslēgas nav definētas. Ja tās ir nepieciešams definēt, tad pamata tabulas

primāro atslēgu var definēt sekojoši:alter table MAGISTRA_DARBS add constraint "MAGISTRA_DARBS_PK" PRIMARY

KEY ("MD_ID");

Nākamais solis ir saistītās tabulas izveide un ārējās atslēgas izveidošana.create table MD_NODALAS(

MDN_ID number,

MD_ID number,

MDN_NOSAUKUMS varchar2(2000 char));

ALTER TABLE MD_NODALAS ADD CONSTRAINT "MD_NODALAS_FK1" FOREIGN KEY

("MD_ID")

REFERENCES "MG"."MAGISTRA_DARBS" ("MD_ID") ENABLE

Kad tas ir izdarīts, tad ir iespējams izgūt datus sasaistot tabulas izmantojot atribūta

MD_ID vērtības:select * from MAGISTRA_DARBS MD , MD_NODALAS MDN

where MDN.MD_ID = MD.MD_ID

Šajā gadījumā ir tikai divas mazas tabulas, kurās sasaisti izveidot ir vienkārši, bet

problēmas rodas tad, ja datu bāzē ir simtiem tabulu, starp kurām ir jādefinē sasaistes un arī

10

Page 11: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

jāraksta datu izguves vaicājumi, lai atlasītu nepieciešamos datus. Tā kā dati datu bāzē

glabājas relāciju veidā, tad datu izgūšana no, piemēram, piecām saistītām tabulām jau ir

diezgan sarežģīta un pats izguves vaicājums ir nepārskatāms. Rakstot sarežģītākus datu

izguves vaicājumus, palielinās arī lietotāja iespēja kļūdīties veicot datu atlasi. Kā arī, ja

vairākas tabulas tiek sasaistītas kopā datu izguves vaicājumos, tas atstāj negatīvu efektu arī uz

vaicājumu izpildes ātrumu.

Relāciju datu bāzes priekšrocības:

Vienkāršāks datu modelis

Vienkāršāki datu atlases vaicājumi, lietotājam vieglāk izgūt datus

Vieglāki optimizācijas mehānismi

Datu neatkarība izmantojot normalizācijas mehānismus

Relāciju datu bāzes trūkumi:

Veiktspēja

Grūti modelēt reālās dzīves modeļus

1.3. Relāciju-objektu datu bāzes nepieciešamība saliktām problēmu vidēmAttīstoties objektorientētajai programmēšanas tehnoloģijai, radās nepieciešamība

ieviest objektorientētu pieeju arī datu bāzes līmenī, jo pamatā datu bāzē tiek glabāti reālās

dzīves modeļi ar visām saitēm – objekti ar saistītajiem objektiem. Tā kā datu bāzē reālās

dzīves objekti tiek glabāti tabulu relāciju veidā, tad ir nepieciešami dažādi mehānismi, kā

lietojumos šīs relācijas notranslē uz objektiem. Ieviešot objektorientētu pieeju – izveidojot

relāciju - objektu datu bāzes sistēmu var panākt daudz efektīvāku lietojumu un datubāzes

sadarbību. Izmantojot objektorientētu pieeju arī ir vieglāk glabāt reālās dzīves objektus un to

komponentes. Šāda pieeja arī ietekmē datu bāzes ātrdarbību, kas pie mūsdienās arvien

pieaugošākā datu apjoma ir būtiska iezīme. Arī objektu uzvedību, izmantojot relāciju -

objektu datu bāzes sistēmas, var aprakstīt datu bāzes līmenī un tā vairs nav jāapraksta

lietojuma pusē, kā arī datu bāzes pusē ir iespējams nodrošināt pārējās objektiem raksturīgās

īpašības – abstrakcija, iekapsulēšana, mantošana un polimorfisms. Lietotāja definēto tipu var

veidot sekojoši:create type magistra_darbs_type as object

(

11

Page 12: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

"MD_NOSAUKUMS" VARCHAR2(2000 CHAR),

"MD_APRAKSTS" VARCHAR2(2000 CHAR),

"MD_DATUMS" DATE,

"MD_AUTORS" VARCHAR2(2000 CHAR),

"MD_ATZIME" NUMBER)

Piemērā tiek izveidot objekts, kuram ir definēti pieci atribūti no Oracle datu bāzē

iekļautajiem datu tipiem. Tālāk no šī tipa var izveidot tabulu:create table magistra_darbs_obj_table of magistra_darbs_type

Datu ievietošana šādā tabulā gan ir nedaudz sarežģītāka, nepieciešams iniciēt

izveidoto tipu ar visiem norādītajiem atribūtiem – tiek izsaukta objekta konstruktora funkcija.

Datu ievietošanas komanda:insert into magistra_darbs_obj_table values(

magistra_darbs_type('Relāciju objektu db projektēšana',

'Kā projektēt relāciju datu bāzi',

sysdate,

'Uldis Vaicis',

null))

Lai no šīs tabulas atlasītu datus, nepieciešams izpildīt datu izguves vaicājumu, kurš

šādas vienkāršas objektu tabulas gadījumā ir identisks relāciju datu bāzes datu atlases

komandai:select * from magistra_darbs_obj_table where md_atzime is null;

Relāciju objektu datu bāzē sasaisti starp objektiem nodrošina norāžu veidošana vai arī

objekta saglabāšana tabulas kolonnā. Atšķirībā no relāciju datu bāzes, atsauces izveidošana

prasa vairāk zināšanu, bet iegūtais rezultāts vieglāk izmantojams, jo sasaite vairs nav jāraksta

ar roku. Projektēšanas fāzē ir svarīgi izvēlēties, kā šīs sasaistes veidot – relāciju - objektu

datu bāzē pastāv vairāku veidu glabāšanas struktūras un tehnoloģijas. Kā viena no iespējām

veidojot sasaisti ir atsauces ievietošana saistītajā tabulā. Iepriekš relāciju datu bāzes

apskatītajā struktūrā tika sasaistīta maģistra darba tabula ar nodaļu tabulu. Relāciju objektu

datu bāzes gadījumā sasaistes veidošanas soļi ir sekojoši:

tipa izveidošanacreate type md_nodalas_type as object

(

MDN_NOSAUKUMS varchar2(2000 char)

);

tabulas izveidošana:

12

Page 13: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

create table md_nodalas_obj_table

(

md_atsauce ref magistra_darbs_type,

nodala md_nodalas_type

);

datu ievietošana tabulā izmantojot pamata tabulas atsauci uz iepriekš izveidoto

objektu:insert into md_nodalas_obj_table values((select ref(a) from

magistra_darbs_obj_table a where a.md_atzime is null),

md_nodalas_type('Nodala 2') );

Datu izguves vaicājums izskatās nedaudz sarežģītāks nekā relāciju datu bāzes

gadījumā, bet svarīga priekšrocība ir tā, ka sasaiste tika nodefinēta veidojot objektus un pēc

tam, veicot datu izguvi, šī sasaiste no jauna vairs nav jāraksta. Saistīto objektu datus ir

iespējams iegūt no nodaļu tabulas, jo šajā tabulā tiek saglabāta arī atsauce uz pamata tabulu.

Atsevišķi datu izguves vaicājumā pamata tabulu nav nepieciešams norādīt:select deref(a.md_atsauce)."MD_NOSAUKUMS",a.nodala.MDN_NOSAUKUMS

from md_nodalas_obj_table a

1.2. att. Iegūtais datu izguves rezultāts

Veicot divu identisku objektu saglabāšanu divu veidu struktūrās (izmantojot relāciju -

objektu datu bāzes tehnoloģiju un relāciju datu bāzes tehnoloģiju), ir redzams, ka, izmantojot

objektus, ir nepieciešamas specifiskas zināšanas par objektiem un relāciju - objektu struktūru

veidošanu, bet sasaistes veidošana starp objektiem notiek tikai vienu reizi – objektu

veidošanas procesā. Datu atlasē nav nepieciešams zināt, kuri lauki ar kuriem un kā ir saistīti,

līdz ar to kompleksu objektu izgūšana ir vieglāk realizējama un ir iespēja strādāt ar

sarežģītākiem un dzīvei atbilstošākiem datu modeļiem un objektiem.

Tāpat arī izmantojot relāciju - objektu datu bāzi ir iespējams atrisināt relāciju datu

bāzē eksistējošās problēmas[13] – normalizācijas problēmas, tādas kā transitīvo atkarību,

daudzu vērtību atribūtus un ne pirmo (Non-1st) normālformu. Kā arī piedāvā risinājumus

datu sarežģītības problēmām izmantojot tādas relāciju - objektu datu bāzes iespējas kā

objektu skatījums, objektu mantošana un objektu integrāciju. Par normalizācijas procesu sauc

13

Page 14: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

loģisko datu modelēšanas tehniku izstrādes gaitā, lai iegūtu pareizi strukturētu relāciju datu

bāzes struktūru. Process sastāv no anomāliju saturošu tabulu sadalīšanas mazākās tabulās.

Parasti normalizētas tiek tabulas, kuras neatbilst pirmajai normālformai un daudzu vērtību

atribūti vismaz līdz trešajai normālformai, kā arī tiek likvidēta transitīvā atkarība.

Par transitīvo atkarību sauc situāciju, kad viena atribūta vērtība ir tieši atkarīga no kāda cita

atribūta vērtības. Piemēram, adrese parasti sastāv no vairākām daļām- atribūtiem, kuri ir

sekojoši: māja, iela, rajons un pasta indekss.1.1. tabula

Lietotāju-adrešu tabula

ID Vārds Uzvārds Māja Iela Rajons Pasta indekss1 Uldis Vaicis 5 Brīvības iela Centrs LV-10102 Jānis Bērziņš 1 Elizabetes

ielaCentrs LV-1111

Augstāk minētā tabula atbilst otrajai normālformai, bet tiek pārkāpts trešās

normālformas likums, jo tabulā šādā tabulā eksistē transitīvā atkarība, jo pasta indekss ir

atkarīgs no mājas, ielas un ielas. Funkcionāli to var attēlot kā: Fn(pasta indekss) =

māja,iela,rajons. Relāciju datu bāzē šo transitīvo atkarības problēmu var risināt trijos veidos.

Kā pirmais no variantiem ir šo tabulu nemainīt un atstāt struktūru tādu, kāda tā ir, bet tabula

saglabā otro normālformu un nav korekts relāciju datu bāzes risinājums. Otrais no

iespējamajiem variantiem ir sadalīt tabulu divās daļās veidojot lietotāju tabulu un adrešu

tabulu.1.2. tabula

Normalizēta lietotāju tabula

ID Vārds Uzvārds Pasta Indekss1 Uldis Vaicis LV-10102 Jānis Bērziņš LV-1111

1.3. tabula

Normalizēta adrešu tabula

Pasta Indekss Māja Iela RajonsLV-1010 5 Brīvības iela CentrsLV-1111 1 Elizabetes iela Centrs

Bet šāds risinājums rada nepieciešamību izmantot sasaistes starp tabulām, kuras ir

jāraksta ar roku un kuras arī atstāj iespaidu uz datu izgūšanas un labošanas veiktspēju. Vēl kā

14

Page 15: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

variants ir iespējams arī saglabāt adrešu datus vienā kolonnā, bet šāda pieeja sarežģī datu

izguvi.1.4. tabula

Adrese vienā kolonnā

ID Vārds Uzvārds Adrese1 Uldis Vaicis LV-1010, 5, Brīvības

iela, Centrs2 Jānis Bērziņš LV- 1111,1,Elizabetes

iela,CentrsPiemēram, nav iespējams izgūt datus balstoties uz kādu no adreses sastāvdaļām vai arī

izgūtos datus sakārtot augošā vai dilstošā secībā. Vienīgā datu sakārtošanas iespēja pēc

adreses ir veikt kārtošanu pēc pilnās tekstuālās informācijas konkrētajā tabulas kolonnā.

Vadoties pēc relāciju datu bāzes likumiem, iespējām un efektivitātes, tad neviens no

risinājumiem nav atzīstams par ideālu, jo pastāv problēmas ar datu izgūšanu, nepieciešamas

sasaistes starp tabulām vai arī tabula neatbilst pirmajai normālformai. Izmantojot relāciju -

objektu datu bāzes tehnoloģijas – adreses struktūru var definēt kā lietotāja definēto datu dipu.

Arī lietotāja pamatinformācija tiek realizēta izmantojot lietotāja definēto datu tipu un adreses

informācija tiek iekļauta lietotāja objektā. Izmantojot UML klašu diagrammas elementus, to

var attēlot sekojoši.

LietotajsID:integer-vārds:varchar2-uzvārds:varchar2-adrese:Object+getVards()+getAdresse()

1.3. att. Lietotāja klases objekts UML pierakstā

Lai šo salikto objektu realizētu relāciju - objektu datu bāzē, nepieciešams definēt

vajadzīgos objektu tipus, lai uz to pamata varētu izveidot tabulu, kurā tiks saglabāti dati.create or replace type address_type as object

(

Māja varchar2(200) ,

Iela varchar2(200) ,

Rajons varchar2(200) ,

pasta_indekss varchar2(200)

);

Kad tips ir definēts, tad jau ir iespējams definēt arī pašu tabulu, kurā glabāsies dati.create table lietotaji

(

15

Page 16: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

ID number,

Vards varchar2(200) ,

Uzvards varchar2(200) ,

Adrese address_type

);

Relāciju modelī vairāku vērtību atribūtu izmantošana ir pretrunā ar pirmo

normālformu. Pamata risinājums izmantojot relāciju datu bāzi ir šos vairāku vērtību atribūtus

sadalīt tā, lai katrs no tiem atrastos savā tabulā. Piemēram, ja tabulai ir pieci vairāku vērtību

atribūti, tad ir nepieciešamas sešas tabulas. Viena kā pamata tabula un piecas tabulas, kurās

katrā ir pa vienam daudzu vērtību atribūtam. Ja nepieciešams izgūt visas vairāku vērtību

atribūta vērtības, ir nepieciešams definēt SQL vaicājumu, kurš savieno visas iesaistītās

tabulas. Šādu vaicājumu nav ērti veidot, kā arī tas vairs nav pārskatāms un viegli saprotams.

Relāciju objektu tehnoloģija ļauj lietotājam definēt mainīga garuma masīvu kā jaunu vairāku

vērtību atribūtu glabāšanas veidu. Mainīgā garuma masīvs tiek definēts sekojoši :CREATE TYPE varray_telefons_ty AS VARRAY(3)

OF VARCHAR2(14);

Šajā masīvā ir iespējams saglabāt trīs tālruņa numurus ar garumu 14 rakstu zīmes. Pēc

tam šo pašu izveidoto tipu ar sekojošu komandu var pievienot jau izveidotajai lietotāju

tabulai.Alter table lietotaji add ( tālruna_numuri varray_telefons_ty).

Tagad, lai atlasītu visas vairāku vērtību atribūta vērtības, vairs nav nepieciešams

izmantot vairākas tabulas un veidot sasaistes starp tām. Datus labot ir iespējams izpildot

sekojošu komandu:Update lietotaji set tālruna_numuri =

(varray_telefons_ty(‘1234’,’2342423’)) where ID = 1;

Kā redzams izmanītajā piemērā, tad izmantojot relāciju - objektu tehnoloģijas ne tikai

tiek atrisināta problēma ar vairāku vērtību atribūtiem, bet arī tiek ievērojami palielināts

vaicājumu izpildes ātrums un izmantotie vaicājumi kļūst vienkāršāki. Ne pirmās

normālformas gadījumus ir iespējams arī risināt izmantojot iekļautās tabulas. Ar iekļautām

tabulām vairāku kolonnu kolekcija var tikt iekļauta citas tabulas vienā kolonnā, kā arī ir

iespējams iekļaut vairāku vērtību atribūtus tabulā, ja no tiem izveido objektu. Tādā veidā ir

iespējams izveidot kompozīciju, kas ir viena no asociāciju veidiem un ievērojami paātrināt

datu izguvi no pamata tabulas, jo vairs nav nepieciešams datu izgūšanas vaicājumos veidot

sasaistes starp tabulām. Kā piemērs tiek paņemts velosipēds un tā detaļas. Tiek pieņemts, ka

16

Page 17: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

velosipēds sastāv no riteņiem, pārslēgiem un rāmja. Protams, ir vēl daudz un dažādu citu

detaļu, bet tās netiek apskatītas.

1.4. att. Velosipēda modeļa kompozīcija

Tālāk tiek izveidoti visi nepieciešami objektu tipi, kur glabāt kompozīcijas objektus.create type ritenis_type as object

(ID NUMBER,

SPIEKI varchar2(200 char),

DISKS varchar2(200 char),

RIEPA varchar2(200 char));

create type parslegs_type as object

(ID NUMBER,

ATRUMU_SKAITS varchar2(200 char),

RAZOTAJS varchar2(200 char));

create type ramis_type as object

(ID NUMBER,

IZMERS varchar2(200 char),

SVARS varchar2(200 char));

17

Page 18: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

Pēc tam, balsoties uz šiem tipiem, tiek izveidotas iekļautās tabulas.create type nt_ritenis_type as table of ritenis_type;

create type nt_parslegs_type as table of parslegs_type;

create type nt_ramis_type as table of ramis_type;

Kad tas ir izdarīts, tiek veidota galvenā tabula, kura saturēs pamatinformāciju par

velosipēdu, kā arī visas saistītās iekļautās tabulas. Atšķirībā no tabulu veidošanas, kur visi

pēc noklusējuma datu bāzē iekļautie datu tipi, veidojot tabulas ar iekļautām tabulām, ir

jāizmanto speciāla komanda „NESTED TABLE <ieklauta_tabula> store as

<nosaukums>”.create table velosipeds(

REG_NUMURS varchar2(200 char),

MODELA_TIPS varchar2(200 char),

DAUDZUMS NUMBER,

CENA NUMBER,

PRIEKSEJAIS_RITENIS nt_ritenis_type,

AIZMUGURES_RITENS nt_ritenis_type,

PARSLEGI nt_parslegs_type,

RAMIS nt_ramis_type)

NESTED TABLE PRIEKSEJAIS_RITENIS store as PRIEKSEJAIS_RITENIS_NT,

NESTED TABLE AIZMUGURES_RITENS store as AIZMUGURES_RITENS_NT,

NESTED TABLE PARSLEGI store as PARSLEGI_NT,

NESTED TABLE RAMIS store as RAMIS_NT;

Relāciju objektu datu bāzes nodrošina arī objektu skatījumu veidošanu izmantojot

relāciju tabulas. Objektu skatījumi ir virtuālas objektu tabulas, kuras ļauj izstrādātājiem

pievienot objektu orientētas struktūras balstoties uz eksistējošajām tabulām un ļauj izmantot

objektu orientētās metodes strādājot ar relāciju datiem. Tas ir kā tilts starp relāciju datu bāzi

un objektu orientēto programmēšanas tehnoloģiju. Objektu skatījums izveido sava veida

objektu slāni virs relāciju tabulām un nodrošina iespēju strādāt ar datiem tā, it kā tie būtu

objekti. Vispirms tiek izveidota parasta relāciju tabula, kurā katra kolonna ir vienkāršais datu

tips, un tajā tiek ievietoti daži ieraksti.create table darijums(

darijuma_id number,

darijuma_datums date,

klienta_id number,

18

Page 19: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

pardeveja_id number)

insert into darijums values (1,sysdate-4,2,5);

insert into darijums values (2,sysdate-6,34,43);

Pēc tam, balstoties uz iepriekš izmantotajiem datu tipiem, tiek izveidos jauns objekta

tips.

create type darijums_typ as object

(darijuma_id number,

darijuma_datums date,

klienta_id number,

pardeveja_id number);

Izmantojot izveidoto objekta tipu ir iespējams izveidot skatījumu, kurā relāciju tabulas

struktūra tiek transformēta uz objektu tipu struktūru.create view darijumu_skats of darijums_typ

WITH object identifier (darijuma_id) as

select darijuma_id,darijuma_datums,klienta_id,pardeveja_id from

darijums

Šajā gadījumā datu atlase no skatījuma un tabulas gan ir vienāda un ir veicama

sekojošā veidā: select * from darijumu_skats;

1.5. att. Objektu skatījums

Objektu skatījumus ar izmantot arī, lai loģiski sagrupētu relāciju datus un iegūtu

augstāku datu bāzes veiktspēju un atviegloto objektorientētu lietojumu izstrādātāju darbu ar

datu bāzi. Papildinot relāciju datu bāzes modeli ar relāciju - objektu datu bāzes iespējām tiek

nodrošināta arī funkcionalitātes un objektu atkārtota izmantošana un dalīšanās. Tas nozīmē,

ka dažādi lietojumi var izmantot vienus un tos pašus objektus, lai nodrošinātu identisku

funkcionalitāti un loģika nebūtu jāimplementē vairākās vietās. Relāciju datu bāze piedāvā

iespēju arī veidot datu tipu hierarhijas. Izmantojot šo iespēju, tiek nodrošināta iespēja veidot

augstāka un zemāka līmeņa datu tipus, kuri atrodas vienā mantošanas kokā. Piemēram, kā

augstākā līmeņa tipu var definēt darbinieku ar visiem tā atribūtiem un pēc tam zemāka līmeņa

datu tipus, kuros darbinieks tiek iedalīts kā pilnas slodzes vai daļējas slodzes darbinieks. Abu

19

Page 20: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

darbinieka tipu kopīgie atribūti tiek mantoti no augšējā līmeņa darbinieka tipa. Lai izveidotu

tipu zem kāda cita tipa, ir jāizmanto atslēgvārds UNDER - CREATE TYPE pilna_laika_ty

UNDER darbinieks_ty (atribūti definēšana);

1.6. att. Virstips un apakštipi

SQL komanda lai izveidotu tipu :CREATE TYPE darbinieks_ty AS OBJECT (

vards name_ty,

telefons varray_phone_ty,

adrese address_ty

) NOT FINAL NOT INSTANTIABLE;

SQL komanda, lai izveidotu darbinieka tipu zem augstākā līmeņa datu tipa un

balstoties uz šo datu tipu izveidotu tabulu:CREATE TYPE pilna_laika_ty UNDER darbinieks _ty (

ALGA NUMBER(8,2));

CREATE TABLE PILNA_LAIKA_DARBNIEKI of pilna_laika_ty;

Objektu integrāciju tiek nodrošināta ar interfeisiem, relāciju - objektu datu bāzē

atribūti un metodes tiek kombinētas vienā strukturētā objekta tipā. Par interfeisu šajā

gadījumā tiek saukts datu tipa apraksts galvenes līmenī. Šajā līmenī definētās metodes ir

pieejamas, ja ir piešķirtas tiesības uz doto datu tipu. Metodes ir iespējams definēt arī datu tipa

ķermenī, šīs metodes vairs nav publiski pieejamas.

Relāciju objektu datu bāzes priekšrocības:

atkārtota izmantošana un komponenšu koplietošana

uzlabota produktivitāte

plašāka funkcionalitāte

20

Page 21: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

plašākas iespējas modelēt reālās dzīves modeļus

sistēmas veiktspējas uzlabojumi

Relāciju objektu datu bāzes trūkumi:

sarežģītāks datu modelis

nepieciešama augstāka kvalifikācija

2. RELĀCIJU-OBJEKTU DATU BĀZES DATU GLABĀŠANAS

STRUKTŪRASLīdz ar objektu orientētas koncepcijas attīstību lietojumu izstrādes tehnoloģijās, arī datu

bāzes līmenī tika ieviesta iespēja veidot objektu orientētas struktūras. Šī koncepcija tiek arī

izmantota relāciju-objektu datu bāzēs. Līdzīgi kā objektu orientētajās tehnoloģijās, arī datu

bāzē pats pamats ir objekts, kuram ir specifiskā veidā aprakstīta definīcija – kādi atribūti un

kāda uzvedība ir objektam.

2.1. Objektu orientētās tehnoloģijasrelāciju-objektu datubāzēLai datu bāzes līmenī varētu nodrošināt darbu ar objektiem, kā tas ir objektorientētajās

programmēšanas tehnoloģijā, nepieciešams objektorientētos konceptus realizēt arī datu bāzes

līmenī. Tas nozīmē, ka datu bāzē tiek nodrošināta iespēja saglabāt objektus, kā arī objektiem

ir savs datu tips, dati un metodes, ar kurām ir iespējams mainīt objektu stāvokli un uzvedību.

Relāciju – objektu datu bāzē realizētās objektorientētās iespējas un īpašības attēlotas tabulā

2.1. [14]. Kā redzams tabulā, tad būtiskākā atšķirība ir klašu hierarhijas veidošana, jo relāciju

– objektu datu bāzes pieejā šāda struktūras sauc par saliktiem objektiem. Saliktu klašu

jēdziena objektorientētajā programmēšanā nav – ir pamata klases un klases, kuras ir

iesaistītas mantošanā. Būtiska atšķirība vēl ir tā, ka datu bāzes līmenī klasei atbilst lietotāja

definēts tips.2.5. tabula

Objekorientētā pieeja relāciju – objektu datu bāzē

Objektorientētā pieeja Relāciju – objektu datu bāze

21

Page 22: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

2.2. Datu bāzes objektsParasti ar objektu tiek apzīmēts kādu sastāvdaļu vienots kopums, un katra objektam,

tāpat arī sastāvdaļām ir definēts savs tips. Datu bāzes objekta tips ir lietotāja definēts tips

(User Defined Type (UDT)), ar kura palīdzību ir iespējams modelēt reālās dzīves realitātes kā

objektus datu bāzē. Jauni objekta tipi var tikt veidoti gan izmantojot jau pēc noklusējuma

veidotos datu tipus, kuri ir definēti datu bāzē, gan arī jebkurus tipus, atsauces un kolekcijas,

kuras iepriekš tikušas izveidotas. Objektu tipos var tikt saglabāti arī kompleksie dati – tādi kā

22

Page 23: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

audio, video un attēli. Arī lietotāja definēto tipu metadati ir pieejami tieši tāpat, kā relāciju

datu bāzes tabulām. Objektu tipi nodrošina austākā līmeņa iespējas organizēt piekļuvi datiem

datu bāzē. Objektiem var būt arī definētas metodes, ar kuru palīdzību no objekta datiem var

iegūt nepieciešamos rezultātus. Piemēram – objekts ir pasūtījums ar vairākām precēm un

pasūtījuma objektam ir metode, ar kuru var izrēķināt cik maksāja visas preces kopā. Lielākais

ieguvums no šādām struktūrām ir tas, ka objekta tipi un metodes tiek glabātas datu bāzē tāpat

kā dati un tās ir pieejamas no jebkura lietojuma. Ja tiek izstrādātas vairākas sistēmas dažādās

tehnoloģijās, nav vairs nepieciešams pārdefinēt objektu tipus un pārrakstīt jau datu bāzes

pusē eksistējošās metodes, lai nodrošinātu tādu pašu funkcionalitāti. Tāpat arī no uzturēšanas

un atkļūdošanas viedokļa, liels ieguvums ir tas, ka metožu loģika ir tikai vienā vietā – t.i. datu

bāzē. Atšķirībā arī no relāciju datu bāzes, ja tiek veikts vaicājums pēc viena objekta, tad tiek

izgūti arī visi saistītie objekti. Nav nepieciešams rakstīt dažādus vaicājumus, lai iegūtu

saistītos datus. Objekts tiek veidots no objekta tipa. Objektu tips savukārt ir datu tips, kurš var

tikt izmantos kā jebkurš cits datu bāzes datu tips. Tas arī ir kā šablons pašam objektam, kurš

iekļauj objekta definīciju un uzvedību. Definīcija sastāv no atribūtiem, kuri var būt gan

vienkāršā datu tipa, gan objektu datu tipa. Uzvedību definē metodes (procedūras un

funkcijas). Var izšķirt trīs metožu tipus: konstruktora metodes, statiskās metodes un instances

metodes. Instances metodes izmanto, lai piekļūtu objekta datiem un definētu dažādas

operācijas, kuras pēc tam varētu izsaukt no lietojuma. Statiskās metodes nestrādā ar instanču

datiem un instancēm, tās jau ir globālas pašam objektu tipam. Katram objektam pēc

noklusējuma ir sava konstruktora metode, bet ir iespējams to pārrakstīt, ja nepieciešams

iniciēt klasi ar citādāku parametru skaitu, nekā to piedāvā noklusējuma konstruktora metode.

Piemērs: tiek izveidots tips eksāmens, veidošanas komanda ir sekojoša:create type eksamens as object (

nosaukums varchar2(200) );

Ar šo komandu tiek nodefinēts lietotāja definētais datu tips, kuram ir definēts

nosaukums ar datu bāzē iekļauto datu tipu varchar2 un izmēru 200 rakstu zīmes. Šim tipam

ķermenis netiek definēts.

Tiek izveidots tips students – tipā iekļautas gan instances metodes, gan konstruktora funkcijas

gan arī statiskās metodes:create or replace type students as object (

vards varchar2(200),

23

Page 24: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

uzvards varchar2(200),

apliecibas_nr varchar2(200),

STATIC PROCEDURE kas_ir_students,

MEMBER FUNCTION karto(p_eksamens eksamens ) return varchar2,

MEMBER PROCEDURE pievienot_apl_numuru(p_nr varchar2) ,

CONSTRUCTOR FUNCTION students(p_vards varchar2,p_uzvards varchar2)

return SELF as RESULT)

Tiek izveidots arī tipa ķermenis, kurā tiek aprakstītas visas definētās metodes un procedūras.

create or replace type body students as

CONSTRUCTOR FUNCTION students(p_vards varchar2,p_uzvards varchar2)

return self

as RESULT

AS

begin

SELF.vards :=p_vards;

SELF.uzvards:=p_uzvards;

SELF.apliecibas_nr:='Nav piešķirts';

RETURN;

end;

STATIC PROCEDURE kas_ir_students

as

begin

dbms_output.put_line('Students is tas, kurš studē');

end;

MEMBER FUNCTION karto(p_eksamens eksamens) return varchar2

as

begin

return null;

end;

MEMBER PROCEDURE pievienot_apl_numuru(p_nr varchar2)

as

begin

SELF.apliecibas_nr := p_nr;

end;

24

Page 25: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

end;

Tipam students ir definēta statiska procedūra- kas_ir_students. Lai izsauktu šo

procedūru, nav nepieciešams izveidot pašu studenta objektu – tā tiek izsaukta no objekta tipa.

Izsaukšanas piemērs:begin

students.kas_ir_students();

end;

Lai izsauktu visas pārējās metodes gan ir nepieciešams iniciēt objektu – tas ir –

izveidot klases eksemplāru izsaucot konstruktora metodi. To var izdarīt gan izsaucot definēto

konstruktora metodi, gan arī izmantojot konstruktora metodi, kura izveidojas pēc

noklusējuma.declare

p_students students;

p_students2 students;

begin

p_students:=students('uldis','vaicis');

dbms_output.put_line(p_students.apliecibas_nr);

p_students.pievienot_apl_numuru('ir numurs');

dbms_output.put_line(p_students.apliecibas_nr);

p_students2:=students('uldis','vaicis','test');

dbms_output.put_line(p_students2.apliecibas_nr);

end;

Pievienotajā piemērā ir redzami abi konstruktora metodes izsaukumi un arī viens

instances metodes izsaukums – pievienot_apl_numuru(numurs), ar kuru tiek pievienots

apliecības numurs izveidotajam studenta objekta eksemplāram, kurš veidots saucot lietotāja

definēto konstruktora metodi. Izmantojot pēc noklusējuma izveidoto konstruktora metodi,

apliecības numurs jau ir viens no obligātajiem parametriem.

Veidojot objektu tabulas no objekta tipiem, ja netiek norādīts objekta identifikators

(object id – jeb OID), tad Oracle pats to uzģenerē, lai efektīvāk strādātu ar objektiem. Jāsaka

gan, ka šis OID ir slēptais objekta atribūts un lietotājam nav pieejams. Ieteicamāks variants ir

pašam parūpēties par OID lauka vērtību un ģenerēt to pašam, ja šo lauku nepieciešams redzēt

vai aizpildīt ar paša izvēlētām vērtībām (šis OID ir objekta rindas primārā atslēga).

Ir ļoti neefektīvi nodot kā parametru objektus, jo tas aizņem gan laiku, gan arī nepieciešams

vairāk resursu. Lai to būtu iespējams efektīvāk izdarīt, tad starp metodēm tiek nodota objektu

25

Page 26: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

atsauce jeb reference (REF). Tā ir kā norāde uz konkurēto objektu. Zemāk redzamajā piemērā

tiek veidota objektu tabula, kur vien no kolonnām ir norāde uz citu objektu.create or replace type studenta_personas_kartina as object (

persona REF students,

iestasanas_datums date)

create table kartinu_tabula of studenta_personas_kartina;

Šādi tiek izveidota tabula kartinu_tabula no tikko izveidotā tipa, kurā viens no

parametriem ir norāde uz studenta objektu un lauku, kurā atrodas šī norāde sauc par

„persona”. Ir iespējams nolasīt norādi izmantojot funkciju REF. Lai no norādes tiktu pie

objekta, nepieciešams izsaukt funkciju DEREF, ar kuru no norādes tiek iegūts objekts ar

visiem saistītajiem parametriem un atribūtiem. REF un DEREF lietošanas piemērs, kur

izveidotajā tabulā tiek ievietota jauna rinda un norāde uz personas studenta objektu, tad šī

norāde tiek nolasīta un izmantojot DEREF no norādes tiek iegūts objekts. Objektam tiek

pamainīta vērtība un objekts tiek atjaunots tabulā, kura ir saistīta ar tabulu, kurā atrodas

norāde. Pēc tam tiek izpildīts vaicājums, lai pārliecinātos, ka caur tabulu kartinu_tabula

izgūstot objektu no norādes, tiek iegūta atjaunotā vērtība.:declare

p_ref REF students;

p_students students;

spk studenta_personas_kartina;

begin

select REF(ss) into p_ref from studentu_saraksts ss;

spk:=studenta_personas_kartina(p_ref,sysdate);

insert into kartinu_tabula values(spk);

select persona into p_ref from kartinu_tabula;

select deref(p_ref) into p_students from dual;

p_students.vards :='uldis2';

UPDATE studentu_saraksts p SET p = p_students WHERE

ref(p) = p_ref;

end;

select DEREF(persona).vards from kartinu_tabula

26

Page 27: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

Oracle datu bāzē var tikt izmantotas divu veidu kolekcijas[10] – mainīga garuma

masīvi (varibable-length array (VARRAY)) un iekļautās tabulas (nested tables). Mainīgā

garuma masīva veidošanas sql komanda ir : CREATE TYPE [tipa nosaukums] is VARRAY(izmērs) of [datu tips],

kur tipa nosaukums ir lietotāja izvēlēts datu tipa nosaukums, izmērs ir nepieciešamais

elementu skaits masīvā un datu tips – ir oracle iekšējais datu tips vai arī lietotāja definētais

datu tips.

Lai izveidotu iekļauto tabulu, veidošanas komanda ir:CREATE TYPE [tipa_nosaukums] as TABLE of [datu tips],

kur tipa nosaukums ir lietotāja izvēlēts tipa nosaukums un datu tips ir Oracle iekšējais datu

tips vai arī lietotāja iepriekš definēts datu tips. Ar šo komandu tiek izveidota iekļautā tabula,

kur katra rinda sastāv no izvēlētā datu tipa.

2.3. Glabāšanas elementi un struktūras:

Relāciju tabula – pamatelements relāciju - objektu datu bāzē, visi objekti tiek glabāti

tabulās, kuras var būt gan objektu tabulas – kur visa tabulas rinda ir objekts un veidota no

lietotāja izveidotā datu tipa vai arī kā tabula, kurai viena no kolonnām sastāv no objektiem.

Relāciju tabula :

2.7. att. Tabula

Vienkāršs objekts – veidots no lietotāja definēta datu tipa ar definētiem atribūtiem un

uzvedību.

2.8. att. Vienkāršs objekts

Vienkāršs objekts ar identifikatoru – līdzīgi kā iepriekš apskatītajam objektam –

veidots no lietotāja definētā datu tipa, bet klāt vēl nāk OID (object id ) atribūts :

27

Page 28: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

2.9. att. Vienkāršs objekts ar identifikātoru

Salikts objekts – objekts, kura viens no atribūtiem ir cits objekts, kurš izveidots no

lietotāja definētā tipa, kuram savukārt ir pašam savi atribūti:

2.10. att. Salikts objekts

Salikts objekts ar identifikatoru – līdzīgs kā saliktais objekts, bet ir papildus atribūts

OID.

2.11. att. Salikts objekts ar identifikatoru

Objektu kolekcija – masīvs no vairākiem izveidotiem objektiem:

2.12. att. Objektu kolekcija

Objektu kolekcija ar identifikatoru – vienīgā atšķirība no objektu kolekcijas ir tā, ka

klāt nāk OID atribūts:

2.13. att. Objektu kolekcija ar identifikatoru

Tabula ar rindas tipa objektiem – šādā tabulā ir tikai viena kolonna, kur katra no

rindām satur objektu:

28

Page 29: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

2.14. Tabula ar rindas tipa objektiem

Tabula ar objektu kolonnu – atšķirībā no iepriekšējās tabulas, šeit viena vai vairākas

kolonnas var saturēt objektus, bet var būt arī parastie Oracle datu bāzē pēc noklusējuma

definētie datu tipi :

2.15. att. Tabula ar objektu kolonnu

Tabula ar neviendabīgiem objektiem – objektu kolonnā iespējams saglabāt dažādu

klašu objektus, tiem gan ir jāatbilst vienam tipam – objektiem jābūt vienā mantošanas kokā:

2.16. att. Tabula ar neviendabīgiem objektiem

2.4. Asociāciju veidiPar asociāciju sauc objektu sasaisti vienam ar otru. Tas nozīmē, ka viens objekts ir saistīts ar

otru un klases eksemplārs izmanto citu klases eksemplāru. Oracle datu bāzē starp objektiem

eksistē vairāku veidu asociācijas, tās ir: agregācija, atkarība, kompozīcija, mantošana.

Atkarība nozīmē to, ka vienas klases objekts ir tieši atkarīgs no cita klases objekta un tam ir

nepieciešamas otras klases funkcijas, lai spētu veikt savas darbības.

Agregācija ir asociācija, kura veido „vesels-daļa” saiti starp objektiem un visi „daļa” objekti

veido pilnu veselo objektu. Šajā gadījumā objekts var tikt izveidots no vairākiem objektiem

vai arī objekts sastāv no vairākiem objektiem.

Kompozīcija savukārt ir speciāls agregācijas veids, kad agregāta ( „veselā” daļas) sastāvdaļas

(„komponentes”) ir neatņemamas un agregāta daļas bez agregāta nespēj eksistēt.

29

Page 30: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

Tāpat arī par asociāciju sauc speciālu saites veidu objektorientētajās datu bāzēs.

3. RELĀCIJU – OBJEKTU DATU BĀZES PROJEKTĒŠANA

3.1. Relāciju – objektu datu bāzes konceptuālais modelis

Datu semantiskais modelis tiek definēts kā priekšmetu vides datu modelis, kurš ir

neatkarīgs no datu bāzes realizēšanai izmantojamā datu bāzes tipa. Tomēr jāņem vērā, ka

dāžādiem datu bāzes vadības sistēmu tipiem ir atšķirīgas iespējas realizēt datu semantikas

konstrukcijas. Tāpēc viens un tas pats datu semantiskais modelis neļauj pilnvērtīgi iekļaut tās

zināšanas, kuras varētu tikt lietderīgi izmantotas veidojot datu bāzes loģisko modeli.

Relāciju datu bāzes konceptuālā modeļa veidošanai P. Čens izstrādāja realitāšu – saišu

(Entity – Relationship (ER)) modeli. Objektorientētās datu bāzes konceptuālā modeļa

veidošanai tiek izmantota Unificētās modelēšanas valodas (Unified Modeling Language

(UML)) klašu diagramma. Relāciju – objektu datu bāzes konceptuālā modeļa izstrādei

speciāla modeļa nav. Tāpēc ir mēģinājumi minētos modeļus pielāgot relāciju – objektu datu

bāzes vajadzībām.

ER modelis tiek paplašināts:

1) iekļaujot tajā elementus datu mantošanas, agregācijas un kompozīcijas attiecību

norādei. Tātad tiek pilnveidota saišu sistēma. Šadu ER modeli sauc par Paplašināto

ER diagrammu (Extende ER diagramm).

2) papildus eksistējošajiem datu grupējumu elementiem, tiek veidoti jauni, kuri

reprezentē datu objektus ar metodēm.

Pirmā veida paplašinājumi tiek iekļauti arī projektēšanas CASE (Computer Aided

System Engineering) rīkos. Lai ER modelī nodrošinātu otrā veida paplašinājumus, CASE rīki

ir papildināti ar iespējām veidot jaunus datu grupējumu elementus un saites. Kā piemēru var

minēt firmas Sybase CASE rīku PowerDesigner. Tajā ir iekļautas plašas iespējas apvienot

dažādas konceptuālā modeļa notācijas un veidot jaunus datu grupējumu un saišu elementus.

Protams šiem elementiem ir jādefinē arī atbilstošās transformācijas no datu konceptuālā

modeļa uz datu bāzes loģisko modeli.

Veidojot semantisko modeli ar objektorientētas tehnoloģijas izmantošanu, modelī tiek

iekļautas svarīgākās objektorientētās paradigmas koncepcijas: klases, objekti, iekapsulēšana,

30

Page 31: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

agregācija, mantošana, polimorfisms un abstrakcija. UML valoda ļauj attēlot gan modeļa

statikas, gan dināmikas īpašības. Ļoti svarīgi, ka UML valodas izstrādātāji ir sapratuši

nepieciešamību un iekļavuši modeļa paplašināšanas un specializēšanas iespējas. UML

standarta notācijas un diagrammas var tikt pielāgotas

sekojošiem aspektiem:

1) lietošanas nosacījumiem. Relāciju – objektu datu bāzē tiek izmantoti salikti dati

(XML, multimēdiju dati, grafiskie dati).

2) kopējam datu struktūras modelim;

3) tipiskām darbībām ar datiem.

Lai to realizētu, tiek izmantoti:

1) stereotipi, tie ļauj paplašināt UML vārdnīcu ar jauna tipa datu blokiem, kuri tiek

atvasināti no eksistējošiem. Šiem blokiem var būt specifiskas īpašības, kuras

raksturīgas apskatāmajai problēmvidei. Tiem ir jauns attēlojums un semantika.

2) komentāri dod papildus skaidrojumus gad datu blokiem, gan saitēm. Tiek norādītas to

īpatnības, kuras jāņem vērā, veicot transformāciju, lai iegūtu datu bāzes loģisko

modeli.

3) ierobežojumi ļauj modificēt eksistējošos likumus vai definēt jaunus, ievērojot

problēmvides specifiku.

4) iezīmētas vērtības (tagged values). Ar stereotipu palīdzību var veidot jaunus datu

bloku un saišu tipus, bet ar iezīmēto vērtību palīdzību var tiem definēt jaunas īpašības.

Stereotipu, komentāru, ierobežojumu un iezīmēto vērtību kopa veido semantiskā modeļa

aprakstu (profile). Tātad UML klašu diagrammu var pielāgot realitāšu – objektu datu bāzes

semantiskā modeļa izstrādei.

Gan paplašinātai ER diagrammai, gan specializācijas izmantošanai UML klašu

diagrammā ir būtisks trūkums. Paplašinājumi tiek veikti uz jau eksistējošu konstrukciju

bāzes, nevis veidojot jaunus datu blokus un saites bet modificējot standarta variantus. Tas

būtiski apgrūti jaunievedumu veikšanu. Šie modeļi ir jātransformē datu bāzes loģiskajā

modelī. Arī šī uzdevuma veikšana notiek divos soļos. Tiek realizētas divas transformācijas:

1) transformācija no standarta pamatelementa atbilstošā datu bāzes loģiskā modeļa

sastāvdaļas iegūšanai (1. Transformācija3.17. att.);

2) iegūtā rezultāta korekcija saskaņā ar veiktajiem paplašinājumiem (2. Transformācija

3.17. att.).

31

Page 32: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

3.17. att. Datu bāzes projektēšanas process

3.2. Objektu orientētie konceptuālie modeļiLai varētu izveidot kroketu un reālai dzīvei atbilstošu datu bāzes modeli, ir

nepieciešams izveidot modeļa konceptuālo modeli. Jāņem vērā tas, ka šajā gadījumā jāveido

objektu orientēts konceptuālais modelis. Konceptuālo modeli var izveidot izmantojot gan

UML saimes klašu diagrammu, gan arī paplašināto realitāšu saišu diagrammu. Tajā tiek

attēloti koncepti ar visiem nepieciešamajiem atribūtiem, kā arī definēts, kā koncepti savā

starpā sadarbojas – kādas saites starp tiem. Pamatelementi konceptuālajā modelī ir realitātes,

realitāšu atribūti un to metodes (apraksta realitātes uzvedību).

3.2.1. Projektēšanas iespējas izmantojot UML diagrammu saimes klašu diagrammu

Kā viena no konceptuālā modeļa projektēšanas iespējām var tikt izmantota UML

diagrammu saimes klašu diagramma. Klašu diagrammas elementi visvairāk atbilst relāciju -

objektu datu bāzes struktūras konceptuālajam modelim. Tas sevī iekļauj klašu jeb realitāšu

veidošanu, atribūtu norādīšanu, kā arī metožu pievienošanu klasēm/realitātēm. Tāpat ir

iespēja arī modelēt saites starp realitātēm. Piemēram tiešsasaistes diagrammu rīka

creately.com[11] nodrošinātie saišu veidi starp realitātēm ir asociācija, agregācija,

kompozīcija un atkarība. Tieši šie saišu veidi arī pamatā raksturo objektorientētās pieejas

īpašības.

UML[2] ir lietošanas gadījumu vadīta modelēšanas valoda, ar kuras palīdzību ir

iespējams attēlot sistēmas funkcionalitāti.

32

Page 33: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

3.18. att. Projektēšanas shēma

Lietošanas gadījumu apraksts ir teksta veida aprasts, kurš atspoguļo sistēmas pamata

funkcionalitāti un kas tiek sagaidīts no izveidotās relāciju - objektu datu bāzes shēmas.

Apraksts tiek veidots par pamatu ņemot sistēmas funkcionālās prasības.

3.19. att. Lietošanas gadījumu apraksts

Lietošanas gadījumu diagramma tiek iegūta no lietošanas gadījumu

apraksta.Secību(sequence) diagrammu veido no lietošanas gadījumu diagrammas, katram

lietošanas gadījumam iegūstot vienu secību diagrammu. Tā attēlo objektus no lietošanas

gadījumu diagrammas un ziņojumus, ar kuriem objekti apmainās katrā no lietošanas

gadījumiem. Objekti(klases) tiek iegūti no aktieriem un izmantotajiem objektiem.

UML klašu diagrammā datus un metodes var iekļaut klasēs, tādējādi nodrošinot

objektorientēto pieeju. Tāpat arī ziņojumi no attiecīgās secību diagrammas tiek iekļautas

saistīto objektu metodēs.

Dizaina plūsma (design worklow) strukturē statiskos un dinamiskos objektu relāciju

sistēmas aspektus no analīzes plūsmas. Šajā plūsmā tiek atrisinātas tradicionālās relāciju datu

33

Page 34: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

bāzes problēmas – daudz vērtību atribūti, normālformas (izņemot pirmo normālformu), kā arī

transitīvā atkarība starp objektiem.

3.20. att. Relāciju – objektu datu bāzes struktūras projektēšana

UML diagrammas transformācija sastāv no tās loģiskās datu struktūras un datu

uzvedības. Atšķirībā no Relāciju datu bāzes, objektu tipi objektu relāciju datu bāzē pilnībā

atbalsta iekapsulēšana, kur metožu definīcijas tieši var saistīt ar objektu tipu definīcijām.

UML diagramma piedāvā arī agregāciju un kompozīciju, ko nespēj piedāvāt ERD.

3.21. att. Objeta tipu mantošana

Pēc tam seko ieviešanas fāze, kur UML klašu diagrammas elementi tiek sasaistīti ar

relāciju - objektu datu bāzes tipiem un glabāšanas iespējām – objektu datu tipu iekapsulēšana,

objektu tipu mantošana, kolekcijas tipi – VARRAY vairāku vērtību atribūtiem, kompozīcija

izmantojot iekļautās tabulas.

34

Page 35: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

Objektu datu tipi :

3.22. att. Objektu datu tipi

Objektu tipu mantošana ļauj lietotājam definēt datu tipu hierarhijas. Izmantojot

hierarhijas ir iespējams definēt apakš tipus klasēm, kuras var mantot visus superklases

atribūtus.

VARRAY ir Relāciju objektu datu bāzes kolekcijas tips, kurš sastāv no objektu kopas,

kuriem ir tāds pats sākotnēji definētais datu tips. Relāciju datu bāzē šādas struktūras tiek

glabātas veidojot jaunu tabulu katram no atribūtiem, lai atbilstu pirmajai normālformai.

3.23. att. Mainīga garuma masīvu (Varray) izmantošana

Iekļautā tabula ir tabula, kura var tikt saglabāta citā tabulā. Tādējādi vairāku tabulu

kolekcija var tikt saglabāta kā viena kolonna citā tabulā.

3.2.2. Paplašinātais UML modelis relāciju-objektu datu bāzes projektēšanai

UML modelis arī sevī iekļauj paplašināšanas iespējas, lai to varētu papildināt ar

nepieciešamajām modelēšanas iespējām. Tiek piedāvāti sekojoši papildināšanas elementi:

Stereotipi – stereotips papildina UML valodu, ļaujot izmantot jauna tipa blokus, kuru

īpašības ir mantotas no eksistējošajiem, bet ir iespējams pievienot problēmai

specifikas īpašības. Katram jaunajam blokam ir savas īpašības, semantika (katrs

stereotips var iekļaut dažādus ierobežojumus) un notācija. Stereotips ir kā jaunā

izveidotā bloka nosaukums.

35

Page 36: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

Iezīmētās vērtības – paplašina UML bloka atribūtus ļaujot pievienot jaunu informāciju

elementa specifikācijā un pievienot jaunus atribūtus. Tie tiek attēloti zem

jaunizveidotā bloka nosaukuma.

Ierobežojumi – papildina UML bloka semantiku dodot iespēju pievienot jaunus

likumus vai arī mainot eksistējošos. Tie attēlo īpašus likumus, kuriem ir jābūt

patiesiem, lai modelis būtu korekti. Vizuāli tas tiek attēlots, kā teksta virkne, kura ir

novietota blakus saistītajam elementam.

Relāciju datu bāzes modelim atbilstošie stereotipi ir redzami sekojošā tabulā:

3.6. tabula

Stereotipi

Datu bāzes elements

UML Elements Stereotips Ikona

Arhitektūras Datubāze Komponente <<Database>>

Shēma Pakotne <<Schema>>

Konceptuālie Pastāvībā klase Klase <<Persistent>>Daudzvērtību atribūts

Atribūts <<MA>>

Aprēķināmais atribūts

Atribūts <<DA>>

Kompozīta atribūts Atribūts <<CA>>Identifikators Attribūts <<ID>>

Loģiskie Tabula Klase <<Table>>

Skatījums Klase <<View>>Kolonna Atribūts <<Column>>Primārā atslēga Atribūts <<PK>>Ārējā atslēga Atribūts <<FK>>Ne nulles ierobežojums

Atribūts <<NOT NULL>>

Unikālais ierobežojums

Atribūts <<Unique>>

Trigeris Ierobežojums <<Trigger>>Pārbaudes ierobežojums

Ierobežojums <<Check>>

Procedūra Klase <<Stored Procedure>>

Fiziskie Tabulvieta Komponente <<Tablespace>>Indekss Klase <<Index>>

Kā redzams, tad starp stereotipiem nav relāciju - objektu datu bāzei raksturīgās lietas

– kolekciju tipi, atsauču tipi un metodes. Lai būtu iespējams modelēt relāciju - objektu datu

36

Page 37: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

bāzi, nepieciešams paplašināt UML valodu ar jauniem stereotipiem. Stereotipi norādīti

balstoties uz SQL:1999 , gan arī uz Oracle8i specifikāciju.3.7. tabula

SQL:1999 Stereotipi

Strukurēts tips (Structured Type) Metamodeļa klase Klase Apraksts <<UDT>> attēlo lietotāja definētos tipus Ikona Nav Ierobežojumi Izmanto tikai, lai definētu vērtības tipu Iezīmētās vērtības NavTipu tabula (Typed table) Metamodeļa klase Klase Apraksts Definēts kā <<Object Type>>. Attēlo datu bāzes shēmas klasi, kurai jābūt

definētai kā strukturēta tipa tabulai Ikona

Ierobežojumi Tipu tabula iekļauj strukturētā tipa definīciju Iezīmētās vērtības NavKnows Apraksts <<Knows>> asociācija ir speciāla tipa saite, kura savieno klasi ar lietotāja

definēto tipu <<UDT>>. Tā ir viena virziena sasaiste. Ikona Nav Ierobežojumi Var tikt izmantos tikai, lai sasaistītu <<Object Type>> klasi ar <<UDT>>

klasi Iezīmētās vērtības NavAtsauces tips (REF Type) Apraksts <<REF>> attēlo sasaisti ar kādu <<Object Type>> klasi Ikona Ierobežojumi <<REF>> atribūts var atsaukties tikai uz <<Object Type>> klasi Iezīmētās vērtības <<Object Type>> klase, uz kuru tā attiecasMasīvs (ARRAY) Metamodeļa klase Atribūts Apraksts <<ARRAY>> reprezentē indeksētu un ierobežotu kolekcijas tipu Ikona Ierobežojumi Masīva elementi var būt jebkura datu tipa, izņemot masīva tipa elementi Iezīmētās vērtības Masīva elementu tipi

Elementu skaits masīvā

Rindas tips (ROW Type) Metamodeļa klase Atribūts Apraksts <<row>> reprezentē salikta tipa atribūtu ar noteiktu elementiem, katrs no

tiem var būt ar citu datu tipu Ikona

Ierobežojumi Nav iespējams izmantot metodes Iezīmētās vērtības Katra elementa nosaukums un datu tipsPārdefinētā metode (Redefined method) Metamodeļa klase Metode Apraksts <<redef>> metode no jauna ir implementēta bērna klasē Ikona Nav Ierobežojumi Nav

37

Page 38: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

Iezīmētās vērtības Metodes parametri un to datu tipi, kā arī metodes atgrieztais datu tipsAtliktā metode (Deffered method) Metamodeļa klase Metode Apraksts <<def>> metode ir metode, kura tiek implementēta bērna klasē Ikona Nav Ierobežojumi Jābūt definētai klasē, kurai ir bērni Iezīmētās vērtības Metodes parametri un to datu tipi, kā arī metodes atgrieztais datu tips

3.8. tabula

Oracle8i Stereotipi

Objekta tips (Object Type) Metamodeļa klase Klase Apraksts <<UDT>> attēlo lietotāja definētos tipus, atbilst

SQL:1999 strukturētajam tipam. Ikona Nav Ierobežojumi Izmanto tikai, lai definētu vērtības tipu Iezīmētās vērtības NavObjektu tabula (Ojbect table) Metamodeļa klase Klase Apraksts Definēts kā <<Object Type>>. Attēlo datu bāzes

shēmas klasi, kurai jābūt definētai kā objektu tipu tabulai. Atbilst SQL:1999 tipu tabulai.

Ikona

Ierobežojumi Tipu tabula iekļauj strukturētā tipa definīciju Iezīmētās vērtības NavKnows Metamodeļa klase Asociācija Apraksts <<Knows>> asociācija ir speciāla tipa saite, kura

savieno klasi ar lietotāja definēto tipu (<<UDT>>,<<ARRAY>> vai <<NT>>), kurš tiek izmantots klasē. Tā ir viena virziena sasaiste.

Ikona Nav Ierobežojumi Var tikt izmantos tikai, lai sasaistītu <<Object

Type>> klasi ar <<UDT>> klasi Iezīmētās vērtības NavAtsauces tips (REF Type) Apraksts <<REF>> attēlo sasaisti ar kādu <<Object Type>>

klasi Ikona Ierobežojumi <<REF>> atribūts var atsaukties tikai uz <<Object

Type>> klasi Iezīmētās vērtības <<Object Type>> klase, uz kuru tā attiecasMainīga garuma masīvs (VARRAY) Metamodeļa klase Atribūts/Klase Apraksts <<ARRAY>> reprezentē indeksētu un ierobežotu

kolekcijas tipu, atbilst masīva tipam SQL:1999 standartā.

Ikona Ierobežojumi Masīva elementi var būt jebkura datu tipa, izņemot

citu kolekciju tipa elementi Iezīmētās vērtības Masīva elementu tipi

38

Page 39: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

Elementu skaits masīvā

Iekļauta tabula (Nested table) Metamodeļa klase Klase Apraksts <<NT>> reprezentē neindeksētu, neierobežotu

kolekcijas tipu Ikona Ierobežojumi Iekļautās tabulas elementi var būt jebkura tipa,

izņemot kolekcijas tipus Iezīmētās vērtības Iekļautās tabulas pamata tips

Autoru piedāvātā relāciju - objektu datu bāzes projektēšanas metodoloģija pamatā

sastāv no trīs fāzēm – analīzes, projektēšanas un ieviešanas daļas.

3.24. att. Projektēšanas fāzes

Analīzes daļā tiek izveidota UML diagramma, kurā attēlots modeļa konceptuālā

shēma. Projektēšanas daļa savukārt sastāv no divām daļām – standarta loģiskais projektējums

un specifiskais loģiskais projektējums. Standarta projektējums ir neatkarīgs modelis, kurš ir

vispārīgs un nav domāts kādai konkrētai ieviešanas valodai vai tehnoloģijai. Specifiskas

loģiskais modelis jau ir projektējums konkrētai tehnoloģijai, piemēram, Oracle8i. Standarta

modeli ir iespējams veidot izmantojot SQL:1999 specifikāciju vai UML , kuram pievienoti

iepriekš apskatītie SQL:1999 stereoptipi. Arī veidojot specifisko modeli, ir divas iespējas. Tā

kā šis modelis jau ir specifisks un veidots konkrētai tehnoloģijai, šajā gadījumā Oracle8i, tad

ir iespējams šo modeli definēt izmantojot Oracle8i standartus, vai arī UML ar pievienotajiem

Oraclei8i specifiskajiem stereotipiem. Projektēšanas fāzē starp sandarta un loģisko

projektējumu vispārīgie stereotipi tiek aizstāti ar produktam specifiskajiem stereotipiem.

39

Page 40: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

Tālāk jau iplementācijas fāzē tiek ģenerēts fiziskais modelis veicot iegūtā modeļa elementu

transformācijas. Zemāk redzamajā tabulā/attēlā redzams, kādi elementi UML diagrammā

atbilst SQL:1999 un Oracle8i standartiem.

3.9. tabula

UML Dagrammas, SQL:1999 un Oracle8i salīdzinājums

UML SQL:1999 Oracle8iKlase Strukturētais tips Objekta tips Klases papildinājums Tipu tabula Tabula no objekta tipaAtribūts Atribūts Atribūts Daudzvēŗtību Masīvs Mainīga garuma masīvs/iekļautā

tabula Pamata Rinda/Strukturēta tipa kolonna Kolonna ar objekta tipu Aprēķinātais Trigeris/Metode Trigeris/MetodeAsociācija Viens pret vienu Atsauce/[Atsauce] Atsauce/[Atsauce] Viens pret daudziem [Atsauce]/[Masīvs] [Atsauce]/[Iekļauta tabula/Mainīga

garuma masīvs] Daudzi pret daudziem Masīvs/Masīvs Iekļauta tabula/iekļauta tabula

Mainīga garuma masīvs/Mainīga garuma masīvs

Agregācija Masīvs Iekļauta tabula/ Mainīga garuma atsauču masīvs

Kompozīcija Masīvs Iekļauta tabula/ Mainīga garuma objektu masīvs

Vispārināšana Tipi/Tipu tabulas Koncepts netiek atbalstīts

3.3. Objektu relāciju datu bāzes projektēšanas automatizācijaRelāciju – objektu datu glabāšanas struktūru veido divas sastāvdaļas:

1) lietotāju definēto tipu objekti;

2) relāciju datu bāzes tabulu karkass.

Lietojot kā datu semantisko modeli UML klašu diagrammu, var definēt datu, datu

grupējumu un saišu īpašības, no kurām var iegūt objektu, objektu kolekciju un to savstarpējo

saišu struktūru. Bet tas vēl nav datu bāzes loģiskais modelis. Vēl šie objekti ir jāizvieto pa

tabulu kolonām un jānodrošina to sasaistes iespējas. Pilnvērtīgas informācijas, lai iegūtu

tabulu struktūru nav. Jo var būt nepieciešamība veidot saliktus objektus, un tos izvietot tabulu

kolonās. Lai veidotu vienkāršotu tabulu struktūru, var pielāgot relāciju datu bāzes tabulu

sasaistes likumus un mantošanas transformēšanai no semantiskā modeļa nodefinēt papildus

universālus likumus.

40

Page 41: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

M. F. Golobiski un A. Vecehietti (M. F. Golobisky, A. Vecehietti) savā darbā [3]

ierosina relāciju – objektu datu bāzes projektēšanai izmantot 3 datu attēlošanas slāņus:

1) UML klases diagrammas slānis, kas atbilst projektējamās sistēmas datu konceptuālajam

modelim. Tas sastāv no klasēm, asociācijām, atribūtiem. Tiek nodrošinātas dažādu veidu

asociācijas starp objektiem: agregācija, kompozīcija, hierarhija, asociācijas klases.

2) objektu – saišu slānis (object – relational layer), kas ir izveidots no standarta SQL: 2003

definētajiem elementiem: Objektu relāciju slānis sastāv no elementiem, kurus raksturo

SQL:2003 standarts. Tie ir lietotāja definētie tipi, strukturētie tipi, atsauces, rindu tipi un

kolekcijas (masīvi un kopas). Tās nav datu glabāšanas struktūras.

3) objektu – relāciju datu glabāšanas slānis (object – relational persistent layer). Tiek

atrisināts jautājums, kādā veidā objektus glabāt, kādās tabulās, kādās kolonās.

Objektu - relāciju datu glabāšanas slānis sastāv no vienkāršām tabulām un tabulām ar objekta

tipa kolonām, kuras veidotas no objektiem, kuri definēti iepriekšējā slānī. Tiek iekļauti arī

relāciju elementi – ierobežojumi, domēni un citi. Kā redzams attēlā, tad lai UML diagrammu

transformētu relāciju tabulu shēmā ir nepieciešams viens solis. Lai transformētu UML

diagrammu objektu relāciju datu bāzes loģiskajā modelī, jau ir nepieciešami divi soļi.

3.25. att. Attēlošanas slāņi

Lai iegūtu pilnīgāku datu modeļa attēlojumu, tiek izmantos UML klašu diagrammas

metamodelis, jo ar tā palīdzību var attēlot struktūras, saites starp struktūrām un datu

41

Page 42: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

semantiku. Klases grupē objektus, kuriem ir vienāda specifikācija, ierobežojumi un

semantika. Tām ir atribūti un operācijas. Asociācijas specificē semantiskās attiecības starp

klases instancēm. Tām ir divas izejas(association ends), kuras sauc par asociāciju izejām.

SQL:2003 datu tipu metamodelis pamatā sastāv no trīs dažāda tipa shēmas objektiem:

ierobežojumiem, domēniem un tabulām.Tabulas ierobežojumi iekļauj gan primārās atslēgas,

unikālās atslēgas un ārējās atslēgas. Tabulas var būt gan pamata tabulas, gan arī tabulas,

kuras tiek veidotas kā skatījumi.

UML diagramma sastāv no dažādiem objektiem: klases (C), atribūti (A) ,

operācijas(O), saites®. Saites savukārt var būt gan agregācijas(Agg), gan kompozīcijas(Cm),

binārās asociācijas(BAS), asociāciju klases(AC) un generalization-specialization(GS).

Klase: balstoties uz UML metamodeli, klasi ir izeikta kā C=(name,

isAbstract,properties,operations,superclass), kur isAbstract nozīmē, vai klases objekts var tikt

izveidots. Superklase norāda, no kuras klases tiek mantoti atribūti un operācijas. Operācijas

apzīmē, kādas metodes klase var izpildīt. Īpašības raksturo klases atribūtus. Atribūti var būt

vienkārši (vienas vērtības) un kompleksi (vairāku vērtību atribūti). Vienkāršajiem atribūtiem

kārta ir 1, vairāku vērtību atribūtiem kārta var būt no 1 līdz n.

Līdz ar to atribūts var tikt izteikts kā: A=(name,atributeType,multiplicity), kur

nosaukums ir atribūta nosaukums, atributeType ir pēc noklusējuma definētais datu tips un

multiplicity raksturo kārtu, jeb atribūtu skaitu kopā.

Klases tiek savienotas ar asociāciju izejām divos dažādos veidos. Tās definē klasi,

kura piedalās asociācijā un arī attiecas uz klases pseidoatribūtu.

Agregācijas saite ir binārā saite, kas raksturo pilns-daļējs tipa sait un tiek definēta kā

Agg=(name,AEs), kur name ir piešķirtais agregācijas nosaukums un AEs ir asociāciju izejas.

Agregācijā daļa var piederēt vairākiem veselajiem un var eksistēt neatkarīgi, atšķirībā no

kompozīcijas, kura ir stingrāka pilns-daļējs saite. Agregācijai arī nevar būt cikli un objekts

nevar tieši vai netieši būt daļa no paša.

Kompozīcijas saite – arī ir asociācija, kura raksturo daļējs-pilns tipa saiti, bet tā ir

stingrāka nekā agregācija, jo daļa nevar eksistēt neatkarīgi no veselā. Arī pamatā datu plūsma

ir vienā virzienā – no pilnā uz daļēju. To var izteikt kā Cm=(name,AEs).

Binārās asociācijas saite savieno divas realitātes. Pamatā izmanto -lai sasaistītu

objektus. To izsaka BAs=(name, AEs)Asociāciju klases saitei ir gan asociācijas, gan klases

īpašības.

42

Page 43: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

3.4. Daudzkriterialitāte relāciju – objektu datu bāzes projektēšanāRelāciju – objektu datu bāzes projektēšanā ir vēl divas lielas problēmas:

1) objektu hierarhijas projektēšana. Var tikt veidoti vienkārši objekti ar saviem

atribūtiem, metodēm un iekļauti tabulu kolonās (kā rindas tipa objekts vai kolonas tipa

objekts). Bieži lietderīgāk ir veidot saliktus objektus, kuri iekļauj citu objektu vai objektu

kolekciju. Iekļauto objektu hierarhijas dziļums pēc vajadzības var būt ļoti dažāds. Gan

paplašinātā ER diagramma, gan UML klašu diagramma nesatur norādes par vēlamo objektu

hierarhijas dziļumu.

2) risinājumu daudzveidība.Datu semantiskā modeļa transformācija relāciju datu

bāzes datu struktūrā ir viennozīmīga. Relāciju objektu datu bāzes gadījumā datu semantiskais

modelis var tikt transformēts daudzās dažādās struktūrās, jo var tikt izmantoti gan salikti

objekti, gan objektu atsauču (references) mehānisms.

Apskatītās problēmas neļauj semantiskajā modelī viennozīmīgi definīnēt datu

aprakstu, kuru izmantojot tiktu iegūta tikai viena atbilstošā datu bāzes datu glabāšanas

struktūra. Nepieciešama risinājuma papildus precizēšanas problēma. Jārisina datu bāzes

struktūras optimizācijas uzdevums.

Struktūras optimizācijas uzdevums ir ļoti populārs. Projektējot mājas, tiltus,

lidmašīnas, visādas mehāniskas un elektroniskas iekārtas, vienmēr jāizvēlas labākā struktūra

no iespējamām. Bet kas ir labākā struktūra? Šis vērtējums ir integrāls, tas sastāv no daudziem

atsevišķiem vienkāršākiem vērtējumiem: cena, izturība, izskats, tehniskie raksturojumi. Arī

datu bāzes struktūras gadījumā tiek lietoti dažādi vērtējumi: ātrdarbība, vaicājumu

definēšanas vienkāršība, izmaiņu un papildinājumu veikšanas vienkāršība, semantikas

izprotamība. Šādus uzdevumus sauc par daudzkriteriālās optimizācijas uzdevumiem.

Matemātiskā to formalizācija ir šāda:

q1(X) optimum X Sq2(X) optimum X S X*r = P. . .qk(X) optimum X S

43

Page 44: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

Dažiem kritērijiem tiek meklētas maksimālās vērtības, dažiem – minimālās: optimum = min,

max. Lai novērstu mērķu neviendabību, kritēriji tiek transformēti, lai visiem būtu vēlams

iegūt vai nu tikai maksimālās, vai tikai minimālās vērtības (turpmāk optimum = max).

q1(X), q2(X), ... , qk(X) ir kvalitātes kritēriju modeļi, kuru vērtības ir atkarīgas no maināmo

lielumu X =(x1, x2, ... , xn) vērtībām. Mainīgajiem lielumiem ir pieļaujamo vērtību apgabals S,

kurš tiek definēts ar vienādības un nevienādības tipa ierobežojumiem:

gi(X) 0 (i = 1, ... , m1),

hi(X) 0 (i = 1, ... , m2).

Viena kritērija gadījumā tiek meklēts risinājums (optimums), kuram ir vislielākā kritērija

vērtība (3.10. att.). Ja ir vairāki kvalitātes rādītāji, optimums neeksistē. Ir atsevišķo kritēriju

optimumi (3.10. att.), bet formāla kopējā optimuma (ekstrēma) jēdziena nav.

3.26. att. Vairāku kritēriju optimizācijas problēma

Formālais daudzkriteriālās optimizācijas uzdevuma risinājums ir Pareto kopa P, kuru veido

risinājumi, par kuriem formāli labākus risinājumu iegūt nav iespējams.

Risinājums X1 ir labāks par risinājumu X2, ja visas X1 kritēriju vērtības

q i(X1 )≥qi(X 2)( i=1 , .. . , k )un eksistē tāds kritērijs q j (X ) j∈1 ,. .. , k , kuram qj(X1) > qj(X2):

∀ i∈1 ,. .. , k [ qi(X 1)≥qi (X2 )] un

∃ i∈ 1 ,. . ., k [ qi (X1 )>g i(X2 ) ]

Izmantojot šo definējumu, pieļaujamos risinājumus var sadalīt divās kopās:

1) risinājumi, par kuriem ir kāds formāli labāks risinājums;

2) risinājumi, par kuriem nav formāli labāku risinājumu. Šie risinājumi veido Pareto kopu P.

44

¿

¿

Page 45: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

3.11. att. parādīta kritēriju telpa uzdevumam, kuram ir divi kvalitātes rādītāji q1(X) un q2(X).

Labākais (optimālais) risinājums pēc pirmā kritērija ir X1max, pēc otrā kritērija – X2max . Ω ir

pieļaujamo risinājumu kopa. Risinājums X2 ir labāks kā risinājums X1, jo abu kritēriju

vērtības X2 ir labākas (lielākas). Salīdzinot risinājumus X3 un X2, varam secināt, ka X3 ir

labāks risinājums, jo otrā kritērija vērtība tam ir labāka, bet pirmā kritērija vērtības abiem

risinājumiem ir vienādas.

Analizējot pieļaujamo risinājumu kopas Ω robežu starp risinājumiem X1max un X2max redzam,

ka tā iekļauj risinājumus, par kuriem formāli labāku nav. Tātad tie ir Pareto risinājumi.

Risinot konkrētu uzdevumu, protams, ir jāiegūst viens labākais risinājums X**. Lai to

realizētu nepieciešams Pareto risinājumu kopā noteikt variantu, kurš visvairāk apmierinātu

pētnieka prasības. Atsevišķos gadījumos var pielietot leksikogrāfisko optimizāciju - kritērijus

var sakārtot prioritāšu rindā: vissvarīgākais un nākošie pēc nozīmības. Ja šāds variants nav

iespējams, jāveic kompromisu analīze: par cik var pasliktināt viena kritērija vērtību iegūstot

zināmu uzlabojumu par citu kritēriju.

3.27. att. Daudzkriteriālās optimizācijas kritēriju telpas piemērs.

Daudzkriteriālās optimizācijas uzdevumu risināšanai tiek izmantotas dažādas pieejas:

1) tiek izmantoti vērtējumu (kritēriju) prioritāšu sistēma (ja tā ir zināma). Šo pieeju

sauc par aprioro pieeju, vajadzīgā informācija risinājumu salīdzināšanai ir zināma,

tā ir jāizmanto. Šāda situācija reālajā dzīvē ir ļoti reti.

2) lai noskaidrotu kritēriju prioritāšu sistēmu, tiek veikti eksperimenti un savākta

papildus informācija. Mātemātisku un loģisku aprēķinu veidā tiek notekti kritēriju

proritāšu rādītāji, lai salīdzinātu potenciālos risinājumus un iegūtu labāko.

Diemžēl arī šo pieeju ir grūti izmantot, jo kritēriju proritāšu sistēma nav konstanta,

bet atkarīga no kritēriju vērtību savstarpējām attiecībām. Ir jāveis ļoti daudz

45

Page 46: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

eksperimentu, lai iegūtu dināmisku prioritāšu sistēmu visam potenciālo risinājumu

kopas apgabalam.

3) adaptīvā, iteratīvā jeb dialoga izmantošanas pieeja. Izvēlas vienu sākotnējo Pareto

kopas risinājumu X0 (risinājums var arī nepiederēt Pareto kopai). Noskaidro

projektētāja vēlmes I1 par kritēriju vērtību uzlabošanu (arī par pieļaujamiem dažu

kritēriju pasliktinājumiem). Tiek sameklēts atbilstošais Pareto kopas risinājums.

Iterāciju process tiek turpināts, līdz projektētājs ir pārliecinājies, ka labāku

(subjektīvi) risinājumu Pareto kopā nevar iegūt:

I1 I2

q1(X0), q2(X0), .... , qk(X0) q1(X1), q2(X1), .... , qk(X1)

I3 Ir

q1(X2), q2(X2), .... , qk(X2) ... q1(X**), q2(X**), .... , qk(X**); X** - labākais

risinājums.

Kvalitatīvu labāko risinājumu iegūšanu var nodrošināt tikai adaptīvā pieeja. Projektētājs savu

vēlmju virzienā pārskata Pareto risinājumus, precizē arī savu priekšstatu par Pareto kopu.

Viņam veidojas kritēriju vērtību kompromisa modelis. Meklējot labāko risinājumu (the most

preferable solution), tiek risināti trīs uzdevumi:

1) Pareto kopas risinājumu iegūšana;

2) kompromisa iespēju noskaidrošana;

3) subjektīvā faktora ietekmes samazināšana.

Pareto kopas pārskatīšana var tikt realizēta dažādos variantos. Visbiežāk izmanto

parametrizēto globālo kritēriju W(X):

W(X) = F (λ1q1(X), λ2q2(X), .... , λkqk(X)) optim X* pieder P

Tiek izmantoti projektētāja kritēriju prioritāšu svara (nozīmības) koeficienti λ1, λ2, ... , λk un

"svērto" kritēriju vērtību agregāta veidošanas funkcija F. Veicot parametrizētā globālā

kritērija izteiksmes skalāru optimizāciju, iegūstam vajadzīgo risinājumu Pareto kopā.

Relāciju – objektu datu bāzes struktūras izvērtēšanai ir izstrādāti daudzi kritēriji, kuri raksturo

dažādas datu bāzes struktūras īpašības.

46

Page 47: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

4. TRANSFORMĀCIJAS NO KONCEPTUĀLĀ MODEĻA UZ

RELĀCIJU-OBJEKTU FIZISKO MODELI

4.1. Transformāciju veidiNo relāciju datu bāzes tiek pārņemtas saites viens pret vienu, viens pret daudziem un

daudzi pret daudziem. Savukārt objektu tehnoloģijām raksturīgās saites ir mantošana,

agregācija, kompozīcija un asociācija. Saite viens pret vienu ietver divu dažādu objektu

sasaisti tādā veidā, ka katram no objektiem var būt viens un tikai viens saistītais objekts.

Konceptuālajā modelī šī saite tiek attēlota ar diviem savstarpēji sasaistītiem objektiem, starp

kuriem eksistē sasaiste viens pret vienu. Piemēram, ir divi objekti – objekts a un objekts b, un

tie ir sasaistīti ar saiti viens pret vienu.

att. 4.1. Konceptuālais modelis - saite viens pret vienu

Ir iespējami vairāki veidi, kā relāciju - objektu datu bāzē saglabāt šo sasaisti starp

objektiem. Kā viens no variantiem – ir izveidot vienu tabulu un tajā saglabāt abus saistītos

objektus vienā rindā. Šādā veidā viens objekts iekļauj otru objektu sevī kā atribūtu un

kopumā tiek izveidota viens rindas tipa objekts datu bāzē. Ir iespējams, šo te pašu struktūru

saglabāt tabulā – katram no objektiem paredzot savu kolonnu, bet šādā gadījumā netiek

veidots rindas tipa objekts tabulā un līdz ar to tiek sarežģīta saišu veidošana izmantojot

atsauces. Atsauces uz objektiem iespējams izmantot tikai tad, ja tabulās ir rindas tipa objekti.

4.28. att. Saites viens pret vienu glabāšana vienā tabulā

Ir iespējams arī šo pašu situāciju saglabāt divās tabulās. Vienā tabulā ir objekts un

atsauce uz otras tabulu, kurā glabājas saistītais objekts.

4.29. att. Saites viens pret vienu glabāšana divās tabulās

47

Page 48: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

Izmantojot divas tabulas, šos pašus objektus var saglabāt arī iekļaujot atsauci objektā,

kurš ir saistīts ar otru objektu.

4.30. att. Saites viens pret vienu glabāšana divās tabulās

Saite viens pret daudziem datu bāzes projektēšanā ir visbiežāk sastopamā saite. Šī

saite nozīmē to, ka vienam objektam var būt piesaistīti vairāki cita objekta eksemplāri.

Piemēram – attiecība starp skolu un skolēniem attēlo saiti viens pret daudziem. Skola ir

viena, bet tajā mācās daudzi skolēni. Savukārt skolēns mācās tikai vienā skolā vienā un tajā

pašā laika momentā. Vienīgā atšķirībā attēlojumā konceptuālajā modelī ir saites kārtas

norādīšana pie objekta, kura vairākas versijas var tikt piesaistītas vienam objektam. Vizuāli

saite tiek attēlota sekojoši – objektam „a” ir piesaistīti vairāki objekti „b”

4.31. att. Konceptuālais modelis - saite viens pret daudziem

Relāciju datu bāzē šai sasaistei eksistē tikai viena realizācija – divas tabulas un

sasaiste starp tām. Viena no tām ir kā pamata tabula, kuras vienam ierakstam saistītajā tabulā

ir pakārtoti vairāki citi ieraksti, kuri ir sasaistīti izmantojot identifikatorus. Relāciju objektu

datu bāzē šai saitei eksistē vairākas realizācijas. Ir iespēja visus saistītos objektus saglabāt

vienā tabulā izmantojot relāciju - objektu datu bāzes iekļautās tabulas konstrukciju. Tāpat ir

arī iespējams šo pašu saiti datu bāzē realizēt kā divas sasaistītas tabulas izmantojot objektu

atsauces. Bet arī izmantojot divas tabulas, ir iespējams divas realizācijas. Viena no tām ir

tabula, kur viena rinda ir viens objekts un atsauce uz saistīto ierakstu, kā arī rinda, kurā ir

atsauce uz saistīto objektu un objektu kolekcija. Ja tiek izvēlēta vienas tabulas glabāšanas

struktūra, tad tabula sastāv vismaz no divām kolonnām. Vienā kolonnā ir objekts, kurš saitē

piedalās kā vienīgais eksemplārs un otrā tabulas kolonnā ir relāciju - objektu datu bāzes īpaša

glabāšanas struktūra, kura nodrošina kolekciju veidošanu. Līdz ar to – vienas tabulas vienā

rindā ir iespējams saglabāt visus sasaistē iesaistītos objektus. Datu bāzes struktūras attēlojums

redzams attēlā (4.5. att.)

48

Page 49: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

4.32. att. Saite viens pret daudziem - viena tabula

Šo pašu objektu sasaisti ir iespējams arī saglabāt divās tabulās. Izmantojot šādu

risinājumu, vienā tabulā tiek saglabāts objekts, kurš sasaistē ir kā viens eksemplārs un otrā

tabulā tiek glabāta atsauce uz pirmās tabulas objektu, kā arī tiek saglabāti visi objekti, kuri

sasaistē ir ar kārtu N. Saistītos objektus ir iespējams saglabāt divos veidos. Viena no

realizācijām ir līdzīga kā apskatītajā vienas tabulas variantā – arī tiek izmantota iekļautā

tabula. Saistītajā tabulā ir viena rinda, kur vienā kolonnā tiek saglabāta atsauce uz galvenās

tabulas objektu, bet otrā kolonnā ir objektu kolekcija. Katrā izmantotajā tabulā ir tikai viena

rinda.

4.33. att. Saite viens pret daudziem - divas tabulas un iekļautā tabula

Ir iespējams šo pašu sasaisti saglabāt arī neizmantojot iekļautās tabulas un objektu

kolekcijas. Izmantojot šādu realizāciju, saistītās tabulas rindu skaits ir vienāds ar saistīto

objektu skaitu, katrā rindā glabājas viens saistītais objekts un atsauce uz galvenās tabulas

objektu.

4.34. att. Saite viens pret daudziem - divas tabulas un objektu rindas

49

Page 50: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

Saite daudzi pret daudziem ir nedaudz retāk sastopama saite. Tas nozīmē, ka kādam

no kopas „a” objektiem atbilst vairāki „b” kopas objekti un arī “b” kopas objektam var atbilst

vairāki kopas “a” objekti. Saites daudzi pret daudziem attēlojums:

4.35. att. Konceptuālais modelis - saite viens pret daudziem

Relāciju datu bāzē šāda sasaiste tiek realizēta izmantojot saišu starptabulu, kurās ir

norādes uz saistīto tabulu rindām. Arī relāciju - objektu datu bāzē ir iespējama šāda pieeja –

tiek izveidota starptabula, kurā glabājas objektu atsauces.

4.36. att. Saite daudzi pret daudziem - atsauču starptabula

No objektu tehnoloģijām tiks izmantota agregācija, kompozīcija un mantošana starp

objektiem. Par agregāciju sauc objektu kopumu, kad viens objekts ir kā vesels un pārējie

objekti ir daļas. Šajā gadījumā objekts sastāv no vairākām daļām vai tam pieder vairākas

daļas, bet katra no daļām var eksistēt atsevišķi, kā arī objekts var eksistēt atsevišķi.

Piemēram, asociācija starp departamentu un strādnieku ir uzskatāma par agregāciju, jo

departamentā strādā darbinieki, bet darbinieku neesamība departamentā nenozīmē, ka

departamenta nav. Tāpat arī, ja nav departamenta, tad tas nenozīmē, ka nav arī strādnieku.

Tie vairs nav saistīti ar departamentu un var strādāt citās struktūrās. Tātad – darbinieks un

departaments ir vājā „pilns-daļa” saite, kas nozīmē, ka pilnais var eksistēt bez daļas, kā arī

daļa var eksistēt bez pilnā, bet pilnais un daļa kopā veido vienu veselumu. Vizuāli agregācija

tiek attēlota kā objekti (realitātes) un saite starp šiem objektiem.

4.37. att. Agregācijas saite

50

Page 51: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

Tā kā objekti savā starpā nav cieši saistīti, tad datu bāzē tiek izmantotas jau

aprakstītās saišu glabāšanas struktūras. Tās ir saite viens pret vienu, viens pret daudziem un

daudzi pret daudziem. Atšķirība no iepriekš apskatītajām saitēm ir tāda, ka netiek izmantoti

risinājumi, kuros objekti tiek glabāti atsevišķās tabulās, lai nodrošinātu objektu neatkarību un

būtu iespējams dzēst vai mainīt jebkuru no iesaistītajiem objektiem neietekmējot saistītos

objektus.

Situāciju, kad sasaite „pilns-daļa” ir stingra – daļa nevar eksistēt bez veselā, kā arī

veselais nevar eksistēt bez daļas, sauc par kompozīciju. Piemēram, asociācija starp

departamentu un universitāti ir uzskatāma par kompozīciju, jo departaments un universitāte ir

cieši saistīta. Ja universitātē nav neviena departamenta, tad to vairs nevar saukt par

universitāti, kā arī – departaments nevar eksistēt bez universitātes. Tas nozīmē, ka sasaiste ir

cieša un objekti ir stingri saistīti. Objekti, kuri asociācijā ir kā „daļa” eksistē tik ilgi, kamēr

eksistē arī saistītais „pilnais” objekts. Attēlojums ir līdzīgs kā agregācijai, vienīgā atšķirība ir

tā, ka uz saites esošais četrstūris tiek iekrāsots.

4.38. att. Kompozīcijas saite

Kompozīcijas realizācija gan atšķiras no agregācijas realizācijas, jo ir nepieciešams

nodrošināt objektu atkarību vienam no otra. Dzēšot objektu, kurš ir kompozīcija, ir

jānodrošina arī visu saistīto objektu dzēšanu no datu bāzes. Līdz ar to, kā glabāšanas

struktūras var tikt izmantotas iekļautās tabulas, objekta saglabāšana tipā vai arī tabula katram

objektam atsevišķi, bet tādā gadījumā ir arī jāizveido mehānisms, kā saistītos objektus dzēst.

Vienkāršākā iespēja saglabāt kompozīcijas tipa asociāciju datu bāzē ir objektu saglabāt

atsevišķā kolonnā. Tādējādi kompozīcijas objekta rinda datu bāzē ietver arī saistītos objektus

un, dzēšot datu rindu, automātiski arī tiek dzēsti visi kompozīcijas objekti. Šāda veida

realizācija gan ir iespējama tikai tad, ja sasaiste starp objektiem ir viens pret vienu.

4.39. att. Kompozīcija - saite viens pret vienu

Līdzīgā veidā ir iespējams saglabāt ari situāciju, kad starp saistītajiem objektiem ir

sasaiste viens pret daudziem. Tādā gadījumā tabulā ir jāveido iekļautā tabula, kurā tiek

51

Page 52: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

saglabāti visi saistītie objekti. Arī šādā realizācijā, dzēšot vienu datu rindu, tiek dzēsti arī visi

kompozīcijas objekti un tiek nodrošināta objektu dzīvotspēja tikai visiem kopā.

4.40. att. Kompozīcija - saite viens pret daudziem

Nozīmīga objektu pieejas īpašība ir mantošanas iespēja un tās izmantošana. Par

mantošanu sauc situāciju, kad viens objekts pārmanto cita objekta īpašības tādējādi veidojot

jaunu objektu. Jaunais objekts satur visas mantotās īpašības, kā arī ir iespēja definēt tikai

jaunajam objektam raksturīgās īpašības. Piemēram, ja par pamatu ņem cilvēku, tad tam ir

iespējams definēt vārdu, uzvārdu kā arī citus atribūtus un metodes, kuras raksturo cilvēku un

tā uzvedību. Bet ir iespējams izveidot jaunus objektus – students un darbinieks. Abi jaunie

objekti manto atribūtus un metodes no cilvēka objekta, bet gan objektam students, gan

objektam darbinieks, ir iespēja definēt specifiskus nepieciešamos parametrus, lai aprakstītu

studenta un darbinieka atšķirīgās uzvedības. Studentu raksturojošs atribūts ir studenta

apliecības numurs, bet darbiniekam šāds atribūts varētu būt amats. Vizuāli to varētu attēlot

sekojoši:

4.41. att. Mantošanas saite

Ir vairāki iespējamie varianti, kā mantošana un mantošanas asociācija starp objektiem var

tikt realizēta relāciju datu bāzē. Kā viena no iespējām, ir visus objektus glabāt vienā tabulā.

Relāciju objektu datu bāzē ir iespējams definēt tipus un apakštipus. Ja tabulas kolonnai ir

52

Page 53: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

definēts kāds noteikts tips, tad šajā kolonnā var saglabāt arī visus saistītos tipus. Šādu tabulu,

kurā vienā kolonnā atrodas dažāda veida objekti, sauc par heterogēnu tabulu.

4.42. att. Tabula ar heterogēniem objektiem

Vēl ir iespēja katram tipam veidot savu tabulu un katrā tabulā glabāt tikai konkrētā

tipa objektus un pēc tam saistītajā pamata tabulā izveidot atsauces uz atsevišķajām tabulām.

Šeit jāņem vērā tas, ka atsauces jādefinē atbilstoši visiem mantošanā iesaistītajiem objektiem.

Vienu atsauci izmantot nav iespējams, jo nav zināms, kura tipa objekts tiks piesaistīts, tāpēc

ir galvenajam objektam ir jādefinē visas veida atsauces.

4.43. att. Tabula katram objekta tipam

Kā trešā iespēja ir apvienot dažus no tipiem un tādējādi iegūstot mazāku tabulu skaitu.

Realizācija ir līdzīga, kāda tā bija veidojot heterogēnu tabulu un saglabājot tajā visus

mantošanas koka objektus, bet atšķirība ir tā, ka daži no tipiem tiek glabāti atsevišķi un daži

no tipiem tiek grupēti pēc kādam no iezīmēm vai lietošanas nepieciešamības. Zemāk

redzamajā attēlā ir izveidota tabula, kurā sagrupēti tipi ar diviem un trīs atribūtiem, savukārt

četru atribūtu objektam ir pašam sava tabula.

4.44. att. Tabula ar apvienotiem tipiem

Kā redzams apskatītajos piemēros, tad ir vairāku veidu realizācijas, kā saglabāt

mantošanas asociāciju relāciju - objektu datu bāzē. Iespējamo kombināciju skaits palielinās

līdz ar iesaistīto objektu skaitu un automātiski nav iespējams noteikt, kura no realizācijām ir

nepieciešama katrā no gadījumiem.

53

Page 54: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

5. RELĀCIJU-OBJEKTU DATU BĀZES PROJEKTĒŠANAS RĪKI

5.1. MIGROX integrētais karkassMetodes nosaukums MIGROX[1] nozīmē – „Migrēšana no Relāciju dabu bāzes uz

Objektu bāzētām un XML datu bāzēm”, no angļu valodas ( MIGrating an RDB into Object-

based and Xml databases). MIGROX sastāv no trīs fāzēm: semantiskās bagātināšanas,

shēmas translācijas un datu pārveidošanas. Pirmajā fāzē tiek izveidots CDM(kanoniskais datu

modelis), kuru pēc tam papildina ar Relāciju Datu bāzes datu semantiku. Tālāk iegūtais

CDM tiek izmantots otrajā fāzē. Trešā fāze pārvērš Relāciju Datu bāzes datus jaunās datu

bāzes vides ekvivalentos.

Semantiskā papildināšanas fāzē no Relāciju dabu bāzes modeļa tiek iegūts RSR un no

iegūtā RSR tiek ģenerēts CDM. Lai izveidotu RSR, ir nepieciešams iekļaut relāciju

nosaukumus un atribūtu īpašības (nosaukumi, tipi , izmērs). Liela nozīme ir arī saišu

definēšanai. Tiek izmantotas unikālās atslēgas, primārās atslēgas, ārējās atslēgas un arī

eksportētās atslēgas – ārējo atslēgu inversās versijas. Eksportētās atslēgas ir svarīgas, lai

atbalstītu divvirzienu saites starp objektiem. Relāciju datu bāzes shēma tiek attēlota kā

elementu kopa : RSR:=R|R:=[rn,Arsr,PK,FK,EK,UK]. CDM sastāv no trīs konceptiem:

klase, atribūts un saites starp objektiem. CDM tiek attēlota kā klašu kopa : CDM:=C|C:=[cn,

cls, abs , Acdm,Rel,UK], kur cn ir klases nosaukums, cls ir klasifikācija, abs – pazīme vai

klase ir abstrakta, Acdm ir klases atribūtu kopa, Saišu kopa un unikālo atslēgu kopa.

Otrajā fāzē iegūtais CDM tiek transformēts mērķa shēmās (pieeja ļauj izveidot gan

objektu bāzētas, gan XML datu bāzes. Autori ir izveidojuši likumu kopu, kā CDM modeli ir

iespējams transformēt izvēlētajā datu bāzes modelī. Relāciju objektu datu bāzes shēmas

definīcija: ORSchema:=UT,TT,UKor, kur UT ir lietotāja definēto tipu (UTD) kopa, TT ir

tipu tabulu kopa un UKor ir unikālo atslēgu kopa.

Trešā noslēdzošā fāze ir datu konvertēšana mērķa shēmas ekvivalentos. Fāze no datu

transformācijas, lai to formāts atbilstu nepieciešamajam formātam un transformētie dati tiek

ievietoti failos, lai tos varētu tālāk izmantot.

54

Page 55: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

Ir veikti arī testi izpildot dažādus vaicājumus, lai salīdzinātu, vai avota un mērķa datu

bāzes sakrīt un dati tajās ir vienādi. Rezultāti ir identiski un tas nozīmē, ka MIGROX metode

ir veikusi korektu datu bāzes struktūras un to datu migrāciju. Tiesa gan – salīdzināti tiek tikai

vaicājumu atgrieztie rezultāti, netiek salīdzināti izpildes ātrumi un netiek vērtēts, vai iegūtā

struktūra ir optimālā un ir izveidota vislabākā iespējamā Relāciju Objektu datu bāzes

struktūra. Tāpat nav arī minēts, vai šī metode nodrošina objektu metožu veidošanu, kas tomēr

ir ļoti būtiska lieta relāciju datu bāzes struktūrā un izveidoto objektu/tipu lietošanas ērtumā.

5.2. O-ODM relāciju-objektu datu bāzes projektēšanas karkassKā vēl viena metode, kā no objektiem lietojumos tiek iegūta relāciju - objektu datu

bāzes shēma, ir O-ODM[12] ( Object-Object Database Mapping) pastāvīgais karkass jeb

ietvars, kurš radīts, lai padarītu izstrādātāju darbu produktīvāku un tiem nebūtu jābūt ar

augstu kompetenci datu bāzes vadības sistēmās. Industrijā ir daudz zināmu ORM (Object

Relational Mapping) pastāvīgo ietvaru, kuri palīdz sasaistīt relāciju datu bāzi un lietojuma

objektus. Populārākie no tiem ir Hibernate[15], EclipseLink[16], kā arī daži ne tik populāri,

piemēram, MyIbatis[17]. Šie ORM pastāvīgie ietvari nodrošina iespēju veikt izmaiņas datu

bāzē strādājot tikai ar lietojumu, tādējādi ļaujot izstrādātājiem koncentrēties tikai uz lietojuma

funkcionalitātes attīstīšanu. Bet, izmantojot ORM pastāvīgos ietvarus, ir iespējams strādāt ar

relāciju datu bāzi. Izmantojot O-ODM tiek piedāvāta iespēja lietojuma objektus sasaistīt ar

relāciju - objektu datu bāzes sistēmu un tās tabulām. Dominējošā tehnoloģija ORM pastāvīgo

ietvaru realizācijās ir programmēšanas valoda JAVA un arī O-ODM ir veidots izmantojot šo

programmēšanas tehnoloģiju. ORM un O-ODM izmanto vienus un tos pašus JDO (Java Data

Object) un JPA (Java Persistence API) – piekļuve datiem tikai no ietvara, darbība ar datiem

notiek objektorientētā valodā, Java klasēm tiek izmantotas anotācijas. Anotācijas palīdz

pievienot informāciju Java klasēm, no kuras vēlāk tiek ģenerēts SQL kods. Autori ir

definējuši sekojošus likumus, kā no objektorientētas tehnoloģijas iegūt relāciju - objektu datu

bāzei atbilstošus objektus, tipus un sasaistes. Tabulā 5.1. attēlots kā objektorientētās

tehnoloģijas objekti tiek pārveidoto relāciju - objektu datu bāzes shēmā.5.10. tabula

Lietojuma objektu - relāciju datu bāzes objektu sasaiste

Objektorientētā tehnoloģija Relāciju objektu datu bāzes vadības sistēmaKlase Tabula

Lietotāja definēts tipsAbstraktā klase Lietotāja definēts tips

55

Page 56: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

Vienkāršais atribūts Datu bāzē iekļautais datu tipsVairāku vērtību atribūts Masīvs

Iekļautās tabulasObjektu metodes Lietotāja definēto tipu metodes

Tādā pašā veidā tiek arī definēta asociāciju aizvietošana ar relāciju - objektu datu

bāzes piedāvātajām iespējām. Tabulā 5.2. autoru aprakstītie attēlojumi.5.11. tabula

Lietojuma objektu attiecību - relāciju datu bāzes sasaiste

Objektorientētā tehnoloģija Relāciju objektu datu bāzes vadības sistēmaDivvirzienu asociācija Kompozīcija

AsociācijaAgregācija

Vienvirziena asociācija KompozīcijaAsociācijaAgregācija

N-pakāpes asociācija Tabula – ar atsaucēm uz visiem lietotāja definētajiem datu tipiemLietotāja definēts tips– ar atsaucēm uz visiem lietotāja definētajiem datu tipiem

Asociatīvā klase Tabula– ar atsaucēm uz visiem lietotāja definētajiem datu tipiem

Lietotāja definēts tips– ar atsaucēm uz visiem lietotāja definētajiem datu tipiem

Vispārināšana/Specializācija Lietotāja definēts datu tips katrai klasei hierarhijā

O-ODM pastāvīgais ietvars var apstrādāt gan datus, kuri tiek nodoti Java klašu formā,

gan arī datus, kuri ir noformēti XML struktūrā. Java klašu gadījumā tiek izmantotas

anotācijas, lai transformētu aprakstīto struktūru relāciju - objektu datu bāzes struktūrā.

Savukārt XML dokumenta aprakstošā XSD shēma tika papildināta, lai tajā būtu iespējams

definēt objektorientētas struktūras, kuras iekļauj gan mantošanu, gan objektus, gan metodes

un kolekcijas. Izmantojot Java klases – lietojuma objektu translācija sastāv no diviem soļiem.

Pirmajā solī tiek izveidots jau iepriekš minētais XML dokuments un pēc tam otrajā solī no

iegūtā dokumenta tiek ģenerēta relāciju - objektu datu bāzes struktūra.

56

Page 57: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

6. RELĀCIJU-OBJEKTU DATU BĀZES DATU STRUKTŪRAS

NOVĒRTĒJUMA KRITĒRIJILai izveidotu optimālu relāciju - objektu datu bāzes struktūru, nepieciešams

veidojamo struktūru novērtēt – šos novērtējumus sauc par metrikām. Tāpat, izmantojot

metrikas, ir iespējams prognozēt nepieciešamos resursus sistēmas uzturēšanai, kā arī dod

iespēju uzlabot sistēmas kvalitāti un pazemināt sarežģītību iegūstamajai relāciju - objektu

datu bāzes shēmai. Zemāka sistēmas, jeb datu bāzes shēmas sarežģītība, arī ļauj turpmāk

vieglāk veikt dažādas izmaiņas sistēmā, tādējādi ietaupot gan cilvēkresursus, gan laiku, gan

naudu, kā arī ir zemāki riski neiekļauties termiņos vai nespēt realizēt nepieciešamās prasības.

Lai metriku iegūtos rezultātus varētu vieglāk apstrādāt, novērtēšanas algoritmi parastie tiek

standartizēti un formalizēti, lai mērījuma rezultātus iegūtu viegli salīdzināmus rezultātus.

Dažādi autori ir apskatījuši dažāda veida metrikas[4,6,7,8,9], lai novērtētu relāciju - objektu

datu bāzes struktūru. Līdzīgi novērtētas tiek arī struktūras objektorientētajās sistēmās.

6.1. Objektorientētās struktūras novērtējuma metrikasJebkuras sarežģītas sistēmas pamatā ir projektēšanas process, bet lai uzlabotu

projektēšanas rezultātu, arī objektorientētās struktūras tiek mērītas ar dažāda veida metrikām.

Iegūtie mērījumi palīdz saprast pētāmo modeli un tā sarežģītību, kā arī noteikt, kuras modeļa

īpašības nepieciešams pamainīt, lai iegūtu vienkāršāku, vieglāk uzturamu un saprotamu

struktūru. Lai novērtētu objektorientētas sistēmas modeli, tiek izmantotas metrikas, kuras

attiecina uz: klasi, sasaisti, kohēziju , iekapsulēšanu, mantošanu, polimorfismu un atkārtotu

izmantošanu [8].

Klases metrikas – mēra sistēmā izmantotos atribūtus un metodes, kā arī klases

sarežģītību:

Atribūtu skaits klasē (Number of Attributes per Class (NOA)) – attēlo kopējo

atribūtu skaitu, kurš definēts klasē.

Klases metožu skaits (Number of Methods per Class(NOM)) – šī metrika mēra

kopējo metožu skaitu, kuras ir definētas klasē.

Svērtās klašu metodes Weighted Methods per Class (WMC) – ir visu klases

metožu sarežģītību summa. Lai šo metriku pielietotu, ir jānormalizē visas

metodes tā, lai vienkāršākā no tām būtu ar koeficientu 1. Attiecīgi

57

Page 58: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

sarežģītākām metodēm koeficients būs lielāks un koeficientu summa būs

klases visu metožu sarežģītības skaitliskā vērtība.

Klases atbilžu skaits (Response For a Class (RFC)) – tiek uzskaitītas visas

metodes, kuras var tikt izsauktas, ja izsauc kādu no klases metodēm. Svarīgi

pieminēt, ka šeit tiek pieskaitītas klāt arī saistīto objektu metodes. Piemēram,

ja ir Objekts Grāmata, un objektam ir divas metodes: iegūtAutorus un

iegūtPārdevējus, kuras savukārt izsauc metodes no objektiem Autori un

Pārdevēji, tad Objekta Grāmata atbilžu skaits ir summa no visu objektu

metodēm.

Atkārtošanās metrikas – Objektorientētā sistēmā atkārtošanās palielina sistēmas

sarežģītību samazina iekapsulēšanu, iespējamu funkcionalitātes atkārtotu izmantošanu

kā arī palielina sistēmas sarežģītību un padara to grūtāk uzturamu.

Objektu īpašību atkārtošanās (Coupling Between Objects (CBO)) – starp

diviem objektiem atkārtošanās tiek identificēta tad, ja viena objekts izmanto

cita objekta atribūtus vai metodes.

Datu abstrakcijas atkārtošanās (Data Abstraction Coupling (DAC)) – šī

metrika mēra lietotāja definētos datu tipus – sauktus arī par abstraktajiem datu

tipiem, un to atkārtošanos objektos.

Ziņojumu atkārtošanās ( Message Passing Coupling (MPC)) – autori šo

metriku ir definējuši kā „ziņojumu skaitu, kurš tiek nosūtīts”. Piemēram, ja

objektam A ir divas metodes, kuras izsauc vien uun to pašu objekta B metodi,

tad tā ir ziņojumu atkārtošanās.

Atkārtošanās indekss (Coupling Factor (FC)) –tiek mērītas visas iepriekš

minētās atkārtošanās. Šim indeksam ir jābūt pēc iespējas mazākam –

objektorientētajā pieejā viens objekts izsauc cita objekta metodes un tiek

nodoti dati starp objektiem, tāpēc indeksa vērtība nekad nebūs vienāda ar 0.

Kohēzijas metrikas –

Kohēzijas trūkums metodēs (Lack of Cohesion in Methods (LCOM)) – mēra

atšķirības starp metodēm un izmantotajiem instances mainīgajiem un metožu

parametriem. Jo zemāka šī vērtība, jo mazāka klases cohesive.

Ciešā klases kohēzija (Tight Class Kohēzija(TCC)) – definēta kā procentuālā attiecība

starp klases publisko metožu pāriem pret kopīgo atribūtu lietojumu metodēs.

58

Page 59: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

Piemēram ir klase Klients un ir definētas četras metodes:

pievienot_klientu(klienta_id, vards,uzvards,adrese)

dzest_klientu(klienta_id)

meklēt_pēc_vārda(vards)

meklēt_pēc_uzvārda(uzvārds)

Šai gadījumā kopā ir 6 metožu pāri un 3 gadījumi, kad tiek koplietoti metodes

atribūti. Metode – pievienot_klientu koplieto atribūtus ar visām pārējām metodēm.

TCC tiek iegūts sekojoši 3/6*100= 50

Nenoteiktā klases kohēzija (Loose Class Cohesion(LCC)) – līdzīgi kā ciešā klases

kohēzija, bet šeit vērā tiek ņemtas arī metodes un parametri, kuri nav tieši saistīti.

Informācijas plūsmas kohēzija (Information Flow Based Cohesion (IFBC)) – šis

rādītājs parāda , cik klases metodes izsauc viena otru un ir savā starpā saistītas. Ja

klasei A ir metode B un no metodes B tiek izsaukta tās pašas klases A metode C, tad

šeit tiek diagnosticēta informācijas plūsmas kohēzija un ir viena saite starp metodēm.

Mantošanas metrikas – kopā tiek izšķirtas četras dažādas mantošanas metrikas

objektorientētajā struktūrā.

Mantošanas koka dziļums (Depth of inheritance tree ( DIT)) –tiek mērīts soļu skaits,

kurš ir nepieciešams, lai no vecāka mezgla nokļūtu līdz zemākā bērna mezglam, kur

katrs solis ir saite starp diviem blakus esošiem mezgliem(klasēm) mantošanas kokā.

Bērnu skaits (Number of Children (NOC)) – NOC ir skaitlis, kurš raksturo klases

tiešo apakšklašu skaitu klases hierarhijas kokā.

Metožu mantošanas faktors (Method Inheritance Factor (MIF)) un Atribūtu

mantošanas faktors (Attribute Inheritance Factor (AIF)) nosaka klasē definēto

metožu/atribūtu skaita attiecību pret klases mantoto metožu/atribūtu skaitu.

Polimorfisma faktors (Polymorphism Factor (PF)) – raksturo metožu pārklāšanos

mantošanas kokā.

Atkārtotas izmantošanas metrikas – palīdz noteikt un izmērīt, kādā mērā ir iespējams

izmantotos objektus izmantot atkārtoti citām vajadzībām vai citai funkcionalitātei.

Atkārtotā izmantošanas indekss (Reuse Ratio (U))– attiecība starp kopējo superklašu

skaitu un kopējo klašu/objektu skaitu projektā.

Specializācijas indekss (Specialization Ratio (S)) – apakšklašu attiecība pret

superklasēm.

59

Page 60: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

6.2. Relāciju - objektu datu bāzes struktūras novērtējuma metrikasArī projektējot relāciju - objektu datu bāzi, dažas no struktūras metrikām tiek aizgūtas

no objektorientētajām metrikām. Par metriku ietekmējošiem faktoriem tiek uzskatīti tabulas

izmērs, metožu sarežģītība, kohēzija starp objektiem,objektu sasaiste, mantoto atribūtu skaits,

asociāciju leņķis un dziļums relāciju kokā.

Justus un Iyakutti[4] definēja sekojošas metrikas relāciju - objektu datu bāzei:

Tabulas izmērs (TS – table size): tas attēlo summāro tabulas kolonnu izmēru, ņemot

vērā gan vienkāršās kolonnas, kuras satur pamata datu tipus, gan arī kompleksās

kolonnas, kurās tiek glabāti lietotāja definētie tipi (UDT). Jo lielāka ir šī skaitliskā

vērtība, jo lielākas ir uzturēšanas izmaksas. Skaitliskā vērtība tiek iegūta:

µ ir metrikas funkcija, SC attēlo vienkāršās kolonnas un to skaitu, CC ir kompleksās

kolonnas un to skaits.

Metožu sarežģītība ( Complexity of Weighted Methods - CWM): attēlo visu metožu

sarežģītību summu. To aprēķina:

Ci ir metodes i sarežģītība

Kohēziju starp metodēm (Cohesion between methods): Mēra metožu līdzību un tā tiek

mērīta kā proporcija starp līdzīgiem izmantotajiem atribūtiem metodes un klases pilno

atribūtu skaitu. Augsta līdzība palīdz sagrupēt līdzīgās metodes kopā. Zema līdzība

var radīt negatīvu ietekmi uz uzturēšanas izmaksām un resursiem. To rēķina sekojoši:

I ir parametru skaits klasē un V ir kopējais atribūtu skaits klasē.

Objektu sasaiste (Coupling between Objects(CBO)): šī metrika attēlo divu dažādu

klašu divu metožu atkarību vienai no otras. Jo vērtība zemāka, jo lielāki ir ieguvumi

un mazākas iespējamās uzturēšanas problēmas.

Minvj ir izsaukto metožu skaits un vidējais argumentu skaits katrā izsaukumā.

Saistīto parametru skaits: attēlo, cik parametrus bērns manto no sava vecāka.

To aprēķina sekojoši:

60

Page 61: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

Kur Mj=[tipu skaits * CWM]+[metožu skaits *]

Asociāciju leņķis (referential degree)(RD): raksturo ārējo un referso atsauču summāro

rezultātu.

Dziļums relāciju kokā ( Depth in Relational Tree) : atspoguļo garāko ceļu starp

diviem objektiem objektu hierarhijas kokā. Tas tiek rēķināts:

, kur d ir attālums starp saistītājām tabulām vai objektiem.

Lai būtu iespēja iepriekš definētās metrikas izmantot, tika piedāvātas sekojošas metrikas

novērtējuma vienības:

Kolonnas sarežģītība (clm), kura tiek izmantota TS (tabulas izmēra) metrikā. Tālāk

jau balstoties uz šo iegūto vērtību ir iespējams spriest, kādas varētu būt uzturēšanas

izmaksas.

Darbības ar parametriem (Number of interactions per variables set ) I/vs tiek

izmantota , lai izteiktu kohēzijas metriku.

Importēto vai eksportēto ziņojumu skaits vienā mijiedarbībā. To izmanto, lai

aprēķinātu sasaisti

„laxity” vienība, kuru izmanto atkārtotās izmantojamības metrikā (NIP). Šī metrika

nosaka, cik liela iespēja ir pielietot jau esošās klases citās klasēs vai tipos.

Autori arī ir izstrādājuši rīku, kurš automātiski šīs visas metrikas spēj iegūt.

61

Page 62: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

7. VEIDŅA VADĪTA RELĀCIJU-OBJEKTU DATU BĀZES

PROJEKTĒŠANAS AUTOMATIZĀCIJAS PROTOTIPSApskatītajos autoru darbos aprakstītas procedūras, kā iegūt relāciju - objektu datu

bāzes loģisko modeli. Eksperimentos arī tiek pierādīts, ka iegūtais modelis ir atbilstošs

sākotnējam konceptuālajam modelim un visas saites starp objektiem tiek saglabātas. Bet šīm

procedūrām ir viens būtiskstrūkums – tās ir realizētas tā, lai tiktu iegūts viens modeļa

variants. Tāpēc ir iekļauti papildus noteikumi, lai to nodrošinātu. Līdz ar to tiek iegūta viena

datu glabāšanas struktūra no iespējamo struktūru kopas. Vai tā būs labākā? Droši vien nē.

Tāpēc projektētājam jādod iespēja izvērtēt iegūtās struktūras un izvēlēties labāko. Tātad

projektēšana jārealizē kā iteratīva procedūra, lai datu bāzes struktūras projektētājs varētu

atlasīt labāko. Atlasē tiek izmantoti gan subjektīvi, gan objektīvi kritēriji. Dažos gadījumos

lietotājam prioritāri ir salikti objekti, citreiz vienkārši. Ir situācijas, kad nepieciešams saistītos

objektus glabāt pie augšējā līmeņa objekta, bet ir situācijas, kad pareizāka realizācija ir glabāt

tikai atsauces uz objektiem. Tāpat arī – transformācijas 1:N ir iespējams glabāt kā iekļautās

tabulas, gan arī kā savstarpēji sasaistītas tabulas ar objektiem. Automātiski to

viennozīmīginevar novērtēt, jo tas ir atkarīgs no sistēmas specifikas, glabājamajiem datiem

un konkrēto objektu īpašībām. Tāpēc liels ieguvums varētu būt lietotāja iesaistīšana

struktūras transformēšanas procesā veidojot relāciju-objektu datu bāzi.

Apskatītajos piemēros netika apskatīta objektu metožu veidošana. Tiek veidotas tikai

datu glabāšanas struktūras. Arī metožu veidošana transformācijas procesā atvieglotu darbu ar

iegūto relāciju - objektu datu bāzes sistēmu. Strādājot ar relāciju - objektu datu bāzi, kā viena

no neērtībām ir tā, ka objektam pēc noklusējuma tiek izveidota konstruktora metode, kurai

vienmēr ir jānorāda visi parametri, lai izveidotu objektu. Ir gadījumi, kad tas nav

nepieciešams, un dažas parametru vērtības varētu tikt piešķirtas pēc noklusējuma principa.

Jaunu konstruktora metožu definēšana atrisinātu šo neērtību un būtu iespējams definēt

konstruktora metodi tikai ar nepieciešamajiem objekta atribūtiem. Tapāt arī liels ieguvums

būtu arī objekta metožu šablonu definēšana – objekta metodes nosaukums un izmantotie

atribūti. Metožu ķermeņu definēšana gan ērtāka ir izmantojot datu bāzes pārlūkprogrammas.

Veidojot relāciju - objektu datu bāzi no konceptuālā modeļa, reizēm ir nepilnīgi veikta

modeļa veidošana. Objektu atribūtu papildināšana transformācijas procesā ļautu papildināt

62

Page 63: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

veidojamos objektus ar jauniem atribūtiem – šeit gan jāņem vērā, ka varētu tikt pievienoti

tikai atribūti ar iekļautajiem datu tipiem.

Jaunajā projektēšanas rīkā būs iegūstami relāciju - objektu datu bāzes struktūras

novērtējumi dažās no apskatītājām metrikām. Tas palīdzētu novērtēt, vai kāds no objektiem

nav pārāk sarežģīts un vai nav uzmodelētas pārāk dziļas hierarhijas struktūras starp

objektiem, kas varētu apgrūtināt iegūtās datu bāzes struktūras lietošanu un funkcionalitātes

izstrādi. Balstoties uz visu iepriekš minēto, jaunajam rīkam jānodrošina sekojošas iespējas:

veidot jaunas konstruktora funkcijas tipiem;

dzēst/pievienot jaunus atribūtus;

pievienot jaunas procedūras/funkcijas;

izvēlēties sasaistes veidu – viens pret vienu, viens pret daudziem, daudzi pret

daudziem, mantošana, agregācija, kompozīcija;

attēlo shēmas sarežģītību ņemot vērā dažas no metrikām (mantošanas dziļums,

tabulas izmērs, sarežģītība).

7.1. Konceptuālā modeļa izveideLai varētu veikt kvalitatīvu relāciju - objektu datu bāzes projektēšanu, jānodrošina

iespēja datu bāzē iekļautos objektus attēlot vizuāli. Tādējādi objektus un to saites ir vieglāk

uztvert un izprast, kādas izmaiņas ir veicamas, lai izveidotu vēlamo datu bāzes modeli.

Konceptuālā modeļa veidošanas mehānisms tiek veidots no jauna – netiek izmantoti jau

gatavi risinājumi, līdz ar to ir iespējams projektēšanā iekļautos elementus izvēlēties pēc

nepieciešamības un ieviest tikai tos, kuri ir nepieciešami. Pamata elementi ir aizgūti no

iepriekšējās nodaļās aprakstītās UML modelēšanas valodas. Tie ir klase, atribūti, metodes un

dažāda veida sasaistes starp objektiem. Lai paplašinātu modelēšanas iespējas un ieviestu

jaunu funkcionalitāti, metožu definēšana tiek sadalīta divās daļās. Viena no daļām atbild par

objekta konstruktora metožu veidošanu, otra daļa - par objektiem specifisku metožu

definēšanu, kuras pielietojot tiek manīts objekta stāvoklis. Kā jauna pazīme klasei tiek

pievienota arī iespēja pievienot klases aprakstu, no kura automātiski tiks ģenerēta statiskā

metode, lai datu bāzē izgūtu objekta aprakstu. Tas ir līdzīgi, kā programmēšanas valodā Java,

kad ir iespējams izveidot klases dokumentāciju balstoties uz klases aprakstu – atribūtiem un

metodēm.

63

Page 64: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

7.2. Lietotāja definētas konstruktora funkcijasObjektorientētajai pieejai galvenā iezīme ir tā, ka ir nepieciešams iniciēt objektu –

izveidot klases eksemplāru, lai pēc tam būtu iespējams ar to strādāt.Eksemplāra izveidošanu

nodrošina konstruktora funkcijas. Tās, veidojot objekta tipu, tiek izveidotas pēc noklusējuma.

Tomēr ir situācijas, kad pēc noklusējuma izveidoto konstruktora metodi nav ērti izmantot –

definēti pārāk daudzi atribūti, kuri pie eksemplāra iniciēšanas nav nepieciešami. Kā viena no

situācijām, kad dažus no atribūtiem nav nepieciešams aizpildīt pie objekta eksemplāra

iniciēšanas, ir objekta atribūti, kuri attēlo objekta pēdējo mainītāju un maiņas datumu

(relāciju datu bāzē bieži šie lauki tiek izmantoti, lai redzētu, kuri lietotāji un kad ir veikuši

izmaiņas datu rindās). Izveidojot objekta tipu, noklusētā konstruktora funkcija tiek izveidota,

izmantojot visus objekta tipa atribūtus. Piemēram, veidojot tipu AUGI_typ un kā atribūtus

norādot nosaukumu, aprakstu, attēlu, izveidošanas datumu un labošanas datumu, vienīgā

iespēja izveidot objekta eksemplāru, ir izsaukt konstruktora funkciju norādot visus iepriekš

minētos atribūtus.create or replace type AUGI_typ as object(

nosaukums varchar2(200 char) ,

apraksts varchar2(200 char) ,

attēls blob ,

created date,

modified date);

insert into AUGI values (AUGI_typ('Alveja','Alveja tiek

izmantota....',null,sysdate,null));

Šajā situācijā, veidojot objekta eksemplāru, tiek norādīts nosaukums, apraksts un

izveidošanas datums. Attēls un ieraksta modificēšanas laiks šajā brīdī vēl nav zināms,

veidojot objektu, tāpat ir jānorāda vērtības. Ja objekts ir komplekss un satur daudz atribūtus,

tas var sagādāt neērtības. Lai šo problēmu atrisinātu, veidojot objekta tipu, var norādīt arī

konstruktora funkciju ar nepieciešamajiem atribūtiem. Konstruktora funkcijas apraksts ir

jāpievieno objekta tipa veidošanas komandai. Kā atribūti tiek norādīti nosaukums un

apraksts. create or replace type AUGI_typ as object(

nosaukums varchar2(200 char) ,

apraksts varchar2(200 char) ,

attēls blob ,

created date,

64

Page 65: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

modified date,

CONSTRUCTOR FUNCTION AUGI_typ(nosaukums varchar2,apraksts varchar2)

RETURN SELF AS RESULT);

Veidojot konstruktora funkciju, gan jāņem vērā, ka nepieciešams funkciju aprakstīt arī

tipa ķermenī. Svarīgi atzīmēt, ka pēc noklusējuma izveidotā un izmantojamā konstruktora

funkcija nav redzama objekta tipa ķermenī un ir izmantojama, neizveidojot objekta tipa

ķermeni. Kā arī – pēc specifiskas konstruktora funkcijas izveidošanas, tiek saglabāta arī

iespēja izmantot noklusēto konstruktora funkciju. CREATE OR REPLACE

TYPE BODY AUGI_TYP AS

CONSTRUCTOR FUNCTION AUGI_typ(nosaukums varchar2,apraksts varchar2)

RETURN SELF AS RESULT

AS

BEGIN

SELF.nosaukums:=nosaukums;

SELF.apraksts:=apraksts;

SELF.created:=sysdate;

RETURN;

END;

END;

insert into AUGI values (AUGI_typ('Arekas palma','Arekas rieksti

satur....'));

Tipa ķermenī konstruktora funkcijā tiek aprakstīts, kādas darbības ir veicamas,

iniciējot klases eksemplāru. Apskatītajā piemērā objekta tipam tiek piešķirts nosaukums un

apraksts no objekta eksemplāra veidošanā norādītajām vērtībām un automātiski tiek aizpildīts

arī izveidošanas laiks – lauks „created”. Šādā veidā nav nepieciešams izmantot trigerus vai

kādus citus mehānismus, kā norādīt izveidošanas laiku. Tas tiek paveikts konstruktora

funkcijā un, iniciējot objekta eksemplāru, nav jānorāda visi atribūti, kuru vērtības tajā brīdī

vēl nav zināmas.

Automatizēt konstruktora funkciju ģenerēšanu var ieviešot mehānismu, kurš nodrošina

iespēju katram objektu tipam norādīt, kuri no atribūtiem ir izmantojami (7.45. att.).

65

Page 66: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

7.45. att. Konstruktora funkciju definēšana

Attēlā parādīts ekrāns, kurā notiek konstruktora funkciju un to atribūtu izvēle. Tiek

izmantota objektorientētās pieejas iespēja definēt metodi ar vienu nosaukumu, bet ar dažādu

skaitu parametriem. Tā kā viena objekta visām konstruktora funkcijām nosaukumi ir vienādi,

tad atsevišķa iespēja izvēlēties konstruktora funkcijas nosaukumu nav nepieciešama. Ir

nepieciešama iespēja pievienot vai dzēst konstruktora funkciju. Jānodrošina arī iespēja

izvēlēties, kuri parametri tiks iekļauti konstruktora funkcijas definīcijā – kurus atribūtus

izmantos, iniciējot objekta eksemplāru. Tiek nodrošināta arī iespēja izvēlēties vērtības pēc

noklusējuma brīvi izvēlētiem atribūtiem.

7.3. Lietotāja definēti šabloni objektu metodēmRelāciju objektu datu bāzē darbs pamatā notiek ar izveidotajiem objektu eksemplāriem,

kuri izveidoti no objektu tipa. Lai to būtu iespējams veikt, ir jāizveido dažādas objektu

metodes, kuras mainītu objekta stāvokli un uzvedību – mainītu atribūtu un saistīto objektu

atribūtu vērtības. Vienīgais veids, kā izveidot metodi, ir norādīt metodes aprakstu un ķermeni

objekta tipā. Ieviešot automātiskus šablonus, datu bāzes projektētājam būtu iespēja šādas

metodes datu bāzē nerakstīt no jauna, bet jau izmantot ģenerētās metodes – tās būtu tikai

66

Page 67: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

jāpapildina ar nepieciešamo funkcionalitāti. Atšķirībā no iepriekš apskatītās konstruktora

funkciju definēšanas iespējas, objektu metodēm un funkcijām gan ir nepieciešams norādīt arī

nosaukumu un atkarībā no veida, arī to, vai tiks atgriezts kāds datu tips (7.46. att.).

7.46. att. Objektu metodes

Objekta procedūru definēšana savukārt ir līdzīga funkciju definēšanai, vienīgā atšķirība

ir tā, ka netiek norādīts atgrieztais datu tips. Relāciju objektu datu bāzē gan funkcijas, gan

procedūras tiek aprakstītas tāpat kā jau apskatītās konstruktora funkcijas. Veidojot objekta

tipu, ir jānorāda funkcijas vai procedūras apraksts – nosaukums, ieejas parametri un funkcijas

gadījumā atgriežamais datu tips. Objekta tipa ķermenī ir jānorāda funkciju un procedūru

implementācija tieši tāpat, kā tas ir konstruktora funkcijām.

7.4. Konceptuālā modeļa un transformāciju datu glabāšanas datubāzes

struktūrasVeicot fizikā modeļa ģenerēšanu no konceptuālā modeļa, ir nepieciešamas datu bāzes

struktūras, kurās saglabāt visus izveidotos konceptuālā modeļa elementus un arī

transformācijas, kā no loģiskā modeļa tiek iegūts fiziskais modelis. Šim nolūkam tiek

67

Page 68: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

izmantota relāciju datu bāze. Tiek izveidotas atbilstošas tabulas, kur glabāt visus

nepieciešamos elementus, kā arī transformāciju veidus. Lai saglabātu visas realitātes, kuras

tiek transformētas relāciju - objektu datu bāzes struktūrā, kā arī visus realitātei piederošos

atribūtus, tiek izveidotas tabulas objektiem (7.47. att.) un atribūtiem (7.48. att.). Realitātes

aprakstošie atribūti ir realitātes nosaukums („NAME”), dziļums mantošanas kokā

(„INHERITANCELEVEL”), ja realitāte ir sasaistīta ar citām realitātēm, izmantojot

mantošanas asociāciju. Kā atribūti ir iekļauti arī realitātes apraksts („DESCRIPTION”) – kurā

glabājas informācija, kam ir domāta realitāte un kādus datus datu bāzē saturēs saistītais

izveidotais relāciju datu bāzes objekts. Transformācijas procesā, izmantojot šo atribūtu, tiek

ģenerēta objekta tipa statiskā metode, kuru izsaucot tiek izvadīts objekta apraksts. Realitātei

arī ir pievienota pazīme – „IS_AUTO”, kura nozīmē to, vai realitāte ir izveidota

transformācijas ceļā, vai arī to ir izveidojis lietotājs, kurš ir definējis transformējamo

konceptuālo modeli. Pazīme – „IS_TABLE” norāda to, vai šo realitāti noteikti ir

nepieciešams pārveidot uz objektu tabulu. Transformējot realitāti, var veidot objektu tabulu,

vai arī iegūto objektu glabāt citā objektā. Katrai realitātei ir arī lauki „TYPE_H” un

„TYPE_B”, kuros tiek saglabāts ģenerētais objekta tips un objekta tipa ķermenis. Visas

veidotās tabulas arī iekļauj primāro atslēgu – tā ir kolonna „ID”.

7.47. att. Realitātes tabula

Realitāšu tabula ir cieši saistīta ar realitāšu atribūtu tabulu, tajā tiek norādīta saite uz

realitāti, kolonna („EID” – EntityID), kā arī visi realitātei definētie atribūti, to tipi un izmērs,

ja tiek izmantots pēc noklusējuma piedāvātais datu tips. Transformācijas ceļā ir iespējams, ka

tiek pievienoti jauni atribūti, kuru tips ir kāds no izveidotajiem objekta tipiem, tādā gadījumā

atribūta izmērs netiek norādīts.

68

Page 69: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

7.48. att. Realitātes atribūti

Kā nākamās svarīgākās tabulas ir pašu saišu definēšanas tabulas. Datu bāzes līmenī

tās tiek nosauktas par transformācijas tabulām. Transformāciju definīcijas tiek glabātas divās

tabulās, viena no tām ir tabula, kur glabājas transformācijas tips, jeb saites veids. Iespējamie

sasaistes veidi ir viens pret vienu, viens pret daudziem, daudzi pret daudziem, mantošanas

saite, kompozīcija un agregācija.

7.49. att. Transformāciju aprakstošā tabula

Otra izveidotā transformāciju jeb saišu tabula ir tabula, kurā tiek glabāts definēto saišu

pārveidošanas veids.

7.50. att. Transformāciju detaļu tabula

Ir definēti kodi, kuri nosaka, kā transformācija ir veicama un katrai transformācijai ir

piesaistīts ieraksts no transformāciju tipu tabulas. Kopā transformācijas tips un

transformācijas kods definē, kādā veidā tiek transformētas realitātes. Daži no definētajiem

tipiem ir:

INCLREF - nozīmē, ka izveidotais objekta tips iekļauj sevī saistītā objekta

atsauci;

SEPREF – apraksta, ka izveidotais objekta tips nesatur sevī saistītā objekta

atsauci, atkarībā no tā – vai jāveido tabula vai nē. Atsauci var saglabāt tabulas

kolonnā vai arī tiek veidota jauns objekta tips, uz kura bāzes tiek veidota

69

Page 70: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

tabula, lai turpmākās sasaistēs izveidotajam tipam būtu iespējams veidot

sasaistes – tiktu izveidota objektu rindu tabula;

INCLUDE – savukārt nozīmē, ka viens objekts tiek iekļauts citā objektā –

pamatā tiek izmantos kompozīcijas saitēs vai arī saitēs viens pret daudziem,

kad kā sasaistes veids tiek izmantota iekļautā tabula.

Saites starp realitātēm savukārt tiek aprakstītas transformāciju tabulā (7.51.att.). Šī

tabula satur informāciju par to, kāda veida transformācija ir definēta starp realitātēm

(atsauces uz transformācijas aprakstu un detaļām), kā arī atsauces uz saistītajām realitātēm.

Kolonna „RESULT_CODE” tiek izmantota, lai saglabātu transformācijas starprezultātus.

Tāpat ir arī kolonna, kura raksturo to, vai transformācija ir apstrādāta. Svarīga pazīme ir arī

atribūta „AUTO_GEN” vērtība, kura nozīmē, vai transformāciju ir definējis lietotājs,

izmantojot dialogus un veidņus, vai arī transformācija ir veidojusies realitāšu pārveidošanas

procesā. Tas notiek gadījumos, kad tiek izveidota jauna realitāte, izmantojot jau esošās, un

notiek saišu aizvietošana, lai aprakstītu jaunās realitātes asociācijas ar citām realitātēm.

7.51. att. Transformācijas

Tā kā tiek nodrošināta arī iespēja konfigurēt konstruktora funkciju, objekta funkciju

un objekta procedūru šablonu veidošanu, tad arī šai funkcionalitātei ir izveidotas atbalsta

tabulas. Katram no objekta metožu veidiem (konstruktora funkcija, objekta funkcija, objekta

procedūra) ir izveidots tabulu pāris – aprakstošā daļa vai galvene, kā arī detalizācija.

Konstruktora funkciju galvenes tabulā (7.8. att.) tiek glabāta informācija par to, kurai no

realitātēm tiek definēta minētā funkcija, kā arī ir nodrošināta konstruktora funkcijas

aprakstošās daļas un izveidotā ķermeņa apraksta saglabāšana. Papildus tam ir arī atribūts,

kurš nosaka, vai konstruktora funkcijas ģenerēšana ir pabeigta. Detalizācijas apraksts (7.9.

att.), savukārt, ietver tikai konstruktora funkcijas un iesaistīto atribūtu sasaisti, lai ģenerējot

70

Page 71: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

šablonus, būtu avots, kurā ir definēti katrai konstruktora funkcijai definētos parametrus. Kā

jau iepriekš tika minēts, tad konstruktora funkcijai nav nepieciešams definēt nosaukumu. Tas

ir vienāds ar izveidotā objekta tipa nosaukumu.

7.52. att. Konstruktora funkcijas apraksts

7.53. att. Konstruktora funkcijas detalizācija

Līdzīgā veidā ir aprakstītas arī objekta funkciju un objekta procedūru apraksta

glabāšanas struktūras. Detalizācijas līmenī būtisku atšķirību nav, izmaiņas ir tikai

aprakstošajā daļā. Kā redzams attēlā (7.54. att.), tad atšķirīgais ir tas, ka nāk klāt procedūras

un funkcijas nosaukums, kā arī funkcijai tiek norādīts atgriežamais datu tips.

7.54. att. Funkciju un procedūru apraksts

Kopējā glabāšanas struktūru tabulu un to asociāciju shēma redzama attēlā (7.11. att.).

71

Page 72: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

7.55. att. Glabāšanas struktūras un asociācijas starp tām

7.5. Izmantotiekritēriji struktūras vērtējumamLai novērtētu projektējamo struktūru, nepieciešams izmantot dažādus kritērijus.

Projektēšanas automatizācijas prototipā struktūra tiek vērtētā divos posmos. Pirmo reizi

struktūra tiek vērtēta, veidojot konceptuālo modeli. Pēc tam, kad ir pielietoti visi

transformāciju likumi un iegūta relāciju – objektu datu bāzes shēma, tad struktūra tiek

atkārtoti novērtēta. No visiem iepriekš apskatītajiem kritērijiem struktūras vērtējumam šajā

gadījumā vispiemērotākie ir: tabulas izmērs, atribūtu skaits, mantošanas dziļums, saišu skaits

starp objektiem, kopējais objektu skaits un kopējais tabulu skaits. Daži no šiem kritērijiem ir

pielietojami tikai konceptuālā modeļa izveidē, daži no kritērijiem, savukārt tiek izmantoti

tikai relāciju – objektu datu bāzes struktūras novērtējumam. Līdz ar to tiek iegūtas divas

kritēriju kopas – konceptuālā modeļa kritēriju kopa un relāciju - objektu struktūras kritēriju

kopa. Pirmajā kopā ietilpst kritēriji, kuri tiek pielietoti vērtējot konceptuālo modeli. Tie ir –

atribūtu skaits, mantošanas dziļums, saišu skaits, kopējais objektu skaits. Izmantojot šos

kritērijus, nav iespējams noteikt vai struktūra ir optimāla vai nē, bet kritēriju ieviešana dod

iespēju projektēšanas gaitā iegūt atskaiti par to, vai izmaiņas konceptuālajā modelī sarežģī

modeli vai tieši otrādi – padara to vienkāršāku. Ja konceptuālais modelis sastāv no liela skaita

realitātēm, tad bez kritēriju izmantošanas, sarežģītību ir grūti novērtēt. Arī, ja pie viena

konceptuālā modeļa strādā vairāki cilvēki, tad pēc kritēriju vērtībām ir vieglāk noteikt kāda

72

Page 73: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

veida izmaiņas ir veikusi otra iesaistītā persona. Kā piemērs tiek paņemts konceptuālais

modelis, kurā attēlots augs, tā fiziskās un ķīmiskās īpašības, kā arī novākšanas un žāvēšanas

asociācijas. Augam objektam ir savas auga specifiskās īpašības, kā arī nosaukums, apraksts,

attēls un izplatība. Tāpat augam ir arī vairāki ievākšanas veidi, jo katrs augs var būt ievācams

vairākos laika periodos, piemēram, pavasarī un rudenī, kā arī katram augam ir savas

komponentes, kuras tiek ievāktas. Tās var būt – miza, augļi, sēklas, ogas un citi. Tāpat katrs

augs satur ķīmiskās vielas, kurām ir dažādas īpašības. Vielas var būt gan kaitīgas, gan

veselīgas. Katram augam ir arī specifiski žāvēšanas apstākļi.

7.56. att. Augi - konceptuālais modelis

Konceptuālajā modelī izvēlētie kritēriji ir viegli nosakāmi, jo visas vērtības ir vizuāli

redzamas modelī. Sarežģītāk ir tad, ja modelis ir sarežģīts un vairs nav pārskatāms.

Konkrētajā modelī izvēlētās kritēriju kopas vērtības ir šādas:

Objektu skaits – 14;

Objektu skaits neskaitot iesaisti mantošanas kokā – 9;

Mantošanas kokos esošo objektu skaits neskaitot augšējo līmeni – 5;

Dziļums mantošanas kokā (vidējā vērtība) – 2 ( tiek izmantoti divi mantošanas līmeņi)

Mantošanas koku skaits – 2;

Atribūtu skaits – 26;

73

Page 74: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

Lielākais atribūtu skaits – 4;

Mazākais atribūtu skaits – 1;

Vidējais atribūtu skaits – 26/14 = ~2 atribūti;

Saišu skaits starp objektiem – 14;

Pēc kritēriju aprēķināšanas ir iespējams novērtēt, kuras lietas konceptuālajā modelī

varētu būt pamaināmas. Piemēram, ja ir zināms vidējais atribūtu skaits objektā un

minimālais/maksimālais atribūtu skaits, tad ir iespējams pārbaudīt, vai modeli nav iespējams

padarīt vienkāršāku un kādu no sarežģītākiem objektiem padarīt vienkāršāku sadalot to

vairākās daļās. Kā arī pārbaudīt, vai objekti ar minimālo skaitu atribūtiem vispār ir vajadzīgi

un vai nav iespēja tos pievienot kādam citam no objektiem. Pārbaudot mantošanas koka

vērtības,arī ir iespējams redzēt, vai mantošana nav pārāk dziļa (pārāk dziļš mantošanas koks)

vai pārāk plata (pārāk plats mantošanas koks). Piemēram, ja ir zināms, ka vidējais

mantošanas līmenis ir 2 un ir tikai 3 mantošanas koki, bet mantošanā ir iesaistīti 30 objekti,

tas nozīmē, ka vismaz vienā no mantošanas kokiem vienā līmenī eksistē 10 vai vairāki

objekti. Balstoties uz šo informāciju, ir iespējams pieņemt lēmumu, vai objektus sagrupēt, lai

mantošanā būtu iesaistīti mazāk objektu, vai arī izdalīt jaunus objektu tipus, lai palielinātu

mantošanas koka dziļumu un tādējādi samazinātu mantošanas koka platumu.

Otrajā kritēriju kopā ietilpst tabulas izmērs, kuru aprēķinot, objekta vienkāršajiem un

saliktajiematribūtiem tiek piemēroti koeficienti – tādējādi iegūstot katru objekta rindas tabulu

raksturojošu lielumu. Arī heterogēniem atribūtiem tiek piemērots koeficients. Šajā kopā tiek

izmantots arī kopējo objektu tipu skaits, saišu skaits starp objektu tipiem un iegūto tabulu

skaits. Attēlā (7.13. att.) ir attēlota viena no relāciju – objektu datu bāzes glabāšanas struktūru

realizācijām iepriekš apskatītajam konceptuālajam modelim. Savukārt tabulā (7.1. tabula) ir

minēti struktūrā redzamie apzīmējumi un to skaidrojumi.7.12. tabula

Relāciju - objektu struktūras attēlojumu skaidrojums

Apzīmējums SkaidrojumsVienkāršā tipa atribūts

Relāciju objektu datu bāzes objekts

Atsauce

74

Page 75: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

Tabula

Heterogēna tabula – viena kolonna, dažāda tipa objekti no mantošanas koka

7.57. att. Relāciju – objektu glabāšanas struktūras attēlojums

Redzamajā piemērā ir izmantotas divas tabulas – viena tabula augiem, otra tabula

augu īpašībām. Tā kā īpašības iedalās trīs veidos un tās visi glabājas vienā tabulā, kā arī ir

saistītas gan ar augiem, gan ar augu ķīmiskajām vielām, tad ir nepieciešamas divas saites, lai

sasaistītu īpašības ar saistītajiem objektiem. Tā kā pārējie objekti tiek uzreiz iekļauti citos

objektos, tad vairāk saišu starp objektiem nav. Arī iegūtais tabulu skaits ir divas tabulas, jo

nepieciešams glabāt gan augus, gan arī to īpašības atsevišķās tabulās.

Kritēriju kopas vērtības:

Objektu tipu skaits – 14 (piemērā to nevar redzēt redzēt, jo vērā tiek ņemta arī

mantošana, kura realizācijā ir attēlota kā heterogēnā tabula vai heterogēnā

iekļautā tabula, bet katram objektam konceptuālajā modelī atbilst viens

objekta tips relāciju – objektu datu bāzes struktūrā);

Tabulu skaits -2;

Saišu skaits – 2;

Tabulu sarežģītība – 36/2=18 (izmantotie koeficienti: atribūts – 2, objekta tips

– 4, heterogēna tabula – 8)

Kā viens no alternatīviem struktūras saglabāšanas veidiem ir parādīts attēlā (7.58. att.)

:

75

Page 76: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

7.58. att. Relāciju - objektu struktūra

Atšķirībā no iepriekšējā piemērā – objektu tipu skaits paliek nemainīgs, jo tipu

apvienošana vai sadalīšana nav notikusi, bet ir notikušas citas strukturālas izmaiņas.

Būtiskākā no tām ir tabulu skaita palielināšanās un saišu skaita starp objektu tipiem

palielināšanās. Alternatīvās glabāšanas struktūras kritēriju vērtības:

Objektu tipu skaits – 14 (saglabājas nemainīgs, jo netiek veikta ne objektu sadalīšana,

ne apvienošana);

Tabulu skaits -5 (īpašību glabāšanai šajā gadījumā tiek paredzēta sava tabula katram

īpašību tipam);

Saišu skaits – 4;

Vidējā tabulu sarežģītība – 42/5 = ~8 samazināta tabulu sarežģītība (izmantoti

koeficienti tie paši, bet tā kā palielinās tabulu skaits, tad attiecīgi samazinās

sarežģītība).

Arī šeit viennozīmīgi nav iespējams spriest, kura no pieejām ir labāka un kāda veids

struktūra ir optimāla un ieteicama, bet, veicot dažādus pielāgojumus un glabāšanas struktūru

labojumus, ir iespējams pamainīt kritēriju skaitliskās vērtības un tādējādi iegūt vienkāršāku

datu bāzes modeli. Rezultāts arī atkarīgs no tā – kas ir prioritāte – tabulu skaita un saišu

skaita palielināšana vai arī tieši otrādi – neatkarīgu objektu skaita un tabulu skaita

samazināšana. Savi trūkumi un priekšrocības ir gan vienai gan otrai pieejai atkarībā no

problēmsfēras vajadzībām un nosacījumiem, bet, dodot projektētājam iespēju mainīt

konfigurācijas projektēšanas posmā,tiek nodrošināta relāciju – objektu datu bāzes struktūras

lielāka elastība un pielāgojamība dažādiem reālās dzīves modeļiem.

76

Page 77: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

7.6. Veidņa vadītas sistēmas prototipsPrototips kopumā sastāv no divām lielām komponentēm. Viena no tām ir lietojums ar

grafisko lietotāja interfeisu, kurā veikt konceptuālā modeļa grafisku veidošanu. Otra ir datu

bāze un konceptuālā modeļa transformācijas mehānisms, izmantojot norādītās saites un

aprakstītos transformācijas likumus. Lietojums ar grafisko interfeisu tiek veidots izveidojot

JAVA FX tehnoloģiju. Java tiek izvēlēta tāpēc, ka tā ir viena no populārākajām izstrādes

tehnoloģijām un tā ir bagātīga ar dažādiem paplašinājumiem, kuri ļoti nozīmīgi atvieglo

izstrādes procesu. Prototipam ir jānodrošina konceptuālā modeļa attēlojums grafiski un arī

struktūras veidā. Izstrādājot prototipu, tika izvēlēta XML attēlojumu struktūra, līdz ar to,

viens no lietojuma paneļiem satur arī informāciju par realitātēm, atribūtiem, funkcijām un

saitēm. Prototipa viens no vēlamajiem attēlojumiem parādīts attēlā (7.15. att.)

7.59. att. Prototipa lietotāja interfeiss

Attēlā parādīta koka struktūra, kurā attēlotas realitātes, kā arī realitātes tiek attēlotas

vizuāli un ir iespēja tās brīvi pārveidot, mainīt to īpašības, kā arī dzēst un veidot sasaistes.

Procedūru, funkciju un konstruktora funkciju veidošanas un labošanas lietotāja grafiskais

interfeiss apskatīts iepriekš attēlā (7.1 att.) un attēlā (7.2 att.) Visi attēlā redzamie elementi

attiecīgi tiek saglabāti 7.4 nodaļā aprakstītās datu bāzes struktūrās. Atbilstošie ieraksti datu

bāzē izskatās sekojoši:

77

Page 78: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

7.60. att. Konceptuālā modeļa realitāšu attēlojums

7.61. att. Konceptuālā modeļa atribūtu attēlojums

Tādā pašā veidā jau iepriekš aprakstītajās struktūras tiek saglabātas konstruktora

funkcijas konfigurācija, objekta funkciju konfigurācija un objekta procedūru konfigurācija.

Arī saišu tabulā tiek definēts, kādas saites starp objektiem eksistē. Sākot transformācijas

procesu, projektētājam dialogu veidā tiek uzdoti jautājumi, kuras saites un kādā veidā

saglabāt datubāzē. Vienkāršots shematisks saišu attēlojums starp realitātēm:

7.62. att. Realitāšu saites - vienkāršots attēlojums

Transformāciju apstrādes algoritms atspoguļots attēlā (7.63. att.). Vispirms tiek

apstrādāta pēdējā sasaiste starp realitātēm. Transformācijas rezultātā tiek iegūts kāds objekta

tips un/vai tabulas veidošanas sql komanda. Otrajā solī, savukārt tiek apstrādāta otrā saite

starp objektiem un tiek iegūts jauns objekta tips ar iepriekš definēto relāciju - objektu datu

bāzes sasaistes veidu. Pirms transformāciju saišu apstrādes, vispirms tiek izveidotas visas

konstruktora funkcijas, procedūras un objekta tipu funkcijas. Izpildot datu bāzes procesu

definētajām realitātēm un to konfigurācijām tiek iegūtas nepieciešamie pl/sql koda fragmenti.

Piemēram, ģenerētās konstruktora funkcijas izskatās redzamas attēlā (7.20. att.).

78

Page 79: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

7.63. att. Transformāciju algoritms

7.64. att. Ģenerētās konstruktora funkcijas

Kā redzams attēlā, tad tiek izveidota gan konstruktora funkcijas definīcijas galvene,

kā arī definīcijas ķermenis. To arī var redzēt, pēc attēlotajiem pl/sql koda gabaliem. Identiskā

veidā tiek apstrādātas pilnīgi visas realitātes un no visām iepriekš definētajām konfigurācijām

tiek saģenerēti pl/sql koda daļas. Pēc tam, kad visas daļas ir saģenerētas, no šiem koda

gabaliem arī tiek izveidota katras atbilstošās realitātes objekta tipa galvene un arī objekta tipa

ķermenis. Kad transformācijas process ir pilnībā pabeidzis darbu, tiek iegūtas relāciju-objektu

struktūras, kuras pirms tam tika norādītas konceptuālajā modelī. Apskatītā piemēra ģenerētie

objekta tipu galvenes redzamas attēlos - 7.21. attēlā. , 7.22. attēlā. un 7.23. attēlā:

79

Page 80: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

7.65. att. Realitāte_3 objekta tipa galvene

Kā redzams saišu attēlojumā, tad starp „realitāte 2” un „realitāte 3” ir definēta saite

viens pret vienu ar tipu INCLREF – tas nozīmē, ka „realitāte 2” iekļaus atsauci uz „realitāte

3”. Līdz ar to, tas nozīmē, ka no „realitāte 3” tiek izveidots objekta tips un no šī tipa tiek

veidota tabula ar rindas tipa objektiem, lai būtu iespējams norādīt atsauci (to iespējams

norādīt tikai uz rindas tipa objektiem). Šajā gadījumā „realitāte 3” atbilst gan objekta tips, gan

arī tabula, kas veidota par pamatu ņemot „realitāte 3”.

7.66. att. Realitāte_2 objekta tipa galvene

Veidojot „realitāte 2” tipa ķermeni, tiek norādīta atsauce uz „realitāte 3” izveidoto

objekta tipu. Nākamā saite starp realitātēm ir definēta kā saite – viens pret vienu ar tipu

INCLUDE. Tas nozīmē, ka „realitāte 1” iekļaus sevī „realitāte 2”. Vizuāls objektu attēlojums

redzams attēlā (7.19. att.). Transformācijas procesa solī tas nozīmē, ka pie „realitāte 1”

atribūtiem tiek automātiski pievienota „realitāte 2” ar tipu „realitāte 2_typ”. Kā arī katrai no

realitātēm tika definētas objekta funkcijas, objekta procedūras vai arī konstruktora funkcijas

izmantojot nodaļā 7.4. aprakstītās datu bāzes struktūras, kuras arī redzamas uzģenerētajās

objekta tipu galvenēs.

80

Page 81: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

7.67. att. Realitāte_1 objekta tipa galvene

81

Page 82: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

SECINĀJUMIDarba izstrādes gaitā, veicot datu bāzes projektēšanas mehānismu un tehnoloģiju

analīzi, kā arī iepazīstoties ar relāciju datu bāzes un relāciju – objektu datu bāzes

priekšrocībām un trūkumiem, autors ir nonācis pie šādiem secinājumiem:

1. Paplašinātais realitāšu saišu(EER) modelis tiek izmantots, lai projektētu relāciju datu

bāzes un iegūtu datu mantošanas realizējumus relāciju datu bāzes variantā.

2. UML klašu diagrammatiek pielietota, lai projektētu objektorientētās bāzes.

3. Relāciju – objektu datu bāzes projektēšanai nav atbilstoša semantiskā modeļa.

4. Relāciju datu bāze nav piemērota sarežģītu reālās datu struktūru attēlojumam un

nenodrošina visus nepieciešamos datu sasaistes veidus.

5. Izmantojot relāciju – objektu datu bāzi ir iespējams realizēt sarežģītas reālās dzīves

datu struktūras, jo ir iespēja izveidot problēmsfērai atbilstošākas datu glabāšanas

struktūras.

6. Lai nodrošinātu relāciju datu bāzes un lietojuma sadarbību, ir nepieciešami papildus

karkasi, jo lietojumi pamatā tiek izstrādāti, izmantojot objektorientēto pieeju.

7. EER/UML modelis nevar tikt izmantots, lai projektētu relāciju – objektu datu bāzes,

jo šajos modeļos nav iespējams norādīt visa veida sasaistes, ar kādām objekti var būt

sasaistīti datu bāzes līmenī.

8. Relāciju – objektu datu bāzes struktūru apguve un izmantošana prasa ilgāku laiku un

dziļākas zināšanas.

9. Populārie projektēšanas rīki nenodrošina relāciju – objektu datu bāzes projektēšanu,

kaut arī ir iespēja projektēšanas gaitā norādīt objektiem raksturīgās īpašības.

10. Ir dažādas pieejas un mehānismi, kā projektēt relāciju – objektu datu bāzi, bet

transformācijas likumi ir stingri definēti katrā no pieejām, līdz ar to viena konceptuālā

modeļa objektu sasaiste vienmēr tiks pārveidota vienā un tajā pašā relāciju – objektu

datu bāzes struktūrā.

11. Apskatītajās pieejās galvenais trūkums ir tas, ka nav iespējams izvēlēties, kāda gala

struktūra tiek iegūta projektēšanas rezultātā. Relāciju – objektu datu bāzē ir vairākas

iespējamās realizācijas vienam konceptuālajam modelim.

Page 83: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

12. Relāciju – objektu datubāzes modeļa dažādajām realizācijām ir iespējams pielietot

dažādus kritērijus, tādējādi novērtējot dažādu modeļu atbilstību vēlamajam.

13. Nodrošinot iespēju projektētājam izvēlēties atbilstošās glabāšanas struktūras relāciju –

objektu datu bāzē, ir iespējams projektēt relāciju – objektu datu bāzi, kura atbilst

biznesa prasībām. Kā arī, papildinot projektēšanas procesu ar dažāda veida

konfigurācijām, ir iespējams samazināt izstrādātāja veicamo darbu apjomu datu bāzes

funkcionalitātes nodrošināšanā.

14. Nav piemērota modeļa, ko izmantot, lai projektētu relāciju – objektu datu bāzi.

15. Relāciju – objektu datu bāzes gan prasa vairāk zināšanas, lai tās izstrādātu un

uzturētu, bet tiek atvieglota lietojumu izstrāde un nodrošināta datu kopumu

nepieciešamās apstrādes funkcionalitātes glabāšana kopā ar datu vienībām.

16. Izveidotais relāciju – objektu datu bāzes projektēšanas prototips, ļauj veidot

komerciālu projektēšanas sistēmu, jo izpētīti un doti risinājumi galvenām relāciju –

objektu datu bāzes projektēšanas problēmām.

83

Page 84: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

IZMANTOTĀ LITERATŪRA1. Abdelsalam Maatuk, Akhtar Ali, And Nick Rossiter School Of Computing,

Engineering &Information Sciences Northumbria University, Newcastle Upon Tyne, Uk, An

Integrated Approach To Relational Database Migration, 2008

2. Ming Wang, California State University , Using Uml For Object - Relational

Database Systems Development: A Framework, 2008

3. María Fernanda Golobisky1 And Aldo Vecchietti, Fundamentals For The

Automation Of Object-Relational Database Design, 2011

4. Automating The Collection Of Object Relational

Database Metrics,2011

5. Hibernate karksass, Internets. - http://hibernate.org

6. Objektorientētie kritēriji, Internets -

http://agile.csc.ncsu.edu/sematerials/oometrics.htm

7. Objektorientētie kritēriji, Internets -

http://www.cc.uah.es/drg/b/rodharrama00.english.pdf

8. Objektorientētie kritēriji, Internets -

http://www.jot.fm/issues/issue_2006_11/article5.pdf

9. Objektorientētie kritēriji, Internets -

http://www.literateprogramming.com/ooapply.pdf

10. Oracle dokumentācija, Internets -

https://docs.oracle.com/cd/a87860_01/doc/java.817/a83723/objcoll4.htm

11. Brīvi pieejams tiešsasaistes diagrammu zīmēšanas rīks, Internets

-http://creately.com/

12. Carlos Alberto Rombaldo Jr, Solange N. Alves Souza, Department Of Computing

Engineering AndDigital System Of University Of São Paulo, São Paulo, Brazil. Luiz Sergio

De Souza, Faculdade De Tecnologia - Carapicuíba, São Paulo, Brazil O-Odm Framework For

Object-Relational Databases, 2012

13. Ming Wang, California State University, [email protected], Using

Object-Relational Database Technology To Solve Problems In Database Development. 2010

14. Profesora Jāņa Eiduka mācību materiāli

84

Page 85: Datu bāzes tehnoloģijas  · Web viewMaģistra darbā apskatīta datu bāzes projektēšana. Galvenā vērība veltīta relāciju – objektu datu bāzes projektēšanas iespēju

`

15. Eclipselink karkass, Internets -http://www.eclipse.org/eclipselink/

16. Myibatis karksass, Internets - http://www.mybatis.org/mybatis-3/

85