2. Praktiskais darbs - Datu bāzes tehnoloģijas ... · Web viewRĪGAS TEHNISKĀ UNIVERSITĀTE....
-
Upload
dinhnguyet -
Category
Documents
-
view
218 -
download
0
Transcript of 2. Praktiskais darbs - Datu bāzes tehnoloģijas ... · Web viewRĪGAS TEHNISKĀ UNIVERSITĀTE....
RĪGAS TEHNISKĀ UNIVERSITĀTERĪGAS TEHNISKĀ UNIVERSITĀTE
DATORZINĀTNES UN INFORMĀCIJAS TEHNOLOĢIJASDATORZINĀTNES UN INFORMĀCIJAS TEHNOLOĢIJAS FAKULTĀTEFAKULTĀTE
LIETIŠKO DATORSISTĒMU INSTITŪTSLIETIŠKO DATORSISTĒMU INSTITŪTS
INFORMĀTIKAS UN PROGRAMMĒŠANAS KATEDRAINFORMĀTIKAS UN PROGRAMMĒŠANAS KATEDRA
«Temporālās datubāzes»
2. praktiskais darbs
«Temporālās datubāzes izveidošana un
temporālo vaicājumu realizācija»
Izstrādāja: Arnis KiršnersI DMIO, 2. grupa
Apl. Nr.: 051RDB243Pārbaudīja: prof. J. Eiduks
Rīga, 2008. / 2009. m. g.
SatursUzdevuma nostādne.......................................................................................................31. Temporālo vaicājumu definēšana dabiskajā valodā...............................................4
1.1. Pirmais temporālais vaicājums........................................................................41.2. Otrais temporālais vaicājums..........................................................................41.3. Trešais temporālais vaicājums.........................................................................41.4. Ceturtais temporālais vaicājums......................................................................41.5. Piektais temporālais vaicājums........................................................................4
2. Laika sēriju definēšana...........................................................................................52.1. Pirmās laika sērijas definēšana........................................................................52.2. Otrās laika sērijas definēšana..........................................................................52.3. Trešās laika sērijas definēšana.........................................................................6
3. Uzdevumu grafiskā analoģija.................................................................................83.1. Pirmajam un otrajam vaicājumam...................................................................83.2. Trešajam vaicājumam......................................................................................83.3. Ceturtajam vaicājumam...................................................................................93.4. Piektajam vaicājumam.....................................................................................9
4. Sīkāko metožu loģikas definēšana.......................................................................105. Allena operatorus realizējošo metožu definēšana................................................12
5.1. Pirmais vaicājums..........................................................................................125.2. Otrais vaicājums............................................................................................125.3. Trešais vaicājums..........................................................................................125.4. Ceturtais vaicājums.......................................................................................125.5. Piektais vaicājums.........................................................................................12
6. Glabāšanas struktūras definēšana.........................................................................136.1. Glabāšanas struktūra pirmajai laika sērijai....................................................136.2. Glabāšanas struktūra otrajai laika sērijai.......................................................136.3. Glabāšanas struktūra trešajai laika sērijai......................................................13
7. Izgūšanas struktūras definēšana...........................................................................147.1. Skata izveide pirmajam un otrajam vaicājumam...........................................147.2. Skata izveide trešajam vaicājumam...............................................................147.3. Skata izveide ceturtajam un piektajam vaicājumam.....................................14
8. Datubāzu struktūru un metožu realizācija............................................................158.1. Pirmajam vaicājumam...................................................................................158.2. Otrajam vaicājumam.....................................................................................188.3. Trešajam vaicājumam....................................................................................198.4. Ceturtajam un piektajam vaicājumam...........................................................22
9. Temporālo vaicājumu izpilde...............................................................................269.1. Pirmajam vaicājumam...................................................................................269.2. Otrajam vaicājumam.....................................................................................269.3. Trešajam vaicājumam....................................................................................279.4. Ceturtajam vaicājumam.................................................................................289.5. Piektajam vaicājumam...................................................................................28
10. Secinājumi.........................................................................................................29Izmantotās literatūras saraksts......................................................................................30
Uzdevuma nostādne
Temporālo vaicājumu definēšana (4) dabiskajā valodā; Laika sēriju definēšana (3); Uzdevumu grafiskā analoģija; Sīkāko metožu loģikas definēšana (3); Allena operatorus realizējošo metožu definēšana (3); Glabāšanas struktūras definēšana (3); Izgūšanas struktūras definēšana (3); Datubāzu struktūru un metožu realizācija; Temporālo vaicājumu izpilde; Secinājumi.
DBVS-3 © Arnis Kiršners - 2008 3
1. Temporālo vaicājumu definēšana dabiskajā valodā
Šajā nodaļā tiek aprakstīti temporālie vaicājumi dabiskajā valodā un īsi paskaidroti vaicājumu realizācijas galvenie principi.
1.1. Pirmais temporālais vaicājums
Izgūt to diktoru vārdus un darba laiku, kuru darba laiks attiecīgajā dienā (17.10.2008.) pārklājas ar diktores Allas Zviedres darba laiku (7:00 – 17:00), pārklāšanās rezultātus atspoguļot kolonnā «REZULTATS», ja notikusi pārklāšanās tad vērtība 1.
Realizācija veikta izmantojot MEMBER tipa funkciju (Allena operators), kas izsauc otru MEMBER tipa funkciju objekta ķermenī un veic objektu laika sēriju salīdzināšanu.
1.2. Otrais temporālais vaicājums
Izgūt to diktoru vārdus un darba laiku, kuru darba laiks attiecīgajā dienā (17.10.2008.) pārklājas ar diktores Allas Zviedres darba laiku (7:00 – 17:00), pārklāšanās rezultātus atspoguļot kolonnā «REZULTATS», ja notikusi pārklāšanās tad attēlot vērtību PARKLASANAS.
Realizācija veikta izmantojot ORDER tipa funkciju (Allena operators), kas veic objektu laika sēriju salīdzināšanu objekta ķermenī.
1.3. Trešais temporālais vaicājums
Izgūt tos diktorus, kuri 17.10.2008. līdz plkst. 9:00 vadīja ziņas (MEMBER (Allena operators) BEIG_VIENADS funkcija), kuri 17.10.2008. no plkst. 20:00 vadīja ziņas (MEMBER (Allena operators) SAK_VIENADS funkcija), kuru ziņu vadīšanas posms pārklājas ar periodu 18.10.2008. no plkst. 18:10 līdz plkst. 18:40 (MEMBER (Allena operators) PARKLAJ funkcija) un, kuru ziņu vadīšanas posms vienāds ar periodu 19.10.2008. no plkst. 20:00 līdz plkst. 20:45 (MEMBER (Allena operators) VIENADS funkcija).
Realizācija veikta izmantojot MEMBER tipa funkciju (vairāki Allena operatori – var tikt pielietoti vienlaicīgi), kas veic objektu laika sēriju salīdzināšanu objekta ķermenī.
1.4. Ceturtais temporālais vaicājums
Izgūt diktoru skaitu, kas 19.08.2008. plkst. 20:00 lasīja ziņas un kopējais laiks minūtēs, cik ilgi tika lasītas ziņas, kur ar metodes MEMBER palīdzību tiek aprēķināts to laika sēriju sākums, kuras sakrīt un kas tiek aprēķinātas ar COUNT un SUM operatoriem.
1.5. Piektais temporālais vaicājums
Ar dotā vaicājuma palīdzību tiek izgūts diktora ēterā pavadītais laiks 17.08.2008., ja ziņu beigu laiks ir plkst. 22:00. Ar klona tabulas palīdzību, vaicājumā tiek atlasīti tie ieraksti, kas atbilst vaicājuma nostādnei, savukārt WHERE rindā no klona tabulu atlasītajiem ierakstiem tiek atstāti, kuru beigas ir plkst. 22:15.
DBVS-3 © Arnis Kiršners - 2008 4
2. Laika sēriju definēšana
Šajā nodaļā tiks parādīti laika sēriju izveides principi un to definēšanas nianses.
2.1. Pirmās laika sērijas definēšana
Pirmā laika sērija ir realizēta, kā tabula ar objektu kolekciju, kuras struktūru skatīt 1. tabulā. Izveidotajā tabulā DARBA_LAIKI tiks glabāta informācijas par diktora vārdu, uzvārdu un identifikācijas numuru, bet iekļautajā tabulā informācija, kas attēlota laika sērijā par nostrādāto stundu skaitu (no - līdz) attiecīgajā darba dienā, kas savstarpēji veido saiti 1:N.
1. tabulaPirmās laika sērijas glabāšanas struktūra
Tabula: DARBA_LAIKIDL_NU
MDL_VAR DL_UZV DL_SAK DL_BEIG
1 Alla Zviedre17.10.2008. 07:00 17.10.2008. 17:0018.10.2008. 20:00 18.10.2008. 23:0019.10.2008. 19:00 19.10.2008. 23:00
2 Janis Kveps17.10.2008. 07:30 17.10.2008. 20:0018.10.2008. 17:00 18.10.2008. 21:0019.10.2008. 19:00 19.10.2008. 21:00
3 Gvido Zole 17.10.2008. 14:00 17.10.2008. 23:0019.10.2008. 17:00 19.10.2008. 21:00
4 Ilze Kokle 17.10.2008. 17:30 17.10.2008. 23:30
2.2. Otrās laika sērijas definēšana
Otrā laika sērija ir realizēta kā objektu kolonna, skatīt Error: Reference source notfound. tabulu. Izveidotajā tabulā ZINAS tiek glabāta informācija par diktora vārdu, uzvārdu , ziņu identifikācijas numuru, ziņu sākuma un beigu datumu, un laiku.
2. tabulaOtrās laika sērijas glabāšanas struktūra
Tabula: ZINASZ_NUM Z_VAR Z_UZV Z_SAK Z_BEIG
1 Alla Zviedre 17.10.2008. 08:00 17.10.2008. 09:002 Janis Kveps 17.10.2008. 08:00 17.10.2008. 09:003 Janis Kveps 17.10.2008. 10:00 17.10.2008. 10:454 Alla Zviedre 17.10.2008. 12:00 17.10.2008. 12:155 Gvido Zole 17.10.2008. 15:00 17.10.2008. 15:456 Janis Kveps 17.10.2008. 18:00 17.10.2008. 18:457 Ilze Kokle 17.10.2008. 18:00 17.10.2008. 18:458 Gvido Zole 17.10.2008. 20:00 17.10.2008. 20:459 Ilze Kokle 17.10.2008. 20:00 17.10.2008. 20:4510 Gvido Zole 17.10.2008. 22:00 17.10.2008. 22:1511 Ilze Kokle 17.10.2008. 23:00 17.10.2008. 23:1512 Janis Kveps 18.10.2008. 18:00 18.10.2008. 18:30
DBVS-3 © Arnis Kiršners - 2008 5
13 Janis Kveps 18.10.2008. 20:00 18.10.2008. 20:4514 Alla Zviedre 18.10.2008. 20:00 18.10.2008. 20:4515 Alla Zviedre 18.10.2008. 22:00 18.10.2008. 22:1516 Gvido Zole 19.10.2008. 18:00 19.10.2008. 18:3017 Gvido Zole 19.10.2008. 20:00 19.10.2008. 20:4518 Alla Zviedre 19.10.2008. 20:00 19.10.2008. 20:4519 Janis Kveps 19.10.2008. 20:00 19.10.2008. 20:4520 Alla Zviedre 19.10.2008. 22:00 19.10.2008. 22:15
2.3. Trešās laika sērijas definēšana
Trešā laika sērija sastāvēs no tabulas ar kolekciju, kura struktūru skatīt Error: Referencesource not found. tabulā. Izveidotajā tabulā LAIKI tiek glabāta informācija par diktora vārdu, uzvārdu, ziņu identifikācijas numuru, ziņu sākuma un beigu datumu un laiku, kā arī ēterā pavadīto laiku.
3. tabula
Trešās laika sērijas glabāšanas struktūra
Tabula: LAIKIL_NUM L_VAR L_UZV L_SAK L_BEIG L_ETERA
1 Alla Zviedre
17.08.2008. 08:00
17.08.2008. 09:00
60
17.08.2008. 12:00
17.08.2008. 12:15
15
18.08.2008. 20:00
18.08.2008. 20:45
45
18.08.2008. 22:00
18.08.2008. 22:15
15
19.08.2008. 20:00
19.08.2008. 20:45
45
19.08.2008. 22:00
19.08.2008. 22:15
15
2 Janis Kveps
17.08.2008. 08:00
17.08.2008. 09:00
60
17.08.2008. 10:00
17.08.2008. 10:45
45
17.08.2008. 18:00
17.08.2008. 18:45
45
18.08.2008. 18:00
18.08.2008. 18:30
30
18.08.2008. 20:00
18.08.2008. 20:45
45
19.08.2008. 20:00
19.08.2008. 20:45
45
3 Gvido Zole
17.08.2008. 15:00
17.08.2008. 15:45
45
17.08.2008. 20:00
17.08.2008. 20:45
45
DBVS-3 © Arnis Kiršners - 2008 6
17.08.2008. 22:00
17.08.2008. 22:15
15
19.08.2008. 18:00
19.08.2008. 18:30
30
19.08.2008. 20:00
19.08.2008. 20:45
45
4 Ilze Kokle
17.08.2008. 18:00
17.08.2008. 18:45 45
17.08.2008. 20:00
17.08.2008. 20:45 45
17.08.2008. 23:00
17.08.2008. 23:15 15
DBVS-3 © Arnis Kiršners - 2008 7
3. Uzdevumu grafiskā analoģija
Šajā nodaļā tiks grafiski aprakstīti izgūstamās laika sērijas vaicājumos
3.1. Pirmajam un otrajam vaicājumam
Pirmajā un otrajā vaicājumā tiek izgūtas tās laika sērijas, kuras pārklāj laika sērija: «Alla Zviedre», skatīt . attēlu.
1. att. Laika sēriju izguve 1 un 2 vaicājumiem
3.2. Trešajam vaicājumam
Trešajā vaicājumā tiek izgūtas laika sērijas, skatīt . attēlā, kuru beigas ir vienādas 17.10.2008. datumā plkst. 9:00 – grafikā iezīmēts ar sarkanu krāsu, kuru sākums ir vienāds 17.10.2008. plkst. 20:00 – grafikā iezīmēts ar dzeltenu krāsu, kuru laiks pārklājas 18.10.2008. no plkst. 18:10 līdz 18:40 – grafikā iezīmēts ar zaļi krāsu, un kuru laiks vienāds 19.10.2008. no plkst. 20:00 līdz 20:45 – grafikā iezīmēts ar gaiši zilu krāsu.
2. att. Laika sēriju izguve 3 vaicājumam
DBVS-3 © Arnis Kiršners - 2008 8
3.3. Ceturtajam vaicājumam
Ceturtajā vaicājumā, skatīt 3. attēlu, ar MEMBER metodes palīdzību tiek izgūtas tās laika sērijas, kuru sākums ir vienāds ar datumu 19.08.2008. plkst. 20:00. Vaicājuma rezultātā tiks izgūts to diktoru skaits, kas attiecīgajā laika posmā ir vadījuši ziņas un strādājošo diktoru ēterā pavadītais kopējais laiks.
3. att. Laika sēriju izguve 4 vaicājumam
3.4. Piektajam vaicājumam
Piektajā vaicājumā, skatīt . attēlu, ar klona tabulu palīdzību, izmantojot funkciju MAX atrodam maksimālās vērtības, starp dažādām dienām un laika sērijām, pēc tam ar metodes MEMBER palīdzību, atrodam 17.08.2008. plkst. 22:15 laika sēriju ar garumu 15 minūtes.
4. att. Laika sēriju izguve 5 vaicājumam
DBVS-3 © Arnis Kiršners - 2008 9
4. Sīkāko metožu loģikas definēšana
Metodes ir funkcijas vai procedūras, kuras var deklarēt objekta tipa definēšanā, lai izveidotu uzvedību, kuru ar objektu var veikt. Principiāla metodes izmantošana ir piedāvāt pieeju objekta datiem. Lai izpildītu operāciju, lietojums izsauc vajadzīgo metodi no vajadzīga objekta.
Var arī definēt metodes, lai salīdzinātu objekta eksemplārus un lai izpildītu operācijas, kas neizmanto konkrēta objekta datus, bet ir globālas objekta tipam.
Metodes var būt uzrakstītas PL/SQL valodā vai jebkurā citā programmēšanās valodā. Metodes, kas uzrakstītas PL/SQL vai Java glabājas datu bāzē. Metodes uzrakstītas citās valodās, tādās kā C, glabājas ārpus datu bāzes.Galvenie metožu tipi ir:
Member tipa metodes ; Static tipa metodes; Map tipa metodes; Order tipa metodes; konstruktora metodes.
Konstruktora metodi (constructor method) sistēma definē katram objektu tipam. Konstruktora metodi izsauc, lai konstruētu vai izveidotu dotā tipa objekta eksemplāru.
Objekta metodes apraksts sākas ar atslēgvārdiem: MEMBER; STATIC; MAP MEMBER; ORDER MEMBER.
Metožu apraksti seko aiz atribūtu aprakstiem. Ar MAP un ORDER atslēgvārdiem norāda objekta tipa eksemplāru šķirošanas metodi
un tajā izmantojamo eksemplāru salīdzināšanas funkciju.Metožu galvenes tiek nodefinētas objekta tipa veidošanas, zemāk var aplūkot piemēru:
CREATE OR REPLACE TYPE objekts1 AS OBJECT(...MEMBER FUNCTION NOSAUK(param1, param2) RETURN NUMBER,...);
Šajā piemērā tiek izveidota metode NOSAUK, kas pēc uzbūves ir funkcija ar diviem parametriem un atgriež NUMBER vērtību (1 vai 0), darbības beigās. Metodes var būt arī procedūras, tad vienīgi FUNCTION vietā, izteiksmē tiek rakstīta PROCEDURE, un jāatceras, ka procedūrām nelieto atslēgvārdu RETURN. Var būt vairāku veidu metodes, proti bez MEMBER vēl var būt STATIC un CONSTRUCTOR.
Kad nodefinēta metodes galvene, nepieciešams arī nodefinēt pašu metodi, to var paveikt nodefinējot procedūras(funkcijas) struktūru objekta tipa ķermenī:
DBVS-3 © Arnis Kiršners - 2008 10
CREATE OR REPLACE TYPE BODY objekts1 AS ... MEMBER FUNCTION NOSAUK(param1, param2) RETURN NUMBER IS BEGIN ... END; ...END;
MEMBER metodi var kombinēt ar sekojošiem atslēgvārdiem MAP un ORDER (pie metodes definēšanas tie jāraksta priekšā MEMBER), tas domāts, lai pēcāk būtu iespējams salīdzināt objektu eksemplārus. Jāatceras, ka viena objekta robežās var definēt tikai vienu MAP\ORDER MEMBER metodi, un ORDER MEMBER metodi var definēt tikai superklasei, ne pēcteču klasēm [3].
DBVS-3 © Arnis Kiršners - 2008 11
5. Allena operatorus realizējošo metožu definēšana
Allena operatori (laika predikāti), tiek pielietoti dažādu laika posmu salīdzināšanai un pārbaudei vai interesējošie intervāli pārklājas, ir vienādi, ietilpst, atrodas pirms, saskaras utt. Šajā darbā objekta metožu veidā definēju sekojošus operatorus:
A pārklāj B AB
A sākums vienāds ar B AB
A beigas vienādas ar B AB
A vienāda ar B AB
Dotie operatori atgriež vienu vērtību, ja izpildās tad 1, ja neizpildās, tad 0.
5.1. Pirmais vaicājums
Pirmajā vaicājumā pielieto MEMBER tipa metodi PARKLAJAS(PARAMETRS1, PARAMETRS 2) ar mainīgajiem, kuri tiek nodoti objekta ķermenim - izpildei. Funkcijas nodošanu objekta ķermenim realizē ar vaicājuma palīdzību, pielietojot operatoru VALUE().PARKLAJAS(PARAMETRS 1, PARAMETRS 2).
5.2. Otrais vaicājums
Otrajā vaicājumā pielieto ORDER MEMBER tipa metodi PARKLAJAS(AA OBJEKTS) ar mainīgajiem, kuri tiek nodoti objekta ķermenim - izpildei. Funkcijas nodošanu objekta ķermenim realizē ar vaicājuma palīdzību, pielietojot operatorus SELECT ar apakš SELECT vaicājumiem, kuros tiek salīdzināti izvēlētie objekti, tādā veidā nosakot pārklāšanās funkcijas PARKLAJAS izpildi.
5.3. Trešais vaicājums
Trešajā vaicājumā tiek izmantotas 4 MEMBER tipa metodes: SAK_VIENADS (atlasa tās laika sērijas, kurām ir vienāds sākums), BEIG_VIENADS (atlasa tās laika sērijas, kurām ir vienādas beigas), VIENADS (atlasa tās laika sērijas, kuras ir vienāds pēc garuma), PARKLAJ (atlasa tās laika sērijas, kuras pārklājas), tādā veidā tiek izgūta vienlaicīgi dažāda tipa informācija, par attiecīgajām laika sērijām.
5.4. Ceturtais vaicājums
Ceturtajā vaicājumā tiek izmantota MEMBER tipa metode: SAK_VIENADS (atlasa tās laika sērijas, kurām ir vienāds sākums) un SELECT rindā atrod, attiecīgi ar operatoriem COUNT - laika sēriju skaitu ar vienādu sākumu un SUM – kopējo laika apjomu, ko diktori ir pavadījuši lasot ziņas.
5.5. Piektais vaicājums
Piektajā vaicājumā tiek izmantota MEMBER tipa metode BEIG_VIENADS (atlasa tās laika sērijas, kurām ir vienādas beigas ar plkst. 22:15). Datumu atlasi veic izmantojot klona tabulas. DBVS-3 © Arnis Kiršners - 2008 12
6. Glabāšanas struktūras definēšana
Šajā nodaļā aplūko glabāšanas struktūras laika sērijām, to uzbūves principus, datu ievadi un vaicājumus izveidoto struktūru apskatei. Objekti tabulās iekrāsoti gaiši zilā krāsā.
6.1. Glabāšanas struktūra pirmajai laika sērijai
Pirmā laika sērija ir realizēta, kā tabula ar iekļauto tabulu, kuras struktūru skatīt . tabulā. Izveidotajā tabulā DARBA_LAIKI tiks glabāta informācijas par diktora vārdu, uzvārdu un identifikācijas numuru, bet iekļautajā tabulā informācija, kas attēlota laika sērijā par nostrādāto stundu skaitu (no - līdz) attiecīgajā darba dienā, kas savstarpēji veido saiti 1:N.
4. tabulaPirmās laika sērijas glabāšanas struktūra
Tabula: DARBA_LAIKIDL_NU
MDL_VAR DL_UZV DL_SAK DL_BEIG
DL_SAK DL_BEIG
DL_SAK DL_BEIG... ...
... ... ... ...
6.2. Glabāšanas struktūra otrajai laika sērijai
Otrā laika serija ir realizēta, kā viens objekts, kura struktūru skatīt . tabulā. Izveidotajā tabulā ZINAS tiks glabāta informācija par diktora vārdu, uzvārdu , ziņu kārtas numuru, ziņu sākuma un beigu laiku.
5. tabulaOtrās laika sērijas glabāšanas struktūra
Tabula: ZINAS
Z_NUM Z_VAR Z_UZV Z_SAK Z_BEIG... ... ... ... ...
6.3. Glabāšanas struktūra trešajai laika sērijai
Trešā laika sērija ir realizēta, kā tabula ar iekļauto tabulu, kura struktūru skatīt . tabulā. Izveidotajā tabulā LAKI tiks glabāta informācija par diktora vārdu, uzvārdu, ziņu kārtas numuru, ziņu sākuma un beigu laiku, un ēterā pavadīto laiku.
6. tabulaTrešās laika sērijas glabāšanas struktūra
Tabula: LAIKI
L_NUM L_VAR L_UZV L_SAK L_BEIG L_ETERA
L_SAK L_BEIG L_ETERA
DBVS-3 © Arnis Kiršners - 2008 13
L_SAK L_BEIG L_ETERA
L_SAK L_BEIG L_ETERA
L_SAK L_BEIG L_ETERA
L_SAK L_BEIG L_ETERA
DBVS-3 © Arnis Kiršners - 2008 14
7. Izgūšanas struktūras definēšana
Šajā nodaļā tiks apraksts objektu skatu izveides princips, katram no vaicājumiem.
7.1. Skata izveide pirmajam un otrajam vaicājumam
Objekta skata izveide pirmajam un otrajam vaicājumam, skatīt . attēlu, bet shematiski iekļautie objekti ir parādīti . tabulā, iekrāsojot atribūtu laukus.
7. tabulaObjekta skata OBJ_DL izveidē iekļautie atribūti
Tabula: DARBA_LAIKI
DL_NUM
DL_VAR DL_UZV DL_SAK DL_BEIGDL_SAK DL_BEIGDL_SAK DL_BEIG
... ...... ... ... ...
7.2. Skata izveide trešajam vaicājumam
Objekta skata izveide trešajam vaicājumam, skatīt . attēlu, bet shematiski iekļautie objekti ir parādīti . tabulā, iekrāsojot atribūtu laukus.
8. tabulaObjekta skata ODJ_ZINAS izveidē iekļautie atribūti
Tabula: ZINAS
Z_NUM Z_VAR Z_UZV Z_SAK Z_BEIG... ... ... ... ...
7.3. Skata izveide ceturtajam un piektajam vaicājumam
Objekta skata izveide ceturtajam un piektajam vaicājumam, skatīt . attēlu, bet shematiski iekļautie objekti ir parādīti . tabulā, iekrāsojot atribūtu laukus.
9. tabulaObjekta skata ODJ_ZINAS izveidē iekļautie atribūti
Tabula: LAIKI
L_NUM L_VAR L_UZV L_SAK L_BEIG L_ETERA
L_SAK L_BEIG L_ETERA
L_SAK L_BEIG L_ETERA
L_SAK L_BEIG L_ETERA
L_SAK L_BEIG L_ETERA
L_SAK L_BEIG L_ETERA
DBVS-3 © Arnis Kiršners - 2008 15
DBVS-3 © Arnis Kiršners - 2008 16
8. Datubāzu struktūru un metožu realizācija
8.1. Pirmajam vaicājumam
Ar dotā vaicājuma palīdzību, skatīt . attēlu, izveidojam objekta tipu, kurā tiks glabāta laika sērija, kas uzdota ar datu tipu DATE, kas saturēs sekojošus parametrus: datums un laiks. Tiks izveidoti divi lauki: darba sākuma un beigu laika glabāšanai. Laika sērijas formāts tiks izmantots sekojošs: DD.MM.YYYY. HH24:MI.
5. att. Tipa LAIKS_D izveide
Objekta tipam LAIKS_D izveidojam tipu LAIKI_D, skatīt . attēlā.
6. att. Tipa LAIKI_D izveide
Izveidojam tabulu DARBA_LAIKI, kurā kā iekļautā tabula būs objekts D_LAIKS, skatīt . attēlu un atribūtu laukiem numurs, vārds, uzvārds.
7. att. Tabulas DARBA_LAIKI izveide ar iekļauto tabulu
Ar INSERT INTO operatoru tiek ievadīti dati tabulā DARBA_LAIKI, kuru ievades struktūra ir attēlota . attēlā.
DBVS-3 © Arnis Kiršners - 2008 17
8. att. Datu ievade tabulā DARBA_LAIKI ar operatoru INSERT INTO
Ar vaicājuma palīdzību, skatīt . attēlu, tiek veikta pārbaude ievadītajām struktūrām pirmajai laika sērijai, kā arī ar operatora TO_CHAR palīdzību tiek formatēta datu izvades forma laika sēriju struktūrām.
9. att. Ievadīto datu pārbaude pielietojot operatoru TABLE
Šajā vaicājumā, skatīt . attēlu, tiek realizēta datu tipa DATE definēšana, lietojot paplašinātu datuma tipa attēlošanu, kurā būs redzams datums formātā DD.MM.YYYY. un laiks – HH24:MI, kas nozīmē, ka laiks tiks attēlots no 00 – 24 stundas un minūtes no 00-60.
10. att. Datu tipa DATE lauka definēšana
Dotajā vaicājumā, skatīt . attēlu, tiks izveidots objekta tips, kurā būs sekojoši atribūti diktora vārds, uzvārds, darba laika sākums un beigas par attiecīgo datumu, kā arī MEMBER tipa funkcijas, kuras izpilde atrodas objekta ķermenī, skatīt . attēlu.
DBVS-3 © Arnis Kiršners - 2008 18
11. att. Objekta tipa OBJ_DL izveide
Ar sekojoša vaicājumu palīdzību, skatīt . attēlu, tiek realizēts objekta skats DL_SKATS, kurš tiks izmantots SELECT tipa vaicājumos, pielietojot operatoru VALUE un atsauci uz objekta skatu.
12. att. Skata DL_SKATS izveide pirmajam un otrajam vaicājumam
Šajā vaicājumā, skatīt . attēlu, tiek realizēts objekta ķermeņa tips OBJ_DL, izsaukta vēl viena MEMBER tipa funkcija un vaicājumā realizēti objektu pārklāšanās metodes nosacījumi, kas ir funkcijas izpildes ķermenis, ja objektu laika sērijas pārklājās funkcijas atgriež 1.
13. att. Objekta tipa ķermeņa izveide OBD_DL
DBVS-3 © Arnis Kiršners - 2008 19
8.2. Otrajam vaicājumam
Dotā vaicājuma struktūra ir identiska pirmā vaicājuma struktūrai no . līdz . attēlam parādītajām darbībām, tad, skatīt . attēlu, tiek izveidots vaicājums, pielietojot VALUE operatoru ievadīto struktūru pārbaudei.
14. att. Ievadīto datu struktūru pārbaude pielietojot operatoru VALUE
Dotajā vaicājumā, skatīt . attēlu, tiks izveidots objekta tips, kurā būs sekojoši atribūti diktora vārds, uzvārds, darba laika sākums un beigas par attiecīgo datumu, kā arī ORDER tipa funkcija, kuras izpilde atrodas objekta ķermenī, skatīt . attēlu.
15. att. Objekta tipa OBJ_DL izveide
Objekta skatu izmantosim iepriekšējo, skatīt . attēlu. Objekta ķermeņa, skatīt . attēlu
16. att. Objekta tipa ķermeņa izveide OBD_DL
DBVS-3 © Arnis Kiršners - 2008 20
izveide realizēta objekta ķermeņa tipā OBJ_DL, kurā ORDER tipa funkcija PARKLAJAS atgriež objektu OBJ_DL vērtību 1, ja notikusi objektu pārklāšanās, kuru salīdzināšana tiek veikta objekta ķermenī.
8.3. Trešajam vaicājumam
Trešā vaicājuma realizācijai, sākumā jāizveido objekta tips, kuru atribūtu izveide un Allena operatoru, kas tiek realizēta ar MEMBER funkcijas palīdzību, realizācija attēlota . attēlā.
17. att. Objekta tipa OBJ_ZINAS izveide
Objekta ķermeņa ODJ_ZINAS izveide, skatīt . attēlu. Objekta ķermenī realizēta četru MEMBER funkciju realizācija, kas realizē laika sēriju beigu un sākuma salīdzināšanu, pārklāšanos un vienādības pārbaudi, ja tiek realizēta kāda no funkcijām, tad tiek atgriezta vērtība 1.
18. att. Objekta tipa ODJ_ZINAS ķermeņa realizācija
DBVS-3 © Arnis Kiršners - 2008 21
Šajā vaicājumā tiek realizēta tabulas ZINAS izveide, skatīt . attēlu.
19. att. Tabulas ZINAS izveide
Ar nākamo vaicājumu, skatīt . attēlu, tiek realizēta datu ievade tabulā ZINAS.
20. att. Datu ievade tabulā ZINAS
Šajā vaicājumā, skatīt . attēlu, tiek realizēta ievadīto datu struktūru pārbaude, kurā izmantojot operatoru VALUE izvada objektu kolonnu, par diktoriem, kas lasījuši ziņas attiecīgajā datumā un laikā no līdz.
Ar vaicājumu, skatīt . attēlu, tiek realizēts objekta skats Z_SKATS, kas tiks izmantots trešā vaicājuma realizācijai.
DBVS-3 © Arnis Kiršners - 2008 22
21. att. Ievadīto datu struktūru tabulā ZINAS pārbaude
22. att. Objekta skata Z_SKATS izveide trešajam vaicājumam
8.4. Ceturtajam un piektajam vaicājumam
Ceturtā un piektā vaicājuma realizācijai, sākumā jāizveido objekta tips, kuru tiek izveidoti laika sēriju atribūti ar sākuma – beigu datumu un laiku, kā arī Allena operatoru realizācija, kas realizēta ar MEMBER funkciju palīdzību, kuras realizē laika sēriju atrašanu ar vienādu sākumu, vienādām beigām, vienādām un, kas savstarpēji pārklājas, vaicājuma realizācija parādīta . attēlā. Savukārt metožu izsaukuma realizācija parādīta . attēlā. Tipa LAIKS_B realizācija parādīta 25. attēlā, bet . attēlā tiek parādīta tabulas LAIKI izveide, kur kā iekļautā tabula ir objekta tips LAIKS_B.
DBVS-3 © Arnis Kiršners - 2008 23
23. att. Objekta tipa LAIKS_A
24. att. Objekta ķermeņa LAIKS_A realizācija
25. att. Objekta tipa LAIKS_B
26. att. Tabulas LAIKI realizācija
DBVS-3 © Arnis Kiršners - 2008 24
Nākamā vaicājumā ar INSERT INTO operatoru ir realizēta datu ievade tabulā LAIKI, kura izpildījums ir paradīts . attēlā.
27. att. Datu ievade tabulā LAIKI
DBVS-3 © Arnis Kiršners - 2008 25
Ar nākamā vaicājuma palīdzību, skatīt . attēlu, izveidojam objekta skatu ar nosaukumu L_SKATS1.
28. att. Objekta skata L_SKATS1 izveide trešajam vaicājumam
DBVS-3 © Arnis Kiršners - 2008 26
9. Temporālo vaicājumu izpilde
Dotajā sadaļā tiks aplūkoti vaicājumu realizāciju, kuru izveide tika atspoguļota iepriekšējās nodaļās.
9.1. Pirmajam vaicājumam
Ar dotā vaicājuma palīdzību, skatīt . attēlu, izgūsim to diktoru vārdus un uzvārdus, darba sākumu un beigas, kuru darba laiks pārklājas 17.10.2008. laika periodā no plkst. 7:00 līdz plkst. 17:00. Ar vaicājumu palīdzību tiek izsaukta MEMBER tipa metode, kuras objekta ķermenī tiek veikta objektu salīdzināšana, vai nav notikusi pārklāšanās starp laika sērijām, ja tā ir notikusi, tad metodes izpildes ķermenis atgriež vērtību 1 vaicājumam, kura rezultāts tiek attēlots atribūta laukā REZULTATS.
29. att. Pirmā vaicājuma realizācija
Nākamajā vaicājumā, skatīt . attēls, iepriekšējais vaicājums tiek papildināts ar WHERE rindu, kurā tiek atlasīti tikai tie ieraksti, kam lauka REZULTATS vērtība ir vienāda ar 1.
30. att. Pirmā vaicājuma realizācija papildināta ar WHERE operatora
9.2. Otrajam vaicājumam
Ar otrā vaicājuma palīdzību, kas datu izguves ziņā līdzīgs pirmajam, skatīt . attēlā, izgūsim to diktoru vārdus un uzvārdus, darba sākumu un beigas, kuru darba laiks pārklājas
DBVS-3 © Arnis Kiršners - 2008 27
17.10.2008. laika periodā no plkst. 7:00 līdz plkst. 17:00 un uzvārds nav Zviedre. Ar vaicājumu palīdzību tiek izsaukta ORDER MEMBER tipa metode, kuras objekta ķermenī tiek veikta objektu salīdzināšana, vai nav notikusi pārklāšanās starp laika sērijām, ja notikusi pārklāšanās metode atgriež vērtību 1, par kuras nostrādi atribūta laukā REZULTATS tiek attēlota vērtība PARKLAJAS. Dotā vaicājuma atšķirība no iepriekšējā ir, ka SELECT tipa apakšvaicājums, kurš vienā gadījumā ir iekļauts metodes ķermenī, bet otrajā gadījumā vaicājumā.
31. att. Otrā vaicājuma realizācija
9.3. Trešajam vaicājumam
Nākamajā vaicājumā, skatīt . attēlā, izgūsim tos diktorus, kuri 17.10.2008. līdz plkst. 9:00 vadīja ziņas (MEMBER (Allena operators) BEIG_VIENADS funkcija), kuri 17.10.2008. no plkst. 20:00 vadīja ziņas (MEMBER (Allena operators) SAK_VIENADS funkcija), kuru ziņu vadīšanas posms pārklājas ar periodu 18.10.2008. no plkst. 18:10 līdz plkst. 18:40 (MEMBER (Allena operators) PARKLAJ funkcija) un, kuru ziņu vadīšanas posms vienāds ar periodu 19.10.2008. no plkst. 20:00 līdz plkst. 20:45 (MEMBER (Allena operators) VIENADS funkcija). Visos četros gadījumos funkcijai MEMBER tiek nodoti parametri, kuru izpilde ir realizēta MEMBER metodes ķermenī.
Vaicājuma rezultātā, MEMBER metodes ķermenī, tiek salīdzinātas laika sērijas un atgrieztas tās vērtības, kuras tiek izvēlētas metožu realizācijas gaitā.
DBVS-3 © Arnis Kiršners - 2008 28
32. att. Trešā vaicājuma realizācija
9.4. Ceturtajam vaicājumam
Ar dotā vaicājuma palīdzību, skatīt . attēlu, izgūsim diktoru skaitu, kas 19.08.2008. plkst. 20:00 lasīja ziņas un kopējais laiks minūtēs, cik ilgi tika lasītas ziņas, kur ar metodes MEMBER palīdzību tiek aprēķināts to laika sēriju sākums, kuras sakrīt un kas tiek aprēķinātas ar COUNT vai SUM operatoru.
33. att. Ceturtā vaicājuma realizācija
9.5. Piektajam vaicājumam
Ar dotā vaicājuma palīdzību, skatīt . attēlu, tiek izgūts diktora ēterā pavadītais laiks 17.08.2008., ja ziņu beigu laiks ir plkst. 22:00. Ar klona tabulas palīdzību, vaicājumā tiek atlasīti tie ieraksti, kas atbilst vaicājuma nostādnei.
34. att. Piektā vaicājuma realizācija
DBVS-3 © Arnis Kiršners - 2008 29
10. Secinājumi
Temporālās datubāzes rada iespēju glabāt datus par noteiktiem laika intervāliem (sērijām), par dažādu laika posmu, šādus laika posmus ir iespējams salīdzināt un izgūt interesējošu informāciju, piemēram, izgūt to diktoru vārdus un darba laiku, kuru darba laiks attiecīgajā dienā pārklājas ar kāda cita noteikta darbinieka laiku. Pastāvošos temporālos datus iespējams apstrādāt ar temporālās algebras darbībām vai Allena operatoriem (laika predikātiem), kas savā starpā salīdzina laika intervālus un atgriež attiecīgi vērtību patiess vai nepatiess. Vienu no efektīgākajām struktūrām, kas nodrošina temporālo datu glabāšanu ir bāzēta uz objektorientētu pieeju, kas nākotnē varētu tikt izmantota arvien biežāk.
Darbā izveidotajām laika sērijām, vadoties no to specifikas, tika izmantoti četri Allena operatori, kas realizēti metožu formā un tie realizē sekojošas funkcijas: pārklāšanās, sākums vienāds, beigas vienādas un vienādas laika sērijas. Ja izpildās kā no metodēm, tad funkcija atgriež vērtību 1. Temporālās algebras operācijas realizētas ar projekciju un objektu atlasi.
Svarīgs posms temporālo datubāzu izveidē ir objektu skati, tie tiek veidoti, lai atvieglotu datu izgūšanu un vienkāršotu to pārskatāmību, it īpaši, ja tiek izmantoti objekti, kā arī reālo datu bāzes atribūtu aizsardzībai apskatei no ārpuses.
Piemēram, pirmajā un otrajā vaicājumā darba autors realizējis dažādas pieejas, kura iegūtie rezultāti ir absolūti identiski. Pirmajā vaicājumā izmantojot MEMBER tika metodi, kurā tiek veikta objektu salīdzināšana vai nav notikusi objektu pārklāšanās, ja ir, tad metode atgriež vērtību 1, bet savukārt otrajā vaicājumā pielietojot apakš SELECT vaicājumu izveidots objekts, kas tiek nodots ORDER MEMBER tipa metodei, kurā tiek veikta objektu pārklāšanās salīdzināšana. Ar dotiem piemēriem darba autors ir centies iezīmēt sekojošas īpašības, ja līdzīgi tipa vaicājumi nav sistemātiski nepieciešami, tad lietderīgāk ir uzrakstīt garāku vaicājumu, tajā iekļaujot apakš SELECT vaicājumu, bet ja vaicājumi ir vienveidīgi un bieži atkārtojas – labāk pielietot ir pirmo vaicājumu ar MEMBER tipa metodes izmantošanu, kur jau pieminētais apakšvaicājums tiek izpildīts metodes ķermenī, šo vaicājumu arī varētu nosaukt kā metode metodē.
Darba autors nodemonstrējis arī četru metožu vienlaicīgu izpildi, tādā veidā izgūstot dažāda veida informāciju par laika sērijām. Darbā tika realizēta pārklāšanās, sākuma un beigu, kā arī vienādu laika sēriju atrašana.
Darbā tika realizēta klonu tabulu izveide, tādā veidā nodrošinot laika sēriju atlasi ar iekļautām MAX funkcijām, izvēlēto laika sēriju atrašanai. Iespējams, ka klonu tabulas izmantošana dotajām laika sērijām nav pats labākais piemērs, bet sākotnēji, izveidojot laika sērijas darba autors nevarēja paredzēt gala rezultātu, kaut gan klona tabulas izpildīja savu funkciju un veic laika sēriju atlasi.
Darba sākumā, autors sastapās ar problēmām, kas saistītas ar paplašinātā datuma formāta izmantošanu, jo darbā tiek izmantotas laika sērijas ar datumu un laiku, kas realizēts attiecīgā formātā: DD.MM.YYYY. HH24:MI, lai to realizētu jāaizpilda ir attiecīgs vaicājums, kas realizē NLS_DATE_FORMAT uzstādījumu.
DBVS-3 © Arnis Kiršners - 2008 30
Izmantotās literatūras saraksts
1. Prof. Jānis Eiduks «Lekciju konspekti» - 20082. J. Perry, G.Post «Introduction to Oracle 10g» - 20063. Scoot Urman, Ron Hardman, Michael McLaughlin «Oracle Database 10g PL/SQL
Programming» - 2004
DBVS-3 © Arnis Kiršners - 2008 31