39
Rīgas Tehniskā universitāte Datorzinātnes un Informācijas Tehnoloģiju fakultāte Informācijas tehnoloģiju institūts 3. praktiskais darbs priekšmetā „Progresīvās datubāzes”

Uzdevuma nostādne - datubaze.files.wordpress.com file · Web viewRīgas Tehniskā universitāte. Datorzinātnes un Informācijas Tehnoloģiju fakultāte. Informācijas tehnoloģiju

  • Upload
    doduong

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Uzdevuma nostādne - datubaze.files.wordpress.com file · Web viewRīgas Tehniskā universitāte. Datorzinātnes un Informācijas Tehnoloģiju fakultāte. Informācijas tehnoloģiju

Rīgas Tehniskā universitāte

Datorzinātnes un Informācijas Tehnoloģiju fakultāte

Informācijas tehnoloģiju institūts

3. praktiskais darbs priekšmetā

„Progresīvās datubāzes”

Izstrādāja: Gatis Vērzemnieks

Pārbaudīja: prof. J. Eiduks

2012./2013. m.g.

Page 2: Uzdevuma nostādne - datubaze.files.wordpress.com file · Web viewRīgas Tehniskā universitāte. Datorzinātnes un Informācijas Tehnoloģiju fakultāte. Informācijas tehnoloģiju

Saturs

Uzdevuma nostādne.....................................................................................................................31. Problēmsfēras apraksts...........................................................................................................42. XMLType tipa tabulas bez shēmas izmantošanas izveidošana...................................................63. Datu ievade izveidotajā tabulā.....................................................................................................74. Vaicājumu definēšana un izpildīšana (XQuery, PL/SQL, SQL vaicājumi)..............................125. XML dokumentu shēmas izveidošana un reģistrēšana datu bāzē.............................................156. XMLType tipa tabulas izveidošana...........................................................................................21

6.1. strukturētā veidā..................................................................................................................216.2. nestrukturētā veidā..............................................................................................................216.3. binārā veidā (Oracle11g)....................................................................................................21

7. Datu ievade izveidotajās tabulās................................................................................................228. Vaicājumu definēšana un izpildīšana (XQuery, PL/SQL, SQL vaicājumi)..............................239. XML datu izvadīšana relāciju datu veidā..................................................................................2610. Relāciju datu izvadīšana XML datu veidā...............................................................................28Secinājumi.....................................................................................................................................30Literātūra........................................................................................................................................31

Page 3: Uzdevuma nostādne - datubaze.files.wordpress.com file · Web viewRīgas Tehniskā universitāte. Datorzinātnes un Informācijas Tehnoloģiju fakultāte. Informācijas tehnoloģiju

Uzdevuma nostādne

XML datu bāzes izveidošana un izmantošana:

1. XMLType tipa tabulas bez shēmas izmantošanas izveidošana .

2. Datu ievade izveidotajā tabulā.

3. Vaicājumu definēšana un izpildīšana (XQuery, PL/SQL, SQL vaicājumi).

4. XML dokumentu shēmas izveidošana un reģistrēšana datu bāzē.

5. XMLType tipa tabulas izveidošana:

- strukturētā veidā;

- nestrukturētā veidā;

- binārā veidā (Oracle11g).

6. Datu ievade izveidotajās tabulās.

7. Vaicājumu definēšana un izpildīšana (XQuery, PL/SQL, SQL vaicājumi).

8. XML datu izvadīšana relāciju datu veidā.

9. Relāciju datu izvadīšana XML datu veidā.

10. Secinājumi

Page 4: Uzdevuma nostādne - datubaze.files.wordpress.com file · Web viewRīgas Tehniskā universitāte. Datorzinātnes un Informācijas Tehnoloģiju fakultāte. Informācijas tehnoloģiju

1. Problēmsfēras apraksts

Hokejs ir komandu sporta veids, kuru spēlē uz ledus. Tas ir ātrākais komandu sporta

veids pasaulē — spēlētāji uz slidām ir spējīgi sasniegt ļoti lielus ātrumus, bet ripas lidojuma

ātrums var pārsniegt pat 160 km/h. Hokejs ir kļuvis īpaši populārs valstīs, kurās ir vēss klimats,

lai gan mūsdienās tam nav īpaši lielas nozīmes, jo lielākoties tas tiek spēlēts slēgtās hallēs, nevis

laukumos zem klajas debess.

Hokejs tiek spēlēts uz ledus laukuma. Laikā, kad spēle rit vienādos sastāvos uz laukuma

