Latvijas Universitāte
Fizikas un matemātikas fakultāte
Datorikas nodaļa
Sistēmu izstrādes tehnoloģija,
izmantojot ORACLE CASE
Bakalaura darbs
Autors
: Ivo Ālmanis 4Dz2
st. apl. Nr. 921160155
Darba
vadītājs : d. z. maģ. A.Niedrītis
Rīga, 1996
Anotācija
Bakalaura darbā ir apskatīta sistēmu
izstrādes tehnoloģija, izmantojot Oracle CASE rīkus. Oracle piedāvātā
tehnoloģija spēj nodrošināt vieglāku un ātrāku sistēmu izstrādi, izmantojot
grafiskos līdzekļus un ģeneratorus, kas aizvieto monotonu programmu rakstīšanu.
Kā piemērs tiek aplūkota sistēma “Tirgotāju serviss”, kas veic uzņēmumu
reģistrāciju kredītkaršu pieņemšanai, to apkalpošanu un vajadzīgo tabulu
uzturēšanu citām kredītkaršu norēķinu sistēmām.
Abstract
In this bachelor work is considered
technology of system development using Oracle CASE tools. The technology
offered by Oracle can supply easier and faster systems development using
graphic tools and generators which can replace monotonous writing of the
programs. As an example system "Tirgotāju serviss" (“Merchant
service”) is considered which carries out registration of the merchants for
acceptance of credit cards, their service and support of the necessary tables
of other settlement systems.
Àķķīņàöčÿ
Ā šàáīņå áàêàëàāšà īñģoņšåķà
ņåõķīëīãčÿ šàēšàáīņêč ñčñņåģ, čñļīëüēóÿ Oracle CASE. Ļšåäëàãàåģàÿ Oracle
ņåõķīëīãčÿ šàēšàáīņêč ñčñņåģ ģīæåņ īáåñļå÷čņü áīëåå ëåãêīå č áūñņšīå ñīēäàķčå
ñčñņåģ, čñļīëüēóÿ ãšàōč÷åñêčå ñšåäñņāà č ãåķåšàņīšū, êīņīšūå ēàģåķÿžņ
ģīķīņīķķīå ļčñàķčå ļšīãšàģģ. Êàê ļščģåš šàññģīņšåķà ñčñņåģà "Tirgotāju
serviss" (“Ñåšāčñ ņīšãīāöåā“), êīņīšàÿ īñóùåñņāëÿåņ šåãčñņšàöčž
ļšåäļščÿņčé äëÿ ļščåģà êšåäčņķūõ êàšņī÷åê, čõ īáñëóæčāàķčå č ļīääåšæêó
ķåīáõīäčģūõ ņàáëčö äšóãčõ šàñ÷åņķūõ ñčñņåģ êšåäčņķūõ êàšņī÷åê.
Saturs
1. Ievads................................................................................................................................................................. 6
2. Oracle CASE metode.............................................................................................................................. 7
Oracle Designer/2000 ....................................................................................................................................... 9
Oracle Developer/2000.................................................................................................................................. 10
3. Sistēmas modelētājs.......................................................................................................................... 13
Entīšu, atribūtu un to
savstarpējo saišu diagrammu veidotājs................................................. 13
4. Sistēmas dizainers................................................................................................................................ 16
Datu bāzes tabulu ģenerators.................................................................................................................. 16
Datu diagrammu veidotājs........................................................................................................................... 17
Moduļu datu diagrammu veidotājs......................................................................................................... 19
Moduļu struktūru diagrammu
veidotājs............................................................................................. 21
Preferenču navigators.................................................................................................................................. 21
Datu glabātuves administrācijas
utilīta............................................................................................. 21
5. Sistēmas ģeneratori un
izstrādes rīki................................................................................ 23
Oracle formu ģenerators............................................................................................................................. 23
Oracle atskaišu ģenerators....................................................................................................................... 24
Formu dizainers................................................................................................................................................. 24
Atskaišu dizainers............................................................................................................................................ 28
Procedūru veidotājs........................................................................................................................................ 30
Formu izpildes programma........................................................................................................................... 32
6. Sistēmas “Tirgotāju serviss”
uzdevums un realizācija........................................ 33
7. Sistēmas funkcionālais
apraksts............................................................................................ 43
8. Nobeigums.................................................................................................................................................... 45
9. Literatūra.................................................................................................................................................. 46
Pielikums.......................................................................................................................................................... 47
Diagrammas..................................................................................................................................................... 48
Programmu teksti.................................................................................................................................... 51
1. Ievads
Salīdzinot ar neseno pagātni, tagad
ir tendence veidot lielas sistēmas, kur datu apjoms sasniedz desmitus un pat simtus
megabaitus. Uz personāliem datoriem bāzētās datu bāzu vadības sistēmās, kā Fox
Pro, Access un citās, palielinoties datu apjomiem, krasi samazinās darbības
ātrums. Drīz tiek sasniegta robeža, kad palielināt apjomu vairs nav iespējams.
Bez tam nav iespējama vienlaicīga datu lietošana vairākiem lietotājiem, t.i.
vienlaicīgi vairāki lietotāji nevar ievadīt datus, tajā pašā laikā nodrošinot
šo datu unikalitāti. Nolasot datus parasti visus resursus aizņem viens
lietotājs, pārējiem tikmēr ir jāgaida. Šādu ierobežojumu dēļ, ar laiku sistēmas
nav funkcionēt spējīgas. Tās jāveido no jauna un tāpēc ir vajadzīgas DBVS,
kurām nav šādu ierobežojumu. Lielās datu bāzu vadības sistēmās (ORACLE, DB2 un
citas) visas šīs problēmas ir novērstas, lielāku uzmanību pievēršot arī datu
aizsardzībai un drošumam. Oracle
piedāvātā tehnoloģija sistēmu izstrādei spēj nodrošināt vieglāku un ātrāku
sistēmu izstrādi, izmantojot grafiskos līdzekļus un ģeneratorus, kas aizvieto
monotonu programmu rakstīšanu.
Darbā vispirms ir aplūkota sistēmu
izstrādes tehnoloģija, izmantojot Oracle CASE. Nākošajās nodaļās tiek aplūkota
sistēmu izstrāde pēc iepriekš aprakstītās tehnoloģijas, t.i., trešajā nodaļā
sistēmas modelēšanas rīki, ceturtajā - dizaina rīki un piektajā - sistēmas
ģeneratori un formu un atskaišu izstrādes rīki. Sestajā nodaļā tiek aplūkots
konkrētas sistēmas izstrādes piemērs - “Tirgotāju serviss”, kas veic uzņēmumu
reģistrāciju kredītkaršu pieņemšanai un to apkalpošanu. Septītajā nodaļā tiek
aplūkots sistēmas funkcionālais apraksts, kas nepieciešams, lai varētu strādāt
izmantojot Oracle CASE.
Angliskie nosaukumi ir tulkoti
izmantojot LZA terminoloģijas komisijas informātikas apakškomitejas
apstiprinātos angļu terminu latviskojumus. Terminiem, kuriem iepriekšminētajā
vārdnīcā nebija dots tulkojums, ir doti darba autora tulkojumi, iekavās dodot
orģinālnosaukumu angliski.
2. Oracle CASE metode
Visbiežāk ar vārdu “sistēma” saprot
vairāku datora procesu komplektu, kas apmierina kādu no funkcionālām
vajadzībām. Šādu sistēmu izstrādāšana nav viegla, jo to apgrūtina straujā tehnoloģiju attīstība, t.i., :
·
mikro-datoru
straujā attīstība;
·
datoru
dzīves cikls ir 2-3 gadi (tehnika vairs neatbilst prasībām);
·
programproduktu
lielajā apjomā nav iespējams orientēties;
·
komunikāciju
iespējas attīstās neiedomājami ātri, t.i. nav zināms vai šis komunikāciju līdzeklis būs pietiekami labs
pēc dažiem gadiem.
Vislielākās
problēmas ir saistītas ar cilvēkiem :
·
cilvēki
visbiežāk nezin ko viņi grib un ko tiem vajag;
·
tie
lieto vienus un tos pašus jēdzienus runājot par dažādām problēmām;
·
sistēmu
izstrādātāji nevar (vai negrib) ieklausīties lietotāju problēmās, un steidzīgi izveido to ko vajag (viņuprāt).
Jebkuras sistēmas izstrāde sastāv no
vairākiem posmiem. Oracle CASE metode piedāvā šādu sistēmu izstrādes
tehnoloģiju [1], kā parādīts 1. attēlā:

Stratēģija
![]() |
|||||||
![]() |
|||||||
|
|||||||
|
|||||||






·
Stratēģija
:
Veiksmīga sistēmu izstrāde atkarīga
no pareizas klienta vajadzību izpratnes un realizācijas vides kādā sistēma
strādās. Svarīgākais šajā posmā ir kopā ar nākamajiem lietotājiem izstrādāt
modeļus, kas apmierina pasūtītāja prasības, ņemot vērā tā tehnisko un
finansiālo stāvokli. Tiek izveidota entīšu un to savstarpējo saišu diagramma,
kas raksturo nepieciešamās informācijas savstarpējo saistību. Jāvienojas par
iespējamo sistēmas arhitektūru.
·
Analīze
:
Analīzes posmā tiek aplūkoti un
pārbaudīti stratēģijas rezultāti un sīkāk aplūkotas to detaļas. Tiek akceptēta vai noraidīta entīšu diagrammas
(noraidījuma gadījumā, jāatgriežas stratēģijas posmā). Tiek izveidotas visu
nepieciešamo datu vienību definīcijas (Domain), aprakstīti entīšu atribūti un
to unikālie identifikātori.
·
Dizains
:
Dizaina posmā tiek aplūkoti analīzes
posma rezultāti un turpināta sistēmas pilnveidošana. No entīšu un to atribūtu
definīcijām tiek ģenerētas loģiskās un fiziskās datu tabulas un akceptētas vai
noraidītas datu tabulu definīcijas. (noraidījuma gadījumā, jāatgriežas analīzes
posmā). Tiek veidots vajadzīgo moduļu dizains (vajadzīgo datu apraksts) un
papildus sagatavota lietotāja instrukcija.
·
Izstrāde
:
Šajā posmā tiek veikta programmu
ģenerēšana, izstrāde un testēšana. Ja kāds no uzdevumiem neapmierina prasības,
tad jāatgriežas analīzes vai dizaina posmā, pārstrādājot šo uzdevumu.
·
Lietotāja
dokumentācija :
Paralēli izstrādei ir jāveic
lietotāja dokumentācijas sagatavošana.
·
Pāreja :
Pārejot uz jauno sistēmu jāveic
lietotāju sagatavošana darbam jaunā sistēmā, jāveic visi nepieciešamie sistēmas
instalācijas procesi, un veco datu konvertācija uz jaunās sistēmas datu
tabulām.
·
Uzturēšana
:
Uzturēšanas posmā tiek veikta
patstāvīga datu failu arhivēšana, atklāto kļūdu novēršana, sistēmas darbības
efektivitātes uzlabošana.
CASE metode var tikt izstrādāta bez
datora līdzdalības, taču metodes iespējas ir daudz lielākas, ja tās daļas tiek
realizētas ar dažādām datora programmām, kas paredzētas šim darbam (2. attēls).
![]() |
|||
|
Tagad aplūkosim kādi ir Oracle rīki
Designer/2000 un Developer/2000, kas nodrošina sistēmu izstrādi balstoties uz
iepriekš minēto tehnoloģiju.
Oracle Designer/2000 .
Oracle Designer/2000 ir programmu
pakete biznesa vajadzību analīzei, klienta/servera sistēmu projektēšanai, kas
sevī ietver sistēmu analīzi, programmu nodrošinājuma izstrādāšanu un programmu
koda ģenerēšanu [3],[5]. Designer/2000 nodrošina daudzlietotāju datu glabātuves
(Repository) izmantošanu, kas ļauj izstrādātājam ātri un efektīvi projektēt un
izstrādāt klienta/servera sistēmas, kuras var viegli labot atbilstoši izmaiņām
un jaunām vajadzībām.
Designer/2000
komponentes ir :
Sistēmas
modelētājs Sistēmas modelētājs (System modeler) ietver
organizācijas biznesa vajadzību detalizētu aprakstu. Tas nodrošina izstrādes
vidi entīšu (Entity), funkciju un datu plūsmu attēlošanai diagrammu veidā
konkrētai sistēmai.
Sistēmas
dizainers Sistēmas dizainers (System Designer) ļauj
izveidot konstrukciju sistēmai, kura atbilst organizācijas darbības prasībām.
Tas dod sistēmas inženieriem un konstruktoriem sistēmas konfigurācijas
attīstības iespējas.
Ģeneratora
produkti Ģeneratora produkti (Forms Generator,
Reports Generator un Server Generator) izmantojot datu glabātuvē ierakstītās
definīcijas, veido sistēmas objektus, kuri ietver servera komponentes (datu tabulas,
tabulu trigeri, programmu paketes u.t.t.) un lietojumprogrammas (ekrāna formas,
atskaites, izvēlnes, procedūras u.t.t.).
Datu
glabātuves
administrators Datu
glabātuves administrators (Repository Administrator) piedāvā datu glabātuves
vadīšanas iespējas, ieskaitot :
·
administrācijas
utilīta (Repository Administration Utility) - datu glabātuves instalēšana,
pilnveidošana un uzturēšana;
·
objektu
navigators (Repository Object Navigator) - grafiska datu glabātuvē esošo definīciju
pārskatīšana;
·
atskaites
(Repository Reports) - veido iepriekš definētas atskaites par datu glabātuves objektiem.
Oracle Developer/2000.
Developer/2000 ir programmu pakete
Oracle ģeneratora produktu (formu, atskaišu) labošanai, kā arī jaunu ekrāna formu
vai atskaišu veidošanai, datu bāzes procedūru veidošanai, labošanai un
testēšanai.
Oracle
Developer/2000 komponentes ir :
Formu
dizainers Formu dizainers (Forms Designer) ir
programma ekrāna formu veidošanai, kas ļauj lietotājam apskatīt un labot datu
bāžu informāciju. Formā var būt vairāk par vienu logu, tabulu raksti var tikt
izvietoti vairākos logos.
Atskaišu
dizainers Atskaišu dizainers (Report Designer) ir
programma atskaišu formu veidošanai, kas ļauj lietotājam viņam vēlamā dizainā
apskatīt datu bāžu informāciju.
Procedūru
veidotājs Procedūru veidotājs (Procedure Builder) ir
programma procedūru, funkciju rakstīšanai, kas tiek noglabātas datu bāzē,
norādot lietotājus, kam būs tiesības izpildīt šīs procedūras (līdzīgi kā ar
pieeju datu tabulai). Iespējams izveidot procedūru paketes (Package), kurā
apvieno vairākas procedūras un funkcijas, tādējādi palielinot izpildes ātrumu
un atvieglojot pārskatamību par to, kas ir noglabāts datu bāzē.
Formu
izpildes
programma Formu
izpildes programma (Forms Runtime) ir programma ar formu dizaineri izveidoto
vai formu ģeneratora ģenerēto ekrāna formu izpildīšanu.
Atskaišu
izpildes
programma Atskaišu
izpildes programma (Report Runtime) nodrošina ar atskaišu dizaineri izveidoto atskaišu izpildīšanu.
Šo
produktu sīkāks apraksts ir dots nākošajās nodaļās. 3. attēlā parādīta Oracle
Designer/2000 rīku savstarpējā saistība.


