datubaze.files.wordpress.com  · web viewanalizējam 3 preces maize, sviests un olas....

25
X1 Y1 Z1 X Y Z F1 Datu organizēšanas kubveida vai hiperkuba modelis Datu bāzē faktoru analīzes datus vienkāršākos gadījumos var iekļaut vienā tabulā. Ja analīzē datu faktoriem ir arī apakšfaktori, lietderīgi izmantot tabulu zvaigznes un sniegpārsliņas shēmu. Šajās shēmas faktori un apakšfaktori veido hierarhiskas struktūras. Piemēram, faktors gads. Datu analīzē mēs vēlamies lietot arī sīkākas gada apakšvienības (pakārtotie faktori): mēnesis, nedēļa, diena. Tātad zvaigznes un sniegpārsliņas shēma sastāv no faktu datiem, kuri saistīti ar vairākām hierarhiskām struktūrām (faktori apakšfaktori) (attēlā). Risinot prakses uzdevumus, pētniekiem radās ideja zvaigznes un sniegpārsliņas shēmas parocīgākam un vieglāk uztveramam attēlojumam daudzdimensiju kuba veidā (attēlā). Fakti (rezultāti) Faktor s Faktor s Faktor s Apakšfakt ori Apakšfakt ori Apakšfakt ori 1

Upload: others

Post on 01-Oct-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: datubaze.files.wordpress.com  · Web viewanalizējam 3 preces maize, sviests un olas. Attiecīgajās kuba šūnās ir ierakstītas atbilstošās peļņas vērtības. Kubā šūnas

X1

Y1Z1

X

Y

Z

F1

Datu organizēšanas kubveida vai hiperkuba modelisDatu bāzē faktoru analīzes datus vienkāršākos gadījumos var iekļaut vienā tabulā. Ja analīzē datu faktoriem ir arī apakšfaktori, lietderīgi izmantot tabulu zvaigznes un sniegpārsliņas shēmu. Šajās shēmas faktori un apakšfaktori veido hierarhiskas struktūras. Piemēram, faktors gads. Datu analīzē mēs vēlamies lietot arī sīkākas gada apakšvienības (pakārtotie faktori): mēnesis, nedēļa, diena. Tātad zvaigznes un sniegpārsliņas shēma sastāv no faktu datiem, kuri saistīti ar vairākām hierarhiskām struktūrām (faktori – apakšfaktori) (attēlā).

Risinot prakses uzdevumus, pētniekiem radās ideja zvaigznes un sniegpārsliņas shēmas parocīgākam un vieglāk uztveramam attēlojumam daudzdimensiju kuba veidā (attēlā).

Lietojot ģeometriskos objektos, mēs izmantojam dimensijas. Tātad 3 dimensiju kubam ir trīs dimensijas. Dimensijas veidos faktora un apakšfaktora vērtības. Norādot katrai dimensijai vērtību (piemēram, X1, Y1, Z1) esam ieguvuši punktu kubā un varam tam piekārtot atbilstošā fakta vērtību F1.Analīzē faktoru un apakšfaktoru vērtības ir diskrētas vērtības. Gads ir laika periods no pirmās gada dienas sākuma līdz pēdējās gada dienas beigām. Kavartāls ir laika periods no attiecīgā sākuma mēneša pirmās dienas līdz kvartāla beigu mēneša pēdējai dienai. Diena ir laika periods no pirmās dienas sekundes līdz pēdējai dienas sekundei.Arī citu faktoru un apakšfaktoru vērtības uz dimensijas veido nevis punktus bet nogriežņus (1. veikals, 2. veikals, ...).

Fakti (rezultāti)Faktors Faktors

FaktorsApakšfaktori

Apakšfaktori

Apakšfaktori

1

Page 2: datubaze.files.wordpress.com  · Web viewanalizējam 3 preces maize, sviests un olas. Attiecīgajās kuba šūnās ir ierakstītas atbilstošās peļņas vērtības. Kubā šūnas

Dimensijas Laiks datu hierarhija

Tātad daudzdimensiju kubu veido šūnas, kuras atbilst dimensiju vērtību kopai. Piemēram, gads = 2020, veikals = "Maize", prece = "Lāča rupjmaize". Atbilstošajā kuba šūnā tiks ierakstīts cik ar šo preci, 2020. gadā veikalā "Maize" ir nopelnīts, vai cik maizes kukuļi ir pārdoti.