atrodas 6 spēlētāji no katras komandas. Katrā komandā ir pieci laukuma spēlētāji un 1 vārtsargs.

Spēles mērķis ir gūt pēc iespējas vairāk vārtus, ar speciālām nūjām sitot pa speciālu gumijas

disku - ripu. Vārtus var gūt raidot ripu pretinieku vārtos, kas ir novietoti pretējā laukuma galā. To

priekšā stāv pretinieku komandas vārtsargs, kuram ir tiesības ripu piespiest pie ledus. Vārti ir 122

cm augsti un 183 cm plati. Spēlētāji nedrīkst ripu vārtos iemest ar roku. Ripai jābūt 2,54 cm

biezai, tās diametram jābūt 7,62 cm un tās svaram jābūt no 156 līdz 170 gramiem.

Starp pārējiem pieciem laukuma spēlētājiem parasti ir 2 aizsargi un 3 uzbrucēji.

Uzbrucēju līnijā ir viens centra uzbrucējs un divi malējie uzbrucēji - labās un kreisās malas.

Spēlei drīkst pieteikt dažādu skaitu spēlētāju. Lielākajā daļā pasaules līgu komandas spēlei drīkst

pieteikt 23 spēlētājus (t.sk. arī Latvijas hokeja līgā) no kuriem 2 ir vārtsargi. Ziemeļamerikas

profesionālajās līgās spēlei drīkst pieteikt ne vairāk kā 18 spēlētājus. Uz laukuma esošie spēlētāji

bieži mainās, jo, pateicoties lielajiem ātrumiem, spēlētāji ātri nogurst. Vārtsargus komandas

maina reti - pārsvarā, kad tie uz laukuma darbojas nepārliecinoši un ir ielaiduši jau vairākus

vārtus. Laukuma apmales (sauktas par bortiem) palīdz ripu noturēt spēles laukumā. Tiesa, gadās,

ka spēlētāji ripu pārmet pāri arī tiem. Parasti tas notiek nejauši, bet ja tas notiek apzināti, tad

spēlētājam tiek piespriests sods par spēles laika vilcināšanu. Pēc tam, kad ripa ir atstājusi

laukumu, spēle tiek apturēta. Tā tiek atsākta ar jaunu iemetienu.

Spēlē ir 3 periodi, katrs - 20 minūtes garš. Kad spēle tiek apstādināta, tiek apstādināts arī

spēles laiks. Ir spēles, kurās noteikti jānoskaidro uzvarētājs (piem. finālspēle). Ja to pamatlaiks

beidzas neizšķirti, tad tiek spēlēts pagarinājums, kurš parasti ir 5 minūtes garš. Pagarinājumā (un

attiecīgi visā spēlē) uzvar komanda, kas pirmā gūst vārtus. Ja vārti tajā netiek gūti, tad notiek

soda metienu sērija. Tie tiek izpildīti spēlētājam izejot vienam pret vienu uz vārtiem un cenšoties

pārspēt vārtsargu. Pasaulē ir līgas, kuru noteikumos rakstīts, ka pilnīgi visās spēlēs jānoskaidro

Page 5: Uzdevuma nostādne - datubaze.files.wordpress.com file · Web viewRīgas Tehniskā universitāte. Datorzinātnes un Informācijas Tehnoloģiju fakultāte. Informācijas tehnoloģiju

uzvarētājs. Pasaules čempionātos pagarinājumi grupu un kvalifikācijas kārtu spēlēm ir 5 minūtes

gari, ceturtdaļfināliem un pusfināliem - 10 minūtes gari, bet finālam tie ir 20 minūtes gari.

Parasti uz ledus ir arī 2 līdz 4 tiesneši, kas skatās vai kāds no spēlētājiem nepārkāpj spēles

noteikumus.

Lielākā daļa hokeja komandu spēlē dažādās hokeja līgās, kurās visas sezonas laikā savā

starpā sacenšas vairākas komandas [1].

Sakarā ar to, ka pats spēlēju hokeju amatieru līmenī, kā arī ļoti sekoju līdzi notikumiem,

kas saistīti ar hokeju, tad izvēlējos tiešo šo tēmu. XML shēmā tiks izmantota sekojoša tabulas:

spēlētāji, komandas, līga.

Tika izvēlēts tieši XML uzdevums, jo līdz šim pieredze ar XML ir neliela, līdz ar to vēlos

uzlabot savas zināšanas.

