Romans Lukašenko Skārda izstrādājumu ražošanas uzņēmuma datu konceptuālais modelis Rīga 2005.
Romans Lukašenko
Skārda izstrādājumu ražošanas uzņēmuma datu konceptuālais modelis
Rīga 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....................................................................82.1. Problēmsfēras apraksts...........................................................................................................8
2.2. DFD diagramma.......................................................................................................................9
2.3. ER diagramma.......................................................................................................................13
3. TABULU SĀKOTNĒJĀ STRUKTŪRA..................................................................17
4. TABULU STRUKTŪRAS PĀRBAUDE..................................................................214.1. Insert, Update, Delete anomāliju pārbaude........................................................................21
4.2. BKN pārbaude.......................................................................................................................24
4.2.1. 1NF pārbaude...............................................................................................................24
4.2.2. 2NF pārbaude...............................................................................................................27
4.2.3. 3NF pārbaude...............................................................................................................28
4.3. Datu dublēšanas pārbaude....................................................................................................29
4.4. Datu funkcionālo atkarību pārbaude..................................................................................30
SECINĀJUMI.................................................................................................................33
LITERATŪRA................................................................................................................34
Lapa 2 no 29
Datu izgūšanaDatu glabāšana Lietojums
PV modelis(DFD diagrammas)
Datu modelis(ER diagrammas)
RDB
Struktūras pārbaude(BKN pārbaude)
1. UZDEVUMA NOSTADNE
Darbs ir virzīts uz datu glabāšanas organizēšanu (sk. 1.2.1. att.). Jāatceras, ka projektējot datu
glabāšanas struktūru nav jādomā par datu izgūšanu ērtumu, jo datu glabāšana pirmkārt ir
domāta datoram, līdz ar to jāizveido tāda struktūra, kas būtu optimāla no skaitļotāja
viedokļa.
1.2.1. att. Darba mērķis
Darbs ir organizēts pēc šādas shēmas (sk. 1.2.2. att.):
1.2.2. att. Darba izpildes plāns
Lapa 3 no 29
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 izgatavošana
Atzīme par pieņemšanu
Atzīme par izpildi
Atzīme par izsniegšanu
Pārdevējs
Skārdnieks
Noliktavas pārzinis
2. PRIEKŠMETISKAS VIDES MODELIS
2.1. Problēmsfēras apraksts
Darba 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.1. att.):
2.1.1. att. Skārda izstrādājumu ražošanas uzņēmuma darba process
Lapa 4 no 29
2.2. DFD diagramma
Priekšmetiskas vides struktūru un tajā notikušus procesus var attēlot šādas DFD diagrammas veidā
(sk. 2.2.1. att.):
2.2.1. att. Priekšmetiskas vides DFD modelis
Kā redzams no diagrammas, priekšmetiskajā vidē izšķir trīs ārējas realitātes: pārdevējs, skārdnieks
un noliktavas pārzinis. Tas ir personas, kas darbojas ar uzņēmums pasūtījumu uzskaites sistēmu.
Priekšmetiskas vides datu glabāšanai ir nepieciešamas vismaz 6 datu krātuves (sk. 2.2.2. att.):
Lapa 5 no 29
Darbinieki Klienti
Materiāli Produkcija
Pasūtījumi Rēķini
DATU BĀZE
2.2.2. 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.
6. Rēķini – datu krātuve, kas satur datus par visiem uz pasūtījumiem izrakstītiem rēķiniem
(pavadzīmēm) šo pasūtījumu apmaksai.
Apskatāmajā sistēmā identificētas 8 datu plūsmas un datu izgūšanai tika realizēti 5 vaicājumi (sk.
2.2.1. tab.):
2.2.1. tabula. Sistēmas datu plūsmu kopa
Datu struktūra Datu vienības D1 Reģistrācijas dati par skārda veidiem - Kods
- Krāsa - Pārklājums - Kvalitāte - Statuss
Turpinājums 2.2.1. tabulai. Sistēmas datu plūsmu kopa
Datu struktūra Datu vienības D2 Reģistrācijas dati par izgatavojamiem skārda - Kods
Lapa 6 no 29
DFD diagramma
Dati
detaļu veidiem - Nosaukums- Pielietošanas sfēra- Materiāla patēriņš uz metru- Laika patēriņš un metru- Statuss
D3 Reģistrācijas dati par strādniekiem, kas piedalās pasūtījuma izgatavošana
- Personas kods - Uzvārds un vārds- Nodaļa- Amats- Statuss
D4 Reģistrācijas dati par klientiem - Kods/reģistrācijas numurs- Uzvārds un Vārds/Nosaukums- Adrese- Telefons- Banka
D5 Dati par pieņemto klienta pasūtījumu skārda izstrādājumu ražošanai
- Numurs- Klienta uzvārds un vārds/nosaukums- Skārda kodi [n] - Skārda detaļu kodi [n] - Detaļu daudzums [n] - Darbinieku uzvārdi un vārdi [n] - Pasūtījuma pieņemšanas datums- Pasūtījuma plānotais izpildes datums
D6 Dati par izrakstīto rēķinu izgatavota pasūtījumu apmaksai
- Numurs- Pasūtījuma numurs - Klienta uzvārds un vārds/nosaukums- Skārda kodi [n] - Skārda detaļu kodi [n] - Detaļu daudzums [n] - Detaļu cenas [n] - Kasiera uzvārds un vārds- Rēķina apmaksas veids- Rēķina izrakstīšanas datums
D7 Dati par saražoto klienta pasūtījumu - Pasūtījuma reālais izpildes datumsD8 Dati par izsniegto klienta pasūtījumu - Pasūtījuma izsniegšanas datumsV1 Vaicājums klienta datu izgūšanai - Neprecīzs uzvārds un vārds/nosaukumsA1 Atbilde uz pieprasīto informāciju par klientu - Precīzs uzvārds un vārds/nosaukumsV2 Vaicājums noteiktā skārda veida meklēšanai - Neprecīzs skārda kodsA2 Atbilde uz pieprasīto informāciju par skārda
veidu- Precīzs skārda kods
V3 Vaicājums noteiktā skārda izstrādājuma meklēšanai
- Neprecīzs skārda izstrādājuma kods
A3 Atbilde uz pieprasīto informāciju par skārda veidu
- Precīzs skārda izstrādājuma kods
Turpinājums 2.2.1. tabulai. Sistēmas datu plūsmu kopa
Datu struktūra Datu vienības V4 Vaicājums darbinieka datu izgūšanai - Neprecīzs uzvārds un vārdsA4 Atbilde uz pieprasīto informāciju par darbinieku - Precīzs uzvārds un vārds V5 Vaicājums noteiktā pasūtījuma meklēšanai - Pasūtījuma numursA5 Atbilde uz pieprasīto informāciju par pasūtījumu - Pasūtījuma numurs
- Klienta uzvārds un vārds/nosaukums- Pasūtījuma pieņemšanas datums- Pasūtījuma izgatavošanas datums
Protams, ne visi dati, kas ir attēloti DFD diagramma ir būtiski sistēmas funkcionēšana, tāpēc ir
jāveic datu atlasi jeb šķirošanu (sk. 2.2.3. att.):
Lapa 7 no 29
2.2.3. att. Datu atlases process
Pēc priekšmetiskās vides datu analīzes tika atlasīti šādi sistēmas būtiskie dati (sk. 2.2.2. tab.):
2.2.2. tabula. Sistēmas būtiskie dati
Dati Paskaidrojumsd1 Skārda kodsd2 Skārda krāsad3 Skārda pārklājumsd4 Skārda kvalitātes līmenis d5 Skārda izmantojamības statussd6 Skārda izstrādājuma kodsd7 Skārda izstrādājuma nosaukumsd8 Skārda izstrādājuma pielietošanas sfērad9 Skārda izstrādājuma izgatavošanas materiāla patēriņšd10 Skārda izstrādājuma izgatavošanas laika patēriņšd11 Skārda izstrādājuma piedāvājuma statuss
Turpinājums 2.2.2. tabulai. Sistēmas būtiskie dati
Dati Paskaidrojumsd12 Darbinieka personas kods d13 Darbinieka uzvārds un vārdsd14 Darbinieka amatad15 Darbinieka darba nodaļa d16 Darbinieka darba statussd17 Klienta personas kods vai reģistrācijas numursd18 Klienta uzvārds un vārds vai firmas nosaukums d19 Klienta adresed20 Klienta telefons d21 Klienta bankas rekvizītid22 Pasūtījuma numurs d23 Pasūtījuma skārda izstrādājumu daudzumsd24 Pasūtījuma skārda izstrādājumu cenasd25 Pasūtījuma pieņemšanas datumsd26 Pasūtījuma plānotais izpildes datumsd27 Rēķina numursd28 Rēķina apmaksas veidsd29 Rēķina izrakstīšanas datumsd30 Pasūtījuma reālais izpildes datums d31 Pasūtījuma izsniegšanas datums
Lapa 8 no 29
2.3. ER diagramma
Izejot no sistēmas uzbūvētas DFD diagrammas īpatnībām (sk. 2.2.1. att.) un ņemot vērā sistēmas
datu plūsmu struktūras (sk. 2.2.1. tab.), analizējama priekšmetiskajā vidē ir iespējams izdalīt šādas
svarīgākās realitātes (sk. 2.3.1. tab.):
2.3.1. tabula. Sistēmas galvenās realitātes
Realitāte Realitātes atribūtiDarbinieks - Personas kods
- Uzvārds un vārds- Ieņemamais amats- Darba nodaļa - Darba statuss
Klients - Personas kods vai reģistrācijas numurs- Uzvārds un vārds vai firmas nosaukums - Adrese- Telefons - Bankas rekvizīti
Turpinājums 2.3.1. tabulai. Sistēmas galvenās realitātes
Realitāte Realitātes atribūtiSkārds - Kods
- Krāsa- Pārklājums- Kvalitātes līmenis - Izmantojamības statuss
Skārda izstrādājums - Kods- Nosaukums- Pielietošanas sfēra- Izgatavošanas materiāla patēriņš- Izgatavošanas laika patēriņš- Piedāvājuma statuss
Pasūtījums - Numurs - Klienta uzvārds un vārds vai firmas nosaukums- Pārdēvēja uzvārds un vārds- Skārdu kodi- Skārda izstrādājumu kodi- Skārda izstrādājumu daudzums- Skārdnieka uzvārds un vārds- Pieņemšanas datums- Plānotais izpildes datums- Reālais izpildes datums- Izsniegšanas datums
Rēķins - Numurs- Klienta uzvārds un vārds vai firmas nosaukums- Skārdu kodi- Skārda izstrādājumu kodi- Skārda izstrādājumu daudzums- Skārda izstrādājumu cenas
Lapa 9 no 29
- Pārdevēja uzvārds un vārds- Apmaksas veids- Izrakstīšanas datums
Priekšmetiskas vides galvenās realitātes un to savstarpējas saites var attēlot šādas ER diagrammas
veidā (sk. 2.3.1. att.):
Lapa 10 no 29
2.3.1. att. Priekšmetiskas vides ER modelis
Ka redzams no attēla problēmu vides ER diagrammā pastāv šāda veida saites (sk. 2.3.2. tab.):
2.3.2. tabula. Sistēmas realitāšu saišu kopa
Saistītas realitātes Sasaiste AprakstsL1 R2 1:N Viens pārdevējs darbojas ar vairākiem klientiem, savu kārt, konkrētais klients
var sadarboties tikai ar vienu pārdevēju. R2 R5 1:N Viens klients var pasūtīt vairākus pasūtījumus, savu kārt, konkrēto pasūtījumu
var pasūtīt tikai viens klients. L1 R5 1:N Viens pārdevējs noformē vairākus pasūtījumus, savu kārt, konkrēto
pasūtījumu var noformēt tikai viens pārdevējs. L2 R5 1:N Viens skārdnieks izpilda vairākus pasūtījumus, savu kārt, konkrēto
pasūtījumu var izpildīt tikai viens skārdnieks. L3 R5 1:N Viens noliktavas pārzinis izsniedz vairākus pasūtījumus, savu kārt, konkrēto
pasūtījumu var izsniegt tikai viens noliktavas pārzinis.
Turpinājums 2.3.2. tabulai. Sistēmas realitāšu saišu kopa
Saistītas realitātes Sasaiste AprakstsR5 R6 1:1 Vienam pasūtījumam tika piekārtots viens rēķins, savu kārt, vienam rēķinam
Lapa 11 no 29
atbilst tikai viens pasūtījums. R5 R4 N:M Viens pasūtījums sastāv no vairākiem skārda izstrādājumiem, savu kārt, viens
skārda izstrādājuma veids var ietilpst vairākos pasūtījumos.R3 R4 1:N Vienu skārda veidu izmanto vairāku skārda izstrādājumu ražošanai, savu kārt,
viens skārda izstrādājums var būt izgatavots no viena skārda veida.
Lapa 12 no 29
Realitāte Tabula
Atribūts Lauks
Saite 1:1
Tabula 1
Saite N:M
Tabula 2
Saite 1:N
Tabula 1
Tabula 2
Tabula 1
Tabula 2
Tabula 3
3. TABULU SĀKOTNĒJĀ STRUKTŪRA
Ņemot vērā iepriekš uzbūvēto problēmu vides realitātes modeli, var izveidot topošas datu bāzes
tabulu sākotnējas struktūras. Parēja uz tabulu sākotnējo struktūru notiek, ievērojot dažus pārejas
likumus:
1) ER modeļa realitāte pārvēršas par tabulu
2) ER modeļa realitātes atribūts pārvēršas par tabulas lauku
3) ER modeļa realitāšu saite 1 : 1 realizācijai ir nepieciešama 2 tabulas, saites saite 1 : N
realizācijai arī ir nepieciešama 2 tabulas, bet saite N : M realizācijai ir nepieciešama 3 tabulas.
Ievērojot šos pārejas likumus, skārda izstrādājumu ražošanas problēmu vides tabulu sākotnējā
struktūra izskatās šāda veidā:
1) Tabula Darbinieki
a) Tabulas nozīme
Tabulā tiek glabāta informācija par uzņēmumā strādājošiem darbiniekiem.
Lapa 13 no 29
b) Tabulas struktūra
Atribūts Datu tips PaskaidrojumsPersonas kods String Darbinieka personas kodsUzvards String Darbinieka uzvārdsVards 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ācija 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 rekviziti String Klienta bankas rekvizīti
3) Tabula Skards
a) Tabulas nozīme
Tabulā tiek glabāta informācija 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ācija 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 nosaukums
Lapa 14 no 29
Pielietosana String Izstrādājuma pielietošanas sfēraMateriala 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
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 numursDarbinieka 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 datumsPlanotais izpildes datums Date Pasūtījuma plānotais izpildes un izsniegšanas datumsRealais izpildes datums Date Pasūtījuma reālais 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
7) Tabula Rekini
a) Tabulas nozīme
Tabulā tiek glabāta informāciju par uz pasūtījumu izdrukātājiem rēķiniem.
b) Tabulas struktūra
Atribūts Datu tips PaskaidrojumsRekina Numurs Integer Rēķina numursPasutijuma Numurs Integer Pasūtījuma numursDarbinieka personas kods („pardevejs”)
String Pārdēvēja (kas izdrukāja rēķinu) personas kods
Apmaksas veids Boolean Rēķina apmaksas veidsIzrakstisanas datums Date Rēķina izrakstīšanas datums
Visu tabulu savstarpējas saites ar attēlot ar šādas diagrammas palīdzību (sk. 3.1. att.):
Lapa 15 no 29
3.1. att. Sistēmas tabulu savstarpējas saites
Lapa 16 no 29
Pārbaudīta DB
BKN pārbaude
Insert, Update, Deleteanomāliju pārbaude
Nepārbaudīta DB
Datu dublēšanas pārbaude
Datu funkcionālo atkarību pārbaude
4. TABULU STRUKTŪRAS PĀRBAUDE
Pēc sistēmas tabulu sākotnējas struktūras izveidošanas ir nepieciešams veikt tabulu struktūras
pārbaudi. Pārbaudes process ietver sevi šādu procedūru izpildi (sk. 4.1. att.):
4.1. att. Tabulu struktūru pārbaudes procesa pamatsoļi
4.1. Insert, Update, Delete anomāliju pārbaude
Insert, Update un Delete anomālijas galvenokārt ir saistītas ar to, ka nav iespējams veikt jaunu
datu pievienošanu vai eksistējošo datu izmaiņu vai dzēšanu datu integritātes zuduma dēļ. Līdz ar
to uzprojektējot tabulu struktūras ir jāpārbauda, vai izpildot Insert, Update vai Delete komandas ir
iespējami datu integritātes zudums vai kādi citi konflikti tabulas ietvaros.
1) Tabula Darbinieki
a) Problēma
Tabulas atslēglauks ir lauks „Personas kods”, bet šī lauka vērtības diviem dažādiem
cilvēkiem var būt vienādas (piem., cilvēki no dažādām valstīm). Līdz ar to tabulā var notikt
ierakstu Insert un Update problēmas.
b) Risinājums
Lai izvairītos no Insert un Update problēmām, tabulai jāpievieno vēl viens lauks
„Darbinieka ID”, kura vērtības ir unikālas un kurš arī būs par tabulas jauno atslēglauku.
Atribūts Datu tips Paskaidrojums
Lapa 17 no 29
Darbinieka ID Integer Darbinieka identifikatorsPersonas kods String Darbinieka personas kodsUzvards String Darbinieka uzvārdsVards String Darbinieka vārdsAmats String Darbinieka ieņemamais amatsNodala String Nodaļa, kur strādā darbinieksStatuss Boolean Darbinieka darba statuss
2) Tabula Klienti
a) Problēma
Tabulas atslēglauks ir lauks „Kods/Numurs”, bet šī lauka vērtības divām dažādām personām
(fiziskām vai juridiskām) var būt vienādas (piem., personas no dažādām valstīm). Līdz ar to
tabulā var notikt ierakstu Insert un Update problēmas.
b) Risinājums
Lai izvairītos no Insert un Update problēmām, tabulai jāpievieno vēl viens lauks „Klienta
ID”, kura vērtības ir unikālas un kurš arī būs par tabulas jauno atslēglauku.
Atribūts Datu tips PaskaidrojumsKlienta ID Integer Klienta identifikatorsKods / 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 rekviziti String Klienta bankas rekvizīti
3) Tabula Skards
a) Problēma
Tabulas struktūrā nav novērojamas kādas potenciālas Insert, Update vai Delete problēmas.
b) Risinājums
Tā kā tabulā nav Insert, Update vai Delete anomāliju, tad tabulas struktūru nav jāmaina.
4) Tabula Izstradajumi
a) Problēma
Tabulas struktūrā nav novērojamas kādas potenciālas Insert, Update vai Delete problēmas.
b) Risinājums
Tā kā tabulā nav Insert, Update vai Delete anomāliju, tad tabulas struktūru nav jāmaina.
5) Tabula Pasutijumi
a) Problēma
Lapa 18 no 29
Tabula ir saistīta ar tabulu Darbiniekiem caur lauku „Personas kods” un ar tabulu Klienti
caur lauku „Kods/Numurs”, bet šiem laukiem bija konstatētas Insert un Update
problēmas, kuras arī paradās tabulā Pasutijumi.
b) Risinājums
Lai izvairītos no Insert un Update problēmām, tabulas Pasutijumi sasaisti ar tabulu
Darbinieki jāveic caur lauku „Darbinieka ID”, bet sasaisti ar tabulu Klienti jāveic caur lauku
„Klienta ID”, kuriem nebija konstatētas Insert un Update anomālijas.
Atribūts Datu tips PaskaidrojumsPasutijuma Numurs Integer Pasūtījuma numursKlienta ID String Klienta (kas izdarīja pasūtījumu) personas kods vai
firmas reģistrācijas numursDarbinieka ID („pardevejs”) String Pārdēvēja (kas pieņēma pasūtījuma) personas kodsDarbinieka ID („skardnieks”) String Skārdnieka (kas izgatavoja pasūtījumu) personas kodsPienemsanas datums Date Pasūtījuma pieņemšanas datumsPlanotais izpildes datums Date Pasūtījuma plānotais izpildes un izsniegšanas datumsRealais izpildes datums Date Pasūtījuma reālais izpildes datumsIzsniegsanas datums Date Pasūtījuma reālais izsniegšanas datums
6) Tabula Pasutijumi_Izstradajumi
a) Problēma
Tabula ir saistīta ar tabulu Izstradajumi caur lauku „Izstradajuma nosaukums”, bet šī lauka
vērtības nav unikālas (un šis lauks ietilpst saliktajā atslēgā). Līdz ar to tabulā var notikt
ierakstu Insert un Update problēmas.
b) Risinājums
Lai izvairītos no Insert un Update problēmām, tabulas sasaisti ar tabulu Izstradajumi jāveic
caur lauku „Izstradajuma Kods”, kura vērtības ir unikālas.
Atribūts Datu tips PaskaidrojumsPasutijuma Numurs Integer Pasūtījuma numursSkarda Kods Integer Skārda kodsIzstradajuma kods String Izstrādājuma nosaukumsIzstradajumu daudzums Integer Izstrādājumu daudzumsIzstradajuma cena Real Viena izstrādājuma cena
7) Tabula Rekini
a) Problēma
Tabula ir saistīta ar tabulu Darbiniekiem caur lauku „Personas kods”, bet šim laukam bija
konstatēta Insert un Update problēmas, kuras arī paradās tabulā Rekini.
b) Risinājums
Lai izvairītos no Insert un Update problēmām, tabulas sasaisti ar tabulu Darbinieki jāveic
caur lauku „Darbinieku ID”, kuram nebija konstatētas Insert un Update anomālijas.
Lapa 19 no 29
Atribūts Datu tips PaskaidrojumsRekina Numurs Integer Rēķina numursPasutijuma Numurs Integer Pasūtījuma numursDarbinieka ID („pardevejs”) String Pārdēvēja (kas izdrukāja rēķinu) personas kodsApmaksas veids Boolean Rēķina apmaksas veidsIzrakstisanas datums Date Rēķina izrakstīšanas datums
4.2. BKN pārbaude
Normālformu pārbaude galvenokārt ir saistītas ar datu veseluma pārbaudi un datu pareizas
attēlošanas pārbaudi.
4.2.1. 1NF pārbaude
Datu strukturēšanas 1NF nosaka, ka:
- visiem domēniem ir jāsatur atomāras (jeb nedalāmas) vērtības.
1) Tabula Darbinieki
a) Problēma
Tabulas katrs lauks satur atomāras (nedalāmas) vērtības.
b) Risinājums
Tā kā tabulā visi lauku satur nedalāmas vērtības, tad tabulas struktūru nav jāmaina.
2) Tabula Klienti
a) Problēma
Tabulas lauki „UzvardsVards/Nosaukums”, „Adrese” un „Bankas rekvizīti” nesatur
atomāras vērtības, jo tie ir saliktie lauki.
b) Risinājums
Lai nodrošinātu tas, ka katra laukā glabājas nedalāmas vērtības, tabulas saliktus laukus ir
jāsadala šāda veidā:
- salikta lauka „UzvardsVards/Nosaukums” vietā paradās vienkāršie lauki „Personas
uzvards”, „Personas vards” un „Firmas nosaukums”;
- salikta lauka „Adrese” vietā paradās vienkāršie lauki „Pilseta” un „Iela”;
- salikta lauka „Bankas rekvizīti” vietā paradās vienkāršie lauki „Banaks nosaukums”un
„Bankas konts”.
Atribūts Datu tips PaskaidrojumsKlienta ID Integer Klienta identifikatorsKods / Numurs String Klienta personas kods vai firmas reģistrācijas numursPersonas uzvards String Klienta uzvārds
Lapa 20 no 29
Personas vards String Klienta vārdsFirmas nosaukums String Firmas nosaukumsPilseta String Klienta atrašanas pilsētaIela String Klienta atrašanas ielaTelefons String Klienta kontakttelefonsBankas nosaukums String Klienta bankas nosaukumsBankas konts String Klienta bankas konts
3) Tabula Skards
a) Problēma
Tabulas katrs lauks satur atomāras (nedalāmas) vērtības.
b) Risinājums
Tā kā tabulā visi lauku satur nedalāmas vērtības, tad tabulas struktūru nav jāmaina.
4) Tabula Izstradajumi
a) Problēma
Tabulas katrs lauks satur atomāras (nedalāmas) vērtības.
b) Risinājums
Tā kā tabulā visi lauku satur nedalāmas vērtības, tad tabulas struktūru nav jāmaina.
5) Tabula Pasutijumi
a) Problēma
Tabulas lauki „Pienemsanas datums”, „Planotais izpildes laiks”, „Realais izpildes laiks” un
„Izsniegsanas datums” nesatur atomāras vērtības, jo tie ir saliktie lauki.
b) Risinājums
Lai nodrošinātu tas, ka katra laukā glabājas nedalāmas vērtības, tabulas saliktus laukus ir
jāsadala šāda veidā:
- salikta lauka „Pienemsanas datums” vietā paradās vienkāršie lauki „Pienemsanas
datums” un „Pienemsanas laiks”;
- salikta lauka „Planotais izpildes datums” vietā paradās vienkāršie lauki „Planotais
izpildes datums” un „Planotais izpildes laiks”;
- salikta lauka „Realais izpildes datums” vietā paradās vienkāršie lauki „Realais izpildes
datums” un „Realais izpildes laiks”;
- salikta lauka „Izsniegsanas datums” vietā paradās vienkāršie lauki „Izsniegsanas
datums” un „Izsniegsanas laiks”.
Atribūts Datu tips Paskaidrojums
Lapa 21 no 29
Pasutijuma Numurs Integer Pasūtījuma numursKlienta ID String Klienta (kas izdarīja pasūtījumu) personas kods vai
firmas reģistrācijas numursDarbinieka ID („pardevejs”) String Pārdēvēja (kas pieņēma pasūtījuma) personas kodsDarbinieka ID („skardnieks”) String Skārdnieka (kas izgatavoja pasūtījumu) personas kodsPienemsanas datums Date Pasūtījuma pieņemšanas datumsPienemsanas laiks Time Pasūtījuma pieņemšanas laiksPlanotais izpildes datums Date Pasūtījuma plānotais izpildes un izsniegšanas datumsPlanotais izpildes laiks Time Pasūtījuma plānotais izpildes un izsniegšanas laiksRealais izpildes datums Date Pasūtījuma reālais izpildes datumsRealais izpildes laiks Time Pasūtījuma reālais izpildes laiksIzsniegsanas datums Date Pasūtījuma reālais izsniegšanas datumsIzsniegsanas laiks Time Pasūtījuma reālais izsniegšanas laiks
6) Tabula Pasutijumi_Izstradajumi
a) Problēma
Tabulas katrs lauks satur atomāras (nedalāmas) vērtības.
b) Risinājums
Tā kā tabulā visi lauku satur nedalāmas vērtības, tad tabulas struktūru nav jāmaina.
7) Tabula Rekini
a) Problēma
Tabulas lauks „Izrakstisanas datums”nesatur atomāras vērtības, jo tie ir saliktie lauki.
b) Risinājums
Lai nodrošinātu tas, ka katra laukā glabājas nedalāmas vērtības, tabulas salikto lauku ir
jāsadala šāda veidā:
- saliktā lauka „Izrakstisanas datums” vietā paradās vienkāršie lauki „Izrakstisanas
datums” un „Izrakstisanas laiks”.
Atribūts Datu tips PaskaidrojumsRekina Numurs Integer Rēķina numursPasutijuma Numurs Integer Pasūtījuma numursDarbinieka ID („pardevejs”) String Pārdēvēja (kas izdrukāja rēķinu) pers. kodsApmaksas veids Boolean Rēķina apmaksas veidsIzrakstisanas datums Date Rēķina izrakstīšanas datumsIzrakstisanas laiks Time Rēķina izrakstīšanas laiks
4.2.2. 2NF pārbaude
Datu strukturēšanas 2NF nosaka, ka:
Lapa 22 no 29
- katrs ne primārās atslēgas lauks funkcionāli pilni ir atkarīgs no primārās atslēgas, t.i. visi lauki
tiek identificēti pēc viena primārās atslēgas lauka, kas var sastāvēt no viena vai vairākiem
laukiem.
No tabulu sākotnējas struktūras (sk. 3.1. att.) ir redzams, ka tabulām ir primārās atslēgas, izņemot
tabulu Pasutijumi_Izstradajumi, kurai ir primāra atslēga nav nodefinēta.
1) Tabula Pasutijumi_Izstradajumi
a) Problēma
Tabulai nav nodefinēta primāra atslēga, tāpēc tabulas ieraksti nav unikāli identificējami.
b) Risinājums
Lai tabulas ieraksti būtu unikāli identificējami, tabulai jānodefinē primārā atslēga.
Atribūts Datu tips PaskaidrojumsVienibas ID Integer Pirkuma vienības identifikatorsPasutijuma Numurs Integer Pasūtījuma numursSkarda Kods Integer Skārda kodsIzstradajuma kods String Izstrādājuma nosaukumsIzstradajumu daudzums Integer Izstrādājumu daudzumsIzstradajuma cena Real Viena izstrādājuma cena
4.2.3. 3NF pārbaude
Datu strukturēšanas 3NF nosaka, ka:
- katrs ne primārās atslēgas lauks netransitīvi ir atkarīgs no primāras atslēgas.
1) Tabula Darbinieki
a) Problēma
Tabula satur vairākus determinantus - „Darbinieka ID”, „Personas kods” un „Uzvards +
Vards”.
b) Risinājums
Visi tabulas determinanti var būt par tabulas primārajām atslēgām, līdz ar to tabulas
struktūra nav jāmaina.
2) Tabula Klienti
a) Problēma
Tabula satur vairākus determinantus - „Darbinieka ID”, „Kods / Numus”, „Uzvards + Vards
+ Firmas Nosaukums” un „Bankas nosaukums + Bankas konts”.
b) Risinājums
Lapa 23 no 29
Visi tabulas determinanti var būt par tabulas primārajām atslēgām, izņemot determinanti
„Bankas nosaukums + Bankas konts”, jo var gadīties, ka klientam vispār nav bankas
rekvizītu. Bet, principā, lielas jēgas atsevišķi izdalīt Klienta datus un Bankas datus, jo
Bankas dati bez klienta datiem nekur netiek izmantoti. Tāpēc tabulas struktūra var palikt bez
izmaiņām.
3) Tabula Skards
a) Problēma
Tabula satur vairākus determinantus - „Skarda Kods” un „Krasa + Parklajums”.
b) Risinājums
Visi tabulas determinanti var būt par tabulas primārajām atslēgām, līdz ar to tabulas
struktūra nav jāmaina.
4) Tabula Izstradajumi
a) Problēma
Tabula satur vairākus determinantus - „Izstradajuma Kods” un „Nosaukums”.
b) Risinājums
Visi tabulas determinanti var būt par tabulas primārajām atslēgām, līdz ar to tabulas
struktūra nav jāmaina.
5) Tabula Pasutijumi
a) Problēma
Tabula satur vairākus determinantus - „Pasutijuma numurs” un „Klienta ID + Pienemsanas
datums + Pienemsanas laiks”.
b) Risinājums
Visi tabulas determinanti var būt par tabulas primārajām atslēgām, līdz ar to tabulas
struktūra nav jāmaina.
6) Tabula Pasutijumi_Izstradajumi
a) Problēma
Tabula satur vairākus determinantus - „Vienibas ID” un „Pasutijuma Numurs + Skarda
Kods + Izstradajuma Kods”.
b) Risinājums
Visi tabulas determinanti var būt par tabulas primārajām atslēgām, līdz ar to tabulas
struktūra nav jāmaina.
Lapa 24 no 29
7) Tabula Rekini
a) Problēma
Tabula satur vairākus determinantus - „Rekina numurs” un „Pasutijuma numurs”.
b) Risinājums
Visi tabulas determinanti var būt par tabulas primārajām atslēgām, līdz ar to tabulas
struktūra nav jāmaina.
4.3. Datu dublēšanas pārbaude
Datu dublēšanas pārbaude ir saistītas ar vienas datu vienības vairāku eksemplāru identificēšanu.
Ir skaidrs, ka datu dublēšanas pārbaude ir virzīta uz datu nepretrunīguma nodrošināšanu. Datu
dublēšanas pārbaudi ir jāveic tādēļ, lai izvairītos no gadījumiem, kad izmainot datus, tiks izmainīta
tikai puse no šo datu kopijām, bet cita puse paliek neizmainīta.
Izpētot tabulu sākotnējo struktūru 3.1. attēlā, var redzēt, ka tabulas jau no paša sakuma tika
izveidotas tā, ka nevienā no tabulām nav datu dublēšanas, un tāpēc tabulas struktūra nav jāizmaina.
4.4. Datu funkcionālo atkarību pārbaude
Datu funkcionālās atkarības pārbaude ir saistītas ar iepriekš uzprojektēto tabulu sastāvu
pārbaudi. Datu funkcionālās atkarības pārbaude ir vienkārši alternatīvais variants tabulu struktūru
pareizības pārbaudei.
Lai varētu ērtāk veidot datu funkcionālo atkarību diagrammas ieviesīsim sistēmas datu vienību
attiecīgos saīsinājumus (sk. 4.4.1. tab.):
4.4.1. tabula. Sistēmas datu vienību apzīmējumi
Apzīmējums DatiD_ID Darbinieka IDD_KOD Personas kodsD_UZV UzvardsD_VAR VardsD_AMA Amats D_NOD NodalaD_STA StatussK_ID Klienta IDK_KOD Kods / NumursK_UZV Personas uzvards K_VAR Personas vardsK_NOS Firmas nosaukums
Lapa 25 no 29
K_PIL PilsetaK_IEL IelaK_TEL TelefonsK_BNOS Bankas nosaukumsK_BKON Bankas kontsS_KOD Skarda KodsS_KRA KrasaS_PAR ParklajumsS_KVA KvalitateS_STA Statuss I_KOD Izstradajuma KodsI_NOS NosaukumsI_PIE PielietosanaI_MPAT Materiala paterinsI_LPAT Laika paterinsI_STA StatussP_NUM Pasutijuma Numurs
Turpinājums 4.4.1. tabulai. Sistēmas datu vienību apzīmējumi
Apzīmējums DatiP_K_ID Klienta IDP_D_PID Darbinieka ID („pardevejs”)P_D_SID Darbinieka ID („skardnieks”) P_PDAT Pienemsanas datumsP_PLAI Pienemsanas laiksP_PIDAT Planotais izpildes datumsP_PILAI Planotais izpildes laiksP_RIDAT Realais izpildes datumsP_RILAI Realais izpildes laiksP_IDAT Izsniegsanas datumsP_ILAI Izsniegsanas laiksPI_VID Vienibas IDPI_P_NUM Pasutijuma NumursPI_S_KOD Skarda KodsPI_I_KOD Izstradajuma KodsPI_IDAU Izstradajumu daudzums PI_ICEN Izstradajuma cenaR_NUM Rekina NumursR_P_NUM Pasutijuma NumursR_D_PID Darbinieka ID („pardevejs”)R_APM Apmaksas veidsR_IDAT Izrakstisanas datumsR_ILAI Izrakstisanas laiks
Uz tabulas Pasutijumi piemēra apskatīsim datu funkcionālas atkarības sākotnējā struktūrā (sk. 4.4.1.
att.) un struktūrā pēc visām pārbaudēm (sk. 4.4.2. att.).
Lapa 26 no 29
4.4.1. att. Tabulas Pasutijumi sākotnējās struktūras datu funkcionāls atkarības
Lapa 27 no 29
4.4.2. att. Tabulas Pasutijumi struktūras pēc pārbaudēm datu funkcionāls atkarības
Datu funkcionālo atkarību salīdzinājums:
Salīdzinot divas atkarību diagrammas tabulai Pasutijumi, var pamanīt, ka sākotnējā diagrammā
Pasūtījuma Numurs (P_NUM) bija saistīts ar uzņēmuma darbiniekiem caur darbinieku Uzvarda
(D_UZV) un Varda (D_VAR) laukiem, taču izmainīta diagrammā, tā paša piesaiste ir nodrošināta ar
darbinieka identifikatora (P_D_PID un P_D_SID) palīdzību. Šāda veidā organizēta pastarpināta
funkcionāla atkarība ir daudz loģiskākā, jo kā bija minēts iepriekš darbinieku uzvārdi un vārdi
var atkārtoties, kas radis zināmas problēmas to darbinieku identifikācijas, kuri izpildīja pasūtījumu.
Organizējot datu sasaisti caur unikāliem darbinieka identifikatoriem, nekādas datu atkārtošanas
nevar notikt. Vēl viens jauninājums izmainīta struktūra ir saistīts ar salikta datuma lauka sadalīšanu
vienkāršajos laukos – tikai datuma lauks un tikai laika lauks. Šāda sadalīšana nodrošina atomāru
datu vienību glabāšanu katrā no laukiem.
Lapa 28 no 29
LITERATŪRA
1. Darba piemērs datnes „DB_proj_1_darbs_Ra.doc” veidā.
2. Lekciju konspekts mācību priekšmetā „Informācijas sistēmas un CASE rīki”, 2005./2006. m.
g.
Lapa 29 no 29