ģenerēšana


Entīšu un to savstarpējo Datu diagrammu Servera

![]() |


Atribūti Kolonnas definīcijas
Saites Atslēgas

![]() |

Moduļu struktūru
diagrammu veidotājs
Moduļi


ģenerators

Moduļu datu Formas


Detalizētais
tabulu

Detalizētais
kolonnu ģenerators

Atskaites

Preferenču
navigators
Ģeneratoru
iestādījumi

Datu glabātuves
administrēšana

Datu glabātuves
objektu navigators
Matricu diagrammu
veidotājs
Datu glabātuves
atskaites
![]() |

Datu glabātuves
administrēšanas utilīta
|
3. Sistēmas modelētājs
Sistēmas izstrāde sākas ar sistēmas
modelēšanu, kas sevī ietver organizācijas biznesa vajadzību detalizētu aprakstu
apkopošanu. Tas nodrošina izstrādes vidi entīšu (Entity), funkciju un datu
plūsmu attēlošanai diagrammu veidā konkrētai sistēmai. Šajā darbā ir apskatīts
tikai entīšu un to savstarpējo saišu diagrammu veidotājs, jo kā pierādījusi
prakse bez funkciju, datu plūsmu diagrammu veidotājiem var iztikt.

Entīšu, atribūtu un to savstarpējo saišu diagrammu veidotājs
Sistēma, kas apstrādā informāciju
nevar būt veiksmīga bez pilna informācijas apraksta par to, kas ir jāuzkrāj un
jāpārvalda.
Šis CASE rīks palīdz izveidot
vajadzīgo informācijas modeli, dialoga režīmā veidojot objektu diagrammas,
vienlaicīgi saglabājot objektu definīcijas datu glabātuvē (Repository),
neinteresējoties par datu glabāšanas un pieejas metodēm topošajā sistēmā.
Objektu un to savstarpējo saišu
modelēšana kopā ar CASE rīkiem nodrošina efektīvu un ātru to objektu definēšanu
un kontrolēšanu, kas nepieciešami informācijas uzkrāšanai.
Jēdzieni, kas tiek lietoti
izmantojot šo rīku [2] :
Entīte
Entīte (Entity) - ir reāla vai iedomāta lieta vai lietu nozīme, par kuru
nepieciešams zināt, saglabāt vai uzturēt informāciju.
![]() |
Cards
|
Definēšanas
noteikumi : katrai entītei jābūt identificējamai unikālā veidā (viennozīmīgi).
Katra viena tipa entīte ir identificējama atsevišķi no citām šī tipa entītēm.
Atribūts Atribūts
(Attribute) - ir jebkura detaļa, kas kalpo, lai uzskaitītu, kvalificētu,
identificētu, klasificētu un izskaidrotu entīti.

![]() |
# card_type
card_name
proc_ccy
card_id
...
|
Atribūta nosacījumi : tam
jāapraksta tikai tas objekts, kuram tas ir piesaistīts.
Pirms atribūtu definēšanas datu
glabātuvē (Repositoty) jāizveido visu nepieciešamo datu vienību definīcijas
(Domain), aprakstot to īpašības. Definējot atribūtu, jāatsaucas uz datu
glabātuvē definētajām datu vienību definīcijām.
Unikāls
identifikators
: Katrai entītei jābūt
identificējamai unikālā veidā (viennozīmīgi). Katra viena tipa entīte ir
identificējama atsevišķi no citām šī paša tipa entītēm. Unikālais
identifikators var būt atribūts, atribūtu kombinācija, attiecību kombinācija
vai atribūtu un attiecību kombinācija. Piemēros un diagrammu veidotājā
unikālais identifikātors ir apzīmēts ar zīmi #.
Saite Saite
(Relationship) ir asociācija sarp divām entītēm;
![]() |
![]() |




![]() |
![]() |
card_type # card_type
acq_bank card_name
... ...
|


![]() |







daudzi viens
obligāta neobligāta





![]() |
||||
|
Entīšu
definēšana:
Jebkuras jaunas entītes definēšana
vai tās izmaiņa uzreiz tiek ieviesta datu glabātuvē (Repository). Diagrammu
veidotājs kalpo tikai kā palīglīdzeklis materiāla labākai uztverei, to
attēlojot grafiskā interpretācijā. Dzēšot kādu entīti no diagrammām tā var tikt
dzēsta arī no datu glabātuves (ja vajag entīti izmest tikai no diagrammas, tad
jālieto Cut funkcija, kas tās
definīciju saglabā datu glabātuvē).
Tā kā entīšu definīcijas glabājas
datu glabātuvē, entīte var būt attēlota vairākās diagrammās. Mainot entītes
definīciju kādā no diagrammām tā automātiski tiek mainīta arī citās diagrammās.

|
4. Sistēmas dizainers
Sistēmas dizainers (System designer)
ir nākošā Designer/2000 rīku grupa, kas uztur informācijas sistēmas
konstrukciju [4]. Sistēmas dizainera komponentes ir koncentrētas uz datu bāzu
aprakstiem, darbības noteikumiem un procedūrām, ekrāna prototipu un darba
gaitas aprakstiem, kas veido klienta/servera konstrukcijas pamatu.
Lietojot
sistēmas dizaineru, iespējams:
·
ar
datu diagrammu veidotāja (Data Diagrammer) palīdzību konstruēt virtuālās (View)
un fiziskās datu tabulu shēmas;
·
ar
moduļu datu diagrammu veidotāja (Module Data Diagrammer) palīdzību veidot
ekrānu un atskaišu prototipus un nodefinēt, kā dati tiks lietoti konkrētajās
lietojumprogrammās;
·
ar
moduļu struktūru diagrammu veidotāja (Module Structure Diagrammer) palīdzību
veidot izvēļņu pielietojuma struktūras.

Datu bāzes tabulu ģenerators
Kad entīšu diagramma ir pabeigta,
var sākt veidot reālās datu struktūras. Lai iegūtu datu tabulu definīcijas no
iepriekš definēto entīšu definīcijām ir jāizmanto šis Oracle CASE rīks. Pēc
noklusēšanas tabula tiek veidota ar tādu pašu nosaukumu kā entīte, taču to var
arī mainīt. Tabulas definīcija tiek ņemta no entītes definīcijas izmantojot
šādas sakarības :
·
entīte
ir jaunā tabula (var definēt tabulu, kas sevī iekļauj divas vai vairākas
entītes);
·
entītes
atribūti ir tabulas kolonnas;
·
entīšu
savstarpējā saite ir tabulas ārējā atslēga (Foreign key).
Piemēram: Ja ir definētas divas
entītes Cards un Acq_banks (6. attēls), tad attiecīgi tiek izveidotas tabulas Cards un Acq_banks ar to kolonnām. Tabulai Cards tiek izveidota primārā atslēga pēc lauka card_type, bet tabulai Acq_banks ārējā atslēga pēc lauka card_type. Tādējādi abas šīs tabulas ir
saistītas pēc ārējās atslēgas.
![]() |
![]() |




![]() |
![]() |
card_type # card_type
acq_bank card_name
... ...
|
Entīšu definēšana ir sākotnējais
posms sistēmas izveidošanā, un pēc jebkuras entītes definīcijas izmaiņas,
atkārtoti jāizpilda tabulu ģenerators, kas izveido jaunas tabulu definīcijas
datu glabātuvē.

Datu diagrammu veidotājs
Bez pilnīga datu struktūru apskata
datu bāzē, drīz vien tiktu zaudēta kontrole pār to, kas vispār ir izveidots, un
kādas ir esošo tabulu struktūras. Datu diagrammu veidotājs ir grafisks rīks
datu tabulu veidošanai, kas attēlo visas izveidotās datu struktūras un to
savstrpējās saites. Ar to var veikt sekojošo :
·
labot
tabulas, kas iegūtas ar ģeneratora palīdzību no entīšu un to savstarpējo saišu
definīcijām;
·
konstruēt
virtuālās (View) un fiziskas datu bāzes shēmas norādot to savstarpējās saites;
·
izveidot
tabulas žurnālu (tabula, ar papildus laukiem : lietotājs, darbība, datums,
labošanas vai dzēšanas iemesls), kurā tiek uzkrāta informācija par tabulas datu
izmaiņām;
·
automātiski
izkārtot labi pārskatāmu datu diagrammu izmantojot AutoLayout funkciju;
·
iekļaut
diagrammā tabulas, kas definētas tieši datu glabātuvē (Repository);
·
izveidot
vairākas diagrammas, kas ietver vienas un tās pašas tabulas;
·
veikt
entīšu un to savstartpējo saišu reģenerāciju no tabulu definīcijām, izmantojot
utilītu Table to Entity Retrofi;
·
piekļūt
citiem diagrammu veidotājiem :
·
moduļa
datu diagrammu;
·
matricu
diagrammu;
·
entīšu
un to savstarpējo saišu diagrammu veidotājam.
Datu diagrammu veidotājs neatšķiras
no entīšu un to savstarpējo saišu diagrammu veidotāja, izņemot to, ka pirmajā
gadījumā darbība notiek ar tabulām un to primārām un ārējām atslēgām, bet
otrājā ar entītēm un to savstarpējo saišu definīcijām.
Iespējams definēt arī virtuālās datu
tabulas (View), t.i. datu pieprasījums (Query)
no vienas vai vairākām tabulām, ko lietotājs redzēs kā atsevišķu datu bāzes
tabulu. Lai nodefinētu šādu virtuālo tabulu, jānorāda :
·
viena
vai vairākas tabulas uz kurām tiek balstīta šī tabula ( tām jau jābūt definētām
datu glabātuvē);
·
kolonnas,
kas tiks iekļautas šajā virtuālajā tabulā;
·
nosacījumi,
kas nosaka kādus datus ietver šī virtuālā tabula.
Daži
nosacījumi kāpēc vajadzētu lietot virtuālās datu tabulas :
·
datu
drošībai, lai aizliegtu lietotājam pieeju dažām tabulas kolonnām, vai
konkrētiem rakstiem;
·
vienkāršotu
datu pieprasījumus, kad tas vajadzīgs izmantojot jau definētās virtuālās
tabulas, kurās jau tas ir realizēts;
·
lai
slēptu fizisko tabulu reālo struktūru.
Virtuālās tabulas trūkums ir tāds
ka, ja šī tabula ir definēta apvienojot vairākas tabulas, tad to var izmantot
tikai datu apskatīšanai, t.i. nevar labot, vai ievadīt jaunus rakstus (tas nav
spēkā, ja virtuālā tabula izveidota no vienas fiziskās tabulas), šī iespēja
tiks realizēta ORACLE 7.3 versijā.