dimensija

Apskatīsim tabulu PRECES (tabulas attēls), kurā ir informācija par trīs faktoru Veikals, Prece un Gads izmaiņām un atbilstošie fakti jeb rezultāti Peļņa. Pārveidosim šo plakanās tabulas datu struktūru trīsdimensiju (Veikals, Prece, Gads) kuba veidā.

datu šūna ar fakta jeb rezultātavērtību

1. kvartāls 2. kvartāls 3. kvartāls 4. kvartāls

gads

janv

āris

febr

uāri

sm

arts

2

Page 3: datubaze.files.wordpress.com  · Web viewanalizējam 3 preces maize, sviests un olas. Attiecīgajās kuba šūnās ir ierakstītas atbilstošās peļņas vērtības. Kubā šūnas

Dimensiju jeb faktoru vērtības ir sekojošas:1) analizējam gadus no 2013 līdz 2016 gadam;2) analizējam divus veikalus Vārpa un Lazda;3) analizējam 3 preces maize, sviests un olas.

Attiecīgajās kuba šūnās ir ierakstītas atbilstošās peļņas vērtības. Kubā šūnas veido gan rindas, gan kolonas. Mainoties gada vērtībām un preces nosaukumam veidojas šūnu rindas. Mainoties veikala nosaukumam veidojas šūnu kolonas (attēls). Trīs dimensiju kuba attēlu var labi un vienkārši izprast. Bet dimensiju skaits parasti ir krietni lielāks. Praksē visbiežāk to skaits ir no 7 līz 11. Ko darīt, ja dimensiju skaits ir lielāks par 3? Tad tiek izmantots vispārīgs priekšstats par n – dimensiju kubu. Tam ir n dimensijas un attiecīgas kuba šūnas ar faktu vērtībām, bet jautājums kā īsti šūnas ir sakārtotas kubā netiek apspriests. Būtiski ir, ka attiecīgām dimensiju vērtībām atbilst atbilstošas faktu vērtību šūnas un dimensijas vērtības vienā hierarhijas līmenī (faktoru un apakšfaktoru) mainās lineāri.

tabula PRECESID Veikals Prece Gads Peļņa1 Vārpa maize 2013 210002 Vārpa maize 2014 250003 Vārpa maize 2015 260004 Vārpa maize 2016 240005 Vārpa sviests 2013 320006 Vārpa sviests 2014 360007 Vārpa sviests 2015 400008 Vārpa sviests 2016 340009 Vārpa olas 2013 500010 Vārpa olas 2014 600011 Vārpa olas 2015 500012 Vārpa olas 2016 600013 Lazda maize 2013 1500014 Lazda maize 2014 2000015 Lazda maize 2015 3000016 Lazda maize 2016 3500017 Lazda sviests 2013 2800018 Lazda sviests 2014 3000019 Lazda sviests 2015 5000020 Lazda sviests 2016 4500021 Lazda olas 2013 600022 Lazda olas 2014 700023 Lazda olas 2015 500024 Lazda olas 2016 7000

3

Page 4: datubaze.files.wordpress.com  · Web viewanalizējam 3 preces maize, sviests un olas. Attiecīgajās kuba šūnās ir ierakstītas atbilstošās peļņas vērtības. Kubā šūnas

6000 7000 5000 7000

5000 6000 5000 6000

28000 30000 50000 45000

32000 36000 40000 34000

15000 20000 30000 35000

21000 25000 26000 24000

15000 20000 30000 35000

21000 25000 26000 24000

15000 20000 30000 35000

21000 25000 26000 24000

15000 20000 30000 35000

21000 25000 26000 24000

Veikali Preces

Lazda

Vārpa Gadi 2013 2014 2015 2016

Attēlā parādīts 3 dimensiju veikali, preces un gadi kubs ar rezultātu jeb faktu vērtībām veikaliem Vārpa un Lazda, no 2013 līdz 2016 gadam pārtikas precei maize. Tā kā preces dimensijai ir 3 vērtības, tad papildus tiek pievienotas kuba šūnas dimensijas Preces virzienā (precēm sviests un olas).

olas

sviests

maize

4

Page 5: datubaze.files.wordpress.com  · Web viewanalizējam 3 preces maize, sviests un olas. Attiecīgajās kuba šūnās ir ierakstītas atbilstošās peļņas vērtības. Kubā šūnas