Page 6: Uzdevuma nostādne - datubaze.files.wordpress.com file · Web viewRīgas Tehniskā universitāte. Datorzinātnes un Informācijas Tehnoloģiju fakultāte. Informācijas tehnoloģiju

2. XMLType tipa tabulas bez shēmas izmantošanas

izveidošana

Darba izstrādei ir nepieciešams izveidot mapi, kurā glabāsies faili. Uz diska C tika

izveidota mape DIR_DB3_3. Direktorijas izveide ir redzama 2.1. attēlā.

2.1. att. XML failu direktorijas izveide

Kā redzams 2.1. att., tad tiek piešķirtas arī visas atļaujas direktorijai DIR_DB3_3.

Nākamais solis ir tabulu izveide. Datu bāzes sastāvēs no trīs tabulām – komandas, līga,

spēlētāji. Tabulas KOMANDAS izveide ir redzama 2.2. attēlā.

2.2. att. Tabulas KOMANDAS izveide

Tabula sastāv no diviem laukiem – nosaukums un xml_doc. Pirmā kolona

NOSAUKUMS ir priekš dokumenta nosaukuma glabāšanai, savukārt otra kolona priekš XML

dokumenta glabāšanas.

Kā nākamā tabula tika izveidota SPELETAJI. Tabulai SPELETAJI ir tieši tādi paši lauki,

kā tabulai – KOMANDAS. Tabulas izveide ir redzama 2.3. attēlā.

2.3. att. Tabulas SPELETAJI izveide

Piebilde. Trešā tabula LIGA netika izveidota darba pirmajā daļā.

Page 7: Uzdevuma nostādne - datubaze.files.wordpress.com file · Web viewRīgas Tehniskā universitāte. Datorzinātnes un Informācijas Tehnoloģiju fakultāte. Informācijas tehnoloģiju

3. Datu ievade izveidotajā tabulā

Datu ievadei tabulās tiks izmantots PL/SQL komandas BEGIN un END. Tas saistīts ar to,

ka ar šo komandu palīdzību var ievadīt uzreiz vairākus ierakstus. Datu ievade tabulā

KOMANDAS ir redzama 3.1. attēlā.

3.1. att. Datu ievade tabulā KOMANDAS

Tabulā tika ievadīt xml faili, kuru saturs ir redzams 1. Tabulā.

1. Tabula

Faila nosaukums Faila satursKomanda1.xml <?xml version="1.0" encoding="UTF-8"?>

<komandas><komanda sportaVeids="hokejs">

<nosaukums>HK-Taurus</nosaukums><valsts>Latvija</valsts><pilseta>Rīga</pilseta><talrunis>26397414</talrunis>

</komanda></komandas>

Komanda2.xml <?xml version="1.0" encoding="UTF-8"?><komandas>

<komanda sportaVeids="hokejs">

<nosaukums>HK-Predators</nosaukums><valsts>Latvija</valsts><pilseta>Rīga</pilseta><talrunis>26397467</talrunis>

</komanda></komandas>

Komanda3.xml <?xml version="1.0" encoding="UTF-8"?><komandas>

<komanda sportaVeids="hokejs">

Page 8: Uzdevuma nostādne - datubaze.files.wordpress.com file · Web viewRīgas Tehniskā universitāte. Datorzinātnes un Informācijas Tehnoloģiju fakultāte. Informācijas tehnoloģiju

<nosaukums>HK-AEZ</nosaukums><valsts>Latvija</valsts><pilseta>Rīga</pilseta><talrunis>26397411</talrunis>

</komanda></komandas>

Komanda4.xml <?xml version="1.0" encoding="UTF-8"?><komandas>

<komanda sportaVeids="hokejs">

<nosaukums>Hk-Salacgriva</nosaukums><valsts>Latvija</valsts><pilseta>Salacgrīva</pilseta><talrunis>26391231</talrunis>

</komanda></komandas>

Komanda5.xml <?xml version="1.0" encoding="UTF-8"?><komandas>

<komanda sportaVeids="hokejs"><nosaukums>Severstal</nosaukums><valsts>Latvija</valsts><pilseta>Rīga</pilseta><talrunis>2222111</talrunis>

</komanda></komandas>

Par to, ka dati tika ievadīti korekti varam pārliecināties 3.2. attēlā.

3.2. att. Tabulas KOMANDAS dati

3.3. att. ir redzama datu ievade tabulā SPELETAJI. Datu ievade notiek pēc tāda paša

principa, proti, izmantojot komandu INSERT komandu.