|
Pastāv iespēja izveidot entītes no
tabulu definīcijām (sk. 3. attēlu). Šo procesu veic datu diagrammu veidotājā
iebūvētā procedūra entīšu definēšanai no tabulām (Table to Entity Retrofit)
(10. attēls). Tātad pēc izmaiņām, kas veiktas datu tabulu definīcijās, lai šo
informāciju arī atjaunotu entīšu definīcijās, ir jāizpilda iepriekš aprakstītā
procedūra.
Ar datu diagrammu veidotāju
izveidoto tabulu reāli datu bāzē nav, ir tikai šo tabulu definīcijas datu
glabātuvē. Lai izveidotu tabulas, jālieto SQL teksta ģenerators (Generate SQL DDL) [10],[11]. Izpildot
noģenerēto SQL tekstu vidē SQL* Plus [9], datu bāzē tiek izveidotas reālas datu
tabulas, kurās var ievadīt datus.

Moduļu datu diagrammu veidotājs
Kad vajadzīgās datu tabulas ir
nodefinētas, var sākt veidot vajadzīgos ekrāna moduļus, kuri aprakstīs šo datu
ievadi, apskati un labošanu vai atskaišu modeļus, kas ļaus apskatīt šos datus
uz papīra vai failā. Katra moduļu datu diagramma (Module data diagramm)
apraksta konkrētu ekrāna vai atskaites moduli, raksturojot konkrētā moduļa
detalizēto datu izlietojumu (kā dati tiks attēloti, laboti un dzēsti), saites
starp izmantotām tabulām un ekrānu moduļiem kā arī tabulas rakstu izvietojumu
ekrāna modulī.

|
Katram modulim tiek piesaistīti tādi
jēdzieni kā summārais un detalizētais datu izlietojums :
·
Summārais
datu izlietojums parāda, kuras tabulas (neatkarīgi vai tā ir fiziskā vai
virtuālā tabula) izmanto šis konkrētais modulis. Atškirībā no detalizētā datu
izlietojuma, tas parāda tikai kopējo ainu, t.i., ja kāda tabula tiek lietota
modulī vairākkārt, tad summārajā datu izlietojumā tā tik un tā tiek aprakstīta
vienu reizi. Šis apraksts tiek automātiski aizpildīts veidojot moduļa
detalizēto izlietojumu. Tas tiek mainīts vienmēr, kad ekrāna vai atskaites
forma tiek ģenerēta.
·
Kad,
veidojot formu, ir izvēlētas tabulas, kas tiks izmantotas, tad var sākt
aprakstīt katra konkrētā objekta parametrus jeb aprakstīt detalizēto datu
izlietojumu. Katra tabula konkrētā modulī var tikt izmantota vairāk nekā vienu
reizi, tāpēc detalizētajā datu izlietojumā ir jāapraksta katra bloka (tabulas
formās tiek sadalītas pa blokiem, t.i., katrs tabulas pielietojums ir viens
bloks) datu izlietojums (vai dati tiks parādīti kolonnas vai rindas veidā, cik rakstus vienlaicīgi redzēsim un cik
logos tas viss tiks izvietots).
Lietojot šo CASE rīku, iespējams
ātri un viegli izveidot ekrāna vai atskaites formām nepieciešamo datu struktūru
un kā redzams 3.attēlā var tikt noģenerēta ekrāna vai atskaites forma. Šo formu
vajag uzlabot vizuāli. Taču reizēm vajag uzlabot programmas kodu atbilstoši
sistēmas vajadzībām, jo ģenerators nespēj visu paredzēt. Ekrāna vai atskaites
formu labošana tiek aplūkota vēlāk, apskatot sistēmas izstrādes rīkus
(Developer/2000).
Moduli var izveidot :
·
veidojot
to no jauna;
·
pārkopējot
kādu no eksistējošiem moduļiem;
·
izveidot
moduli lietojot lietojumprogrammu ģenerēšanas programmu (Applications Design
Wizard).
Ar
moduļu datu diagrammu veidotāju iespējams veikt sekojošo :
·
izveidot
un pārdefinēt moduļu definīcijas, kas tiek glabātas datu glabātuvē;
·
izveidot
un labot moduļu datu izlietojumu;
·
izveidot
saites starp tabulām;
·
definēt
datu lauku izvietojumu ģenerētajās ekrāna un atskaišu formās;
·
ģenerēt
ekrāna un atskaišu formas, kā arī veikt apgriezto ģenerēšanu no ekrāna vai atskaites
formas uz moduli.
Tā kā visa šī informācija tiek
uzkrāta datu glabātuvē, tad moduļu definīcijas var izveidot un labot arī
izmantojot datu glabātuves navigatoru, taču tas nav tik pārskatāmi kā
izmantojot šo CASE rīku.
Šis Oracle rīks izmanto tabulu
definīcijas, kas atrodamas datu glabātuvē, tāpēc pēc datu tabulu struktūru
izmaiņām, tās automātiski parādās arī moduļa lietojamo datu definīcijās. Bet,
lai tās būtu redzamas arī ģenerētajās formās, atliek tikai atkārtoti izpildīt
ģenerēšanas programmu.
Papildus sistēmu izstrādei (sk.
1.attēlu), ir jāveic arī lietotāju dokumentācijas rakstīšana. Arī šo posmu
sistēmu izstrādē nodrošina Oracle CASE rīki. Veidojot moduli, datu glabātuvē
var aprakstīt visu, kas attiecas uz šo moduli - tā darbības iespējas,
informāciju lietotājiem u.t.t. Tādējādi papildus izstrādei tiek nodrošināta arī
visu sistēmas moduļu aprakstu noformēšana, t.i. tiek veidota lietotājam
nepieciešamā dokumentācija.

Moduļu struktūru diagrammu veidotājs
Līdz šim tika definētas datu
tabulas, moduļi, kuri ļauj veikt datu ievadi, apskati un meklēšanu, taču to
visu vajag sakārtot tā, lai tie būtu vislabāk pieejami lietotājam (jāsagatavo
lietotāju izvēlnes struktūra). Šim nolūkam domāts nākamais apskates objekts -
moduļu struktūru diagrammu veidotājs.
Ar
šī rīka palīdzību iespējams :
·
veidot
moduļu hierarhiju vai labot ģeneratora uzģenerēto moduļu struktūru diagrammu,
kas iegūta funkciju hierarhijas definīcijām sistēmas modelēšanas fāzē;
·
labot
datu glabātuvē esošo moduļu definīcijas.

Preferenču navigators
Lietojot jebkuru no ģeneratora
līdzekļiem, tie vienmēr griežas pie moduļu preferencēm (Preference), jeb
iestādījumiem, kurus tie izmanto ģenerācijas procesā, lai noteiktu kāds būs
ģenerācijas gala rezultāts. Šo preferenču labošanai izmanto preferenču
navigatoru. Katrai preferencei ir sava noklusētā vērtība, ko lieto ģeneratora
produkti, ja konkrētā preference nav noteikta. Pēc moduļa izveidošanas tiek
izmantotas konkrētās lietojumprogrammas preferences, jeb noklusētās vērtības.

Datu glabātuves administrācijas utilīta
Jebkurš produkts ir ļoti efektīvs,
ja ar to var strādāt vesela organizācija, kad lietotāji darba gaitā var
izmantot objektu, ko definējuši citi lietotāji. Oracle definētie objekti tiks definēti datu glabātuvē
(Repository). Bez vadības un kontroles drīz vien nebūtu iespējams saprast kāds
objekts eksistē, kāds neeksistē, kāpēc tas ticis definēts un kam ir pieeja šim
objektam. Šī utilīta nodrošina visu nepieciešamo Designer/2000 datu glabātuves
pilnai administrācijai [6]. Tā ietver sevī šādas komponentes :
Administrācijas
programma Ar
administrācijas programmas palīdzību var noinstalēt un konfigurēt datu
glabātuves vidi eksistējošā Oracle7 datu bāzē. Tā arī dod iespēju eksportēt
datu glabātuves saturu bāzi. Iespējams definēt objektu izmantošanas tiesības.
Oracle lietotājs var būt datu glabātuves lietotājs vai administrators.
Objektu
navigators Tas ļauj piekļūt datiem, kas atrodas datu
glabātuvē. Pirms Designer/2000 rīku lietošanas, ir jāizveido lietojumprogrammu
sistēma. Lietojot objektu navigatoru, var izveidot, labot un dzēst objektus,
kas izveidoti ar kādu no CASE rīkiem, kā arī kopēt vai sadalīt datus starp
lietojumprogrammu sistēmām. Navigators ļauj lietotājam veikt jebkura objekta un
ar to saistītās informācijas apstrādi :
·
kāda
tipa objekts tas ir (funkcija, procedūra u.t.t.);
·
ko
šis objekts lieto (tabulas, loģiskās tabulas).
Lietojot
objektu navigatoru, iespējams izsaukt Oracle Designer/2000 rīkus, jo gandrīz
visu to, ko var veikt ar šiem rīkiem, var veikt arī izmantojot objektu
navigatoru. Tomēr strādāt ar grafiskajiem rīkiem, kas izstrādāti speciāli
konkrētam nolūkam (piem., datu tabulu diagrammu veidošanai) ir daudz ērtāk un
pārskatāmāk nekā objektu navigatorā.

|
Matricu
diagrammu
veidotājs Ar
matricu diagrammu veidotāja palīdzību var apskatīt associācijas starp datu
glabātuves elementiem, kā arī, lai izveidotu jaunus vai labotu esošos datus.
Datu
glabātuves
atskaites Datu
glabātuves atskaites dod pilnu pārskatu par to, kas atrodas datu glabātuvē.
5. Sistēmas ģeneratori un izstrādes rīki
Oracle ģeneratora produkti (Forms
Generator, Reports Generator un Server Generator) izmantojot datu glabātuvē
ierakstītās definīcijas, veido pilnīgas sistēmas, kuras ietver servera puses
komponentes un lietotājprogrammas (formas, atskaites, izvēlnes) [7]. Vēl šajā
nodaļā tiks aplūkoti sistēmu izstrādes rīki, t.i., formu un atskaišu dizainers,
kā arī aplūkotas formu un atskaišu izpildes programmas.

