db projektēšana (ar oracle designer rīku) web view · 2014-10-10database design...
TRANSCRIPT
Romans Lukašenko
DB projektēšana ar Oracle Designer CASE rīku
RTU 2005.
SATURS
1. UZDEVUMA NOSTADNE........................................................................................61.1. Uzdevuma analīze un prasības darbam.................................................................................6
1.2. Uzdevuma risināšanas projektējums.....................................................................................6
2. PRIEKŠMETISKAS VIDES MODELIS....................................................................8
3. DB PROJEKTĒŠANA UZ PAPĪRA...........................................................................93.1. ER modelis................................................................................................................................9
3.2. DB tabulu kopa......................................................................................................................10
4. DB PROJEKTĒŠANA AR „ORACLE DESIGNER” RĪKU....................................144.1. Projektēšanas rīka apraksts..................................................................................................14
4.2. ER diagrammas izveidošana.................................................................................................17
4.3. Servera modeļa iegūšana.......................................................................................................27
4.4. Servera modeļa labošana.......................................................................................................28
4.5. DB ģenerēšana........................................................................................................................42
SECINĀJUMI.................................................................................................................45
LITERATŪRA................................................................................................................47
PIELIKUMI....................................................................................................................481. pielikums.................................................................................................................................48
DB tabulu veidošanas DDL datne...................................................................................................48
2. pielikums.................................................................................................................................50
DB tabulu papildelementu veidošanas DDL datne.........................................................................50
3. pielikums.................................................................................................................................54
DB skatu veidošanas DDL datne....................................................................................................54
Lapa 2 no 47
Pasūtījuma pieņemšana
Pasūtījuma nodošana ražošanā
Pasūtījuma izgatavošana
Pasūtījuma novietošana
noliktavā
Pasūtījuma izsniegšana
Atzīme par pieņemšanu
Atzīme par izpildi
Atzīme par izsniegšanu
Pārdevējs
Skārdnieks
Noliktavas pārzinis
1. PRIEKŠMETISKAS VIDES MODELIS
Izmantota priekšmetiskā vide ir skārda izstrādājumu ražošanas uzņēmums. Atbilstošie skārda
izstrādājumi tiek izgatavoti pēc klientu individuālajiem pasūtījumiem. Katrs klienta pasūtījums
(veidlapa) obligāti satur šādu svarīgo informāciju:
- dati par klientu;
- dati par izmantojamā materiāla veidu;
- dati par skārda detaļu konfigurāciju;
- dati par skārdniekiem, kuri izgatavo pasūtījumu.
Pasūtījuma izpildes procesa datus par vienu un to pašu pasūtījumu apstrādā šādas personas:
1) Pārdevējs – noformē klienta pasūtījumu, norādot pasūtījuma veidlapā visu augstāk minēto
informāciju, ka arī atzīmējot to faktu, ka pasūtījums ir pieņemts ražošana;
2) Skārdnieks – izgatavo klienta pasūtījumu pēc iedotas pasūtījuma veidlapas, beigās atzīmējot to
faktu, ka pasūtījums ir saražots;
3) Noliktavas pārzinis – izsniedz klienta pasūtījumu no noliktavas, beigās atzīmējot to faktu, ka
pasūtījums ir izsniegts klientam.
Shematiski, skārda izstrādājumu ražošanas uzņēmuma darbu var attēlot šāda veidā (sk. 2.1. att.):
2.1. att. Skārda izstrādājumu ražošanas uzņēmuma darba process
Lapa 3 no 47
2. DB PROJEKTĒŠANA UZ PAPĪRA
2.1. ER modelis
Izejot no sistēmas apraksta (sk. 2. punktu), priekšmetiskās vides galvenās realitātes un to
savstarpējas saites var attēlot šādas ER diagrammas veidā (sk. 3.1.1. att.):
3.1.1. att. Priekšmetiskas vides ER modelis
2.2. DB tabulu kopa
Lapa 4 no 47
Darbinieki Klienti
Materiāli Produkcija
Pasūtījumi
DATU BĀZE
Kā redzams no problēmvides ER diagrammas, priekšmetiskās vides datu glabāšanai ir
nepieciešamas vismaz 5 datu krātuves (sk. 3.2.1. att.):
3.2.1. att. Sistēmas datu krātuvju kopa
Sistēmas datu krātuves īsumā var raksturot šādi:
1. Materiāli – datu krātuve, kas satur datus par uzņēmumam pieejamajiem skārda veidiem, un
kuriem var būt izgatavots klienta pasūtījums. Skārda veidi – tas ir kombinācijas starp skārda
krāsām un skārda augšējiem pārklājumu tipiem.
2. Produkcija – datu krātuve, kas satur datus par uzņēmumā izgatavojamiem skārda detaļu
veidiem jeb par uzņēmuma produkcijas nomenklatūru.
3. Strādnieki – datu krātuve, kas satur datus par uzņēmuma strādniekiem, kas ir iesaistīti klientu
pasūtījumu ražošanā.
4. Klienti – datu krātuve, kas satur datus par uzņēmuma klientiem, kuri kaut vienreiz pasūtīja
skārda izstrādājumus.
5. Pasūtījumi – datu krātuve, kas satur datus par visiem uzņēmumā izdarīties pasūtījumiem uz
skārda izstrādājumu ražošanu.
Ņemot vērā iepriekš uzbūvēto problēmvides realitātes modeli, var izveidot topošas datu bāzes
tabulu sākotnējas struktūras:
1) Tabula Darbinieki
a) Tabulas nozīme
Tabulā tiek glabāta informāciju par uzņēmumā strādājošiem darbiniekiem.
b) Tabulas struktūra
Atribūts Datu tips PaskaidrojumsPersonas kods String Darbinieka personas kodsUzvards String Darbinieka uzvārds
Lapa 5 no 47
Vards String Darbinieka vārdsAmats String Darbinieka ieņemamais amatsNodala String Nodaļa, kur strādā darbinieksStatuss Boolean Darbinieka darba statuss
2) Tabula Klienti
a) Tabulas nozīme
Tabulā tiek glabāta informāciju par uzņēmuma klientiem.
b) Tabulas struktūra
Atribūts Datu tips PaskaidrojumsKods / Numurs String Klienta personas kods vai firmas reģistrācijas numursUzvards Vards / Nosaukums
String Klienta uzvārda un vārds vai firmas nosaukums
Adrese String Klienta atrašanas adreseTelefons String Klienta kontakttelefonsBankas nosaukums String Klienta bankas nosaukumsBankas konts String Klienta bankas konta numurs
3) Tabula Skards
a) Tabulas nozīme
Tabulā tiek glabāta informāciju par uzņēmumam pieejamajiem skārda veidiem.
b) Tabulas struktūra
Atribūts Datu tips PaskaidrojumsSkarda Kods String Skārda kodsKrasa Integer Skārda krāsas numursParklajums String Skārda pārklājuma nosaukumsKvalitate String Skārda kvalitātes līmenisStatuss Boolean Skāra izmantojamības statuss
4) Tabula Izstradajumi
a) Tabulas nozīme
Tabulā tiek glabāta informāciju par uzņēmuma ražotiem skārda izstrādājumiem.
b) Tabulas struktūra
Atribūts Datu tips PaskaidrojumsIzstradajuma Kods String Izstrādājuma kodsNosaukums String Izstrādājuma nosaukumsMateriala paterins Real Izstrādājuma izgatavošanas materiāla patēriņšLaika paterins Real Izstrādājuma izgatavošanas materiāla patēriņš Statuss Boolean Izstrādājuma izmantojamības statuss
Lapa 6 no 47
5) Tabula Pasutijumi
a) Tabulas nozīme
Tabulā tiek glabāta vispārīgā informāciju par klientu pasūtījumiem.
b) Tabulas struktūra
Atribūts Datu tips PaskaidrojumsPasutijuma Numurs Integer Pasūtījuma numursKlienta Kods/Numurs String Klienta (kas izdarīja pasūtījumu) personas kods vai firmas
reģistrācijas numursPavadzimes numurs String Pasūtījumu pavadzīmes numursApmaksas veids String Pasūtījuma pavadzīmes apmaksas veidsDarbinieka personas kods („pardevejs”)
String Pārdēvēja (kas pieņēma pasūtījuma) personas kods
Darbinieka personas kods („skardnieks”)
String Skārdnieka (kas izgatavoja pasūtījumu) personas kods
Pienemsanas datums Date Pasūtījuma pieņemšanas datumsIzpildes datums Date Pasūtījuma izpildes datumsIzsniegsanas datums Date Pasūtījuma reālais izsniegšanas datums
6) Tabula Pasutijumi_Izstradajumi
a) Tabulas nozīme
Tabulā tiek glabāta detalizēta informāciju par klientu pasūtījumiem.
b) Tabulas struktūra
Atribūts Datu tips PaskaidrojumsPasutijuma Numurs Integer Pasūtījuma numursSkarda Kods Integer Skārda kodsIzstradajuma nosaukums String Izstrādājuma nosaukumsIzstradajumu daudzums Integer Izstrādājumu daudzumsIzstradajuma cena Real Viena izstrādājuma cena
Visu tabulu savstarpējas saites var attēlot ar šādas diagrammas palīdzību (sk. 3.2.2. att.):
Lapa 7 no 47
3.2.2. att. Sistēmas tabulu savstarpējas saites
Lapa 8 no 47
3. DB PROJEKTĒŠANA AR „ORACLE DESIGNER” RĪKU
3.1. Projektēšanas rīka apraksts
Kompānijas Oracle CASE tehnoloģija (tai skaitā Oracle Designer rīks) bāzējas uz strukturētu
pieeju informācijas sistēmas izstrādei. Viss process tiek sadalīts galīga skaita etapos, kuri saistīti
savā starpā (sk. 4.1.1. att.):
3.2.1. att. Oracle CASE tehnoloģija – IS izstrādes strukturēta pieeja
IS izstrādes strukturēta pieeja, kas balstās uz Oracle CASE tehnoloģijas izmantošanu, ietver sevi
šādu izstrādes posmu realizāciju (sk. 4.1.1. tab.):
4.1.1. tabula. IS izstrādes strukturētas pieejas galvenie posmi
Nr. Posms Realizējamas darbības1 „Process” Tiek izstrādāti modeļi, kuri apraksta procesus, datus un informācijas plūsmas, kas
nodrošina organizācijas biznesa darbību.
Tabulas 4.1.1. turpinājums
Lapa 9 no 47
Nr. Posms Realizējamas darbības2 „Analīze” Tiek noteiktas prasības lietojumprogrammai un tiek noteikti procesi, kurus
jāautomatizē.3 „Transformēšana” [Starpposms]4 „Dizains” Tiek veikta projektētas sistēmas specifikāciju pārveidošana uz datu bāzu struktūrām
un lietojumprogrammām.5 „Ģenerēšana” Tiek veikta programmas koda automātiskā ģenerācija
Viens no firmas Oracle projektēšanas rīkiem, kas, kas pilnība atbalsta IS izstrādes strukturēto pieeju
(sk. 4.1.1. att. un 4.1.1. tab.) ir Oracle Designer rīks, kas ir redzams 4.1.2. attēlā.
4.1.2. att. Oracle Designer rīka ārējais izskats
Projektēšanas rīks Oracle Designer sastāv no šādām pamatdaļām:
Pirmā grupa – „Model System Requirements” – ir paredzēta sistēmas prasību modelēšanai.
Uzsākot sistēmas modelēšanu ar šo rīku, pirmais solis ir sistēmas prasību definēšana, izmantojot
dažus vai visus šos modeļus.
- Apakšrīks „Entity Relationship Diagrammer” – tiek izmantots problēmvides entītiju –
relāciju modelēšanai. Šīs apakšrīks ietver sevī biznesa sistēmas svarīgo objektu (entītiju)
izdalīšanu, kā arī to īpašību (atribūtu) noteikšanu, kā arī to savstarpējo mijiedarbību
(relācijas). Rezultātā iegūtais modelis nav atkarīgs ne no datu glabāšanas principa, ne no
datu pieejas metodes.
Lapa 10 no 47
- prasību definēšana - servera modeļa iegūšana - servera modeļa labošana- datu bāzes iegūšana
Otrā grupa – „Transform Preliminary Designs” – ir paredzēta datu bāzes un
lietojumprogrammu sākotnējos modeļu ģenerēšanai.
- Apakšrīks „Database Design Transformer” – tiek izmantots datu bāzes modeļa (jeb servera
modeļa) izveidošanai un pārvaldībai. Tas izveido tabulas, kurās ierakstīt visus entītijas
eksemplārus, kā arī kolonas, kurās glabāt entītijas atribūtus, kā arī ierobežojumus, lai
īstenotu relācijas starp entītijām.
Trešā grupa – „Design and Generate” – ir paredzēta uzģenerēto sākotnējo modeļu labošanai un
papildināšanai.
- Apakšrīks „Design Editor” – tiek izmantots visu tipu repozitārija elementu (tai skaitā
tabulu, skatu, formu) veidošanai, labošanai, dzēšanai.
Ceturtā grupa – „Repository tools” – ir paredzēta topošās informācijas sistēmas repozitorija
objektu pārvaldībai.
- Apakšrīks „Repository Object Navigator” – tiek izmantots repozitorijā (visu izveidoto datu
bāzes objektu) satura apskatīšanai.
Lai izveidotu pilnvērtīgo datu bāzes modeli, pietiks, ja prasības informācijas sistēmai būs
nodefinētas tikai entītiju – relāciju diagrammas veidā. Izejot no tā trešā laboratorijas darba gala
mērķa sasniegšanai (t.i. priekšmetiskas vides datu bāzes iegūšanai) būs pielietoti rīka Oracle
Designer šādi apakšrīki (sk. 4.1.3. att.):
4.1.3. att. Oracle Designer apakšrīku izmantošanas secība
3.2. ER diagrammas izveidošana
ER diagrammas izveidošanu Designer rīkā ir jāveic saskaņā ar šādu shēmu:
1) Domēni (atribūtu vērtību apgabalu definēšana);
2) Realitātes (problēmvides būtību definēšana);
Lapa 11 no 47
3) Atribūti (būtību īpašību definēšana);
4) Saites (būtību savstarpējas sasaistes definēšana).
1. Domēni
Domēnus pielieto realitāšu atribūtu datu tipu definēšanai. Uz realitātes „Darbinieks” atribūta
„Amats” piemēra nodemonstrēsim domēna (jeb datu tipa) izveidošanu priekš šī atribūta:
a) Domēna definēšana (sk. 4.2.1. att.):
4.2.1. att. Domēna definēšana
b) Domēna detalizēšana (sk. 4.2.2. att.):
Lapa 12 no 47
4.2.2. att. Domēna detalizēšana
c) Domēna vērtību uzdošana (sk. 4.2.3. att.):
4.2.3. att. Domēna vērtību uzdošana
Visu izveidoto domēnu saraksts izskatās šādi (sk. 4.2.1. tab.):
4.2.1. tabula. Izveidoto domēnu saraksts
Nr. Domēns Formāts Garums Vērtības1 TDARBINIEKAAMATS VARCHAR2 50 [Pardevejs]
[Skardnieks][Noliktavas parzinis]
2 TDARBINIEKANODALA VARCHAR2 50 [Ofiss][Razosana][Noliktava]
Lapa 13 no 47
3 TDARBINIEKAUZVARDS VARCHAR2 504 TDARBINIEKAVARDS VARCHAR2 305 TDARBINIEKAKODS INTEGER 116 TDETALASDAUDZUMS NUMBER 57 TDETALASKODS VARCHAR2 38 TDETALASLAIKS NUMBER 49 TDETALASMATERIALS NUMBER 510 TDETALASNOSAUKUMS VARCHAR2 5011 TKLIENTAADRESE VARCHAR2 10012 TKLIENTABANKASNOSAUKUMS VARCHAR2 5013 TKLIENTAKODS VARCHAR2 1614 TKLIENTANOSAUKUMS VARCHAR2 8015 TKLIENTATELEFONS INTEGER 716 TKLIENTABANKASKONTS VARCHAR2 2017 TKOPEJAISCENA NUMBER 718 TKOPEJAISDATUMS DATE -19 TKOPEJAISNUMURS INTEGER 320 TKOPEJAISSTATUSS INTEGER 1 [0]
[1]21 TPASUTIJUMAAPMAKSA VARCHAR2 5 [Kase]
[Banka]22 TPASUTIJUMANUMURS INTEGER 523 TPASUTIJUMAPAVADZIME VARCHAR2 724 TSKARDAKODS VARCHAR2 625 TSKARDAKRASA VARCHAR2 3026 TSKARDAKVALITATE VARCHAR2 6 [Zema]
[Videja][Augsta]
27 TSKARDAPARKLAJUMS VARCHAR2 3
2. Realitātes
Uz realitātes „Skards” piemēra nodemonstrēsim realitātes (jeb būtības) izveidošanu:
a) Būtības definēšana (sk. 4.2.4. att.):
Lapa 14 no 47
4.2.4. att. Būtības definēšana
b) Būtības sinonīmu izdošana (sk. 4.2.5. att.):
4.2.5. att. Būtības sinonīmu uzdošana
Visu nodefinēto realitāšu saraksts izskatās šādi (sk. 4.2.2. tab.):
4.2.2. tabula. Nodefinēto realitāšu saraksts
Nr. Realitāte Īsais vārds Sinonīmi1 SKARDA VEIDS SKARDS MATERIALS2 IZSTRADAJUMA VEIDS DETALA IZSTRADAJUMS3 FIRMAS DARBINIEKS DARBINIEKS STRADNIEKS4 FIRMAS KLIENTS KLIENTS PASUTITAJS, PIRCEJS5 KLIENTA PASUTIJUMS PASUTIJUMS PIRKUMS6 PASUTIJUMA KOMPLEKTACIJA SASTAVS KOMPLEKTS, SASTAVDALAS
3. Atribūti
Lapa 15 no 47
Uz realitātes „Skārds” atribūtu piemēra nodemonstrēsim atribūtu definēšanu priekš šis realitātes:
a) Atribūtu definēšana (sk. 4.2.6. att.):
4.2.1. att. Atribūtu definēšana
b) Atribūtu detalizēšana (sk. 4.2.7. att.):
Lapa 16 no 47
4.2.7. att. Atribūtu detalizēšana
Realitāšu visu nodefinēto atribūtu saraksts izskatās šādi (sk. 4.2.3. tab.):
4.2.3. tabula. Nodefinēto realitāšu atribūtu saraksts
Nr. Atribūts Domēns Formāts Garums Obligāts AtslēgaRealitāte „SKARDA VEIDS”1 S_KODS TSKARDAKODS VARCHAR2 6 V V2 S_PARKLAJUMS TSKARDAPARKLAJUMS VARCHAR2 3 V3 S_KRASA TSKARDAKRASA VARCHAR2 30 V4 S_KVALITATE TSKARDAKVALITATE VARCJAR2 6 V5 S_STATUSS TKOPEJAISSTATUSS INTEGER 1 VRealitāte „IZSTRADAJUMA VEIDS”1 I_KODS TDETALASKODS VARCHAR2 3 V V2 I_NOSAUKUMS TDETALASNOSAUKUMS VARCHAR2 50 V3 I_MATPATERINS TDETALASMATERIALS NUMBER 5 V4 I_LAIPATERINS TDETALASLAIKS NUMBER 4 V5 I_STATUSS TKOPEJAISSTATUSS INTEGER 1 VRealitāte „FIRMAS DARBINIEKS”1 D_NUMURS TKOPEJAISNUMURS INTEGER 3 V V2 D_VARDS TDARBINIEKAVARDS VARCHAR2 30 V3 D_UZVARDS TDARBINIEKAUZVARDS VARCHAR2 50 V4 D_PERSONASKODS TDARBINIEKAKODS INTEGER 11 V5 D_NODALA TDARBINIEKANODALA VARCHAR2 50 V6 D_AMATS TDARBINIEKAAMATS VARCHAR2 50 V7 D_STATUSS TKOPEJAISSTATUSS INTEGER 1 V
Tabulas 4.2.3. turpinājums
Nr. Atribūts Domēns Formāts Garums Obligāts AtslēgaRealitāte „FIRMAS KLIENTS”1 K_NUMURS TKOPEJAISNUMURS INTEGER 3 V V2 K_NOSAUKUMS TKLIENTANOSAUKUMS VARCHAR2 80 V3 K_KODS TKLIENTAKODS VARCHAR2 16 V4 K_ADRESE TKLIENTAADRESE VARCJAR2 1005 K_TELEFONS TKLIENTATELEFONS INTEGER 76 K_BANKA TKLIENTABANKA VARCHAR2 507 K_KONTS TKLIENTAKONTS VARCHAR2 208 K_STATUSS TKOPEJAISSTATUSS INTEGER 1 VRealitāte „KLIENTA PASUTIJUMS”1 P_NUMURS TPASUTIJUMANUMURS INTEGER 5 V V2 P_KLIENTS TKOPEJAISNUMURS INTEGER 3 V3 P_PAVADZIME TPASUTIJUMAPAVADZIM VARCHAR2 7 V4 P_APMAKSA TPASUTIJUMAAPMAKSA VARCHAR2 5 V5 P_PARDEVEJS TKOPEJAISNUMURS INTEGER 3 V6 P_SKARDNIEKS TKOPEJAISNUMURS INTEGER 3 V
Lapa 17 no 47
7 P_PIENDATUMS TKOPEJAISDATUMS DATE - V8 P_IZPDATUMS TKOPEJAISDATUMS DATE -9 P_IZSNDATUMS TKOPEJAISDATUMS DATE -Realitāte „PASUTIJUMA KOMPLEKTACIJA”1 A_PASUTIJUMS TPASUTIJUMANUMURS INTEGER 5 V V2 A_POZICIJA TKOPEJAISNUMURS INTEGER 3 V V3 A_SKARDS TSKARDAKODS VARCHAR2 6 V4 A_IZSTRADAJUMS TDETALASKODS VARCHAR2 3 V5 A_DAUDZUMS TDETALASDAUDZUMS NUMBER 5 V6 A_CENA TKOPEJAISCENA NUMBER 7 V
4. Saites
Uz saites starp realitātēm „Pasūtījuma komplektācija” un „Izstrādājuma veids” piemēra
nodemonstrēsim sasaistes definēšanu priekš šim realitātēm:
a) Saites definēšana (sk. 4.2.8. att.):
Visu nodefinēto realitāšu saišu saraksts izskatās šādi (sk. 4.2.4. tab.):
4.2.4. tabula. Nodefinēto realitāšu saišu saraksts
Nr. NO UZ
Realitāte Saite Pakāpe Obligāta Realitāte Saite Pakāpe Obligāta
1 PASUTIJ. KOMPLEKT.
sastav no N V SKARDA VEIDS
ietilpst N
2 PASUTIJ. KOMPLEKT.
sastav no N V IZSTRADAJ. VEIDS
ietilpst N
3 KLIENTA PASUTIJ.
pasuta N V FIRMAS KLIENTS
pasuta 1 V
4 KLIENTA PASUTIJ.
apstrada N V FIRMAS DARBINIEKS
apstrada N
5 PASUTIJ. KOMPLEKT.
ietilpst N V KLIENTA PASUTIJ.
sastav no 1 V
Lapa 18 no 47
4.2.8. att. Saites definēšana
Visu iepriekšējo darbību izpildes rezultātā tika iegūta šāda izvelētas problēmvides ER diagramma
(sk. 4.2.9. att.):
4.2.9. att. Problēmsfēras ER diagramma Designer vidē
Lai pārliecinātos par to, ka visi iepriekš apskatītie objekti bija veiksmīgi izveidoti repozitorijā, ir
jāpalaiž Designer apakšrīks „Repository Object Navigator”, kas dod iespēju apskatīties
repozitorija tekošo saturu.
Piem., atribūtu visu izveidoto domēnu kopa izskatās šāda veidā (sk. 4.2.10. att.):
Lapa 19 no 47
4.2.10. att. Repozitorijā izveidoto domēnu kopa
Visu izveidoto realitāšu un atribūtu kopas izskatās šāda veidā (sk. 4.2.11. att.):
Lapa 20 no 47
4.2.11. att. Repozitorijā izveidoto realitāšu un atribūtu kopa
Visu izveidoto diagrammu (kas definē sistēmas prasības) kopa izskatās šāda veidā (sk. 4.2.12. att.):
3.3. Servera modeļa iegūšana
Servera modeļa (jeb datu bāzes loģiskas struktūras) ģenerēšana Designer rīkā notiek automātiskā
ceļā, palaižot Designer apakšrīku „Database Design Transformer”.
Nobeidzoties servera modeļa ģenerēšanai no izveidotas ER diagrammas (sk. 4.2.9. att.), ekrānā tiks
paradīts šāds atskaites logs (sk. 4.3.1. att.):
Lapa 21 no 47
4.2.12. att. Repozitorijā izveidoto diagrammu kopa
4.3.1. att. Servera modeļa ģenerēšanas statusa logs
Lai pārliecinātos par to, ka servera modeļa ģenerēšana bija veiksmīga un tika iegūtas attiecīgās
relāciju tabulas no problēmsfēras ER diagrammas, atkal jāpalaiž Designer apakšrīks „Repository
Object Navigator”, kas dod iespēju apskatīties repozitorija tekošo saturu.
Visu izveidoto relāciju tabulu kopa izskatās šāda veidā (sk. 4.3.2. att.):
Lapa 22 no 47
No sešām realitātēm tika iegūtas sešās tabulas
4.3.2. att. Servera modeļa relāciju tabulu kopa
3.4. Servera modeļa labošana
Servera modeļa pareizības pārbaudi un iespējamo labošanu Designer rīkā ir ieteicams veikt saskaņā
ar šādu shēmu:
1) Tabulu struktūra (tabulu kolonu kopas satura pārbaude un labošana);
2) Tabulu sasaiste (tabulu savstarpējas sasaistes pareizības pārbaude un labošana);
3) DB papildus objekti (DB papildus objektu izveidošana, piem., skati utt.).
Jāatzīmē, ka servera modeļa objektu pārvaldībai ļoti ērti izmantot tā saucamo servera modeļa karti
(sk. 4.4.1. att.), kas uzskatama veidā pārada servera modeļa struktūru:
4.4.1. att. Servera modeļa karte
1. Tabulu struktūra
Tabulu struktūru pārvaldībai servera modeļa kartē ir jāizvēlas sadaļa „Tables”. Uz tabulas
„Sastavs” piemēra nodemonstrēsim tabulas struktūras pārbaudi un labošanu priekš šīs tabulas:
a) Tabulas nosaukuma pārvaldība (sk. 4.4.2. att.):
Lapa 23 no 47
4.4.2. att. Tabulas nosaukumu pārvaldība
b) Tabulas kolonu pārvaldība (sk. 4.4.3. att.):
4.4.3. att. Tabulas kolonu pārvaldība
Lapa 24 no 47
Analizējot kolonu kopu tabulai „SASTAVS” atklājās viens ļoti interesants moments:
servera modeļa ģenerēšanas laikā tabulai bija pievienoti trīs papildus kolonas, kas nebija
nodefinētas šis tabulas realitātei „PASUTIJUMA KOMPLEKTACIJA” ER diagrammā!
T.i., ja būvējot ER diagrammu bija ieplānots, ka tabulai „SASTAVS” būs šāda kolonu kopa:
4.4.1. tabula. Tabulas „SASTAVS” no sākuma ieplānotā struktūraNr. Atribūts Domēns Formāts Garums1 A_PASUTIJUMS TPASUTIJUMANUMURS INTEGER 52 A_POZICIJA TKOPEJAISNUMURS INTEGER 33 A_SKARDS TSKARDAKODS VARCHAR2 64 A_IZSTRADAJUMS TDETALASKODS VARCHAR2 35 A_DAUDZUMS TDETALASDAUDZUMS NUMBER 56 A_CENA TKOPEJAISCENA NUMBER 7
Tad pēc servera modeļa ģenerēšanas tabulas „SASTAVS” kolonu kopa izskatās šāda veidā:
4.4.2. tabula. Tabulas „SASTAVS” uzģenerētā struktūraNr. Atribūts Domēns Formāts Garums1 A_PASUTIJUMS TPASUTIJUMANUMURS INTEGER 52 A_POZICIJA TKOPEJAISNUMURS INTEGER 33 A_SKARDS TSKARDAKODS VARCHAR2 64 A_IZSTRADAJUMS TDETALASKODS VARCHAR2 35 A_DAUDZUMS TDETALASDAUDZUMS NUMBER 5
Tabulas 4.4.2. turpinājums
Nr. Atribūts Domēns Formāts Garums1 A_PASUTIJUMS TPASUTIJUMANUMURS INTEGER 52 A_POZICIJA TKOPEJAISNUMURS INTEGER 33 A_SKARDS TSKARDAKODS VARCHAR2 64 A_IZSTRADAJUMS TDETALASKODS VARCHAR2 35 A_DAUDZUMS TDETALASDAUDZUMS NUMBER 56 A_CENA TKOPEJAISCENA NUMBER 77 PASUTIJUMS_P_NUMURS TPASUTIJUMANUMURS INTEGER 58 SKARDS_S_KODS TSKARDAKODS VARCHAR2 69 DETALA_I_KODS TDETALASKODS VARCHAR2 3
Lai sameklētu racionālo iemeslu tam, kāpēc servera modeļa izveidošanas laikā tabulai
„SASTAVS” bija pievienoti papildus lauki, ir vērts paskatīties uz problēmvides ER diagrammu,
kas ir atspoguļota 4.2.9. attēlā. No diagrammas ir redzams, ka tabula „SASTAVS” (jeb tabulai
atbilstošā realitāte „PASUTIJUMA KOMPLEKTACIJA”) ir saistīta ar trim citām tabulām:
„SKARDS” (jeb realitāte „SKARDA VEIDS”), „DETALA” (jeb realitāte „IZSTRADAJUMA
VEIDS”) un „PASUTIJUMS” (jeb realitāte „KLIENTA PASUTIJUMS”). Tieši tāpēc katras
saites fiziskai realizācijai tabulai „SASTAVS” servera modeļa ģenerēšanas laikā bija pievienoti
trīs papildus sasaistēs lauki. Bet lieta ir tāda, ka šādi sasaistes lauki jau bija paredzēti tabulas
„SASTAVS” struktūras plānošanas laikā un bija ielikti ER diagramma (realitātes
Lapa 25 no 47
4.4.4. att. Tabulu „dubultās sasaistes” problēma
„PASUTIJUMA KOMPLEKTACIJA” atribūti A_PASUTIJUMS, A_SKARDS,
A_IZSTRADAJUMS), tāpēc pēc servera modeļa ģenerēšanas tabulai „SASTAVS” izveidojas
dubultā sasaiste ar trim citam tabulām (sk. 4.4.4. att.).
Lai izvairītos no šis dubultas sasaistes, kas pastāv tabulā „SASTAVS”, sasaistes lauku vienu
komplektu (3 atribūti) ir jādzēš nost (dzēšam nost servera modeļa ģenerēšanas laikā automātiski
pievienotus laukus)!
No tā visa izriet, ka saites („Relation”) elementam ER diagrammā ir ne tikai informatīvais
raksturs – saite nodrošina tabulu sasaisti fiziskajā līmenī, un servera modeļa ģenerēšanas
laikā saite starp realitātēm būs realizēta tabulām papildus sasaistes lauku pievienošanas
veidā. Šīs moments ir jāatceras DB projektētājam!
Lai nodrošinātu ievadāmo datu korektumu (un tāda veidā veicinātu DB integritāti), tabulas
kolonu pārvaldības logā (sk. 4.4.3. att.) ir iespējams uzdod tabulas atribūta pieļaujamas vērtības
(sk. 4.4.5. att.):
Lapa 26 no 47
4.4.5. att. Tabulas kolonas pieļaujamo vērtību definēšana
c) Tabulas attēlošanas pārvaldība:
Tabulas attēlošanas pārvaldība ietver sevi izvadāmo lauku uzdošanu (sk. 4.4.6. att.) un lauku
satura izvades formatēšanu (sk. 4.4.7. att.).
4.4.6. att. Tabulas attēlošanas pārvaldība (1)
Lapa 27 no 47
4.4.7. att. Tabulas attēlošanas pārvaldība (2)
Par cik ievadāmo datu korektuma nodrošināšana ir ļoti svarīgs nosacījums DB integritātes
saglabāšanai, tad visu tabulu lauku pieļaujamo vērtību definēšana izskatās šādi (sk. 4.4.3. tab.):
4.4.3. tabula. Tabulu lauku pieļaujamas vērtības
Nr. Atribūts Formāts Garums Vērtību diapazons Diskrētas vērtībasTabula „SKARDS”1 S_KODS VARCHAR2 6 - -2 S_PARKLAJUMS VARCHAR2 3 - -3 S_KRASA VARCHAR2 30 - -4 S_KVALITATE VARCJAR2 6 - (Zema, Videja, Augsta)5 S_STATUSS INTEGER 1 - (0, 1)Tabula „IZSTRADAJUMI”1 I_KODS VARCHAR2 3 - -2 I_NOSAUKUMS VARCHAR2 50 - -3 I_MATPATERINS NUMBER 5 [0.001; 9.999] -4 I_LAIPATERINS NUMBER 4 [0.01; 9.99] -5 I_STATUSS INTEGER 1 - (0, 1)Tabula „DARBINIEKI”1 D_NUMURS INTEGER 3 [1; 999] -2 D_VARDS VARCHAR2 30 - -3 D_UZVARDS VARCHAR2 50 - -4 D_PERSONASKOD
SINTEGER 11 [000000000; 111111111] -
5 D_NODALA VARCHAR2 50 - (Ofiss, Razosana, Noliktava)6 D_AMATS VARCHAR2 50 - (Pardevejs, Skardnieks,
Noliktavas darbinieks)7 D_STATUSS INTEGER 1 - (0, 1)Tabula „KLIENTI”1 K_NUMURS INTEGER 3 [1; 999] -2 K_NOSAUKUMS VARCHAR2 80 - -3 K_KODS VARCHAR2 16 - -4 K_ADRESE VARCJAR2 100 - -5 K_TELEFONS INTEGER 7 - -6 K_BANKA VARCHAR2 50 - -7 K_KONTS VARCHAR2 20 - -8 K_STATUSS INTEGER 1 - (0, 1)
Lapa 28 no 47
Tabula „PASUTIJUMI”1 P_NUMURS INTEGER 5 [1; 99999] -2 P_KLIENTS INTEGER 3 [1; 999] -3 P_PAVADZIME VARCHAR2 7 - -4 P_APMAKSA VARCHAR2 5 - (Banka, Kase)5 P_PARDEVEJS INTEGER 3 [1; 999] -6 P_SKARDNIEKS INTEGER 3 [1; 999] -7 P_PIENDATUMS DATE - - -8 P_IZPDATUMS DATE - - -9 P_IZSNDATUMS DATE - - -Tabula „SASTAVS”1 A_PASUTIJUMS INTEGER 5 [1; 99999] -2 A_POZICIJA INTEGER 3 [1; 999] -3 A_SKARDS VARCHAR2 6 - -4 A_IZSTRADAJUMS VARCHAR2 3 - -5 A_DAUDZUMS NUMBER 5 [0.01; 99.99] -6 A_CENA NUMBER 7 [0.01; 9999.99] -
2. Tabulu sasaiste
Tabulu struktūru pārvaldībai servera modeļa kartē ir jāizvēlas sadaļa „Tables -> Constraints ->
Foreign Keys ”. Uz tabulas „Sastavs” saites ar tabulu „Pasutijums” piemēra nodemonstrēsim
tabulas sasaistes pārbaudi un labošanu priekš šīm tabulām:
a) Sasaistes nosaukuma pārvaldība (sk. 4.4.8. att.):
4.4.8. att. Sasaistes nosaukuma pārvaldība
b) Sasaistes sastāva pārvaldība (sk. 4.4.9. att.):
Lapa 29 no 47
4.4.9. att. Sasaistes sastāva pārvaldība
c) Sasaistes darbības pārvaldība (sk. 4.4.10. att.):
4.4.10. att. Sasaistes darbības pārvaldība
Visu tabulu saišu (jeb ārējo atslēgu saraksts) izskatās šādi (sk. 4.4.4. tab.):
4.4.4. tabula. Tabulu sasaišu (jeb ārējo atslēgu) saraksts
Nr. Ārēja atslēga Lauks tabulā Lauks pakārtotā tabulāTabula „PASUTIJUMI”1 PASUTIJUMS_DARBINIEKS_FK1 P_PARDEVEJS D_NUMURS2 PASUTIJUMS_DARBINIEKS_FK1 P_SKARDNIEKS D_NUMURS3 PASUTIJUMS_KLIENTS_FK P_KLIENTS K_NUMURS
Lapa 30 no 47
A_IZSTRADAJUMS = I_KODS
Tabula „SASTAVS”1 SASTAVS_SKARDS_FK A_SKARDS S_KODS2 SASTAVS_DETALA_FK A_IZSTRADAJUMS I_KODS3 SASTAVS_PASUTIJUMS_FK A_PASUTIJUMS P_NUMURS
3. DB papildus objekti
DB papildus objektu realizācijai izvelēsimies – skatus, jo tie visvairāk noder, kad ir
nepieciešams attēlot datus lietotājam ērta formā. Skatu struktūru pārvaldībai servera modeļa
kartē ir jāizvēlas sadaļa „Advanced -> Views”. Uz skata priekš tabulas „Sastavs” piemēra
nodemonstrēsim skata izveidošanu priekš šīs tabulas. Skata vispārējā struktūra ir šāda (sk.
4.4.11. att.):
4.4.11. att. Skata vispārējā struktūra
a) Skata nosaukuma pārvaldība (sk. 4.4.12. att.):
Lapa 31 no 47
4.4.12. att. Skata nosaukuma pārvaldība
b) Skatā ietilpstošo tabulu pārvaldība (sk. 4.4.13. att.):
4.4.13. att. Skatā ietilpstošo tabulu pārvaldība
c) Skatā ietilpstošo tabulu lauku pārvaldība (sk. 4.4.14. att.):
Lapa 32 no 47
4.4.14. att. Skatā ietilpstošo tabulu lauku pārvaldība
d) Skatā SQL izteiksmes pārvaldība (sk. 4.4.15. att.):
4.4.15. att. Skatā SQL izteiksmes pārvaldība
e) Skatā attēlošanas pārvaldība
Skata attēlošanas pārvaldība ietver sevi izvadāmo lauku uzdošanu (sk. 4.4.16. att.) un lauku
satura izvades formatēšanu (sk. 4.4.17. att.).
Lapa 33 no 47
4.4.16. att. Skatā attēlošanas pārvaldība (1)
4.4.17. att. Skatā attēlošanas pārvaldība (2)
Visu izveidoto skatu saraksts izskatās šādi (sk. 4.4.5. tab.):
4.4.5. tabula. Izveidoto skatu saraksts
Nr. Skats Ietilpstošas tabulas
Ietilpstošas kolonas WHERE izteiksme
1 SKARDS_VIEW1 SKARDS S_KODSS_PARKLAJUMSS_KRASAS_KVALITATES_STATUSS
WHERE S_STATUSS = 1
2 IZSTRADAJUMI_VIEW1 IZSTRADAJUMI I_KODSI_NOSAUKUMSI_MATPATERINSI_LAIPATERINSI_STATUSS
WHERE I_STATUSS = 1
3 DARBINIEKI_VIEW1 DARBINIEKI D_NUMURSD_VARDS
WHERE D_STATUSS = 1
Lapa 34 no 47
D_UZVARDSD_PERSONASKODSD_NODALAD_AMATSD_STATUSS
4 KLIENTI_VIEW1 KLIENTI K_NUMURSK_NOSAUKUMSK_KODSK_ADRESEK_TELEFONSK_BANKAK_KONTSK_STATUSS
WHERE K_STATUSS = 1
Tabulas 4.4.5. turpinājums
Nr. Skats Ietilpstošas tabulas
Ietilpstošas kolonas WHERE izteiksme
5 PASUTIJUMI_VIEW1 PASUTIJUMIDARBINIEKI(1)DARBINIEKI(2)KLIENTI
P_NUMURSK_NOSAUKUMSD_VARDS(1)D_UZVARDS(1)D_VARDS(2)D_UZVARDS(2)P_PIENDATUMSP_IZPDATUMSP_IZSNDATUMSP_PAVADZIMEP_APMAKSA
WHERE (P_KLIENTS = K_NUMURS) AND (P_PARDEVEJS = D_NUMURS(1)) AND (P_SKARDNIEKS = D_NUMURS(2))
6 SASTAVS_VIEW1 SASTAVSIZSTRADAJUMI
A_PASUTIJUMSA_POZICIJAA_SKARDSI_NOSAUKUMSA_DAUDZUMSA_CENA
WHERE (A_IZSTRADAJUMS = I_KODS)
Lai pārliecinātos par to, ka visi iepriekš apskatītie objekti bija veiksmīgi izveidoti jau servera
modelī, ir jāapskatās servera modeļa tekošais saturs. Servera modeļa tabulu un skatu kopas izskatās
šāda veidā (sk. 4.2.18. att.):
Lapa 35 no 47
3.5. DB ģenerēšana
DB (fiziskā realizācija) ģenerēšana no servera modeļa (loģiskā struktūra) Designer rīkā notiek
automātiskā ceļā, noradot servera modeļa pārveidojamo objektu (mūsu gadījuma tas ir tikai tabulas
un skati) un izpildot komandu „Generate -> Generate Database from Server Model ...”.
Konfigurējot DB objektu ģenerēšanai no izvelētājiem servera modeļa objektiem, ekrānā tiks
paradīts šāds parametru uzdošanas logs (sk. 4.5.1. att.):
4.3.1. att. DB ģenerēšanas procesa konfigurēšanas logs
Lapa 36 no 47
4.2.18. att. Servera modelī izveidoto tabulu un skatu kopa
Lai pārliecinātos par to, ka DB objektu ģenerēšana bija veiksmīga un tika iegūtas attiecīgie datu
bāzes objekti (šajā gadījumā tabulas un skati) no servera modeļa attiecīgajiem objektiem, ar
komandas „Tools -> Database Navigator ...” izpildi ir jāpieslēdzas izveidotajai DB un jāapskatās
DB tekošo saturu.
Piem., datu bāzes visu izveidoto relāciju tabulu kopa izskatās šāda veidā (sk. 4.3.2. att.):
4.3.2. att. Datu bāzes relāciju tabulu kopa
Lapa 37 no 47
Datu bāzes visu izveidoto skatu kopa izskatās šāda veidā (sk. 4.3.3. att.):
4.3.3. att. Datu bāzes skatu kopa
Pielikumos 1, 2 un 3 ir dots uzģenerēto DDL datņu saturs - palaižot šīs datnes Oracle SQL*Plus
vidē tika uzģenerēti attiecīgi DB objekti.
Lapa 38 no 47
PIELIKUMI
1. pielikums
DB tabulu veidošanas DDL datne
-- C:\Documents and Settings\User\Desktop\Lab2\DatuBaze\TabulasDLL\Base02Tabulas.tab---- Generated for Oracle 9i on Fri Jan 06 16:01:54 2006 by Server Generator 9.0.2.80.4
PROMPT Creating Table 'SASTAVS'CREATE TABLE SASTAVS (A_PASUTIJUMS NUMBER(5) NOT NULL ,A_POZICIJA NUMBER(3) NOT NULL ,A_SKARDS VARCHAR2(6) NOT NULL ,A_IZSTRADAJUMS VARCHAR2(3) NOT NULL ,A_DAUDZUMS NUMBER(5,2) DEFAULT 1 NOT NULL ,A_CENA NUMBER(7,2) DEFAULT 1 NOT NULL )/
PROMPT Creating Table 'PASUTIJUMI'CREATE TABLE PASUTIJUMI (P_NUMURS NUMBER(5) NOT NULL ,P_KLIENTS NUMBER(3) NOT NULL ,P_PARDEVEJS NUMBER(3) NOT NULL ,P_SKARDNIEKS NUMBER(3) NOT NULL ,P_PIENDATUMS DATE NOT NULL ,P_IZPDATUMS DATE NOT NULL ,P_IZSNDATUMS DATE NOT NULL ,P_PAVADZIME VARCHAR2(7) NOT NULL ,P_APMAKSA VARCHAR(5) DEFAULT 'Banka' NOT NULL )/
PROMPT Creating Table 'SKARDS'CREATE TABLE SKARDS (S_KODS VARCHAR2(6) NOT NULL ,S_PARKLAJUMS VARCHAR2(3) NOT NULL ,S_KRASA VARCHAR2(30) NOT NULL ,S_KVALITATE VARCHAR2(6) DEFAULT 'Videja' NOT NULL ,S_STATUSS NUMBER(1) DEFAULT 1 NOT NULL )/
PROMPT Creating Table 'DARBINIEKI'CREATE TABLE DARBINIEKI (D_NUMURS NUMBER(3) NOT NULL ,D_VARDS VARCHAR2(30) NOT NULL ,D_UZVARDS VARCHAR2(50) NOT NULL ,D_PERSONASKODS NUMBER(11) NOT NULL ,D_NODALA VARCHAR2(50) DEFAULT 'Razosana' NOT NULL ,D_AMATS VARCHAR2(50) DEFAULT 'Skardnieks' NOT NULL ,D_STATUSS NUMBER(1) DEFAULT 1 NOT NULL
Lapa 39 no 47
)/
PROMPT Creating Table 'KLIENTI'CREATE TABLE KLIENTI (K_NUMURS NUMBER(3) NOT NULL ,K_NOSAUKUMS VARCHAR2(80) NOT NULL ,K_KODS VARCHAR2(16) NOT NULL ,K_ADRESE VARCHAR2(100) ,K_TELEFONS NUMBER(7) ,K_BANKA VARCHAR2(50) ,K_KONTS VARCHAR2(20) ,K_STATUSS NUMBER(1) DEFAULT 1 NOT NULL )/
PROMPT Creating Table 'IZSTRADAJUMI'CREATE TABLE IZSTRADAJUMI (I_KODS VARCHAR2(3) NOT NULL ,I_NOSAUKUMS VARCHAR2(50) NOT NULL ,I_MATPATERINS NUMBER(5,3) DEFAULT 1 NOT NULL ,I_LAIPATERINS NUMBER(4,2) DEFAULT 1 NOT NULL ,I_STATUSS NUMBER(1) DEFAULT 1 NOT NULL )/
Lapa 40 no 47
2. pielikums
DB tabulu papildelementu veidošanas DDL datne
-- C:\Documents and Settings\User\Desktop\Lab2\DatuBaze\TabulasDLL\Base02Tabulas.con---- Generated for Oracle 9i on Fri Jan 06 16:01:54 2006 by Server Generator 9.0.2.80.4 PROMPT Creating Primary Key on 'SASTAVS'ALTER TABLE SASTAVS ADD (CONSTRAINT SASTAVS_PK PRIMARY KEY (A_PASUTIJUMS ,A_POZICIJA))/
PROMPT Creating Primary Key on 'PASUTIJUMI'ALTER TABLE PASUTIJUMI ADD (CONSTRAINT PASUTIJUMS_PK PRIMARY KEY (P_NUMURS))/
PROMPT Creating Primary Key on 'SKARDS'ALTER TABLE SKARDS ADD (CONSTRAINT SKARDS_PK PRIMARY KEY (S_KODS))/
PROMPT Creating Primary Key on 'DARBINIEKI'ALTER TABLE DARBINIEKI ADD (CONSTRAINT DARBINIEKS_PK PRIMARY KEY (D_NUMURS))/
PROMPT Creating Primary Key on 'KLIENTI'ALTER TABLE KLIENTI ADD (CONSTRAINT KLIENTS_PK PRIMARY KEY (K_NUMURS))/
PROMPT Creating Primary Key on 'IZSTRADAJUMI'ALTER TABLE IZSTRADAJUMI ADD (CONSTRAINT DETALA_PK PRIMARY KEY (I_KODS))/
PROMPT Creating Check Constraint on 'SASTAVS'ALTER TABLE SASTAVS ADD (CONSTRAINT AVCON_1136556114_A_PAS_000 CHECK (A_PASUTIJUMS BETWEEN 1 AND 99999))/
PROMPT Creating Check Constraint on 'SASTAVS'ALTER TABLE SASTAVS ADD (CONSTRAINT AVCON_1136556114_A_POZ_000 CHECK (A_POZICIJA BETWEEN 1 AND 999))
Lapa 41 no 47
/
PROMPT Creating Check Constraint on 'SASTAVS'ALTER TABLE SASTAVS ADD (CONSTRAINT AVCON_1136556114_A_DAU_000 CHECK (A_DAUDZUMS BETWEEN 0.01 AND 99.99))/
PROMPT Creating Check Constraint on 'SASTAVS'ALTER TABLE SASTAVS ADD (CONSTRAINT AVCON_1136556114_A_CEN_000 CHECK (A_CENA BETWEEN 0.01 AND 9999.99))/ PROMPT Creating Check Constraint on 'PASUTIJUMI'ALTER TABLE PASUTIJUMI ADD (CONSTRAINT AVCON_1136556114_P_NUM_000 CHECK (P_NUMURS BETWEEN 1 AND 99999))/
PROMPT Creating Check Constraint on 'PASUTIJUMI'ALTER TABLE PASUTIJUMI ADD (CONSTRAINT AVCON_1136556114_P_KLI_000 CHECK (P_KLIENTS BETWEEN 1 AND 999))/
PROMPT Creating Check Constraint on 'PASUTIJUMI'ALTER TABLE PASUTIJUMI ADD (CONSTRAINT AVCON_1136556114_P_PAR_000 CHECK (P_PARDEVEJS BETWEEN 1 AND 999))/
PROMPT Creating Check Constraint on 'PASUTIJUMI'ALTER TABLE PASUTIJUMI ADD (CONSTRAINT AVCON_1136556114_P_SKA_000 CHECK (P_SKARDNIEKS BETWEEN 1 AND 999))/
PROMPT Creating Check Constraint on 'PASUTIJUMI'ALTER TABLE PASUTIJUMI ADD (CONSTRAINT AVCON_1136556114_P_APM_000 CHECK (P_APMAKSA IN ('Banka', 'Kase')))/ PROMPT Creating Check Constraint on 'SKARDS'ALTER TABLE SKARDS ADD (CONSTRAINT AVCON_1136556114_S_KVA_000 CHECK (S_KVALITATE IN ('Zema', 'Videja', 'Augsta')))/
PROMPT Creating Check Constraint on 'SKARDS'ALTER TABLE SKARDS ADD (CONSTRAINT AVCON_1136556114_S_STA_000 CHECK (S_STATUSS IN (0, 1)))/ PROMPT Creating Check Constraint on 'DARBINIEKI'ALTER TABLE DARBINIEKI ADD (CONSTRAINT AVCON_1136556114_D_NUM_000 CHECK (D_NUMURS BETWEEN 1 AND 999))/
PROMPT Creating Check Constraint on 'DARBINIEKI'ALTER TABLE DARBINIEKI ADD (CONSTRAINT AVCON_1136556114_D_PER_000 CHECK (D_PERSONASKODS BETWEEN 00000000000 AND 99999999999))/
PROMPT Creating Check Constraint on 'DARBINIEKI'ALTER TABLE DARBINIEKI
Lapa 42 no 47
ADD (CONSTRAINT AVCON_1136556114_D_NOD_000 CHECK (D_NODALA IN ('Ofiss', 'Razosana', 'Noliktava')))/
PROMPT Creating Check Constraint on 'DARBINIEKI'ALTER TABLE DARBINIEKI ADD (CONSTRAINT AVCON_1136556114_D_AMA_000 CHECK (D_AMATS IN ('Pardevejs', 'Skardnieks', 'Noliktavas darbinieks')))/
PROMPT Creating Check Constraint on 'DARBINIEKI'ALTER TABLE DARBINIEKI ADD (CONSTRAINT AVCON_1136556114_D_STA_000 CHECK (D_STATUSS IN (0, 1)))/ PROMPT Creating Check Constraint on 'KLIENTI'ALTER TABLE KLIENTI ADD (CONSTRAINT AVCON_1136556114_K_NUM_000 CHECK (K_NUMURS BETWEEN 1 AND 999))/
PROMPT Creating Check Constraint on 'KLIENTI'ALTER TABLE KLIENTI ADD (CONSTRAINT AVCON_1136556114_K_STA_000 CHECK (K_STATUSS IN (0, 1)))/ PROMPT Creating Check Constraint on 'IZSTRADAJUMI'ALTER TABLE IZSTRADAJUMI ADD (CONSTRAINT AVCON_1136556114_I_MAT_000 CHECK (I_MATPATERINS BETWEEN 0.001 AND 9.999))/
PROMPT Creating Check Constraint on 'IZSTRADAJUMI'ALTER TABLE IZSTRADAJUMI ADD (CONSTRAINT AVCON_1136556114_I_LAI_000 CHECK (I_LAIPATERINS BETWEEN 0.01 AND 9.99))/
PROMPT Creating Check Constraint on 'IZSTRADAJUMI'ALTER TABLE IZSTRADAJUMI ADD (CONSTRAINT AVCON_1136556114_I_STA_000 CHECK (I_STATUSS IN (0, 1)))/
PROMPT Creating Foreign Key on 'SASTAVS'ALTER TABLE SASTAVS ADD (CONSTRAINT SASTAVS_PASUTIJUMS_FK FOREIGN KEY (A_PASUTIJUMS) REFERENCES PASUTIJUMI (P_NUMURS))/
PROMPT Creating Foreign Key on 'SASTAVS'ALTER TABLE SASTAVS ADD (CONSTRAINT SASTAVS_DETALA_FK FOREIGN KEY (A_IZSTRADAJUMS) REFERENCES IZSTRADAJUMI (I_KODS))/
PROMPT Creating Foreign Key on 'SASTAVS'ALTER TABLE SASTAVS ADD (CONSTRAINT SASTAVS_SKARDS_FK FOREIGN KEY (A_SKARDS) REFERENCES SKARDS (S_KODS))
Lapa 43 no 47
/
PROMPT Creating Foreign Key on 'PASUTIJUMI'ALTER TABLE PASUTIJUMI ADD (CONSTRAINT PASUTIJUMS_DARBINIEKS_FK2 FOREIGN KEY (P_SKARDNIEKS) REFERENCES DARBINIEKI (D_NUMURS))/
PROMPT Creating Foreign Key on 'PASUTIJUMI'ALTER TABLE PASUTIJUMI ADD (CONSTRAINT PASUTIJUMS_KLIENTS_FK FOREIGN KEY (P_KLIENTS) REFERENCES KLIENTI (K_NUMURS))/
PROMPT Creating Foreign Key on 'PASUTIJUMI'ALTER TABLE PASUTIJUMI ADD (CONSTRAINT PASUTIJUMS_DARBINIEKS_FK1 FOREIGN KEY (P_PARDEVEJS ,P_SKARDNIEKS) REFERENCES DARBINIEKI (D_NUMURS ,D_STATUSS))/
Lapa 44 no 47
3. pielikums
DB skatu veidošanas DDL datne
-- C:\Documents and Settings\User\Desktop\Lab2\DatuBaze\SkatiDLL\Base02Skati.vw---- Generated for Oracle 9i on Fri Jan 06 15:53:44 2006 by Server Generator 9.0.2.80.4
PROMPT Creating View 'DARBINIEKI_VIEW1'CREATE OR REPLACE FORCE VIEW DARBINIEKI_VIEW1 (DARBINIEKS_D_NUMURS ,DARBINIEKS_D_VARDS ,DARBINIEKS_D_UZVARDS ,DARBINIEKS_D_PERSONASKODS ,DARBINIEKS_D_NODALA ,DARBINIEKS_D_AMATS ,DARBINIEKS_D_STATUSS) AS SELECT DARBINIEKS.D_NUMURS DARBINIEKS_D_NUMURS ,DARBINIEKS.D_VARDS DARBINIEKS_D_VARDS ,DARBINIEKS.D_UZVARDS DARBINIEKS_D_UZVARDS ,DARBINIEKS.D_PERSONASKODS DARBINIEKS_D_PERSONASKODS ,DARBINIEKS.D_NODALA DARBINIEKS_D_NODALA ,DARBINIEKS.D_AMATS DARBINIEKS_D_AMATS ,DARBINIEKS.D_STATUSS DARBINIEKS_D_STATUSSFROM DARBINIEKI DARBINIEKS where darbinieks.d_statuss = 1/
PROMPT Creating View 'SKARDS_VIEW1'CREATE OR REPLACE FORCE VIEW SKARDS_VIEW1 (SKARDS_S_KODS ,SKARDS_S_PARKLAJUMS ,SKARDS_S_KRASA ,SKARDS_S_KVALITATE ,SKARDS_S_STATUSS) AS SELECT SKARDS.S_KODS SKARDS_S_KODS ,SKARDS.S_PARKLAJUMS SKARDS_S_PARKLAJUMS ,SKARDS.S_KRASA SKARDS_S_KRASA ,SKARDS.S_KVALITATE SKARDS_S_KVALITATE ,SKARDS.S_STATUSS SKARDS_S_STATUSSFROM SKARDS SKARDS where skards.s_statuss = 1/
PROMPT Creating View 'KLIENTI_VIEW1'CREATE OR REPLACE FORCE VIEW KLIENTI_VIEW1 (KLIENTS_K_NUMURS ,KLIENTS_K_NOSAUKUMS ,KLIENTS_K_KODS ,KLIENTS_K_ADRESE ,KLIENTS_K_TELEFONS ,KLIENTS_K_BANKA ,KLIENTS_K_KONTS ,KLIENTS_K_STATUSS)
Lapa 45 no 47
AS SELECT KLIENTS.K_NUMURS KLIENTS_K_NUMURS ,KLIENTS.K_NOSAUKUMS KLIENTS_K_NOSAUKUMS ,KLIENTS.K_KODS KLIENTS_K_KODS ,KLIENTS.K_ADRESE KLIENTS_K_ADRESE ,KLIENTS.K_TELEFONS KLIENTS_K_TELEFONS ,KLIENTS.K_BANKA KLIENTS_K_BANKA ,KLIENTS.K_KONTS KLIENTS_K_KONTS ,KLIENTS.K_STATUSS KLIENTS_K_STATUSSFROM KLIENTI KLIENTS where klients.k_statuss = 1/
PROMPT Creating View 'SASTAVS_VIEW1'CREATE OR REPLACE FORCE VIEW SASTAVS_VIEW1 (SASTAVS_A_PASUTIJUMS ,SASTAVS_A_POZICIJA ,SASTAVS_A_SKARDS ,SASTAVS_A_IZSTRADAJUMS ,SASTAVS_A_DAUDZUMS ,SASTAVS_A_CENA ,DETALA_I_KODS ,DETALA_I_NOSAUKUMS) AS SELECT SASTAVS.A_PASUTIJUMS SASTAVS_A_PASUTIJUMS ,SASTAVS.A_POZICIJA SASTAVS_A_POZICIJA ,SASTAVS.A_SKARDS SASTAVS_A_SKARDS ,SASTAVS.A_IZSTRADAJUMS SASTAVS_A_IZSTRADAJUMS ,SASTAVS.A_DAUDZUMS SASTAVS_A_DAUDZUMS ,SASTAVS.A_CENA SASTAVS_A_CENA ,DETALA.I_KODS DETALA_I_KODS ,DETALA.I_NOSAUKUMS DETALA_I_NOSAUKUMSFROM SASTAVS SASTAVS ,IZSTRADAJUMI DETALA where sastavs.a_izstradajums = detala.i_kods/
PROMPT Creating View 'PASUTIJUMI_VIEW1'CREATE OR REPLACE FORCE VIEW PASUTIJUMI_VIEW1 (PASUTIJUMS_P_NUMURS ,PASUTIJUMS_P_KLIENTS ,PASUTIJUMS_P_PARDEVEJS ,PASUTIJUMS_P_SKARDNIEKS ,PASUTIJUMS_P_PIENDATUMS ,PASUTIJUMS_P_IZPDATUMS ,PASUTIJUMS_P_IZSNDATUMS ,PASUTIJUMS_P_PAVADZIME ,PASUTIJUMS_P_APMAKSA ,KLIENTS_K_NUMURS ,KLIENTS_K_NOSAUKUMS ,DARBINIEKS_D_NUMURS ,DARBINIEKS_D_VARDS ,DARBINIEKS_D_UZVARDS ,DARBINIEKS1_D_NUMURS ,DARBINIEKS1_D_VARDS ,DARBINIEKS1_D_UZVARDS) AS SELECT PASUTIJUMS.P_NUMURS PASUTIJUMS_P_NUMURS ,PASUTIJUMS.P_KLIENTS PASUTIJUMS_P_KLIENTS ,PASUTIJUMS.P_PARDEVEJS PASUTIJUMS_P_PARDEVEJS ,PASUTIJUMS.P_SKARDNIEKS PASUTIJUMS_P_SKARDNIEKS ,PASUTIJUMS.P_PIENDATUMS PASUTIJUMS_P_PIENDATUMS ,PASUTIJUMS.P_IZPDATUMS PASUTIJUMS_P_IZPDATUMS ,PASUTIJUMS.P_IZSNDATUMS PASUTIJUMS_P_IZSNDATUMS
Lapa 46 no 47
,PASUTIJUMS.P_PAVADZIME PASUTIJUMS_P_PAVADZIME ,PASUTIJUMS.P_APMAKSA PASUTIJUMS_P_APMAKSA ,KLIENTS.K_NUMURS KLIENTS_K_NUMURS ,KLIENTS.K_NOSAUKUMS KLIENTS_K_NOSAUKUMS ,DARBINIEKS.D_NUMURS DARBINIEKS_D_NUMURS ,DARBINIEKS.D_VARDS DARBINIEKS_D_VARDS ,DARBINIEKS.D_UZVARDS DARBINIEKS_D_UZVARDS ,DARBINIEKS1.D_NUMURS DARBINIEKS1_D_NUMURS ,DARBINIEKS1.D_VARDS DARBINIEKS1_D_VARDS ,DARBINIEKS1.D_UZVARDS DARBINIEKS1_D_UZVARDSFROM PASUTIJUMI PASUTIJUMS ,KLIENTI KLIENTS ,DARBINIEKI DARBINIEKS ,DARBINIEKI DARBINIEKS1 where (pasutijums.p_klients = klients.k_numurs) and (pasutijums.p_pardevejs = darbinieks.d_numurs) and (pasutijums.p_skardnieks = darbinieks1.d_numurs)/
PROMPT Creating View 'IZSTRADAJUMI_VIEW1'CREATE OR REPLACE FORCE VIEW IZSTRADAJUMI_VIEW1 (DETALA_I_KODS ,DETALA_I_NOSAUKUMS ,DETALA_I_MATPATERINS ,DETALA_I_LAIPATERINS ,DETALA_I_STATUSS) AS SELECT DETALA.I_KODS DETALA_I_KODS ,DETALA.I_NOSAUKUMS DETALA_I_NOSAUKUMS ,DETALA.I_MATPATERINS DETALA_I_MATPATERINS ,DETALA.I_LAIPATERINS DETALA_I_LAIPATERINS ,DETALA.I_STATUSS DETALA_I_STATUSSFROM IZSTRADAJUMI DETALA where detala.i_statuss = 1/
Lapa 47 no 47