Page 9: Uzdevuma nostādne - datubaze.files.wordpress.com file · Web viewRīgas Tehniskā universitāte. Datorzinātnes un Informācijas Tehnoloģiju fakultāte. Informācijas tehnoloģiju

3.3. att. Datu ievade tabulā SPELETAJI2. Tabula

Faila nosaukums Faila satursHokejists1.xml <?xml version="1.0" encoding="UTF-8"?>

<hokejisti><hokejists komanda="HK-Taurus">

<vards>Gatis</vards><uzvards>Vērzemnieks</uzvards><dz_datums>19.09.1990</dz_datums><augums>182</augums><svars>83</svars><metiens>labais</metiens><dzim.vieta>Smiltene</dzim.vieta>

</hokejists>

</hokejisti>Hokejists 2.xml <?xml version="1.0" encoding="UTF-8"?>

<hokejisti><hokejists komanda="HK-Taurus">

<vards>Mārtiņš</vards><uzvards>Palejs</uzvards><dz_datums>21.03.1983</dz_datums><augums>181</augums><svars>79</svars><metiens>labais</metiens><dzim.vieta>Rīga</dzim.vieta>

</hokejists>

</hokejisti>Hokejists 3.xml <?xml version="1.0" encoding="UTF-8"?>

<hokejisti>

Page 10: Uzdevuma nostādne - datubaze.files.wordpress.com file · Web viewRīgas Tehniskā universitāte. Datorzinātnes un Informācijas Tehnoloģiju fakultāte. Informācijas tehnoloģiju

<hokejists komanda="HK-Taurus"><vards>Rihards</vards><uzvards>Geidāns</uzvards><dz_datums>11.09.1988</dz_datums><augums>182</augums><svars>73</svars><metiens>kreisais</metiens><dzim.vieta>Rīga</dzim.vieta>

</hokejists>

</hokejisti>Hokejists 4.xml <?xml version="1.0" encoding="UTF-8"?>

<hokejisti><hokejists komanda="HK-Predators">

<vards>Dinārs</vards><uzvards>Deigala</uzvards><dz_datums>03.03.1988</dz_datums><augums>185</augums><svars>83</svars><metiens>labais</metiens><dzim.vieta>Brocēni</dzim.vieta>

</hokejists>

</hokejisti>Hokejists 5.xml <?xml version="1.0" encoding="UTF-8"?>

<hokejisti><hokejists komanda="HK-AEZ">

<vards>Mārtiņš</vards><uzvards>Strods</uzvards><dz_datums>21.08.1990</dz_datums><augums>183</augums><svars>81</svars><metiens>labais</metiens><dzim.vieta>Smiltene</dzim.vieta>

</hokejists>

</hokejisti>

Hokejists6.xml <?xml version="1.0" encoding="UTF-8"?><hokejisti>

<hokejists komanda="Hk-Salacgriva"><vards>Linards</vards><uzvards>Iļjins</uzvards><dz_datums>05.01.1989</dz_datums><augums>173</augums><svars>67</svars>

Page 11: Uzdevuma nostādne - datubaze.files.wordpress.com file · Web viewRīgas Tehniskā universitāte. Datorzinātnes un Informācijas Tehnoloģiju fakultāte. Informācijas tehnoloģiju

<metiens>labais</metiens><dzim.vieta>Bauska</dzim.vieta>

</hokejists>

</hokejisti>Hokejists7.xml <?xml version="1.0" encoding="UTF-8"?>

<hokejisti><hokejists komanda="Severstal">

<vards>Oskars</vards><uzvards>Silārs</uzvards><dz_datums>10.05.1990</dz_datums><augums>182</augums><svars>81</svars><metiens>kreisais</metiens><dzim.vieta>Rīga</dzim.vieta>

</hokejists>

</hokejisti>

Par to, ka dati tika ievadīti korekti varam pārliecināties 3.4. attēlā.

3.4. att. Tabulas SPELETAJI ievadītie dati

Page 12: Uzdevuma nostādne - datubaze.files.wordpress.com file · Web viewRīgas Tehniskā universitāte. Datorzinātnes un Informācijas Tehnoloģiju fakultāte. Informācijas tehnoloģiju

4. Vaicājumu definēšana un izpildīšana (XQuery, PL/SQL,

SQL vaicājumi)

Darba ietvaros tikai definēti dažādas sarežģītības vaicājumi. Vaicājumu izpildei tika

pielietoti SQL, XQuery un PL/SQL vaicājumi. XQuery un XPath tieši ir tendēti uz XML

struktūru vaicājumu izpildi.

Pirmajā vaicājumā tiks izmantota GETCLOBVAL funkcija. Funkcija atgriež serializāciju