Oracle formu ģenerators
Oracle formu ģenerators - tā ir programma,
kas ģenerē Oracle formu lietojumprogrammas (application) no moduļu definīcijām
(skatīt 3. attēlu), kas atrodas datu glabātuvē :
·
ģenerētās
formas bloki un lauki tiek noteikti no tā, kādas tabulas un to kolonnas ir
definētas moduļa definīcijā;
·
lietotāja
preferences, kas aprakstītas ar preferenču navigatora palīdzību un konkrētās
paraugformas (templates), kas nosaka kā izskatīsies uzģenerētā forma;
·
formu
ģenerators var ģenerēt arī izvēlņu lietojumprogrammas no to moduļiem.
1. tabulā parādīta saistība starp
jēdzieniem datu glabātuvē, lai aprakstītu definīcijas, un jēdzieniem, ko lieto
Developer/2000, lai aprakstītu to, kas radīts ar ģeneratora palīdzību.
Designer/2000
|
Developer/2000
|
Piezīmes
|
Module
|
Forms
application
|
Izpildāma
formu lietojum-programma
|
Module
Network
|
Menu
module
|
Izvēlņu
hierarhija, kas ļauj izpildīt citas programmas. Lai izpildītu izvēlni, tai
jābūt piesaistītai, kādai no formām.
|
Page
|
Content
Canvas
|
Apgabals
logā, kurā tekošajā momentā tiek parādīti objekti.
|
Detailed
Base table usage
|
Block
|
Mehānisms
savstarpēji saistītu objektu grupēšanai.
|
Detailed
Column usage
|
Item
|
Interfeisa
objekts, kas atļauj lietotājam strādāt lietojum-programmā.
|
|
Iespējams veikt arī atgriezenisku
procesu no Oracle formas uz moduli. Šo funkciju arī izpilda Oracle formu
ģenerators, kas no formas noģenerē ekrāna moduli.

Oracle atskaišu ģenerators
Ar Oracle atskaišu ģeneratora
palīdzību iespējams ātri un kvalitatīvi izveidot jebkuras sarežģītības
atskaites formu. Atskaišu ģenerators izveido .rdf tipa failu. Oracle atskaite
sastāv no 3 komponentēm :
·
datu
modelis;
·
datu
izvietojuma (layout) modelis;
·
parametru
formas.
Datu modelis apraksta kādi dati tiks
izmantoti atskaitē, to hierarhiju un savstarpējās saites. Datu izvietojuma
modelis nosaka objektu pozīcijas noģenerētajā atskaišu formā. Parametru formā
tiek uzrādīti visi atskaites izpildei nepieciešamie parametri, piemēram, kur tiks izvadīta atskaite (uz
ekrāna, failā, uz drukas iekārtu), faila nosaukums, kopiju skaits u.t.t.
Atskaišu ģenerators spēj veikt arī
atgriezenisku procesu no Oracle atskaites uz tās moduli. Šo funkciju izpilda
Oracle atskaišu ģenerators, kas no atskaites noģenerē atskaites moduli.

Formu dizainers
Formu dizainers ir Oracle
Developer/2000 rīks, ekrāna formu veidošanai un izpildei [13]-[16]. Formu
lietojumprogrammas (application) ir interaktīvas programmas, kas ļauj
lietotājam ievadīt, dzēst, labot un apskatīt informāciju no datu bāzes. Oracle
formas tiek ģenerētas no moduļiem, izmantojot, formu ģeneratoru. Iespējami trīs
tipu moduļi :
Formas
modulis Formas
modulī (Form) var tikt definēti šādi objekti : logs, kurā izvietosies pārējie
objekti, teksta objekti (lauki), spiedpogas, PL\SQL kodu bloki (trigeri)
u.t.t.,
Formas var
tikt glabātas šādos failos :
.fmb -
binārais formāts, neatkarīgs no platformas,
.fmt -
teksta versija, lieto versiju kontrolei,
.fmx -
izpildāmais fails, atkarīgs no platformas.
Izvēlnes
modulis Izvēlnes modulis (Menu) ir izvēļņu
kopums kopā ar attiecīgiem citu programmu izsaukuma kodiem. Šie moduļi ir daļa
no formu moduļiem un tāpēc tie nevar tikt izsaukti vieni paši bez formu
moduļiem.
Izvēlnes var
tikt glabātas šādos failos :
.mmb -
binārais formāts, neatkarīgs no platformas,
.mmt -
teksta versija, lieto versiju kontrolei,
.mmx -
izpildāmais fails, atkarīgs no platformas.
Bibliotēkas
modulis Izmantojot bibliotēkas moduli (Library)
iespējams apvienot lietotāja procedūras, funkcijas un programmu paketes vienā
modulī, kas var tikt izsaukts no citu formu moduļiem.
Failu
formāti : .pll, .pld, .plx.
![]() |
Lietojumprogramma



Izvēlnes

Formas
Bibliotēkas
|
Lai izveidotu Oracle formu izmanto
trīs komponentes (14. attēls), kuras jāizpilda atbilstošajā kārtībā [15]:
Dizainers Formas
izstrādātājs lieto formu dizaineru, lai izveidotu formas lietojumprogrammu
(application). Dizainerā var definēt objektus un uzrakstīt vajadzīgo programmu
kodu.
Ģenerators Kad
forma ir gatava, lietojot ģeneratoru, tiek uzģenerēts formas izpildāmais modulis.
Izpildes
modulis Formas lietotājs lietos šo moduli
eksplutācijā, bet izstrādātājs testēšanas laikā.





|
Oracle
formu lietojumprogrammas tiek veidotas no sekojošām komponentēm (15. attēls) :
Forma Forma
ir savstarpēji saistītu bloku grupa. Katrs bloks var attēlot tikai ar vienu datu tabulu.
Bloks Bloks
sevī ietver interfeisa objektus. Visi objekti, vai tie ir vai nav saistīti ar
datu tabulu, atrodas kādā no blokiem. Bāzes tabulas bloks satur objektus no
datu tabulas (kontroles bloks satur objektus, kas nav saistīti ne ar vienu
tabulu, piemēram spiedpogas). Kad lietotājs izpilda datu pieprasījumu (Query) blokā, tad katrs ieraksts attēlo
attiecīgās tabulas vienu rindu.
Ieraksts Ieraksts
blokā attēlo vienu rindu no datu tabulas. Kad lietotājs izveido, labo vai dzēš
ierakstu, attiecīgā tabulas rinda automātiski tiek izveidota, labota vai dzēsta
tikai tad, kad konkrētā transakcija ir saglabāta.
Objekts Tas
ir interfeisa objekts, kas attēlo lietotājam kādas kolonnas datus no tabulas.
Lielākoties formās ir tieši teksta objektu lauki, tādi kā objekta nosaukums,
skaits u.t.t. Objekti var būt arī spiedpogas, izvēlnes un citi.




|

|


|

|

|
||||||||
![]() |
||||||||
![]() |
||||||||
![]() |
||||||||
Forma Cards
![]() |
|||
![]() |
|||

![]() |
![]() |
![]() |
|||

|
Ekistē 5 objektu pamattipi, kurus
var lietot, lai parādītu vajadzīgo informāciju lietotājam [15] :
1. visu veidu objekti (items)
(teksta lauki, spiedpogas u.t.t.);
2. brīdinājuma ziņojumi un trauksmes
logi (alerts), kas brīdinās lietotāju par problēmām vai pārjautās par kādas
operācijas izpildes veikšanu vai atcelšanu;
3. redaktori (editors), kas ļauj
lietotājam ievadīt garus tekstus kā piem. komentārus;
4. vērtību saraksti (list of values
/ LOV), kas piedāvā lietotājam noteiktu vērtību sarakstu;
5. logi (windows) - kadri, kuros tiek attēloti kāda bloka
objekti.
Datu
saglabāšana datu tabulās :
Kad lietotājs lieto formu, tad viņš
ievada, labo vai dzēš tabulas datus, ja viņam ir tiesības veikt šīs operācijās.
Kad lietotājs ielasa datus formā izmantojot, datu pieprasījumu, katrs ieraksts,
kas tiks parādīts, attēlo konkrētu tabulas rindu. Kad lietotājs ievada jaunu,
labo vai dzēš rakstu, tad šīs izmaiņas nonāk tabulā tikai tad, ja ir saglabāta
šī transakcija. Tomēr Oracle formas nestrādā tieši ar datu tabulām, uzreiz
veicot izmaiņas tabulā, tūlīt pēc tam kad tās bijušas formā, bet gan ar datu
kopiju, kas tiek turēta atmiņā (Rollback segment). Tādējādi lietotājs tiek
pasargāts no negadījumiem : tas var veikt izmaiņas datu kopijā un pēc tam
atcelt tās, pirms transakcijas saglabāšanas, nemainot tabulas datus. Pirms
lietotājs nav saglabājis datus, tie nav redzami citiem lietotājiem.
Nolasot datus vai manipulējot ar
tiem, Oracle formas to nodrošina izsaucot attiecīgas SQL komandas [11].
Problēma
|
Lietotāja
darbība
|
SQL
kommanda
|
Parādīt
tirgotāju tabulu
|
Query
-> Execute
|
SELECT
...
|
Ievadīt
jaunu lietotāju
|
Ievadīt
datus tukšajā ierakstā un saglabāt.
|
INSERT
INTO ...
|
Parādīt
tikai tirgotājus, kam ID sākas ar 22..
|
Query
-> Enter
Ievadīt
22.. tirgotāja ID laukā
Query
-> Execute
|
SELECT
...
WHERE
...
|
Izlabot
tirgotāja ID, lai sāktos ar 33..
|
Izlabot
ID lauku uz 33..
|
UPDATE
...
WHERE
...
|
Saglabāt
veiktās izmaiņas
|
Action
-> Save
|
COMMIT
|
Dzēst
rakstu
|
Atrast
vajadzīgo rakstu
|
DELETE
...
WHERE
...
|
Atcelt
nesaglabātās izmaiņas
|
Action
-> Clear all
Edit
-> Undo
|
ROLLBACK
|
|
Tā kā Oracle formas ir objektu
orientētas, katram no objektiem var piesaistīt trigerus (trigger) (procedūras,
kas izpildās veicot kādu darbību, nospiežot spiedpogu, saglabājot rakstus,
mainot tos u.t.t.), tādējādi atvieglojot programmu rakstīšanu. Ir trīs līmeņu
trigeri :
1. formu trigeri;
2. bloku trigeri;
3. objektu trigeri.
Daži trigeri (WHEN-FORM-COMMIT,
WHEN-NEW-FORM-INSTANCE) izpildās tikai
formu līmenī un nevar tikt izsaukti no kāda objekta. Savukārt, ja trigeri var
izsaukt objekta līmenī (PRE-TEXT-ITEM, WHEN-NEW-RECORD-INSTANCE), tad to var
izsaukt arī bloka vai formas līmenī. Trigeru ierobežojumi ir tikai virzienā no
formas uz objektu.
Formu
izmantotās izvēlnes.
Izpildot Oracle formu, tā izmanto
kādu no izvēlnēm : pēc noklusēšanas tā ir Oracle standarta izvēlne vai ar
izvēlņu redaktora (Menu editor), kas ir formu dizainera sastāvdaļa, palīdzību
izveidota izvēlne. Ar šī redaktora palīdzību ātri un viegli var izveidot
izvēlnes. Tad katram izvēlnes objektam pievieno atbilstošo programmu, kas tiks
izpildīta, aktivizējot šo objektu, un noģenerē izvēlnes izpildāmo failu. Tālāk
atliek tikai vajadzīgā formā norādīt ka tiks izmantota šī izvēlne.

Atskaišu dizainers
Atskaišu dizainers ir Oracle
Developer/2000 rīks, kvalitatīvu atskaišu izstrādāšanai, rezultātu parādīšanai
uz ekrāna, saglabāšanai failā vai izvadīšanai uz drukas iekārtas [17],[18].
Oracle atskaites tiek ģenerētas no moduļiem, izmantojot ģenerēšanas programmmu.
Atskaites rezultāts var saturēt ne tikai teksta, bet arī grafisku informāciju.
Pamatiespējas
:
·
izvietojuma
redaktors, ar kura palīdzību var izveidot atskaites struktūru un objektu
izvietojumu;
·
objektu
navigators, kas ļaus viegli orientēties atskaites izmantotajos datu objektos;
·
funkciju
izmantošana aprēķiniem;
·
teksta
fontu, krāsu un grafisko objektu uzturēšana;
·
atskaites
iepriekšēja apskatīšana (Preview).
Lai
izveidotu Oracle atskaiti ir jāveic šādi soļi :
1)
jāizveido jaunās atskaites definīcija (kādi dati tur būs, to izvietojums
u.t.t.);
2)
jādefinē datu modelis (kādas tabulas un to lauki tiks izmantoti, to
savstarpējās saites kā arī jādefinē vajadzīgo aprēķinu formulas);
3)
jāizveido atskaites izkārtojums;
4)
jāizveido atskaites parametru forma.
Atskaites
datu modelis tiek veidots no sekojošām komponentēm(17. attēls) :
Datu
pieprasījums Datu pieprasījums (Queries) ir standarta
SQL SELECT komanda, kas atlasa visu nepieciešamo informāciju no standarta datu
bāzēm kā ORACLE, DB2, SQL/DS. Var izveidot neierobežotu skaitu datu
pieprasījumus, kas izmanto neierobežotu skaitu tabulu, izmantojot neierobožotu
skaitu datu bāžu, kas var atrasties uz neierobežota skaita mašīnām.
Grupas Grupas
nosaka datu attēlošanas hierarhiju atskaitē. Oracle atskaites automātiski
katram datu pieprasījumam izveido savu grupu, taču nav ierobežojumu arī grupu
skaitā. Piemēram, ja tabulā ir dati, kas atkārtojas vairākkārt, tad var
izveidot atsevišķu grupu zem konkrētā datu pieprasījuma.
Kolonnas Kolonnas
satur datu vērtības atskaitei. Pēc noklusēšanas katra kolonna atspoguļo
konkrētās datu tabulas kolonnu. Taču var izveidot arī formulu un summārās
kolonnas, kas parāda attiecīgās formulas
vai summārās kolonnas vērtību katrai tabulas rindai.
Datu
saites Datu saites nosaka datu
savstarpējās saites starp datu tabulām.
Parametri Parametri
ir mainīgie, kas ļauj mainīt atskaites rezultātu atkarībā no to vērtībām. Oracle
atskaites automātiski izveido sev nepieciešamos parametrus, piem., kopiju
skaits, sistēmas datums u.t.t. Taču var izveidot arī savus parametrus, un to
vērtības likt aizpildīt lietotājam atskaites izpildīšanas laikā. Parametri datu
modelī netiek parādīti, bet tie tiek izmantoti formulas kolonnu vērtību
aprēķinos.
|