Datu kuba šķēles (slices)1

Analizējot datu kub vērtības tiek skatītas dažādu agregātu vērtības: šūnu summas, skaits un citas. Agregātu vērtības veidojas no vairāku šūnu vērtībām. Piemēram, var iegūt peļņu no visām pārdotajām precēm visos veikalos noteiktā gadā. Lai iegūtu šo agregāta vērtību, dimensijā gads tiks izvēlētas visas šūnas, kas saistītas ar šo gada vērtību (attēls). Šūnu kopa izveidos kubā ātbilstošu šķēli un tiks aprēķināta agregātvērtība visām šķēles šūnu vērtībām. Šķēles novietojums ir vertikāls ar dimensijām veikals un prece.

Ja mūs interesē viena konkrēta veikala peļņa pa visām precēm visos gados, iegūsim horizontālu šķēli ar dimensijām prece un gads (attēls).

1 http://docs.oracle.com/cd/E12825_01/epm.111/esb_dbag/frameset.htm?dinconc.htm

Veikals

Gads

Prece

Veikals

Gads

Prece

5

Page 6: datubaze.files.wordpress.com  · Web viewanalizējam 3 preces maize, sviests un olas. Attiecīgajās kuba šūnās ir ierakstītas atbilstošās peļņas vērtības. Kubā šūnas

Analizējot konkrētas preces doto peļņu visos veikalo un visos gados iegūsim vertikālu šķēli ar asīm veikals un gads (attēls).

Kuba vienā šūnā (attēls) parasti glabājas vairāk nekā viena fakta vērtība. Piemēram, vienā veikalā noteiktā gadā viena tipa prece ir nopirkta vairākas reizes. Tātad peļņas agregātvērtības aprēķinam būs jāņem visas šīs vērtības.

Izmantojot vaicājumos virtuālo daudzdimensiju kubu, uz tā šūnām jāatsaucas, jāveido atsauces (references). Tiek lietotas divu tipu atsauces:

1) dimesiju simboliskās (symbolic) atsauces. To pierakstā tiek norādīts fakta tips (attiecīgā tabulas kolona) un kā argumenti dimensiju vērtības:

PEĻŅA [VEIKALS = 'Inese', PRECE = 'maize', GADS >=2015]2) dimensiju pozicionālās (positional) atsauces. Konstantas vērtības vai

konstantas izteiksmes lietošana: PEĻŅA['maize', 2011]

Veikals

Gads

Prece

Veikals

Gads

Prece

6

Page 7: datubaze.files.wordpress.com  · Web viewanalizējam 3 preces maize, sviests un olas. Attiecīgajās kuba šūnās ir ierakstītas atbilstošās peļņas vērtības. Kubā šūnas

SQL Model klauzulas iespējas SELECT vaicājumos2

Veicot faktoru analīze vienai tabulai ar datiem vai tabulu zvaigznes un sniegpārsliņas shēmām, var izveidot virtuālus datu kubus ar dimensijām un faktiem. Tas ļauj daudz vieglāk un rūpīgāk izpētīt faktoru un pakārtoto faktoru ietekmi uz rezultātu. To var izdarīt arSQL valodas klauzulas SQL Model palīdzību.

1. SQL Model klauzula (īpašs noteikums dokumentā) izveido vairākdimensiju virtuālo kubu no vaicājuma rezultātiem un pēc tam lieto formulas (ko sauc par kārtulām jeb likumiem) šim kubam, lai aprēķinātu jaunas vērtības.2. Likumi var variēt no vienkāršām aritmētiskām izteiksmēm līdz vienādojumu sistēmām, izmantojot arī rekursiju.3. Datu apjomu ierobežo tikai atmiņas resursi.4. Virtuālos kubus var viegli koplietot darba grupās, nodrošinot, ka aprēķini ir konsekventi visiem lietojumiem.6. SQL Model klauzula ļauj izveidot vairākdimensiju virtuālo kubu, kartojot vaicājuma kolonnas trīs grupās:

1) partīcijas jeb nodalījumi definē rezultātu kopas loģiskos blokus. SQL Model klauzulas noteikumi tiek lietoti katram nodalījumam neatkarīgi no citiem nodalījumiem. Tādējādi nodalījumi kalpo kā robežpunkts SQL Model aprēķinu paralēlizēšanai.