par pašreizējo mezglu. Vaicājumu izpilde ir redzama 4.1. attēlā.

4.1. att. Funkcijas GETCLOBVAL izpilde

Nākamajā vaicājumā izgūsim vienu no ierakstiem ar funkcijas EXISTSNODE palīdzību.

Rezultātā izvadīsim datus par HK- Taurus spēlētāju ar uzvārdu - Vērzemnieks. Vaicājums

rezultāts ir redzams 4.2. attēlā.

4.2. att. Funkcijas existsNode izpilde

Ar Xpath ir iespējams norādīt atribūtus. Atribūtu norāda ar simbola ‘@’ palīdzību. Ar

vaicājuma palīdzību atlasīsim visus HK-Taurus hokejistus. Vaicājuma izpilde ir redzama 4.3.

attēlā.

4.3. att. XPath vaicājuma izpilde

Page 13: Uzdevuma nostādne - datubaze.files.wordpress.com file · Web viewRīgas Tehniskā universitāte. Datorzinātnes un Informācijas Tehnoloģiju fakultāte. Informācijas tehnoloģiju

Norādot XML taga indeksu, var uzzināt, vai vispār eksistē elements norādītajā pozīcijā. Vaicājumā tiks pārbaudīts vai eksistē komanda ar 1 hokejistu. Rezultātus var apskatīt 4.4. attēlā.

4.4. att. Vaicājuma izpilde

Ar funkcijas XMLEXISTS ir iespējams pārbaudīt taga eksistenci. Tā kā datu bāzē ir

ievadītas 5 komandas, tad funkcijai vajadzētu atgriezt skaitu = 5. Vaicājuma izpilde ir redzama

4.5. attēlā.

4.5. att. Funkcijas XMLExists izpilde

Kā redzams 4.5. attēlā, tad funkcija atgriež pareizu skaitu ar komandām. Datu bāzē

patiešām ir ievadītas 5 komandas.

Ar EXTRACT funkcijas palīdzību ir iespējams iegūt atsevišķus laukus no XMLType.

Šajā gadījumā tika iegūti visu komandu nosaukumi. Vaicājumā ir arī iekļauta funkcija text(). Tā

atlasa tikai mezgla informāciju. Vaicājuma izpilde ir redzama 4.6. attēlā.

Page 14: Uzdevuma nostādne - datubaze.files.wordpress.com file · Web viewRīgas Tehniskā universitāte. Datorzinātnes un Informācijas Tehnoloģiju fakultāte. Informācijas tehnoloģiju

4.6. att. Funkcijas Extract() un text() izpilde

Page 15: Uzdevuma nostādne - datubaze.files.wordpress.com file · Web viewRīgas Tehniskā universitāte. Datorzinātnes un Informācijas Tehnoloģiju fakultāte. Informācijas tehnoloģiju

5. XML dokumentu shēmas izveidošana un reģistrēšana

datu bāzē

No sākuma XML datu bāze ir jāreģistrē. Shēmas reģistrācija tiks veikta izmantojot

PL/SQL paketi DBMS_XMLSCHEMA. Shēmu veidošanā tiks izmantots XML redaktors

Oxygen XML Editor.

XML failu saturs:

3. Tabula

Faila nosaukums Faila satursLiga1.xml <?xml version="1.0" encoding="UTF-8"?>

<ligas><liga Nosaukums = "UHL 2011">

<komandas_nos>HK-Taurus</komandas_nos><speles>18</speles><uzvaras>9</uzvaras><zaudejumi>5</zaudejumi><neizskirti>4</neizskirti><punkti>23</punkti>

</liga></ligas>

Liga2.xml <?xml version="1.0" encoding="UTF-8"?><ligas>

<liga Nosaukums = "EHL 2012"><komandas_nos>HK-Taurus</komandas_nos><speles>16</speles><uzvaras>9</uzvaras><zaudejumi>4</zaudejumi><neizskirti>3</neizskirti><punkti>22</punkti>

</liga></ligas>

Liga3.xml <?xml version="1.0" encoding="UTF-8"?><ligas>

<liga Nosaukums = "EHL 2013"><komandas_nos>HK-Taurus</komandas_nos><speles>16</speles><uzvaras>9</uzvaras><zaudejumi>4</zaudejumi><neizskirti>3</neizskirti><punkti>22</punkti>

</liga></ligas>