|
|
|




|
||||
|
Pēc datu modeļa definēšanas, kas ir
galvenais veidojot atskaiti (jo kvalitatīvāks datu modelis, jo vieglāk ar to
veidot datu izvietojumu), var sākt veidot atskaites formas izkārtojumu.
Atskaites
forma sastāv no šādām komponentēm (18.attēls) :
Atkārtojošais
kadrs Atkārtojošais kadrs parāda datu tabulas
rindas, kas ir nolasītas no tabulas kā arī nosaka to atrašanās vietu atskaites
formā. Tas atkārtojas tik reizes cik rindu ir nolasīts no tabulas.
Kadrs Kadrs
ietver sevī vairākus citus objektus ( tas var būt arī atkārtojošais kadrs),
tādējādi tas atvieglo objektu izvietošanas kontroli.
Lauki Lauki
nosaka objektu (tabulu kolonnu, formulu vai summāro kolonnu) atrašanās vietu
atskaitē un attribūtus (fonti, krāsa u.t.t.). Lauks kā viens no objektiem
atrodas kadra vai atkārtojošā kadra iekšienē.
|
|




|
||||
|
Vēl var izveidot atskaites parametru
formu, ja tāda ir nepieciešama. Lai redzētu rezultātu, atskaite jāizpilda,
izmantojot programmu Report Runtime.
Lai šo atskaiti varētu izpildīt no Oracle formām tā ir jānoģenerē, rezutātā
iegūstot .rep tipa failu, kuru var izsaukt no formas.

Procedūru veidotājs
Oracle procedūru veidotājs ļauj
vieglāk un ātrāk izveidot programmas darbībām ar datu bāzes objektiem, kas var
tikt lietotas citos Developer/2000 rīkos (Oracle Forms, Oracle Reports, Oracle
Graphics) [19].
Šo
rīku var lietot veidojot :
PL/SQL
programmas Procedūras,
programmu paketes, kas var tikt iekļautas Developer/2000 lietojumprogrammās
[8].
Klienta
PL/SQL
bibliotēkas Procedūras,
programmu paketes, bibliotēkas, kas var tikt izmantotas dažādās Oracle
lietojumprogrammās.
Servera
PL/SQL
programmas Procedūras,
programmu paketes, datu tabulu trigeri, kas tiek noglabāti Oracle7 serverī.
Oracle procedūru veidotājs nodrošina
visu nepieciešamo sekmīgai PL/SQL programmu izstrādei un skaņošanai. Tas sevī
iekļauj sekojošas funkcijas :
Programmu
kodu
redaktors Programmu kodu redaktors nodrošina
programmu labošanu, iekļaujot visas standarta tekstu manipulācijas iespējas, kā
arī speciālas PL/SQL programmu labošanas un skaņošanas iespējas:
·
programmas
koda kompilācija;
·
kompilācijas
kļūdu apskate un automātiska pārvietošanās uz kļūdaino programmas teksta rindu.
Programmu
kodu
skaņošana Oracle procedūru veidotājs nodrošina
programmu tekstu skaņošanu, atļaujot izpildīt programmu pa vienai rindai,
pārtraukt tās izpildi u.t.t. Skaņojot iespējamas šādas funkcijas :
·
ievietot
pārtraukuma punktu;
·
dinamiski
tiek attēlota izpildāmā programmas rinda;
·
kad
programma ir apstādināta, var apskatīt steka stāvokli, apskatīt un labot
mainīgo vērtības, izsaukt citas PL/SQL procedūras.
Saglabāto
programmu
labošana Procedūru
veidotājs ļauj izveidot, labot un izpildīt programmas, kas noglabātas Oracle7
serverī [12].
Jāpiebilst, ka programmu skaņošana,
kuras savā darbībā izsauc Oracle7 serverī saglabātās programmas (Stored
programm units) nestrādā korekti. Tas pats attiecas arī uz Oracle formu
skaņošanu, ja kādā no procedūrām tiek izsaukta serverī saglabātā programma.

Formu izpildes programma
Formu izpildes programma ir
paredzēta, lai izpildītu ekrāna formas, kas ļaus apskatīt un labot datus [20].
19. attēlā attēlota primitīva operāciju shēma, kas izpildās lietojot Oracle Runtime :
![]() |
![]() |
![]() |
1. Formas 2. Pieslēgšanās 3. Query
pieprasījuma


![]() |
![]() |
||||||
![]() |
![]() |
||||||


saglabāšana
pārbaude labošana
![]() |
Datu bāze
|
|
Atskaišu izpildes programma strādā
analoģiski, tikai nav pēdējo trīs posmu, kas saistīti ar datu labošanu un
pārbaudi, kā redzams 19. attēlā [21].
Tas arī īsumā būtu viss par Oracle
rīkiem, ar kuru palīdzību var izprojektēt un izveidot datu bāzu sistēmu. Šeit
netika aplūkota biznesa procesu modelēšana, kas ir pirmsākums sistēmu
modelēšanā. Netika aplūkoti arī daži Oracle rīki sistēmas modelēšanas fāzē,
piemēram: datu plūsmu diagrammu veidotājs, funkciju hirarhiju diagrammas un
citi.
6. Sistēmas “Tirgotāju serviss” uzdevums un realizācija
Sistēma paredzēta uzņēmumu un to
filiāļu reģistrācijai, kas vēlas veikt pirkšanas-pārdošanas darījumus ar
kredītkartēm. Šo uzņēmumu reģistrācija un ar tiem noslēgto līgumu uzskaite un
apmaksas kontrole ir pirmais solis tam, lai uzņēmums varētu veikt darījumus ar
kredītkartēm un bankas, kas izdot noteiktā veida kredītkartes, zinātu par šī
uzņēmuma eksistenci, kā arī, lai visas pārējās kredītkaršu norēķinu sistēmas
zinātu par šī tirdzniecības punkta eksistenci. Bez tam šajā sistēmā ir jāievada visi apstrādes centra
nepieciešamie klasifikatori, piemēram, karšu veidi, kurus apstrādās konkrētais apstrādes centrs,
dalībbankas, kas izdod vai pieņem konkrēta tipa kartes u.t.t.
Sistēmā izmantotās izvēlnes,
ievadformu komentāri ir angļu valodā, jo šī sistēma tiks lietota arī citu
valstu norēķinu centros. Dažas atskaites tiek veidotas visās nepieciešamajās
valodās.
Darba
aprakstā tiks lietoti jēdzieni :
Kredītkarte :
Plastikāta karte bezskaidras naudas
norēķinu veikšanai. Izšķir 2 veidu kartes : Debetkartes ( Ar to var veikt
maksājumus tikai par to summu, kas ir iemaksāta bankā) un Kredītkarte ( Veicot
darījumu var maksāt vairāk nekā ir iemaksāts bankā). Plaši izplatījies ir jēdziens
“kredītkarte” kaut gan runa, ir par plastikāta karti, kas atkarībā no tā vai
banka dod kredītu ir kredītkarte vai debetkarte. Turpmāk tiks lietots vārds
kredītkarte.
Identifikācijas numurs :
Katram tirdzniecības punktam (TP) , kas tiek
ieviests kredītkaršu norēķinu sistēmās tiek piešķirts viennozīmīgs 7 ciparu
kods , kura pirmie 6 cipari ir kods , bet septītais cipars ir iepriekšējo sešu
kontrolcipars pēc LUHN metodes.
POS Termināls :
Iekārta ar kredītkarti veikto
darījumu reģistrācijai. Terminālis pārbauda vai karte nav stopsarakstā, t.i.
vai tās lietotājam nav kaut kādi parādi saitībā ar banku (nav apmaksāts kredīts u.t.t.). Reizi dienā
visi uzkrātie dati tiek nosūtīti uz apstrādes centru.
Sistēmas
uzdevums ir :
·
Nodrošināt
uzņēmumu un to filiāļu (tirdzniecības punktu ) reģistrāciju kredītkaršu
pieņemšanai (jaunajiem TP ģenerējot identifikācijas numurus pēc LUHN metodes).
·
Nodrošināt
jau esošo tirdzniecības punktu meklēšanu pēc vairākām pazīmēm (nosaukuma fragmenta, uzņēmuma reģ. numura , identifikācijas
numura, adreses).
·
Tirgotāju
līgumu noslēgšana un tirgotāja ieviešana aprēķinos tikai pēc rēķinu apmaksas.
·
Karšu
tabulas uzturēšana.
·
Banku
un to filiāļu tabulas uzturēšana.
·
Konkrētās
kartes veida dalībbanku tabulas uzturēšana.
·
Apstrādes
centru tabulas uzturēšana.
·
Tirgotāju
kategoriju kodu kasifikātora uzturēšana.
·
Valūtas
kodu klasifikātora uzturēšana.
·
Uzturēšanas
un nomas līgumu uzskaite. (POS terminālu
un citu iekārtu uzturēšanas līgumu uzskaite).
·
Uzturēšanas
un nomas līgumu apmaksas rēķinu izdruka katru ceturksni, to uzskaite
(ikceturkšņa automātiskā rēķinu izdruka).
·
Dažādu
veidu atskaišu drukāšana pēc klienta vajadzībām u.t.t.
Realizācija tika sākta ar entīšu un
to savstarpējo saišu definēšanu, noskaidrojot kādus datus vajadzēs apstrādāt un
kā tie savstarpēji ir saistīti. Diagramma dota pielikumā, taču jāpiebilst, ka
tas ir galaprodukts, kas iegūts pēc vairākkārtējas pārzīmēšanas un to entīšu
iekļaušanas, kas iegūtas reģenerējot tās no to datu tabulu diagrammas.
Izmantojot iepriekš aprakstīto Oracle
rīku datu tabulu ģenerēšanai, veic tabulu definīciju ģenerāciju, kas tiek
ierakstīta datu glabātuvē (Repository). Reāli nevienas tabulas, kurā varētu
ievadīt datus vēl nav - ir tikai to definīcijas datu glabātuvē. Lai izveidotu
tabulas datu bāzē, izmanto Oracle utilītu, kas ir iekļauta datu diagrammu
veidotājā. Šī utilīta veic SQL operatoru ģenerēšanu, kurus izpildot datu bāzē
tiek izveidotas tabulas.
Ja datu diagrammu zīmējot viss
liekas ir kārtībā un SQL operatorus programma noģenerē, tad var rasties
problēmas tieši izpildot šos SQL operatorus. Iespējams, ka SQL teksts ir
nepareizs un reizēm kļūda pieļauta jau zīmējot diagrammu un tā tiek paziņota
tikai šeit. Darbības gaitā ne reizi vien nācās atgriezties atpakaļ, lai
pārzīmētu datu diagrammas un pārģenerētu tabulas, bet to izdarīt ir daudz
vieglāk nekā Fox Pro vidē, jo uzreiz ir redzama tabulu vispārējā aina grafiskā
interpretācijā, to lauki. Tagad nevajag visu šo informāciju atcerēties no
galvas vai zīmēt uz papīra.
Kad tabulas ir gatavas, var sākt veidot
atbilstošos ekrāna moduļus datu ievadīšanai. 20. attēlā parādīta tirgotāju
līgumu ievades formas ekrāna modelis.