2) dimensijas definē daudzdimensiju virtuālo kubu un tiek izmantotas, lai identificētu nodalījumā esošās šūnas. Pēc noklusējuma pilnai dimensiju kombinācijai ir jāidentificē tikai viena nodalījuma šūna. Noklusējuma režīmā tos var uzskatīt par analogiem relāciju tabulas atslēgai.

3) mēri vai fakti (measures) ir līdzvērtīgi faktu tabulas mēriem zvaigznes shēmā. Tie parasti satur skaitliskas vērtības, piemēram, pārdošanas vienības vai izmaksas. Katrai šūnai var piekļūt, norādot pilnu dimensiju kombināciju. Katrai partīcijai var būt šūna, kas atbilst attiecīgajai dimensiju kombinācijai.

2 https://docs.oracle.com/database/121/DWHSG/sqlmodel.htm#DWHSG-GUID-538F78AA-9BF3-46F2-93D1-39A8739B3237

7

Page 8: datubaze.files.wordpress.com  · Web viewanalizējam 3 preces maize, sviests un olas. Attiecīgajās kuba šūnās ir ierakstītas atbilstošās peļņas vērtības. Kubā šūnas

SQL Model klauzulas struktūra virtuālā daudzdimensiju kuba veidošanai

SQL model klauzulā tiek izmantoti atslēgvārdi PARTITION BY, DIMENSION BY, MEASURES un RULES (attēlā). Sadaļā PARTITION BY tiek definēts kādas tabulas kolonas veidos virtuālo datu kubu (var tikt veidoti vairāki virtuālie kubi).Aiz DIMENSION BY atslēgvārda tiek definētas kuba dimensujas, tiek norādīti analīzes faktori un apakšfaktori.MEASURES norāda kādas kolonas tiek izmantotas kā fakti jrb rezultāti. RULES sadaļā tiek definētas kārtulas jeb likumi.

select ...from ...where ...MODEL [PARTITION BY (<kolonas>)] DIMENSION BY (<kolonas>) MEASURES (<kolonas>) [RULES] (<likums>, <likums>,.., <likums>)

Likumi norāda manipulācijas iespējas ar daudzdimensiju kuba šūnu vērtībām, kas definētas ar partīciju un dimensiju kolonnām.Likumi nodrošina piekļuvi kolonnas vērtībām un atjaunina tās, tieši norādot dimensiju vērtības.

8

Page 9: datubaze.files.wordpress.com  · Web viewanalizējam 3 preces maize, sviests un olas. Attiecīgajās kuba šūnās ir ierakstītas atbilstošās peļņas vērtības. Kubā šūnas

Likumu izteiksmju pieraksta noteikumi3

1. Vienas šūnas atsauces:PEĻŅA[PRODUKTS='maize', GADS =2011] = 1.5PEĻŅA['maize', 2011] = 1.5PEĻŅA['maize', 2011] = PEĻŅA['maize', 2010]*1.5

2. Atsauce uz vairākām šūnām:PEĻŅA['maize', 2011] = MAX(PEĻŅA)['maize', GADS BETWEEN 2008 and 2010]*1.5PEĻŅA['maize', GADS >2008] = PEĻŅA['maize', 2008]*1.2

3. CV() funkcijas lietošana. Likuma kreisās puses vērtību lietošana likuma labajā pusē:PEĻŅA[VALSTS in ('Latvija', 'Lietuva'), GADS= 2011] = PEĻŅA[CV(VALSTS), 2010]*1.5

4. Aizstājējzīmes lietošana:PEĻŅA[VALSTS is ANY, 2011] =PEĻŅA['Latvija', 2010]

5. Sakārtota aprēķinu kārtība:PEĻŅA[VALSTS is ANY, GADS BETWEEN 2007 and 2009] order by GADS = PEĻŅA[CV(VALSTS), CV(GADS)-1]

6. Iteratīva likumu novērtēšana (līdz sasniegts beigu stāvoklis). Var lietot arī beigu noteikumu UNTIL.MODELDIMENSION by (X)MEASURES (S)RULES ITERATE (4) (S[X=1] = S[x=1]/2) četras reizes atkārtot

7. Katrai partīcijai var būt savi likumi.

3 https://docs.oracle.com/database/121/DWHSG/sqlmodel.htm#DWHSG8778

9

