|
LUCRAREA DE LABORATOR
DOCUMENTATIA ETAPEI DE PROIECTARE LOGICA
Intocmiti documentatia etapei de proiectare logica pentru aplicatia de contabilitate financiara a unitatii pentru care doriti sa informatizati contabilitatea financiara, conform indicatiilor metodologice de mai jos, folosind ca model documentatia referitoare la o casa de schimb.
Cuprins lab 10
Dictionarul_atributelor
Transformarea diagr. entitate-relatie in relatii
Normalizarea_relatiilor
Modelul_logic_de_date
Determinarea ordinii de actualizare a BD
Modelul_logic_de_prelucrare
Modelul logic de comunicatie
I. Indicatii metodologice privind structura documentatiei
a) Descrieri si definitii (se fac referiri la urmatoarele aspecte):
1. Intocmirea dictionarului atributelor (un tabel de forma urmatoare)
Nr. crt.
Denumire
Identificator
Tip, lungime
Conditii de validare
1
Numarul ordinului
NR_ORDIN
N,8
NR_ORDIN>0
Observatie: la nr. crt. 1 tabelul de mai sus contine si un exemplu.
b) Modelul logic de comunicatie (MLC)
2. Precizari referitoare la reteaua de calculatoare (daca este cazul): topologie, configuratie, soft utilizat, etc.
c) Modelul logic de date (MLD)
3. Transformarea diagramelor entitate-relatie in relatii (pct. 1 din Anexa)
4. Ordinea de prelucrare a bazei de date si ordinea de obtinere a rapoartelor (pct. 2 din Anexa)
d) Modelul logic al prelucrarilor (MLP)
5. Structurarea sistemului, subsistemelor si unitatilor functionale (valabil numai la sisteme informatice).
6. Modelul logic al prelucrarilor, un tabel cu structura: activitatea, faze, actiuni (sarcini), actor, frecventa (Z, d, l, etc.) si tipul activitatii (A - automat, sau M - manual). Astfel unei activitati A, pot sa-i corespunda de ex. 4 faze (A1, A2, A3 si A4) . In acest tabel fiecare faza va ocupa un rand, dar fara a diviza prin linii orizontale si coloana atribuita activitatii A. Cu alte cuvinte coloana intaia continua nedivizata pana ce se trece la activitatea B, s.a.m.d. Pentru fiecare faza coloana Actiuni, poate cuprinde (una sub alta, cu linioara) mai multe actiuni.
MLP-ul se poate reprezenta si grafic. In MLP-ul casei de schimb valutar de la punctul d, MLP-ul este reprezentat grafic. Pentru aceasta se pleaca de la MOP (vezi lucrarea de laborator precedenta) folosindu-se in continuare simbolul grafic destinat reprezentarii activitatilor, dar sarcinile nu mai apar una sub alta ci sunt deplasate pe orizontala, in dreptul actorului care trebuie sa le execute.
7. In continuare, in documentatie vor fi incluse machetele documentelor de intrare, (daca au fost reproiectate) organigrama unitatilor functionale (daca au fost identificate mai multe unitati functionale), machetele formularelor si rapoartelor, eventual a meniurilor (toate asamblate in asa fel incat sa se constituie in dialoguri si interfete, specifice fiecarui actor din institutia beneficiara pe care v-ati ales-o pentru proiectul de an) precum si un tabel cu algoritmii folositi in diferite calcule.
ANEXA LA INDICATII METODOLOGICE.
1. Normalizarea relatiilor
Transformarea diagramelor entitate-relatie in relatii se deruleaza in patru pasi:
a) Reprezentarea entitatilor. Fiecare tip de entitate din diagrama entitate-relatie este reprezen-tata ca o relatie in modelul relational al datelor. Identificatorul tipului de entitate devine cheie primara a relatiei iar celelalte atribute ale tipului entitatii devin atribute non-cheie ale relatiei.
b) Reprezentarea legaturilor. Fiecare legatura din diagrama entitate-relatie trebuie sa fie reprezentata in modelul relational al datelor. Reprezentarea legaturii se face in functie de natura ei. Astfel, uneori se poate constitui o relatie prin includerea cheii primare a unei relatii ca o cheie straina/externa in alta relatie. De exemplu la prima vedere cineva ar putea prezenta o comanda de carte ca o entitate cu atributele nr_comanda, data_comanda si data_restituire. Dar la o analiza mai atenta se poate observa ca entitatea ar trebui sa mai aiba un atribut si anume numar_matricol, care este de fapt cheia primara a entitatii student si ca urmare s-au creat premisele unei legaturi intre relatia student si comanda_carte. Alteori, se poate crea o relatie separata pentru reprezentarea legaturii (cazul LINIE_COMANDA).
c) Normalizarea relatiilor Relatiile create in pasii precedenti pot contine redundante nedorite si vor constitui surse de aparitie a anomaliilor in timpul actualizarii. Normalizarea va conduce la o buna structurare a relatiilor.
Normalizarea bazelor relationale (eliminarea redundantelor si a anomaliilor de stocaj) inseamna obtinerea de relatii 'atomice', fara a pierde nimic din informatii. Dupa normalizare, urmeaza optimizarea schemei interne, constand in eventuale denormalizari (join-uri) si apoi se alege: modul de organizare a tabelelor, metode de acces, cheile de indexare.
Practic normalizarea inseamna sa eliminam 'dependentele functionale' folosind scheme de modelare care pot fi:
- schema de descompunere entitati;
- schema sintezei atributelor.
Dependentele functionale se refera la legaturile dintre atribute si pot fi:
- reflexive (ciclice);
- tranzitive;
- de crestere.
Dependentele functionale mai pot fi partiale sau totale, precum si multiple.
Normalizarea se face in 5 trepte (forme):
- 1NF: impune ca fiecare celula a tabelului sa contina o singura valoare nedecompozabila: daca exista caracteristici compuse (de ex. adresa = localit. + adresa), atunci vor rezulta mai multe caracteristici, daca exista mai multe caracteristici care fiecare in parte ar putea fi valori ale unui camp, vor rezulta mai multe tupluri.
- 2NF: impune sa fie indeplinit 1NF + fiecare caracteristica non-cheie sa fie dependenta de o cheie primara; daca exista campuri ce nu depind de toata cheia primara, ele vor fi plasate separat intr-un nou tabel a carui cheie primara va fi doar partea de care campurile in cauza depindeau si in vechiul tabel. Se elimina astfel dependentele partiale. Cuprinsul lucrarii 10
- 3NF: impune 2NF + sa nu existe dependente functionale tranzitive intre caracteristicile non-cheie. Tranzitiva inseamna ca un camp (caracteristica) X depinde de Y si acesta depinde de Z, dar X depinde direct de Z. In acest caz vom mai initia un tabel avand cheie primara pe Y, iar in acest tabel X va fi un camp non-cheie. Y va ramane si in vechiul tabel, ca un camp non-cheie.
Ceva intermediar intre nivelul 3 si 4 de normalizare este NF Boyce Codd (BCNF); acesta impune 3NF + pentru orice dependenta totala X-- A, rezulta ca X este o cheie alui R (tabelul in discutie).
- 4NF: impune BCNF + fiecare dependenta multipla devine o dependenta functionala;
- 5NF: impune 4NF + si nu are dependenta ciclica (joints) sau daca exista, sa fie implicata printr-o cheie secundara.
d) Fuziunea relatiilor. In timpul modelarii logice a datelor s-au creat diferite relatii, atat pe baza normalizarii ascendente a perspectivelor utilizatorilor, cat si a transformarii uneia sau a mai multor diagrame entitate-relatie in seturi de relatii. In structura acestor seturi de relatii pot exista unele relatii redundante cum ar fi existenta a doua sau mai multe relatii care descriu acelasi tip de entitate, ce ar trebui sa fuzioneze si sa se renormalizeze pentru extragerea eventualelor redundante.
2. Ordinea de prelucrare a bazei de date se poate reprezenta printr-un tabel avand structura de mai jos:
Nr. crt. Den..rel
Ordinea de actualizare a BD
1
2
3
4
5
6
7
8
9
1
7
2,3,4,5,6,9
5,8
1. CLIENTI
1
1
unde cifrele de la intersectia unei relatii din prima coloana cu numarul altei relatii dispus pe orizontala in linia a doua, indica ponderile entitatii din prima coloana in raport cu celelalte entitati. Ponderea ia valoarea 1 daca participarea entitatii din linia a doua in dependenta functionala cu entitatea din coloana intaia este obligatorie si ia valoarea 0 daca participarea entitatii din linia a doua in dependenta functionala cu entitatea din coloana intaia este optionala. In tabelul de mai sus, la intersectia entitatii CLIENTI cu cea de a patra entitate, gasim 1, ceea ce inseamna ca unei realizari din entitatea 1 trebuie neaparat sa-i corespunda o realizare in entitatea 4, dar unei realizari din entitatea 4 poate sa nu-i corespunda nici o relizare in entitatea 1. Concret, in cazul in care coloana 4 s-ar referi la entitatea TRANZACTII, fraza precedenta trebuie inteleasa ca o tranzactie nu trebuie neaparat sa aiba un client, dar daca in entitatea CLIENTI exista o realizare, deci existaun client, acela neaparat trebuie sa se refere la o tranzactie.
In continuare, se face suma pe linie si apoi se decide ordinea de prelucrare pentru entitatile care au cea mai mica suma; astfel suma ponderilor pentru entitatea Clienti este 1. Fiind cea mai mica din aceasta coloana, o desemneaza pe prima entitate ca facand obiectul actualizarii si pentru aceasta s-a conceput procedura P1.
- ulterior entitatile care fac obiectul actualizarii cu procedura P1 (ar fi putut fi si altele cu aceeasi suma ca entitatea Clienti), se exclud din calculul sumei si se recalculeaza suma, urmand a se lua in calcul suma cea mai mica; se obtin astfel entitatile ce vor fi actualizate cu procedura P2 (in exemplul de mai sus intra entitatea 7).
- se repeta pasul precedent pana ce se stabileste ordinea de prelucrare pentru toate entitatile.
Coloanele rezultate in zona 'Ordinea de actualizare a bazei de date', desemneaza procedurile ce se disting pentru actualizarea bazei de date. Astfel in exemplul de mai sus, se distinge o procedura P1 care va actualiza entitatea 1, una P2 care va actualiza entitatea 7, P3 pentru entitatile 2, 3, 4, 5, 6 si 9 si P4 pentru entitatile 5 si 8. Exemplul este fictiv si nu trebuie cautata compatibilitatea solutiei. Cuprinsul lucrarii 10
In mod asemanator cu ordinea de actualizare a bazei de date, se mai stabileste si ordinea de obtinere a rapoartelor, care poate apare in tabelul de mai sus, ca o alta coloana in continuarea celei de actualizare a bazei de date.
II. Documentatie pentru etapa de modelarea logica
in cazul unei case de schimb valutar [4].
a) Dictionarul atributelor
Dictionarul atributelor stabileste identificatorii si conditiile de validare pentru fiecare tip de atribut. Acest dictionar al atributelor, pentru casa de schimb valutar poate fi redactat astfel:
Denumire atribut
Identificator
Tip, lungime
Conditii de validare
cod PSV
COD PSV
C,5
COD PSV<>""
nume persoana
NUME
C,40
NUME<>""
tara
TARA
C,20
TARA<>""
tip AI
TIP_AI
C,2
TIP_AI=
serie AI
SERIE_AI
C,2
SERIE_AI<>""
Nr. AI
NR_AI
N,7
NR_AI>0 and NR_AI<9(7)
Data operatiei
DATA_OP
D,8
DTOC(DATA_OP)>="01-01-01" and
DTOC(DATA_OP)=<"31-12-01"
Nr. doc. Miscare
NR_DOC
C,10
NR_DOC<>""
descr. op. miscare
DESCR
C,40
DESCR<>""
sold initial
SOLD_I
N,10
SOLD_I<>0 and SOLD_I=<9(10)
b) Modelul logic de comunicatie (MLC)
Pentru casa de schimb valutar MLC este bazat pe cate un calculator cu structura de workstation, pentru fiecare PSV:
PSV
PC- AT(WS)
c) Modelul logic de date
Se refera in principal la transformarea MCD (modelul entitate-relatie) in relatii. Cuvintele relatie si relatii nu au acelasi inteles. Modelul entitate-relatie este de fapt modelul entitate-legatura, in timp ce relatia in care se transforma acest model in cadrul modelului logic, nu este o legatura ci este echivalentul entitatii in algebra relationala. Acolo se opereaza cu relatii in sensul de tabel bidimensional format din randuri (linii) numite tupluri si coloane numite domenii. Pentru casa de schimb valutar, MLD arata astfel: Cuprinsul lucrarii 10
1 0
1
0
0 1
Pentru determinarea ordinii de actualizare a bazei de date si a secventei de obtinere a iesirilor din cadrul aplicatiei Casa de schimb valutar vom folosi tabelul de mai jos:
1.
2.
3.
4.
Ordinea de actualizare a BD
2
1,3,4
BC
BV
RC
JCV
JVV
RBNR
TM
1. CLIENTI
1
1
1
1
2
3
4
5
6
7
2. VALUTE
0
0
0
3. TRANZ
0
1
1
1
4. MISC.
1
1
1
Din acest tabel se vede ca ordinea de actualizare a BD este VALUTE, CLIENTI, TRANZ, MISC, iar cea de obtinere a rapoartelor de iesire este BC, BV, RC, JCV, JVV, RBNR, TM.
d) Modelul logic de prelucrare are rolul de a preciza:
frecventa de prelucrare;
actorii implicati;
fazele si sarcinile asociate acestora, inclusiv evenimentele si sincronizarile aferente;
tipul fazelor: A (automate) si M (manuale).
Pentru aceasta se pleaca de la MCP. Mai exact operatiile complexe sunt transformate in faze iar operatiile elementare sunt transformate in sarcini:
FREC-
VENTA
BANCA
PSV
CSV
TIP
A/M
AL
BMITB
EXC
BMITPSV
BMSI
BMITPSV
a
a
1. TRANSFER SUME VALUTA PSV-CSV
- verificarea sumelor transmise intre PSV si CSV.
OK OK
b
RZT
dc
c d
1. INTRARI VALUTE TRANSFER BANCA
verificarea sumelor primite de la banca
actualizarea
OK OK
e b
BMSI RZT
Cuprinsul lucrarii 10
M
M
FREC-
VENTA
PERSOANA
FIZICA
PSV
CSV
TIP
A/M
k
Z
L
BI
AI
PT
PS
XX
BMECH
j
i
h
g
f
f g h i j k
2. CUMPARARE/VANZARE VALUTA
- inregistrarea cumpararilor de valuta in BC
- inregistrarea vanzarilor de valuta in BV
- inregistrarea cheltuielilor PSV
OK OK
lm n vs
BCJCVBOC RC
o p t
BV JVVBOV RZT
n o s t
n o s t
4. RAPORTARI LIVRARE CATRE BNR
- calculul totalului miscarilor in valuta;
la nivelulCSV
- elaborarea RBNR
OK OK
RBNR TM
A
A