|
Šo moduli noģenerējot iegūst līgumu
ievades formu, kuru atliek tikai nedaudz vizuāli koriģēt. Ir arī nedaudz jālabo
programmas atbilstoši vajadzībām, taču visu lielāko darbu izdara formu
ģenerators. Protams to visu varēja arī izdarīt bez ģeneratora palīdzības, taču
tas aizņem krietni ilgāku laiku.
Šajā situācijā varētu rasties
priekšstats, ka tagad darbu varētu darīt jebkurš, taču tā nav. Piemēram, ja
diagramma būtu uzzīmēta nedaudz savādāk, izmainītos arī noģenerētā forma un
varbūt to vajadzētu labot tik pat ilgi, cik rakstīt to pašam (taisot dažas
formas tā ir gadījies, ka rezultāts nav tas, kas bija gaidīts un cits nekas
neatliek kā pārzīmēt moduli savādāk). Daudzos gadījumos diezgan lielus
programmu kodus var vienkārši aizstāt
pareizi norādot objektiem to īpašības (properties) vai kādā no trigeriem
izpildot kādu darbību. Tas aizņem mazāk programmu koda un ir labāk pārskatāms
nekā to pašu nodrošinot ar savu programmu, mēģinot nodrošināt pareizu darbību
visos gadījumos. Pastāv arī moduļu datu diagrammas reģenerācija no formas, ko
izmanto gadījumos, kad ir labota formas definīcija. Lai tas pats nebūtu jādara
arī moduļa datu diagrammā, veic moduļa reģenerāciju no formas.
Bez
ekrāna formām vēl ir jāizveido arī katras ievada formas atskaite.
Lielāko daļu darba var izdarīt ar ģeneratoru palīdzību. Kā piemēru aplūkosim
atskaites par tehnikas uzturēšanas vai nomas maksas rēķinu izdruku. Tā kā visi
dati atrodas tikai vienā tabulā, tad atskaites modelis ir ļoti vienkāršs.
Vislielākās grūtības sagādā tieši
atskaites datu modeļa izveidošana, jo atskaite par tehnikas uzturēšanu
ir jāpiestāda maksātājam par visiem tā klientiem kopā, ņemot vērā, ka kāds no
klientiem ir noslēdzis jaunu līgumu ceturkšņa vidū un tam jāmaksā tikai par šo
laika periodu. Lai to visu varētu apvienot vienā atskaitē vajadzēja izveidot
diezgan sarežģītu atskaites datu modeli - sk 21. attēlu.

|
Pats
atskaites rezultāts atrodas pielikumā, darba beigās.

|
Uzņēmumu
reģistrācijas shēma :
Ja
firmas tirdzniecības punkts nav reģistrēts datu bāzē (pastāv iespēja
meklēt TP pēc visām tā pazīmēm : nosaukuma, identifikācijas numura , adreses
u.t.t ), tad tas tiek izdarīts, piešķirot tam viennozīmīgu identifikācijas
numuru pēc kura šajā un arī citās kredītkaršu norēķinu sistēmās tiks atpazīts
šis tirdzniecības punkts. Algoritmu viennozīmīga tirdzniecības punkta
identifikācijas numura izveidošanai skatīt pielikumā. Ievadot jaunu
tirdzniecības punktu, kas var būt patstāvīga firma, vai kāda no esošās firmas
filiālēm, jāuzrāda visi tā dati - juridiskais nosaukums, adrese, reģistrācijas
numurs, kā arī kontaktpersona ar kuru sazināties neskaidrību gadījumos.
Tirgotājs nevar tikt izdzēsts kamēr tam eksistē uzturēšanas vai nomas līgums
vai ar to ir noslēgts līgums par konkrētas kartes pieņemšanu vai tam eksistē
filiāles. Sistēmā katrai no ievadformām iespējams veikt datu izdruku failā vai
uz drukas iekārtas. Atskaiti par tirdziecības punktiem skatīt darba beigās,
pielikumā.

|
No brīža, kad TP tiek ievadīts
tabulā, tas vēl nav tiesīgs veikt aprēķinus. Šim nolūkam ar tirgotāju ir
jānoslēdz līgums (AGREEMENT) par konkrēta karšu veida pieņemšanu, kurā tiek
uzrādīti visi konkrētās kartes pieņemšanas dati, kurus izmanto tālāk aprēķinos
un kad visas formalitātes ir nokārotas, tad TP var ieviest norēķinos norādot,
ka tā status, ir 0 (t.i., ka
tirgotājs ir pilntiesīgs pieņemt konkrēto karti).
|

Vajadzīgo
tabulu uzturēšana :
·
Karšu
tabula :
Tā ietver sevī visu to karšu sarakstu,
kuras apstrādā konkrētais karšu apstrādes centrs. Katrai kartei ir jāuzrāda tās
apstrādes algoritms (EC/MC, VISA, AMEX, vai DOMESTIC), parametrs vai karte tiek
akceptēta un apstrādāta šajā karšu apstrādes centrā un citi. Vietējām kartēm ir
jāuzrāda karšu prefiksu intervāli. Karti var dzēst tikai tad, kad dzēsti visi
vietējo karšu intervāli, neeksistē neviens līgums ar tirgotāju par šīs kartes
pieņemšanu, nav nevienas bankas, kas ir pieņēmējbanka šai kartei u.t.t.
·
Banku
un to filiāļu tabula :
Tā satur pilnu informāciju par bankām un to
filiālēm. Ievadot jaunu banku obligāti jāievada arī vismaz viena tās filiāle.
Katrai bankai ir viennozīmīgs 2 ciparu, bet tās filiālēm 3 ciparu kods. Banku
var dzēst tikai tad, kad šī banka vairs nav nevienas kartes pieņēmējbanka, tai
nav nevienas filiāles.
·
Pieņēmējbanku(dalībbanku)
un filiāļu tabula :
Satur informāciju par konkrētas kartes
dalībbankām un to filiālēm, izdevējbankas valūtu, apstrādes reģioniem u.t.t.
Banku un tās filiāles izvēlas no iepriekš minētā banku un to filiāļu saraksta.
Katrai dalībbankai jānorāda tās status :
0
- dalībbanka (
starpbanku norēķinu dalībniece ), 1 -
piesaistītā banka (banka, kas darbojas dalībbankas vārdā ar karšu
pieņemšanu), 2 - nedalībbanka (banka,
kurai tiek veikta tikai datu vākšana, bet neveic norēķinus), 3 - atsevišķa banka (banka, kurai tiek
veikti aprēķini, bet kura nepiedalās dalībbanku savstarpējos norēķinos).
Dalībbanku var dzēst tikai tad, kad vairs neeksistē neviens līgums ar tirgotāju,
kas atsaucas uz šo banku, kamēr tai eksistē filiāles.

|
·
Apstrādes
centru tabula :
Šeit tiek uzrādīti visi tie karšu apstrādes
centri, kurus pazīst esošais centrs un starp kuriem notiek datu apmaiņa. Starp
visiem apstrādes centriem jāatzīmē konkrētais centrs, pie kam šo pazīmi var
iestādīt tikai vienam centram. Katram apstrādes centram norāda kartes ar kurām
tas veic norēķinus.

|
·
Tirgotāju
kategoriju kodu klasifikators :
Satur informāciju par visiem iespējamajiem
tirgotāju klasifikatoriem(MCC) grupētiem pēc to darbības veida (tirdzniecība,
auto īre,nekustamais īpašums u.t.t.).
·
Valūtas
kodu klasifikators :
Satur informāciju par visu valstu
valūtām - to nosaukumi, sīknaudas mērvienības, saīsinājumu kodi.
·
Tirgotāju
apkalpošana (POS termināļu un citas tehnikas uzturēšana un noma) :
Ja norēķinu centrs veic karšu
pieņemšanas tehnikas apkopi, tad ar tirgotāju tiek slēgts līgums par konkrētās
karšu pieņemšanas tehnikas uzturēšanu, ja tehnika ir tirgotāja īpašums vai
līgums par tehnikas nomu, ja tirgotājs nevar pats sev nopirkt šo tehniku. Šī
informācija tiek uzkrāta atsevišķā tabulā. Katrs tirgotājs pats var maksāt par
tehnikas apkopi, taču to viņa vietā var darīt arī kāda cita organizācija
(parasti to veic augstākstāvošā organizācija vai bankas, lai piesaistītu sev
vairāk klientu).

|
Katra ceturkšņa beigās par katru TP,
ar kuru ir noslēgts uzturēšanas vai nomas līgums ir jāpiestāda jauns rēķins par
tehnikas uzturēšanu vai nomu par nākošo ceturksni. Rēķinu piestāda
maksātājfirmai par visiem tās tirdzniecības punktiem kopā, ņemot vērā , ka ar katru TP var būt noslēgti
vairāki līgumi. Vērā tiek ņemts arī tas , ka firma varbūt nav apmaksājusi kādu
no TP iepriekšējiem rēķiniem, tad maksājamā summa jāpalielina par attiecīgo
ceturkšņa daļu. (Tā parasti gadās, ja iepriekšējā ceturksnī ar firmu ticis
noslēgts jauns līgums par tehnikas uzturēšanu vai nomu).
Kā jau iepriekš tika minēts jebkuras
ievadformas atskaites rezultātus varat aplūkot darba beigās, pielikumā.
Tas arī īsumā būtu viss par sistēmu
“Tirgotāju serviss”. Jābiebilst, ka daudzās ievadformās ievadot datus kādā no
datu tabulām ar trigeru palīdzību tiek ievadīti dati arī citās tabulās, kuras
netika šeit aplūkotas, jo tās izmanto citas kredītkaršu norēķinu sistēmas.
7. Sistēmas funkcionālais apraksts
Runājot par Oracle CASE, vienmēr
tiek uzsvērts ka šīs programmas prasa lielus resursus. Pēc korporācijas ORACLE
datiem sistēmu lietotājiem minimālās prasības ir: 486DX 33Mhz ar 8Mb
brīvpieejas atmiņu (RAM), taču kā rāda pieredze vajag vismaz 486DX2 50Mhz ar
12-16Mb RAM. Runājot par izstrādātājiem, ORACLE uzsver, ka minimālais būtu
486DX 33Mhz ar 16Mb RAM, taču jābiebilst, ka strādājot ar 486DX2 80Mhz ar 16
MbRAM reizēm liekas, ka vajadzētu vismaz vēl 16 Mb vairāk un vismaz Pentium
90Mhz procesoru (izstrādātājs parasti atver vairākas lietojumprogrammas un
strādā te ar vienu te ar otru, tāpēc vislielākās prasības ir pret atmiņas
apjomu).
Tā kā atmiņas apjoms ne vienmēr ir
pietiekams, ļoti liela nozīme ir videi, kurā tiek strādāts. Windows’95
salīdzinājumā ar Windows 3.1 nodrošina labāku atmiņas sadali starp vairākiem
procesiem, t.i. vidē Windows 3.1 biežāk notiek kļūda “General protection fault in module ...”.
Apsverot Oracle servera prasības,
var tiekt, ka izstrādei pilnīgi pietiek ar Pentium 90Mhz procesoru ar 16Mb RAM
strādājot ar Developer/2000, bet vismaz 32Mb RAM strādājot ar Designer/2000
programmām. Tas protams ir pietiekami izstrādes procesā, kad šo serveri noslogo
tikai 6 darba stacijas, bet eksplutācijas serverim, kuru noslogo 10 un vairāk
darba stacijas, vajadzēt vismaz 64 Mb RAM un Pentium 166Mhz procesoru (vai IBM
RS 6000, SUN SPARC Ultra un citi).
28. attēlā tiek piedāvāta tīkla
konstrukcija, kurā strādājot tiek izstrādātas un testētas datu bāzu vadības
sistēmas, tai skaitā - “Tirgotāju serviss”, izmantojot tīkla protokolu IPX/SPX
ar Novell serveri un TCP/IP ar Oracle serveri. Blakus datora attēlam ir to
Oracle programmu apraksts, kas lietotas strādājot ar šo datoru.







|
|


|
|


|
|
||||