Page 10: datubaze.files.wordpress.com  · Web viewanalizējam 3 preces maize, sviests un olas. Attiecīgajās kuba šūnās ir ierakstītas atbilstošās peļņas vērtības. Kubā šūnas

SQL Model realizēšanas piemērs4

Definēsim tabulu PARDOSANA. To veido piecas kolonas PRECE (kas tiek pārdots), VALSTS (uz kurieni prece pārdota), GADS (kad pārdota), DAUDZUMS (cik pārdota) un IENEMUMI.

create table PARDOSANA(VALSTS varchar2(20),PRECE varchar2(20),GADS number,IENEMUMI number);

insert into PARDOSANA values('Igaunija', 'piens', 2017, 20000);insert into PARDOSANA values('Igaunija', 'piens', 2018, 30000);insert into PARDOSANA values('Igaunija', 'maize', 2017, 10000);insert into PARDOSANA values('Igaunija', 'maize', 2018, 15000);insert into PARDOSANA values('Lietuva', 'piens', 2017, 30000);insert into PARDOSANA values('Lietuva', 'piens', 2018, 35000);insert into PARDOSANA values('Lietuva', 'maize', 2018, 15000);insert into PARDOSANA values('Lietuva', 'maize', 2018, 20000);

Analīzes nolūkos, tabulu PARDOSANA pārveidosim virtuālos daudzdimensiju kubos (partīcijas veido kolona VALSTS) ar dimensijām PRECE, GADS un faktu kolonu IENEMUMI.

select VALSTS,PRECE, GADS, IENEMUMI from PARDOSANAmodelpartition BY (VALSTS)dimension by (PRECE, GADS)measures (IENEMUMI)rules (IENEMUMI['piens', 2019] = IENEMUMI['piens', 2018]*1.2);

Izveidosim arī likumu, kurš nosaka, ka 2019 gadā ienākumi no piena būs 1.2 reizes lielāki. Tā ir prognoze un rezultātu tabulā parādīsies jaunas rindas ar 2019. Gada piena pārdošanas rezultātu Igaunijai un Lietuvai.Ar likuma palīdzību var koriģēt eksistējošās rindas tabulā un ģenerēt arī jaunas rindas tabulā (piemēram, kāiepriekš piemērā).

4 https://www.oracle.com/webfolder/technetwork/tutorials/obe/db/10g/r2/prod/bidw/sqlmodel/sqlmodel_otn.htm

10

Page 11: datubaze.files.wordpress.com  · Web viewanalizējam 3 preces maize, sviests un olas. Attiecīgajās kuba šūnās ir ierakstītas atbilstošās peļņas vērtības. Kubā šūnas

Vienas partīcijas datu izvade un prognozējoša likuma izmantošana5

SQL Model klauzulā var definēt vairākas virtuālā kuba partīcijas (partīcija Igaunija, partīcija Lietuva). Tās var lietot kopā un arī atsevišķi. Vaicājumā izmantota partīcija Lietuva un definēts likums piena pārdošanas ienākumu noteikšanai (prognozei) 2019. gadā.

select VALSTS, PRECE, GADS, IENEMUMIfrom PARDOSANAwhere VALSTS = 'Lietuva'modelpartition BY (VALSTS)dimension by (PRECE, GADS)measures (IENEMUMI)rules (IENEMUMI['piens', 2019] = IENEMUMI['piens', 2018]*1.2);

5 https://docs.oracle.com/database/121/DWHSG/sqlmodel.htm#DWHSG-GUID-538F78AA-9BF3-46F2-93D1-39A8739B3237

11

Page 12: datubaze.files.wordpress.com  · Web viewanalizējam 3 preces maize, sviests un olas. Attiecīgajās kuba šūnās ir ierakstītas atbilstošās peļņas vērtības. Kubā šūnas

Funkcijas izmantošana likumos

Likumos var tikt iekļautas arī funkcijas (piemēram, SUM()). Vaicājuma piemērā ienākumu vārtība 2019 gadam tiek prognozēta kā 2017. un 2018. gada ienākumu summa.

select VALSTS, PRECE, GADS, IENEMUMIfrom PARDOSANAwhere VALSTS = 'Lietuva'modelpartition BY (VALSTS)dimension by (PRECE, GADS)measures (IENEMUMI)rules (IENEMUMI['piens', 2019] = SUM(IENEMUMI)['piens', GADS BETWEEN 2017 and 2018]);