Page 16: Uzdevuma nostādne - datubaze.files.wordpress.com file · Web viewRīgas Tehniskā universitāte. Datorzinātnes un Informācijas Tehnoloģiju fakultāte. Informācijas tehnoloģiju

Vispirms ir nepieciešams lejuplādēt Oxygen XML Editor. Lejupielāde tika veikta no

oficiālās mājas lapas - http://www.oxygenxml.com/. Veiksmīga programmatūras uzstādīšana ir

redzama 5.1. attēlā.

5.1. att. Veiksmīga Oxygen XML Editor uzstādīšana

Shēmas ģenerēšanu var redzēt 5.2. attēlā.

5.2. att. Shēmas ģenerēšana

Page 17: Uzdevuma nostādne - datubaze.files.wordpress.com file · Web viewRīgas Tehniskā universitāte. Datorzinātnes un Informācijas Tehnoloģiju fakultāte. Informācijas tehnoloģiju

5.3. attēlā var redzēt izveidoto Komandu shēmu.

5.3. att. Komandu shēmas izveidošana

5.4. att. ir redzams izveidotās shēmas teksta saturs.

5.4. att. Komandu shēmas teksta saturs

Page 18: Uzdevuma nostādne - datubaze.files.wordpress.com file · Web viewRīgas Tehniskā universitāte. Datorzinātnes un Informācijas Tehnoloģiju fakultāte. Informācijas tehnoloģiju

5.5. attēlā var redzēt izveidoto Hokejistu shēmu.

5.5. att. Izveidotā hokejistu shēma

5.6. att. ir redzams hokejistu shēmas teksta saturs.

5.6. att. Hokejistu shēmas teksta saturs

Page 19: Uzdevuma nostādne - datubaze.files.wordpress.com file · Web viewRīgas Tehniskā universitāte. Datorzinātnes un Informācijas Tehnoloģiju fakultāte. Informācijas tehnoloģiju

Visbeidzot tika izveidota Līgas shēma. Shēmas izveide ir redzama 5.7. attēlā.

5.7. att. Līgas shēma izveide

Līgas shēmas teksta saturs ir redzams 5.8. attēlā.

5.8. att. Līgas shēmas teksta saturs

Page 20: Uzdevuma nostādne - datubaze.files.wordpress.com file · Web viewRīgas Tehniskā universitāte. Datorzinātnes un Informācijas Tehnoloģiju fakultāte. Informācijas tehnoloģiju

Nākamais solis ir reģistrēt izveidotās shēmas datu bāzē. Komandas shēmas reģistrēšana ir

redzama 5.9. attēlā.

5.9. att. Komandas shēmas reģistrēšana

Hokejistu shēmas reģistrēšana ir redzama 5.10. attēlā.

5.10. att. Hokejistu shēmas reģistrēšana

Visbeidzot tika reģistrēta Līgas shēmas. Shēmas reģistrēšana ir redzama 5.11. attēlā.

5.11. att. Līgas shēmas reģistrēšana

Par to, ka shēmas ir veiksmīgi reģistrētas varam pārliecināties 5.12. attēlā.

5.12. att. Reģistrētās shēmas

Page 21: Uzdevuma nostādne - datubaze.files.wordpress.com file · Web viewRīgas Tehniskā universitāte. Datorzinātnes un Informācijas Tehnoloģiju fakultāte. Informācijas tehnoloģiju

6. XMLType tipa tabulas izveidošana6.1. strukturētā veidā

Komandas tabulas izveide ir redzama 6.1. attēlā.

6.1. att. KOMANDAS_STRUKTURRETAS tabulas izveidošana

6.2. nestrukturētā veidā

Hokejistu tabulas izveide ir redzama 6.2. attēlā.

6.2. att. HOKEJISTI_NESTRUKTURETA tabulas izveidošana

6.3. binārā veidā (Oracle11g)

Visbeidzot tika izveidota tabula LIGAS_BINARI. Tabulas izveide ir redzama 6.3. attēlā.

6.3. att. LIGAS_BINARA tabulas izveidošana

Page 22: Uzdevuma nostādne - datubaze.files.wordpress.com file · Web viewRīgas Tehniskā universitāte. Datorzinātnes un Informācijas Tehnoloģiju fakultāte. Informācijas tehnoloģiju

7. Datu ievade izveidotajās tabulāsTabulas datu ievade tiks veikta ar funkcijas INSERT palīdzību. Tiks izmantoti tie paši

dati, kuri tika definēti iepriekšējās nodaļās. Datu ievade KOMANDAS_STRUKTURRETAS ir

redzama 7.1. attēlā.