|
|


|
|
||||



|
|


|
|
|||||
|
8. Nobeigums
Tā kā Oracle CASE tehnoloģija
sistēmu izstrādē ir ļoti jauna, tad vēl nav pieejami literatūras materiāli, par
šo metodi latviešu valodā. Visa Oracle CASE dokumentācija ir tikai angļu
valodā, kas rada problēmas tiem, kas to labi nepārvalda. Bez tam šīs grāmatas
raksta nevis tie, kas rada šīs programmas, bet citi. Rakstot šo darbu, es
atklāju daudz ko jaunu, kas lasot grāmatas bija palaists garām, jo apgūstamās
informācijas apjoms ir ļoti liels, un lai to apgūtu vajadzīgs liels laika
periods. Es domāju, ka ikvienam, kas sāk darbu ar Oracle CASE, noderētu šāds Oracle
CASE rīku apraksts.
Oracle
CASE dod citu skatu uz sistēmu projektēšanu un izstrādi, jo izmantojot visus
šos Oracle CASE rīkus sistēmas projektēšana ir ļoti pārskatāma un
vienkārša, to izstrādi atvieglo arī
sistēmu ģeneratori. Ļoti daudz dod tieši Oracle ģeneratori, kas atvieglo darbu,
ģenerējot vajadzīgos programmu tekstus visos izstrādes posmos. Bez tam
jebkurā izstrādes posmā veikto var
reģenerēt atpakaļ uz iepriekšējo posmu, piemēram, reģenerēt entītes no tabulu
definīcijām.
Bez šaubām DBVS Oracle7 ir ļoti
progresīva un tai ir daudz perspektīvu, salīdzinot ar tādām sistēmām kā Fox Pro
un Access, kuras nav piemērotas datu bāzēm ar lieliem datu apjomiem. Tā kā
tagad sistēmu datu apjomi sasniedz vairākus desmitus un pat simtus megabaitus,
tad drīzumā arī pie mums DBVS Oracle7 ieņems vadošo lomu datu bāzu vadības
sistēmās.
Darbā nav aplūkoti daži sistēmas
modelēšanas rīki (Datu plūsmu diagrammu veidotājs, funkciju hierahijas
diagrammu veidotājs). Tie vēl nav labi izpētīti un bez šiem rīkiem modelējot sistēmu
var arī iztikt. Cerams, ka turpmākajā nākotnē būs iespēja sīkāk izpētīt arī šos
rīkus un papildināt šo darbu tajā iekļaujot arī šo rīku aprakstu.
9. Literatūra
1.
Richard
Barker CASE* METHOD. Tasks and
Deliverables //
ORACLE 1992
2.
Richard
Barker CASE* METHOD. Entity
Relationship Modelling //
ORACLE 1995
3.
Oracle
Designer/2000 Product Overview //
ORACLE 1995
4.
Oracle
Designer/2000 A Guide to System
Design //
ORACLE 1995
5.
Oracle
Designer/2000 Tutorial //
ORACLE 1995
6.
Oracle
Designer/2000 A Guide to Repository
Administration
//
ORACLE 1995
7.
Oracle
Designer/2000 A Guide to Developer/2000
Generation //
ORACLE 1995
8.
PL/SQL
User’s Guide and Reference ver 2.0 //
ORACLE 1992
9.
SQL*Plus
User’s Guide and Reference ver 3.0 //
ORACLE 1992
10.ORACLE7 Server
SQL Language Quick Reference //
ORACLE 1992
11. ORACLE7 Server SQL Language Reference Manual // ORACLE 1992
12. ORACLE7 Server
Messages and Codes Manual //
ORACLE 1992
13. Oracle Developer/2000 Forms 4.5 Getting Started
Manual //
ORACLE 1994
14. Oracle Developer/2000 Forms 4.5 Reference Manual
vol. 1 / vol. 2 //
ORACLE 1994
15. Oracle Developer/2000 Forms 4.5 Developer’s Guide
Manual //
ORACLE 1994
16. Oracle Developer/2000 Forms 4.5 Advanced Techniques
Manual //
ORACLE 1994
17. Oracle Developer/2000 Reports 2.5 Building Reports
Manual //
ORACLE 1995
18. Oracle Developer/2000 Reports 2.5 Reports Reference
Manual //
ORACLE 1995
19. Oracle Developer/2000 Procedure Builder 1.5 // ORACLE 1994
20. Oracle Developer/2000 Forms 4.5 Runtime Manual // ORACLE 1995
21. Oracle Developer/2000 Reports 2.5 Runtime Manual // ORACLE 1995
Pielikums
Diagrammas
1. diagramma. Entīšu, atribūtu un
to savstarpējo saišu diagramma.
2. diagramma. Datu tabulu
diagramma.
Programmu teksti
-------------- Tirgotāju un to filiāļu unikalitātes pārbaude
tirgotāju ievades formā
-------------- SRV_MRC.fmb
/* CHECK_CONSTRAINT_VIO */
FUNCTION
CGTE$CHECK_CONSTRAINT_VIO(
P_SERVER_ERR IN NUMBER /* Server error message */
,P_SERVER_MSG IN VARCHAR2) /* Server error number */
RETURN
BOOLEAN IS
/* Check
and report Primary/Unique Key, Check Constraint and User */
/*
Defined Constraint violations */
constraint_name VARCHAR2(61); /* Violated constraint */
BEGIN
/* Check if the error code is one we are
interested in */
IF ( NOT (P_SERVER_ERR IN (1, 2290) OR
(P_SERVER_ERR >= 20000 AND
P_SERVER_ERR <= 20999) ) )
THEN
RETURN( FALSE );
END IF;
/* Deal with user defined errors */
IF (P_SERVER_ERR >= 20000 AND P_SERVER_ERR
<= 20999) THEN
message('Error:
'||CGTE$STRIP_FIRST_ERROR(P_SERVER_MSG));
RETURN( TRUE );
END IF;
/* Deal with Primary/Unique Key and Check
Constraint violations */
constraint_name :=
CGTE$STRIP_CONSTRAINT(P_SERVER_MSG);
IF (P_SERVER_ERR = 1) THEN
IF (constraint_name = 'PMRC_FK') THEN
message('Error: Row exists already with
same Merchant.');
ELSIF (constraint_name = 'MDEP_FK') THEN
message('Error: Row exists already with
same Department.');
ELSE
message(P_SERVER_MSG);
END IF;
ELSIF (P_SERVER_ERR = 2290) THEN
message(P_SERVER_MSG);
END IF;
RETURN( TRUE );
END;
---------------- Loģiskās tabulas AGR_DEP ON_ERROR trigeris
tirgotāju
---------------- līgumu ievades formā SRV_AGR2.fmb
/*
BLK_LEVEL_ERROR_TRAP */
/* Trap
errors returning from the server and report in a user */
/* friendly manner */
BEGIN
DECLARE
err_code
CONSTANT NUMBER := ERROR_CODE;
err_type CONSTANT VARCHAR2(3) := ERROR_TYPE;
server_err NUMBER := abs(DBMS_ERROR_CODE);
server_msg VARCHAR2(2000) :=
DBMS_ERROR_TEXT;
constraint_name VARCHAR2(61);
BEGIN
IF (err_type = 'FRM' AND
err_code IN (40506, 40508, 40509,
40510) ) THEN
/* Remove recursive errors from the top
of the stack */
WHILE (server_err = 604) LOOP
CGTE$POP_ERROR_STACK(server_err,
server_msg);
END LOOP;
/* Check and report the generic
constraint violations */
IF (
CGTE$CHECK_CONSTRAINT_VIO(server_err, server_msg) ) THEN
RAISE FORM_TRIGGER_FAILURE;
END IF;
/* Check and report the constraint
violations specific to this
block */
constraint_name :=
CGTE$STRIP_CONSTRAINT(server_msg);
/* FK - Parent key not found */
IF (server_err = 2291) THEN
message(server_msg);
RAISE FORM_TRIGGER_FAILURE;
END IF;
/* FK - Child record found */
IF (server_err = 2292) THEN
IF (err_code = 40510) THEN
message(server_msg);
ELSIF (err_code = 40509) THEN
message(server_msg);
END IF;
RAISE FORM_TRIGGER_FAILURE;
END IF;
END IF;
IF (err_type = 'FRM' AND
err_code IN (41105, 41106) ) THEN
IF (err_code = 41105) THEN
message('Error: Query of this table must
be in context of Agreements');
RAISE FORM_TRIGGER_FAILURE;
ELSIF (err_code = 41106) THEN
message('Error: Insert of this table must
be in context of Agreements');
RAISE FORM_TRIGGER_FAILURE;
END IF;
END IF;
/* If error not found, issue default
message */
message(err_type||'-'||to_char(err_code)||':
'||ERROR_TEXT);
RAISE FORM_TRIGGER_FAILURE;
END;
END;
-----
This procedure implements the toolbar functionality. The logic reads
-----
the pressed button name and then calls the appropriate function. If
-----
you want to change the toolbar then make sure the if statement below
-----
has one entry for each button.
PROCEDURE
TOOLBAR_ACTIONS IS
button_name varchar2(61);
button
varchar2(31);
BEGIN
del_timer('bubble_delay');
show_window(get_view_property(get_item_property(
name_in('SYSTEM.CURSOR_ITEM'),
item_canvas), window_name));
button_name :=
name_in('SYSTEM.TRIGGER_ITEM');
button := substr(button_name, instr(button_name,
'.')+1);
if
(button = 'SAVE') then do_key('COMMIT_FORM');
elsif (button = 'PRINT') then
run_product(REPORTS,'TREA_REP',SYNCHRONOUS,RUNTIME,FILESYSTEM,NULL,NULL);
elsif (button = 'CLEAR_FORM') then do_key('CLEAR_FORM');
elsif (button = 'QUERY_FIND') then
if (name_in('SYSTEM.MODE') !=
'ENTER-QUERY') then do_key('ENTER_QUERY');
else do_key('EXECUTE_QUERY');
end if;
elsif (button = 'INSERT_RECORD') then do_key('CREATE_RECORD');
elsif (button = 'DELETE_RECORD') then do_key('DELETE_RECORD');
elsif (button = 'CLEAR_RECORD') then do_key('CLEAR_RECORD');
elsif (button = 'LIST') then do_key('LIST_VALUES');
elsif (button = 'EDIT') then do_key('EDIT_FIELD');
elsif (button = 'HELP') then do_key('HELP');
end if;
END;
---------- PRE-INSERT triggeris tehnikas uzturēšanas un
nomas līgumu ievades
----------
formas TREATIES tabulas blokam.
DECLARE
gads VarChar2(4);
new_gads VarChar2(4);
men VarChar2(2);
new_men VarChar2(2);
BEGIN
gads := TO_CHAR(SYSDATE,'YYYY');
men
:= TO_CHAR(SYSDATE,'MM');
new_gads := gads;
IF men IN('01','02','03') Then
new_men := '04';
elsif men IN('04','05','06') Then
new_men := '07';
elsif men IN('07','08','09') Then
new_men := '10';
elsif men IN('10','11','12') Then
new_men := '01';
new_gads :=
TO_CHAR(TO_NUMBER(gads) + 1);
END IF;
:TREATIES.must_pay :=
TO_DATE('01'||new_men||new_gads,'DDMMYYYY');
-- must_pay > has_paid
IF :TREATIES.has_paid >
:TREATIES.must_pay then
Raise
FORM_TRIGGER_FAILURE;
END IF;
END;
------ Vērtību sarakstu piesaistīto rakstu grupu
definīcijas dalībbanku ievades formā
------ SRV_ABNK.fmb.
-- banka
SELECT
banks.bank,banks.bank_name
FROM
banks
WHERE
bank not in
(SELECT acq_bank
FROM acq_banks
WHERE card_type = :crd.card_type)
--
bankas filiāle
SELECT
branches.branch,branches.branch_name
FROM
branches
WHERE
bank=:abnk.acq_bank and
branch not in
(SELECT acq_branch
FROM acq_branches
WHERE bank =
:abnk.acq_bank and
card_type = :crd.card_type)
--
Augstākstāvošā banka
SELECT
banks.bank, banks.bank_name
FROM
banks,acq_banks
WHERE
banks.bank=acq_banks.acq_bank and
acq_banks.card_type = :crd.card_type and
acq_banks.member in('0','3') and
acq_banks.acq_bank <> :abnk.acq_bank
REM Tabulu, virtuālo tabulu, triggeru,
konstraintu definēšana
REM
REM This ORACLE7 command file was generated by
Oracle Server Generator
REM Version 5.5.8.0.0 on 21-MAY-96
REM
REM For
application SETPROJ version 1 database SET
REM
SET SCAN
OFF
SPOOL
tabul.lst
REM
TABLE CREATION
start tabul.tab
REM
CONSTRAINT CREATION
start
tabul.con
REM VIEW
CREATION
start
tabul.vw
REM
TRIGGER CREATION
start
tabul.trg
REM
REM End of command file
REM
SPOOL
OFF
REM Tabul.tab
REM
REM This ORACLE7 command file was generated by
Oracle Server Generator
REM Version 5.5.8.0.0 on 21-MAY-96
REM
REM For
application SETPROJ version 1 database SET
REM
REM
TABLE
REM BANKS
REM CARDS
REM CENTRS
REM MERCHANTS
REM
PROMPT
PROMPT
Creating Table BANKS
CREATE
TABLE banks(
bank VARCHAR2(2) NOT NULL,
bank_name VARCHAR2(27) NOT NULL
)
PCTFREE 10
PCTUSED 80
TABLESPACE
APP_D
;
COMMENT
ON TABLE banks
IS 'Pilnais banku saraksts';
COMMENT
ON COLUMN banks.bank
IS 'Bank code';
COMMENT
ON COLUMN banks.bank_name
IS 'Bank name';
REM
PROMPT
PROMPT
Creating Table CARDS
CREATE
TABLE cards(
card_type VARCHAR2(2) NOT NULL,
card_name VARCHAR2(27) NOT NULL,
algorithm VARCHAR2(1) NOT NULL
CHECK
( algorithm IN ( '1' , '2' , '3' , '4' )
),
proc_ccy VARCHAR2(3) NOT NULL,
proc_exp
VARCHAR2(1) NOT NULL,
detail VARCHAR2(1) NULL,
path VARCHAR2(64) NULL,
card_id VARCHAR2(8) NOT NULL,
status VARCHAR2(1) DEFAULT 'T' NOT NULL
CHECK
( status IN ( 'T' , 'F' ) )
)
PCTFREE 10
PCTUSED 80
TABLESPACE
APP_D
STORAGE (
INITIAL
4
NEXT
2
)
;
COMMENT
ON TABLE cards
IS 'Card type table';
COMMENT
ON COLUMN cards.card_type
IS 'Card type';
COMMENT
ON COLUMN cards.card_name
IS 'Card name';
COMMENT
ON COLUMN cards.algorithm
IS 'Processing algorithm (1 - DOMESTIC, 2 -
ECMC, 3 - VISA)';
COMMENT
ON COLUMN cards.proc_ccy
IS 'Processing centre currency';
COMMENT
ON COLUMN cards.proc_exp
IS 'Processing currency exp';
COMMENT
ON COLUMN cards.detail
IS 'Detail (F - no,T - yes)';
COMMENT
ON COLUMN cards.path
IS 'Interface module file exchange
directory';
COMMENT
ON COLUMN cards.card_id
IS 'Card type identification (GLOBUS,
EC/MC, VISA)';
COMMENT
ON COLUMN cards.status
IS 'Status';
REM
PROMPT
PROMPT
Creating Table CENTRS
CREATE
TABLE centrs(
proc_centre VARCHAR2(2) NOT NULL,
name VARCHAR2(27) NOT NULL,
path VARCHAR2(64) NULL,
mark VARCHAR2(1) DEFAULT 'F' NULL,
crypt_flag CHAR(1) NOT NULL
)
TABLESPACE
APP_D
STORAGE (
INITIAL
4
NEXT
2
)
;
COMMENT
ON TABLE centrs
IS 'Apstrādes centru tabula';
COMMENT
ON COLUMN centrs.proc_centre
IS 'Processing centre code';
COMMENT
ON COLUMN centrs.name
IS 'Procesing centre name';
COMMENT
ON COLUMN centrs.path
IS 'Processing centre file exchange
directory';
COMMENT
ON COLUMN centrs.mark
IS 'Own processing centre mark (T)';
REM
PROMPT
PROMPT
Creating Table MERCHANTS
CREATE
TABLE merchants(
merchant VARCHAR2(15) NOT NULL,
parent VARCHAR2(15) NOT NULL,
abrv_name VARCHAR2(27) NOT NULL,
fax VARCHAR2(11) NULL,
full_name VARCHAR2(78) NULL,
cntry VARCHAR2(3) NOT NULL,
city VARCHAR2(15) NOT NULL,
reg_nr VARCHAR2(11) NULL,
street VARCHAR2(30) NULL,
post_ind
VARCHAR2(6) NULL,
phone VARCHAR2(11) NULL,
cont_person VARCHAR2(30) NULL,
mcc VARCHAR2(4) NULL
)
PCTFREE 10
PCTUSED 80
TABLESPACE
APP_D
;
COMMENT
ON TABLE merchants
IS 'Pilns tirgotāju un filiāļu saraksts';
COMMENT
ON COLUMN merchants.merchant
IS 'Merchant code';
COMMENT
ON COLUMN merchants.parent
IS 'Parent merchant code';
COMMENT
ON COLUMN merchants.abrv_name
IS 'Merchant"s short name';
COMMENT
ON COLUMN merchants.fax
IS 'Fax #';
COMMENT
ON COLUMN merchants.full_name
IS 'Merchant legal name';
COMMENT
ON COLUMN merchants.cntry
IS 'Country code (char.)';
COMMENT ON
COLUMN merchants.city
IS 'Address: city';
COMMENT
ON COLUMN merchants.reg_nr
IS 'Registration number';
COMMENT
ON COLUMN merchants.street
IS 'Address: street';
COMMENT
ON COLUMN merchants.post_ind
IS 'Address:index';
COMMENT
ON COLUMN merchants.phone
IS 'Phone';
COMMENT
ON COLUMN merchants.cont_person
IS 'Contact person';
REM Tabul.con
REM
REM This ORACLE7 command file was generated by
Oracle Server Generator
REM Version 5.5.8.0.0 on 21-MAY-96
REM
REM For
application SETPROJ version 1 database SET
REM
REM
CONSTRAINT
PROMPT
Adding PRIMARY Constraint To BANKS Table
ALTER
TABLE BANKS ADD (
CONSTRAINT BANK_PK
PRIMARY KEY (BANK)
USING
INDEX
PCTFREE 10
TABLESPACE
APP_X
)
/
PROMPT
Adding PRIMARY Constraint To CARDS Table
ALTER
TABLE CARDS ADD (
CONSTRAINT CARD_PK
PRIMARY KEY (CARD_TYPE)
USING
INDEX
PCTFREE 10
TABLESPACE
APP_X
STORAGE (
INITIAL
4
NEXT
2
)
)
/
PROMPT
Adding PRIMARY Constraint To CENTRS Table
ALTER
TABLE CENTRS ADD (
CONSTRAINT CNTR_PK
PRIMARY KEY (PROC_CENTRE)
USING
INDEX
TABLESPACE
APP_X
STORAGE (
INITIAL
4
NEXT
2
)
)
/
PROMPT
Adding PRIMARY Constraint To MERCHANTS Table
ALTER
TABLE MERCHANTS ADD (
CONSTRAINT MERC_PK
PRIMARY KEY (MERCHANT)
USING
INDEX
PCTFREE 10
TABLESPACE
APP_X
)
/
PROMPT
Adding UNIQUE Constraint To CENTRS Table
ALTER
TABLE CENTRS ADD (
CONSTRAINT UN_MARK
UNIQUE
(MARK)
USING
INDEX
TABLESPACE
APP_X
)
/
REM Tabulas MERCHANTS 2 loģisko tabulu
izveidošana
REM
REM This ORACLE7 command file was generated by
Oracle Server Generator
REM Version 5.5.8.0.0 on 21-MAY-96
REM
REM For
application SETPROJ version 1 database SET
REM
REM VIEW
REM MRC_DEP
REM MRC_PAR
REM
REM MRC_DEP
REM
REM Tirgotāja filiāļu saraksts
REM
PROMPT
PROMPT
Creating View MRC_DEP
CREATE
OR REPLACE VIEW mrc_dep
(
department
,abrv_name
,full_name
,cntry
,city
,street
,post_ind
,cont_person
,phone
,fax
,merchant
,mcc
)
AS
SELECT
MRC.MERCHANT
,MRC.ABRV_NAME
,MRC.FULL_NAME
,MRC.CNTRY
,MRC.CITY
,MRC.STREET
,MRC.POST_IND
,MRC.CONT_PERSON
,MRC.PHONE
,MRC.FAX
,MRC.PARENT
,MRC.MCC
FROM
merchants
mrc
WHERE mrc.merchant <> mrc.parent
;
COMMENT
ON TABLE mrc_dep
IS 'Tirgotāja filiāļu saraksts';
REM
REM MRC_PAR
REM
REM Līgumslēdzēji tirgotāji
REM
PROMPT
PROMPT
Creating View MRC_PAR
CREATE
OR REPLACE VIEW mrc_par
(
merchant
,abrv_name
,full_name
,cntry
,city
,street
,post_ind
,cont_person
,phone
,fax
,parent
,reg_nr
,mcc
)
AS
SELECT
MRC.MERCHANT
,MRC.ABRV_NAME
,MRC.FULL_NAME
,MRC.CNTRY
,MRC.CITY
,MRC.STREET
,MRC.POST_IND
,MRC.CONT_PERSON
,MRC.PHONE
,MRC.FAX
,MRC.PARENT
,MRC.REG_NR
,MRC.MCC
FROM
merchants
mrc
WHERE mrc.merchant = mrc.parent
;
COMMENT
ON TABLE mrc_par
IS 'Līgumslēdzēji tirgotāji';
REM Triggeris tabulai MERCHANTS, BEFORE INSERT
REM
REM This ORACLE7 command file was generated by
Oracle Server Generator
REM Version 5.5.8.0.0 on 21-MAY-96
REM
REM For
application SETPROJ version 1 database SET
REM
REM
TRIGGER
REM CHECK_CODE
REM
REM Retrofitted
REM
PROMPT
PROMPT
Creating Trigger CHECK_CODE
CREATE
OR REPLACE TRIGGER check_code
BEFORE
INSERT
ON
MERCHANTS
FOR EACH
ROW
DECLARE
char7
CHAR;
BEGIN
-- MERCHANT
WHILE LENGTH(:new.merchant)<6 loop
:new.merchant:=:new.merchant || '0';
END loop;
IF LENGTH(:new.merchant) = 6 then
char7:=SIST.LUHN_CODE(:new.merchant);
:new.merchant:=:new.merchant || char7;
ELSE
char7:=SIST.LUHN_CODE(SubStr(:new.merchant,1,6));
IF char7 != SubStr(:new.merchant,7,1) then
:new.merchant:=SubStr(:new.merchant,1,6) || char7;
END IF;
END IF;
-- PARENT
IF LENGTH(:new.parent)=7 then
-- Department parent
char7:=SIST.LUHN_CODE(SubStr(:new.parent,1,6));
IF char7 != SubStr(:new.parent,7,1) then
:new.parent:=SubStr(:new.parent,1,6) ||
char7;
END IF;
ELSE
-- Merchant = Parent
:new.parent:=:new.merchant;
END IF;
END; /
FUNCTION
LUHN_CODE (str IN CHAR) return CHAR;
summa INTEGER;
strings
VARCHAR2(255);
gar
INTEGER;
svars
INTEGER;
cipars
INTEGER;
BEGIN
summa:=0;
strings:=str;
strings:=LTrim(strings);
strings:=RTrim(strings);
gar:=LENGTH(strings);
IF MOD(gar,2)=0 then
svars:=1;
ELSE
svars:=2;
END IF;
FOR i IN 1..gar loop
cipars:=TO_NUMBER(SubStr(strings,i,1));
cipars:=cipars*svars;
IF cipars>9 then
summa:=summa+1;
summa:=summa+MOD(cipars,10);
ELSE
summa:=summa+cipars;
END IF;
IF svars=2 then
svars:=1;
ELSE
svars:=2;
END IF;
END loop;
cipars:=10-MOD(summa,10);
IF cipars=10 then
cipars:=0;
END IF;
Return TO_CHAR(cipars);
END
luhn_code;
Atskaites
Nav komentāru:
Ierakstīt komentāru