12

Page 13: datubaze.files.wordpress.com  · Web viewanalizējam 3 preces maize, sviests un olas. Attiecīgajās kuba šūnās ir ierakstītas atbilstošās peļņas vērtības. Kubā šūnas

UPSERT, UPSERT ALL un UPDATE norāžu izmantošana likumos

Izmantojot likumus var:1) var aprēķinā (ne datu bāzē) koriģēt faktu vērtības;2) izveidot tabulai jaunas datu rindas (priekš aprēķina, ne datu bāzē).

Norādes UPSERT un UPSERT ALL:1) ļauj veidot jaunas šūnas rezultātā (ne datu bāzē), kuras sākotnēji neeksistē;2) ja šūna eksistē tās vērtība tiek modificēta.

Norāde UPDATE ļauj tikai modificēt esošo šūnu vērtības.

select VALSTS, PRECE, GADS, IENEMUMIfrom PARDOSANAwhere VALSTS = 'Lietuva'modelpartition BY (VALSTS)dimension by (PRECE, GADS)measures (IENEMUMI)rules (UPDATE IENEMUMI['piens', 2018] = 40000);

13

Page 14: datubaze.files.wordpress.com  · Web viewanalizējam 3 preces maize, sviests un olas. Attiecīgajās kuba šūnās ir ierakstītas atbilstošās peļņas vērtības. Kubā šūnas

CV() funkcijas lietošana

CV() funkcija tiek lietota likumu labajā pusē lai norādītu "tā pati dimensijas vērtība, kas likuma kresajā pusē".

select VALSTS, PRECE, GADS, IENEMUMIfrom PARDOSANAwhere VALSTS = 'Lietuva'model return updated rowspartition BY (VALSTS)dimension by (PRECE, GADS)measures (IENEMUMI)rules (IENEMUMI['piens', 2018] = IENEMUMI[CV(PRECE), 2017]*0.9);

14

Page 15: datubaze.files.wordpress.com  · Web viewanalizējam 3 preces maize, sviests un olas. Attiecīgajās kuba šūnās ir ierakstītas atbilstošās peļņas vērtības. Kubā šūnas

Vispārēju norāžu (vildcard specification) ANY (jebkuršs) un IS ANY izmantošana dimensijām

Analīzes vaicājumos bieži ir jānorāda, ka kāda faktora vai apakšfaktora vērtība (dimensiju vērtība) var būt jebkura no esošam. Šājā gadījumā ir jāizmanto norādes IS ANY vai ANY.

select VALSTS, PRECE, GADS, IENEMUMIfrom PARDOSANAwhere VALSTS = 'Lietuva'model return updated rowspartition BY (VALSTS)dimension by (PRECE, GADS)measures (IENEMUMI)rules (IENEMUMI[PRECE is ANY, 2018] =IENEMUMI[CV(PRECE), CV(GADS)] + 100);

15

Page 16: datubaze.files.wordpress.com  · Web viewanalizējam 3 preces maize, sviests un olas. Attiecīgajās kuba šūnās ir ierakstītas atbilstošās peļņas vērtības. Kubā šūnas

Iteratīva likumu vērtības novērtēšana (iterative rule evaluation)

Likumam var norādīt ka tas jāizpilda vairākas reizes pēc kārtas. Tas nozīmē, ka pirmoreiz izpildot likumu tiek iegūta kāda vērtība. Šī vērtība tiek izmantota otrajā likuma aprēķinā. Process tiek turpināts līdz izpildīts viss norādītais iterāciju skaits.

select PRECE, GADS, DAUDZUMSselect VALSTS, PRECE, GADS, IENEMUMIfrom PARDOSANAwhere VALSTS = 'Lietuva' and PRECE = 'piens'model return updated rowspartition BY (VALSTS)dimension by (PRECE, GADS)measures (IENEMUMI)rules ITERATE(5)(IENEMUMI['piens', 2017] = IENEMUMI['piens', 2017]*0.9);SQL

Vaicājuma izpildes sākumā IENEMUMI vērtība bija 30000:Tabulas raksts: 'Lietuva', 'piens', 2017, 30000

Izpildot likumu 5 reizes ir iegūts šāds rezultāts:

16

Page 17: datubaze.files.wordpress.com  · Web viewanalizējam 3 preces maize, sviests un olas. Attiecīgajās kuba šūnās ir ierakstītas atbilstošās peļņas vērtības. Kubā šūnas