7.1. att. Datu ievade tabulā KOMANDAS_STRUKTURRETAS

Datu ievade tabulā HOKEJISTI_NESTRUKTURETA ir redzama 7.2. attēlā.

7.2. att. Datu ievade tabulā HOKEJISTI_NESTRUKTURETA

Datu ievade tabulā LIGAS_BINARA ir redzama 7.3. attēlā.

7.3. att. Datu ievade tabulā LIGAS_BINARA

Page 23: Uzdevuma nostādne - datubaze.files.wordpress.com file · Web viewRīgas Tehniskā universitāte. Datorzinātnes un Informācijas Tehnoloģiju fakultāte. Informācijas tehnoloģiju

8. Vaicājumu definēšana un izpildīšana (XQuery, PL/SQL, SQL vaicājumi)

8.1. attēla izveidotāja vaicājumā tiek atlasīti visi ieraksti, kas atrodas tabulā

HOKEJISTI_NESTRUKTURETA.

8.1. att Vaicājuma rezultāts

Tieši tādu pašu rezultātu var iegūt, izmantojot XMLType datus. Rezultāti redzami 8.2.

attēlā.

8.2. att. Vaicājuma rezultāts

Ar funkcijas ExistsNode palīdzību tika iegūti dati par HK-Taurus statistiku UHL 2011.

gada sezonā. Vaicājuma rezultāti ir redzami 8.3. attēlā.

Page 24: Uzdevuma nostādne - datubaze.files.wordpress.com file · Web viewRīgas Tehniskā universitāte. Datorzinātnes un Informācijas Tehnoloģiju fakultāte. Informācijas tehnoloģiju

8.3. att. Funkcijas ExistsNode rezultāts

Ar funkcijas EXTRACT palīdzību atlasīsim visus hokejistu uzvārdus no tabulas

HOKEJISTI_NESTRUKTURETA. Vaicājuma rezultāts ir redzams 8.4. attēlā.

8.4. att. Vaicājuma rezultāts

Ar funkcijas ExtractValue izvadīsim datus relāciju veidā. Vaicājuma rezultāts ir redzams

8.5. attēlā.

Page 25: Uzdevuma nostādne - datubaze.files.wordpress.com file · Web viewRīgas Tehniskā universitāte. Datorzinātnes un Informācijas Tehnoloģiju fakultāte. Informācijas tehnoloģiju

8.5. att. Vaicājums rezultāts

Par to, ka dati ir ievadīti korekti, pārbaudīsim nākamajā vaicājumā. Ar XMLExists

palīdzību atlasīsim visus ierakstus no tabulas HOKEJISTI_NESTRUKTURETA. Vaicājuma

rezultāts ir redzams 8.6. attēlā.

8.6.att. Vaicājuma rezultāts

Page 26: Uzdevuma nostādne - datubaze.files.wordpress.com file · Web viewRīgas Tehniskā universitāte. Datorzinātnes un Informācijas Tehnoloģiju fakultāte. Informācijas tehnoloģiju

9. XML datu izvadīšana relāciju datu veidā

Lai realizētu uzdevuma nosacījumu ir nepieciešams XML datus transformēt relāciju

datos. Pēc tam šos datus ierakstīsim tabula un nolasīsim no tās.

Tika izveidota procedūra, kura ir attēlota 9.1. attēlā.

9.1. Procedūras izveide

Pēc tam tika izveidota tabula, kurā ievietos datus no XML. Tabulas izveide ir redzama

9.2. attēlā.

Page 27: Uzdevuma nostādne - datubaze.files.wordpress.com file · Web viewRīgas Tehniskā universitāte. Datorzinātnes un Informācijas Tehnoloģiju fakultāte. Informācijas tehnoloģiju

9.2. att. Tabulas KOMANDAS_NO_XML izveide

Tagad varam izpildīt procedūru IEVADE. Par datu ievades pareizību var pārliecināties 9.3. attēlā.

9.3. att. Tabulas ievadītie dati

Page 28: Uzdevuma nostādne - datubaze.files.wordpress.com file · Web viewRīgas Tehniskā universitāte. Datorzinātnes un Informācijas Tehnoloģiju fakultāte. Informācijas tehnoloģiju

10. Relāciju datu izvadīšana XML datu veidā

Lai izpildīta uzdevuma nosacījumus ir nepieciešams transformēt relāciju datus XML

datos. Sakarā ar to, ka iepriekšējā nodaļā jau izveidojām relāciju tabulu, tad nebūs nepieciešams

veidot jaunu tabulu.

