|
Politica de confidentialitate |
|
• domnisoara hus • legume • istoria unui galban • metanol • recapitulare • profitul • caract • comentariu liric • radiolocatia • praslea cel voinic si merele da aur | |
Proiectarea fizica cunoscuta si sub numele de proiectare de detaliu, urmeaza proiectarii logice. Proiectarea logica intalnita si sub numele de proiectare generala, o alta varianta de definire a proiectarii logice. De fapt, printr-o astfel de referire se scoate in relief faptul ca in timpul proiectarii logice se prezinta o imagine de ansamblu (generala) a sistemului, in timp ce proiectarea fizica inseamna o abordare detaliata a sistemului. Cu alte cuvinte, in etapa de proiectare logica se acumuleaza informatiile de natura sa sintetizeze cerintele utilizatorilor noului sistem, operatiune prestata de analistii de sistem, iar in timpul proiectarii fizice se prezinta punctele de vedere ale specialistilor, cum ar fi cei din domeniul bazelor de date, securitatii sistemelor, retelelor de calculatoare, programarii, etc.
Proiectarea fizica implica parcurgerea urmatorilor pasi [1]:
Proiectarea fizica a bazelor de date si a fisierelor. O astfel de activitate inseamna descrierea modului in care vor fi stocate datele si cum se va asigura controlul lor pentru a se oferi o securitate maxima;
Proiectarea structurii sistemului si a programelor. Se descriu programele sau modulele acestora care sa fie in stransa concordanta cu diagramele fluxurilor de date si cu celelalte piese ale documentatiei realizate in etapele anterioare;
Proiectarea strategiilor de prelucrare distribuita. Se vor prezenta modalitatile in care utilizatorul poate sa dispuna de date si facilitatile de prelucrare oferite de retele de calculatoare.
Modelul conceptual surprinde structura globala de organizare a datelor, asigurandu-se independenta totala fata de orice sistem de gestiune a bazelor de date. Modelul conceptual este prezentat prin intermediul diagramelor entitate-relatie(DER), motiv pentru care este cunoscut si sub numele de modelul entitate-relatie al datelor. El scoate in evidenta reprezentarea logica, detaliata a entitatilor, asocierilor (legaturilor) si datelor elementare ale unei organizatii sau ale unei parti din ea. Modelul se realizeaza in faza de analiza [1].
Modelul logic al datelor inseamna descrierea datelor in concordanta cu modelul de organizare a acestora de catre sistemele de gestiune a bazelor de date. In acest material s-a ales modelul relational. Conform cu acest model datele sunt reprezentate in baza de date sub forma tabelelor sau relatiilor create din diagrama entitate-relatie obtinuta in etapa anterioara.
O baza de date poate fi definita ca un ansamblu de date elementare sau structurate, accesibile unei comunitati de utilizatori. Mai concret, o baza de date este un ansamblu de fisiere intercorelate, care contine nucleul de date necesare unui sistem informatic (aplicatie informatica). Un fisier este un ansamblu de inregistrari fizice, omogene din punct de vedere al continutului si al prelucrarii. O inregistrare fizica este unitatea de transfer intre memoria interna si cea externa a calculatorului. Aceasta este formata din una sau mai multe inregistrari logice. O inregistrare logica este unitatea de prelucrare din punct de vedere al programului utilizator. Aceasta este formata dintr-un ansamblu de campuri, care descriu o anumita entitate.
Modul de stocare a datelor pe suportul fizic de memorare este functie de sistemul de gestiune a bazelor de date utilizat.
Proiectarea fizica a bazelor de date si a fisierelor isi propune sa asigure trecerea de la descrierea logica a datelor la una tehnica, de stocare a datelor. O problema de importanta majora in cadrul acestei etape o constituie alegerea Sistemului de Gestiune a Bazelor de Date adecvat solutionarii optime a problemelor formulate in etapele anterioare ale realizarii sistemului informatic.
1.1. Obiectivele fundamentale ale unei baze de date (BD) sunt:
Centralizarea datelor permite: suprimarea redundantei, asigurarea unicitatii inregistrarii si controlul centralizat (asupra datelor). In prelucrarea clasica in care fisierele sunt dedicate aplicatiilor, aceleasi date apar inregistrate in mai multe fisiere si in formate diferite. Acest lucru implica o utilizare ineficienta a spatiului de memorie externa, actualizarea dificila a acestor date si lizibilitate redusa ca urmare a formatelor diferite.
Independenta intre date si prelucrari. Baza de date, ca imagine a unei anumite realitati, trebuie actualizata permanent. Acest lucru nu trebuie sa afecteze programele de prelucrare. Pentru aceasta trebuie ca fiecare program sa aiba o viziune proprie asupra BD
Realizarea de legaturi intre entitatile de date, care sunt indispensabile pentru exploatarea eficienta a sistemului informatic. Spre exemplu, in cadrul gestiunii aprovizionarii, trebuie asociat un furnizor la lista de produse pe care le vinde si invers, un produs la lista de furnizori, precizand conditiile de vanzare pentru un furnizor si un produs.
Integritatea datelor asigura fiabilitatea si coerenta bazei de date (BD). Pentru aceasta trebuie definite restrictii de integritate cum ar fi:
apartenenta la o lista de valori sau interval;
apartenenta la un anumit format;
reguli de coerenta cu alte date.
Securitatea datelor. Baza de date trebuie sa fie protejata impotriva unei distrugeri logice (anomalie de actualizare) sau fizice. Pentru aceasta exista instrumente care permit:
crearea unor puncte de repriza; altfel spus, salvarea din timp in timp a unor copii coerente ale bazei de date;
gestiunea unui jurnal de tranzactii; lista operatiilor realizate asupra bazei de date dupa ultimul punct de repriza.
Confidentialitatea datelor este asigurata prin proceduri de:
identificare a utilizatorilor prin nume sau cod;
autentificarea prin parole;
autorizarea accesului diferentiat prin drepturi de creare, consultare modificare sau stergere pentru anumite segmente de date.
Partajarea datelor permite inlantuirea tranzactiilor solicitate simultan pe aceeasi inregistrare din baza de date, prin blocarea cererilor in asteptare si deservirea ulterioara a acestora.
1.2. Sistemul de Gestiune a Bazelor de Date (SGBD)
Sistemul de gestiune a bazelor de date referit prescurtat SGBD sau DBMS (Data Base Management System) este un sistem de programe care permite definirea, crearea si intretinerea bazei de date, precum si accesul controlat la baza de date. Un SGBD ofera urmatoarele facilitati pentru crearea si exploatarea bazelor de date:
facilitati de descriere a datelor, prin intermediul unui limbaj de descriere a datelor DDL (Data Description Language) care permite utilizatorului sa descrie structurile de date ce vor fi memorate in baza de date;
facilitati de manipulare a datelor, prin intermediul unui limbaj de manipulare a datelor DML (Data Manipulation Language) care permite utilizatorului sa insereze, actualizeze, stearga, sa prelucreze si sa extraga date din baza de date;
controlul accesului la baza de date prin intermediul unui limbaj de control DCL (Data Control Language) care asigura:
sistem de securitate, previne accesarea bazei de date de catre utilizatori neautorizati;
sistem de integritate, mentine concordanta datelor stocate in baza de date;
sistem de control al concurentei, permite accesul partajat la baza de date;
sistem de control al refacerii, permite recuperarea bazei de date in urma unor
defectiuni hard sau soft;
- mecanism de vizualizare, prin care un utilizator poate vedea acea parte a bazei de
date care il intereseaza.
In majoritatea produselor comerciale de baze de date , cele trei limbaje se regasesc reunite in cadrul unui singur limbaj (spre exemplu limbajul SQL).
1.3. Administratorul bazei de date
Administratorul bazei de date referit prescurtat DBA (Data Base Administrator), este o persoana sau un grup de persoane care coordoneaza si raspunde de ansamblul activitatilor privind baza de date, incepand din faza de proiectare si continuand cu celelalte etape pe intreaga perioada de viata a bazei de date. Astfel, in faza de proiectare a bazei de date, administratorul stabileste SGBD-ul ce va fi utilizat, echipamentele necesare, structurile de date plecand de la necesitatile de informatie ale tuturor utilizatorilor bazei de date, drepturile de acces la date ale fiecarui utilizator. Rezultatul fazei de proiectare este concretizat prin elaborarea modelului conceptual (schema generala a bazei de date), modelului extern (subschema proprie fiecarui utilizator) si stabilirea modalitatilor de reprezentare a structurilor de date la nivel fizic pe suporturile de memorare externe utilizate. Drepturile de acces la baza de date pot fi definite [ORA92] fie pentru fiecare utilizator in parte, fie pentru grupuri de utilizatori (denumite Role), fiecare utilizator fiind apoi asignat unui grup. Dupa proiectarea bazei de date, administratorul va mentine permanent legatura cu utilizatorii acesteia pentru rezolvarea cerintelor utilizatorilor si impunerea unei discipline in vederea alinierii la standardele existente. Administratorul va realiza, ori de cate ori se impune, reorganizarea structurii fizice a datelor in vederea optimizarii parametrilor de functionare a intregului sistem si va stabili proceduri de arhivare a datelor si proceduri de recuperare a bazei de date la avarii si defecte. Pentru a preveni accesul neautorizat la date, in cadrul sistemului de securitate pot fi prevazute [12] si alte mecanisme si anume: evidenta de auditare, criptarea datelor.
Evidenta de auditare consta dintr-un fisier in care sistemul inregistreaza automat toate operatiile efectuate asupra datelor, fisier ce va putea fi consultat de catre persoane autorizate pentru a verifica efectuarea unor operatii neautorizate. O inregistrare din evidenta de auditare va contine urmatoarele informatii: textul sursa al operatiei neautorizate, terminalul de la care a fost lansata operatia, utilizatorul care a lansat operatia, data si ora operarii, obiectele bazei de date afectate, imaginile datelor afectate inainte de efectuarea operatiei, imaginile datelor afectate dupa efectuarea operatiei.
Pentru a preveni accesul unor intrusi la baza de date, care incearca sa ocoleasca sistemul, se utilizeaza criptarea datelor, mecanism ce consta in stocarea si transmiterea datelor pe caile de comunicatie sub forma cifrata. Criptarea se realizeaza cu ajutorul unor algoritmi de criptare printre care cel mai recent este standardul american de criptare avansat AES (Advanced Encryption Standard).
Securitatea este abordata din mai multe puncte de vedere, dar cea referitoare la baze de date si la fisiere presupune luarea unor masuri pentru reconstituirea datelor pierdute sau preluate eronat, precum si pentru accesul neautorizat sau incomodarea pana la a face imposibila citirea datelor, prin criptare, atunci cand ele sunt accesate ilegal. Asadar doua aspecte vor fi relevante: reconstituirea datelor si criptarea lor [1].
Reconstituirea datelor este des asociata cu existenta fisierelor de tip back-up, insa in practica este posibila si reconstituirea fara apelarea la acest tip de fisiere. In vederea controlarii corectitudinii datelor tranzactionate se apeleaza la fisiere cu rol special, care contin un istoric, in ordine cronologica, al schimbarilor si accesarilor efectuate asupra fisierelor sau bazelor de date. Cu ajutorul lor se pot reconstitui fisierele distruse, dar si la verificarea corectitudinii operatiunilor de actualizare [1].
Securitatea prin criptografiere se refera la asigurarea transformarii datelor de comunicat intr-o forma neinteligibila pentru toti ceilalti receptori, exceptandu-l pe cel autorizat. Criptarea a devenit una dintre cele mai puternice modalitati de asigurare a securitatii datelor. Ea poate fi realizata prin sistemul de operare sau prin SGBD, dar si prin rutine create de catre specialisti [1].
Avand in vedere aspectele prezentate mai sus, criteriile avute in vedere in alegerea unui anumit tip de SGBD sunt [2]:
a) Portabilitatea SGBD-ului. Prin aceasta intelegem posibilitatea de a utiliza un SGBD de pe un sistem de calcul pe un altul. Portabilitatea cuprinde doua aspecte si anume: portabilitatea programelor propriu-zise si portabilitatea datelor.
Pentru realizarea unor programe portabile este necesar ca: programele sa contina cat mai putine elemente legate de echipament;
Portabilitatea sistemului de gestiune privit prin prisma portabilitatii datelor se refera la posibilitatea de a folosi o serie de date utilizate in cadrul unui sistem informatic de catre un alt sistem informatic, deci posibilitatea integrarii fisierelor deja existente in cadrul unui alt sistem.
b) Costul sistemului. Acest criteriu trebuie privit prin prisma: timpului de ocupare a unitatii centrale; costului de intretinere si dezvoltare; resurselor hard imobilizate; costului de adaptare si trecere pe un nou sistem de calcul; costul documentatiei etc.
c) Facilitatile de implementare, intretinere si exploatare a bazei de date. Acestea sunt reflectate prin: modalitatea de descriere a datelor; tehnicile de organizare si regasire a datelor, care sa permita un acces cat mai rapid la orice informatie; timpul cat mai redus pentru actualizare, cautare si raspuns la cererile de informare; editarea operativa a celor mai variate tipuri de situatii solicitate de catre utilizator; posibilitatea de insertie a unor programe de aplicatie, programe de validare de date, de actualizare, rutine statistice, rutine de sortare, rutine de prezentare grafica a iesirilor etc.
d) Posibilitatea gestionarii structurilor complexe de date.
e) Multitudinea metodelor de acces. In functie de cerintele proprii aplicatiei, sistemul va trebui sa suporte interogari sau actualizari in timp real avand proceduri de tip conversational.
f) Protectia si securitatea datelor din baza.
g) Specificul aplicatiei. Este cunoscut faptul ca programele sunt orientate pe aplicatii, cum ar fi: programarea productiei, aprovizionare-desfacere, optimizari, prognoze etc.
Toate aceste criterii de alegere pot fi corelate cu o serie de factori complementari cum ar fi: mentenanta sistemului, facilitatile ce le ofera administratorului bazei de date, calitatea documentatiei oferite de furnizori, asistenta in implementarea sistemului si in pregatirea utilizatorilor etc.
Toti acesti factori alaturi de criteriile enuntate pot sa influenteze succesul in implementarea SGBD-ului si eficienta economica pe ansamblul sistemului informatic.
In cele ce urmeaza se vor prezenta o serie de aspecte privind utilizarea limbajului SQL pentru crearea bazei de date, definirea utilizatorilor si acordarea drepturilor de acces, definirea interogarilor bazei de date, precum si exemple practice sub SGBD ORACLE.
Limbajul SQL (Structured Query Language)- a fost realizat in cadrul firmei IBM ca limbaj de interogare al SGBD System R si ulterior a devenit unul din cele mai raspandite limbaje pentru SGBD-urile relationale. Limbajul SQL, ca limbaj de interogare a bazelor de date relationale, este construit pe baza a doua formalisme abstracte enuntate in cele ce urmeaza.
1. Algebra relationala - prin care interogarile sunt exprimate prin aplicarea unor operatori unari sau binari care constituie primitive ce actioneaza asupra relatiilor, rezultatul interogarilor fiind tot relatii, ceea ce permite asocierea si imbricarea acestor operatori pentru a forma interogari complexe. Operatorii algebrei relationale se impart in doua grupe si anume:
- operatii pe multimi (Reuniunea, Intersectia, Diferenta, Produsul cartezian);
- operatori relationali speciali (Selectia, Proiectia, Cuplarea (JOIN), Diviziunea).
2. Calculul relational - prin care interogarile descriu multimea tuplelor rezultat prin specificarea unui predicat (conditie) care trebuie satisfacut de aceste tuple.
Incepand din 1986 limbajul SQL a devenit standard ANSI pentru limbajele de interogare ale bazelor de date relationale fiind utilizat atat in cadrul unor SGBD-uri complexe cum ar fi SGBD ORACLE (liderul mondial in domeniul bazelor de date), cat si in cadrul unor SGBD-uri de complexitate redusa cum ar fi cele din familia xBase (Dbase IV, FoxPro).
Standardul SQL utilizat pina la inceputul anului 2000 este cel realizat in 1992 si cunoscut sub numele de SQL'92 sau SQL2.
Noul standard SQL3 lansat in 1999 are in vedere o serie de extensii fata de SQL2 dupa cum urmeaza:
facilitati orientate obiect - posibilitatea de definire de catre utilizator a tipurilor abstracte de date care sa permita descrierea de metode, identitatea obiectelor, subtipuri si mostenire, polimorfism etc.;
structuri de control - pentru a conferi limbajului completitudine de calcul (IF, FOR, WHILE, etc.) pentru a deveni un limbaj de sine statator a carui putere de expresie sa nu mai fie limitata la nivelul limbajelor relationale;
facilitati pentru exprimarea prelucrarilor recursive;
facilitati de comunicare in retea;
facilitati de prelucrare distribuita (mecanisme pentru crearea, memorarea si executia procedurilor la nivelul serverelor de date -stored procedures);
facilitati multimedia;
facilitati pentru tratarea timpului in bazele de date.
Comenzi pentru crearea/actualizarea schemei bazei de date
Crearea unui utilizator se realizeaza cu comanda
CREATE USER <nume utilizator> IDENTIFIED BY <parola>
Adaugarea relatiilor intr-o baza de date -comanda CREATE TABLE are sintaxa:
CREATE TABLE <nume relatie>[(<nume atribut> <tip data>,.)]
Exemplu -crearea tabelei Persoane in SQL Oracle se realizeaza cu comanda:
CREATE TABLE Persoane (Nrcrt NUMBER UNIQUE NOT NULL,Nume CHAR(15),Prenume CHAR(15),Datan DATE,Sexul CHAR,Adresa VARCHAR2(50));
O noua relatie poate fi creata si ca rezultat al unei operatii de interogare astfel:
CREATE TABLE <nume relatie> (<nume atribut> <tip data>,.) AS <subinterogare>
Adaugarea/modificarea de atribute pentru o relatie existenta se realizeaza cu comanda:
ALTER TABLE <nume relatie> ADD|MODIFY (< nume atribut> <tip data>,.)
Stergerea unei relatii se realizeaza cu comanda:
DROP TABLE <nume relatie>
Comenzi pentru optimizarea interogarilor
Una din principalele cai de optimizare a timpilor de interogare a unei baze de date este indexarea. Un index poate fi privit ca o relatie cu doua atribute si anume:
primul atribut contine valorile atributelor relatiei dupa care se creaza indexul;
al doilea atribut contine un pointer (adresa) la locatia tuplelor corespunzatoare.
Crearea unui index se realizeaza cu comanda:
CREATE [UNIQUE] INDEX <nume index>
ON <nume relatie>(<nume atribut>[ASC|DESC],.)
Daca pentru atributele utilizate in clauza WHERE a unor instructiuni SQL au fost creati indecsi, atunci acestia vor fi utilizati in vederea optimizarii timpului de prelucrare. Decizia de utilizare sau nu a unui index este luata de limbajul SQL si nu de utilizator. Pentru aceasta fiecare model de limbaj SQL dispune de o componenta numita optimizator, care examineaza interogarea si decide care este modul optim de obtinere a rezultatului.
O alta tehnica de optimizare a interogarilor este tehnica "clustering" disponibila in ORACLE si care consta in gruparea tuplelor din mai multe relatii si stocarea lor in aceeasi zona pe disc.
Controlul datelor (comenzi DCL)
Vederi
O vedere este o relatie virtuala, definita plecand de la alte relatii din baza de date si care nu contine date si deci nu ocupa spatiu fizic pe disc. Vederile se definesc in doua scopuri si anume:
pentru a simplifica accesul utilizatorilor la date;
pentru a asigura protectia si securitatea datelor -fiecarui utilizator fiindu-i permis acces la o portiune a bazei de date si putand efectua doar anumite operatii (conform drepturilor de acces specificate cu comenzile GRANT/REVOKE).
Asupra unei vederi se pot efectua aceleasi operatii ca si asupra unei relatii cu deosebirea ca vederile nu contin date si ca orice modificari efectuate asupra datelor sunt reflectate si in vederi. Astfel, asupra unei vederi se pot realiza operatiile:
creare vedere (CREATE VIEW);
creare sinonim pentru vedere (CREATE SYNONIM);
stergere vedere (DROP VIEW);
interogare vedere (SELECT);
actualizare date din vedere (UPDATE);
stergere date din vedere (DELETE);
adaugare date (INSERT).
Crearea unei vederi - se realizeaza 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
WHERE Produse.codp=Stocuri.Codp AND CodDep = "D1"
Interogarea vederii se va realiza cu comanda
SELECT * FROM StocuriD1
Utilizarea optiunii WITH CHECK OPTION asigura faptul ca nici o tupla nu va fi adaugata sau actualizata cu instructiunile INSERT, UPDATE, daca nu sunt respectate conditiile specificate in clauza WHERE a instructiunii SELECT din definitia vederii.
Pentru acordarea sau retragerea drepturilor de acces la baza de date prin intermediul vizualizarilor se vor folosi comenzi de forma:
GRANT [ALL|SELECT|INSERT|UPDATE|DELETE] ON <nume vedere>
TO <nume utilizator>
sau
REVOKE [ALL|SELECT|INSERT|UPDATE|DELETE] ON <nume vedere>
FROM <nume utilizator>
Asigurarea securitatii datelor presupune definirea drepturilor de acces ale utilizatorilor si protectia sistemului la accesul neautorizat. In acest sens asigurarea securitatii se realizeaza pe doua niveluri si anume:
nivelul 1 - acordarea dreptului de acces la sistem;
nivelul 2 - acordarea dreptului de acces la nivel de relatii.
Pentru conectarea utilizatorilor la sistem in majoritatea versiunilor de SQL se utilizeaza un nume de utilizator si o parola.
Referitor la drepturile de acces la nivel de relatie in sistemele multi-user trebuie precizat utilizatorul care a creat relatia (proprietarul relatiei). Fiecare utilizator are drepturi doar asupra propriilor relatii, iar drepturi asupra unor relatii create de alti utilizatori pot fi acordate prin comanda GRANT si pot fi retrase prin comanda REVOKE.
Datele privind definirea bazei de date, utilizatorii si drepturile de acces sunt stocate in dictionarul de date si sunt gestionate de catre sistemul de gestiune a bazei de date (SGBDR).
In cele ce urmeaza se va prezenta modul de realizare a celor doua nivele de securitate in cadrul sistemului ORACLE.
Nivelul 1 de securitate a datelor se realizeaza cu comanda:
GRANT <autorizare,.> TO <nume utilizator> [IDENTIFIED BY <parola>]
unde <autorizare> poate fi:
DBA - confera utilizatorului dreptul de efectuare a oricarei operatii asupra oricarei relatii din baza de date;
CONNECT - confera utilizatorului dreptul de a a face interogari (SELECT) si actualizari (INSERT, UPDATE, DELETE) asupra relatiilor create de alti utilizatori, insa nu permite utilizatorului sa creeze relatii (CREATE) sau sa stearga relatii create de alti utilizatori (DROP);
RESOURCE - confera utilizatorului drepturile ce rezulta din autorizarea CONNECT si in plus dreptul de a crea relatii (CREATE) si de a sterge relatii ce ii apartin (DROP).
Unui utilizator ii pot fi acordate mai multe tipuri de autorizari in cadrul unei singure comenzi GRANT.
Parola stabilita pentru un utilizator poate fi modificata printr-o comanda GRANT ulterioara spre exemplu astfel:
GRANT RESOURCE TO <nume utilizator> IDENTIFIED BY <noua parola>
Unui utilizator caruia i s-a acordat un tip de autorizare ii pot fi acordate si alte tipuri de autorizare prin comenzi GRANT ulterioare.
Retragerea autorizarilor acordate unui utilizator se realizeaza cu comanda:
REVOKE <autorizare,.> FROM <nume utilizator>
Nivelul 2 de securitate a datelor
Pentru acordarea respectiv retragerea drepturilor de acces la relatii se utilizeaza comenzile GRANT respectiv REVOKE cu urmatoarea sintaxa:
GRANT ALL|<drept de acces>,. ON <nume relatie>
TO <nume utilizator>|PUBLIC [WITH GRANT OPTION]
respectiv
REVOKE ALL|<drept de acces>,. ON <nume relatie> FROM <nume utilizator>|PUBLIC
Privilegiile (drepturile de acces) pot fi acordate sau retrase de urmatoarele categorii de utilizatori:
utilizatorii cu nivel de autorizare DBA;
proprietarii relatiilor;
utilizatorii autorizati cu optiunea WITH GRANT OPTION.
Prin specificarea PUBLIC acordarea respectiv retragerea drepturilor de acces se aplica tuturor utilizatorilor.
Prin specificarea WITH GRANT OPTION, utilizatorul respectiv poate la randul sau sa acorde aceleasi drepturi sau mai putine altor utilizatori.
In ORACLE pot fi acordate urmatoarele drepturi de access asupra relatiilor:
SELECT, INSERT, DELETE, ALTER, UPDATE, CREATE,DROP pentru tabele si indecsi.
Drepturile de acces pot fi acordate asupra intregii relatii, sau doar asupra anumitor atribute ale relatiei.
Exemple:
Acordarea tuturor drepturilor de acces utilizatorilor Ionescu, Popescu, asupra relatiei Persoane care apartine utilizatorului Vasilescu se realizeaza prin comanda:
GRANT ALL ON Vasilescu.Persoane TO Ionescu,Popescu
Acordarea tuturor utilizatorilor, drepturile SLECT,INSERT,UPDATE asupra relatiei Produse apartinand utilizatorului Ionescu se realizeaza cu comanda:
GRANT SELECT,INSERT,UPDATE ON Ionescu.Produse TO PUBLIC
Acordarea privilegiilor SELECT,UPDATE numai asupra atributelor CodP, Denp din relatia Produse apartinand utilizatorului Ionescu, utilizatorului Popescu cu conditia ca acesta la randul sau sa poata acorda oricarui alt utilizator aceleasi drepturi sau mai putine, se realizeaza cu comanda:
GRANT SELECT,UPDATE ON Ionescu.Produse(CodProdus,Denumire)
TO Popescu WITH GRANT OPTION
Retragerea drepturilor de acces INSERT,DELETE asupra relatiei Persoane apartinand utilizatorului Vasilescu, utilizatorului Ionescu se realizeaza cu comanda:
REVOKE INSERT,DELETE ON Vasilescu.Persoane FROM Ionescu
Instructiuni pentru inserarea si actualizarea datelor in tabele
Inserarea datelor - comanda INSERT are urmatoarea sintaxa:
INSERT INTO <nume relatie>|<nume vedere> [(<nume atribut>.)]
[VALUES] <lista valori>|<subinterogare>
Exemple:
Fie tabela Persoane(Nrcrt,Nume,Prenume, Datan, Sexul, Adresa)
INSERT INTO Persoane VALUES (1,'Ionescu','Ion',05/23/82,'M','Suceava')
(adauga o inregistrare in tabela Persoane completand toate atributele)
INSERT INTO Persoane(Nrcrt,Nume,Prenume) VALUES (2,'Ionescu','Ana')
(adauga o inregistrare in Persoane completand numai atributele Nrcrt,Nume, Prenume)
Pentru a insera in tabela PersF(Nrcrt,Nume,Prenume) toate inregistrarile din tabela Persoane pentru care Sexul='F' se scrie comanda:
INSERT INTO PersF(Nrcrt,Nume,Prenume) SELECT Nrcrt,Nume,Prenume
FROM Persoane WHERE Sexul = 'F'
Actualizarea datelor - comanda UPDATE are sintaxa:
UPDATE <nume relatie>|<nume vedere>
SET <nume atribut> = <expresie>,.[WHERE <conditie>]
Conditia din clauza WHERE defineste tuplele care vor face obiectul actualizarii. Clauza WHERE poate contine si o subinterogare.
Exemple:
UPDATE Persoane SET Nume = 'Popescu', Prenume = 'Ana Maria'
WHERE Nume = 'Ionescu' AND Prenume = 'Ana'
(actualizeaza numele si prenumele persoanei Ionescu Ana cu valorile Popescu respectiv Ana Maria).
UPDATE Vanzari SET Pret = Pret*1.2 WHERE CodP IN
(SELECT CodP FROM Facturi WHERE Numar = 120 AND Vanzari.Codc=Facturi.Codc )
(realizeaza majorarea pretului cu 20% pentru produsele vandute cu factura 120).
Daca in comanda UPDATE clauza WHERE este omisa, actualizarea se va efectua asupra tuturor tuplelor relatiei.
Stergerea datelor - comanda DELETE are sintaxa:
DELETE FROM <nume relatie>|<nume vedere> [WHERE <conditie>]
unde <conditie> poate fi o conditie simpla, o expresie sau o subinterogare.
Exemple:
DELETE FROM Stocuri WHERE Cant = 0
(sterge toate inregistrarile din tabela Stocuri pentru care campul Cant are valoarea 0).
DELETE Oferte
(sterge toate inregistrarile din tabela Oferte).
Comenzi pentru gestiunea tranzactiilor
Tranzactia este o succesiune de instructiuni SQL grupate intr-un bloc de instructiuni utilizate pentru actualizarea si/sau interogarea datelor din baza de date. O tranzactie se considera incheiata dupa realizarea tuturor operatiilor pe care le contine. Operatiile continute intr-o tranzactie pot fi realizate efectiv in baza de date sau nu, fie automat de catre sistem dupa fiecare operatie, fie printr-o comanda explicita data dupa o succesiune de operatii. Astfel salvarea automata de catre sistem a modificarilor este realizata prin comanda
SET AUTOCOMMIT ON
Daca initial a fost specificata comanda SET AUTOCOMMIT OFF, salvarea modificarilor efectuate asupra datelor se realizeaza prin comanda COMMIT, iar abandonarea modificarilor se realizeaza prin comanda ROLLBACK.
Blocul de operatii ce definesc o tranzactie poate fi delimitat de instructiunile :
BEGIN TRANSACTION
END TRANSACTION
Se creaza tabela Produse si se insereaza doua inregistrari (figura 4).
Limbajul SQL - Interogarea bazelor de date - Fraza SELECT
Interogarea bazelor de date in limbajul SQL se realizeaza cu ajutorul unei singure instructiuni si anume instructiunea SELECT avand urmatoarea sintaxa:
SELECT [DISTINCT] <lista atribute>|*
FROM <lista relatii>
[WHERE <conditie>]
[GROUP BY <lista atribute de grupare>]
[HAVING <conditie>]
[ORDER BY <atribut1 de ordonare> [ASC]|DESC,.]
[UNION <fraza SELECT>]
<lista atribute> este o lista ce contine nume de atribute (campuri) sau expresii construite utilizand atribute, separate prin caracterul "," si care fac parte din relatiile (tabele, vederi) enumerate in <lista relatii> din clauza FROM. Numele fiecarui atribut sau expresii din <lista atribute> va fi afisat in capul de tabel ce reprezinta rezultatul interogarii, fiecare atribut sau expresie putand primi un alias folosind specificarea AS <alias>.
Caracterul '*' specifica faptul ca se extrag toate atributele tabelei precizate in clauza FROM.
Clauza DISTINCT precizeaza faptul ca in relatia rezultat nu pot aparea duplicate (tuple identice).
Clauza WHERE precizeaza conditiile de interogare (conditii care trebuie sa fie satisfacute de tuplele interogate, conditii de cuplare relatii (JOIN, relatii intre tabele). In clauza WHERE pot fi utilizati operatori logici (AND, NOT, OR), predicate (IN, LIKE, BETWEEN, EXISTS, ALL, ANY), operatori aritmetici (+, -, **, /, *), operatori de comparare (=, #,<, >, <=, >=, <>), parantezele ( ) pentru schimbarea ordinii de prioritate a operatiilor, operatorilor, functii si alte subinterogari SELECT, pentru construirea de expresii pe care trebuie sa le indeplineasca tuplele ce constituie rezultatul interogarii. Predicatul IN permite specificarea unei liste pentru domeniul de cautare pentru un atribut, iar predicatul BETWEEN permite specificarea unui interval pentru domeniul de cautare a valorilor unui atribut, fiind echivalent cu o conditie de forma:
<atribut> >= <limita inf. interval> AND <atribut> <= <limita sup. interval>
Exemple:
Fie tabela Persoane(Nrcrt,Nume,Prenume, Datan, Sexul, Adresa)
Selectarea tuturor inregistrarilor din tabela Persoane pentru care primele 7 caractere din campul Adresa sunt 'Suceava' sau 'Radauti' se realizeaza cu comanda:
SELECT * FROM Persoane
WHERE SUBSTR(Adresa,1,7) IN ('Suceava','Radauti')
Interogarea de mai sus este echivalenta cu interogarea:
SELECT * FROM Persoane
WHERE SUBSTR(Adresa,1,7) = 'Suceava' OR SUBSTR(Adresa,1,7) = 'Radauti'
Selectarea tuturor inregistrarilor din tabela Persoane pentru care data nasterii este cuprinsa intre 01/01/72 si 01/01/82 se realizeaza astfel:
Interogarea de mai sus este echivalenta cu interogarea:
Predicatul LIKE permite selectia sirurilor de caractere care contin anumite caractere specificate prin intermediul unei masti definite cu ajutorul unor caractere speciale (%, _ in dBASE IV, FoxPro, ORACLE, sau *, ? in INFORMIX)
Exemple:
(selecteaza toate inregistrarile din tabela Persoane pentru care valorile atributului Nume se termina cu litera 'a').
(selecteaza valorile atributelor Nume, Prenume, Datan pentru toate inregistrarile din tabela Persoane pentru care prima litera din Nume este 'A' iar ultima litera este 'u').
(selecteaza valorile atributului Nume pentru toate inregistrarile din tabela Persoane pentru care prima litera din Nume este orice litera, a doua litera din Nume este litera 'o' si incepand din pozitia a treia numele poate contine orice litere.)
Predicatele ALL, ANY, EXISTS se utilizeaza pentru interogari ce contin subinterogari, in vederea verificarii anumitor conditii ce trebuie indeplinite intre rezultatele interogarii si rezultatele subinterogarii.
Clauza GROUP BY - realizeaza gruparea tuplelor unei relatii pe baza valorilor unui atribut sau grup de atribute si genereaza o singura tupla pentru fiecare grup de tuple avand aceeasi valoare pentru atributele care definesc grupul. Atributele care definesc grupul trebuie obligatoriu sa se regaseasca in lista atributelor interogate <lista atribute>.
De asemenea asupra unor atribute pot fi aplicate functii 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>) - numarul inregistrarilor pe grupare dupa <atribut>.
Observatie. <atribut> poate fi fie un atribut, fie o expresie definita utilizand atribute ale tabelei.
Clauza HAVING, optiune a clauzei GROUP BY, este o forma speciala a clauzei WHERE intrucat se aplica unor grupuri de tuple (si nu unor tuple) definite de clauza GROUP BY.
Exemple:
Fie tabela Stocuri(CodDep,CodP,UmP,Cant,Pret)
(Calculeaza suma produselor Cant*Pret pentru toate tuplele avand aceeasi valoare in campul CodDep si numarul inregistrarilor din fiecare grup definit de campul CodDep si afiseaza rezultatele sub forma de tabel avand coloanele CodDep, Valoare, Contor)
(selecteaza pentru fiecare grupa de inregistrari avand aceeasi valoare in campul CodP, inregistrarea cu pretul maxim mai mic decat 150000)
ORDER BY <nume atribut 1> [ASC]|DESC,<nume atribut 2>[ASC]|DESC,.
Exemplu:
(afiseaza toate inregistrarile din tabela Persoane in ordine descrescatoare dupa data nasterii si in cadrul aceleiasi date a nasterii crescator dupa Nume)
Clauza UNION - permite obtinerea rezultatului a doua sau mai multe interogari printr-o singura instructiune SELECT.
Exemplu:
selecteaza tuplele (CodDep,CodProd,Cant) din tabela Stoc_Prod pentru toate inregistrarile pentru care CodDep = 'Dep01', la care adauga tuplele (CodDep,CodProd,Cant) din tabela Stoc_Prod pentru toate inregistrarile pentru care Cant >= 100).
Pentru a nu se elimina tuplele duplicat trebuie specificat UNION ALL.
Pentru a schimba ordinea de afisare a tuplelor extrase se poate utiliza clauza ORDER BY aplicata doar relatiei finale si nu asupra fiecarei fraze SELECT.
Interogarea datelor din doua sau mai multe tabele (relatii) presupune existenta unor campuri comune pentru realizarea operatiei de cuplare (operatorul JOIN). In fraza SELECT operatia de cuplare este definita in clauza WHERE sub forma:
<nume tabela1>.<cheie1> = <nume tabela2>.<cheie2>
(unde <cheie1>, <cheie2> reprezinta campurile ce identifica inregistrarile corespondente in cele doua tabele).
Pentru exemplificare pe langa tabela Stocuri mai consideram tabela Produse(CodP, DenP, DesP).
SELECT Produse.CodP,DenP,UmP,Cant,Pret FROM Produse,Stocuri
WHERE Produse.CodP = Stocuri.CodP
(extrage toate tuplele (CodP,DenP,UmP,Cant,Pret) pentru care valoarea atributului CodP din tabela Produse este egala cu valoarea atributului CodP din tabela Stocuri ).
In lipsa clauzei WHERE se vor extrage toate combinatiile posibile intre tuplele celor doua tabele (produsul cartezian).
Fiecarei tabele i se poate atribui un alias astfel incat fraza de mai sus este echivalenta cu fraza:
SELECT A.CodP,DenP,UmP,Cant,Pret FROM Produse A,Stocuri B WHERE A.CodP = B.CodP
In anumite situatii poate fi necesara corelarea (cuplarea) unei relatii (tabele) cu ea insasi. Spre exemplu daca presupunem ca in tabela Stocuri unele produse pot apare de mai multe ori cu preturi diferite si ne intereseaza pozitiile cu pretul minim, formulam urmatoarea 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 instructiuni SELECT imbricate care vor fi prezentate in detaliu in cele ce urmeaza.
Instructiuni SELECT imbricate
Limbajul SQL ofera posibilitatea construirii unor interogari complexe prin includerea in clauza WHERE a unei instructiuni SELECT, a altei instructiuni SELECT (numita sub-interogare sau 'inner') astfel:
SELECT <lista atribute> FROM <lista relatii>
WHERE <conditie> (<sub-interogare>)
La randul ei sub-interogarea poate contine in clauza WHERE o alta instructiune SELECT obtinand astfel o interogare complexa constituita din instructiuni SELECT imbricate pe un numar oarecare de nivele. Instructiunea SELECT interioara genereaza valori pentru conditia de cautare a instructiunii SELECT exterioare care o contine (numita si 'outer'). O sub-interogare poate returna o singura valoare, sau poate returna mai multe valori.
In ce priveste ordinea de evaluare a interogarilor pot exista :
sub-interogari simple - in care interogarea interioara este evaluata prima, independent de interogarea exterioara, iar rezultatul interogarii interioare este utilizat de interogarea exterioara;
sub-interogari corelate - in care interogarea exterioara transmite repetat cate o valoare pentru interogarea interioara, care in baza valorii primite, parcurge tuplele relatiei si transmite interogarii exterioare rezultatul obtinut. Astfel de interogari realizeaza corelarea unei relatii cu ea insasi si sunt cele mai performante.
Spre exemplu daca presupunem ca in tabela Stocuri unele produse pot apare de mai multe ori cu preturi diferite si ne intereseaza pozitiile cu pretul minim, formulam urmatoarea 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-interogari simple care returneaza o singura valoare - pot fi utilizate in interogari imbricate avand sintaxa:
SELECT <lista atribute> FROM <lista relatii>
WHERE <atribut> =
<
>
<=
>=
!=
(<sub-interogare>)
[ORDER BY <atribut[ASC]|DESC,.]
Exemplu:
SELECT CodDep,CodP,Cant FROM Stocuri
WHERE Cant > (SELECT AVG(Cant) FROM Stocuri ) ORDER BY CodDep
(afiseaza produsele pentru care exista stocuri peste medie, ordonate pe depozite).
Sub-interogari simple care returneaza mai multe valori pot fi utilizate in interogari imbricata care utilizeaza in clauza WHERE coditii care genereaza o multime 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 in combinatie cu oricare din operatorii <, >, =, <=, >=, != si permite verificarea daca valoarea unui atribut satisface conditia precizata pentru orice valoare din lista rezultata din subinterogare.
SELECT CodP FROM Stocuri WHERE Cant > ANY
(SELECT Cant FROM Stocuri WHERE CodDep = "D1")
Predicatul ALL returneaza toate tuplele pentru care valorile atributului din clauza WHERE sunt <, >, <=, >= decat toate valorile generate de interogarea interioara (acest predicat nu poate fi utilizat cu operatorul = ce ar corespunde cazului banal in care toate interogarile din lista sunt egale).
Exemplu:
SELECT * FROM Stocuri WHERE Cant < ALL
(SELECT Cant FROM Stocuri WHERE CodDep = "D1")
Predicatul EXISTS verifica daca pentru fiecare tupla a relatiei exista tuple care satisfac conditia din interogarea interioara (deci EXISTS permite specificarea mai multor atribute in interogarea interioara).
Astfel spre exemplu instructiunea:
SELECT * FROM Produse A WHERE NOT EXISTS
(SELECT * FROM Stocuri B WHERE B.CodP=A.CodP)
va returna o lista de produse care nu au nici o inregistrare in Stocuri.
Proiectantul de soft are ca principala misiune definirea si structurarea componentelor care vor forma un tot unitar, astfel incat prin acestea sa se obtina un proiect soft operational. Proiectantul va grupa functiile ce trebuie sa fie interconectate si va descrie modalitatile de realizare a legaturilor. Dupa proiectantii de soft vor interveni programatorii, pentru transpunerea in realitate a proiectului. Ei vor controla intrarile, prelucrarile si iesirile din sistem prin intermediul programelor [1]
Softul are doua componente de baza instructiunile si modulele. Instructiunile sunt operatiuni elementare executate de calculator prin gruparea si selectia controlata a acestora pentru atingerea obiectivelor functiilor de prelucrare orientate pe probleme. Instructiunile constituie cel mai jos nivel al operatiunilor ce pot fi executate de catre un limbaj de programare. Blocurile de instructiuni sunt astfel grupate incat sa constituie anumite structuri executabile de calculator. De modul in care sunt grupate instructiunile pentru a da nastere unor structuri standard ale programelor, de relatiile dintre instructiuni, de aranjamentul acestora depinde calitatea softului proiectat [1].
Modulul - este o colectie sau o forma grupata de instructiuni de programe sursa. Modulele se pot grupa pentru a forma programele.
Programul, in conceptia diversilor autori, are semnificatii diferite. El este definit ca:
un set de instructiuni cu ajutorul carora se efectueaza prelucrari specifice;
o entitate ce poate fi executata pe calculator;
un mijloc de comunicare cu calculatorul pentru rezolvarea unor probleme;
o descriere a unui algoritm si a datelor asociate in vederea executiei pe calculator, deci o reprezentare a acestora (algoritmi si date) tinand cont de restrictiile impuse de calculator;
o realizare a unei functii f care, data fiind o multime de date x, specifica valoarea y=f(x);
Prin algoritm se intelege o metoda de solutionare a unei clase de probleme, reprezentata de o succesiune finita de operatii bine definite, numite instructiuni.
Prin prisma complexitatii 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 legaturi complexe.
Pentru ca programele sa fie caracterizate prin eficienta, fiabilitate, flexibilitate, inteligibilitate, in procesul elaborarii lor trebuie sa se respecte anumite principii [1]:
principiul conformarii, potrivit caruia programele trebuie sa fie elaborate in conformitate cu cerintele utilizatorului;
principiul completitudinii consta in realizarea descrierilor complete ale obiectivelor programului pe toate nivelurile ierarhice de descompunere;
principiul abstractizarii se refera la elaborarea functiei programului, tinand cont de elementele esentiale, facandu-se abstractie de detaliile nesemnificative;
principiul modularizarii consta in descompunerea programelor in subdiviziuni logice (module), care vor fi analizate in procesul de concepere si elaborare a programelor.
In timp s-au conturat mai multe metode de programare, desi mai corect ar fi sa se numeasca tehnici de programare [1].
Metoda programarii clasice are la baza construirea monolitica a logicii programului, fara intentii de structurare. Programul este privit in totalitatea lui si analizat direct la nivelul operatiilor elementare pe care le implica executarea lucrarii care se elaboreaza .
Programarea modulara consta in descompunerea programului, chiar din faza de proiectare, in module usor de intrebuintat. Fiecare modul este apoi analizat ca un program distinct si rezolvat ca atare [1].
Metoda programarii structurate consta in faptul ca ofera o rezolvare standardizata si structurata, in mod unitar, a programelor, reprezentand o ridicare a activitatii de programare la nivelul activitatii industriale, fundamentata pe o metodologie stiintifica. Programarea structurata este caracteristica dezvoltarii sistemelor pe baza diagramelor fluxului de date si utilizeaza limbaje structurate. Ea presupune o separare intre structurile de date si codul functiilor care le prelucreaza.
Metoda programarii orientate-obiect - consta in abordarea naturala a lumii reale, folosind componente modularizate si eliminand restrictiile impuse de mediul de programare. Se definesc concepte noi de tip, clasa, mostenire, etc [Udrica M., 2000].
La nivelul softului proiectat, componenta de baza este modulul. El este o colectie sau o forma grupata de instructiuni ale programului sursa. La randul lor, modulele se pot grupa pentru a forma programe.
Modulele programelor au urmatoarele caracteristici [1]
Un modul este format dintr-un grup de instructiuni care sunt contigue din punct de vedere fizic si sunt executate ca o unitate distincta;
Grupurile de instructiuni care formeaza un modul au inceputuri si sfarsituri bine definite;
In majoritatea cazurilor, grupul de instructiuni are doar un punct de intrare si unul de iesire;
Un modul poate fi un program sau un subprogram distinct compilat sau o procedura interna a unui program.
Un modul are trei componente de baza: functia, logica si interfetele.
Functia unui modul consta in transformarea datelor prin procesul de executie a acestuia. Functia este tratata in regimul cutiilor negre, ea fiind vazuta la nivel de modul doar prin ceea ce se percepe in exteriorul lui, nu privindu-i componentele interne sau, altfel spus, rolul acestora. Interes prezinta doar intrarile si iesirile modulului respectiv [1].
La nivelul softului, referirea la un modul este in acelasi timp o referire la functia lui. La nivelul cel mai de sus, modulele au functii orientate spre problema de rezolvat, in timp ce modulele aflate pe nivelurile mai de jos au functii orientate spre prelucrarile pe care le realizeaza [1]
In diagrama de structura, folosita pentru reprezentarea grafica a proiectelor soft, un modul este reprezentat printr-o caseta (dreptunghi) ce poarta denumirea functiei indeplinite.
La atribuirea numelui unui modul trebuie sa se tina cont de faptul ca acesta trebuie sa surprinda atat functia proprie, cat si pe cele ale subcomponentelor de ordin inferior. Se recomanda evitarea conjunctiilor din structura numelor, deoarece ele ar sugera necesitatea folosirii mai multor module [1].
Logica modulului descrie prelucrarile care au loc in interiorul acestuia [1].
La nivelul programarii, preocuparea este, in esenta, legata de logica modulului, algoritmii de prelucrare, redati sub diverse forme - scheme logice, pseudocod, tabele de decizie, arbori de decizie sau combinatii ale acestora - sunt conceputi pentru prezentarea modului de transformare a intrarilor in iesiri. Pasii algoritmilor se vor transforma in instructiuni ale limbajelor de programare [1]
Interfetele sunt conexiuni sau cuplaje intre module. Interfetele modulelor sunt utilizate pentru stabilirea cailor prin care sa se transfere controlul de la un modul la altul [1].
Conexiunile dintre module se inregistreaza pe doua planuri:
al transferarii controlului de la un modul la altul;
al transmiterii datelor de la un modul la altul.
In concluzie, se poate spune ca eficienta proiectelor - soft depinde in mare masura de eficienta cu care se transfera controlul intre module, precum si de metoda folosita pentru transmiterea datelor intre module.
Proiectul soft trebuie sa fie vazut din doua puncte de vedere: logic si fizic.
Din punct de vedere logic, modalitatea in care intra in functiune modulele este redata prin structura ierarhica a lor [1].
Din punct de vedere fizic, dupa ce s-a stabilit structura logica, se va pune problema adaptarii prelucrarii lor pe calculator, moment in care se va avea in vedere structura executiei instructiunilor, adica a secventelor dupa care se declanseaza operatiunile din interiorul modulelor [1].
Structurile de control al logicii cunoscute si sub numele de structuri de control fundamentale, reprezinta un set minim, dar si necesar, de reguli prin care sa se controleze procesul de activare a componentelor de prelucrare dintr-un program sau intre modulele acestuia. Structurile sunt: secventa, selectia, iteratia sau repetitia. Ele mai sunt cunoscute si sub numele de structura secventiala, alternativa (simpla si generalizata), repetitiva (conditionata anterior sau la inceput si conditionata posterior sau la sfarsit ).
Secventa asigura parcurgerea instructiunilor in ordinea in care apar. Selectia defineste alegerea unui grup de instructiuni din doua sau mai multe posibile. Iteratia ofera posibilitatea executiei repetate a unui grup de instructiuni [1].
In elaborarea programelor structurate este necesar sa se respecte o serie de restrictii, si anume [1]:
fiecare element (secventa, selectia, iteratia) are un punct de intrare;
fiecare element are un punct de iesire unic;
elementul de iteratie permite si o executie cu factor de repetitie zero, adica excluderea elementului respectiv din executie.
Fiecare element din cele enuntate (secventa, selectia, iteratia) care respecta restrictiile de mai sus defineste un bloc standard. Structura secventiala (liniara) se prezinta astfel [1]:
Figura 1.
Structura secventiala [1]
Selectia (structura de tip IF-THEN-ELSE) sau structura alternativa are urmatoarea forma de prezentare [1]:
Figura 2. Structura alternativa [1]
Daca se indeplineste conditia C, se executa operatiile din Bloc-1, altfel se executa operatiile din Bloc-2; dupa executia blocului, se continua cu instructiunea urmatoare.
Structura alternativa generalizata (de tip CASE-OF) este o generalizare a selectiei. Ea permite alegerea unei variante din mai multe posibile (figura 3).
Figura 3. Structura alternativa
generalizata [1]
Iteratia sau structura repetitiva defineste executia repetata a unei operatii sau grup de operatii, functie de rezultatul evaluarii unei conditii. Evaluarea conditiei se face fie inainte, fie dupa executarea operatiilor.
Structura repetitiva conditionata anterior (de tip WHILE-DO) se reprezinta ca in figura 4
Figura 4. Structura repetitiva conditionata anterior [1]
Structura repetitiva conditionata posterior (de tip DO UNTIL) are forma dinn figura
Figura Structura conditionata
posterior [1]
O forma particulara de structura repetitiva conditionata posterior este structura repetitiva cu numar definit de pasi (de tip DO FOR). Numarul de repetitii este controlat de o variabila, numita variabila de control. In reprezentarea grafica urmatoare, V este variabila de control, Vi este valoarea initiala a variabilei de control, iar R este ratia (incrementul). O astfel de structura este redata in figura 6.
Figura 6. Structura repetitiva cu numar definit de pasi [1]
In literatura de specialitate, se considera ca structura secventiala, structura alternativa de tip IF-THEN-ELSE si structura repetitiva conditionata anterior sunt suficiente pentru a defini structura de control a oricarui program. Din acest motiv, cele trei structuri de control, enumerate mai sus, sunt numite structuri fundamentale sau structuri de baza.
2.3. Proiectarea si realizarea programelor
Ideea de baza in proiectarea programelor consta in faptul ca acesta trebuie sa respecte intocmai structurile diagramelor fluxurilor de date, prin nivelurile arhitecturale de tip program.
Pentru proiectarea programelor, programatorii vor respecta sistemul de cerinte si restrictii impus de etapele parcurse anterior pentru realizarea sistemului informatic. Urmand principiile programarii structurate, realizarea programelor se face in urmatoarele faze: definirea problemei de programat; descompunerea problemei de programat; realizarea modulara a produselor program; testarea "top-down" a produselor program; definirea programului testat si a documentatiei aferente; dezvoltarea versiunii calitative a produsului program [2].
Specificatiile elaborate in etapele precedente permit definirea problemei de programat prin care se formuleaza elementele specifice si se analizeaza relatiile dintre aceste elemente, din punct de vedere dinamic sau static.
Descompunerea aplicatiei se poate face dupa criteriul functionalitatii, motiv pentru care elementele rezultate se mai numesc si module functionale. Din punct de vedere al fluxului datelor pot fi [2
module de intrare, care manipuleaza datele de intrare;
modulele de iesire, care furnizeaza rezultate ale prelucrarilor;
module de prelucrare, care efectueaza diverse operatii asupra datelor.
Pe baza unor functiuni identificate sau a altor ratiuni de programare, modulele pot fi divizate in continuare. Scopul acestei structurari functionale pana la nivel elementar este de a identifica functiunile sistemului si de a le separa, eventual, in functiuni generale si cu caracter specific aplicatiei.
Modulele functionale pot fi descompuse apoi dupa criteriul omogenitatii, rezultand modulele operationale.
Realizarea modulara a produselor program presupune urmatoarele actiunile [2
Examinarea modulelor si specificarea succesiunii operatiilor de prelucrare descrise in acestea.
Constituirea setului reprezentativ cu date test. Setul de date trebuie sa acopere intreaga cazuistica a sistemului informational si sa testeze toate ramurile programului.
Precizarea elementelor de comunicatie intre module, respectiv stabilirea parametrilor de intrare/iesire in/din fiecare modul.
elaborarea algoritmii de prelucrare specifici fiecarui modul si structura programelor.
transcrierea algoritmilor intr-un limbaj de programare.
scrierea codului sursa si obtinerea fisierelor executabile.
Prin compararea rezultatelor propuse a fi obtinute cu cele efectiv furnizate de aplicatia informatica, sunt verificate sintactic si functional module din program. Daca se realizeaza identitatea intre cele doua categorii de rezultate, operatia de testare se considera incheiata.
O atentie deosebita trebuie acordata intocmirii documentatiei programului cu observatia ca in acest sens este recomandata autodocumentarea la nivel de modul.
Un sistem de prelucrare distribuita a datelor presupune existenta a doua sau mai multor sisteme independente de prelucrare a datelor, numire noduri, interconectate intr-o configuratie de retea. Ele folosesc facilitati de comunicare pentru schimbul de informatii si isi coordoneaza activitatile pentru realizarea unui anumit scop. Cu alte cuvinte un sistem de prelucrare distribuita a datelor permite realizarea activitatii de prelucrare automata a datelor intr-un mediu de retea. Intr-un astfel de mediu, coopereaza trei componente tehnologice distincte: prelucrarea datelor, comunicarea datelor si reteaua de calculatoare. Scopul lor este de a colabora fiecare cu fiecare, astfel incat sa se realizeze obiectivele comune ale organizatiei [1].
Figura 7. Model de baza al unui sistem de prelucrare distribuita a datelor.
Sistemele de prelucrare distribuita a datelor trebuie sa permita:
posibilitatea de prelucrare independenta;
o configuratie de retea;
o posibilitate de transfer a datelor folosind facilitati de partajare a datelor;
un obiectiv comun de realizat.
Din punct de vedere financiar se urmareste maxim de profit cu minimum de cheltuieli. Din punct de vedere functional, scopul este sa se realizeze un sistem care sa aiba cele mai bune rezultate [1].
Costul sistemului se regaseste in costurile initiale pe procesoare, perifericelor(imprimanta, scanner, etc), cablari, soft-uri, si costuri functionale (operationale) cu distribuirea datelor, cu personalul, intretinerea sistemului, etc.
timpului de raspuns(intervalul de timp dintre momentul formularii unei cereri de la un terminal de comunicatie-date si obtinerea raspunsului in acelasi loc);
randamentului(cantitatea de date ce poate fi prelucrata de catre un sistem de calcul intr-o perioada de timp);
calitatii serviciilor oferite utilizatorilor(siguranta, fidelitate, integrare, control si acceptabilitate);
nivelul serviciilor.
Sistemul propus trebuie sa fie fezabil, din punct de vedere tehnic, si eficient, prin prisma costurilor prelucrarii automate a datelor si a comunicatiilor din sistem. Performantele sistemului sunt influentate de mai multi factori, cum ar fi timpul de raspuns, randamentul, disponibilitatea, siguranta(securitatea sistemului).
La proiectarea sistemelor distribuite trebuie avute in vedere doua componente majore:
Proiectarea nodurilor;
Proiectarea retelei de comunicatii.
Ordinea de proiectare nu este stricta ramanand la latitudinea echipei de proiectare. Trebuie sa se tina seama de posibilitatea proiectarii, dupa ce anumite etape au fost indeplinite [1].
Figura 8. Principalele module de proiectare a sistemelor de prelucrare distribuita a datelor [1]
Calculatoarele personale si statiile de lucru pot fi utilizate fie ca sisteme de-sine-statatoare pentru executia diferitelor aplicatii informatice, fie intr-o configuratie de retea. O retea locala se bazeaza pe un set de calculatoare personale, fiecare cu propria memorie, astfel incat sa poata folosi in comun toate echipamentele si software-ul din retea. Dintre toate calculatoarele, exista unul sau unele mai puternice pe care se vor afla aplicatii folosite in comun de celelalte calculatoare ale retelei. Cea mai utilizata arhitectura este arhitectura client/server.
Arhitectura client/server
Modelul Client /Server ofera date distribuite, portabilitate intre platforme si un acces standardizat la resurse. Termenul de Client /Server provine de la metoda traditionala de accesare a unui computer central numit server de catre computere aflate la distanta sau clienti intr-o infrastructura de retea.
Modelul Client /Server implica o entitate software (clientul) care efectueaza cereri, acestea fiind indeplinite de o alta entitate software(serverul) . Clientul este cel care transmite o cerere severului, acesta o interpreteaza si apoi o efectueaza. Pentru a putea indeplini cererea, serverul poate referi o sursa de informatie (baze de date), sa efectueze procesari asupra datelor, sa controleze periferice sau sa efectueze cereri aditionale altor servere. Un client poate face cereri la multiple servere si un server poate deservi mai multi clienti.
Sursa de informatie (Baza de date)
Cerere Procesare (Logica si Aritmetica)
Client Server Dispozitive (Imprimanta, periferice partajate)
Rezultatul Servicii(Cereri aditionale altor servere)
indeplinirii cererii
Figura 9. O tranzactie Client /Server.
Se poate afirma ca tehnologia client / server imparte o aplicatie in trei componente de baza: un client, un server si o retea care conecteaza clientul la server. Atat clientul cat si serverul sunt calculatoare cu grade variate de putere de calcul, ce colaboreaza la indeplinirea sarcinilor.
Calculatorul server este responsabil cu administrarea accesului la baza de date, precum si cu alte sarcini care-i revin direct serverului. Cand se alege un server pentru mediul de lucru client / server trebuie avute in vedere: scalabilitatea - posibilitatea de crestere a capacitatii serverului, in limite rezonabile; toleranta la erori - posibilitatea de recuperare a contextului calculatorului server dupa producerea unei disfunctionalitati hardware; service si asistenta tehnica. Calculatoarele server au utilizari variate in sistemele client / server (exista servere de fisiere care asigura spatiul de disc centralizat care poate fi folosit conform necesitatilor calculatoarelor client din retea; servere de tiparire - care colecteaza informatiile ce urmeaza a fi trimise catre imprimanta de catre calculatoarele client si le asigura tiparirea intr-o anumita ordine; servere de baze de date - calculatoare care ruleaza un sistem de gestiune a bazelor de date (DBMS), bazat pe SQL; serverele de aplicatii - calculatoare server care ruleaza programe mari de aplicatii).
Sistemele client-server au aparut ca urmare a descentralizarii activitatii din diverse domenii, ceea ce presupune o repartizare a realizarii sarcinilor pe cele doua nivele: client, server. De obicei clientii reprezinta utilizatorii finali care vor comunica cu serverul bazei de date in cadrul unei retele de calculatoare. Dupa rolul pe care il are fiecare din componentele client, server, se pot distinge trei arhitecturi de baza pentru un sistem client-server (Loomis 1992) si anume:
arhitectura de tip server de obiecte - in care se distribuie prelucrarea intre cele doua componente (server, client). Serverul este responsabil de administrarea memoriei si zavoarelor, efectuarea operatiilor in memoria secundara, securitatea, integritatea si recuperarea bazei de date, executarea procedurilor stocate si optimizarea interogarilor. Clientul este responsabil de administrarea tranzactiilor si realizarea interfetei cu limbajul de programare;
arhitectura de tip server de pagini - cea mai mare parte a prelucrarilor este realizata de catre client. Serverul este responsabil de memoria secundara si furnizeaza paginile corespunzator cererilor formulate de client;
arhitectura de tip server de baza de date - cea mai mare parte din prelucrarile bazei de date este efectuata de catre server. Clientul transmite cererea serverului, primeste rezultatele si le transmite aplicatiei. Este modul utilizat frecvent de catre sistemele relationale.
In fiecare dintre cele trei cazuri serverul se gaseste pe aceeasi masina ca si baza de date fizica. Clientul se poate afla pe aceeasi masina sau pe una diferita. In cazul bazelor de date distribuite pe mai multe masini, clientul va comunica cu cate un server de pe fiecare masina. De asemenea mai multi clienti pot comunica concomitent cu acelasi server (accesul concurent).
Arhitectura traditionala a sistemelor client-server este o arhitectura pe doua nivele (etaje), in care la primul nivel (clientul) se realizeaza interfata cu utilizatorul si logica principala a aplicatiei, iar la al doilea nivel (serverul) se realizeaza validarea datelor si accesul la baza de date. Necesitatea rezolvarii unor probleme complexe care presupun accesul la baza de date a unui numar mare de utilizatori, utilizarea unor platforme hard-soft diferite, precum si integrarea bazelor de date in mediul Web, au impus definirea unei noi arhitecturi client-server in care sunt definite trei nivele si anume:
nivelul client, la care se realizeaza interfata cu utilizatorul aplicatiei;
nivelul server de aplicatie, la care se realizeaza logica aplicatiei si prelucrarii datelor;
nivelul server de baze de date, la care se realizeaza validarea datelor si accesul la baza de date.
Un server de aplicatie poate servi mai multi clienti, fiind conectat fizic atat la nivelul client cat si la nivelul server de baze de date. Spre exemplu in mediul Web, clientul poate fi un browser Web, iar serverul de aplicatie poate fi un server Web.
Camp |
Semnificatie |
Tip data |
Dimensiune |
Observatii |
Codp |
Cod produs |
Number, Integer |
|
Cheie primara |
Denp |
Denumire produs |
Text |
|
|
Desp |
Descriere produs |
Hyperlink |
|
Refera documentcorespunzator |
Camp |
Semnificatie |
Tip data |
Dimensiune |
Observatii |
Codp |
Cod produs |
Number, Integer Lookup Wizard |
|
Lookup Wizard cu tabela PRODUSE |
CodDep |
Cod depozit |
Text |
|
|
Ump |
Unitate de masura produs |
Lookup Wizard |
|
Creare si utilizare lista de valori |
Cant |
Cantitate |
Number, Integer |
|
|
Pret |
Pret unitar |
Number, LongInteger |
|
|
Camp |
Semnificatie |
Tip data |
Dimensiune |
Observatii |
Codf |
Cod furnizor |
Number, Integer |
|
Cheie primara |
Denf |
Denumire furnizor |
Text |
|
|
Adresaf |
Adresa furnizor |
Text |
|
|
Camp |
Semnificatie |
Tip data |
Dimensiune |
Observatii |
Codc |
Cod client |
Number, Integer |
|
Cheie primara |
Denc |
Denumire client |
Text |
|
|
Adresac |
Adresa client |
Text |
|
|
Camp |
Semnificatie |
Tip data |
Dimensiune |
Observatii |
Codf |
Cod furnizor |
Number, Integer Lookup Wizard |
|
Lookup Wizard cu tabela FURNIZORI |
Codp |
Cod produs |
Number, Integer Lookup Wizard |
|
Lookup Wizard cu tabela PRODUSE |
Ump |
Unitate de masura produs |
Lookup Wizard |
|
Creare si utilizare lista de valori |
Pret |
Pret unitar |
Number, LongInteger |
|
|
Datao |
Data ofertei |
Date |
|
|
Oferta |
Oferta furnizor |
Hyperlink |
|
Refera documentcorespunzator |
Camp |
Semnificatie |
Tip data |
Dimensiune |
Observatii |
Codc |
Cod furnizor |
Number, Integer Lookup Wizard |
|
Lookup Wizard cu tabela CLIENTI |
Codp |
Cod produs |
Number, Integer Lookup Wizard |
|
Lookup Wizard cu tabela PRODU,03SE |
Ump |
Unitate de masura produs |
Lookup Wizard |
|
Creare si utilizare lista de valori |
Cant |
Cantitate |
Number, Integer |
|
|
Pret |
Pret unitar |
Number, LongInteger |
|
|
Codp |
Denp |
Ump |
Cant |
Pret |
Valoare |
||
Tabela |
Stocuri |
Stocuri |
Produse |
Stocuri |
Stocuri |
Stocuri |
Cant*Pret |
Denf |
Adresaf |
Codp |
Denp |
Ump |
Pret |
Datao |
||
Tabela |
Furnizori |
Furnizori |
Furnizori |
Produse |
Produse |
Oferte |
Oferte |
Oferte |
Denc |
Adresac |
Codp |
Denp |
Ump |
Cant |
Pret |
Valoare |
Datav |
||
Tabela |
Clienti |
Clienti |
Clienti |
Produse |
Produse |
Vanzari |
Vanzari |
Vanzari |
Cant*Pret |
Vanzari |
Denp |
||
Tabela |
Produse |
Produse |
Codp |
Denp |
|
Tabela |
Produse |
Produse |
Raspuns:
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)
1. Care definitie este corecta:
a) Un sistem reprezinta un ansamblu de elemente (componente) interdependente, intre care se stabileste o interactiune dinamica, pe baza unor reguli prestabilite, cu scopul atingerii unui anumit obiectiv;
b) Un sistem reprezinta un ansamblu de identificatori care au rolul sa rezolve activitati specifice.
Raspuns: a
2. Sistemul informational cuprinde:
a) Ansamblul informatiilor interne si externe, formale sau informale utilizate in cadrul firmei precum si datele care au stat la baza obtinerii lor;
b) Procedurile si tehnicile de obtinere(pe baza datelor primare) si de difuzare a informatiilor;
c) Platforma necesara prelucrarii si disiparii informatiilor;
d) Personalul specializat in culegerea, transmiterea, stocarea si prelucrarea datelor.
Raspuns: a,c,d
3. Un sistem informatic este:
a) un sistem destinat conducerii unei organizatii:
b) un sistem utilizator-calculator integrat, care furnizeaza informatii pentru a sprijini
activitatile de la nivel operational si activitatile de management intr-o organizatie,
utilizand echipamente hardware si produse software, proceduri manuale, o baza de date si
modele matematice pentru analiza, planificare, control si luarea deciziilor:
c) un ansamblu structurat de elemente intercorelate functional pentru automatizarea
procesului de obtinere a informatiilor si pentru fundamentarea deciziilor.
Raspuns: b,c
4. Identificati afirmatia falsa:
a) Sistemul informational este subordonat sistemului de conducere.
b) Sistemul informational face legatura intre sistemul condus si sistemul de conducere.
c) Sistemul informatic este inclus in sistemul informational.
d) Sistemul condus este subordonat sistemului informational.
Raspuns: d
Sunt componente principale ale unui sistem informatic:
a) Baza informationala;
b) Manager general;
c) Baza tehnica;
d) Baza stiintifica metodologica;
e) Sistemul de programe.
Raspuns: a,c,d,e
6. Obiectivul principal urmarit prin introducerea unui sistem informatic il constituie:
a) asigurarea conducerii cu informatii reale si in timp util necesare fundamentarii si elaborarii operative a deciziilor;
b) asigurarea functionarii normale si optime a activitatilor;
c) cresterea productivitatii muncii;
d) cresterea profitului;
e) imbunatatirea imaginii unitatii economice.
Raspuns: a
7. Dupa domeniul de utilizare, sistemele informatice se clasifica in:
a) Sisteme informatice pentru conducerea activitatilor economico-sociale;
b) Sisteme informatice pentru conducerea proceselor tehnice;
c) Sisteme informatice si expert;
d) Sisteme informatice pentru activitati speciale.
Raspuns: a,b,d
8. Sistemele informatice economice pot fi impartite dupa modul de organizare a datelor in:
a) sisteme imagine;
b) sisteme bazate pe tehnica bazelor de date (ierarhice, retea, relationale, orienatate-obiect);
c) sisteme bazate pe algoritmi fundamentali;
d) sisteme bazate pe fisiere.
Raspuns: b,d
9. Ciclul prelucrarii datelor pentru sistemul informatic cuprinde urmatoarele faze:
a) culegerea datelor;
b) pregatirea datelor;
c) prelucrarea datelor;
d) stergerea datelor.
Raspuns: a,b,c
10. In faza de intretinere a fisierelor exista mai multe activitati, dintre care amintim:
a) memorarea(stocarea) datelor in vederea utilizarii lor viitoare;
b) actualizarea datelor memorate astfel incat sa surprinda cele mai recente evenimente;
c) crearea datelor;
d) indexarea datelor pentru a inlesni o usoara regasire a lor;
e) protectia datelor memorate, care cuprinde o mare varietate de proceduri si tehnici pentru prevenirea distrugerii lor sau a accesului neautorizat.
Raspuns: a,b,d,e
11. Metodologiile de realizare a sistemelor informatice cuprind:
a) reguli de formalizare a datelor;
b) instrumente pentru conceptia, realizarea si elaborarea documentatiei;
c) modalitatile de administrare a proiectului;
d) instructiuni pentru luarea deciziilor;
e) modalitatea de abordare a sistemelor.
Raspuns: a,b,c,e
12. Reprezinta modul unitar sau maniera comuna in care analistii de sisteme, programatorii si alte categorii de persoane implicate realizeaza procesul de analiza a sistemului informational-decizional existent, proiectarea si introducerea sistemului informatic:
a) metodele utilizate in proiectarea sistemelor informatice;
b) procedurile utilizate in proiectarea sistemelor informatice;
c) tehnicile de lucru utilizate in proiectarea sistemelor informatice;
d) instrumentele utilizate in proiectarea sistemelor informatice.
Raspuns: a
13. Care din afirmatiile urmatoare sunt corecte:
a) Metoda top-down are ca obiectiv principal realizarea modularizarii sistemului de sus in jos.
b) Metoda top-down consta in agregarea modulelor de jos in sus.
c) Metoda top-down nu are la baza principiul abordarii sistemice.
Raspuns: a
14. Nu sunt faze ale ciclului de viata al dezvoltarii sistemelor:
a) microanaliza;
b) analiza;
c) colectarea;
d) proiectarea logica;
e) proiectarea fizica;
f) implementarea;
g) intretinerea.
Raspuns: c
1 Propunerile pentru identificarea proiectelor de dezvoltare sunt facute de:
a) top-managerii; b) personalul auxiliar;
c) muncitori; d) departamentul utilizatorilor.
Raspuns: a, d
16. Selectia proiectelor de dezvoltare a sistemelor informationale, urmareste:
a) atingerea obiectivelor organizatiei;
b) bunul mers a informatiei;
c) cresterea duratei de implementare.
Raspuns: a
17. Care nu sunt activitatile efectuate in faza initierii proiectului:
a) stabilirea echipei de initiere a proiectului;
b) stabilirea bunelor relatii cu beneficiarii;
c) stabilirea planului initierii proiectului;
d) stabilirea procedurilor manageriale;
e) stabilirea cerintelor sistemului.
Raspuns: e
18. Tipurile activitatilor executate in cadrul planificarii proiectului cuprind:
a) Descrierea ariei de intindere, a variantelor si fezabilitatii proiectului;
b) Descompunerea proiectului in activitati usor executabile si controlabile;
c) Crearea bazei de date;
d) Crearea unui buget preliminar;
e) Implementarea proiectului.
Raspuns: a, b, d
19. Urmatoarele afirmatii sunt corecte:
a) Un studiu de fezabilitate are rolul de a asigura informatiile obiective necesare pentru a cunoaste daca un proiect poate fi demarat sau nu, sau daca un proiect deja inceput mai poate fi continuat;
b) Studiul de fezabilitate face parte din etapa de intretinere a sistemelor;
c) Diagrama Gantt este o modalitate de reprezentare grafica a proiectului.
Raspuns: a, c
20. Studiile de fezabilitate trebuie sa contina:
a) Definirea problemei (o scurta descriere a proiectului si explicarea a ceea ce-si propune el sa realizeze);
b) Descrierea cerintelor sistemului;
c) Explicatia critica a motivarii studiului intreprins;
d) Cuantificarea tuturor costurilor materiale si beneficiilor aferente.
Raspuns: a, b, c, d
21. Diagramele Gantt se utilizeaza pentru:
a) reprezentarea ordinii activitatilor desfasurate pentru realizarea proiectului;
b) reprezentarea grafica a proiectului;
c) descrierea proiectelor simple sau a unor componente ale proiectelor mari;
d) monitorizarea stadiului realizarii activitatilor planificate.
Raspuns: b, c, d
22. Studiul sistemului existent consta in:
a) studiul activitatilor de baza desfasurate de sistem;
b) identificarea metodelor si mijloacelor tehnice;
c) definirea caracteristicilor generale ale sistemului;
d) definirea directiilor de perfectionare ale actualului sistem;
e) studiul sistemului de conducere.
Raspuns: a, b, c, e
23. Activitatea de determinare a cerintelor sistemului se concretizeaza in diferite forme ale informatiilor colectate, cum sunt:
a) copii ale interviurilor;
b) realizarea programului;
c) implementarea sistemului;
d) interpretari ale raspunsurilor la chestionare.
Raspuns: a, d
24. Definirea caracteristicilor generale ale sistemului economic implica:
a) cunoasterea profilului, obiectivelor agentului economic;
b) cunoasterea locului in sfera serviciilor si sfera productiei;
c) cunoasterea relatiilor de cooperare cu alti agenti economici;
d) cunoasterea specificului activitatii de baza ( productie, servicii).
Raspuns: a, b, c, d
2 Studiul sistemului de conducere se refera la identificarea:
a) caracteristicilor rezultate din statutul de functionare a societatii, tipuri de decizii, modul de luare a deciziilor;
b) principalilor algoritmi, reguli de calcul si de control;
c) mijloacelor tehnice existente in dotarea unitatii economice;
d) modului de organizare a productiei.
Raspuns: a
26. Metodele traditionale de determinare a cerintelor sistemelor sunt:
a) interviul;
b) prototipizarea;
c) Joint Application Design (JAD);
d) chestionarul.
Raspuns: a, d
27. Pasii prototipizarii sunt:
a) Identificarea cerintelor principale ale sistemului;
b) Realizarea prototipului initial;
c) Proces iterativ de adaptare a sistemului la cerintele utilizatorului;
d) Folosirea sistemului aprobat de utilizatori.
Raspuns: a, b, c, d
28. Scopul diagramelor de date DFD este de a scoate in relief, intr-o maniera cat mai sugestiva, urmatoarele aspecte:
a) sursa datelor de prelucrare;
b) macheta datelor de prelucrare;
c) destinatia datelor prelucrate;
d) legatura existenta intre prelucrari si activitatea de stocare a datelor.
Raspuns: a, c, d
29. Identificati afirmatia falsa:
a) Diagrama de context scoate in evidenta aria de intindere a sistemului analizat;
b) Diagrama fluxului de date ale nivelului logic curent, independenta de tehnologie, reliefeaza functiile de prelucrare a datelor executate de catre sistemul informational curent;
c) Diagrama de flux de date ale sistemului logic nou va prezenta circuitul datelor, structura lor si cerintele functionale ale noului sistem;
d) Diagrama fluxului de date prezinta modelarea conceptuala a datelor.
Raspuns: d
30. Simbolul folosit in diagramele DFD realizate cu SSADM (Structured Systems Analysis and Design Methodology), pentru reprezentarea fluxului de date sunt:
a) sageata;
b) elipsa;
c) cerc.
Raspuns: a
31. Cate entitati externe contine diagrama de context pentru aplicatia Decontari:
patru
entitati; b) cinci entitati; c) nici o
entitate.
Raspuns: b
32 Raportul detaliat al cerintelor sistemului contine urmatoarele elemente:
a) refacerea analizelor pentru intregul sistem;
b) descrierea si prezentarea unui exemplar al tuturor intrarilor in sistem, inclusiv numele fiecarei intrari, sursa, cine il completeaza, ce date va contine si cum vor fi culese datele;
c) o descriere si un model de exemplar pentru fiecare iesire din sistem (rapoarte, documente).
Raspuns: b, c
33. Principalele elemente ale documentatiei elaborate pentru modelarea logicii proceselor sunt:
a) reprezentarea in engleza structurata;
b) reprezentarea logicii proceselor prin tabele de decizie;
c) reprezentarea prin diagrame entitate-relatie;
d) reprezentarea logicii proceselor prin arbori de decizie;
e) tabelul sau diagrama starilor de tranzitie.
Raspuns: a, b, d, e
34. Cea mai cunoscuta forma utilizata pentru modelarea conceptuala a datelor este:
a) diagrama entitate-relatie (DER);
b) diagrama fluxului de date (DFD);
c) diagrama starilor de tranzitie.
Raspuns: a
3 In DER pentru fiecare entitate reprezentata se apeleaza la simbolul:
a) cerc;
b) sageata;
c) romb;
d) dreptunghi.
Raspuns: d
36. Nu sunt tipuri de relatii:
a) relatia unu-la-unu; b) relatia unu-la-multe;
c) relatia absoluta; d) relatia unei entitati cu ea insasi.
Raspuns: c
37. Care din afirmatiile urmatoare sunt adevarate:
a) O cheie-primara este o cheie-candidat care a fost selectata pentru a servi ca identificator de cazuri in cadrul unui tip de entitate.
b) Entitatile sunt obiecte sau evenimente (fenomene sau procese economice, in cazul nostru).
c) Un atribut este o proprietate sau o caracteristica a unei entitati care prezinta interes pentru organizatie.
Raspuns: a, b, c
38. Afirmatiile urmatoare nu sunt corecte:
a) Fiecare Format/formular de intrare va fi asociat unui flux al datelor de intrare intr-un proces al DFD;
b) Un proces al DFD va fi asociat cu o macheta de ecran;
c) Rapoartele se pot regasi intr-un flux al datelor generate de un proces al DFD.
Raspuns: b
39. Prezentarea informatiile din formulare/formate si rapoarte pot fi oferite:
a) sub forma de text;
b) sub forma de sfaturi;
c) sub forma de grafice;
d) sub forma de tabele.
Raspuns: a, c, d
40. Macheta imprimantei cuprinde:
a) antet;
b) titlu;
c) date elementare ce se imprima rand de rand;
d) totalurile.
Raspuns: a, b, c, d
41. Detaliile si indicatiile tehnice de realizare a machetei imprimantei se refera la:
a) volumul datelor de iesire;
b) intensitatea datelor;
c) contrast.
Raspuns: a
42. Alegerea tipului de suport fizic de iesire (imprimanta, display, etc.) se face in functie de:
a) sursa de energie; b) calitatea datelor; c) costul suportului.
Raspuns: c
43. In definitivarea formei si formatului de prezentare a situatiilor finale trebuie sa tinem seama de o serie de considerente practice cum ar fi:
a) Respectarea unor cerinte ale factorilor de decizie privind macheta situatiei finale;
b) Restrictii tehnice;
c) Utilizarea formularelor pretiparite;
d) Utilizarea generatoarelor de rapoarte.
Raspuns: a, b, c, d
44. Activitatile parcurse la realizarea unui sistem de coduri sunt:
a) analiza elementelor care urmeaza a fi codificate;
b) analiza sistemului decizional;
c) uniformizarea datelor de intrare;
d) alegerea tipurilor de coduri.
Raspuns: a, d
4 La proiectarea intrarilor este necesar sa se realizeze, in principal urmatoarele activitati:
a) alegerea colectiilor de date;
b) proiectarea machetelor documentelor de intrare;
c) alegerea regulilor de control si validare a datelor;
d) proiectarea formularelor (videoformatului) de intrare.
Raspuns: b, c, d
46. Macheta documentului de intrare contine:
a) antetul documentului;
b) diagrama fluxului de date;
c) denumirea documentului.
Raspuns: a, c
47. Nu sunt metode de interactiune om - masina:
a) interactiunea permanenta,
b) interactiunea prin meniuri,
c) interactiunea bazata pe obiecte icons,
d) interactiunea prin limbaj natural.
Raspuns: a
48. Echipamentele necesare interactiunii cu sistemul sunt:
a) eyescreen; b) keyboard; c) mouse.
Raspuns: b, c
49. Construirea prototipului secventei de derulare a dialogurilor se poate face cu ajutorul:
a) instructiunilor repetitive; b) produselor CASE; c) mediile de dezvoltare grafica.
Raspuns: b, c
50. In procesul de modelare logica a datelor sunt pasi esentiali:
a) Realizarea unui model logic al datelor din perspectiva utilizatorului (formulare si rapoarte) privind aplicatia, folosindu-se principiile normalizari;
b) Implementarea modelului logic al datelor.
c) Transformarea modelului conceptual al datelor (entitate-relatie), realizat fara sa se tina cont de perspectiva utilizatorului, intr-un set de relatii normalizate;
Raspuns: a, c
51. Nu sunt elemente de baza ale structurii relationale a datelor:
a) Relatia;
b) Atributul;
c) Fisierul;
d) Domeniul;
e) Tuplul.
Raspuns: c
52. Pasii parcursi in procesul de transformare a diagramelor entitate-relatie in relatii sunt:
a) Reprezentarea entitatilor;
b) Reprezentarea legaturilor;
c) Normalizarea relatiilor.
Raspuns: a, b, c
53. Proiectarea fizica a sistemelor informatice inseamna:
a) o abordare detaliata a sistemului;
b) o abordare de ansamblu a sistemului;
c) o abordare generala a sistemului;
Raspuns : a
54. Proiectarea fizica a sistemelor informatice implica:
a) proiectarea fizica a bazelor de date si a fisierelor.
b) proiectarea structurii sistemului si a programelor.
c) proiectarea documentatiei sistemului analizat.
d) proiectarea strategiilor de prelucrare distribuita.
Raspuns : a, b, d
5 Proiectarea fizica a bazelor de date si a fisierelor isi propune sa asigure:
a) trecerea de la descrierea logica a datelor la una tehnica, de stocare a datelor;
b) structura globala de organizare a datelor;
c) descrierea logica a datelor.
Raspuns : a
56. Sunt structuri de control fundamentale in realizarea programelor:
a) structura secventiala;
b) structura functionala;
c) structura alternativa;
d) structura organizationala:
e) structura repetitiva.
Raspuns : a, c, e
57. Structura repetitiva conditionata anterior este:
a) de tip WHILE-DO;
b) de tip DO UNTIL;
c) de tip DO FOR.
Raspuns : a
58. Nu sunt metode de programare:
a) metoda programarii clasice;
b) metoda programarii structurate;
c) metoda programarii orientate-obiect;
d) metoda programarii iterative.
Raspuns : d
59. Un modul are componente de baza:
a) functia;
b) schema;
c) logica;
d) interfetele.
Raspuns : a, c, d
60. Functia unui modul consta in:
a) transformarea datelor prin procesul de executie a acestuia.
b) descrierea prelucrarilor care au loc in interiorul acestuia.
c) legatura cu alte module.
Raspuns : a
61. Realizarea modulara a programelor corespunde principiilor:
a) programarii clasice;
b) programarii structurate;
c) bazelor de cunostinte;
Raspuns : b
62. Principalele module de proiectare a sistemelor de prelucrare distribuita a datelor sunt:
a) proiectarea nodurilor;
b) proiectarea diagramelor;
c) proiectarea retelei de comunicatii.
Raspuns : a, c
63. Nu sunt componente de baza ale tehnologiei client/server:
a) clientul; b) administratorul de sistem;
c) serverul; d) reteaua care conecteaza clientul la server.
64. Care dintre urmatoarele instructiuni nu sunt decizionale ?
a) WHILE WEND ;
b) IFEND IF;
c) IFELSEEND IF;
d) IFTHENELSE IF END IF ;
e) SELECT CASECASE END SELECT.
Raspuns : a
6 Care dintre urmatoarele instructiuni repetitive sunt conditionate posterior ?
a) FORNEXT ;
b) WHILEWEND ;
c) DO WHILELOOP;
d) DO UNTILLOOP;
e) DOLOOP WHILE.
Raspuns : e
Modelul conceptual pune in evidenta:
a) modul de stocare a datelor pe suportul de memorare;
b) reprezentarea logica, detaliata a entitatilor, asocierilor (legaturilor) si datelor elementare
ale unei organizatii;
c) structura globala de organizare a datelor.
Raspuns: b), c)
67. Normalizarea unei relatii consta in:
a) Descrierea relatiei in limbajul de descriere a datelor;
b) Identificarea dependentelor intre atributele relatiei;
c) Descompunerea relatiei in relatii echivalente urmarind eliminarea redundantei datelor si
anomaliilor la efectuarea operatiilor de adaugare, actualizare si stergere in baza de date.
Raspuns: c)
68. Proiectarea fizica a bazei de date are in vedere:
a) modul de stocare a datelor pe suportul de memorare;
b) trecerea de la descrierea logica a datelor la una tehnica, de stocare a datelor;
b) structura globala de organizare a datelor.
Raspuns: a), b)
69. Sistemul de Gestiune a Bazelor de Date este:
a) un sistem de programe care permite definirea, crearea si intretinerea bazei de date precum si accesul controlat la baza de date;
b) un sistem de programe pentru interogarea bazei de date.
Raspuns: a)
70. Obiectivul principal al instrumentelor CASE este:
a) Punerea in practica a produselor-program de proiectare si realizare a softului cu ajutorul calculatorului.
b) Simplificarea activitatilor de proiectare si realizare a sistemelor/ aplicatiilor.
c) Aducerea in fata analistului a problemelor supuse analizei.
d) Folosirea depozitelor modularizate.
Raspuns: a
71. Avantajele sistemelor CASE sunt:
a) exploatarea sistemului;
b) cresterea vitezei de realizare a sistemelor;
c) realizarea succesiva a componentelor unui sistem;
d) simplificarea activitatilor de proiectare si realizare a sistemelor/aplicatiilor.
Raspuns: b, c, d
72. Instrumentele CASE se bazeaza pe:
a) o functie fundamentala;
b) doua functii fundamentale;
c) mai multe functii fundamentale.
Raspuns: b
73. Caracteristicile mediilor moderne de tip CASE sunt:
a) integrarea;
b) aranjarea;
c) descompunerea;
d) exploatarea.
Raspuns: a, c
74. Domeniile catre care se orienteaza Upper CASE-ul, sunt:
a) analiza cerintelor sistemului;
b) proiectarea si modelarea functionala si procedurala;
c) modelarea datelor si proiectarea bazei de date;
d) generarea codurilor.
Raspuns: a, b, c, d
7 Nu sunt corecte urmatoarele afirmatii:
a) CASE reprezinta Proiectarea Sistemelor Asistata de Calculator;
b) Instrumentele CASE implica utilizarea calculatorului ca un mijloc de sustinere a activitatilor de planificare, definire, proiectare si realizare a softului.
c) CASE reprezinta Proiectarea Sistemelor cu Ajutorul Calculatorului;
d) CASE reprezinta Componente Asamblate ale Sistemelor Economice.
Raspuns: d
Intrebari
Definiti tipurile de retele de calculatoare dupa aria de intindere geografica.
Definiti tipurile de retele de calculatoare dupa accesibilitate.
Prezentati tipurile de echipamente care pot fi utilizate in cadrul unui sistem informatic.
Enumerati produsele software de baza care pot fi utilizate pentru realizarea unui sistem informatic.
Definiti ciclul de viata a unui sistem informatic.
Enumerati etapele ciclului de viata a unui sistem informatic in modelul cascada.
8. Enumerati metodologiile utilizate in functie de modul de abordare si domeniul de aplicabilitate
9. Enumerati cele 4 nivele care pot fi identificate in organigrama unei unitati economice
Productive.
Raspuns:
- JAD (Joint Application Design);
- Prototipizarea.
- arhitectura de tip server de obiecte;
- arhitectura de tip server de pagini;
- arhitectura de tip server de baza de date.
Enumerati cele 3 nivele ale noii arhitecturi client-server definite ca urmare a utilizarii a unor platforme hard-soft diferite, precum si integrarii bazelor de date in mediul Web:
Raspuns:
nivelul client, la care se realizeaza interfata cu utilizatorul aplicatiei;
nivelul server de aplicatie, la care se realizeaza logica aplicatiei si prelucrarii datelor;
nivelul server de baze de date, la care se realizeaza validarea datelor si accesul la baza de date.
1 Enumerati tipurile de instrumente CASE dupa metodologia pe care o incorporeaza pentru
realizarea sistemelor.
Raspuns:
instrumente CASE bazate pe metodologia structurata;
instrumente hibride, ce contin elemente specifice orientarii-obiect, dar care nu permit realizarea sistemelor orientate-obiect;
instrumente pur orientate-obiect.
16. Enumerati componentele produsului Westmount I-CASE Yourdon.
Raspuns:
Repository este componenta centrala a arhitecturii Westmount I-CASE Yourdon. Repository este implementat cu ajutorul unui SGBD relational: Informix, Ingres sau Oracle.
Analyst, este componenta ce ofera suport pentru analiza structurata si anume: editoare pentru diagrame de flux a datelor, diagrame entitate asociere, diagrame de structura a datelor editoarele matriciale pentru matricea listei de evenimente.
Arhitect este componenta ce permite definirea arhitecturii sistemului (proiectarea de ansamblu). Designer este componenta ce ofera suport pentru proiectarea de detaliu a sistemului informatic.
Proiectarea de detaliu a aplicatiei este strans legata de proiectarea bazei de date. Pentru modelarea datelor se utilizeaza diagrama entitate asociere.
Programmer este mediul de programare care ofera suport pentru generarea codului sursa, compilare, lansare in executie si testarea aplicatiei. Generatorul de cod genereaza codul DDL (in SQL) ce defineste structura fizica a bazei de date si codul aplicatiei in limbajul C imbogatit cu instructiuni SQL pornind de la specificatiile din schemele de structura.
Docwriter este componenta care permite generarea documentatiei pentru fiecare etapa de realizare a sistemului.
Instrumentele CASE orientate-obiect, din punct de vedere al etapelor ciclului de viata al
sistemelor, pot fi grupate in instrumente:
Raspuns:
Upper CASE orientat-obiect pentru analiza si proiectarea sistemelor;
Lower CASE orientat-obiect pentru generarea codului-sursa al aplicatiilor;
I-CASE orientat-obiect care acopera intregul ciclu de viata.
|