FOR cikla izmantošana6

Ja likumā jārealizē daudzām dimensijas vērtībām (jāiegūst vairāki rezultāti), var izmantot FOR ciklu. Vaicājumā ar to norādītas dimensijas PRECES vērtības un dimensijas GADS vērtības.

select VALSTS, PRECE, GADS, IENEMUMIfrom PARDOSANAwhere VALSTS = 'Lietuva'model return updated rowspartition BY (VALSTS)dimension by (PRECE, GADS)measures (IENEMUMI)rules (IENEMUMI[for PRECE in (select PRECE from PARDOSANA), for GADS in (2017, 2018)] = IENEMUMI[CV(PRECE), CV(GADS)]);

6 https://www.oracle.com/webfolder/technetwork/tutorials/obe/db/10g/r2/prod/bidw/sqlmodel/sqlmodel_otn.htm

17

Page 18: datubaze.files.wordpress.com  · Web viewanalizējam 3 preces maize, sviests un olas. Attiecīgajās kuba šūnās ir ierakstītas atbilstošās peļņas vērtības. Kubā šūnas

GROUP BY CUBE paplašinājumu izmantošana virtuālajam kubam

Ar klauzulas SQL Model palīdzību no vienas tabulas vai no sniegpārsliņas shēmas esam ieguvuši virtuālo daudzdimensiju kubu. Šī struktūra ir daudz ērtāka lietošanai analīzē, ja ir daudzi faktori un apakšfaktori. Izmantojot daudzdimensiju kuba struktūras datus, tiem var pielietot GROUP BY CUBE paplašinājumus analīzes veikšanai. Tātad koplietojot:

1) SQL Model klauzulas iespējas (virtuālo daudzdimensiju kubu veidošana);

2) GROUP BY CUBE tipa klauzulas (datu grupēšana un agregātvērtību aprēķināšana),

varam realizēt ļoti izvērstu, ērtu uninformatīvu datu faktoru analīzi.

select VALSTS, PRECE, GADS, SUM(IENEMUMI)from (select VALSTS, PRECE, GADS, IENEMUMIfrom PARDOSANAmodelpartition BY (VALSTS)dimension by (PRECE, GADS)measures (IENEMUMI)rules (IENEMUMI['piens', 2019] = IENEMUMI['piens', 2018]*1.2))group by cube(VALSTS, PRECE, GADS);

18

Page 19: datubaze.files.wordpress.com  · Web viewanalizējam 3 preces maize, sviests un olas. Attiecīgajās kuba šūnās ir ierakstītas atbilstošās peļņas vērtības. Kubā šūnas

SQL Model konstrukcijas izvērsta sintakse

MODEL[<global reference options>][<reference models>][MAIN <main-name>] [PARTITION BY (<cols>)] DIMENSION BY (<cols>) MEASURES (<cols>) Vērtību kopa, kas tiek modificēta vai radīta ar modeli. [<reference options>] [RULES] Izteiksmes, kas piekārto vērtības faktiem.<rule options> (<rule>, <rule>,.., <rule>)

<global reference options> ::= <reference options> <ret-opt> <ret-opt> ::= RETURN {ALL| UPDATED} ROWS <reference options> ::= [IGNORE NAV | Ignorē skaitliskās šūnas, kuru vērtība = 0.[KEEP NAV] Šūnas ar nemainīgām vērtībām.[UNIQUE DIMENSION | Partition By un Dimension By unikāli identificē katru šūnu modelī. UNIQUE SINGLE REFERENCE] Partition By un Dimension By unikāli identificē katru atsauci likumu labajā pusē.

<rule options> ::= [UPDATE | Modificē esošo šūnu vērtības. UPSERT | Modificē eksistējošo šūnu (cells) vērtības. Ja šūnu nav, tās tiek izveidotas. UPSERT ALL] Plašākas likuma notācijas. [AUTOMATIC ORDER | Likumi tiek apstrādāti viņu loģiskās atkarības kārtībā. SEQUENTIAL ORDER] Likumi tiek apstrādāti viņu izveidošanas kārtībā. [ITERATE (<number>) [UNTIL <condition>]] <reference models> ::= REFERENCE ON <ref-name> ON (<query>) DIMENSION BY (<cols>) MEASURES (<cols>) <reference options>

19