Būs nepieciešams izveidot procedūru, kura pārveidos relāciju datus XML formā.

Procedūras izveide ir attēlota 10.1. attēlā.

10.1. att. Procedūras izveide

Visbeidzot izpildām izveidoto procedūru ar komandu – „execute

komandasXML(‘123.xml’). Rezultāts ir redzams 10.2. attēlā.

Page 29: Uzdevuma nostādne - datubaze.files.wordpress.com file · Web viewRīgas Tehniskā universitāte. Datorzinātnes un Informācijas Tehnoloģiju fakultāte. Informācijas tehnoloģiju

10.2. att. Jaunais izveidots XML fails

10.2. attēlā varam pārliecināties, ka patiešām ir izgūti relāciju dati no tabulas

KOMANDAS_NO_XML.

Page 30: Uzdevuma nostādne - datubaze.files.wordpress.com file · Web viewRīgas Tehniskā universitāte. Datorzinātnes un Informācijas Tehnoloģiju fakultāte. Informācijas tehnoloģiju

SecinājumiLaboratorijas darba ietvaros tikai izveidota XML datu bāze. Pēc tam ar šīs datu bāzes

palīdzību tika veiktas vairākas darbības, kuras bija nepieciešams realizēt uzdevuma nostādnē.

Darba gaitā tika apskatīti XML datu bāzes izveides principi. Uzdevuma veikšanai tika

izmantots SQL Developer un Oxygen XML Editor rīki.

Darba pirmā daļa sastāvēja no XML tipa tabulu bez shēmas izveidošanas. Turpinājumā

bija nepieciešams ievadīt datus. Šis uzdevums autoram sagādāja milzīgas problēmas. Darba

autors pat veica atkārtotu Oracle uzstādīšanu, jo uzskatīja, ka problēmas ir saistītas ar

programmatūru. Pēc ļoti lielas laika iztērēšanas tomēr izdevās ievadīt datus. Autors uzskata, ka šī

problēma bija saistīta ar to, ka pirms tam nebija praktiski nekāda pieredze ar XML, līdz ar to tika

pieļautas muļķīgas kļūdas.

Kā nākamais solis bija nepieciešams izveidot un reģistrēt XML shēmu. Ģenerēšana tika

veikta ar rīka Oxygen XML Editor palīdzību. Rīks ir ļoti ērts un viegli saprotams, līdz ar to

shēmas izveide nesagādāja lielas problēmas.

Kad shēma bija izveidota, tad nākamais solis bija nepieciešams reģistrēt to datu bāzē.

Tāpat kā ar shēmas izveidi, šajā solī nebija lielas aizķeršanās un shēmas reģistrēšana norisinājās

gludi.

Tā kā shēma bija izveidota un reģistrēta datu bāzē, tad varēja sākt izpildīt dažādas

sarežģītības pakāpes vaicājumus. Vaicājumu realizēšanā saskāros ar dažiem sarežģījumiem,

tomēr izdevās tos veiksmīgi atrisināt.

Kā pēdējie uzdevumi bija XML datu izvadīšana relāciju veidā un relāciju datu izvadīšana

XML datu veidā. Darba autors uzskata, ka šie bija sarežģītākie uzdevumi, jo prasīja labas

PL/SQL programmēšanas zināšanas. Pēc vairāku stundu mēģinājumiem tomēr izdevās realizēt

uzdevuma nosacījumus. Jāpiebilst, ka ļoti palīdzēja praktisko darbu piemēri, kuros daudzas lietas

bija ļoti labi paskaidrotas.

Darbā ir iekļauti 42 attēli un 3 tabulas. Darba kopējais apjoms ir 31 lappuses. Pēc darba

izstrādes secinu, ka darbā apskatītās tēmas bija diezgan sarežģītas. Pēc darba izveides ir liels

gandarījums, jo būtiski uzlaboju savas zināšanas, kas saistītas ar XML. Var teikt, ka šis darbs

autoram bija liels izaicinājums, jo priekšzināšanu saistībā ar XML praktiski nebija. Darba

izstrādē aizņēma 30 h.

Page 31: Uzdevuma nostādne - datubaze.files.wordpress.com file · Web viewRīgas Tehniskā universitāte. Datorzinātnes un Informācijas Tehnoloģiju fakultāte. Informācijas tehnoloģiju

Literātūra

1. Internets - http://lv.wikipedia.org/wiki/Hokejs

2. Prof. Jānis Eiduks «Lekciju konspekti» - 2013

3. Internets - http://www.oracle.com/index.html