rĪgas tehniskĀ universitĀte - web view skatīts 16.05.2015. [odod1]oracle database online...
Post on 01-Feb-2018
231 Views
Preview:
TRANSCRIPT
RĪGAS TEHNISKĀ UNIVERSITĀTE
Datorzinātnes un informācijas tehnoloģijas fakultāte
Lietišķo datorsistēmu institūts
Lietišķo datorzinātņu katedra
Vadims Gališkins
Datu analīzes programmu realizēšana datu bāzes serverī
biznesa intelekta nodrošināšanai.
Bakalaura darbs
Darba vadītājs:
Dr.sci.ing., prof. Jānis Eiduks
Rīga, 2015
[vieta uzdevuma lapai]
2
ANOTĀCIJA
Pieaugot datu apjomam datu bāzēs, datu analīzei nepieciešamie resursi, ieskaitot laika
resursu, palielinās. Datu analīze lietojuma serverī kļūst neefektīva, līdz ar ko biznesa intelekts
tiek ieviests datu bāzē, lai datu apstrādē izmantotu datu bāzes resursus. Darba mērķis ir
analizēt jau izstrādātus risinājumus biznesa intelekta ieviešanai Oracle datu bāzē un
demonstrēt alternatīva risinājuma implementēšanu izmantojot 3 dažādas programmēšanas
valodas.
Darba pirmajā nodaļā tiek analizētas datizraces metodes, kuras nepieciešams realizēt
biznesa intelekta ieviešanai datu bāzē. Otrajā nodaļā tiek analizēts Oracle izstrādātais
paplašinājums Oracle Advanced Analytics un tā iespējas Oracle datu bāzē. Trešajā nodaļā
autors izvēlās regresiju kā vienu no datizraces metodēm un demonstrē tās realizāciju Oracle
Data Miner vidē. Vadoties pēc Oracle datizraces metodes pielietošanas algoritma autors
implementē regresijas metodes realizāciju Oracle datu bāzē, izmantojot PL/SQL, Java un C
valodas. Darba pēdēja nodaļā autors izvērtē un salīdzina paša un Oracle izstrādātos
risinājumus, sniedzot komentārus par katra izstrādājuma priekšrocībām un trūkumiem. Oracle
Advanced Analytics paplašinājums tika novērtēts kā lietotājdraugzīgs, bet ar ierobežotām
algoritmu modificēšanas iespējām. Autora izstrādāta risinājuma priekšrocība ir tā
modificēšanas vienkāršība, turpretī lietotāja saskarnes trūkums padara gala lietotāja darbu
sarežģītāku.
Dokumentā ir 46 lappuses, 33 attēli, 8 tabulas, 2 pielikumi un 14 nosaukumu
informācijas avoti.
3
ABSTRACT
Due to the increase in data quantity in databases, the resources required for data analysis
(including time) continue to increase. Data analysis inside application server becomes
ineffective and because of that, business intelligence is being implemented in database server
so that the database resources can be used for data analysis. The goal of this work is to
analyse the existing solution for business intelligence implementation in Oracle database and
to demonstrate alternative solutions using 3 different programming languages.
In the first part of this document the author analyses the algorithms required for
business intelligence implementation in database. In the second part the Oracle developed
solution for Oracle database is being analysed. In the third part the author selects regression as
the data mining algorithm and demonstrates its implementation in Oracle database using
Oracle Data Miner environment. Author then implements the regression method using
PL/SQL, Java and C programming languages based on Oracle data mining algorithms. In the
last chapter the author evaluates and compares Oracle solutions with his own, providing
comments about advantages and disadvantages of each solution. Oracle developed solution is
rated as user-friendly but with restricted data mining algorithm modification capabilities. The
advantage of author’s developed solution is its accessibility and modification simplicity,
though its usage is becomes harder for end-user due to lacking of graphical user interface.
Bachelor thesis contains 46 pages, 33 figures, 8 tables, 2 appendixes. Bibliography
includes 14 sources.
4
SATURS
Ievads..........................................................................................................................................7
1. Biznesa intelekts un biznesa intelekta sistēmas................................................................10
1.1. Informācijas iegūšana no datiem..............................................................................11
1.2. Lēmumu pieņemšana biznesa intelekta sistēmās......................................................12
2. Datu bāzes sistēmas Oracle BI tehnoloģija „Advanced Analytics”..................................14
3. Regresijas uzdevumu risināšanas varianti Biznesa intelekta sistēmā...............................16
3.1. Biznesa intelekta sistēmās izmantojamās metodes...................................................16
3.2. Regresijas metode.....................................................................................................18
3.3. Regresijas aprēķinu veikšana izmantojot Oracle Data Miner...................................18
3.3.1. Regresijas aprēķinu modeļa izveidošana..........................................................19
3.1.1. Regresijas aprēķinu modeļa testēšana...............................................................20
3.1.2. Regresijas aprēķinu modeļa lietošana...............................................................21
3.4. Regresijas metodes realizēšana izmantojot SQL valodu..........................................22
3.1.3. Iestatījumu tabulas izveidošana........................................................................22
3.1.4. Regresijas aprēķinu modeļa izveidošana..........................................................23
3.1.5. Regresijas aprēķinu modeļa testēšana...............................................................24
3.1.6. Regresijas aprēķinu modeļa informācija...........................................................24
3.1.7. Regresijas modeļa pielietošana.........................................................................25
3.5. Regresijas aprēķinu veikšana lietojot PL/SQL valodu.............................................26
3.1.8. Oracle objektu tipa izveidošana........................................................................26
3.1.9. Datu tabulas izveidošana un aizpildīšana.........................................................27
3.1.10. Regresijas aprēķinu funkcijas izveidošana.......................................................30
3.1.11. Regresijas aprēķinu funkcijas pielietošana un rezultātu analīze.......................32
3.6. Regresijas aprēķinu veikšana lietojot Java valodu (iekļautā valoda)........................32
3.6.1. Java programma regresijas metodes realizēšanai.............................................33
3.6.2. Java programmas izsaucošas funkcijas izveidošana.........................................34
3.6.3. Java programmas pielietošana..........................................................................35
3.7. Regresijas aprēķinu veikšana lietojot C valodu (ārējā valoda).................................36
3.7.1. Darbības shēma ārējas programmas izmantošanai...........................................36
3.7.2. Ārējas programmas definēšana datu bāzes vidē...............................................37
4. Variantu salīdzinājums un izvērtējums.............................................................................39
5
4.1. Oracle izstrādāta risinājuma variantu izvērtējums....................................................39
4.2. Autora izstrādāto risinājumu izvērtējums.................................................................40
Nobeigums................................................................................................................................42
Literatūra...................................................................................................................................43
Pielikumi...................................................................................................................................44
6
IEVADS
Pagājušā gadsimta septiņdesmitajos gados sākās diskusijas par glabājamo datu un
lietojuma programmu autonomijas palielināšanu. To rezultātā radās datu bāzes tehnoloģija,
kura nodrošināja glabājamo datu loģisko un fizisko neatkarības no lietojuma programmām
pretstatā failu vadības sistēmas tiešai izmantošanai. Visi lietojumi tika izslēgti no datu bāzes
servera, lai nodrošinātu tā autonomiju un palielinātu tā ražību. Lietojumu glabāšanai un
realizēšanai tika ieviesti lietojumu serveri. Pieaugot datu bāzes serveru iespējām (atmiņu
apjomiem, procesoru daudzumam un ražībai, programmēšanas iespējām serverī), tika
konstatēts, ka liela apjoma datu priekšapstrādes uzdevumu nav efektīvi veikt lietojuma
serverī, bet lietderīgi tomēr veikt datu bāzes serverī. Tas ļoti būtiski samazina tīkla noslodzi
un izpildes laiku.
Pēdējos gados parādījās divi būtiski faktori, kas veicināja datu priekšapstrādes
uzdevumu iekļaušanu datu bāzes serverī:
1) 2010. gadā vaicājumu valodas SQL (Structured Query Language) standartizācijas un
attīstības komiteja SQL-09 vienkāršoja vaicājumu sintaksi, lai vaicājumu valodu tuvinātu
dabiskajai valodai (1.1. tabula). Tas ļauj veidot lietotājiem vieglāk uztveramas un
realizējamas komunikāciju formas ar datu bāzes sistēmām. Lietotājs pats var risināt
jautājumus par nepieciešamo datu izgūšanu "ad hoc" situācijās definējot savas vajadzības
SQL valodā. 1. tabula. SQL valodas vienkāršojumi Jdb un S2
SQL NewSQL 'Jdb' NewSQL 'S2'CREATE TABLE TEST( ID INT PRIMARY KEY, NAME VARCHAR(255))
test=new table( int id, string name, key(id))
create table test( id int, name string, primary key(id))
INSERT INTO TEST VALUES(1,'Hello')
test.add(1,"Hello") insert test (1,'Hello')
SELECT * FROM TEST test.get() select test
SELECT T1.ID,T2.NAME FROM TEST T1, TEST T2WHERE T.ID=T2.ID
t1=test; t2=test; t1.join(t2[t1.id==t2.id]).get(t1.id,t2.name)
select t1:test join t2:test on t1.id==t2.id get t1.id, t2.name
UPDATE TEST SET NAME='Hi' WHERE ID=1
test[id==1].set(name="Hi") update test set id=1 where name=='Hi'
DELETE FROM TEST WHERE ID=1
test[id==1].delete() delete test where id==1
DROP TABLE TEST test.drop() drop test
7
Glabājamās procedūras
PL/SQL programma
PL/SQL čaula
Java progr.
2) Lai vienkāršāk un efektīvāk varētu realizēt vairāku sistēmu datu (atšķirīgi datu glabāšanas
formāti) kopējo apstrādi, universālās datu bāzes sistēmās ir realizēti dažādi datu glabāšanas
veidi: relāciju, relāciju-objektu, XML, grafisko datu un NoSQL varianti. Papildus ir iespējas
iekļaut jaunus datu tipus un nodrošināt tiem nepieciešamo apstrādes funkcionalitāti. Datu
bāzes sistēmas realizē arī visu veidu datu savstarpējās transformācijas un kopējās
izmantošanas iespējas.
Minētie faktori bija pamats jaunas datu bāzes sistēmas izmantošanas tehnoloģijas –
"apstrādes veikšana datu bāzē" (angl. in database processing) realizēšanas uzsākšanai.
Datu bāzes sistēmās tiek iekļauts arvien vairāk programmu dažāda tipa aprēķinu
veikšanai (statistikas, temporālo, grafikas un citu datu aprēķini). Šis izmantošanas variants
ieguvis nosaukumu "aprēķini datu bāzē" (angl. in-database calculation). Datu glabāšana,
izgūšana un vienkāršu aprēķinu veikšana ir datu bāzes sistēmas pamatfunkcijas.
Reālai un kvalitatīvai datu izmantošanai ir vajadzīga palīdzība lietotājam lēmumu
pieņemšanas procesā. Tas nozīmē, ka informācijas sistēmai ir jārealizē dažādas datu analīzes
metodes un jāsniedz lietotājam apkopoti datu agregāti gan arī jau formāli izvērtēti dati, lai
viņš iegūtu labu priekšstatu par situāciju un iespējamiem risinājuma variantiem. Tāpēc datu
bāzes sistēmās iekļauj datu noliktavu (angl. data warehouse) un datizraces (angl. data mining)
tehnoloģijas operatīvas realizēšanas un izmantošanas variantos. Pats lietotājs var izveidot no
datu bāzē esošajiem datiem virtuālu datu noliktavu un ar to strādāt.
1. att. Datu apstrādes programmu iekļaušana datu bāzes serverī Oracle10g
Datu bāzes serveris
Iekļautās datu apstrādes programmu bibliotēkas:1) statistikas aprēķinu bibliotēka;2) analītisko funkciju bibliotēka.
Dati un meta-dati
Datu bāzeLietojuma serveris
Lietojumu programmas
Piesaistītā sistēma (MS
Excel)
SQL valodas paplašinājumi: 1) virtuālās datu noliktavas veidošana;2) specializētie datu izgūšanas jautājumi no datu noliktava;3) datizraces veidošanas un realizēšanas konstrukcijas.
Interfeiss piesaistītajām programmām
Datu bāzes vadības sistēma
DokumentiDokumentiDokumenti
8
Līdzīgi tiek veidota darbība ar datizraces metodēm. Lietotājs no datu bāzes izgūst
analīzei nepieciešamos datus, definē analīzes modeli un inicializē attiecīgās metodes izpildi.
Šādas iespējas guvušas nosaukumu "analīze datu bāzē" (angl. in-database analytics).
Vēl viens jauninājums tehnoloģijas "apstrādes veikšana datu bāzē" ir piesaistītās
sistēmas (angl. attached systems). Datu bāzes sistēmā tiek iekļauti interfeisi tiešai saitei ar
dažādām populārām programmu sistēmām. Piemēram, elektroniskām tabulām. Tas ļauj datus
glabāt datu bāzē, sagatavot apstrādei elektroniskajā tabulā un veikt aprēķinus atkal datu bāzes
sistēmā.
Tehnoloģijas "apstrādes veikšana datu bāzē” realizēšanas aizsācēji pagājušā gadsimta
90-os gados bija firmas IBM, Illustra/Informix un Oracle. 1. attēlā parādīta šīs tehnoloģijas
realizācija datu bāzes sistēmā Oracle.
Saskaņā ar "apstrāde datu bāzē" tehnoloģiju, izmantotajā datu bāzes sistēmā
Oracle10g ir iekļauts liels daudzums statistikas, temporālo (laika) un grafisko datu aprēķinu
funkcijas. Tās var izmantot izgūstot datus ar SELECT vaicājumu palīdzību, norādot
vaicājumā aprēķinu funkcijas un atbilstošos datus. Var tikt izmantotas arī virtuālās datu
noliktavas veidošanas un izgūšanas iespējas, kā arī datizraces metodes. speciālas iekļautās
matemātisko aprēķinu programmu paketes, kurās no datu bāzes var nodot vajadzīgos datus.
Bakalaura darba mērķis ir izpētīt „analīze datu bāzē” tehnoloģiju un demonstrēt tās
realizācijas iespējas Oracle datu bāzei. Sasniegt šo mērķi ir iespējams, izpildot sejokošus
uzdevumus:
1. Izpētīt biznesa intelekta un biznesa intelekta sistēmas jēdzienus;
2. Izpētīt tehnoloģiju „analīze datu bāzē”;
3. Izpētīt esošus risinājumus analīzei Oracle datu bāzē;
4. Implementēt risinājuma piemēru vienai no datizraces metodem Oracle datu
bāzē;
5. Salīdzināt risinājumus un secināt par tehnoloģijas nepieciešamību.
Bakalaura darba pirmajā nodaļā tiek definēts biznesa intelekts un biznesa intelekta
sistēma, tiek aprakstīts biznesa intelekta sistēmas mērķis un metodes, ar kurām mērķis tiek
sasniegts. Otrajā nodaļā tiek izpētīts Oracle izstrādātais risinājums biznesa intelekta ieviešanai
datu bāzē un ir dots lietošanas piemērs. Trešajā nodaļā autors implementē Oracle datu bāzē
savu risinājumu PL/SQL un Java programmēšanas valodās, pēc kā izpēta iespējas
implementēt risinājumu ārējā C programmēšanas valodā. Cetrurtajā nodaļā risinājumi tiek
izvērtēti un ir izdarīts secinājums par tehnoloģijas nepieciešamību.
9
1. BIZNESA INTELEKTS UN BIZNESA INTELEKTA
SISTĒMAS
Biznesa intelektam (angl. Business intelligence (BI)) eksistē daudzas un dažādas
definīcijas. Katrā tiek uzsvērtas tās iezīmes , kuras definējumu autoriem liekas svarīgākās.
Biznesa intelekts iekļauj sevī lietojumus, infrastruktūru, rīkus un labākās prakses, kas
nodrošina pieeju informācijai un tās analīzi ar mērķi uzlabot un optimizēt lēmumu
pieņemšanu un veiktspēju [Gartner].
Biznesa intelekts attiecās uz tehnoloģijām, lietojumiem un praksēm, kas nepieciešamas
biznesa informācijas savākšanai, integrēšanai, analīzei un pasniegšanai. Biznesa intelekta
nolūks ir atbalstīt un uzlabot biznesa lēmumu pieņemšanas procesu. Būtībā biznesa intelekta
sistēmas ir no datiem atkarīgas lēmumatbalsta sistēmas [Olap].
Biznesa intelekts ir datu uzkrāšanas process, kam seko datu pārvēršana nozīmīgajā
informācijā, kas ir lietojama organizācijas mērķu sasniegšanai. Vienkāršojot, biznesa intelekts
ir efektīva datu un informācijas izmantošana ar mērķi pieņemt pareizu biznesa lēmumu
[Logi].
No visām apskatītām definīcijām autors izvēlās [Olap] piedāvāto definīciju, jo uzkata,
ka tā ir vispilnīgāka un labāk par citām definīcijām akcentē to, ka biznesa intelekta sistēmai
nav viennozīmīga definējuma visām organizācijām. Pēc autora uzskatiem, pastāv
visdažādākas biznesa intelekta sistēmas, kas izmanto dažādas metodes, bet tiecas sasniegt
vienu kopīgo mērķi (atbalsīt lēmumu pieņemšanu).
Biznesa intelekta sistēmas nodrošina vēsturiskus, patreizējus un paredzamus skatus uz
biznesa operācijam, visbiežāk izmantojot datus, kas tika uzkrāti datu noliktavā vai datuvē
(angl. data mart). Programmatūras elements nodrošina ziņošanu, griezuma tabulu analīzi,
vizualizāciju un statustisku datizraci. Lietojumi pievēršās apgrozījumam, razošanai, finansēm
un daudziem citiem biznesa datu avotiem, lai sasniegtu mērķūs, saistītus ar biznesa ražīguma
vadību. Bieži vien tiek uzkrāta informācija par citām organizācijām, kas darbojās konkrētajā
industrijā, lai turpmāk to pielietotu salīdzinošajā novertēšanā [Olap].
Saskaņā ar autora [Logi] veiktiem pētījumiem, biznesa intelekta sistēmas ietver sevī
sekojošus elementus:
1. Ziņošana: process, kas sastāv no piekļūšanas datiem, datu formatēšana un
pasniegšana (ziņošana).
2. Analīze: paraugu noteikšana un saišu dibināšana starp datiem vai datu grupām.
10
3. Datizrace: oriģinālas informācijas izgūšana no datiem.
4. Datu kvalitāte un interpretācija: attiecība starp datiem un reālas pasaules
objektiem, uz kuriem dati attiecās
5. Prognozēšana: datizraces nozare, kas prognozē varbūtības un tendences.
Analizējot divu autoru [Olap] un [Logi] biznesa intelekta sistēmu pamata sastāvdaļas,
autors ir nonācis pie secinājuma, ka biznesa intelekta sistēmas darbību secība ir iepriekš
definēta un var tikt raksturota ar diviem blokiem:
1. Datu sagatavošana, kas ietver sevī datu izgūšanu un transformāciju.
2. Datu analīze, kas izmanto datizraces algoritmus informācijas un prognozējamo
rezultātu iegūšanai, kas atbalsta lēmumu pieņemšanas procesu.
Attiecinot dotos secinājumus uz datu bāzu sistēmām, autors ir nonācis pie secinājuma,
ka, pielietojot „analīze datu bāzē” tehnoloģiju pirmjā blokā veikto darbību skaitu varētu
samazināt, balstoties uz to, ka dati nav jātransformē sakarā ar to, ka datu bāzē izmantojamie
datu tipi tiks lietoti aprēķinu veikšanā, līdz ar ko nav jāpievērš uzmanība ārējas vides (datu
analīzes programmatūras) datu tipu saskaņošanai. Papildus tam, dati nav jāizgūst no datu
bāzes un nav jāparvieto uz ārējo vidi, līdz ar ko tiek samazināta tīkla noslodzi un būtiski tiek
samazināts izpildes laiks pie liela datu apjoma.
1.1. Informācijas iegūšana no datiem
Kā iepriekš tika definēts, biznesa intelekta sistēmas mērķis ir iegūt un pasniegt
lietotājam informāciju, kas atbalsta lēmumu pieņemšanu. Gadījumā ar datu bāzi, biznesa
intelekta sistēmai informācija nav pieejama tādēļ, ka datu bāze satur datus, nevis informāciju.
Dati datu bāzē ir izejviela informācijas iegūšanai, kam ir neitrāla pozīcija. Dati nav ne „labi”
ne „slikti” līdz brīdim, kad tie tiek izmantoti analīzei un pārvēršas par informāciju.
Informācijas iegūšana pēc [Logi] ir pareizu jautājumu uzdošana datiem, ar mērķi saņemt
jēdzīgu atbildi. Kā piemēru [Logi] apraksta šķirošanas komandu pēc pasūtījumu skaita, kā
jautājumu: „Kuram ir visvairāk pasūtījumu?”, atbildot uz kuru var iegūt noderīgu informāciju
lēmumu pieņemšanai.
Mūsdienās organizācijas sāk saskatīt, ka dati un saturs jāvertē kā vienots vesels, nevis
kā atsevišķi informācijas vadības aspekti. Uzņēmuma informācijas vadība apvieno sevī divus
elementus: biznesa intelektu un uzņēmuma satura pārvaldību (angl. Enterprise content
management). Pašlaik organizācijas tiecās pie operatīva biznesa intelekta (angl. Operational
business intelligence). Biznesa intelekta piegādātāji, no otras puses, fokusējās uz
pašapkalpošanas biznesa intelektu (angl. Self-service business intelligence) [Olap].11
Pašapkalpošanas biznesa intelekts iesaista biznesa sistēmas un datu analītiķus, kas
nodrošina galalietotājus ar biznesa informāciju bez tiešas IT iesaistīšanas. Pašapkalpošanas
biznesa intelekts nodrošina galalietotāju ar iespēju strādāt ar datiem bez papildus
nepieciešamām zināšanām.Tāda tipa risinājumi visbiežāk ir izveidoti lietotājdraudzīgā vidē,
lai galalietotājs varētu analizēt datus, pieņemt lēmumus, plānot un paredzēt patstāvīgi [Olap].
Viens no pašapkalpošanas biznesa intelekta izstrādātajiem ir PARIS Technologies, kas
izstrādā biznesa intelekta rīkus Microsoft Excel videi. Tādu rīku izmantošana pēc autora
domām ir efektīvs veids kā integrēt biznesa intelektu jau ierastajā vidē, bez nepieciešamīas
pēc ilgtermiņa apmācību vai jaunu darbinieku piesaistīšanas.
1.2. Lēmumu pieņemšana biznesa intelekta sistēmās
Biznesa intelektam ir liela nozīme lēmumu pieņemšanā, jo lēmumi ir balstīti uz
pētījumiem, datu analīzi un prognozēšanu. Lai būtu iespēja pieņemt vienlaikus ātru un
apzinīgu lēmumu, biznesa intelekta sistēmai jādarbojas ātri, precīzi un droši, ko bieži vien
neizdodas panākt vienlaikus, jo, uzlabojot vienu no radītājiem, pārējie mēdz pasliktināties.
Biznesa intelektam ir 3 vienlīdzīgi svarīgas sastāvdaļas:
1) datu apkopošana un sagatavošana
2) datu analīze;
Datu meklēšana, datu izgūšana no datu bāzes un datu pārveidošana piemērotā formā
turpmākajai analīzei bieži vien prasa lielāku laiku, nekā analītiskā darbība, kas nav pieļaujami
gadījumos, kad laika resursi ir ierobežoti, un no darba ātruma ir atkarīgs rezultāts. Jo lielāks
datu apjoms, jo vairāk laika ir nepieciešams to apstrādei, līdz ar to šī problēma ir aktuālāka
lielos projektos, kuros datiem jāpiekļūst regulāri un jābūt iespējai ātri analizēt datus, veidot
modeļus un pieņemt atbilstošus lēmumus.
Problēmas risinājums ir analītisko sastāvdaļu ieviešana datu bāzē, kas vienlaikus dod
iespēju izmantot jaudīgu datu bāzu resursus datu analīzei, gan samazina izmaksas, kas bija
saistītas ar datu pārvietošanu. Pateicoties tam, ka dati nav jāeksportē no datu bāzes un nav
jāglabā vairākos eksemplāros, dati paliek drošībā un tie ir lietojami analītiskai darbībai bez
papildus transformācijām.
Tiek uzskatīts, ka gandrīz 70% laika, kas nepieciešams analītiskā modeļa izveidošanai,
tiek veltīts datu vadībai [Brobst 2009]. Nepieciešamie dati visbiežāk ir izkliedēti un nesaistīti
tādā veidā, kā to prasa modelēšanas vide, tāpēc tradicionālās pieejas gadījumā, visi
nepieciešamie dati ir manuāli jāizgūst un jāpārveido. Tāda pieeja nav efektīva, jo lielam datu
apjomam darbs prasa vairāk laika un resursu, kavējot projektu attīstību citos virzienos.12
Implementējot analītiskus rīkus datu bāzē, tiek iegūta pilnvērtīga analitiska platforma,
kas spēj glabāt datus un pielietot tos analīzē un modeļu veidošanā neatkarīgi no citām
sistēmām. Visi dati tiek glabāti datu noliktavā un darbs ar tiem tiek veikts pa tiešu, tāpēc dati
nav jāpārvieto vai jādublē. Ar datu pārvietošanas nepieciešamības zudumu, modeļa veidošana
kļūst vairākkārt ātrāka un drošāka. Datu bāzes vairākos gadījumos ir jaudīgas mašīnas, kurām
ir lieli resursi, bet tos resursus nav iespējams pielietot citur, ka datu iegūšanā vai izgūšanā.
Savukārt ar jaunu tehnoloģiju, datu bāzes resursi tiek virzīti uz analītisko darbību un datu
apstrādi, tādejādi atbrīvojot no tā citas sistēmas.
13
2. DATU BĀZES SISTĒMAS ORACLE BI TEHNOLOĢIJA
„ADVANCED ANALYTICS”
Oracle Advanced Analytics ir Oracle datu bāzes paplašinājums, kas dod iespēju veikt
analizēt datus tieši datu bāzē, bez papildus datu pārvietošanas. Oracle Advanced Analytics
atbalsta divas valodas: SQL un R, katra no kurām ir neatņemama daļa no paša paplašinājuma.
Paplašinājumam ir divas pamata komponentes:
1. Oracle Data Miner, kas ietver sevī ātrdarbīgus SQL algoritmus modeļu
izveidošanai un pielietošanai.
2. Oracle R Enterprise, kas atbalsta R programmēšanas valodas izmantošanu
statistiskajiem aprēķiniem datu bāzē. Izskaitļošanas darbus šajā gadījumā veic
datu bāze.
Oracle Advanced Analytics piedāvā vairākas iespējas datu apstrādei, tajā skaitā:
diagrammu attēlošana ar iebūvētām datizraces metodem, lietotāja rakstīto R skriptu izpilde,
modeļa imitācija ar iebūvētām metodēm, prognozējamo rezultātu izgūšana u.c.
Galvenā priekšrocība, pēc [Oracle] viedokļa, ir iespēja strādāt ātrāk un ērtāk, jo
paplašinājumam ir ļoti plaša funkcionalitāte, kura tiek realizēta ar mazāku darbību skaitu,
nekā tas tiek darīts tradicionālajā veidā. 2. attēlā var redzēt kā tiek samazināts darbību skaits
ar Oracle Advanced Analytics paplašinājuma izmantošanu.
2.att. Oracle DBVS paplašinājums Advanced Analytics
Tradicionālā pieeja prasa pavisam 6 darbības, no kurām divas darbības (datu izgūšana
un datu pievienošana datu bāzei) nav nepieciešamas, izvēloties jaunu pieeju, jo darbs ar
datiem notiek datu bāzes vidē un dati nav jāparvieto. Citas darbības kļūst ātrākas pateicoties
14
tam, ka dati vairs nav jāpārveido ārējās vides atbilstošajā datu tipā un/vai formātā. Tādai
pieejai ir daudzas citas priekšrocības, kuras var turpmāk pētīt un izvertēt to nepieciešamību.
Oracle Data Miner ir SQL Developer vides paplašinājums, kas nodrošina lietotāju ar
iespēju strādāt ar datiem, nepārvietojot datus ārpus datu bāzes. Oracle Data Miner nodrošina
lietotāju ar iespējam:
1. analizēt datu grafisko attēlojumu;
2. veidot un novērtēt datizraces modeļus;
3. pielietot lietotāja izveidotus modeļus jauniem datiem.
Oracle Data Miner nodrošina lietotāju ar grafisko saskarni, kas, savukārt, dod lietotājam
iespēju izvietot un savienot modeļam nepieciešamos elementus, aizvietojot tekstveida
vaicājumus ar grafiskiem elementiem. Datizraces metožu izmantošana informācijas iegūšanai
no datiem datu bāzē ir demonstrēta 3. attēlā.
Problēmas definēšana
Datu iegūšana un
sagatavošana
Modeļa izveidošana un
novērtēšana
Zināšanu iegūšana
Piekļuve datiemDatu transformācijas
Modeļa izveidošanaModeļa testēšanaModeļa novērtēšana un interpretēšana
Modeļa pielietošanaAtskaišu veidošanaĀrējie lietojumi
3. att. Informācijas izgūšanas no datu bāzes algoritms
15
3. REGRESIJAS UZDEVUMU RISINĀŠANAS VARIANTI
BIZNESA INTELEKTA SISTĒMĀ
Lai sasniegtu biznesa intelekta sistēmas uzstādīto mērķi par atbalstu lēmumu
pieņemšanā, tiek izmantotas vairākas datizraces metodes, kas datus pārvērš noderīgajā
informācijā. Palielinoties uzdevuma sarezģītībai, pieaug nepieciešamu metožu skaits viena
uzveduma risināšanai, tāpēc biznesa intelekta sistēmās jāiekļauj pēc iespējas vairāk datizraces
metožu.
Savā pētījumā [Gullo 2015] izdala 2 kategorijas datizraces metodēm:
1. Prognozēšanas (angl. predictive) metodes, kas veido modeli no esošiem datiem
un nosaka sakarības starp datu vērtībām. Turpmak modelis tiek pielietots citai
datu grupai, lai prognozētu nezināmās vērtības.
2. Raksturošanas (angl. descriptive) metodes, kas izmanto iebūvētos modeļus, lai
noteiktu sakarību starp esošiem datiem, sniedzot par datu kopu informāciju, kura
iepriekš tajā nebija formulēta.
3.1. Biznesa intelekta sistēmās izmantojamās metodes
Biznesa intelekta sistēmās tiek izmantotas vairākas aprēķinu un analīzes metodes, pie
tām dažiem uzdevumiem tiek pielietotas vairākas metodes. Dažādi autori savos pētījumos
analizē un apraksta dažādas metodes un to skaitu, ko var paskaidrot ar to, ka metožu skaits ir
atkarīgs no tā, kāda tipa uzdevumi tiek veikti un kādas darbības jāveic uzdevumu pildīšanas
gaitā. Visas šajā darbā aplūkotas metodes ir attēlotas 2. tabulā. 2. tabula. Datu analīzes metodes biznesa intelekta sistēmās
Metode Kategorija Ieejas dati Sagaidāmais rezultāts
Klasifikācija Prognozēšanas
metode
Apmācības kopa (ierakstu
kolekcija)
Mērķa atribūta vērtības
piederība noteiktai klasei citā
datu kopā
Klasterizācija Raksturošanas
metode
Datu objektu kopa Datu objektu kopa sadalīta
grupās pēc „līdzības” pakāpes
Asociācijas likums Prognozēšanas
metode
Tranzakciju kopa (ierakstu
kopa)
Atribūta (elementa)
parādīšanas jaunā datu kopā.
Regresija Prognozēšanas
metode
Vēsturiskā elementa vērtība Prognozējamā elementa
vērtība
16
Anomāliju
konstatēšana
Raksturošanas
metode
Ierakstu kopa Anomālijas ieejas ierakstu
kopā
Pavisam tiks apskatītas 6 metodes. Savos pētījumos [Gullo 2015] apskata vairākas
metodes, no kurām šī darba autors ir izvēlējies sekojošas:
1. Klasifikācijas metode, kas ieeja izmanto ierakstu kolekciju sauktu par apmācības kopu
(angl. training set), kurā katrs ieraksts sastāv no vairākiem atribūtiem, viens no kuriem
ir klases atribūts. Metodes mērķis ir atgriezt modeli, pēc kura var noteikt klases
atribūtu, izmantojot pārējās vērtības. Iegūtais modelis turpmāk tiek izmantots
aprēķinos ar jauniem datiem.
2. Klasterizācijas metode, kas ieeja izmanto ierakstu kolekciju bez jebkādiem klases
atribūtiem. Metodes mērķis ir sadalīt objektus grupās (klasteros) tā, lai vienas grupas
elementi būtu līdzīgi savā starpā, bet atšķirīgi no citu grupu elementiem. Par elementu
„līdzīguma” pakāpi kalpo lietotāja definēta vai albogirmā ievūbēta mērvienība.
3. Asociācijas likuma metode, kas ieeja saņēm ierakstu kopu, sauktu par tranzakcijas
kopu. Metodes mērķis ir analizēt atribūtu paradīšanas likumsakarības, lai prognozētu
vērtības jaunai datu kopai. Vislabāk šo metodi paskaidro [Gullo 2015] sniegtais
piemērs par preču veikalu, kurā asociācijas likuma metode prognozē, kuru preci
pircējs varētu nopirkt kopā ar jau izvēlēto preci.
[Tierney 2014] savā darbā piedāvā papildus 2 metodes, kuras ir pieejamas Oracle
Advanced Analytics paplašinājumā un kuras ir sekmīgi implementētas un tiek aktīvi
izmantotas:
4. Regresijas metode, kas izmanto vēsturiskus datus nākotnes vērtības prognozēšanai.
Būtiski atzīmēt, ka atšķirībā no klasifikācijas, šī metode veido aprēķinu modeli
skaitliskai vērtībai, nevis klases atribūtam, līdz ar ko tiek iegūta funkcija, kas raksturo
mērķa vērtības atkarību no ieejas datu vērtības.
5. Anomāliju konstatēšana ir metode, kas no datu kopas izdala tādus ierakstus, kas ir
„neparasti” vai reti. Tādus ierakstus nav iespējams izdalīt ar klasterizācijas metodi, jo
to skaits ir salīdzinoši mazs, līdz ar ko tiem netiek pieversta uzmanība. Pamata
atšķirība pēc [Tierney 2014] ir analizēt datu kopu ka vienotu veselu, nosakot datus
raksturojošās īpašības. Turpmāk, katrs ieraksts tiek salīdzināts ar „parauga” ierakstu,
lai noteiktu cik „neparasts” ir dotais ieraksts.
No visām apskatītām datizraces metodem autors ir izvēlējies regresijas metodi savu
risinājumu iztrādāšanai. Regresijas metode tika izvēlēta tāpēc, ka tās implementēšana ir 17
salīdzinoši vieglāka par citām, jo ir balstīta uz matemetiskiem aprēķiniem, neņēmot vērā
papildus nosacījumus, kas varētu rasties, analizējot ieejas ierakstu kopu. Papildus tam,
regresijas metodes attēlošanai nav nepieciešams liels datu apjoms, līdz ar ko rezultātus varēs
attēlot īsi un konkrēti.
3.2. Regresijas metode
Regresija ir analītiskā metode, kas nosaka likumsakarību starp esošām vērtībām, lai
izskaitļotu mērķa atribūta vērtību jauniem datiem. Biznesa intelektā regresiju var pielietot
prognozēšanā, lai, izmantojot esošus datus, noteikt kādā veidā mērķa vērtība ir atkarīga no
mainīgām vērtībām, kas ir iepriekš zināmas un tiek padotas regresijas metodei no citiem
avotiem. Otra svarīga regresijas metodes pielietošana ir trūkstošo datu noteikšana, lai tos
varētu turpmāk pielietot citā metodē. Šajā darbā tiks apskatītas divi regresijas modeļa uzbūves
veidi. Pirmais veids ir Oracle Advanced Analytics piedāvātais modeļu veidošanas rīks, kas
nodrošina lietotāju ar grafisko interfeisu katra elementa un elementu saišu attēlošanai. Otra
iespēja ir izmantot datu bāzes Oracle dzimtās SQL un PL/SQL valodas, iekšējo Java valodu
un ārējo C valodu modeļu pielietošanai ar Oracle PL/SQL izveidotām paketēm un/vai
funkcijām.
3.3. Regresijas aprēķinu veikšana izmantojot Oracle Data Miner
Sakarā ar to, ka tika izvēlēta regresijas metode, kas pieder pie prognozēšanas metožu
kategorijas, visas realizācijas notiks pēc sekojoša algoritma, kas parādīts 4. attēlā. Sākumā
lietotājam jāizveido un jākonfigurē aprēķinu modelis, kas izmanto ieejas datus (tabulu), lai
noteiktu saistības starp atribūtiem un to vērtībām.
Modeļa veidošana
Metodes izvēle un iestatīšana
Modeļa testēšana
Modeļa pielietošana
jauniem datiemIeejas dati
Jaunie dati
4. att. Regresijas pielietošanas algoritms
18
Kad aprēķinu modelis ir izveidots un pārbaudīts (testēts), tas jāpielieto jauniem datiem,
tadejādi aprēķinot mērķu atribūtu vērtības. Iegūtās vērtības var tikt pievienotas jaunu datu
tabulai, izvietoti citā tabulā un/vai tikt izmantoti tālākos aprēķinos.
3.3.1. Regresijas aprēķinu modeļa izveidošana
Lai realizētu regresijas metodi Oracle Advanced Analytics paplašinājuma Oracle Data
Miner vidē, no piedāvāto mezglu saraksta lietotājam ir jānorāda izvēle – „regresija”. Bez
elementa „regresija, izvēļu sarakstā ir citi elementi: klasifikācija, klāsterizācija un anomāliju
atklāšana.
Izvietojot regresijas mezglu uz darba virsmas, lietotājam jāpievieno avota (tabulas)
mezgls, kas satur regresijai nepieciešamus izejas datus. Pirms uzsākt regresijas mezgla
pievienošanu darbu plūsmai un regresijas aprēķinu modeļa veidošanu, lietderīgi ir izanalizēt
ieejas tabulas datus, lai noteiktu iespējamās neprecizitātes aprēķinu laikā, kas saistītas ar
tabulā esošām vērtībām un to sakarību ar mērķa atribūta vērtību [Tierney 2014]. Gadījumā, ja
tabulā ir kolonnas ar vērtībām, kas ierobežotu regresijas precizitāti, piemēram, kolonnas, kuru
vērtības ir ļoti tuvas mērķa atribūta vērtībām (piemēram, mērķa atribūta pašreizēja vērtība un
pagājušā gada vidēja vērtība), lietotājam ir jāpievieno papildus mezgls, kas izslēgs tādas
kolonnas no datiem, kas tiks padoti regresijas modelim. Šim nolūkam kalpo kolonnu
filtrēšanas mezgls, kas jānovieto starp tabulas un regresijas mezglu. Kolonnu filtrēšanas
mezgla iestatījumos lietotājam jāspecificē, kuras no kolonnām nav jāpadod tālāk pa
darbplūsmu.
5. att. Darbplūsma regresijas modeļa izveidošanai (pārņemts no [Tierney 2014])
19
Pabeidzot izveidot elementus darbu plūsmā, lietotājam jāveic regresijas modeļa
konfigurācija. Pēc noklusējuma, modelī ir izvēlēti 2 regresijas algoritmi:
1. vispārinātais lineārais modelis (angl. Generalized Linear Model), kas ir lineārās
regresijas vispārināts veids. Visparinātais lineārais modelis dod iespēju piesaistīt
palīgtabulas ievades datiem, no kuriem ir atkarīga mērķa atribūta vērtība. Mainot
algoritma iestatījumus, lietotājam ir iespēja, piemēram, precizēt kā modelim rīkoties, ja
ierakstos trūkst vērtību (ignorēt vērtību vai ignorēt kolonnu), vai noteikt, kurām rindām ir
lielāks īpatsvars (piemēram, vis jaunākām).
2. atbalsta vektoru mašīna (angl. Support Vector Machine), kas dod iespēju izveidot gan
lineāro, gan nelineāro regresijas modeli. Atbalsta vektoru masīnas algoritma iespējās ir
aktīvā apmācība.
Algoritma mērķis ir atrast tādu funkciju, pie kuras, pēc iespējas vairāk mainīgo atrodas
pieļaujamā attālumā, lai netiktu uzskatītiem par kļūdu. Iestatījumos lietotājs var izvēlēties,
kuru no kodoliem algoritmam jālieto ( lineāro, ja mērķis ir izveidot linēāras regresijas modeli,
vai Gausa normālā sadalījuma funkciju, ja mērķis ir izveidot nelineāro regresijas modeli).
Izvēloties aktīvās apmācības iespēju, algoritms apmācībā izmantos tikai precīzākas vērtības,
nevis pilnu apjomu.
3.1.1. Regresijas aprēķinu modeļa testēšana
Pēc regresijas mezgla iestatīšanas, lietotājam ir iespēja salīdzināt divu algoritmu testu
rezultātus, lai izvēlētos vispiemērotāko algoritmu sava uzveduma izpildīšanai. Izvēloties
regresijas mezgla iestatījumos testa rezultātu salīdzināšanu, lietotājs var iepazīties ar abu
algoritmu statistiskiem un grafiskiem rezultātiem.
20
6..att. Regresijas algoritmu precizitātes salīdzināšana (pārņemts no [Tierney 2014])
Algoritmu grafiskajā attēlošanā ir iespējams iepazīties ar algoritma ģenerētām
vērtībām un salīdzināt tās ar jau pieejamām mērķa artibūta vērtībām, lai noteiktu, kurš no
algoritmiem dod precīzaku rezultātu, un kurš no algoritmiem pieļauj vairāk kļūdu. Jo tuvāk
algoritma ģenerētas vērtības ir reālām vērtībām, jo precīzāks ir algoritms, un gadījumā, ja
lietotājs ir izvēlējies divus vai vairāk regresijas algoritmus salīdzināšanai, jāizvēlās, kurš no
algoritmiem tiks turpmāk pielietots datiem.
3.1.2. Regresijas aprēķinu modeļa lietošana
Kad regresijas modelis ir izveidots un pārbaudīts, to var pielietot jauniem datiem, lai
izrēķinātu mērķa kolonnas vērtības. Modeļa pielietošanai lietotājam ir jāpievieno darbplūsmai
papildus vēl 2 elementi: avota mezgls un pielietošanas mezgls.
7. att. Darbplūsma regresijas modeļa pielietošanai (pārņemts no [Tierney 2014])
Avota mezgls norāda uz datu bāzē pieejamo tabulu, dati no kuras tiks padoti regresijas
modelim un izmantoti mērķa kolonnas vērtību noteikšanai. Avota mezgls nav papildus 21
jākonfigurē, jo regresijas modelis izmantos iepriekš izvēlēto algoritmu un filtrēšanas
nosacījumus.
Pielietošanas mezgls ir saite starp regresijas modeli un jauniem datiem, kas nodrošina
regresijas algoritma izvēli, pielietošanu un rezultātu attēlošanu. Pielietošanas mezgls ieejā
izmanto gan regresijas modeļa, gan datu avota plūsmas. Izveidojot pielietošanas mezglu,
lietotājam jāizmanto iestātījumu logs, lai izvēlētos regresijas algoritms no iespējamiem
variantiem (ir pieejami visi algoritmi, kas tika izvēlēti regresijas mezgla izveidošanas procesā)
un jāizvēlās, kādi papildus dati tiks izvadīti pēc regresijas algoritma izpildīšanas.
Regresijas modeļa pielietošanas rezulātus var apskatīt, izmantojot pielietošanas
mezglu. Rezultāti tiek izvadīti tabulārā veidā jaunajā logā, kur lietotājs var redzēt tikai
izvēlētos izvaddatus un regresijas algoritma pielietošanas rezultātā iegūtās vērtības.
22
3.4. Regresijas metodes realizēšana izmantojot SQL valodu
Oracle Data Miner paplašinājums ierver sevī datu vārdnīcas, SQL funkcijas un PL/SQL
paketes, kas ir nepieciešami datu sagatavošanai datizracei un modeļa veidošanai, testēšanai un
pielietošanai. Līdz ar to, ka visi darbā gaitā izveidoti objekti un modeļi glabājās datu bāzē, tie
var tikt izmantoti vairākas reizes un ar to vadību un izpildi nodarbojās datu bāze.
Modeļa veidošana
Aprēķinu modeļa
izveidošana
Modeļa testēšana
Modeļa pielietošana
jauniem datiemIeejas dati
Jaunie dati
Iestatījumu tabulas
izveidošana
8. att. Regresijas metodes pielietošana ar SQL valodu
Darbības shēma ir attēlota 2. attēlā un tās būtiskāka atšķirība no regresijas metodes
izmantošnas Oracle Data Miner vidē ir iestatījumu tabulas izveidošana, no kuras datizraces
metode iegūst datus par regresijas algoritmu.
3.1.3. Iestatījumu tabulas izveidošana
Pirms sākt modeļa izveidošanu, lietotājam jāizveido iestatījumu tabula, kas satur datus
par datu iegūšanas algoritmu, un kuru jāpadod modeļa izveidošanas procedūrai. Iestatījumu
tabulā jābūt 2 kolonnām: setting_name (iestātījuma nosakukums) un setting_value
(iestātījuma vērtība).
9. att. Iestatījumu tabulas izveidošana un aizpildīšana
Dotajā piemērā tiek izveidota tabula DEMO_REGRESSION_SETTINGS, kas glabā
datus par regresijas modeli. Par regresijas algoritmu tiek izvēlēta Atbalsta Vektoru Mašīna, un
par kodolu – lineārais. Datu sagatavošana tiek uzstādīta kā automāriskā. Algoritmam ir
23
vairāki citi iestatījumi, kurus var nepievienot iestatījumu tabulai, tadejādi izmantojot
noklusējuma vērtības.
3.1.4. Regresijas aprēķinu modeļa izveidošana
Regresijas modeļa izveidošanai tiek izmantota CREATE_MODEL procedūra no
DBMS_DATA_MINING paketes, kas ir daļa no Oracle Data Miner paplašinājuma. Kā
datizraces metode tika izvēlēta regresija DMBS_DATA_MINING.REGRESSION, datu tabula
(skats) dotaja gadījuma ir Insur_cust_ltv_sample_v, primāra atslēga ir klienta ID (Customer
ID) un mērķa atribūta kolonna ir LTV.
10. att. Regresijas modeļa izveidošanas kods (pārņemts no [Tierney 2014])
Dotajā piemērā tiek ievadīta tikai daļa no 3. tabulā norādītiem parametriem. Modeļa
izveidošanā tiek izmantota iepriekš izveidota DEMO_REGRESSION_MODEL tabula un
INSUR_CUST_LTV_SAMPLE_V skats, kas kalpo par ievaddatu elementu. 3. tabula. Modeļa izveidošanas parametri
Parametrs Tips Apraksts
Model_name Varchar2 Modeļa nosaukums.
Mining_function Varchar2 Datu iegūšanas funkcijas nosaukums. Iespējamās vērtības:
association, attribute_importance, classification, clustering,
feature_extraction, regression.
Data_table_name Varchar2 Tabulas vai skata nosaukums, kas satur ievaddatus.
Case_id_column_name Varchar2 Ievaddatu tabulas vai skata kolonna, kas kalpo par primāro
atslēgu.
Target_column_name Varchar2 Ievaddatu tabulas vai skata atribūta nosaukums, kuru
algoritmam jāaprēķina.
Settings_table_name Varchar2 Iestatījumu tabulas nosakukums.
Data_schema_name Varchar2 Shēma, kurā atrodas ievaddati. Pēc noklusējuma NULL, ja dati
atrodas tekošajā shēmā.
Settings_schema_name Varchar2 Shēma, kurā atrodās iestatījumu tabula. Pēc noklusējuma
NULL, ja iestatījumu tabula atrodas tekošajā shēmā.
Xform_list Transform_list Modelī iegultās transformācijas. Pēc noklusējuma NULL.24
3.1.5. Regresijas aprēķinu modeļa testēšana
Pēc regresijas modeļa izveidošanas, lietotājam ir iespēja iegūt statistiskus datus par
izveidotu modeli.
11.att. Modeļa statistisko datu iegūšanas vaicājums
Iepazīstoties ar datiem, lietotājam jāpārliecinās, ka izveidotais modelis ir veiksmīgi
izveidots (uz to norāda MODEL_CONVERGED vērtība no iepriekšēja vaicājuma) un
jāizdara secinājums par modeļa piemērotību dota uzdevuma izpildīšanai.
Diemžēl, pašlaik ar DBMS_DATA_MINING paketes procedūram nav iespējams iegūt
datus par AVM regresijas modeli. Vienīgais algoritms, par kuru var iegūt datus, ir VLM
algoritms.
3.1.6. Regresijas aprēķinu modeļa informācija
Kad Regresijas modelis ir veiksmīgi izveidots un pārbaudīts, lietotājam ir iespēja iegūt
datus par modeļa aprēķinātiem koeficientiem katram no atribūtiem. Šīm nolūkam kalpo
GET_MODEL_DETAILS_SVM procedūra (gadījumā, ja lietotājs izmanto Visparināto
Lineāro Modeli, jāizmanto GET_MODEL_DETAILS_GLM procedūra). Ieraksti, kurus
atgriež Atbalsta Mašīnas Vektora procedūra, satur ieliktās tabulas.
12.att. Regresijas modeļa informācijas iegūšanas vaicājums
Dotajā vaicājumā rezultātā tiek iegūta tabula ar 3 kolonnām, bet pielietojot procedūru
GET_MODEL_DETAILS var iegūt vairāk informācijas par izveidotu regresijas modeli.
Piezīme: GET_MODEL_DETAILS_SVM procedūra atgriež vērtības tikai lineāram kodolam
[Tierney 2014] (sk. regresijas algoritmi).
25
3.1.7. Regresijas modeļa pielietošana
Regresijas pielietošanai ar SQL valodas palīdzību, lietotājam jāizmanto funkcija
PREDICTION, kas atgriež mērķa atribūta prognozējamo vērtību. Kā argumentu, funkcijai
jānodod modeļa nosaukums (dotajā gadījumā – demo_regression_model).
13. att. Regresijas modeļa pielietošana ar SQL vaicājumu
Rezultātā lietotājs iegūst tabulu ar divām kolonnām, pirmā no kurām ir klienta id, bet
otrā – regresijas prognozējama peļņa, saistītā ar doto klientu. Rezultātus ir iespējams saglabāt
kā tabulu vai skatu turpmākai analīzei vai izmantošanai.
26
3.5. Regresijas aprēķinu veikšana lietojot PL/SQL valodu
Oracle izstrādātais risinājums datu meklēšanai un analīzei datu bāzē nav vienīgā iespēja
ieviest biznesa intelekta elementus datu bāzes serverī. Izmantojot SQL vaicājumu valodu,
lietotājam ir iespēja izgūt no datu bāzes datus, kā arī metadatus, taču SQL valodai ir
ierobežotas iespējas. Oracle datu bāzē ir iespējams pielietot dzimto PL/SQL programmēšanas
valodu [ODOD2 2015], kā arī izveidot vai ielādēt Java programmēšanas valodā rakstītas
programmas [ODOD1 2015] sarežģītāku (tādu, kuru risināšanai ir nepieciešams veikt vairāk
darbību, kuru realizācija ir laikietilpīga vai neiespējama PL/SQL valodā) uzdevumu
risināšanai.
Objektu tipa izveidošana
PL/SQL funkcijas
definēšana
Modeļa sagatavošana
Modeļa pielietošana
14. att.PL/SQL funkcijas izmantošanas darbības shēma
Regresijas funkcijas realizēšanai autors izmanto Oracle objektu tipus, kas ir līdzīgi
objektiem no objektorientētas programmēšanas. Jaunus objektus Oracle datu bāzē var veidot
no iebūvētiem datu bāzes datu tipiem, ka arī no lietotāja izveidotiem objektu tipiem, tadejādi
abstrakti apvienojot datus vienā vienībā [ODOD3 2015]. Kā regresijas aprēķināšanas metodi
autors izmanto mazāko kvadrātu metodi (the method of least squares), kuras realizēšanā pēc
autora uzskata ir pietiekami sarežģīta, lai atteiktos no SQL vaicājumu valodas un izmantot
PL/SQL programmēšanas valodu.
3.1.8. Oracle objektu tipa izveidošana
Dotā uzdevuma izpildīšanai autors izveido Oracle objektu tipu REG_TYPE, kas sastāv
no 3 artibūtiem un 1 funkcijas.
Objektu tips: REG_TYPE
Atribūti:X: NumberY:NumberZ:Number
Metodes:Prediction(varchar2)
15.att. REG_TYPE tipa diagramma
27
Atribūtu skaitā ir skaitliskās vērtības X, Y un Z, kam jābūt piejamiem tabulā brīdī, kad
lietotājs vēršas pie regresijas funkcijas. Dotajām uzdevumam autors ierobežo lietotāja iespēju
izvēlēties atribūtu X kā mērķa atribūtu, tāpēc lietotājam paliek iespēja izveidot modeli tikai
vērtībām Y vai Z.
Papildus atribūtiem, tipa definēšanas procesā jāpievieno MEMBER tipa funkcija, kuru
autors nosauca Prediction. Member metode ir daļa no Oracle objektu tipa un ar tādas funkcijas
izmantošanu var vērsties pie objekta atribūtiem lietojot konstrukciju self.X, lai, piemēram,
vērsties pie X vērtības.
16.att. Oracle datu tipa REG_TYPE izveidošanas kods
Pēc prognozējamās Y vai Z vērtības izskaitļošanas, funkcijai jāatgriež iegūtā skaitliskā
vērtība, kas funkcijas deklarēšanā ir norādīts ar RETURN NUMBER. Visi mainīgie un
atgriežamā vērtība dotajā gadījumā ir datu bāzes datu tipi, līdz ar ko nav nepieciešama nekāda
veida datu transformācija.
3.1.9. Datu tabulas izveidošana un aizpildīšana
Uzveduma izpildīšanai autors izveido tabulu koef_tab ar rindas tipa objektiem, kurā
katrs ieraksts (rinda) ir objekts. Tabula tiks aizpildīta ar skaitļiem pēc principa Y=X+/-2.
Atsevišķos gadījumos šīs likums ir ignorēts, lai pietuvinātu piemēru reālai sutuācijai, kad
datos pastāv anomālijas. Tabulas pēdējā kolonnā Z ir ierakstīti patvaļīgi dati, kuru saistību ar
X vērtībām nevar paskaidrot, pielietojot lineāras regresijas metodi. Tas tika izdarīts ar nolūku
parādīt, ka lietotājam jānoskaidro datu savstarpējas atkarības pirms metodes pielietošanas, lai
netiktu iegūti aplami dati. Ir svarīgi atzīmēt, ka dotajā gadījumā kolonnu skaitliskajam
vērtībām ir tikai attēlošanas nolūks, jo tiek apskatīts metodes darbības princips, nevis
precizitāte un/vai iegūtie rezultāti.
17.att. Tabulas koef_tab izveidošanas vaicājums
Izvedojot tabulu, vaicājumā jānorāda, ka tabulā katrs ieraksts ir objekts. Šīm nolūkam
pēc tabulas nosaukuma tika pierakstīts OF REG_TYPE, kur REG_TYPE ir iepriekš izveidota
28
Oracle objektu tipam piešķirtais nosaukums. Tabulas struktūra pēc aizpildīšanas ir attēlota 8.
tabulā. Dotā tabula 4. tabula. Tabulas koef_tab struktūra
X Y Z
1,0 1,2 3.0
3,2 1,0 2.0
4,0 4,7 7.3
7,0 8,0 11.5
10,1 10,3 0.2
13,6 15,2 8.0
16,9 19,3 5.9
20,5 24,8 5,3
Kad lietotājam ir pieejama tabula koef_tab, nākamais uzvedums ir veidot skatus no dotās
tabulas. Tā kā uzdevuma gaitā tiks aprēķināta gan Y, gan Z vērtības, tad tiks izveidoti 2 skati:
1) Skats koef_xy, kas satur sevī X un Y kolonnas no tabulas koef_tab;
2) Skats koef_xz, kas satur sevī X un Z kolonnas no tabulas koef_tab;
Modeļa veidošanas gaitā lietotājam būs jāizvēlās viens no skatiem, kas tiks izmantots kā
ievaddati funkcijai Predict. Atkarībā no tā, kurš skats tiks izvēlēts un padots funkcijai Predict,
tiks izskaitļota Y vai Z vērtība. Svarīgi atzīmēt to, ka abos skatos kolonnas jānosauc X un Y.
18. att. Skatu veidošanas vaicājumi
Mērķa atribūta vērtības prognozēšanu autors nolēma sadalīt 2 soļos: koeficientu
noteikšana no skata vai tabulas un mērķa atribūta vērtīas izskaitļošana, pielietojot iegūtos
koeficientus. Sakarā ar to, tika izveidota apakšfunkcija GETKOEF, kuras mērķis ir iegūst A
un B koeficientus no lietotāja ievadīta skata (vai tabulas). Skatā jābūt vismaz 2 kolonnām,
viena no kurām jānosauc X, bet otrā Y. 5. tabula. Skati koef_xy un koef_xz
Skats koef_xy Skats koef_xz
X Y X Y
1 1,2 1.0 3.0
3,2 1 3,2 2.0
4 4,7 4.0 7.3
29
Skats koef_xy Skats koef_xz Skats koef_xy Skats koef_xz
X Y X Y
7 8 7.0 11.5
10,1 10,3 10,1 0.2
13,6 15,2 13,6 8.0
16,9 19,3 16,9 5.9
20.5 24.8 20.5 5.3
Lai parādītu kolonnu savstarpēju saistību, autors attēlo abas tabulas koordināšu asīs.
Dotajā gadījumā tāda tipa datu analīze ir nepieciešama, lai saskatītu datu savtarpēju atkarību
un noteikt, vai lineāras regresijas metodes iegūtus rezultātus varētu uzskatīt par precīziem.
19.att. Kolonnu vērtību savstarpēja saistība
30
No diagrammām var skaidri redzēt, ka Y atkarība no X ir tuva lineārai un līdz ar to,
vērtību Y var prognozēt ar lineāras regresijas metodi. Savukārt Z atkarība no X nav
paskaidrojama ar lineāras regresijas metodi un, pielietojot autora izveidotas funkcijas,
rezultātā tiks iegūtas aplamas vērtības, kuras turpmāk nevarēs izmantot.
3.1.10. Regresijas aprēķinu funkcijas izveidošana
Autora izveidotas regresijas funkcijas algoritms ir paradīts 11. attēlā. Izveidotā funkcija
sastāv no 5 daļām: kursora atvēršana, datu izgūšana, datu analīze un skaitļošana, kursora
aizvēršana un jaunu datu atgriešana.
20.att. GETKOEF funkcijas blokshēma
31
Lai PL/SQL funkcijai Predict būtu pieejami dati no tabulas koef_tab, kas pieder
vienam Oracle objektu tipam ar pašu funkciju, tiek izmantots Ref kursors. Ref kursors, līdzīgi
kā radītājs programmēšanas valodā C, norāda uz datiem, nevis glabā datu vērtības. Šajā
gadījumā kursors norāda uz vairāku ierakstu datiem, kas tika iegūti vaicājuma izpildes
rezultātā [ODOD4 2015]. Dotajā gadījumā ar vaicājumu autors iegūst no tabulas koef_tab
visus datus objektu veidā.
21.att.. Kursora atvēršanas kods GETKOEF funkcijā
Ierakstu skaita noteikšanai autors izmanto konstrukciju SELECT INTO, kas ieraksta
vaicājuma rezultātu iepriekš definētā mainīgā. Šī vērtība ir nepieciešama turpmākajai
skaitļošanai un tā netiek izmantota kā cikla mainīgais.
22.att. Cikla darbība GETKOEF funkcijā
Lai izgūtu ierakstus no kursora mainīgā k_m_1 tiek izmantota komanda fetch, kas
ievieto ieraksta vērtības X un Y programmas robežās definētos mainīgajos. Konstrukcija
EXIT WHEN K_M_1%NOTFOUNT šajā gadījumā pārbauda, vai no kursora tika iegūts
ieraksts un aptur ciklu brīdī, kad tika izskatīti visi ieraksti. Mainīgais SUMX tiek izmantots
kolonnas X vērtību summēšanai, lai turpmāk izskaitļotu mainīgos A un B. Pēc cika
pabeigšanas kursors k_m_1 tiek aizvērts ar komandu CLOSE K_M_1 un tiek izskaitļotas A
un B vērtības.
Kad A un B ir izskaitļoti, funkcija atgriež abas vērtības funkcijai Predict, lai turpmāk
izkaitļotu mērķa atribūta vērtības. Mērķa atribūta prognozējamā vērtība tiek rēķināta pēc
formulas Y=AA+BB*X. Tā kā AA un BB ir funkcijas iekšējie mainīgie, tad tie ir pieejami
funkcijas izpildes laikā. Lai nav atkārtoti jāizmanto cikls matemātiskā modeļa pielietošanai un
jaunu datu izgūšanai, tiek izmantota MEMBER tipa metodei raksturīga konstrukcija SELF,
kas izmanto katra ieraksta individuālo vērtību (dotajā gadījumā X vērtību).
23.att. Predict funkcijas rezultāta atgriešana
32
3.1.11. Regresijas aprēķinu funkcijas pielietošana un rezultātu analīze
Funkcijas izsaukšana notiek ar SQL vaicājumu, līdzīgi kā datu izgūšana. Vaicājumā pie
funkcijas jāveršās kā pie objekta metodes, izmantojot konstrukciju VALUE().
24.att. Regresijas funkcijas prediction pielietošana
15. attēlā izveidotais vaicājums atgriež no tabulas koef_tab vērtības X, Y un Prediction
funkcijas vērtību, kas ir individuāla katram ierakstam, bet tiek aprēķināta, izmantojot datus no
skata koef_xy. Lai pielietotu funkciju skatam koef_xz, lietotājam būtu jānorāda skata
nosaukums funkcijas ieejas atribūtu sarakstā, aizvietojot ‘koef_xy’.
25.att. Regresijas funkcijas pielietošanas rezultāts
Rezultātā tika iegūta tabula ar X un Y kolonnām no tabulas koef_tab un kolonna
Predict_Y, kurā ir ierakstīta prognozējamā Y vērtība. Regresijas precizitāte dotajā uzdevumā
nav tik svarīga, kā PL/SQL funkcijas pielietošanas piemērs datizracei. Ar doto funkciju tika
realizēta regresijas metode, nepārvietojot datus no datu bāzēs un nenoslogojot lietotāja
aparatūru, jo PL/SQL metodes izpilde notiek datu bāzes servera pusē, nevis lietotāja pusē.
3.6. Regresijas aprēķinu veikšana lietojot Java valodu (iekļautā valoda)
Neskatoties uz to, ka PL/SQL procedurāla programmēšanas valoda paplašina
programmēšanas iespējas datu bāzes vidē, tās pielietošana nav vienīgais pareizais risinājums
katram no uzdevumiem. Pastāv gadījumi, kad risinājums izpildās ātrāk, ja tas ir implementēts
citā programmēšanas valodā, līdz ar ko radās nepieciešamība pēc vairāku programmēšanas
valodu izmantošanas viena risinājuma (projekta) ietvaros.
33
Programmas izveidošana
Programmas ielāde datu bāzē
PL/SQL funkcijas
izveidošana
Modeļa sagatavošana
Modeļa pielietošana
21. att. Iekšējas valodas programmas izmantošanas darbības shēma
Oracle datu bāze atbalsta Java programmēšanas valodā rakstīto programmu izpildi datu
bāzes servera pusē. Programmas pirmkodu var izveidot izstrādes vidē (piem. Oracle SQL
Developer), pielietojot konstrukciju CREATE OR REPLACE JAVA SOURCE un turpinot ar
programmas pirmtekstu. Cita iespēja ir ielādēt datu bāzē jau esošu .java programmu,
izmantojot loadjava.bat skriptu. Abas iespējas nodrošina programmas kompilēšanu datu bāzē,
taču pēc autora pieredzes, pirmkoda rakstīšana SQL Developer vidē bieži vien noved pie
situācijas, kad programma tiek izveidota, taču nav uzrakstīta sintaktiski pareizi, līdz ar to nav
lietojama. Ielādes gadījumā datu bāze atgriež kļūdu tik ilgi, kamēr .java fails nav pabeigts un
izlabots.
3.6.1. Java programma regresijas metodes realizēšanai
Lai pielietotu iepriekšējā nodaļā aprakstītu regresijas funkciju Java valodā, autors
izmanto loadjava.bat skriptu .java faila ielādei datu bāzē.C:\Users\PC>loadjava.bat -u system/12345@localhost:1521:DB2 -v -r –t D:\Reg.java
Šī darba autors iesaka izmantot loadjava.bat skriptu, nevis SQL Developer vidi .java
programmas pievienošanai, jo dotais skripts norāda programmētājam uz kļūdām programmas
failā, atbrīvojot no nepieciešamības meklēt kļūdas patstāvīgi. Ar augstāk uzrakstītu komandu,
autors ielādē datu bāzē DB2 programmu Reg.java.
Vissvarīgākas īpašības, kas atšķir Java valodā implementēto risinājumu no PL/SQL
risinājuma ir: savienojums ar datu bāzi, atribūtu vērtību izgūšana un rezultātu izvade.
Atšķirībā no PL/SQL funkcijas, Java programma nevar tikt palaista bez papildus izveidota
karkasa, kas ir PL/SQL funkcija Java programmas izpildīšanai.
Lai izveidotu savienojumu ar datu bāzi, pirmkārt jāizveido savienojuma objekts.
Dotajā piemērā savienojuma objekta nosaukums ir conn. Vaicājuma izpildei jāizveido
sagatavotais vaicājums (no angļu – Prepared Statement), kas glabā vaicājumu, nepieciešamu
datu izgūšanai. Vaicājuma rezultāts tiek ierakstīts ResultSet tipa struktūrā, kas ir tabula ar
vaicājuma rezultātiem no datu bāzes.
34
27.att. Java programmas savienojums ar datu bāzi
Metodes prepareStatement arguments ir vaicājums, kas tiks izmantots savienojumā
ar datu bāzi. Dotajā gadījumā vaicājums ir SELECT [1.kolonna],[2.kolonna] from [tabulas
nosaukums]. Sakarā ar to, ka vaicājums tiek ģenerēts programmas izpildes laikā un argumenti
tiek paņemti no funkcijas atribūtiem, vaicājums tiek glabāts String tipa mainīgajā un var tikt
izmantots vairākkārt darba gaitā.
Lai iegūtu skaitliskās vērtības no ResultSet datu struktūras, tiek izmantota
rs.getFloat(1) konstrukcija, kas iegūst no rs tabulas float tipa vērtību, kas atrodas 1. kolonnā.
Lai pārvietoties uz nākamo rindu, tiek lietota konstrukcija rs.next(). Rezultātu izvadei tiek
izmantota System.out.println konstrukcija, kas izvada tekstu, nevis tabulu, kā SQL vaicājumi.
3.6.2. Java programmas izsaucošas funkcijas izveidošana
Java programmas palaišanai ir nepieciešams izveidot PL/SQL karkasu, kas ir procedūra,
nepieciešamā iekļautas valodas programmām. Šī darba autors izveido paketi
PAKETE_A2_JAVA, kas satur vienu procedūru T1_JAVA_REG. Šajā posmā procedūra tiek
deklarēta, līdz ar ko tiek norādīti visi ieejas atribūti, bet procedūra netiek definēta.
28.att. Paketes PAKETE_A2_JAVA deklarācijas kods
Pēc paketes izveidošanas un metodes deklarēšanas, tā jādefinē, norādot programmas
valodu ar konstrukciju AS LANGUAGE JAVA. Procedūras definēšanā jānorāda java klases
metode (dotajā gadījumā Reg.T1Reg) un attiecīgie ieejas atribūti ar to tipiem Java
programmēšanas valodā, piemēram java.lang.String.
29.att. Paketes PAKETE_A2_JAVA definēšanas kods
35
Neskatoties uz to, ka ir norādīts Java valodas tips String, funkcijas izsaukšanas laikā
lietotājs kā argumentu nodošanai izmanto datu bāzes varchar2 datu tipu. Visas
transformācijas notiek automātiski un lietotājam par to nav jārūpējas.
Pēc karkasa izveidošanas programmu var PL/SQL valodā, vēršoties pie tās kā pie
jebkuras citas PL/SQL funkcijas.
3.6.3. Java programmas pielietošana
Dotajam uzdevumam autors ir izveidojis Java programmu, kas iegūst no jebkuras
tabulas jebkuras 2 kolonnas un, izmantojot abas no tām, iegūst A un B koeficientus un
izskaitļo vienas no kolonnam prognozējamo vērtību. Līdzīgi kā iepriekšejā sadaļā, lietotājam
jāanalizē ievaddati, lai ieejas atribūti būtu lineāri saistīti, citādi lineārās regresijas metodes
rezultāti būs aplami un nelietojami.6.tabula. T1_Java_Reg metodes atribūti
Atribūts Tips Komentāri
X String Mainīgā vērtība, no kuras ir atkarīga mērķa
atribūta vērtība.
Y String Mērķa atribūta vērtība, kas tiks prognozēta
Tabula String Tabulas nosaukums, kas satur kolonnas ar X un
Y noradītām kolonnām.
Lai parādītu procedūras darbību, darba autors pielieto to iepriekš izveidotajai tabulai
koef_tab ar sekojošo vaicājumu:
30.att. Java programmas izsaukšanas kods
Dotais vaicājums prognozēs Y vērtību no X vērtības. Līdzīgi varētu nomainīt kolonnu
nosakumus, lai prognozētu citas vērtības ar citiem ieeju datiem.
31. att. T1_Java_Reg metodes rezultāts
36
Autora izveidota programma sasniedz savu mērķi un prognozē kolonnu vērtības,
pielietojot lineārās regresijas metodi. Rezultāti pilnībā sakrīt ar PL/SQL metodes iegūtiem
rezultātiem un programma tiek palaista un izpildīta datu bāzes serverī, kā tas tika plānots.
Rezultātu precizitāte ir apmierinoša, taču tā pašlaik nav galvenā prioritāte.
3.7. Regresijas aprēķinu veikšana lietojot C valodu (ārējā valoda)
Papildus PL/SQL un Java programmēšanas valodām, šajā darbā tiks apskatīta iespēja
izmantot ārējas valodas (dotajā gadījumā C), kuras izsaukšana notiek ar ārējo procedūru (angl.
external procedure) izmantošanu. Ārējā programmēšanas valoda ir nepieciešama gadījumos,
kad PL/SQL programmēšanas valodā implementēta programma ir, pēc izstrādātāja uzskata,
pārāk sarežģīta, vai arī izpildās ilgāk, nekā C++ valodā implementēts risinājums. Kā piemēru
situācijai, kad C++ valodā izstrādātais risinājums ir ātrdarbīgāks, nekā PL/SQL programma, ir
[ODOD5] minēta skaitliskā integrēšana (angl. numeric integration). Šajā sadaļā tiks aprakstīts
algoritms ārējas C++ valodā uzrakstītas programmas implementēšanai un izsaukšanai no datu
bāzes. Šajā sadaļā netiks apskatītas un salīdzinātas vairākas situācijas, lai nonāktu pie
secinājuma, kuru no programmēšanas valodam izmantot katram konkrētam gadījumam.
3.7.1. Darbības shēma ārējas programmas izmantošanai
Ārējas programmas implementēšana un izmantošana ir līdzīga iekļautas Java valodas
piemēram.
Sadalītas bibliotēkas izveidošana
Programmas izveidošana
Aizstājbibliotēkas definēšana
PL/SQL funkcijas
izveidošana
Modeļa sagatavošana
Modeļa pielietošana
32. att. Darbības shēma ārējai valodai
37
Visu procesu var sadalīt 2 posmos:
1. Darbs ārējā vidē, kas iekļauj sevī programmas un bibliotēkas izveidošanu.
2. Darbs datu bāzes vidē, kas iekļauj PL/SQL funkcijas veidošanu, modeļa sagatavošanu
(tabulu un/vai skatu izveidošana/rediģēšana) un modeļa pielietošanu, izmantojot
iepriekš definētu PL/SQL funkciju.
Saskaņā ar to, ka iekļautas valodas izmantošanas piemērā tika apskatītai vairāki posmi,
kas raksturīgi arī ārējas valodas izmantošanas gadījumam, šajā sadaļā tiks apskatīti tikai ar C
valodu saistītas atšķirības.
3.7.2. Ārējas programmas definēšana datu bāzes vidē
Lai izmantotu ārējas programmas datu apstrādei datu bāzes serverī, jāizmanto sadalīta
bibliotēka (angl. shared library), kas satur ārējas programmas kodētu implementēšanu. Pieeju
sadalītai bibliotēkai nodrošina aizstājbibliotēka (angl. alias library), kuras izveidošana notiek
PL/SQL programmēšanas valodā ar sekojošo vaicājumu (pārņemts no [ODOD5]).CREATE OR REPLACE LIBRARY TestReg AS
'/data_cartridge_dir/libdatastream.so';
Līdzīgi kā tas tika darīts ar Java metodi, C programmai jāizveido PL/SQL izsaucošā
funkcija, ar kuras izmantošanu ārējo programmu varēs turpmāk izmantot datu bāzes vidē.
Funkcijā janorāda tās nosaukums PL/SQL valodā (Predict_Reg), ieejas dati un to tipi (x,y,
koef_tab), atgriežamās vērtības tips, ārējā programmēšanas valoda, kurā ir izveidota
programma (C), bibliotēkas nosaukums, kurā atrodas programma (iepriekš definēta TestReg
aizstājbibliotēka) un programmas nosaukums dotajā bibliotēkā. Papildus tiek izmantota WITH
CONTEXT konstukcija, lai atļautu ārējai funkcijai piekļūšanu datu bāzei nepieciešamo datu
iegūšanai. Bez WITH CONTEXT izmantošanas funkcija nevar vērsties pie datu bāzes ar SQL
vaicājumiem.CREATE OR REPLACE FUNCTION Predict_reg (
x VARCHAR2,
y VARCHAR2,
koef_tab VARCHAR2) RETURN FLOAT
AS LANGUAGE C
LIBRARY TestReg
NAME "C_Reg"
WITH CONTEXT;
Funkcijas izsaukšana notiek PL/SQL valodā tādā pašā veidā kā tika izsaukta Java
valodā implementēta programma. Ārējas programmas izsaukšana demonstrēta 33. attēlā. Lai
izsauktu ārējo programmu, PL/SQL izmanto aizstājbibliotēkas nosaukumu un iegūst no tās 38
reālo adresi sadalītai bibliotēkai un ziņo notikumu uztvērējam, kas palaiž seeijas aģentu (ja tas
netika norādīts aizstājbibliotēkas izveidošanas brīdī, tad – extproc). Uztvērējs padod aģentam
sadalītas bibliotēkas nosaukumu, ārējas programmas nosaukumu un visus funkcijai padotus
parametrus. Pēc ieejas datu saņemšanas extproc palaiž ārējo programmu uz izpildi un padod
uz PL/SQL visas vērtības, kuras atgrieza ārējā programma. Pēc programmas izpildīšanas un
datu atgriešanas extproc aģents netiek likvidēts, kamēr nav beigusies lietotāja sesija Oracle
datu bāzē, līdz ar ko aģentu var izmantot atkārtoti vienas sesijas laikā [ODOD6].
33. att. Ārējas procedūras izsaukšana (pārņemts no [ODOD6] un pārtulkots)
39
4. VARIANTU SALĪDZINĀJUMS UN IZVĒRTĒJUMS
Šajā nodaļā autors izvērtē un salīdzina izstrādātos risinājumus biznesa intelekta
ieviešanai Oracle datu bāzē. Iepriekšējā nodaļā tika analizēta datizraces metožu izmantošana
Oracle Advanced Analytics paplašinājuma vidē un tika piedāvāti autora risinājumi 3 dažādās
programmēšanas valodās (PL/SQL, Java, C). Katrs risinājums tiks izvērtēts individuāli un
beigās tiks secināts par tehnoloģijas nepieciešamību un risinājumu implementēšanas iespējām.
4.1. Oracle izstrādāta risinājuma variantu izvērtējums
Katrs no Oracle izstrādāta risinājuma variantiem tiks novērtēts (7. tabula) pēc
sekojošiem kritērijiem:
1. Gala lietotājam nepieciešamās prasmes;
2. Datizraces metodes pielietošanas vienkāršība;
3. Vairāku metožu secīgas izpildes iespējas;
4. Datizraces modeļa modifikācijas iespejas.7. tabula. Oracle risinājumu izvērtējums
Risinājuma variantsNepieciešamās
prasmes
Metožu
pielietošanaSecīga izpilde
Modifikācijas
iespējas
Oracle Data Miner
videNav Vienkāršāka
Gandrīz nepalielina
sarežģītībuPastāv
SQL ar Oracle Data
Miner nodrošinātām
iespējam
1.SQL
2.ODM funkciju
sintakse
Sarežģītāka un
laikietilpīgāka
Palielina metodes
izsaukuma vaicājuma
garumu
Nepastāv, modelis
jāveido no jaunas
Oracle Data Miner risinājumu izstrādes vides izmantošana neprasa no lietotāja nekādu
papildus zināšanu, ja lietotājam ir pieejama programmatūras dokumentācija. Datu analīzes un
informācijas iegūšanas process notiek ar mezglu izmantošanu un iestatīšanu, kas savukārt
neprasa nekādas specifiskas zināšanas, to starpā SQL valodas prasmes. Datizraces metode
notiek 3 posmos: datu sagatavošana, modeļa izveidošana un modeļa pielietošana. Visus
posmus ir iespējams realizēt ar mezglu izvietošanu un sasaisti darbplūsmā, līdz ar ko tiek
būtiski samazināts lietotāja patērētais laiks, salīdzinot ar vaicājumu veidošanas procesu.
Papildus tam, darbplūsmas elementu secīga izvietošana dod iespēju izpildīt vairākas
datizraces metodes nelietojot saliktus vaicājumus (tādus, kuri ieeja izmanto ielikto vaicājumu
40
izeju). Visas nepieciešamas modeļa modifikācijas lietotājs var veikt darbplūsmā, mainot
elementu izvietojumu, saites starp elementiem un elementu iestātījumus.
SQL valodas izmantošana ar Oracle Data Miner nodrošinātām funkcijam un paketēm
prasa no lietotāja SQL valodas zināšanas, jo tas izmantošana ir nepieciešama vairāku darbību
veikšana. Ka vienu no argumentiem, datizraces funkcija izmanto iestatījumu tabulu, kuras
izveidošana notiek SQL valodā ar CREATE un INSERT komandām. Papildus tam, lietotājam
jāpārzin Oracle Data Miner SQL funkcijas un PL/SQL paketes. Modeļa izveidošanas
vaicājums iekļauj sevī vairāku SQL vaicājumu izmantošanu, līdz ar ko modeļa dati ir pieejami
tikai pēc atbilstoša vaicājuma izmantošanas. Vairākas datizraces metodes var izmantot secīgi
pielietojot vairākus aprēķinu modeļus, taču šīm nolūkam ir nepieciešama salikto vaicājumu
izmantošana. Modeļus var izmantot atkārtoti, bet modeļu modificēšana apskatītajā variantā
nav atbalstīta. Ja rodas nepieciešamība pēc izmaiņām, tad modelis jāizveido no jaunas.
Salīdzīnot Oracle izstrādāta risinājuma divus variantus, autors nonāca pie secinājuma,
ka Oracle Data Miner vide ir lietotājdraudzīgāks lietojums, līdz ar ko tāda risinājuma
izmantošana ir piemērotāka gala lietotājiem ar ierobežotām SQL zināšanam. SQL valodas
izmantošana, no otras puses, nodrošina caurspīdīgāku priekšstatu par izpildāmām darbībām,
jo lietotājs, ja vēlās, var iegūt no datu bāzes metadatus, kas citādi nebūtu pieejami Oracle Data
Miner vidē.
4.2. Autora izstrādāto risinājumu izvērtējums
Šī darba autora izstrādātie risinājumi tiek izvērtēti atsevišķi tādēļ, ka to nolūks ir
demonstrēt alternatīvas risinājumu iespējas, nevis ieviest datu bāzē pilnvērtīgu biznesa
inetelektu. Katrs no autora izstrādātiem risinājumiem tiks novērtēts (8. tabula) pēc sekojošiem
kritērijiem:
1. Risinājuma implementēšanas salīdzinoša sarežģītība (pēc autora
pieredzes);
2. Modificēšanas iespējas;
3. Risinājuma izmantošanas sarežģītība.8.tabula. Autora izstrādāto risinājumu izvērtējums
Risinājums Implementēšana Modificēšanas iespējas Izmantošana
PL/SQL VisvienkāršākaModifikācijas iespējamas,
mainot ievaddatus.
SQL valoda
Java Vidēji sarežģītaPL/SQL bloks
C Vissarežģītāka
41
PL/SQL valodā risinājuma implementācija ir, pēc autora uzkatiem, visvienkāršāka,
salīdzinot ar citiem variantiem, jo tiek uzreiz definēta PL/SQL funkcija bez nepieciešamības
veidot programmas citās programmēšanas valodās, līdz ar ko samazinās nepieciešamo darbību
skaits. Implementēšana Java valodā ir sarežģītāka tādēļ, ka Java programma jāpievieno datu
bāzei pirms tai vai izveidot izsaucošu PL/SQL funkcija. Papildus tam, jārūpējās par Java
programmas pieslēgšanu datu bāzei datu iegūšanai. Risinājumu C valodā autors uzskata par
vissarežģītāko no izstrādātiem, jo papildus visam iepriekš minētām darbībām, gadījumā ar
ārējo C valodu lietotājam jāveido sadalīta bibliotēka un jāveido norāde uz to datu bāzē.
Sakarā ar to, ka modeļa izveidošana un pielietošana autora izstrādātajos risinājumos tika
apvienota viena darbībā un datizraces modeļi netiek glabāti datu bāzē atkārtotai lietošanai,
visas modifikācijas apŗēķinu modelī vai veikt tikai un vienīgi mainot ievaddatus attiecīgai
funkcijai. Ja rodās nepieciešamība pēc modeļa saglabāšanas, autors iesaka sadalīt funkciju
divās iepriekš minētās daļās un saglabāt modeli tabulas veidā datu bāzē. Tāda pieeja
nodrošina iespēju izmantot modeli vairākas reizes un visas nepieciešamās modifikācijas veikt
modeļu tabulās.
Gala lietotājam nepieciešamas prasmes gatavu risinājumu izmantošanai ir atkarīgas no
risinājuma. Ja lietotājs izmanto PL/SQL funkciju, tad tās izsaukšana autora dotajā piemērā
notiek SQL valodā ar SELECT vaicājumu. Java un C gadījumā funkcija tiek izsaukta ar
PL/SQL bloku, kura izmantošanai ir nepieciešamas PL/SQL zināšanas, kuru līmenis ir
atkarīgs no risinājuma sarežģītības.
42
NOBEIGUMS
Analīze datu bāzē ir svarīga tehnoloģija, kuras pielietošana kļūst arvien nepieciešamāka,
palielinoties datu apjomam datu bāzēs. Izmantojot analīzes datu bāzē tehnoloģiju, no datu
apstrādes un datizraces tiek atbrīvoti lietojuma serveri un samazināts tīkla noslogojums.
Eksistē vairāki šis tehnoloģijas izstrādājumi, kas paplašina datu bāzes iespējas, nodrošinot
lietotāju ar nepieciešamiem rīkiem datu analīzei datu bāzē un ieviešot biznesa intelektu datu
bāzē.
Tika sasniegti uzstādītie mērķi: tika analizēta tehnoloģija „apstrāde datu bāzē” un tās
realizācijas varianti Oracle datu bāzē. Autors analizēja jau gatavu Oracle risinājumu un
izstrādāja savu risinājumu 3 dažādās programmēšanas valodās, lai ieviestu biznesa intelektu
datu bāzē.
Veicot pētījumu, autors ir nonācis pie šādiem secinājumiem:
1. Ieviešot biznesa intelektu datu bāzē pazūd nepieciešamība pēc datu pārvietošanas
un/vai datu transformācijas;
2. Datu analīze datu bāzē nav ierobežota ar tīkla iespējam;
3. Biznesa intelekta ieviešanai ir iespējams izmantot vairākas programmēšanas
valodas, no kuram izstrādātājs var izvēlēties vienu vai vairākas pēc saviem
uzskatiem.
4. Veicot risinājuma izstrādi, visvairāk grūtību izraisa datu iegūšana analīzei.
Analīzes un aprēķinu procesa izstrāde lielas grūtības neizraisa.
5. Risinājuma implementēšana Java valodā ir elastīgāka par PL/SQL pateicoties tam,
ka glabājamā, procedūrām PL/SQL valodā pastāv vairāki ierobežojumi.
6. Ja radās nepieciešamība pēc modeļa vairākkārtējas izmantošanas bez atkārtotās
izveidošanas, tad pastāv iespēja saglabāt datizraces modeli tabulas veidā. Ar tādas
pieejas izmantošanu, modeli ir iespējams modificēt, mainot tabulas saturu ar SQL
vaicājumu izmantošanu.
Pētījuma gaitā autors nonācis pie secinājuma, ka paša izstrādātais risinājums datizraces
metožu implementēšanai ir elastīgāks. Sakarā ar to, ka izstrādātājam ir pieeja pilnam
programmas kodam, risinājuma modificēšana netiek ierobežota nekādā veidā. Gadījumā ar
Oralce izstrādāto risinājumu, lietotāja modificēšanas iespējas ir ierobežotas ar lietotāja
interfeisā pieejamiem rīkiem. Svarīgi atzīmēt, ka ar R programmēšanas valoda paplašina datu
analīzes iespējas, taču tā
43
Darba autors iesaka izmantot izstrādāto darbu datizraces metožu apgūšanai un biznesa
intelekta ieviešanai Oracle datu bāzē, jo tajā tiek aprakstītas vairākas datizraces metodes, kas
ir nepieciešamas, veicot datu analīzi. Informācijas iegūšana no datiem ir demonstrēta ar
vienas metodes izmantošanu gatavā Oracle izstrādātā risinājumā un paša autora risinājuma
implementēšanā.
Turpmāk šo darbu varētu turpināt, pielietojot doto tehnoloģiju lielām datu bāzēm ar
mērķi:
1. Novērtēt tehnoloģijas priekšrocības salīdzinājumā ar tradicionālo pieeju;
2. Konstatēt iespējamos trūkumus;
3. Dziļāk analizēt tehnoloģiju, pielietojot to reāliem datiem;
4. Uzlabot un papildināt izstrādājumu, lai paplašinātu gala lietotāja iespējas un
samazinātu prasības.
44
LITERATŪRA
[Brobst 2009] Stephen Brobst, Keith Collins, Paul Kent, Michael Watzke..High performance analyrics with in-database processing// 1999. 1-2.lpp.
[Gartner] Gartner IT Glossary / Internets. - http://www.gartner.com/it-glossary/business-intelligence-bi skatīts 19.05.2015.
[Gullo 2015] Gullo, F., From Patterns in Data to Knowledge Discovery: What Data Mining Can Do. Physics Procedia, 2015, Nr.62, 18.-22.lpp.
[Logi] Logi Analytics / Internets. - http://www.logianalytics.com/resources/bi-encyclopedia/business-intelligence/ skatīts 16.05.2015.
[ODOD1] Oracle Database Online Documentation / Internets. -http://docs.oracle.com/cd/B28359_01/java.111/b31225/chone.htm#BABCIHDC skatīts 29.03.2015.
[ODOD2] Oracle Database Online Documentation / Internets. -https://docs.oracle.com/database/121/LNPLS/toc.htm skatīts 29.03.2015.
[ODOD3] Oracle Database Online Documentation/ Internets.- http://docs.oracle.com/cd/B19306_01/appdev.102/b14260/adobjint.htm skatīts 29.03.2015.
[ODOD4] Oracle Database Online Documentation / Internets. - http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/cursor_variable.htm#LNPLS01312 skatīts 30.03.2015.
[ODOD5] Oracle Database Online Documentationhttp://docs.oracle.com/cd/B19306_01/appdev.102/b14289/dcimethcj.htm
[ODOD6] Oracle Database Online Documentationhttp://docs.oracle.com/cd/B10501_01/appdev.920/a96595/dci04lng.htm
[Olap] Olap.com / Internets. - http://olap.com/learn-bi-olap/olap-bi-definitions/business-intelligence/ skatīts 19.05.2015.
[Oracle] Oracle/ Internets. – http://www.oracle.com/technetwork/database/options/advanced-analytics/overview/index.html, skatīts 11.12.2014.
[TBG] The Bloor Group. The New Generation of Database Technology Includes Semantics and Search – http://insideanalysis.com/, skatīts 11.12.2014.
[Tierney 2014] Tierney, B. Predictive Analytics Using Oracle Data Miner: Develop & Use Data Mining Models in Oracle Data Miner, SQL & PL/SQL. McGraw-Hill Education – Europe, 2014. 464.lpp. ISBN 9780071821674.
45
PIELIKUMI
46
1. pielikums
PL/SQL valodā implementētā risinājuma pirmkodsPrediction Member tipa funkcija.
Getkoef apakšfunkcija
47
2. pielikums
Java valodā implementētā risinājuma pirmkods.
48
top related