Documente Academic
Documente Profesional
Documente Cultură
SISTEME INFORMAȚIONALE ȘI
APLICAȚII INFORMATICE ÎN
ADMINISTRAREA AFACERILOR
- Note de curs -
(Format ID)
SIBIU - 2009
CUPRINS
Capitolul 1
Sisteme informatice………………………………………………………………..…….….. 3
Capitolul 2
Iniţierea şi planificarea realizării unui sistem informatic...…………………….…………… 18
Capitolul 3
Analiza sistemului existent şi definirea cerinţelor noului sistem........……………................ 23
1
Sisteme informatice
Capitolul 4
Proiectarea logică a sistemelor informatice.......................................................................................... 48
Capitolul 5
Proiectarea fizică a sistemelor informatice…………….……….......................................................... 66
Teste 2009............................................................................................................................... 93
Bibliografie.............................................................................................................................. 107
2
CAPITOLUL 1. SISTEME INFORMATICE
3
Sisteme informatice
Sistem
Reguli şi
Om Fişiere
manual proceduri
manuale
scrise
Programe şi
Sistem Fişiere
Calculator Structuri de
automatizat informatice date
Definiţie.
Un sistem informatic este un sistem utilizator-calculator integrat, care furnizează
informaţii pentru a sprijini activităţile de la nivel operaţional şi activităţile de
management într-o organizaţie, utilizând echipamente hardware şi produse software,
proceduri manuale, o bază de date şi modele matematice pentru analiză, planificare,
control şi luarea deciziilor [10].
Elaborarea sistemelor informatice impune modelarea sistemului informaţional al
organizaţiei cu ajutorul unui formalism prin care să poată fi reprezentată cât mai sugestiv
şi fidel realitatea din cadrul sistemului informaţional.
Sistemele informatice complexe pot fi descompuse în subsisteme, care la rândul
lor pot fi descompuse în aplicaţii destinate unor categorii de utilizatori, aplicaţii care la
rândul lor pot fi constituite din unul sau mai multe programe scrise în diverse limbaje de
programare după cum este ilustrat în figura 1.2.
Sistem Informatic
4
Fig.1.2. Sistem informatic, subsisteme, aplicaţii, programe
Pentru organizaţii de complexitate mică, informatizarea poate însemna realizarea
unei singure aplicaţii informatice referită de asemenea ca sistem informatic.
Sistemele, subsistemele şi aplicaţiile informatice sunt produse informatice numite
şi produse software.
Un produs informatic este constituit din programe care accesează baza de date şi
din documentaţia necesară pentru utilizarea şi întreţinerea programelor. Acestea se
realizează în baza unor metodologii şi necesită parcurgerea unor etape începând cu
specificarea cerinţelor şi terminând cu implementarea, exploatarea şi întreţinerea lor.
Sistemul informatic economic este un ansamblu structurat de elemente
intercorelate funcţional pentru automatizarea procesului de obţinere a informaţiilor şi
pentru fundamentarea deciziilor. Sistemul informatic este inclus în sfera sistemului
informaţional atâta vreme cât în cadrul sistemului informaţional vor exista o serie de
activităţi care nu vor putea fi automatizate [2].
5
Sisteme informatice
6
pentru conducerea activităţii la nivelul unităţilor economice
pentru conducerea activităţii la nivelul organizaţiilor economico-sociale cu structură
de grup
sisteme informatice teritoriale
pentru conducerea ramurilor, subramurilor şi activităţilor la nivelul economiei
naţionale
sisteme informatice funcţionale generale .
3. În funcţie de elementul supus analizei [Oprea D., 1999]:
sisteme informatice orientate spre funcţii;
sisteme informatice orientate spre proces;
sisteme informatice orientate spre date;
sisteme informatice orientate spre obiecte;
sisteme informatice orientate spre cunoştinţe.
4. După modul de organizare a datelor [[1] D., 1999]:
sisteme bazate pe fişiere;
sisteme bazate pe tehnica bazelor de date: ierarhice, reţea, relaţionale, orientate-
obiect;
sisteme mixte.
5. După metoda folosită în analiza şi proiectarea sistemelor [1]:
sisteme dezvoltate după metoda sistemelor;
sisteme dezvoltate după metoda clasică a ciclului de viaţă;
sisteme dezvoltate după metoda structurată;
sisteme dezvoltate după metoda orientată-obiect;
sisteme dezvoltate după metoda rapidă(RAD);
sisteme dezvoltate după metoda echipelor mixte(JAD);
sisteme dezvoltate după metoda prototipurilor.
6. După gradul de centralizare [1]:
sisteme centralizate;
sisteme descentralizate;
7. După gradul de dispersie a resurselor sistemului informatic:
sisteme informatice locale (bazate pe reţea locală, staţii de lucru):
sisteme informatice distribuite (date distribuite).
8. După gradul de automatizare a activităţilor de analiză şi proiectare a sistemelor
informatice [1]:
sisteme informatice dezvoltate pe baza analizei şi proiectării clasice;
sisteme informatice analizate cu instrumente automate şi proiectate clasic;
sisteme informatice bazate pe instrumente diverse de automatizare a analizei şi
proiectării;
sisteme informatice dezvoltate cu instrumente de tip CASE.
7
Sisteme informatice
8
4. Integrarea şi testarea sistemului – integrarea şi testarea programelor şi
modulelor program ca un sistem complet pentru a ne asigura că cerinţele informaţionale
sunt satisfăcute. După testare sistemul este livrat beneficiarului.
5. Exploatarea şi întreţinerea sistemului – este faza în care sistemul informatic
este efectiv utilizat de către beneficiar şi în care sunt descoperite şi rezolvate eventuale
erori de proiectare şi programare şi omisiuni în cerinţele informaţionale iniţiale.
Analiza şi
definirea
cerinţelor
Proiectarea
sistemului şi a
software-ului
Implementarea
şi testarea
unităţilor de
program
Integrarea şi
testarea
sistemului
Exploatarea şi
întreţinerea
sistemului
Fig. 1.3. Etapele ciclului de viaţă a unui sistem informatic în modelul cascadă ([10])
9
Sisteme informatice
10
Pregătirea datelor este o activitate realizată în toate tipurile de sisteme
informaţionale, dar capătă o semnificaţie deosebită în sistemele de prelucrare automată a
datelor; partea informatizată a acestora fiind cunoscută ca sistem/subsistem informatic.
Culegerea
datelor
Pregătirea datelor
Prelucrarea datelor
Întreţinere
fişiere
Informaţii de
ieşire
11
Sisteme informatice
Documente Situaţia
Consultare 1 costurilor pe
facturi Actualizare
ordin de plată comenzi
bon de
consum
Balanţa de
verificare
Consultare 2 Registrul jurnal
BD Casa
Banca
12
timp. Folosirea eficientă a acestor resurse, în scopul obţinerii unui sistem informatic
performant a impus ordonarea acestui proces complex, într-o succesiune bine stabilită de
etape şi subetape şi utilizarea unor metode şi tehnici adecvate. Acest lucru a dus deci, la
conturarea unor metodologii de realizare a sistemelor informatice.
Între diversele etape de realizare a sistemelor informatice există o legătură
indestructibilă, legătură reflectată şi de faptul că în mod logic şi practic calitatea realizării
unor activităţi din etapele şi fazele precedente influenţează în mod decisiv calitatea
activităţilor din etapa ce îi urmează [2].
13
Sisteme informatice
14
Datele sunt surprinse din prisma structurii lor sub formă de atribute şi înseamnă de
fapt, ceea ce are stocat, şi reflectă structura statică [1].
Funcţiile scot în evidenţă în mod limitat ceea ce face sistemul. El poate fi văzut şi
ca un proces, întrucât elementele sistemului despre care se păstrează datele de rigoare
sunt supuse unor transformării funcţionale, prin intermediul proceselor [1].
Comportamentul este invocat pentru a reda o altă modalitate de percepţie a
sistemului, influenţa evenimentele şi proprietăţilor sistemului, şi sugerează dinamica lui
[1].
Metoda descompunerii funcţionale (orientate funcţii) [1].
Dintre autorii remarcabili care au abordat descompunerea funcţională îi enumerăm
pe câţiva cum ar fi DeMarco, Yourdon şi Constantine, Jackson, Page-Jones, Warnier-Orr,
Dahl, Marco&Gowan. Descompunerea funcţională este cea care anunţă apariţia
proiectării structurate şi analizei structurate. Fiecare funcţie este descompusă în
subfuncţii, până se obţin structuri uşor de transpus în instrucţiunile limbajelor de
programare.
Metodele fluxurilor de date (orientate-proces) [1].
Prin această metodă analiştii efectuează reprezentarea lumii reale prin simboluri
care reprezintă fluxul datelor, transformările datelor, stocarea datelor, entităţi externe, etc.
Metoda orientată spre procese are încă un mare grad de asemănare cu descompunerea
funcţională.
Metode orientate spre informaţii (orientate-date) [1]
Două realizări importante în domeniu au dat tonul unei orientări în abordarea
sistemelor: modelarea datelor cu ajutorul diagramelor entitate-relaţie, de către Peter P.
Chen (1976) şi ingineria informaţiei, în viziunea lui James Martin.
Metoda orientată-obiect [1]
Metodele OO constituie o categorie particulară a metodelor de dezvoltare software,
care privesc construirea sistemelor pentru care clasa reprezintă unitatea arhitecturală
fundamentală. Clasa este o grupare logică a obiectelor care au aceeaşi structură şi un
comportament similar.
15
Sisteme informatice
16
1.3.1. Funcţiile CASE
Primele sisteme CASE erau un set de aplicaţii neintegrate, cu funcţii distincte, fără
a fi interconectate. Aceste limite au fost eliminate, în cea mai mare parte, prin generaţiile
actuale, care încearcă să realizeze o integrare completă şi uşoară a tuturor elementelor,
integrarea reprezentând, de fapt, factorul cel mai important al metodologiei CASE [1].
CASE se bazează pe două funcţii fundamentale [1].
Prima funcţie constă în posibilitatea descompunerii de sus în jos (top-down) a
sistemului informatic în procese şi module distincte, fiecare având definite
responsabilităţile funcţionale şi/sau operaţionale.
Cea de-a doua funcţie se referă la faptul că sistemele informaţionale pot fi
reprezentate într-o formă grafică concisă, folosind câteva simboluri de bază. Importanţa
acestor două funcţii rezidă în posibilitatea utilizării modularităţii aplicaţiilor, a
diagramelor, obţinerea unei documentaţii privind realizarea, evaluarea arhitecturii şi
utilizarea sistemului.
Pentru definirea şi construirea sistemelor, produsele CASE presupun stabilirea şi
respectarea unei anumite discipline. Metodologia oferă o interfaţă între crearea şi
verificarea/validarea proiectului logic, dezvoltarea unei biblioteci cu documentaţii, care
include şi integrează caracteristicile proceselor şi paşii de parcurs, pentru descrierea
modului de lucru; oferă un model al produsului final, ce poate fi folosit în realizarea
operaţiilor de exploatare şi întreţinere a sistemului/aplicaţiei, şi oferă o interfaţă pentru
păstrarea evoluţiei proiectului.
Folosirea reprezentărilor grafice în logica CASE oferă posibilitatea descompunerii
aplicaţiei în mai multe componente logice. Prin ataşarea unei baze de date la elementele
grafice, se va obţine un depozit ce va conţine paşii şi funcţiile reprezentate în diagramele
construite. Dacă aceste elemente sunt corect stabilite, ele vor sta la baza descrierii
proceselor, ce vor constitui procedurile de prelucrare ale sistemului/aplicaţiei. Modelarea
grafică în sistemele CASE prezintă o interactivitate ridicată, permiţând construirea
diagramelor, deplasarea de la o diagramă la alta, modificarea, extinderea, copierea,
evaluarea şi descrierea elementelor unei aplicaţii [1].
Modelele grafice permit conectarea fluxurilor logice între activităţile şi funcţiile
specifice aplicaţiei, relaţii care pot fi testate şi validate în mod automat.
17
Sisteme informatice
descompunerea;
performanţe de deplasare, pe orizontală, de la un instrument la altul;
grade diferite de automatizare;
INTEGRAREA.
CASE-ul nu este un proces independent. El constituie un set integrat de
metodologii, care urmăresc realizarea ciclului de viaţă al unui sistem. La sfârşitul fiecărei
faze a ciclului de viaţă, rezultatele obţinute trebuie supuse unei analize şi verificări, iar
utilizatorii trebuie informaţi asupra modului de gestionare a procedurilor de lucru. Ei sunt
cei care trebuie să dea avizul de continuare a parcurgerii fazelor următoare, pe baza a
ceea ce li s-a prezentat. Este, de fapt, un proces de revalidare a conceptelor folosite în
proiectarea sistemului şi a modelului proiectat pe măsura desfăşurării operaţiunilor, din
faza de proiectare până la predarea produsului final. CASE poate sprijini aceste proceduri
prin punerea la dispoziţie a unei documentaţii, critici sau modificări asupra elementelor
din modelul proiectat. Pe acest fond, pot fi făcute evaluări, critici sau modificări asupra
elementelor din modelul proiectat. Rezultatele obţinute în urma proiectării unui anumit
model de sistem constau în documentaţia oferită, care acoperă întregul ciclul de viaţă al
sistemului, cu toate operaţiile şi procedurile pe care le presupune. Datele din
documentaţia modelului sunt, de obicei, înlocuite cu cele reale şi se parcurg paşii de
implementare a sistemului pentru a obţine un model funcţional. În plus, CASE oferă
posibilitatea de a analiza ieşirile obţinute şi de a le modifica pentru a reflectă schimbările
intervenite în sistem, modulele definite şi depozitul de date [1].
A) Metodologia structurată
Westmount I-CASE Yourdon oferă suport complet pentru realizarea sistemelor
informatice. Având la baza metoda structurată propusă de Yourdon, acest instrument
CASE integrat oferă posibilitatea lucrului în echipă, posibilitatea de generare şi reutilizare
a codului şi generarea automată a documentaţiei de realizare a sistemului informatic.
Repository este componenta centrală a arhitecturii Westmount I-CASE Yourdon.
Repository este implementat cu ajutorul unui SGBD relaţional: Informix, Ingres sau
Oracle.
18
Analyst, este componenta ce oferă suport pentru analiza structurată. Metoda este
implementată de Yourdon şi De Marco. Westmount I-CASE Yourdon oferă suport pentru
un set extins de instrumente şi anume editoare pentru diagrame de flux a datelor,
diagrame entitate asociere, diagrame de structură a datelor editoarele matriciale pentru
matricea listei de evenimente.
Arhitect este componenta ce permite definirea arhitecturii sistemului (proiectarea de
ansamblu). Editorul
Designer este componenta ce oferă suport pentru proiectarea de detaliu a sistemului
informatic.
Proiectarea de detaliu a aplicaţiei este strâns legată de proiectarea bazei de date. Pentru
modelarea datelor se utilizează diagrama entitate asociere.
Programmer este mediul de programare care oferă suport pentru generarea codului
sursă, compilare, lansare în execuţie şi testarea aplicaţiei. Generatorul de cod translatează
specificaţiile de proiectare în cod sursă. Astfel, pe baza diagramei entitate asociere se
generează codul DDL (în SQL) ce defineşte structura fizică a bazei de date. Codul poate
fi completat pentru a defini restricţiile de integritate şi modul fizic de stocare a bazei de
date. Este prezentată şi facilitatea de inginerie inversată care translatează definirile
asociate bazei de date existente într-o diagramă entitate asociere. Codului aplicaţiei este
generat în limbajul C îmbogăţit cu instrucţiuni SQL pornind de la specificaţiile din
schemele de structură.
Docwriter este componenta care permite generarea documentaţiei pentru fiecare etapă de
realizare a sistemului.
Utilizarea produsului Westmount I-CASEY Yourdon îmbunătăţeşte productivitatea
realizării sistemelor informatice şi oferă garanţii pentru calitatea sistemelor obţinute.
B) Metodologia orientată-obiect
Expresia „pur orientate-obiect" se refer ă la faptul c ă pe de o parte, instrumentele
CASE conţin numai elemente specifice abordării orientate-obiect a sistemelor, iar pe de
altă parte la faptul că se bazează pe metodele şi tehnicile de analiz ă şi proiectare
orientate-obiect.
Instrumentele CASE orientate-obiect, din punct de vedere al etapelor ciclului de via ţă al
sistemelor, pot fi grupate ca şi cele convenţionale, astfel:
- Upper CASE orientat-obiect pentru analiza şi proiectarea sistemelor;
- Lower CASE orientat-obiect pentru generarea codului-surs ă al aplica ţiilor;
- I-CASE orientat-obiect care acoperă întregul ciclu de via ţă.
Deoarece tendinţa se îndreaptă tot mai mult spre tehnologiile informa ţionale orientate-
obiect, nici domeniul instrumentelor ce sprijin ă realizarea sistemelor nu poate s ă nu se
adapteze la această orientare, lucru ce a dus la apari ţia a numeroase produse CASE
orientate-obiect sau la reorientarea firmelor produc ătoare de instrumente conven ţionale
spre înglobarea în produsele lor a elementelor specifice abord ării obiectuale.
19
Sisteme informatice
Designer/2000
Setul de instrumente Designer/2000 este parte integrantă din portofoliul de
instrumente de dezvoltare oferit de Oracle şi reprezintă o soluţie integrată pentru
dezvoltarea de sisteme client/server din generaţia a doua sau de sisteme Intranet bazate
pe Web. Designer/2000 acoperă toate fazele ciclului de dezvoltare a aplicaţiilor
software, pornind de la modelarea sistemului informatic (business modelling) până la
exploatare. Abordarea Designer/2000 bazată pe un Repository permite ca anumite
componente sau toate componentele să fie folosite pentru dezvoltarea rapidă de aplicaţii
scalabile, multi-platformă, distribuite.
20
Capitolul 2
Iniţierea şi planificarea realizării unui sistem informatic
A.
identificarea
şi selectarea
proiectului
microanali
B. iniţierea şi za Fazele ciclului de viaţă
planificarea al dezvoltării
proiectului sistemului
C. analiza
D. proiectarea
logică
E. proiectarea
fizică
F. implementarea
G. întreţinerea
21
Sisteme informatice
22
Iniţierea proiectului
Din momentul selecţiei lui, proiectul trece în faza de iniţiere, ceea ce presupune
desfăşurarea unei activităţi laborioase, prestată de un responsabil, cunoscut în practică
sub numele de manager de proiect, care răspunde de [1]:
Elaborarea unor studii de fezabilitate generală;
Elaborarea planurilor detaliate ale proiectelor;
Găsirea celor mai buni membri ai echipei proiectului.
Managerul de proiect trebuie să dea dovadă de multe calităţi pentru a putea jongla
cu elemente cum sunt:
Schimbările tehnologice;
Ciclul de viaţă al sistemelor;
Contractori şi furnizori;
Managementul resurselor umane;
Metodologie şi instrumente de lucru diferite;
Restricţii de timp şi resurse;
Documentare şi comunicare;
Aşteptările managerilor şi clienţilor.
Activităţile efectuate în faza iniţierii proiectului sunt:
1. stabilirea echipei de iniţiere a proiectului;
2. stabilirea bunelor relaţii cu beneficiarii;
3. stabilirea planului iniţierii proiectului;
4. stabilirea procedurilor manageriale;
5. stabilirea cadrului de desfăşurare a proiectului şi a manualului de operare al
acestuia.
Planificarea proiectului
Planificarea proiectului va cuprinde o evaluare a cerinţelor informaţionale ale
sistemului la nivelul întregii organizaţii.
Planificarea proiectului este procesul prin care are loc definirea clară a activităţilor
şi a eforturilor necesare înfăptuirii lor în cadrul fiecărui proiect.
Tipurile activităţilor executate în cadrul planificării proiectului cuprind [1]:
1. Descrierea ariei de întindere, a variantelor şi fezabilităţii proiectului
2. Descompunerea proiectului în activităţi uşor executabile şi controlabile
3. Estimarea resurselor şi crearea unui plan al resurselor
4. Realizarea unei prime planificări calendaristice
5. Realizarea unui plan al comunicărilor
6. Determinarea standardelor şi procedurilor proiectului
7. Identificarea şi evaluarea riscului
8. Crearea unui buget preliminar
9. Întocmirea rapoartelor de activitate
10. Definitivarea planului de bază al proiectului
23
Sisteme informatice
24
proporţională cu timpul alocat activităţilor reprezentate. Se pot folosi diferite culori,
umbre sau forme pentru a scoate în relief anumite activităţi. Ceea ce s-a planificat şi
realizat, de asemenea, pot fi evidenţiate prin bare paralele de culori, forme sau umbre
diferite.
Diagramele Gantt nu indică ordinea activităţilor (precedenţa lor), ci indică data
începerii şi pe cea a finalizării.
Se recomandă pentru descrierea proiectelor simple sau a unor componente ale
proiectelor mari, sau a activităţilor prestate doar de o singură persoană, precum şi pentru
monitorizarea modului în care se efectuează activităţile în comparaţie cu cele planificate
(ca dată) .
25
Sisteme informatice
1. Colectarea
cerinţelor
2. Proiectare
ecrane
3. Proiectare
rapoarte
4. Proiectare baze
de date
5. Documentaţie
utilizator
6. Programare
7. Testare
8. Instalare
9. Şedinţa de
analiză
26
Capitolul 3
Analiza sistemului existent şi definirea cerinţelor noului sistem
27
Sisteme informatice
28
3.2. Determinarea cerinţelor sistemului
Determinarea cerinţelor sistemului este activitate esenţială în aflarea situaţiei
existente şi a ceea ce se doreşte în viitor. Rezultatul activităţii de determinare a cerinţelor
sistemului se concretizează în diferite forme ale informaţiilor colectate, cum sunt copii
ale interviurilor, însemnări efectuate în timpul observării şi analizei documentelor,
interpretări ale răspunsurilor la chestionare, seturi de formulare, rapoarte, descrieri ale
posturilor de lucru ş.a., precum şi rezultate ale prelucrărilor efectuate de calculator, cum
ar fi prototipurile [1].
Rezultatele prezentate după această activitate pot fi rezumate astfel:
1. Informaţii obţinute în urma conversaţiilor cu utilizatorii sau prin observarea
activităţilor prestate de aceştia: copii sau sinteze ale interviurilor, răspunsurile la
chestionare sau interpretări ale acestora, însemnări şi rezultate din observarea
activităţilor, procese verbale ale şedinţelor ce au avut loc în acest scop;
2. Informaţii scrise care există în unitate: misiunea şi strategia afacerii, exemplare
ale formularelor, rapoartelor şi machetelor de ecrane, manuale ale procedurilor,
descrieri ale posturilor de lucru, manuale de instruire, scheme de sisteme şi
documentaţia sistemului existent, rapoartele consultanţilor [1];
3. Informaţii obţinute cu ajutorul calculatorului: rezultate ale sesiunilor JAD, copii
ale fişierelor sesiunilor grupului de sprijinire a sistemului, conţinutul depozitelor
şi rapoartele existente în CASE, ecrane şi rapoarte rezultate din prototipurile
sistemului, ş.a [1].
29
Sisteme informatice
Chestionarul poate fi utilizat atât de către analiştii începători, cât şi de către cei
avansaţi, familiarizaţi sau nu cu problemele informaţionale-decizionale ale unităţii. Prin
utilizarea lui dispare “filtrul de informaţii” care este analistul iar cel care furnizează
informaţii are posibilitatea să se concentreze mai bine asupra răspunsurilor. Utilizând
această metodă, participă un număr mare de “furnizori de informaţii”. Limitele
chestionarului constau în faptul că este o metodă de verificare a unor cunoştinţe
prealabile, fapt ce implică cunoaşterea prealabilă a domeniului.
Această metodă necesită timp relativ îndelungat pentru întocmirea chestionarului
precum şi de culegere şi prelucrare a răspunsurilor. Chestionarul nu are o arie largă de
utilizare [2].
30
tendinţa de evitare a unui cadru formal de elaborare a documentaţiei privind cerinţele
sistemului, ceea ce va îngreuna în viitor orice control;
fiind conceput de un număr mic de utilizatori va fi probabil respins de viitorii
utilizatori;
fiind conceput izolat este puţin probabil ca el să fie integrat în sistemul existent;
nerespectându-se etapele ciclului de viaţă al dezvoltării sistemelor pot fi omise
aspecte esenţiale, cum ar fi securitatea, controlul datelor introduse şi standardizarea la
nivel de sistem.
Paşii prototipizării sunt [1]:
Identificarea cerinţelor principale ale sistemului;
Realizarea prototipului iniţial;
Proces iterativ de adaptare a sistemului la cerinţele utilizatorului;
Folosirea sistemului aprobat de utilizatori.
31
Sisteme informatice
32
Simboluri folosite în diagramele realizate cu SSADM
flux de date: este constituit din datele transmise între două procese.
Fluxul de date este etichetat printr-un substantiv ce sugerează informaţia sau
pachetul de informaţii transmise.
33
Sisteme informatice
34
Figura 3.2. Diagrama fluxului de date de nivel 1 pentru aplicaţia Decontări
35
Sisteme informatice
36
specificarea cerinţelor speciale privind flexibilitatea, compatibilitatea cu
alte sisteme, gradul de generalizare al sistemului.
Pentru fiecare variantă de soluţie informatică se procedează la:
evaluarea resurselor necesare (costurile de sistem);
evaluarea efectelor economice directe si indirecte;
calculul indicatorilor de eficientă economică.
3.3.3. Modelarea sistemului curent
Indiferent de tipul sistemului analizat, manual sau informatizat, o problemă este
comună: el va fi înlocuit de un nou sistem. Oricât de ineficient, vechiul sistem trebuie să
transfere celui nou o serie de elemente, cum sunt datele folosite, procedurile existente.
Deci sistemul fizic actual efectuează în parte sau în întregime ceea ce-şi propune să facă
noul sistem fizic, dar la alt nivel de performanţă. Tocmai necesitatea trecerii de la vechiul
la noul sistem ne obligă să decidem asupra celor două elemente specificate anterior, date
şi proceduri, ceea ce conduce la obligativitatea constituirii unui model logic al sistemului
propus, care să conţină una sau mai multe DFD, un model de date şi logica procesului de
prelucrare. Problema comună ar consta în identificarea unei căi de realizare a modelului
logic al sistemului propus [1].
O modalitate de abordare constă în prezentarea detaliată a sistemului fizic curent,
după care să se realizeze construirea modelului logic curent, prin abstractizarea celui fizic
existent. Se va continua cu scoaterea în relief a ceea ce trebuie neapărat schimbat din
sistemul curent şi ceea ce trebuie să se realizeze în cel nou. Deci, modelul logic propus
poate fi conceput pe baza modelului logic curent.
Pornind de la modelul fizic, se derivă modelul logic în cadrul căruia se realizează:
pune în evidenţă ce face sistemul, eliminând detaliile referitoare la modul cum
funcţionează sistemul în implementarea actuală;
pune în evidenţă funcţiunile de bază ale sistemului;
permite identificarea şi eliminarea problemelor legate de redundanţa datelor şi
duplicarea proceselor de prelucrare;
permite stabilirea cu o mai mare precizie a graniţelor sistemului prin eliminarea
proceselor manuale care nu pot fi automatizate complet.
37
Sisteme informatice
38
Figura 3.4. Diagrama fluxului de date
39
Sisteme informatice
40
if (cod!=FACTURI_DESF.codclient)
{ CLIENTI.codclient = cod;
CLIENTI.denclient = den;
CLIENTI.adresac = adr;
CLIENTI.contc = cont;
CLIENTI.banca_c = banca;
CLIENTI.sold = sold;
cod = FACTURI_DESF.codclient;
den = FACTURI_DESF.denclient;
adr = FACTURI_DESF.adresac;
cont = FACTURI_DESF.contc;
banca = FACTURI_DESF.bancac;
}
else
{
READ(ÎNCASĂRI);
vb=0; vb1=0;
while (not eof (ÎNCASĂRI) AND vb=0)
{
if (cod=ÎNCASĂRI.client AND
FACTURI_DESF.nrfactd=ÎNCASĂRI.nrfactd AND
FACTURI_DESF.datafactd =ÎNCASĂRI.datafactd)
{ if (FACTURI_DESF.totalfactd !=ÎNCASĂRI.sumaincasata)
{ sold = sold+ FACTURI_DESF.totalfactd -
ÎNCASĂRI.sumaincasata}
vb1=1;
}
else if (vb1=1) vb=1
READ (ÎNCASĂRI)
}
MOVE FIRST LINE ÎNCASĂRI
READ (FACTURI_DESF)
}
CLOSE (FACTURI_DESF, ÎNCASĂRI, CLIENTI)
41
Sisteme informatice
42
1. DER care să acopere datele necesare aplicaţiei proiectului. Ea va permite stabilirea
necesarului de date ale aplicaţiei proiectului, fără să se ţină seama de constrângerile
sau confuziile generate de detaliile care nu sunt încă necesare.
2. DER pentru aplicaţia ce va fi înlocuită. Diferenţele dintre aceste diagrame arată ce
schimbări trebuie întreprinse pentru convertirea bazei de date în noua aplicaţie. Nu se
aplică în cazul sistemelor complet noi.
3. DER care să scoată în relief întreaga bază de date din care noua aplicaţie îşi va
extrage datele. Cât timp mai multe aplicaţii pot folosi aceeaşi bază de date, această
diagramă şi prima evidenţiază modul în care noua aplicaţie apelează la conţinutul
unor baze de date mult mai extinse.
4. DER pentru întreaga bază de date din care aplicaţia curentă îşi extrage datele
necesare. Ea este discutată doar pentru sistemele care există şi pentru care se
urmăreşte îmbunătăţirea. Din nou, diferenţele dintre diagrama precedentă şi cea de
faţă vor indica modificările majore de efectuat pentru a se putea influenţa noua
aplicaţie.
Metodele de determinare a cerinţelor trebuie să fie orientate, prin întrebările puse,
prin anchetele efectuate, şi asupra datelor, nu numai asupra proceselor şi logicii lor. La
început, chiar fără utilizarea unei terminologii de specialitate, analistul va fi preocupat de
modul în care va afla cât mai multe informaţii despre datele necesare viitorului sistem
pentru a funcţiona la parametrii proiectaţi. Întrebările vor fi astfel formulate încât să se
realizeze o bună înţelegere a regulilor după care vor fi folosite datele în noul sistem, ce
politici vor fi utilizate. Nu trebuie, încă, să se intre în detalii de genul: când şi cum sunt
prelucrate sau folosite datele, pentru a se realiza modelarea datelor [1].
Modelarea datelor se realizează printr-o combinaţie a punctelor de vedere.
Un prim punct de vedere, formulat în literatură sub numele de metoda top-down, va
scoate în evidenţă regulile derulării activităţii firmei, printr-o înţelegere foarte clară a
naturii afacerii, şi nu se va opri asupra detaliilor privind modul în care ecranele,
rapoartele sau documentele sunt folosite în organizaţie [1].
În afara metodei top-down, informaţiile necesare construirii modelului datelor se
pot obţine şi prin urmărirea documentaţiei firmei, ecrane, rapoarte, formulare, din
interiorul sistemului. Acest proces este cunoscut în literatura de specialitate sub numele
de metoda bottom-up [1].
Elementele rezultate vor figura în diagramele fluxurilor de date prin care vor fi
evidenţiate datele prelucrate în sistem şi de aici va rezulta necesarul de date menţinute în
baza de date a sistemului.
43
Sisteme informatice
La fel putem spune şi despre evenimente. Ele reprezintă asocieri între două sau mai
multe obiecte. Exemplu: CLIENT COMANDĂ PRODUS.
Entităţile conţin în structura lor atributele prin care ele sunt descrise.
O entitate este o persoană, un loc, un obiect, eveniment sau concept din domeniul
de activitate a utilizatorului despre care organizaţia doreşte să păstreze anumite date. Se
cuvine precizată diferenţa dintre tipurile entităţilor (entity types) şi cazurile/instanţele
entităţii (entity instances) [1].
Tipul entităţii, cunoscut şi sub numele de clasa entităţii, este o colecţie de entităţi
care au proprietăţi sau caracteristici comune. Fiecărui tip de entitate i se atribuie un nume.
Cât timp numele reprezintă o clasă sau un set de cazuri, el este singular. Şi încă o
convenţie. Cum referirea generală la elementele ce pot fi catalogate ca entităţi se poate
face prin noţiunea de obiect (deşi sensul lui poate fi altul în contextul analizei şi
proiectării orientate obiect), referirea la acesta se va realiza printr-un substantiv la
singular. Se vor folosi litere majuscule, plasate în interiorul dreptunghiului corespunzător
entităţii.
O instanţiere a entităţii sau instanţă, denumită de noi în continuare, caz al entităţii
sau caz, este o manifestare singulară a unui tip de entitate. Un tip de entitate se descrie o
singură dată prin modelul datelor, în timp ce mai multe cazuri ale acelui tip de entitate pot
fi reprezentate prin datele stocate în bazele de date. De exemplu, există o singură entitate
CLIENT, dar ea poate să aibă sute sau mii de cazuri/instanţe ale acestei entităţi stocate în
baza de date.
Atribute
Fiecare tip de entitate are un set de atribute asociate lui.
Un atribut este o proprietate sau o caracteristică a unei entităţi care prezintă interes
pentru organizaţie. La rândul lor, şi relaţiile pot avea propriile lor atribute.
Exemplu de entitate pentru aplicaţia DECONTĂRI şi unele dintre atributele
posibile:
CLIENT : CodClient, DenClient, AdresaC
Ca şi numele tipurilor entităţilor, numele atributelor sunt substantive scrise cu
majuscule, plasate în interiorul elipselor, legate de entitatea căreia i se asociază. De multe
ori însă, chiar şi în cazul folosirii produselor CASE, pentru a nu se încărca o diagramă
entitate-relaţie, se evită prezentarea atributelor. Operaţiunea se face, în schimb, în
repository, depozitul de informaţii despre proiect. Aici orice atribut se descrie separat, ca
orice obiect distinct.
Unul dintre exemplele anterioare poate fi reprezentat în diagramă conform fig. 3.5.
DenClien
t
44
Cheie candidat şi cheie primară
Fiecare tip de entitate trebuie să aibă un atribut sau un set de atribute prin care să se
efectueze diferenţierea unui caz de acelaşi tip.
O cheie candidat aste un atribut sau o combinaţie de atribute prin care se poate
identifica în mod unic un caz (o instanţă) al tipului entităţii respective.
Sunt entităţi care pot avea două sau mai multe chei-candidat. În exemplul nostru,
pot fi chei-candidat CodClient, NumeClient, AdresaC (presupunând că ele identifică în
mod unic un angajat). Atunci când sunt mai multe chei-candidat, proiectantul trebuie să
decidă care din ele va fi folosită drept cheie-primară.
O cheie-primară este o cheie-candidat care a fost selectată pentru a servi ca
identificator de cazuri în cadrul unui tip de entitate [1].
În reprezentările din DER, în elipsa sau elipsele aferente atributului sau atributelor
ce formează cheia primară, numele respective se subliniază (vezi CodClient din entitatea
CLIENT ).
Relaţiile entităţilor
Relaţiile reprezintă legăturile între componentele unei diagrame entitate-relaţie. O
relaţie este o asociere între cazurile/instanţele uneia sau mai multor tipuri de entităţi care
prezintă interes pentru organizaţie. Ele se pot simboliza printr-un romb. De regulă,
relaţiile sunt redate prin verbe.
Cardinalitatea relaţiilor
45
Sisteme informatice
DATA PROMOVĂRII
46
Figura 3.8. Redarea unei entităţi gerundive (asociative) [1]
Tipuri de relaţii
Din cele prezentate mai sus, rezultă că între entităţile descrise, luate două câte
două, se pot identifica trei tipuri de relaţii: unu-la-unu, unu-la-multe, multe-la-multe. În
diagrame, descrierea relaţiilor se face de-a lungul liniilor care leagă cele două entităţi.
Simbolul vârf-de-săgeată este cunoscut ca indicator al cardinalităţii (cardinality
indicator).
În cele ce urmează sunt prezentate exemple de tipuri de relaţii [1].
implică ARTICOL
VÂNZARE
face parte din VÂNDUT
47
Sisteme informatice
PRODUS FURNIZOR
este cumpărat de la
Cercul suprapus pe latura entităţii indică, de fapt, poziţia 0 (valoarea minimă poate
fi şi zero), conferind relaţiei caracterul opţional.
Un alt aspect se referă la caracterul obligatoriu al relaţiilor. Cu alte cuvinte, o
entitate poate exista fără cealaltă?
Să luăm exemplul vânzărilor. În relaţia 1:M, dintre VÂNZARE şi
ARTICOL_VÂNDUT. Ar fi total eronat ca o entitate să existe fără cealaltă: nu poate fi o
vânzare fără cel puţin un articol vândut şi, invers, un articol nu poate fi vândut fără o
vânzare (operaţiunea nu ar avea sens). Simbolul folosit pt a marca relaţiile obligatorii este
acelaşi cerc, cu deosebirea că este haşurat.
VÂNZARE ARTICOL
VÂNDUT
48
În practică, apar şi situaţii în care o entitate este pusă în relaţie cu ea însăşi.
Ne oprim la exemplul entităţii ANGAJAT. Unii dintre ei dobândesc statutul de
coordonatori ai activităţii celorlalţi, situaţii în care se poate apela la o diagramă de genul
celei din fig.3.15.
coordonator al
ANGAJAT
raportează la
Figura 3.15. Redarea relaţiei unei entităţi cu ea însăşi
PRODUCŢIA
ALTORA
MARFA
PRODUCŢIA
Figura 3.16. Exemplu de diagramă pentru relaţiile alternative
PROPRIE
Citirea diagramei este:
“O marfă se poate asocia sau cu un producător din afară, sau cu producţia unităţii”
“Un producător din afară poate livra mai multe mărfuri”
“O linie proprie de producţie poate livra mai multe mărfuri”
Deşi diagramele entitate-relaţie se cunosc de către mulţi specialişti din lumea bazelor de
date, ele constituie unul din conceptele esenţiale ale analizei şi proiectării structurate şi,
ca atare, provin din acest domeniu [1].
După cum reiese şi din citirea cu atenţie a numelui diagramei, scopul ei este de a
evidenţia entităţile de date (obiectele despre care se solicită păstrarea datelor) şi relaţiile
ce există între ele.
49
Sisteme informatice
50
3.4.1. Modelul Entitate/Relaţie (E/R)
Cercetările efectuate pentru definirea unui model de date care să permită
reprezentarea cât mai fidelă a realităţii au condus la definirea conceptului de model
semantic încă din 1976 când Chen a prezentat modelul Entitate-Relatie (E/R), care
constituie astăzi o tehnică larg acceptată pentru proiectarea bazelor de date.
Modelul E/R permite proiectantului bazei de date să elaboreze un model
conceptual de nivel înalt, fără a ţine seama de anumite constrângeri impuse de utilizarea
unui anumit SGBD, de o anumită platformă hardware, sau de anumite considerente de
eficienţă privind exploatarea bazei de date, ceea ce permite o reprezentare mai fidelă a
realităţii avute în vedere, constituind astfel o etapă intermediară în proiectarea unei baze
de date, fiind din acest punct de vedere asemănător pseudocodului utilizat în activitatea
de programare.
Modelul Entitate/Relaţie (E/R) permite reprezentarea schematică a realităţii
avute în vedere cu ajutorul unei diagrame E/R definită plecând de la conceptele de bază:
tip de entitate, tip de relaţie (legătură, corelaţie), atribut.
Pentru reprezentarea unor probleme complexe de tip bază de date, apărute
începând din anii 80, modelul de date semantic a fost extins cu noi concepte semantice,
rezultând astfel modelul entitate relaţie extins EER. În acest sens la conceptele de bază au
fost adăugate conceptele suplimentare de superclasă, subclasă şi moştenire.
O superclasă reprezintă un tip de entitate care conţine subclase distincte
care trebuie să fie reprezentate în cadrul modelului, iar o subclasă este un membru
al unei superclase. O subclasă, fiind un tip de entitate distinct, poate avea la rândul
său subclase, astfel încât se pot construi ierarhii de clase. O subclasă moşteneşte
toate atributele superclasei, putând avea în plus şi alte atribute. În diagrama EER,
pentru subclase se vor reprezenta numai atributele specifice subclasei.
Pentru elaborarea unei diagrame EER, se utilizează [11], [13] o serie de
simboluri reprezentate în figura 3.18.
51
Sisteme informatice
<nume tip
entitate> Apartenenţa atributului <nume atribut>
la tipul de entitate <nume tip entitate>
<nume
atribut>
Superclasa
52
APARTENENŢA SUBCLASEI LA
SUPERCLASĂ
Subclasa
m n
FURNIZORI Oferte PRODUSE
m n
PRODUSE Vânzări CLIENTI
VANZARI
PRODUSE STOCURI
1 53 Ieşiri n
Desfacere
Fig. 3.21. Subsistemul Urmărirea stocurilor.
Reprezentarea relaţiilor de tip 1-n Intrări, Ieşiri, pentru actualizarea stocurilor
Sisteme informatice
PRODUSE
Stradă Număr
Localitate
Oferta
PRODUSE
55
Sisteme informatice
CAPITOLUL 4
În cadrul acestui capitol este realizată prezentarea noului sistem prin prezentarea
tuturor intrărilor sistemului, a ieşirilor, precum şi a interfeţelor şi dialogurilor. Având în
vedere intrările şi ieşirile sisemului este prezentată proiectarea logică a bazei de date,
activitate prin care se urmăreşte transformarea diagramelor entitate-relaţie în relaţii.
Dacă în primele etape, au fost identificate şi structurate cerinţele sistemului, în faza
de proiectare logică se efectuează deplasarea atenţiei de la prezentarea a ceea ce există şi
ce se intenţionează la descrierea a ceea ce va însemna noul sistem, cum va funcţiona.
Modul de percepere a noului sistem se va reda prin prezentarea tuturor intrărilor
sistemului, a ieşirilor, precum şi a interfeţelor şi dialogurile. Ele se construiesc pe baza a
ceea ce s-a identificat în etapele anterioare, dar ţinându-se cont şi de cerinţele identificate
în timpul desfăşurării activităţilor din etapa de proiectare logică [1].
Toate intrările şi ieşirile sistemului, în faza de proiectare logică, vor fi prezentate ca
fluxuri ale datelor între un proces manual şi altul automat sau între o sursă/ destinaţie şi
un proces automat din diagramele fluxurilor de date. De regulă se poate proiecta câte un
formular sau raport pentru fiecare flux de date dintre utilizator şi sistem.
Documentaţia realizată în cadrul acestei etape constituie proiectul tehnic de
ansamblu al sistemului.
56
4.1.1. Proiectarea situaţiilor cu rezultate finale (rapoartelor)
Obiectivul prezentării detaliate a ieşirilor este şi acela de a determina formatul şi
conţinutul tuturor rapoartelor imprimate şi ale documentelor şi ecranelor furnizate de
sistem.
Proiectarea ieşirilor se va face astfel încât să servească pentru [2]:
transmiterea rezultatelor prelucrării pe calculator utilizatorului, într-o formă pe
care acesta să o înţeleagă şi în care să-şi regăsească cerinţele sale;
transmiterea proiectului situaţiilor finale programatorului, fără ambiguităţi,
pentru a-i permite acestuia trecerea la întocmirea programelor necesare editării
sau vizualizării.
În proiectarea ieşirilor, analistul trebuie să elaboreze un model demonstrativ al
raportului sau ecranului şi să întrebe utilizatorul dacă informaţiile din raport şi formatul
acestuia sunt accesibile. Dacă ieşirile sunt inacceptabile, analistul trebuie să le modifice
[1].
Un instrument util pentru formatul rapoartelor sau ecranelor realizate pe calculator
îl constituie macheta imprimantei [2].
Macheta imprimantei este reprezentarea de detaliu a situaţiei de ieşire, cuprinzând:
antet;
titlu;
date de identificare;
cap de tabel;
date elementare ce se imprima rând de rând;
totalurile.
detalii şi indicaţii tehnice de realizare care se referă la:
volumul datelor de ieşire;
frecvenţă;
număr de copii şi destinaţia fiecăreia;
grad de precizie al calculelor;
condiţii speciale de editare;
criterii de control, validare şi interpretare a datelor de ieşire.
Specificaţiile de ieşire vor cuprinde, pentru utilizator, macheta situaţiei iar pentru
programator macheta situaţiei şi o serie de indicaţii tehnice de realizare.
Pe baza specificaţiilor de ieşire se trece la proiectarea fizică prin care se alege
suportul informaţiilor de ieşire, se realizează definitivarea formei şi formatului de editare
a situaţiilor (aşezarea în pagina / ecran, spaţierea între coloane şi rânduri, etc.) şi se
definitivează procedurile de utilizare şi interpretare a ieşirilor [2].
Alegerea tipului de suport fizic de ieşire (imprimanta, display, disc fix, floppy disc,
banda magnetica etc.) se face în funcţie de: timpul de răspuns solicitat, amplasarea
utilizatorului faţă de calculator, hard-ul şi soft-ul existent, costul suportului, măsura în
care răspunde necesitaţilor de redare a conţinutului informaţional al situaţiei finale [2].
Când se pregătesc ieşirile, este bine să se ia în calcul ce se urmăreşte prin ele, astfel
încât apelarea la categoriile de date de mai sus să se efectueze în cunoştinţă de cauză.
57
Sisteme informatice
Respectarea unor cerinţe ale factorilor de decizie privind macheta situaţiei finale
O serie de cerinţe ale conducerii privind macheta situaţiei finale obligă proiectantul
la o anumită structurare şi machetare a situaţiilor finale. Informaţiile se pot împărţii în
două grupe prin prisma sistemelor informatice interne şi externe. Informaţiile interne
reprezintă acele informaţii culese, generate sau folosite în interiorul organizaţiei.
Informaţiile externe se referă la cele colectate sau create de la sau pentru parteneri străini
(facturi, rapoarte anuale, etc) [2].
În funcţie de informaţiile care pot fi văzute din punct de vedere al echipei
manageriale distingem: informaţii curente, de atenţionare, indicatori de bază, etc.
Restricţii tehnice
În proiectarea situaţiilor finale intervin o serie de restricţii datorate caracteristicilor
şi performanţelor tehnice ale echipamentelor periferice şi anume: numărul maxim de
caractere pe linie; numărul maxim de linii pe pagina / ecran; facilităţile de imprimare etc.
Pe piaţă se afla o gamă variată de echipamente de redare a rezultatelor. Există mai multe
tipuri de imprimante, console şi terminale video, ceea ce creează posibilitatea unei alegeri
adecvate a perifericelor destinate obţinerii diverselor tipuri de situaţii finale [2].
Elemente de eficienţă
În proiectarea situaţiilor finale nu trebuie sa scape atenţiei şi aspectele de eficientă
economică privind: reducerea timpului calculator consumat cu editarea propriu-zisa a
situaţiilor; economie de hârtie de imprimantă. Abilitatea şi experienţa proprie a
programatorilor joacă în acest sens un rol important.
În vederea optimizării obţinerii situaţiilor finale pe imprimantă se pot folosi de la
caz la caz, diverse tehnici cum ar fi: editarea mai multor tabele pe aceeaşi pagină de
imprimantă; editarea unei situaţii imprimând faţă/verso pe aceeaşi coală;
Pentru a nu irosi timp cu editarea unor situaţii finale voluminoase se recomandă
mai întâi rularea unor programe scurte care să verifice cheile de control aplicate. Numai
dacă aceste chei sunt corecte, eventual verificate şi de utilizator, se poate lansa editarea
analitica a situaţiilor finale. Programele care editează situaţii finale voluminoase trebuie
prevăzute cu posibilitatea de întrerupere (respectiv de reluare a editării în cazul unor
incidente ivite în timpul rulării) sau editarea lor sub forma unui fişier ASCII sau text pe
hard disc sau floppy disc, urmând imprimarea ulterioara a acestui fişier, total sau parţial
[2].
58
Lizibilitate – spaţiere
Parcurgerea unei situaţii finale trebuie să fie cât mai uşoara, “citirea” unei situaţii
nu trebuie să dea naştere la ambiguităţi. Este necesar ca situaţia sa fie autoexplicativă.
Pentru aceasta, antetul va conţine informaţii şi coduri ce vor indica sursa de emitere a
raportului, exprimând clar, sintetic, conţinutul raportului şi perioada la care se referă.
Capul de tabel, împreuna cu titlul şi antetul, se afişează pe următoarele pagini
numai dacă au intervenit schimbări în cadrul caracteristicilor de grupare faţă de prima
pagină, altfel se imprimă doar numerotarea coloanelor de tabel.
Informaţiile importante pot fi subliniate. Totalurile se separă de informaţiile
analitice. Informaţiile care se repetă pe linii succesive se imprimă o singură dată [2].
Utilizarea formularelor pretipărite
Aceasta implica utilizarea unei hârtii de imprimanta ce cuprinde elemente fixe ale
situaţiei finale, cum ar fi antetul, titlul, capul de tabel, textul explicativ etc. Aceasta
conduce la o creştere a vitezei de editare şi o diminuare a uzurii imprimantelor, riboanelor
etc. Totodată situaţiile obţinute sunt mai estetice şi sunt uşor de parcurs de utilizatori [2].
Utilizarea monitoarelor sau terminalelor video
Prin intermediul unui soft adecvat, monitoarele sau terminalele video oferă
posibilitatea afişării situaţiilor finale, atât în regim alfanumeric, cât şi în regim grafic,
alegerea modului de lucru făcându-se prin intermediul unor comenzi sau comutatori.
Ecranul unui terminal video în regim alfanumeric este alcătuit din linii şi coloane
iar în regim grafic ecranul este privit ca o matrice de puncte denumite “pixeli”.
Reprezentarea informaţiilor de ieşire sub forma grafică reprezintă un pas înainte
faţă de editarea sub forma de text a rapoartelor. Această formă de afişare se recomandă
factorilor de decizie de pe nivelele de conducere superioare, dat fiind gradul de sintetizare
a informaţiilor de ieşire şi volumul redus al rapoartelor.
Pe lângă problemele legate de aşezarea informaţiilor pe ecran, la proiectarea
ecranelor de ieşire se iau în considerare şi facilităţile oferite de monitoare sau terminalele
video şi anume: regimul de lucru (defilare ecran, pagina sau linie); regimul de afişare
(normal, mai luminos, cu intermitente, invers video); regimul de semnalizare sonoră
(normal, semnal sonor după afişarea unui câmp etc.) [2].
Utilizarea generatoarelor de rapoarte ( REPORT WRITER )
Multe limbaje de programare, pachete de programe şi sisteme de gestiune a bazelor
de date dispun de module specializate în editarea de rapoarte, ceea ce conduce la
reducerea considerabila a eforturilor programatorilor. De obicei, aceste generatoare
solicită precizarea titlului, antetului de coloană, conţinutul unui rând de date (de detaliu),
gradele de total şi maniera lor de afişare, la începutul sau la sfârşitul grupului de date, al
paginii sau raportului. De asemenea, se pot selecta dimensiunea unei linii, coloane,
pagini, spaţierea dintre linii, coloane, afişarea datelor privind momentul listării, statistici
etc.
Astfel de module specializate există în pachete de programe pentru gestionarea
bazelor de date cum ar fi: ACCESS, d’BASE, ORACLE, FOXPRO, PARADOX, etc.
59
Sisteme informatice
60
La proiectarea machetei documentelor de intrare (indiferent de metodele de
prelucrare a datelor folosite ulterior) sunt respectate câteva reguli care să înlesnească
completarea şi apoi utilizarea documentului atât pentru prelucrarea automată a datelor cât
mai ales pentru necesităţile curente ale salariaţilor societăţii economice. Nu este
recomandabil să dublăm documentele primare, prin proiectarea unor documente destinate
exclusiv preluării datelor pentru necesităţile prelucrării automate [2].
Macheta documentului primar trebuie să conţină:
antetul–ce reprezintă denumirea unităţii şi/sau a serviciului care-l emite;
denumirea documentului;
coduri de identificare,
data documentului;
rubrici /casete/ rânduri pentru denumirea informaţiilor cantitativ-valorice şi coduri;
rubrici /casete /spaţii pentru semnături şi ştampile;
text explicativ, eventual indicaţii de completare şi verificare.
În ordonarea informaţiilor pe document, deci în rubricarea documentului se va ţine
seama de câteva reguli: antetul se plasează în stânga sus; codurile şi alte informaţii de
identificare se plasează în dreapta sus; sensul natural de parcurgere este de sus în jos şi de
la stânga la dreapta; zonele de document ce se completează de compartimente/ persoane
diferite se marchează / grupează distinct; mărimea şi spaţierea documentului, distanţa
dintre rânduri, dimensiunea rubricilor, depind de locul şi modalitatea de completare
(manual, dactilo, automat) precum şi de nivelul de calificare a personalului ce
completează documentul.
Aşezarea rubricilor pe document trebuie să respecte ordinea firească de folosire a
documentului şi nu ordinea de utilizare a datelor în programe. Ordinea de culegere a
datelor este suficient a fi precizată prin numerotarea rubricilor sau simpla lor încadrare în
chenar sau utilizarea de litere îngroşate în denumirea rubricilor implicate în dialogul
operator-calculator.
Atunci când documentul există într-o formă pe hârtie, în varianta pe calculator se
va urmări păstrarea în mare măsură a structurii existente, dar cu adaptări specifice noului
mediu.
Regulile de control şi procedurile de validare a datelor de intrare trebuie să
cuprindă [2]:
reguli de verificare a volumului, secvenţei documentelor şi a cifrelor de control (dacă
este cazul) pe pachetele de documente primare;
reguli pentru controlul sintactic şi semantic a datelor din documentele primare.
Aceste reguli se referă la: încadrarea indicatorilor numerici (în limitele de
verosimilitate), corelaţii logice (între indicatorii înscrişi în acelaşi document, sau cu
alţi indicatori din baza de date), prezenţa unor informaţii obligatorii (apartenenţa
codurilor la nomenclatoarele de coduri specifice aplicaţiei informatice) etc. Aceste
reguli sunt necesare pentru scrierea programelor de verificare logică a datelor de
intrare.
Proiectarea formularelor(videoformatelor) de intrare pentru introducerea datelor
de intrare se face în funcţie de modul concret de desfăşurare a dialogului operator-
calculator. Acest dialog se poate desfăşura sub formă de [2]:
61
Sisteme informatice
4.1).
Figura 4.1. Formularul(macheta) de intrare pentru facturi
În proiectarea formularelor de intrare pot fi utilizate componente specializate în
acest sens din sistemele de gestiune a bazelor de date cum ar fi ACCESS, dBASE,
ORACLE, PARADOX precum şi programe scrise în diverse limbaje de programare.
62
4.2. Proiectarea interfeţelor şi a dialogurilor
Interfaţa cu utilizatorul - reprezintă o parte a aplicaţiei software care permite
utilizatorilor să-si exprime intenţiile de operare asupra calculatorului şi să interpreteze
rezultatele acţiunilor efectuate de maşină.
Prin proiectarea dialogurilor şi a interfeţelor se definesc modalităţile prin care
oamenii şi calculatoarele schimbă informaţii [1].
Metode de interacţiune
Metodele cele mai utilizate sunt [1]:
interacţiunea prin limbaj-comandă (în acest tip de interacţiune utilizatorul transmite
calculatorului comenzile sub forma unui şir de caractere)
interacţiunea prin meniuri(utilizatorul transmite comenzile sale calculatorului prin
intermediul unui sistem de meniuri şi opţiuni de meniu sau folosind scurtături sub
formă de combinaţii de taste).
interacţiunea bazată pe obiecte icons(comunicarea se face prin intermediul desenelor.
Imaginile folosite funcţionează ca butoanele, la apăsarea lor se activează o anumită
funcţie sau comandă)
interacţiunea prin limbaj natural(comenzile se transmit folosind vocea şi
sintetizatoarele de voce pentru redarea rezultatelor)
Proiectarea dialogurilor
Proiectarea dialogurilor este procesul prin care sunt proiectate toate secvenţele
folosite de utilizator pentru a comunica cu un sistem informatic. Rolul proiectantului este
de a selecta cele mai potrivite metode şi echipamente, precum şi de a prezenta condiţiile
în care se pot afişa informaţiile sau se pot obţine de la utilizator.
63
Sisteme informatice
MO1
MENIU_PRINCIPAL
MO2
PO2 PO1
MENIU_INTERO
GARE
ADĂUGARE ŞTERGERE
PO4 PO3
PROCES
MENIU I_DUPĂ_AN I_DUPĂ_NUME
64
şi interfeţelor. Modelarea logică a datelor se realizează nu numai pe baza diagramei
entitate-relaţie, ci şi pe baza machetelor formularelor şi a rapoartelor. Se efectuează
analiza datelor elementare din intrările şi ieşirile sistemului pentru a se desprinde
legăturile dintre ele.
Prin modelarea logică a datelor se urmăreşte:
structurarea performantă a datelor prin procesul de normalizare
obţinerea unui model logic al datelor din care să se poată realiza proiectul bazei de
date fizice, adică modelul relaţional – cel mai utilizat în prezent, deşi se pot obţine şi
modelele reţea, ierarhic sau orientate-obiect;
realizarea unui model al datelor care să răspundă cerinţelor actuale de date regăsite în
formulare şi rapoarte. Modelarea logică este un proces ascendent (bottom-up, de jos
în sus) de obţinere a relaţiilor din formulare şi rapoarte prin transformarea modelului
entitate-relaţie într-o formă relaţională.
Modelarea logică a datelor descrie datele cu ajutorul unei notaţii speciale, care
corespunde unui mod de organizare a acestora de către un sistem de gestiune a bazelor de
date.
Procesul de modelare a datelor este complex. În fiecare etapă a ciclului de viaţă se
regăseşte câte o activitate specifică datelor după cum urmează [1]:
Analiza – Modelele conceptuale ale datelor, prezentarea DER;
Proiectarea logică – Modelul logic al datelor(relaţional);
Proiectarea fizică – Proiectarea fizică a bazelor de date şi a fişierelor (organizarea
fişierelor);
Implementarea – Descrierea fişierelor şi a bazelor de date.
După cum prezintă profesorul Oprea D. În “Analiza şi proiectarea sistemelor
informaţionale economice” în procesul de modelare logică există patru paşi esenţiali:
1. Realizarea unui model logic al datelor din perspectiva utilizatorului (formulare şi
rapoarte) privind aplicaţia, folosindu-se principiile normalizării;
2. Contopirea tuturor perspectivelor normalizate ale utilizatorilor într-un model logic
consolidat (centralizat) al datelor, numit şi integrarea perspectivelor;
3. Transformarea modelului conceptual al datelor (entitate-relaţie), realizat fără să se
ţină cont de perspectiva utilizatorului, într-un set de relaţii normalizate;
4. Compararea modelului logic consolidat al datelor cu modelul transformat al entităţii-
relaţie şi realizarea, prin integrarea perspectivelor, a unui model logic final al datelor
aplicaţiei.
Rezultatele obţinute prin parcurgerea celor patru paşi pot fi ilustrate prin
intermediul unor exemple oferite în literatura de specialitate de McFadden şi Hoffer [1].
Primul pas al modelării logice se poate explica prin două rapoarte solicitate de
utilizatori, reprezentând perspectiva utilităţii sistemului din punctul lor de vedere:
cel mai bun client al produsului X(ecran);
situaţia comenzilor în curs;
Ecranul “Cel mai bun client al produsului X”, prin percepţia utilizatorului, are
următorul format:
Pagina 1
COD PRODUS
CANTITĂŢI_DE_LIVRAT
A1111 0
A2222 0
B1111 150
Y9999 100
PRODUS(COD_PRODUS)
COMANDA(NR_COMANDA, DATA_COMANDA)
LINIE_COMANDA(NR_COMANDA, COD_PRODUS,
CANTITATE_COMANDATA)
LIVRARE(COD_PRODUS, NR_FACTURA, CANTITATE_LIVRATA)
FACTURA(NR_FACTURA, DATA_FACTURA)
66
Pasul al doilea presupune comasarea perspectivelor utilizatorilor şi crearea unui set
integrat al relaţiilor, rezultând următoarele relaţii:
CLIENT(COD_CLIENT, NUME)
PRODUS(COD_PRODUS)
FACTURA(NR_FACTURA, DATA_FACTURA)
COMANDA(NR_COMANDA, COD_CLIENT, DATA_COMANDA)
LINIE_COMANDA(NR_COMANDA, COD_PRODUS,
CANTITATE_COMANDATA)
LIVRARE(COD_PRODUS, NR_FACTURA, CANTITATE_LIVRATA)
CLIENT FACTURA
Lansează Facturare
CANTITATE_LIV
COMANDA
NR_COMANDA Livrar
e
PRODUS
Linie_comandă 67
COD_PRODUS DENUMIRE
CANTITATE_
COMANDATA
Sisteme informatice
Pasul al patrulea compară modelul obţinut din pasul doi cu cel din pasul trei şi
integrează perspectivele utilizatorilor în vederea obţinerii unui model logic final, după
cum urmează:
CLIENT(COD_CLIENT, NUME, ADRESA)
PRODUS(COD_PRODUS, DENUMIRE)
FACTURA(NR_FACTURA, NR_COMANDA, DATA_FACTURA)
COMANDA(NR_COMANDA, COD_CLIENT, DATA_COMANDA)
LINIE_COMANDA(NR_COMANDA, COD_PRODUS,
CANTITATE_COMANDATA)
LIVRARE(NR_FACTURA, COD_PRODUS, CANTITATE_LIVRATA)
68
cauza normalizării nu este necesară o corespondenţă unu-la-unu între entităţi şi relaţii
[1].
Dependenţe funcţionale
Penru definirea acestui tip de dependenţe se consideră schema de relaţie
Prestari_Servicii (Cod, Nume_client, Adresa, Serviciu_prestat, Valoare)
definită pentru urmărirea serviciilor prestate de o firmă pentru diverşi clienţi.
Atributul Adresa este dependent de atributul Nume_client (presupunând că fiecare client are
o singură adresă, rezultă că fiecare valoare a atributului Nume_client determină în mod
unic valoarea corespunzătoare a atributului Adresa). Analizând schema de relaţie de mai
sus, se constată o redundanţă relativ la atributul Adresa a cărei valoare este repetată pentru
un client pentru fiecare serviciu prestat pentru acest client, ceea ce conduce la apariţia
următoarelor anomalii:
- Anomalia la adăugare:
adresa unui client poate fi preluată numai după ce pentru acesta se prestează cel puţin un
serviciu.
- Anomalia la ştergere:
dacă se şterg toate serviciile prestate pentru un anumit client, se pierde adresa acestui client.
- Anomalia la actualizare:
datorită redundanţei relativ la atributul Adresa, dacă se schimbă adresa unui client este
necesară parcurgerea întregii relaţii pentru a identifica şi actualiza toate apariţiile acestui
client, în caz contrar baza de date devine inconsistentă (acelaşi client poate apare la adrese
diferite).
Aceste anomalii pot fi eliminate, dacă schema de relaţie Prestari_Servicii se
înlocuieşte prin următoarele două scheme de relaţie:
Clienti(Cod, Nume_client,
Adresa)
Servicii(Cod, Serviciu_prestat,
Valoare).
Relaţia Clienti conţine codul, numele şi adresa fiecărui client, fără nici un fel de
redundanţă, iar relaţia Servicii conţine serviciile prestate pentru fiecare client şi valorile
acestor servicii. Un dezavantaj al descompunerii relaţiei iniţiale în cele două relaţii este
69
Sisteme informatice
acela că pentru a determina adresa clientului pentru care s-a prestat un anumit serviciu
este necesară efectuarea unei operaţii de cuplare a relaţiilor Clienti şi Servicii.
Se consideră o schemă de relaţie R şi A,B două atribute simple sau compuse ale schemei
de relaţie R. Atributul A determină funcţional atributul B sau B depinde funcţional de A,
dacă şi numai dacă oricărei valori a atributului A îi corespunde o singură valoare a
atributului B (se notează A->B).
Dependenţa funcţională A->B este totală dacă nu există nici un subset C al
atributului A (CcA) astfel încât C->B şi este parţială în caz contrar.
În relaţia Prestari_Servicii, una din dependenţele funcţionale care poate fi pusă în
evidenţă este Nume_client->Adresa.
Deoarece într-o relaţie orice cheie identifică în mod unic fiecare tuplă a relaţiei,
deci determină în mod univoc valorile atributelor tuplei, rezultă că în orice relaţie
atributele sunt dependente funcţional faţă de cheile acesteia.
Se pot face, până în acest moment, următoarele precizări:
Eliminarea dependenţelor funcţionale din schemele de relaţie şi a consecinţelor
negative (redundanţa datelor; anomaliile de adăugare, ştergere, actualizare) se realizează
prin descompunerea schemei date într-o colecţie de scheme mai simple în care sunt evitate
neajunsurile mai sus menţionate. Reconstituirea relaţiei iniţiale se poate face prin operaţia
de cuplare (uniune). Pentru ca descompunerea schemei de relaţie să fie echivalentă cu
relaţia iniţială, trebuie să fie îndeplinite condiţiile:
- cuplare fără pierdere de informaţie;
- conservarea dependenţelor (dependenţele funcţionale din relaţia iniţială trebuie să
se regăsească în relaţiile rezultate prin descompunere).
Formele normale sunt scheme de relaţie echivalente obţinute prin descompunerea
unor scheme de relaţie în vederea eliminării redundanţei datelor şi anomaliilor la
adăugare, actualizare, ştergere înregistrări în baza de date. Descompunerile schemelor de
relaţii în scheme de relaţii echivalente având în vedere dependenţele funcţionale conduc
la definirea primelor 4 nivele de forme normale şi anume: prima formă normală (FN1), a
doua formă normală (FN2), a treia formă normală (FN3) şi forma normală Boyce-
Codd (FNBC).
A patra formă normală (FN4) este definită având în vedere dependenţele
multivalorice, iar a cincea formă normală (FN5) este definită având în vedere
dependenţele de cuplare. Începând de la prima formă normală şi până la forma normală FN5
se impun condiţii din ce în ce mai restrictive asupra relaţiilor. Astfel o relaţie aflată pe un
anumit nivel de normalizare (FN5) satisface toate restricţiile cerute de nivele inferioare de
normalizare (FN1, FN2, FN3, FNBC, FN4). În cele ce urmează sunt date definiţiile
formelor normale având în vedere dependenţele funcţionale.
O relaţie R este în prima formă normală (FN1) dacă şi numai dacă toate
atributele sale iau numai valori atomice (nu pot fi descompuse). Spre exemplu, atributul
Adresa ar putea fi considerat un atribut neatomic dacă în cadrul adresei ne-ar interesa
localitatea, strada etc., caz în care trebuie descompus în atribute atomice.
O relaţie R este în a doua formă normală (FN2) dacă este în FN1 şi orice atribut
neprim este total dependent faţă de orice cheie a relaţiei (atributele prime sunt atribute care
70
fac parte dintr-o cheie a relaţiei şi cele neprime sunt atributele care nu aparţin nici unei chei
a relaţiei).
O relaţie R este în a treia formă normală (FN3) dacă este în FN2 şi nici un atribut
neprim nu este funcţional dependent faţă de un alt atribut neprim al relaţiei.
O relaţie R se află în forma normală Boyce-Codd (FNBC) dacă singurele
dependenţe funcţionale admise sunt cele în care o cheie determină un alt atribut (nici un
atribut prim sau neprim nu poate fi dependent funcţional faţă de un alt atribut dacă acesta
nu este sau nu conţine o cheie).
Dependenţe multivalorice
Pentru ilustrarea acestui tip de dependenţe se ia în considerare următoarea schemă
de relaţie:
Clase(Clasa, Discipline, Elevi)
ce conţine clasele dintr-o instituţie de învăţământ, iar pentru fiecare clasă sunt înregistrate
disciplinele ce se predau şi elevii înmatriculaţi în clasa respectivă. Se poate constata că
relaţia Clase poate rezulta prin operaţia de cuplare după atributul Clasa a următoarelor
două relaţii:
CD(Clasa, Discipline)
CE(Clasa, Elevi)
În relaţia Clase, presupunând că pentru o clasă dată, fiecare elev frecventează toate
disciplinele înregistrate pentru acea clasă, există dependenţele multivalorice:
Clasa ->> Discipline
Clasa ->> Elevi.
Ca şi în cazul dependenţelor funcţionale, existenţa dependenţelor multivalorice prezintă
aceleaşi neajunsuri privind redundanţa datelor şi anomalii la efectuarea operaţiilor de
adăugare, actualizare şi ştergere înregistrări în baza de date.
O relaţie R este în a patra formă normală dacă singurele dependenţe multivalorice
admise sunt cele determinate de un alt atribut care este o cheie sau care conţine o cheie a
relaţiei.
Întrucât orice dependenţă funcţională este un caz particular de dependenţă
multivalorică, rezultă că orice relaţie care se află în forma normală FN4, se află şi în forma
normală FNBC. Transformarea unei relaţii într-o colecţie de relaţii care să se afle în FN4
este similară cu trecerea în FNBC, însă trebuie avută în vedere atât eliminarea
dependenţelor funcţionale cât şi a dependenţelor multivalorice.
În concluzie, putem afirma că în cazul formelor normale de la FN1 la FN4,
trecerea de la o formă normală la alta s-a făcut prin descompunerea unei relaţii în altele
două, urmărindu-se eliminarea dependenţelor funcţionale şi multivalorice. O relaţie aflată în
forma normală FN4 nu mai poate fi descompusă în continuare pe baza acestei metode.
Există situaţii când relaţii aflate în FN4 conţin redundanţe şi prezintă anomalii la operaţiile
de adăugare, ştergere şi actualizare. Aceste anomalii sunt cauzate de existenţa
dependenţelor de cuplare şi pot fi eliminate prin descompunerea relaţiei în 3 sau mai multe
relaţii a căror cuplare are ca rezultat relaţia iniţială.
Dependenţe de cuplare
71
Sisteme informatice
72
normalizarea completă, până la FN5, s-ar putea să fie dezavantajoasă. Având în vedere
constatările de mai sus se poate afirma că deşi normalizarea nu reprezintă o soluţie
general valabilă în orice situaţie, totuşi dacă pentru proiectarea bazei de date se
aplică corect o metodologie de proiectare descendentă, modelul rezultat va fi de la sine
normalizat. Cercetările în acest domeniu continuă, fiind definite şi alte forme normale printre
care FN6 pentru baze de date temporale. O bază de date temporală, pe lângă datele curente,
conţine şi date istorice, iar factorul (atributul) timp are un rol esenţial (exemple concludente
de astfel de baze de date sunt depozitele de date). Astfel, în proiectarea unei baze de date
temporale trebuie avute în vedere şi alte operaţii de descompunere a schemelor de relaţie şi
anume:
- descompunerea orizontală – pentru separarea datelor curente de datele istorice;
- descompunerea verticală – pentru separarea atributelor aceleiaşi entităţi având în vedere
valorile lor raportate la atributul temporal.
În proiectarea unei baze de date nu este exclusă nici operaţia inversă normalizării
numită denormalizare [12], prin care se urmăreşte înlocuirea unei colecţii de scheme de
relaţie cu o schemă de relaţie echivalentă în vederea eliminării necesităţii efectuării unor
operaţii de cuplare care pot fi costisitoare. Dacă în cazul normalizării tendinţa este de a
ajunge la nivele cât mai înalte (FN5), pentru denormalizare nu există criterii clare putând
fi avute în vedere doar aspecte legate de performanţele anumitor aplicaţii.
Un alt principiu care se urmăreşte în proiectarea unei baze de date este principiul
proiectării ortogonale conform căruia în cadrul unei baze de date două scheme de relaţie
reale (variabile de relaţie de bază) nu trebuie să aibă semnificaţii suprapuse. În timp ce
prin normalizare se urmăreşte reducerea redundanţei din cadrul unei scheme de relaţie,
prin proiectarea ortogonală se urmăreşte reducerea redundanţei dintre schemele de relaţie.
73
Sisteme informatice
Definirea domeniului
Un domeniu este o mulţime de valori caracterizată printr-un nume. Un domeniu se
poate defini explicit prin enumerarea tuturor valorilor aparţinând acestuia sau definind o
proprietate distinctivă a domeniului valorilor, de cele mai multe ori limita superioară şi
limita inferioară [Popescu I, 1996]. De exemplu:
D1: {“F”,”M”} -definire explicită
D2: {x| xN, x [0,100]} -definire implicită
D3: {s|s=şir de caractere} -definire implicită
Pentru un ansamblu de domenii D1,D2,…,Dn produsul cartezian al acestora
reprezintă ansamblul tuplurilor (elemente ale unei relaţii) <v 1,v2,…,vk> unde vi este un
element care aparţine domeniului Di. De exemplu, tuplurile <“Maria”,”F”,”50” >,<
“Vasile”,”M”,”60”> aparţin produsului cartezian D3xD1xD2.
Definirea relaţiei
O relaţie R pe mulţimile D1,D2,…,Dn este o submulţime a produsului cartezian
D1xD2x…xDn, deci o mulţime de tupluri [Popescu I, 1996].
Considerând că nu se cunosc decât două persoane, relaţia R se defineşte prin
tuplurile care descriu aceste persoane, şi anume:
R: {<“Maria”,”F”,”50”>,<“Vasile”,”M”,”60”>}
O relaţie poate fi reprezentată printr-un tabel bidimensional în care fiecare linie
corespunde unui tuplu şi fiecare coloană corespunde unui domeniu.
R: D3 D1 D2
“Maria” “F” 50
“Vasile” “M” 60
Definirea atributului
În timp ce tuplurile dintr-o relaţie trebuie să fie unice, un domeniu poate apare de
mai multe ori în produsul cartezian pe baza căruia este definită relaţia [Popescu I, 1996].
74
PERS D3 D1 D2 D3
“Maria” “F” 50 “Vasile”
“Vasile” “M” 60 “Maria”
75
Sisteme informatice
76
CAPITOLUL 5
77
Sisteme informatice
78
Partajarea datelor permite înlănţuirea tranzacţiilor solicitate simultan pe aceeaşi
înregistrare din baza de date, prin blocarea cererilor în aşteptare şi deservirea ulterioară a
acestora.
79
Sisteme informatice
80
Portabilitatea sistemului de gestiune privit prin prisma portabilitaţii datelor se
referă la posibilitatea de a folosi o serie de date utilizate în cadrul unui sistem informatic
de către un alt sistem informatic, deci posibilitatea integrării fişierelor deja existente în
cadrul unui alt sistem.
b) Costul sistemului. Acest criteriu trebuie privit prin prisma: timpului de ocupare a
unităţii centrale; costului de întreţinere şi dezvoltare; resurselor hard imobilizate; costului
de adaptare şi trecere pe un nou sistem de calcul; costul documentaţiei etc.
c) Facilităţile de implementare, întreţinere şi exploatare a bazei de date. Acestea
sunt reflectate prin: modalitatea de descriere a datelor; tehnicile de organizare şi regăsire
a datelor, care să permită un acces cât mai rapid la orice informaţie; timpul cât mai redus
pentru actualizare, căutare şi răspuns la cererile de informare; editarea operativă a celor
mai variate tipuri de situaţii solicitate de către utilizator; posibilitatea de inserţie a unor
programe de aplicaţie, programe de validare de date, de actualizare, rutine statistice,
rutine de sortare, rutine de prezentare grafică a ieşirilor etc.
d) Posibilitatea gestionarii structurilor complexe de date.
e) Multitudinea metodelor de acces. In funcţie de cerinţele proprii aplicaţiei,
sistemul va trebui să suporte interogări sau actualizări în timp real având proceduri de tip
conversaţional.
f) Protecţia şi securitatea datelor din bază.
g) Specificul aplicaţiei. Este cunoscut faptul că programele sunt orientate pe
aplicaţii, cum ar fi: programarea producţiei, aprovizionare-desfacere, optimizări,
prognoze etc.
Toate aceste criterii de alegere pot fi corelate cu o serie de factori complementari
cum ar fi: mentenanţa sistemului, facilităţile ce le oferă administratorului bazei de date,
calitatea documentaţiei oferite de furnizori, asistenţă în implementarea sistemului şi în
pregătirea utilizatorilor etc.
Toţi aceşti factori alături de criteriile enunţate pot să influenţeze succesul în
implementarea SGBD-ului şi eficienţa economică pe ansamblul sistemului informatic.
În cele ce urmează se vor prezenta o serie de aspecte privind utilizarea limbajului
SQL pentru crearea bazei de date, definirea utilizatorilor şi acordarea drepturilor de acces,
definirea interogărilor bazei de date, precum şi exemple practice sub SGBD ORACLE.
81
Sisteme informatice
82
Comenzi pentru optimizarea interogărilor
Una din principalele căi de optimizare a timpilor de interogare a unei baze de
date este indexarea. Un index poate fi privit ca o relaţie cu două atribute şi anume:
- primul atribut conţine valorile atributelor relaţiei după care se crează indexul;
- al doilea atribut conţine un pointer (adresa) la locaţia tuplelor
corespunzătoare.
Crearea unui index se realizează cu comanda:
CREATE [UNIQUE] INDEX <nume index>
ON <nume relaţie>(<nume atribut>[ASC|DESC],…)
Dacă pentru atributele utilizate în clauza WHERE a unor instrucţiuni SQL au fost creaţi
indecşi, atunci aceştia vor fi utilizaţi în vederea optimizării timpului de prelucrare.
Decizia de utilizare sau nu a unui index este luată de limbajul SQL şi nu de utilizator.
Pentru aceasta fiecare model de limbaj SQL dispune de o componentă numită
optimizator, care examinează interogarea şi decide care este modul optim de obţinere a
rezultatului.
O altă tehnică de optimizare a interogărilor este tehnica “clustering” disponibilă
în ORACLE şi care constă în gruparea tuplelor din mai multe relaţii şi stocarea lor în
aceeaşi zonă pe disc.
Controlul datelor (comenzi DCL)
Vederi
O vedere este o relaţie virtuală, definită plecând de la alte relaţii din baza de date
şi care nu conţine date şi deci nu ocupă spaţiu fizic pe disc. Vederile se definesc în două
scopuri şi anume:
- pentru a simplifica accesul utilizatorilor la date;
- pentru a asigura protecţia şi securitatea datelor –fiecărui utilizator fiindu-i permis
acces la o porţiune a bazei de date şi putând efectua doar anumite operaţii (conform
drepturilor de acces specificate cu comenzile GRANT/REVOKE).
Asupra unei vederi se pot efectua aceleaşi operaţii ca şi asupra unei relaţii cu deosebirea
că vederile nu conţin date şi că orice modificări efectuate asupra datelor sunt reflectate şi
în vederi. Astfel, asupra unei vederi se pot realiza operaţiile:
- creare vedere (CREATE VIEW);
- creare sinonim pentru vedere (CREATE SYNONIM);
- ştergere vedere (DROP VIEW);
- interogare vedere (SELECT);
- actualizare date din vedere (UPDATE);
- ştergere date din vedere (DELETE);
- adăugare date (INSERT).
Crearea unei vederi – se realizează cu comanda CREATE VIEW care are sintaxa:
CREATE VIEW <nume vedere> [<lista atribute>]
AS <fraza SELECT> [WITH CHECK OPTION]
Exemplu:
CREATE VIEW StocuriD1(Codp,Denp,Ump,Cant,Pret,Valoare)
AS SELECT Stocuri.Codp, Denp,Ump,Cant,Pret,Cant*Pret FROM
Produse,Stocuri
83
Sisteme informatice
84
Parola stabilită pentru un utilizator poate fi modificată printr-o comandă GRANT
ulterioară spre exemplu astfel:
GRANT RESOURCE TO <nume utilizator> IDENTIFIED BY <noua parolă>
Unui utilizator căruia i s-a acordat un tip de autorizare îi pot fi acordate şi alte tipuri de
autorizare prin comenzi GRANT ulterioare.
Retragerea autorizărilor acordate unui utilizator se realizează cu comanda:
REVOKE <autorizare,…> FROM <nume utilizator>
Nivelul 2 de securitate a datelor
Pentru acordarea respectiv retragerea drepturilor de acces la relaţii se utilizează
comenzile GRANT respectiv REVOKE cu următoarea sintaxă:
GRANT ALL|<drept de acces>,… ON <nume relaţie>
TO <nume utilizator>|PUBLIC [WITH GRANT OPTION]
respectiv
REVOKE ALL|<drept de acces>,… ON <nume relaţie> FROM <nume utilizator>|
PUBLIC
Privilegiile (drepturile de acces) pot fi acordate sau retrase de următoarele categorii de
utilizatori:
- utilizatorii cu nivel de autorizare DBA;
- proprietarii relaţiilor;
- utilizatorii autorizaţi cu opţiunea WITH GRANT OPTION.
Prin specificarea PUBLIC acordarea respectiv retragerea drepturilor de acces se
aplică tuturor utilizatorilor.
Prin specificarea WITH GRANT OPTION, utilizatorul respectiv poate la rândul
său să acorde aceleaşi drepturi sau mai puţine altor utilizatori.
În ORACLE pot fi acordate următoarele drepturi de access asupra relaţiilor:
SELECT, INSERT, DELETE, ALTER, UPDATE, CREATE,DROP pentru tabele şi indecşi.
Drepturile de acces pot fi acordate asupra întregii relaţii, sau doar asupra
anumitor atribute ale relaţiei.
Exemple:
Acordarea tuturor drepturilor de acces utilizatorilor Ionescu, Popescu, asupra
relaţiei Persoane care aparţine utilizatorului Vasilescu se realizează prin comanda:
GRANT ALL ON Vasilescu.Persoane TO Ionescu,Popescu
Acordarea tuturor utilizatorilor, drepturile SLECT,INSERT,UPDATE asupra
relaţiei Produse aparţinând utilizatorului Ionescu se realizează cu comanda:
GRANT SELECT,INSERT,UPDATE ON Ionescu.Produse TO PUBLIC
Acordarea privilegiilor SELECT,UPDATE numai asupra atributelor CodP, Denp
din relaţia Produse aparţinând utilizatorului Ionescu, utilizatorului Popescu cu condiţia ca
acesta la rândul său să poată acorda oricărui alt utilizator aceleaşi drepturi sau mai puţine,
se realizează cu comanda:
GRANT SELECT,UPDATE ON Ionescu.Produse(CodProdus,Denumire)
TO Popescu WITH GRANT OPTION
Retragerea drepturilor de acces INSERT,DELETE asupra relaţiei Persoane
aparţinând utilizatorului Vasilescu, utilizatorului Ionescu se realizează cu comanda:
REVOKE INSERT,DELETE ON Vasilescu.Persoane FROM Ionescu
85
Sisteme informatice
86
automat de către sistem după fiecare operaţie, fie printr-o comandă explicită dată după o
succesiune de operaţii. Astfel salvarea automată de către sistem a modificărilor este
realizată prin comanda
SET AUTOCOMMIT ON
Dacă iniţial a fost specificată comanda SET AUTOCOMMIT OFF, salvarea modificărilor
efectuate asupra datelor se realizează prin comanda COMMIT, iar abandonarea
modificărilor se realizează prin comanda ROLLBACK.
Blocul de operaţii ce definesc o tranzacţie poate fi delimitat de instrucţiunile :
BEGIN TRANSACTION
END TRANSACTION
Problemă rezolvată
Se lansează în execuţie SQL Plus Oracle sub utilizatorul system (figura 5.1).
În baza de date ORCL sub S.G.B.D. Oracle se crează utilizatorul U1 identificat prin
parola PW1 şi i se acordă privilegiile CONNECT, RESOURCE (figura 5.2).
Se închide sesiunea de lucru SQL Plus a utilizatorului system (cu instrucţiunea EXIT)
şi se deschide o nouă sesiune de lucru SQL Plus pentru utilizatorul U1 (figura 5.3).
Se crează tabela Produse şi se inserează două înregistrări (figura 5.4).
ORCL
87
Figura 5.1. Lansare SQL Plus ORACLE pentru utilizatorul system
Sisteme informatice
88
ORC
L
89
Sisteme informatice
[HAVING <condiţie>]
[ORDER BY <atribut1 de ordonare> [ASC]|DESC,…]
[UNION <frază SELECT>]
<lista atribute> este o listă ce conţine nume de atribute (câmpuri) sau expresii
construite utilizând atribute, separate prin caracterul “,” şi care fac parte din relaţiile
(tabele, vederi) enumerate în <lista relaţii> din clauza FROM. Numele fiecărui atribut sau
expresii din <lista atribute> va fi afişat în capul de tabel ce reprezintă rezultatul
interogării, fiecare atribut sau expresie putând primi un alias folosind specificarea AS
<alias>.
Caracterul ‘*’ specifică faptul că se extrag toate atributele tabelei precizate în
clauza FROM.
Clauza DISTINCT precizează faptul că în relaţia rezultat nu pot apărea duplicate
(tuple identice).
Clauza WHERE precizează condiţiile de interogare (condiţii care trebuie să fie
satisfăcute de tuplele interogate, condiţii de cuplare relaţii (JOIN, relaţii între tabele). În
clauza WHERE pot fi utilizaţi operatori logici (AND, NOT, OR), predicate (IN, LIKE,
BETWEEN, EXISTS, ALL, ANY), operatori aritmetici (+, -, **, /, *), operatori de
comparare (=, #,<, >, <=, >=, <>), parantezele ( ) pentru schimbarea ordinii de prioritate a
operaţiilor, operatorilor, funcţii şi alte subinterogări SELECT, pentru construirea de
expresii pe care trebuie să le îndeplinească tuplele ce constituie rezultatul interogării.
Predicatul IN permite specificarea unei liste pentru domeniul de căutare pentru un atribut,
iar predicatul BETWEEN permite specificarea unui interval pentru domeniul de căutare a
valorilor unui atribut, fiind echivalent cu o condiţie de forma:
<atribut> >= <limita inf. interval> AND <atribut> <= <limita sup. interval>
Exemple:
Fie tabela Persoane(Nrcrt,Nume,Prenume, Datan, Sexul, Adresa)
Selectarea tuturor înregistrărilor din tabela Persoane pentru care primele 7 caractere din
câmpul Adresa sunt ‘Suceava’ sau ‘Rădăuţi’ se realizează cu comanda:
SELECT * FROM Persoane
WHERE SUBSTR(Adresa,1,7) IN (‘Suceava’,‘Rădăuţi’)
Interogarea de mai sus este echivalentă cu interogarea:
SELECT * FROM Persoane
WHERE SUBSTR(Adresa,1,7) = ‘Suceava’ OR SUBSTR(Adresa,1,7) =
‘Rădăuţi’
Selectarea tuturor înregistrărilor din tabela Persoane pentru care data naşterii este
cuprinsă între 01/01/72 şi 01/01/82 se realizează astfel:
SELECT * FROM Persoane WHERE Datan BETWEEN {01/01/72} AND
{01/01/82}
Interogarea de mai sus este echivalentă cu interogarea:
SELECT * FROM Persoane WHERE Datan >= {01/01/72} AND Datan <=
{01/01/82}
90
Predicatul LIKE permite selecţia şirurilor de caractere care conţin anumite caractere
specificate prin intermediul unei măşti definite cu ajutorul unor caractere speciale (%, _
în dBASE IV, FoxPro, ORACLE, sau *, ? în INFORMIX)
Exemple:
SELECT * FROM Persoane WHERE Nume LIKE ‘%a’
(selectează toate înregistrările din tabela Persoane pentru care valorile atributului Nume
se termină cu litera ‘a’).
SELECT Nume,Prenume,Datan FROM Persoane WHERE Nume LIKE ‘A%u’
(selectează valorile atributelor Nume, Prenume, Datan pentru toate înregistrările din
tabela Persoane pentru care prima literă din Nume este ‘A’ iar ultima literă este ‘u’).
SELECT Nume FROM Persoane WHERE Nume LIKE ‘_o%’
(selectează valorile atributului Nume pentru toate înregistrările din tabela Persoane pentru
care prima literă din Nume este orice literă, a doua literă din Nume este litera ‘o’ şi
începând din poziţia a treia numele poate conţine orice litere.)
Predicatele ALL, ANY, EXISTS se utilizează pentru interogări ce conţin subinterogări, în
vederea verificării anumitor condiţii ce trebuie îndeplinite între rezultatele interogării şi
rezultatele subinterogării.
Clauza GROUP BY – realizează gruparea tuplelor unei relaţii pe baza valorilor
unui atribut sau grup de atribute şi generează o singură tuplă pentru fiecare grup de tuple
având aceeaşi valoare pentru atributele care definesc grupul. Atributele care definesc
grupul trebuie obligatoriu să se regăsească în lista atributelor interogate <lista atribute>.
De asemenea asupra unor atribute pot fi aplicate funcţii agregat:
- AVG(<atribut>) – media valorilor atributului specificat ca parametru, pe
grup;
- SUM(<atribut>) – suma valorilor atributului specificat ca parametru, pe grup;
- MAX(<atribut>) – maximum valorilor atributului specificat ca parametru, pe
grup;
- MIN(<atribut>) – minimum valorilor atributului specificat ca parametru, pe
grup;
- COUNT(<atribut>) – numărul înregistrărilor pe grupare după <atribut>.
Observaţie. <atribut> poate fi fie un atribut, fie o expresie definită utilizând atribute ale
tabelei.
Clauza HAVING, opţiune a clauzei GROUP BY, este o formă specială a clauzei
WHERE întrucât se aplică unor grupuri de tuple (şi nu unor tuple) definite de clauza
GROUP BY.
Exemple:
Fie tabela Stocuri(CodDep,CodP,UmP,Cant,Pret)
SELECT CodDep,SUM(Cant*Pret) AS Valoare,COUNT(CodDep) AS Contor
FROM Stocuri GROUP BY CodDep
(Calculează suma produselor Cant*Pret pentru toate tuplele având aceeaşi valoare în
câmpul CodDep şi numărul înregistrărilor din fiecare grup definit de câmpul CodDep şi
afisează rezultatele sub formă de tabel având coloanele CodDep, Valoare, Contor)
91
Sisteme informatice
92
Fiecărei tabele i se poate atribui un alias astfel încât fraza de mai sus este echivalentă cu
fraza:
SELECT A.CodP,DenP,UmP,Cant,Pret FROM Produse A,Stocuri B WHERE A.CodP =
B.CodP
În anumite situaţii poate fi necesară corelarea (cuplarea) unei relaţii (tabele) cu ea
însăşi. Spre exemplu dacă presupunem că în tabela Stocuri unele produse pot apare de
mai multe ori cu preţuri diferite şi ne interesează poziţiile cu preţul minim, formulăm
următoarea interogare:
SELECT A.CodP,A.Cant,A.Pret FROM Stocuri A
WHERE A.Pret = (SELECT MIN(B.Pret) FROM Stocuri B WHERE A.CodP =
B.CodP)
Pentru rezolvarea unor astfel de probleme s-au utilizat instrucţiuni SELECT imbricate
care vor fi prezentate în detaliu în cele ce urmează.
Instrucţiuni SELECT imbricate
Limbajul SQL oferă posibilitatea construirii unor interogări complexe prin
includerea în clauza WHERE a unei instrucţiuni SELECT, a altei instrucţiuni SELECT
(numită sub-interogare sau ‘inner’) astfel:
SELECT <lista atribute> FROM <lista relaţii>
WHERE <condiţie> (<sub-interogare>)
La rândul ei sub-interogarea poate conţine în clauza WHERE o altă instrucţiune SELECT
obţinând astfel o interogare complexă constituită din instrucţiuni SELECT imbricate pe
un număr oarecare de nivele. Instrucţiunea SELECT interioară generează valori pentru
condiţia de căutare a instrucţiunii SELECT exterioare care o conţine (numită şi ‘outer’). O
sub-interogare poate returna o singură valoare, sau poate returna mai multe valori.
În ce priveşte ordinea de evaluare a interogărilor pot exista :
- sub-interogări simple - în care interogarea interioară este evaluată prima, independent
de interogarea exterioară, iar rezultatul interogării interioare este utilizat de
interogarea exterioară;
- sub-interogări corelate - în care interogarea exterioară transmite repetat câte o valoare
pentru interogarea interioară, care în baza valorii primite, parcurge tuplele relaţiei şi
transmite interogării exterioare rezultatul obţinut. Astfel de interogări realizează
corelarea unei relaţii cu ea însăşi şi sunt cele mai performante.
Spre exemplu dacă presupunem că în tabela Stocuri unele produse pot apare de mai multe
ori cu preţuri diferite şi ne interesează poziţiile cu preţul minim, formulăm următoarea
interogare:
SELECT A.CodP,A.Cant,A.Pret FROM Stocuri A
WHERE A.Pret = (SELECT MIN(B.Pret) FROM Stocuri B WHERE A.CodP =
B.CodP)
Sub-interogări simple care returnează o singură valoare - pot fi utilizate în
interogări imbricate având sintaxa:
SELECT <lista atribute> FROM <lista relaţii>
WHERE <atribut> =
<
>
93
Sisteme informatice
<=
>=
!=
(<sub-interogare>)
[ORDER BY <atribut[ASC]|DESC,…]
Exemplu:
SELECT CodDep,CodP,Cant FROM Stocuri
WHERE Cant > (SELECT AVG(Cant) FROM Stocuri ) ORDER BY CodDep
(afişează produsele pentru care există stocuri peste medie, ordonate pe depozite).
Sub-interogari simple care returneaza mai multe valori pot fi utilizate în
interogări imbricată care utilizează în clauza WHERE codiţii care generează o mulţime de
valori folosind unul din predicatele: (NOT)IN, (NOT)ANY, (NOT)ALL, (NOT)EXISTS.
Exemplu:
SELECT * FROM Produse WHERE CodP IN (SELECT CodP FROM Facturi WHERE
Numar IN
(SELECT Numar FROM Beneficiari,ComenziWHERE Beneficiari.Nume=’Ionescu’
AND
Beneficiari.Cod_Beneficiar=Comenzi.Cod_Beneficiar))
Predicatul ANY poate fi utilizat în combinaţie cu oricare din operatorii <, >, =,
<=, >=, != şi permite verificarea dacă valoarea unui atribut satisface condiţia precizată
pentru orice valoare din lista rezultată din subinterogare.
SELECT CodP FROM Stocuri WHERE Cant > ANY
(SELECT Cant FROM Stocuri WHERE CodDep = “D1”)
Predicatul ALL returnează toate tuplele pentru care valorile atributului din clauza
WHERE sunt <, >, <=, >= decât toate valorile generate de interogarea interioară (acest
predicat nu poate fi utilizat cu operatorul = ce ar corespunde cazului banal în care toate
interogările din listă sunt egale).
Exemplu:
SELECT * FROM Stocuri WHERE Cant < ALL
(SELECT Cant FROM Stocuri WHERE CodDep = “D1”)
Predicatul EXISTS verifică dacă pentru fiecare tuplă a relaţiei există tuple care
satisfac condiţia din interogarea interioară (deci EXISTS permite specificarea mai multor
atribute în interogarea interioară).
Astfel spre exemplu instrucţiunea:
SELECT * FROM Produse A WHERE NOT EXISTS
(SELECT * FROM Stocuri B WHERE B.CodP=A.CodP)
va returna o listă de produse care nu au nici o înregistrare în Stocuri.
94
programatorii, pentru transpunerea în realitate a proiectului. Ei vor controla intrările,
prelucrările şi ieşirile din sistem prin intermediul programelor [1].
Softul are două componente de bază instrucţiunile şi modulele. Instrucţiunile sunt
operaţiuni elementare executate de calculator prin gruparea şi selecţia controlată a
acestora pentru atingerea obiectivelor funcţiilor de prelucrare orientate pe probleme.
Instrucţiunile constituie cel mai jos nivel al operaţiunilor ce pot fi executate de către un
limbaj de programare. Blocurile de instrucţiuni sunt astfel grupate încât să constituie
anumite structuri executabile de calculator. De modul în care sunt grupate instrucţiunile
pentru a da naştere unor structuri standard ale programelor, de relaţiile dintre instrucţiuni,
de aranjamentul acestora depinde calitatea softului proiectat [1].
Modulul – este o colecţie sau o formă grupată de instrucţiuni de programe sursă.
Modulele se pot grupa pentru a forma programele.
Programul, în concepţia diverşilor autori, are semnificaţii diferite. El este definit
ca:
un set de instrucţiuni cu ajutorul cărora se efectuează prelucrări specifice;
o entitate ce poate fi executată pe calculator;
un mijloc de comunicare cu calculatorul pentru rezolvarea unor probleme;
o descriere a unui algoritm şi a datelor asociate în vederea execuţiei pe calculator,
deci o reprezentare a acestora (algoritmi şi date) ţinând cont de restricţiile impuse de
calculator;
o realizare a unei funcţii f care, dată fiind o mulţime de date x, specifică valoarea
y=f(x);
Prin algoritm se înţelege o metodă de soluţionare a unei clase de probleme,
reprezentată de o succesiune finită de operaţii bine definite, numite instrucţiuni.
Prin prisma complexităţii lor programele se pot clasifica [1]:
programe simple (1000 de linii)
programe de complexitate medie(10 000 de linii)
programe complexe (peste 100 000 de linii) au numeroase module cu legături
complexe.
Pentru ca programele să fie caracterizate prin eficienţă, fiabilitate, flexibilitate,
inteligibilitate, în procesul elaborării lor trebuie să se respecte anumite principii [1]:
principiul conformării, potrivit căruia programele trebuie să fie elaborate în
conformitate cu cerinţele utilizatorului;
principiul completitudinii constă în realizarea descrierilor complete ale obiectivelor
programului pe toate nivelurile ierarhice de descompunere;
principiul abstractizării se referă la elaborarea funcţiei programului, ţinând cont de
elementele esenţiale, făcându-se abstracţie de detaliile nesemnificative;
principiul modularizării constă în descompunerea programelor în subdiviziuni logice
(module), care vor fi analizate în procesul de concepere şi elaborare a programelor.
În timp s-au conturat mai multe metode de programare, deşi mai corect ar fi să se
numească tehnici de programare [1].
Metoda programării clasice are la bază construirea monolitică a logicii
programului, fără intenţii de structurare. Programul este privit în totalitatea lui şi analizat
95
Sisteme informatice
96
recomandă evitarea conjuncţiilor din structura numelor, deoarece ele ar sugera necesitatea
folosirii mai multor module [1].
Logica modulului descrie prelucrările care au loc în interiorul acestuia [1].
La nivelul programării, preocuparea este, în esenţă, legată de logica modulului,
algoritmii de prelucrare, redaţi sub diverse forme – scheme logice, pseudocod, tabele de
decizie, arbori de decizie sau combinaţii ale acestora – sunt concepuţi pentru prezentarea
modului de transformare a intrărilor în ieşiri. Paşii algoritmilor se vor transforma în
instrucţiuni ale limbajelor de programare [1].
Interfeţele sunt conexiuni sau cuplaje între module. Interfeţele modulelor sunt
utilizate pentru stabilirea căilor prin care să se transfere controlul de la un modul la altul
[1].
Conexiunile dintre module se înregistrează pe două planuri:
al transferării controlului de la un modul la altul;
al transmiterii datelor de la un modul la altul.
În concluzie, se poate spune că eficienţa proiectelor – soft depinde în mare măsură
de eficienţa cu care se transferă controlul între module, precum şi de metoda folosită
pentru transmiterea datelor între module.
97
Sisteme informatice
s1
s2
sn
NU DA
C
Bloc - 2 Bloc - 1
98
C
Iteraţia sau structura repetitivă defineşte execuţia repetată a unei operaţii sau grup
de operaţii, funcţie de rezultatul evaluării unei condiţii. Evaluarea condiţiei se face fie
înainte, fie după executarea operaţiilor.
Bloc -
1
C
DA
NU
Structura repetitivă condiţionată posterior (de tip DO UNTIL) are forma dinn
figura 5.5.
99
Sisteme informatice
Bloc - 1
C
DA
NU
V=Vi
Bloc - 1
V=Vi+
R
V>Vf
NU
DA
100
Figura 5.6. Structura repetitivă cu număr definit de paşi [1]
101
Sisteme informatice
Legătură/canal
NOD
NOD
102
randamentului(cantitatea de date ce poate fi prelucrată de către un sistem de calcul
într-o perioadă de timp);
calităţii serviciilor oferite utilizatorilor(siguranţă, fidelitate, integrare, control şi
acceptabilitate);
nivelul serviciilor.
Sistemul propus trebuie să fie fezabil, din punct de vedere tehnic, şi eficient, prin
prisma costurilor prelucrării automate a datelor şi a comunicaţiilor din sistem.
Performanţele sistemului sunt influenţate de mai mulţi factori, cum ar fi timpul de
răspuns, randamentul, disponibilitatea, siguranţa(securitatea sistemului).
La proiectarea sistemelor distribuite trebuie avute în vedere două componente
majore:
Proiectarea nodurilor;
Proiectarea reţelei de comunicaţii.
Ordinea de proiectare nu este strictă rămânând la latitudinea echipei de proiectare.
Trebuie să se ţină seama de posibilitatea proiectării, după ce anumite etape au fost
îndeplinite [1].
Sisteme PAD
Proiectare Proiectare
NODURI subsisteme de
COMUNICAŢII
Proiectare
INTERFEŢE
Figura 5.8. Principalele module de proiectare a sistemelor de prelucrare distribuită a
datelor [1]
Arhitectura client/server
103
Sisteme informatice
104
- arhitectura de tip server de obiecte – în care se distribuie prelucrarea între cele
două componente (server, client). Serverul este responsabil de administrarea
memoriei şi zăvoarelor, efectuarea operaţiilor în memoria secundară, securitatea,
integritatea şi recuperarea bazei de date, executarea procedurilor stocate şi
optimizarea interogărilor. Clientul este responsabil de administrarea tranzacţiilor şi
realizarea interfeţei cu limbajul de programare;
- arhitectura de tip server de pagini – cea mai mare parte a prelucrărilor este
realizată de către client. Serverul este responsabil de memoria secundară şi furnizează
paginile corespunzător cererilor formulate de client;
- arhitectura de tip server de bază de date – cea mai mare parte din prelucrările
bazei de date este efectuată de către server. Clientul transmite cererea serverului,
primeşte rezultatele şi le transmite aplicaţiei. Este modul utilizat frecvent de către
sistemele relaţionale.
În fiecare dintre cele trei cazuri serverul se găseşte pe aceeaşi maşină ca şi baza de
date fizică. Clientul se poate afla pe aceeaşi maşină sau pe una diferită. În cazul
bazelor de date distribuite pe mai multe maşini, clientul va comunica cu câte un
server de pe fiecare maşină. De asemenea mai mulţi clienţi pot comunica
concomitent cu acelaşi server (accesul concurent).
Arhitectura tradiţională a sistemelor client-server este o arhitectură pe două
nivele (etaje), în care la primul nivel (clientul) se realizează interfaţa cu utilizatorul şi
logica principală a aplicaţiei, iar la al doilea nivel (serverul) se realizează validarea
datelor şi accesul la baza de date. Necesitatea rezolvării unor probleme complexe care
presupun accesul la baza de date a unui număr mare de utilizatori, utilizarea unor
platforme hard-soft diferite, precum şi integrarea bazelor de date în mediul Web, au
impus definirea unei noi arhitecturi client-server în care sunt definite trei nivele şi anume:
- nivelul client, la care se realizează interfaţa cu utilizatorul aplicaţiei;
- nivelul server de aplicaţie, la care se realizează logica aplicaţiei şi prelucrării datelor;
- nivelul server de baze de date, la care se realizează validarea datelor şi accesul la baza
de date.
Un server de aplicaţie poate servi mai mulţi clienţi, fiind conectat fizic atât la nivelul
client cât şi la nivelul server de baze de date. Spre exemplu în mediul Web, clientul poate
fi un browser Web, iar serverul de aplicaţie poate fi un server Web.
Problemă rezolvată
Se consideră baza de date FurnizoriClienţi care conţine următoarele tabele (în
ACCESS):
105
Sisteme informatice
106
OFERTE (oferte de produse de la furnizori)
Câmp Semnificaţie Tip dată Dimensiune Observaţii
Codf Cod furnizor Number, Integer 4 Lookup Wizard cu
Lookup Wizard tabela FURNIZORI
Codp Cod produs Number, Integer 4 Lookup Wizard cu
Lookup Wizard tabela PRODUSE
Ump Unitate de Lookup Wizard 8 Creare şi utilizare
măsură produs listă de valori
Pret Preţ unitar Number, 8
LongInteger
Datao Data ofertei Date 8
Oferta Oferta furnizor Hyperlink Referă document
Corespunzător
107
Sisteme informatice
a
c) Situaţia vânzărilor
Câmp Codc Denc Adresac Codp Denp Ump Cant Pret Valoare Datav
Tabel Clienti Clienti Clienti Produse Produse Vanzari Vanzari Vanzari Cant*Pret Vanzari
a
d) Lista produselor pentru care nu există oferte
Răspuns:
a)
SELECT CodDep, Stocuri.Codp, Denp, Ump, Cant, Pret, Cant*Pret AS Valoare
FROM Stocuri, Produse WHERE Stocuri.Codp = Produse.Codp
b)
SELECT Oferte.Codf, Denf, Adresaf, Oferte.Codp, Denp, Ump, Pret, Datao
FROM Oferte, Produse,Furnizori
WHERE Oferte.Codp = Produse.Codp AND Oferte.Codf = Furizori.Codf
c)
SELECT Vanzari.Codc, Denc, Adresac, Vanzari.Codp, Denp, Ump,Cant, Pret,
Cant*Pret AS Valoare, Datav FROM Vanzari, Produse,Clienti
WHERE Vanzari.Codp = Produse.Codp AND Vanzari.Codc = Clienti.Codc
d)
SELECT * FROM Produse WHERE NOT EXISTS
(SELECT * FROM Oferte WHERE Produse.Codp=Oferte.Codp)
e)
SELECT * FROM Produse WHERE NOT EXISTS
(SELECT * FROM Vanzari WHERE Produse.Codp=Vanzari.Codp
AND Datav BETWEEN Data1 AND Data2)
Teste 2009
108
a) Un sistem reprezintă un ansamblu de elemente (componente) interdependente,
între care se stabileşte o interacţiune dinamică, pe baza unor reguli prestabilite,
cu scopul atingerii unui anumit obiectiv;
b) Un sistem reprezintă un ansamblu de identificatori care au rolul sa rezolve
activităţi specifice.
Răspuns: a
2. Sistemul informaţional cuprinde:
a) Ansamblul informaţiilor interne şi externe, formale sau informale utilizate în
cadrul firmei precum şi datele care au stat la baza obţinerii lor;
b) Procedurile şi tehnicile de obţinere(pe baza datelor primare) şi de difuzare a
informaţiilor;
c) Platforma necesară prelucrării şi disipării informaţiilor;
d) Personalul specializat în culegerea, transmiterea, stocarea şi prelucrarea
datelor.
Răspuns: a,c,d
3. Un sistem informatic este:
a) un sistem destinat conducerii unei organizaţii:
b) un sistem utilizator-calculator integrat, care furnizează informaţii pentru a sprijini
activităţile de la nivel operaţional şi activităţile de management într-o organizaţie,
utilizând echipamente hardware şi produse software, proceduri manuale, o bază
de date şi
modele matematice pentru analiză, planificare, control şi luarea deciziilor:
c) un ansamblu structurat de elemente intercorelate funcţional pentru automatizarea
procesului de obţinere a informaţiilor şi pentru fundamentarea deciziilor.
Răspuns: b,c
4. Identificaţi afirmaţia falsă:
a) Sistemul informaţional este subordonat sistemului de conducere.
b) Sistemul informaţional face legătura între sistemul condus şi sistemul de
conducere.
c) Sistemul informatic este inclus în sistemul informaţional.
d) Sistemul condus este subordonat sistemului informaţional.
Răspuns: d
5. Sunt componente principale ale unui sistem informatic:
a) Baza informaţională;
b) Manager general;
c) Baza tehnică;
d) Baza ştiinţifică metodologică;
e) Sistemul de programe.
109
Sisteme informatice
Răspuns: a,c,d,e
6. Obiectivul principal urmărit prin introducerea unui sistem informatic îl constituie:
a) asigurarea conducerii cu informaţii reale şi în timp util necesare fundamentării
şi elaborării operative a deciziilor;
b) asigurarea funcţionării normale si optime a activităţilor;
c) creşterea productivităţii muncii;
d) creşterea profitului;
e) îmbunătăţirea imaginii unităţii economice.
Răspuns: a
7. După domeniul de utilizare, sistemele informatice se clasifică în:
a) Sisteme informatice pentru conducerea activităţilor economico-sociale;
b) Sisteme informatice pentru conducerea proceselor tehnice;
c) Sisteme informatice şi expert;
d) Sisteme informatice pentru activităţi speciale.
Răspuns: a,b,d
8. Sistemele informatice economice pot fi împărţite după modul de organizare a datelor
în:
a) sisteme imagine;
b) sisteme bazate pe tehnica bazelor de date (ierarhice, reţea, relaţionale,
orienatate-obiect);
c) sisteme bazate pe algoritmi fundamentali;
d) sisteme bazate pe fişiere.
Răspuns: b,d
9. Ciclul prelucrării datelor pentru sistemul informatic cuprinde următoarele faze:
a) culegerea datelor;
b) pregătirea datelor;
c) prelucrarea datelor;
d) ştergerea datelor.
Răspuns: a,b,c
10. În faza de întreţinere a fişierelor există mai multe activităţi, dintre care amintim:
a) memorarea(stocarea) datelor în vederea utilizării lor viitoare;
b) actualizarea datelor memorate astfel încât să surprindă cele mai recente
evenimente;
c) crearea datelor;
d) indexarea datelor pentru a înlesni o uşoară regăsire a lor;
e) protecţia datelor memorate, care cuprinde o mare varietate de proceduri şi
tehnici pentru prevenirea distrugerii lor sau a accesului neautorizat.
110
Răspuns: a,b,d,e
11. Metodologiile de realizare a sistemelor informatice cuprind:
a) reguli de formalizare a datelor;
b) instrumente pentru concepţia, realizarea şi elaborarea documentaţiei;
c) modalităţile de administrare a proiectului;
d) instrucţiuni pentru luarea deciziilor;
e) modalitatea de abordare a sistemelor.
Răspuns: a,b,c,e
12. Reprezintă modul unitar sau manieră comună în care analiştii de sisteme,
programatorii şi alte categorii de persoane implicate realizează procesul de analiza a
sistemului informaţional-decizional existent, proiectarea şi introducerea sistemului
informatic:
a) metodele utilizate în proiectarea sistemelor informatice;
b) procedurile utilizate în proiectarea sistemelor informatice;
c) tehnicile de lucru utilizate în proiectarea sistemelor informatice;
d) instrumentele utilizate în proiectarea sistemelor informatice.
Răspuns: a
13. Care din afirmaţiile următoare sunt corecte:
a) Metoda top-down are ca obiectiv principal realizarea modularizării sistemului
de sus în jos.
b) Metoda top-down constă în agregarea modulelor de jos în sus.
c) Metoda top-down nu are la bază principiul abordării sistemice.
Răspuns: a
14. Nu sunt faze ale ciclului de viaţă al dezvoltării sistemelor:
a) microanaliza;
b) analiza;
c) colectarea;
d) proiectarea logică;
e) proiectarea fizică;
f) implementarea;
g) întreţinerea.
Răspuns: c
15. Propunerile pentru identificarea proiectelor de dezvoltare sunt făcute de:
a) top-managerii; b) personalul auxiliar;
c) muncitori; d) departamentul utilizatorilor.
Răspuns: a, d
111
Sisteme informatice
112
d) monitorizarea stadiului realizării activităţilor planificate.
Răspuns: b, c, d
22. Studiul sistemului existent constă în:
a) studiul activităţilor de bază desfăşurate de sistem;
b) identificarea metodelor si mijloacelor tehnice;
c) definirea caracteristicilor generale ale sistemului;
d) definirea direcţiilor de perfecţionare ale actualului sistem;
e) studiul sistemului de conducere.
Răspuns: a, b, c, e
23. Activitatea de determinare a cerinţelor sistemului se concretizează în diferite forme
ale informaţiilor colectate, cum sunt:
a) copii ale interviurilor;
b) realizarea programului;
c) implementarea sistemului;
d) interpretări ale răspunsurilor la chestionare.
Răspuns: a, d
24. Definirea caracteristicilor generale ale sistemului economic implică:
a) cunoaşterea profilului, obiectivelor agentului economic;
b) cunoaşterea locului în sfera serviciilor şi sfera producţiei;
c) cunoaşterea relaţiilor de cooperare cu alţi agenţi economici;
d) cunoaşterea specificului activităţii de bază ( producţie, servicii).
Răspuns: a, b, c, d
25. Studiul sistemului de conducere se referă la identificarea:
a) caracteristicilor rezultate din statutul de funcţionare a societăţii, tipuri de
decizii, modul de luare a deciziilor;
b) principalilor algoritmi, reguli de calcul şi de control;
c) mijloacelor tehnice existente în dotarea unităţii economice;
d) modului de organizare a producţiei.
Răspuns: a
113
Sisteme informatice
114
patru entităţi; b) cinci entităţi; c) nici o entitate.
Răspuns: b
115
Sisteme informatice
a) cerc;
b) săgeată;
c) romb;
d) dreptunghi.
Răspuns: d
36. Nu sunt tipuri de relaţii:
a) relaţia unu-la-unu; b) relaţia unu-la-multe;
c) relaţia absolută; d) relaţia unei entităţi cu ea
însăşi.
Răspuns: c
37. Care din afirmaţiile următoare sunt adevărate:
a) O cheie-primară este o cheie-candidat care a fost selectată pentru a servi ca
identificator de cazuri în cadrul unui tip de entitate.
b) Entităţile sunt obiecte sau evenimente (fenomene sau procese economice, în
cazul nostru).
c) Un atribut este o proprietate sau o caracteristică a unei entităţi care prezintă
interes pentru organizaţie.
Răspuns: a, b, c
38. Afirmaţiile următoare nu sunt corecte:
a) Fiecare Format/formular de intrare va fi asociat unui flux al datelor de intrare
într-un proces al DFD;
b) Un proces al DFD va fi asociat cu o macheta de ecran;
c) Rapoartele se pot regăsi într-un flux al datelor generate de un proces al DFD.
Răspuns: b
39. Prezentarea informaţiile din formulare/formate şi rapoarte pot fi oferite:
a) sub formă de text;
b) sub formă de sfaturi;
c) sub formă de grafice;
d) sub formă de tabele.
Răspuns: a, c, d
40. Macheta imprimantei cuprinde:
a) antet;
b) titlu;
c) date elementare ce se imprima rând de rând;
d) totalurile.
Răspuns: a, b, c, d
41. Detaliile şi indicaţiile tehnice de realizare a machetei imprimantei se referă la:
116
a) volumul datelor de ieşire;
b) intensitatea datelor;
c) contrast.
Răspuns: a
42. Alegerea tipului de suport fizic de ieşire (imprimanta, display, etc.) se face în funcţie
de:
a) sursa de energie; b) calitatea datelor; c) costul suportului.
Răspuns: c
43. În definitivarea formei şi formatului de prezentare a situaţiilor finale trebuie să ţinem
seama de o serie de considerente practice cum ar fi:
a) Respectarea unor cerinţe ale factorilor de decizie privind macheta situaţiei
finale;
b) Restricţii tehnice;
c) Utilizarea formularelor pretipărite;
d) Utilizarea generatoarelor de rapoarte.
Răspuns: a, b, c, d
44. Activităţile parcurse la realizarea unui sistem de coduri sunt:
a) analiza elementelor care urmează a fi codificate;
b) analiza sistemului decizional;
c) uniformizarea datelor de intrare;
d) alegerea tipurilor de coduri.
Răspuns: a, d
45. La proiectarea intrărilor este necesar să se realizeze, în principal următoarele
activităţi:
a) alegerea colecţiilor de date;
b) proiectarea machetelor documentelor de intrare;
c) alegerea regulilor de control şi validare a datelor;
d) proiectarea formularelor (videoformatului) de intrare.
Răspuns: b, c, d
46. Macheta documentului de intrare conţine:
a) antetul documentului;
b) diagrama fluxului de date;
c) denumirea documentului.
Răspuns: a, c
117
Sisteme informatice
118
54. Proiectarea fizică a sistemelor informatice implică:
a) proiectarea fizică a bazelor de date şi a fişierelor.
b) proiectarea structurii sistemului şi a programelor.
c) proiectarea documentaţiei sistemului analizat.
d) proiectarea strategiilor de prelucrare distribuită.
Răspuns : a, b, d
55. Proiectarea fizică a bazelor de date şi a fişierelor îşi propune să asigure:
a) trecerea de la descrierea logică a datelor la una tehnică, de stocare a datelor;
b) structura globală de organizare a datelor;
c) descrierea logică a datelor.
Răspuns : a
56. Sunt structuri de control fundamentale în realizarea programelor:
a) structura secvenţială;
b) structură funcţională;
c) structura alternativă;
d) structura organizaţională:
e) structura repetitivă.
Răspuns : a, c, e
57. Structura repetitivă condiţionată anterior este:
a) de tip WHILE-DO;
b) de tip DO UNTIL;
c) de tip DO FOR.
Răspuns : a
58. Nu sunt metode de programare:
a) metoda programării clasice;
b) metoda programării structurate;
c) metoda programării orientate-obiect;
d) metoda programării iterative.
Răspuns : d
59. Un modul are componente de bază:
a) funcţia;
b) schema;
c) logica;
d) interfeţele.
Răspuns : a, c, d
60. Funcţia unui modul constă în:
a) transformarea datelor prin procesul de execuţie a acestuia.
119
Sisteme informatice
120
a) Descrierea relaţiei în limbajul de descriere a datelor;
b) Identificarea dependenţelor între atributele relaţiei;
c) Descompunerea relaţiei în relaţii echivalente urmărind eliminarea redundanţei
datelor şi
anomaliilor la efectuarea operaţiilor de adaugare, actualizare şi ştergere în baza de
date.
Răspuns: c)
68. Proiectarea fizică a bazei de date are în vedere:
a) modul de stocare a datelor pe suportul de memorare;
b) trecerea de la descrierea logică a datelor la una tehnică, de stocare a datelor;
b) structura globală de organizare a datelor.
Răspuns: a), b)
69. Sistemul de Gestiune a Bazelor de Date este:
a) un sistem de programe care permite definirea, crearea şi întreţinerea bazei de date
precum şi accesul controlat la baza de date;
b) un sistem de programe pentru interogarea bazei de date.
Răspuns: a)
70. Obiectivul principal al instrumentelor CASE este:
a) Punerea în practică a produselor-program de proiectare şi realizare a softului
cu ajutorul calculatorului.
b) Simplificarea activităţilor de proiectare şi realizare a sistemelor/ aplicaţiilor.
c) Aducerea în faţa analistului a problemelor supuse analizei.
d) Folosirea depozitelor modularizate.
Răspuns: a
71. Avantajele sistemelor CASE sunt:
a) exploatarea sistemului;
b) creşterea vitezei de realizare a sistemelor;
c) realizarea succesivă a componentelor unui sistem;
d) simplificarea activităţilor de proiectare şi realizare a sistemelor/aplicaţiilor.
Răspuns: b, c, d
72. Instrumentele CASE se bazează pe:
a) o funcţie fundamentală;
b) două funcţii fundamentale;
c) mai multe funcţii fundamentale.
Răspuns: b
73. Caracteristicile mediilor moderne de tip CASE sunt:
a) integrarea;
b) aranjarea;
c) descompunerea;
d) exploatarea.
121
Sisteme informatice
Răspuns: a, c
74. Domeniile către care se orientează Upper CASE-ul, sunt:
a) analiza cerinţelor sistemului;
b) proiectarea şi modelarea funcţională şi procedurală;
c) modelarea datelor şi proiectarea bazei de date;
d) generarea codurilor.
Răspuns: a, b, c, d
75. Nu sunt corecte următoarele afirmaţii:
a) CASE reprezintă Proiectarea Sistemelor Asistată de Calculator;
b) Instrumentele CASE implică utilizarea calculatorului ca un mijloc de susţinere
a activităţilor de planificare, definire, proiectare şi realizare a softului.
c) CASE reprezintă Proiectarea Sistemelor cu Ajutorul Calculatorului;
d) CASE reprezintă Componente Asamblate ale Sistemelor Economice.
Răspuns: d
Întrebări
5. Enumeraţi produsele software de bază care pot fi utilizate pentru realizarea unui
sistem informatic.
9. Enumeraţi cele 4 nivele care pot fi identificate în organigrama unei unităţi economice
Productive.
122
10. Descrieţi tipurile de legături care pot exista între două mulţimi de entităţi.
11. Definiţi cheia unei relaţii.
RĂSPUNS:
- arhitectura de tip server de obiecte;
- arhitectura de tip server de pagini;
- arhitectura de tip server de bază de date.
14. Enumeraţi cele 3 nivele ale noii arhitecturi client-server definite ca urmare a
utilizării a unor platforme hard-soft diferite, precum şi integrării bazelor de date în
mediul Web:
Răspuns:
- nivelul client, la care se realizează interfaţa cu utilizatorul aplicaţiei;
- nivelul server de aplicaţie, la care se realizează logica aplicaţiei şi prelucrării datelor;
- nivelul server de baze de date, la care se realizează validarea datelor şi accesul la baza
de date.
Răspuns:
123
Sisteme informatice
124
BIBLIOGRAFIE
125