Sunteți pe pagina 1din 17

STRUCTURA SI FUNCTIA CALCULATORULUI.

SISTEME DE OPERARE
In baza oricarui calculator stau doua componente fundamentale:
Hardware si Software
Harware sunt componente tari, solide care pot fi pipaite. Din componentele hard-ului fac
parte urmatoarele dispozitive: vizualizatorul, tastatura, mouse-ul, imprimanta, scanerul, boxe audio
si altele. Toate acestea sunt conectate la unitatea centrala (blocul de sistem). Blocul de sistem, la
randul sau, este compus din mai multe blocuri: blocul de alimentare, CD-ROM, DVD-RW,
dischiera, memoria hard. Toate componentele sunt conectate la placa de baza. Pe placa de baza, de
asemenea, sunt asamblate mai multe elemente, cum ar fi: procesorul, memoria operativa, placa de
sunet, placa video, placa de retea, modemul. Aceste componente pot fi divizate in urmatoarele
grupuri: unitati de intrare, unitati de iesire, unitatea de procesare. Unitatile de intrare si iesire pot fi
atribuite unei grupe deoarece componentele care fac parte din aceste grupe au posibilitatea atit de a
receptiona informatia, cit si de a o distribui. Unitatea de procesare este un sistem de componente, de
care depind celelalte componente asamblate, anume el determina caracteristicile principale ale
calculatorului, printre care enumeram:
Viteza de procesare, care depinde de clasa procesorului si determina numarul de operatii pe
secunda se masoara in Hertz, (Hz).
Memoria operativa (memorie de tip RAM). De capacitatea ei depinde volumul de informatie
memorizat de calculator in forma binara pentru prelucrarea datelor curente si datelor intermediare
din aceasta memorie informatia este disponibila atit timp cit calculatorul este conectat la reteaua de
alimentare. In memoria operativa este de asemenea inscris sistemul de operare care nu poate fi sters
intimplator. Pentru un sistem de operare mai performant avem nevoie de o memorie mai mare
Memoria permanenta (memorie de tip ROM). Capacitatea ei ne permite pastrarea informatiei
de un volum mai considerabil atit timp cit este necesar, fara restrictii, deconectarea calculatorului de
la retea nu duce la pierderea informatiei. Capacitatea memoriei se masoara in octeti (byte), Kilobyte,
Megabyte, Gigabyte.
Software este numita partea logica, programele care ne asigura lucrul cu calculatorul. La
rindul sau, software este format din Sistemul de operare si Programele de aplicatie.
Cauza principala de aparitie a sistemului de operare este necesitatea de executare a operatiilor
elementare pentru gestionarea resurselor calculatorului. Aceste operatii se numesc de nivel jos.
Pentru utilizator practic este imposibil de a indeplini sute de mii de operatii elementare pentru a
primi un rezultat scontat. Atfel, se poate afirma ca un sistem de operare poate fi asociat cu un
translator-asistent intre componenta hardware a unui sistem de calcul si utilizator.
Un sistem de operare constã dintr-un ansamblu de programe de sistem, care administreazã resursele
sistemului de calcul, asigurã utilizarea eficientã in comun a acestor resurse, asigura legatura intre
componentele logice si fizice ale sistemului. Aceste programe conduc intreaga activitate din
interiorul calculatorului, asista utilizatorul, pune in lucru si coordoneaza cu programele de aplicatie.
Sistemele mentionate mai sus sunt destinate pentru utilizatori simpli numiti USER si utilizatori
administratori numiti ADMIN, care sunt utilizatori mai experimentati, iar sistemul lor de operare are
un nivel de securitate mai ridicat. Cele mai raspindite tipuri de sisteme de operare pentru utilizatori
de tip USER sunt:
MS-DOS, Windows 95, Windows 98, Windows 2000, Windows ME, Windows XP, Windows 7,
Windows 8. Pentru utilizatori de tip ADMIN avem sisteme de operare mai performante: Windows
NT (New Technology), Windows 2003 Server, Zinux, Free BSD.
Functiile principale ale sistemului de operare sunt:
1.) Oferirea posibilitãtii de lansare in executie a programelor de aplicatie,
2.) Alocarea resurselor necesare executãrii programelor, care se realizeazã prin identificarea
programelor ce se executã, rezervarea memoriei pentru aceste programe, controlul dispozitivelor
periferice si a cerintelor privind protectia datelor;
3.) Facilitãti pentru compresia datelor, sortare, interclasare, catalogare si intretinere a bibliotecilor;
4.) Planificarea executiei lucrãrilor dupã anumite criterii, pentru utilizarea eficientã a resurselor
unitatii centrale de prelucrare.
MODEMUL
In literatura de specialitate se atentioneaza asupra a doua tipuri de modeme: Interne si
Externe. Modemul intern se caracterizeaza prin instalare in placa de baza a calculatorului, in
sloturi. Modemul extern reprezinta un bloc separat conectat la calculator prin intemediul cablului.
Modemurile sunt dispozitive destinate pentru instaurarea conectarii intre calculatoare, cu ajutorul
liniei telefonice in reteaua mondiala Internet. Liniile telefonice sunt folosite, in general, pentru
transmiterea sunetelor, a vocii umane. Modemurile au fost inventate pentru a converti informatia
digitala a calculatorului in semnal analog, impulsuri care pot fi transportate prin retelele telefonice
catre un alt calculator. Modemul de la celalalt capat al liniei primeste mesajul, il decodeaza in sistem
binar si il transmite calculatorului. Astfel, se realizeaza o comunicare intre doua terminale de
Internet. Se mai numeste conexiune dial-up.
Viteza unui modem se masoara in biti pe secunda (bps), aceasta variind de la 9,6 Kbps pina la
56 de Kbps. Denumirea de modem este prescurtarea de la Modulator - Demodulator, doua
componente ale modemului care fac posibila decodarea impulsurilor in informatie digitala si invers.
Un tip de modem mai performant este cel conectat prin reteaua de cablu TV. Modemul de
cablu este mai rapid decit cel prin dial-up deoarece abonatul la Internet are o conexiune permanenta,
iar viteza de transfer este mai mare decit in cazul conexiunii dial-up.
Modemurile sunt clasificate in functie de tipul de conexiune al acestora: modemuri telefonice,
de cablu TV si modemuri radio (legatura wireless). Din punct de vedere al componentelor aflate pe
placa de modem, modemurile pot fi hardware (executa toate operatiile de modulatie, demodulatie si
compresie) sau software, caz in care majoritatea operatiilor cad in sarcina microprocesorului
calculatorului. Aceasta ar insemna ca o parte din procesarea semnalului este descarcata de catre
procesor.
Exista modemuri ale caror caracteristici sunt "Voice, Data si Fax", iar altele care nu au decit
Data si Fax. Prima categorie iti ofera avantajul folosirii modemului si pentru convorbiri telefonice.

WINDOWS 95
Sistemul operational WINDOWS 95 a fost lansat oficial la 24 august 1995. WINDOWS 95 este
pachetul software care a exercitat cel mai mare impact in lumea calculatorului. WINDOWS5 este un
sistem perfectionat de la MS-DOS, WINDOWS 3.1 si WINDOWS 3.11. Sistemul de operare
WINDOWS si-a dobindit numele de la zonele de pe ecran, numite ferestre, care apar atunci, cind
Windows este utilizat. Tot ce se lucreaza in Windows este afisat in una din cele doua tipuri de
ferestre: fereastra de program si fereastra cu document. Acest sistem operational se bazeaza pe
dialogul dintre utilizator si calculator prin intemediul ferestrelor. Sistemul de operare WINDOWS a
fost creat pentru a usura munca utilizatorilor incepatori sau putini experimentati. Beneficiarii de
baza ai sistemului operational WINDOWS constituie utilizatorii simpli supranumiti, in limbajul
calculatorului, USER. Asadar, scopul principal al elaboratorilor Windows este scaderea brusca a
cerintelor de pregatire pentru utilizatori si elaborarea unei interfete comode si sigure. Cu ajutorul
acestui sistem de operare orice operatie poate fi indeplinita prin mai multe cai posibile, deci
destinata pentru diferiti posesori, fiecare cu caracterul si preferintele sale, a fost bine gindit sistemul
de sfaturi, mesaje si avertizari pentru sustinerea utilizatorului pe tot parcurul sedintei de lucru.
Sistemul operational Windows este construit in modul real-obiectual, cee ce inseamna ca
interfata reprezinta o copie a lumii reale, iar lucrul cu calculatorul se reduce la manipularea cu
obiecte uzuale. Astfel, mapele pot fi deschise, puse in geanta, documentele – pot fi studiate,
corectate, mutate dintr-un loc in altul, aruncate in cosul de gunoi, faxul sau scrisoarea – trimise
destinatarului etc.
Microsoft, compania care a elaborat acest sistem operational, afirma ca in timpul apropiat
utilizatorii se vor gindi mai putin la programe in care sunt scrise documentele, si mai mult la
documentele cu care lucreaza.

CAPITOLUL I
NOŢIUNI DE BAZA PRIVIND INSTRUMENTELE SOFTWARE
Informatica a cunoscut şi cunoaşte o dinamică de dezvoltare accentuată, care s-a făcut simţită prin
produse informatice cu performanţe sporite. De la produsul informatic de o complexitate arhitecturală şi
structurală redusă, destinat în special automatizării calculelor numerice s-a ajuns la produse informatice
sofisticate, capabile să manipuleze şi să prelucreze imagini, să încorporeze, prin elemente de inteligenţă
artificială cunoaşterea şi experienţa umană. În SUA şi alte ţări avansate circa 90% din costurile de prelucrare
automată a datelor reprezintă cheltuielile cu elaborarea produselor program. În consecinţă, sunt motivate
preocupările pentru o abordare globală a programării şi, prin urmare, folosirea unor modele, tehnici şi
instrumente care să permită construirea modulară şi progresivă a produselor program. Necesitatea ridicării
eficienţei acestei activităţi a ridicat în faţa specialiştilor probleme noi, cum ar fi: crearea cadrului
organizatoric şi metodologic care să pună bazele desfăşurării şi conducerii după norme, standarde şi metode
unitare; formalizarea verificării corectitudinii produselor program; proiectarea asistată de calculator;
abordarea sistemică a elaborării produselor program, etc. probleme rezolvate în mare parte, existând
actualmente, la nivelul cercurilor de specialişti preocupări de perfecţionare ale acestora.
1.1 Instrumente software - definire şi clasificare
În cadrul problematicii pe care o ridică prelucrarea electronică a informaţiilor economice, o importanţă
majoră revine folosirii instrumentelor software în vederea efectuării lucrărilor solicitate. Această activitate
face apel la resursele logice (componenta software) care permit utilizatorilor să folosească resursele fizice
(componenta hardware) şi să transforme resursele de date în produse informatice.
Resursele logice sunt necesare pentru a realiza operaţiile de intrare, ieşire, prelucrare, memorare
(stocare) şi control. Pentru efectuarea acestora se folosesc programele. Programele sunt entităţi software cu
un conţinut şi o delimitare bine precizate, numite generic instrumente software (ele fac parte din categoria
mijloacelor de muncă).
Programul reprezintă totalitatea instrucţiunilor şi /sau comenzilor pregătite şi ordonate în prealabil
conform unei logici prestabilite, stocate în memoria calculatorului şi utilizate pentru rezolvarea unei anumite
probleme, iar ansamblul activităţilor de concepere, dezvoltare şi întreţinere a programelor poartă denumirea
de programare. Instrucţiunile şi /sau comenzile constituie informaţii codificate ce transmit calculatorului
acţiunea ce urmează a fi executată. La rândul lor acestea pot fi structurate în două mari grupe:
• de prelucrare prin care se realizează introducerea /extragerea datelor în /din sistem, efectuarea
operaţiunilor de calcul, efectuarea transferului de date între diferite zone de memorie etc.;
• de organizare (de structurare internă a programului) ce asigură codificarea structurilor de control
şi de apelare sau de salt la alte programe.
Conceptul de program sau produs-program desemnează atât programul propriu-zis cât şi
operaţiile manuale şi documentaţia necesare pentru dezvoltarea, utilizarea şi întreţinerea lui. Revenind asupra
programelor acestea pot fi grupate în 2 mari categorii:
• software-ul de bază (programe de bază);
• software-ul de aplicaţii (programe de aplicaţii).
Schematic aceste două mari categorii de programe informatice pot fi prezentate ca în figura nr. 1.1.
P ro g ram e
i n f o r m a ti c e

P ro g ram e d e P ro g ram e
bazå a p l i c a ti v e

P ro g ram e d e P ro g ram e d e P ro gram e de P ro g ram e


sp rijin ire a P ro g ram e p ro p rii u n ei
g e s ti u n e a d e z v o l ta r e a
g e s ti u n i i s i s te m e l o r p o l i v a l e n te a p l i c a ¡i i
s i s te m u l u i
s i s te m u l u i

♦ N u c l e u l S .O ♦ U ti l i ta r e ♦ T r a d u c to a r e ♦ P r e l u c r a r e te x t ♦ C o n ta b i l i ta te : C a r te a
♦ C o n te x te d e ♦ P r o g r a m e d e ♦ M ed ii d e ♦ S p rea d sh eet m are
e x p l o a ta r e c o n tr o l a p ro gram are ♦ S .G .B .D . ♦ M a r k e ti n g : a n a l i z a
♦ G e s ti o n a r e d e p e r o r m a n ¡e l o r ♦ P ro g ram e d e ♦ T e l e c o m u n i c a ¡i i v â n z å r i l o r
b a z e d e d a te ♦ M o n i to a r e d e a r b i tr a r e î n ♦ I n fo g rafia ♦ F i n a n ¡e : s ta b i l i r e a
♦ M o n i to a r e d e s e c u r i ta te in g in eria ♦ P ro gram e b u g e te l o r
te l e c o m u n i c a ¡i i p ro gram årii i n te g r a te ♦ P r o d u c ¡i e : c o n tr o l u l
p r o d u c ¡i e i

Fig. nr. 1.1 Clasificarea programelor informatice


Software-ul de bază serveste ca interfaţă logică între resursele sistemului informatic şi programele
de aplicaţii. Software-ul de bază administrează şi susţine resursele fizice şi exploatarea unui sistem informatic
în timpul diverselor prelucrări prin toate celelalte tipuri de programe. Intră în această categorie cu precădere
sistemele de operare. Succint cele trei tipuri de programe de bază realizează următoarele funcţii:
Programele de gestiune a sistemului: administrează resursele materiale, logice şi de date în timpul
execuţiei funcţiilor de prelucrare a datelor pentru utilizatorul final.
Programele de sprijinire a gestiunii sistemului: printr-un ansamblu de servicii susţin exploatarea şi
gestiunea unui sistem informatic.
Programele de dezvoltare a sistemelor: uşurează dezvoltarea procedurilor sistemului informatic
pregătind programele-utilizator prin intermediul traductoarelor, mediilor de programare etc.
Ultimele tipuri de calculatoare dispun de o componentă specială Firmware constituită din
microprograme înscrise în memoriile fixe, şi care alături de celelalte tipuri de programe asigură maximizarea
productivităţii unui sistem informatic.
Software-ul de aplicaţii serveste la prelucrarea propriu-zisă a datelor coordonând execuţia unei
funcţii sau a unei aplicaţii în raport cu cererile de informaţii ale utilizatorilor. Există o mare varietate de
programe aplicative, varietate ce decurge pe de o parte din cererea mereu crescândă de automatizare a
funcţiilor utilizatorilor iar pe de altă parte din popularitatea şi larga utilizare a calculatoarelor personale.
Programele aplicative la rândul lor sunt de două tipuri:
• programe polivalente;
• programe proprii unei aplicaţii.
Programele polivalente sunt resurse logice care realizează activităţile curente de prelucrare a datelor
pentru a satisface cererile utilizatorului. Intră în această categorie numeroase programe de prelucrare a
textului, programele de calcul tabelar, SGBD-urile, programele integrate etc. Deoarece ele asigură creşterea
productivităţii /performanţelor utilizatorilor, se mai numesc şi programe de productivitate.
Programele proprii unei aplicaţii sprijină utilizatorii în realizarea unor funcţii bine stabilite. La
rândul lor aceste programe pot fi grupate în:
Aplicaţii de gestiune - sunt programe care execută /realizează prelucrarea datelor pentru a
îndeplini funcţiile unei organizaţii. Iată câteva funcţii ale organizaţiei şi aplicaţiile corespunzătoare:
contabilitate (sintetică,analitică), marketing (analiza vânzărilor), finanţe (stabilirea bugetului pentru
investiţii), investiţii /producţie (planificarea necesarului de materiale), gestiunea operaţiilor (controlul
stocurilor), gestiunea resurselor umane (analiza avantajelor sociale);
Aplicaţii ştiinţifice - sunt programe care execută funcţiile de prelucrare a datelor în ştiinţele
naturale, în fizică, ştiinţe sociale, matematică şi alte sectoare de cercetare şi experimentare ştiinţifică.
Clasificările cele mai largi cuprind analiza ştiinţifică, proiectarea tehnică şi supravegherea experienţelor;
Alte aplicaţii - intră în această categorie în general aplicaţiile informatice în educaţie, în muzică,
medicină, arte, drept etc. iar în particular învăţământul asistat de calculator, jocurile video, informatică
muzicală şi desene pe calculator.

1.2 Limbaje şi limbaje de programare

Dezvoltarea calculatoarelor electronice a dus la apariţia unor “probleme lingvistice” noi, care derivă
din necesitatea realizării dialogului om-calculator (prin adresarea de instrucţiuni). Limbajele actuale de
dialogare cu calculatorul sunt inadecvate în raport cu mijlocul de comunicare al omului, limbajul natural.
Omul este singura fiinţă capabilă să creeze, să manipuleze şi să înţeleagă limbaje infinite, adică limbaje care
funcţionează pe baza unor reguli recursive, repetabile indefinit. Limbajul uman, în înţeles larg este atât un
limbaj articulat, cât şi un limbaj artificial de tipul calculului propoziţional, cu n variabile. Limbajul
propoziţional este un limbaj formal în înţelesul logicii matematice. Rezultă că limbajele formale sunt limbaje
umane artificiale definite cu ajutorul unui alfabet finit şi al unei mulţimi (posibil infinite) de secvenţe finite de
elemente ale alfabetului (unele elemente putându-se repeta în aceiaşi secvenţă). Nu orice limbaj uman
artificial este un limbaj formal. Încadrăm aici şi limbajele de programare. Acestea pot fi considerate limbaje
de graniţă între limbajele naturale şi cele formale, având trăsături preluate din ambele clase. Limbajele de
programare au fost privite la început ca limbaje artificiale formale. Artificiale, deoarece sunt o creaţie
deliberată şi formale, deoarece sunt un mijloc de comunicare om - maşină, maşina înţelegând doar limbaje
algoritmice, deci formale. Tot mai multe argumente pledează în sprijinul ideii că limbajele de programare se
depărtează în multe privinţe de limbajele formale. Dintre aceste argumente amintim doar faptul că semantica
expresiilor unui limbaj de programare se realizează integrativ, nu aditiv (semnificaţia unei secvenţe nu se
obţine întotdeauna prin compunerea semnificaţiilor termenilor acestei secvenţe).
Limbajul natural a devenit preocuparea centrală a cercetărilor de inteligenţă artificială şi, implicit, o
problemă fundamentală a informaticii, cu obiectivul de a fi înţeles şi de a fi integrat cât mai mult într-un
automat, în scopul simplificării la maximum al dialogului om - calculator.
Limbajele de programare sunt sisteme convenţionale (limbaje artificiale) create de om şi care
servesc la exprimarea sub formă de acţiuni executabile mijlocit sau nemijlocit de către sistemul de calcul a
algoritmului sau logicii de rezolvare a unei probleme. Algoritmul indică modul de prelucrare a datelor iniţiale
şi modificarea lor pas cu pas până la obţinerea rezultatelor finale. Natura datelor, organizarea lor şi relaţiile
dintre ele trebuie precizate prin program, limbajele de programare oferind facilităţi corespunzătoare de
descriere.
Orice programator, în activitatea sa este confruntat cu trei universuri: universul problemei ce
urmează a fi rezolvată cu ajutorul calculatorului; universul limbajului de programare şi universul
calculatorului. Prin efortul programatorului, universul problemei se descrie în termenii limbajului de
programare şi apoi prin intermediul unui procesor de limbaj se reflectă în universul calculatorului. Putem
spune deci că limbajul de programare este intermediarul între problemă şi calculator.
Orice limbaj (natural sau artificial, deci şi un limbaj de programare) presupune definirea sintaxei,
semanticii şi pragmaticii lui. Sintaxa reprezintă un set de reguli ce guvernează alcătuirea propoziţiilor dintr-
un limbaj. În cazul limbajelor de programare echivalentul propoziţiei este programul. Definirea riguroasă a
sintaxei, presupune folosirea unor elemente de teorie a limbajelor formale (vocabular, frază, gramatică).
Semantica este dată de un set de reguli ce determină “înţelesul” sau semnificaţia propoziţiilor într-un limbaj.
Pragmatica indică utilitatea practică a limbajului (uşurinţa utilizării, independenţa de sistemul de calcul etc.)
Există numeroase limbaje de programare fiecare posedând:
• propriul vocabular;
• propria gramatica (numai sintaxa);
• propriile aplicaţii.
Vocabularul, construit pe baza unui set de caractere(simboluri), este format din mulţimea cuvintelor
care, în fapt, reprezintă: instrucţiuni, comenzi, funcţii, variabile, constante, expresii etc.
Gramatica reprezintă ansamblul regulilor de formare a construcţiilor din cadrul programelor,
respectându-se totodată o anumită punctuaţie care are rolul de a indica folosirea corectă a tuturor elementelor
unui limbaj. În legătură directă cu gramatica unui limbaj se află metalimbajul - instrument sintetic,
sistematizat şi simplificat de exprimare a regulilor gramaticale în scopul elaborării programelor. În practică
există şi încercări de standardizare a metalimbajelor. Prima contribuţie în această direcţie aparţine lui J.
Backus concretizată în metalimbajul BNF (Backus Naur Form) utilizat în prezentarea limbajului ALGOL 60
şi extensia acestuia EBNF (Extended BNF). Un alt metalimbaj cu o arie largă de extindere este CBL
(COBOL - Like ) folosit în definirea limbajului COBOL.
Elementele de metalimbaj curent folosite sunt:
- cuvintele rezervate - sunt scrise cu majuscule, sunt specifice unui limbaj si trebuie folosite exact în aceeaşi
forma. Ex.: comenzi, clauze si funcţii în FoxPro - LIST, CREATE, FOR, IIF() etc.;
- cuvintele utilizator - sunt scrise cu minuscule şi reprezintă construcţii utilizator. Ex.: codmat, matricol,
fismat etc.;
- < > - încadrează construcţiile utilizator. Ex.: <nume_tabelă>, <nume_câmp>;
- [ ] - încadrează construcţiile opţionale (programatorul decide dacă acestea vor fi sau nu folosite). Ex.:
LIST [FIELDS <listă_câmpuri>] etc.;
- { } sau | - sau exclusiv - din elementele prezente se va alege unul singur. Ex.: TO PRINT| TO FILE, ON|
OFF, {>=|<+} etc.;
- … - construcţia precedentă se poate repeta de un număr arbitrar de ori. Ex.: <nume_câmp1>….
Aplicaţiile proprii sunt componente ale limbajelor de programare constituite, cu precădere, din
utilitarele proprii, editorul de text încorporat precum şi aplicaţiile proiectate cu scop demonstrativ.

1.2.1 Evoluţia şi clasificarea limbajelor de programare

În literatura şi practica de specialitate, limbajele de programare sunt structurate în mai multe clase
avându-se în vedere diverse criterii precum: facilităţile oferite utilizatorilor, modul de elaborare şi exprimare
a procedurilor sau a problemelor de rezolvat, fluxul de execuţie a programelor şi modul de exprimare a
comunicării dintre ele, aria de aplicabilitate. Trebuie făcută de la început precizarea că definirea claselor nu
determină gruparea limbajelor în mulţimi disjuncte, un anume limbaj, în funcţie de caracteristicile sale putând
face parte din una sau mai multe clase. Plecând de la acest aspect, cea mai folosită clasificare este cea care
grupează limbajele de programare în cinci generaţii şi care, de altfel, urmăreşte periodizarea evoluţiei
arhitecturii calculatoarelor.
Generaţia a 1-a cuprinde limbajele “maşină” ce definesc instrucţiunile sub o formă convenţională
recunoscută de componentele de programare ale unui calculator. Programele scrise în astfel de limbaje
cuprind instrucţiuni sub forma unui “cod operaţie” şi adrese sau referinţe convenţionale privind componentele
calculatorului (maşinii).Principalele deficienţe ale acestor limbaje sunt legate de dificultăţile de corectare a
programelor.
Generaţia a 2-a cuprinde limbajele “orientate spre maşină”. Programele obţinute cu aceste limbaje se
constituie dintr-o succesiune de instructiuni într-o maniera similara programelor în limbaj maşină. Se
regăsesc în această generaţie:
• limbajele “autocod”;
• limbajele de asamblare.
Limbajele “autocod”. Aceste limbaje compun instrucţiunile astfel încât fiecare tip de instrucţiune să
corespundă unei instrucţiuni în limbaj maşină. O instrucţiune înseamnă un cod operaţie exprimat sub o formă
prescurtată (de ex. ADD pentru adunare) şi adrese exprimate sub formă de nume simbolice (care în momentul
“traducerii” vor fi convertite în adrese). Un set de instrucţiuni de definire (pseudo-instrucţiuni) oferă anumite
înţelesuri complementare care vor servi la transformarea programului în limbaj maşină (ex. lungimea fiecărei
date).
Limbajele de asamblare. Sunt limbaje la care cuvântul asamblare este utilizat într-un sens puţin mai
larg decât autocodul. Aceasta înseamnă că include în propriile convenţii de scriere pe lângă instrucţiuni
,pseudo-instrucţiuni şi macro-instrucţiuni care sunt echivalente nu numai cu o instrucţiune în limbaj maşină ci
şi cu o întreagă secvenţă de instrucţiuni Prin asamblare sunt reunite într-un program unic toate instrucţiunile
descrise de una sau mai multe secţiuni de program realizate cu un limbaj de asamblare.
Principalul avantaj al limbajelor de asamblare este legat de viteza de execuţie care este ridicată.
Aceste limbaje sunt preferate în elaborarea software-ului de sistem, chiar dacă limbajele evoluate solicită un
efort de programare mai mic.
Generaţia a 3-a cuprinde limbajele “orientate pe problemă”(limbajele evoluate). Aceste limbaje se
caracterizează pe de o parte printr-un mod de descriere mai uşor de înţeles, iar pe de altă parte prin faptul că,
prin modificări minore, se pot utiliza pe diferite calculatoare.
În această generaţie se include o mare varietate de limbaje, cele mai cunoscute şi folosite fiind:
• limbajele de utilizare ştiinţifică orientate spre descrierea algoritmilor matematici: FORTRAN
(FOrmula TRANslator), ALGOL (Algorithmic Oriented Language), APL (Applied Physics
Laboratory);
• limbajele de gestiune orientate spre prelucrarea datelor înscrise în fişiere: COBOL (Common
Business Oriented Language); generatoare de programe GAP (General Accounting Package),
RPG (Report Program Generator).
Multe dintre limbajele incluse în cea de a treia generaţie, din punctul de vedere al ariei de
aplicabilitate, sunt limbaje universale: PL/1 (Programming Language 1), PASCAL, C, ADA (Automatic Data
Acquisition).În anumite domenii au fost create limbaje proprii pentru aplicaţii foarte specializate precum
pregătirea programelor de comandă numerică (ex. limbajul APT - Automatic Programming Tool).În
domeniul microinformaticii se regăsesc limbaje specifice precum LDP (limbaj de descriere a paginii) destinat
controlului imprimantelor laser (cel mai utilizat este Postscript) sau gestionarele de date: dBASE, FoxPro etc.
Generaţia a 4-a cuprinde limbajele orientate către utilizatorii finali. Folosind aceste limbaje,
utilizatorii neinformaticieni, fără a avea o pregătire specială pot să-şi rezolve singuri propriile probleme,
dialogând cu calculatorul. În felul acesta se elimină etapa de programare şi se asigură o implicare şi un interes
mai mare din partea utilizatorului.
Pe piaţa de software, limbajele din această generaţie sunt diverse, acoperă domenii foarte complexe şi
sunt destinate fie utilizatorilor, fie programatorilor, fie ambelor categorii. Spre deosebire de limbajele din
generaţia precedentă care descriu ce trebuie să facă un calculator, cele din generaţia a 4-a descriu cum să
facă pentru a rezolva o problemă, fiind în general „conversaţionale”.
Majoritatea specialiştilor grupează limbajele din generaţia a patra în următoarele clase de produse:
• limbaje (instrumente) de interogare;
• generatoare de rapoarte;
• generatoare de aplicaţii şi /sau proiecte;
• generatoare de grafice;
• instrumente de sprijinire a deciziilor.
La ora actuală constructorii de software oferă produse care integrează toate aceste funcţiuni. De
exemplu, programul de calcul tabelar este un instrument de sprijinire a procesului decizional, dar care oferă şi
o vastă gamă de alte facilităţi: obţinerea, actualizarea şi interogarea bazelor de date, generarea rapoartelor,
generarea graficelor etc.
Limbajele de interogare la rândul lor pot fi de două tipuri:
• limbaje de interogare simplă care permit consultarea fişierelor şi a bazelor de date pe un singur
tip de înregistrare logică utilizând un criteriu de selecţie mai puţin complex;
• limbaje de interogare complexă care permit consultarea mai multor tipuri de înregistrări logice
din una sau mai multe baze de date
• În cea de a doua subgrupă intră SQL (Structure Query Language) QBE (Query By Example),
Hiper Talk, Inttelect, Quel etc. Cea mai mare răspândire o cunoaşte SQL,
un nucleu SQL fiind prezent în orice sistem de gestiune a bazelor de date (dBASE, CLIPER, FoxPro, Focus,
RAMIS, Oracle).
Generatoarele de rapoarte (situaţii) îndeplinesc, în principal, trei funcţii esenţiale: selecţia
informaţiilor solicitate, ordonarea datelor după criterii prestabilite şi editarea rapoartelor într-o structură
formalizată folosind un număr minim de instrucţiuni de programare. În general, toate sistemele de gestiune a
bazelor de date precum şi programele de calcul tabelar (spreadsheet-urile) au încorporate generatoare de
rapoarte. Cele mai populare instrumente din această categorie sunt: Easytrieve Plus, Datatrieve, Mark
V.Există şi generatoare de rapoarte care sunt proiectate pentru a fi utilizate de către specialişti ca de exemplu
RPG III (Report Program Generator).
Generatoarele de aplicaţii şi /sau proiecte se adresează în special utilizatorilor cunoscători ai
tehnicilor de programare. Ele permit ca pe baza unor descrieri externe a datelor şi a modului de organizare,
prelucrare şi afişare a acestora să se accelereze generarea (codarea) programelor, folosind un limbaj specific
sau chiar un limbaj de generaţia a 3-a (COBOL). Intră în această clasă de generatoare: CSP (Cross System
Product - IBM), FOCUS, Mantis, Natural, NOMAD2, RAMIS 1, IDEAL MAPPER
Generatoarele de grafice sunt instrumente ce permit reprezentarea sub formă grafică (histograme,
bare, linii, cercuri etc. tridimensionale, cu opţiuni de culoare, text, legendă), a rezultatelor prelucrării datelor.
Ele sunt independente (Tell-al Graph, SAS, ADRS/B6) sau încorporate în spreadsheet-uri (LOTUS,
QUATTRO, EXCEL) sau în SGBD-uri (FoxGraph).
Instrumentele de sprijinire a deciziilor se adresează experţilor din diferite domenii de activitate
(finanţe, management, contabilitate, marketing etc.) pentru elaborarea şi urmărirea bugetelor, analiza
investiţiilor, studiul pieţei etc. permiţând realizarea simulării şi modelării matematice a fenomenelor
economice. Intră în această clasă programele de calcul tabelar (EXCEL, QUATTRO, LOTUS.), pachetele-
program statistice (SPSS, SAS etc.).
Generaţia a 5-a cuprinde limbajele care sunt sau vor fi îndreptate spre exploatarea bazelor de
cunoştinţe, crearea sistemelor expert şi mai general spre rezolvarea problemelor legate de inteligenţa
artificială(LISP, PROLOG, PLANNER, Smalltalk). Un rol deosebit revene limbajelor pentru programarea
orientata pe obiecte (Smalltalk, C++). Un limbaj conceput recent, specific structurilor generaţiei a 5-a este
MANDALA care combină prelucrarea cunoştinţelor cu funcţiile unui sistem de gestiune a bazei de cunoştinţe
şi se bazează pe alegerea raţională în conexiune cu clauzele Horn.
După modalitatea de descriere a problemei de rezolvat , limbajele pot fi grupate în :
• limbaje procedurale;
• limbaje neprocedurale.
Limbajele procedurale descriu pas cu pas algoritmii (succesiunile de instrucţiuni) de rezolvare a unei
probleme. Se înscriu în această grupă majoritatea limbajelor de nivel înalt: BASIC, COBOL, PL/1,
FORTRAN, PASCAL, etc.
Limbajele neprocedurale sunt limbaje de nivel foarte înalt care definesc scopul urmărit fără a da detalii
asupra modului de rezolvare a acestuia . În această grupă pot fi incluse şi limbajele de programare
specializate care sunt destinate a rezolva probleme din domenii relativ restrânse. Din grupa limbajelor
neprocedurale fac parte Smalltalk, Prolog, etc.
1.2.2 Caracterizarea principalelor limbaje
Din multitudinea limbajelor de programare practica a consacrat atât limbaje de tip universal cât şi
limbaje specializate pe domenii de activitate. În continuare, fără pretenţia de a fi exhaustivi, prezentăm
limbajele care s-au impus în domeniul economic.
FORTRAN (FORmula TRANslation) este primul limbaj ştiinţific fiind apropiat de limbajul
matematicii clasice. A cunoscut o largă răspândire fiind implementat pe
aproape toate sistemele de calcul. Cele mai utilizate versiuni sunt: FORTRAN IV, FORTRAN IV PLUS,
FORTRAN 77 - pentru minicalculatoare, specializat pentru prelucrări în timp real, FORTRAN 90 - varianta
îmbunătăţită cu atributele programării orientate pe obiect.
COBOL (COmmon Business Oriented Language) este un limbaj de programare evoluat din
generaţia a-3-a destinat problemelor de gestiune şi definit de CODASYL (Conference On Data Systems
Language) ca reprezentant al constructorilor şi beneficiarilor de calculatoare. Se utilizează pentru exploatarea
unui volum mare de date cu structuri diverse (arbori, tablouri, fişiere etc.). Cu toate acestea limbajul COBOL
este mai dificil de însuşit decât alte limbaje, dispunând de multe instrucţiuni cu numeroase opţiuni fiecare.
Sintaxa acestora nu este însă foarte complexă.
ANSI (American National Standard Institute) a standardizat şi publicat mai multe versiuni susţinute
şi de către IBM.
La ora actuală, pentru microcalculatoare, firma MicroFocus din Marea Britanie oferă compilatoare
COBOL care permit: dezvoltarea de aplicaţii (inclusiv cu facilităţi grafice) pentru lucrul în reţea de
calculatoare; dezvoltarea de aplicaţii cross-platform destinate unei game largi de echipamente şi sisteme de
operare; asigurarea portabilităţii la nivel de program sursă.Ultima versiune de COBOL este orientată pe
obiecte într-un mediu de dezvoltare integrat, scopul principal fiind protejarea investiţiilor şi creşterea
productivităţii programării. Aceste facilităţi fac din COBOL un software complex cu un înalt grad de
generalizare şi care asigură independenţa programelor faţă de componentele hardware.
BASIC (Beginner’s All-purpose Symbolic Instruction Code) reprezintă unul dintre cele mai simple
limbaje de programare având trăsături comune cu limbajul FORTRAN. El dispune de un set restrâns de
instrucţiuni cu o sintaxă relativ simplă şi
uşor de însuşit. Universalitatea şi simplitatea limbajului a determinat includerea sa în sistemele de operare. Şi
acest limbaj a cunoscut diverse versiuni, cele mai răspândite fiind: BASICA, GWBASIC, QBASIC, Turbo
Basic.
PASCAL (nume atribuit în onoarea matematicianului francez Blaise Pascal) este un limbaj bazat pe
principiile programării structurate, caracterizat prin simplitate, eficienţă şi care acceptă o gamă largă de tipuri
de structuri de date. Limbajul a cunoscut mai multe versiuni adaptate diverselor metode de prelucrare (Pascal
secvenţial, Pascal concurent, Pascal obiectual). Limbajul Pascal a stat la baza elaborării de noi limbaje
precum MODULA-1, MODULA-2, ADA.
Pascal-ul secvenţial este un limbaj lansat în 1970 de către Niklaus Wirth (Institutul pentru
informatică al Institutului Politehnic din Zürrich) şi care se bazează pe principiile programării structurate.
Acceptă o gamă largă de tipuri de date (intrinseci, scalare, structurate, mai puţin cele abstracte). Cea de a
doua vrsiune, Pascal-ul concurent, a fost elaborată de către Per Brinch Hansen (Institutul de Tehnologie din
California) şi permite definirea datelor abstracte prin mecanisme destinate descrierii proceselor concurente.
Programele sunt constituite din definiţii de tip sistem cu structură de arbore. Pascal-ul concurent a moştenit
atât calităţile cât şi defectele din Pascal-ul secvenţial. Întrucât, la puţini ani după apariţia sa, s-au cristalizat
concepte mai evoluate, Pascal-ul concurent nu a avut timp să se impună, deşi el rămâne, după ADA şi
Modula-2 unul din cele mai bune limbaje în timp real.
ADA (Automatic Data Acquisition şi totodată numele contesei de Lovelance Augusta Ada Byron,
considerată a fi primul programator din lume) este un limbaj destinat aplicaţiilor tehnico-ştiinţifice, a celor în
timp real şi a programării concurente. Limbajul a fost elaborat de către o echipă de la Honeywell şi CII
Honeywell Bull, condusă de Jean D. Ichbiah cu scopul de a înlocui cele aproximativ 350 de limbaje folosite
la acea dată de către Departamentul apărării al SUA. Limbajul a fost standardizat în februarie 1983. ADA
este un limbaj complex şi dificil de învăţat, dar care asigură claritatea şi robusteţea programelor realizate într-
o concepţie modulară, compilare separată, tratarea excepţiilor. Limbajul ADA a fost influenţat, în mare
măsură, de limbajele din familia PASCAL (Euclid, Lis, Mesa, Modula, Sue) şi în mai mică măsură de Algol-
68, Simula, Alphard, Clu. Folosit iniţial în domeniul militar, la ora actuală, datorită facilităţilor oferite, este
larg utilizat şi în aplicaţiile economice. Pe ansamblu, limbajul ADA poate fi considerat nu doar un limbaj ci
“un mod de a gândi” constituind o piatră de hotar în evoluţia programării în timp real.
C (numit C deoarece dezvoltă limbajul B elaborat de Bell Laboratories) este un limbaj orientat spre
asigurarea controlului fluxurilor de instructiuni (teste, bucle, subprograme) conducând la elaborarea de
programe compacte, bine structurate fiind aplicat de constructorii de soft-uri de bază (C-ul a fost folosit iniţial
la scrierea sistemului de operare UNIX, foarte multe din procesoarele de texte, SGBD-urile şi spreadsheet-
urilor comercializate la ora actuală fiind realizate /scrise în versiuni ale acestui limbaj).C-ul preia de la
limbajele de tip PASCAL gradul ridicat de portabilitate, iar de la limbajele de asamblare rapiditatea în
execuţia şi gestionarea eficientă a memoriei. Astăzi, cele mai utilizate versiuni sunt: C++, Quick C, Visual C.
RPG (Report Program Generator) este un limbaj dezvoltat de către firma IBM la mijlocul anilor ‘60
odată cu lansarea unei noi linii de minicalculatoare proiectate pentru afacerile mici şi mijlocii. Limbajul
permite ca pe baza unor specificaţii ale utilizatorului, să se genereze codul unui program care lansat în
execuţie va conduce la obţinerea rapidă şi cu un cost relativ redus, a rapoartelor dorite.
PL/1 (Programming Language 1) este un limbaj lansat tot de către firma IBM la începutul anilor ‘60,
îmbinând facilităţile din FORTRAN pentru aplicaţii ştiinţifice, cu cele din COBOL pentru aplicaţiile
economice. La ora actuală acesta nu este foarte popular, utilizarea lui fiind limitată datorită faptului că este
complex şi greu de învăţat.
LISP (List Processing) a fost proiectat la sfârşitul anilor ‘50 pentru procesarea listelor de date, în
special a celor nenumerice. Acest tip de procesare este specific domeniului inteligenţei artificiale. Folosind
LISP-ul, se pot scrie programe care simulează gândirea umană în situaţii speciale. Descrierea prelucrărilor se
bazează pe compunerea unui set de funcţii, tratându-se uniform toate obiectele cu care lucrează. În ansamblul
său LISP-ul este un limbaj dificil de învăţat şi utilizat.
PROLOG (PROgramming LOGic) a fost dezvoltat la mijlocul anilor ’70 şi este un limbaj de tip
descriptiv folosit tot pentru programele de inteligenţăartificială.
Smalltalk a fost dezvoltat la mijlocul anilor ’70 de către firma Xerox Corporation pentru un tip de
programe - programarea orientată pe obiect care combină mesaje şi instrucţiuni
pentru procesarea datelor. Acest limbaj nu este greu de învăţat şi utilizat, dar reclamă schimbarea în întregime
a modului de gândire a unui program.Se prevede ca în viitor Smalltalk, alături de celelalte limbaje orientate
pe obiect (C++, C-obiectual), să cunoască o dezvoltare şi utilizare deosebită.
Java a fost dezvoltat de Sun Microsystems şi este un limbaj orientat pe obiecte, adaptat programării
şi distribuirii aplicaţiilor prin Internet. Acest limbaj asigură comunicarea între echipamente eterogene
distribuind formatul executabil al programului în reţea. Java operează cu tipuri obişnuite de date, dispune de
instrucţiuni speciale de protecţie şi oferă facilităţi de programare de tip animaţie, orientate obiect etc. Codul
Java este portabil, acelaşi program putând fi rulat pe orice platformă care deţine acest mediu de execuţie. Un
program Java poate fi prezentat fie sub formă de aplicaţie, fie sub formă de program apelat. Aplicaţia
reprezintă un program în sensul clasic, care se execută prin intermediul interpretorului Java. Cea de a doua
formă - applet-ul este un program Java apelat printr-un document HTML şi executat sub controlul unui
navigator sau al unui „appletviewer” echipat cu un interpretor Java.
O parte din limbajele de programare, prin diversele lor versiuni, nu pot fi încadrate strict într-o
anume generaţie. Fiind supuse continuu perfecţionării, ele tind spre generaţia superioară celei în care au fost
proiectate iniţial. În tabelul nr. 1.1 prezentăm comparativ principalele limbaje de programare.
Tabelul nr. 1.1 Limbaje de programare-generaţii şi domenii de utilizare
Limbajul Gene Neporta Portabilit Domenii de utilizare
-ratia bili tate ate
Progr. Programe aplicative Alte
Sistem domenii
Econ. Ştiinţif.
L. maşină 1 x X
L. asamblare 2 x X
FORTRAN 3 x X
COBOL 3 x X
BASIC 3 x X X
PASCAL 3-4 x X X X
RPG 3-4 x X
C 3-4 x X X X X
ADA 3-4 X X X X X
PL/1 3-4 X X X X
LISP/PROLOG 4-5 X X X X
SAMLTALK 4-5 X X X X
JAVA 4-5 X X X X X

După cum se observă, majoritatea limbajelor prezentate acoperă domeniul aplicaţiilor economice,
oferind facilităţi şi pentru cele ştiinţifice şi de altă natură.

1.3 Sisteme de gestiune a bazelor de date


SGBD-urile reprezintă componenta software a unui sistem de baze de date care realizează /asigură
independenţa, relaţiile logice între date şi o redundanţă minimă a acestora. Ele trebuie să permită dezvoltarea
rapidă şi la un cost avantajos a programelor de aplicaţii pentru exploatarea datelor dintr-o structură complexă,
precum şi accesul rapid la date şi asigurarea securităţii lor. Altfel spus SGBD -ul este un ansamblu de
programe care permite utilizatorilor să interacţioneze cu o bază de date, concepută de regula pentru volume
mari de date a căror gestiune impune nu numai o riguroasă structurare dar şi o raţională accesare şi
prelucrare.
1.3.1 Arhitectura sistemelor de gestiune a bazelor de date

Teoria şi practica SGBD-urilor oferă diferite arhitecturi diferenţiate în funcţie de componentele,


limbajele utilizate şi posibilităţile de prelucrare a datelor, existând totuşi preocupări de standardizare a
acestora.
În general, intră în arhitectura unui SGBD cel puţin 5 clase de module:
• programele de gestiune a bazelor de date (PGBD);
• limbajul de definire /descriere a datelor (LDD);
• limbajul de manipulare a datelor (LMD);
• utilitarele de întreţinere a bazei de date;
• componentele de control a programelor de aplicaţii.
Schematic structura unui SGBD poate fi prezentată ca în figura 1.2.

A d m i n i s tr a to r u l
U ti l i z a to r i
B D

P ro g ram e d e
S tr u c tu r a B D a p l i c a ¡i i

L D D L M D

P G B D

U t. î n tr e ¡i n e r e C o m p . c o n tr o l
S G B D

B aza
de
d a te

Fig. nr.1.2. Structura generală a unui SGBD


Programele de gestiune a bazelor de date (PGBD)
Această clasă de module realizează accesul fizic la date ca urmare a unei comenzi primite printr-un
program de aplicaţii sau interactiv prin intermediul ecranului.
Limbajul de descriere a datelor (LDD)
Este componenta care permite traducerea (compilare sau interpretare, după caz) şi descrierea naturii
datelor şi a legăturilor lor logice, fie la nivelul global (sub forma schemei conceptuale), fie la nivelul specific
fiecărei aplicaţii (sub forma schemei externe sau sub-schemei).
Execuţia acestor definiţii /enunţuri se memorează într-un fişier special numit Dicţionarul de date.
Limbajul de manipulare a datelor (LMD)
Această componentă permite gestionarea şi actualizarea datelor dintr-o bază (scrierea unor noi date,
modificarea valorii unor date, ştergerea unor date perimate sau eronate).
Comenzile unui LMD depind de SGBD-ul utilizat (cu limbaj gazdă sau SGBD autonome).
În SGBD-urile cu limbaj gazdă enunţurile LMD trebuie incluse într-un program scris cu un limbaj
gazdă: PL/1, ASSEMBLER, C etc.În SGBD-urile autonome se dispune de un LMD la care se ataşează un
limbaj de interogare. Aceste sisteme se limitează la tratarea datelor plasate în bază. Orice altă prelucrare
ulterioară, în general, nu poate fi prevăzută.
Utilitare de întreţinere a bazei de date Un SGBD trebuie să ofere o gamă variată de programe
utilitare care să permită gestionarea de către operator a bazei de date. Utilitarele variază de la un sistem la
altul şi depind de complexitatea SGBD-ului. Acestea pot efectua următoarele operaţii:crearea versiunii
iniţiale a bazei de date şi încărcarea acesteia folosindu-se fie o copie creată anterior, fie date
neorganizate;crearea şi actualizarea jurnalelor tranzacţiilor realizate asupra bazelor de date. reorganizarea
bazei de date pentru recuperarea spaţiului vid;reorganizarea structurii fizice şi logice după fiecare
tranzacţie;restructurarea bazei de date după un incident logic sau fizic, cu refacerea stării anterioare; diverse
statistici ce permit cunoaşterea activităţii şi utilizării bazei de date;actualizarea schemei şi sub-schemei fără
rescrierea şi compilarea lor;detectarea “spărgătorilor” regulilor de integritate definite, fără a fi necesară
intrarea în baza de date; realizarea unei copii permanente a bazei de date în scopuri de securitate.
Componentele de control
Acestea constituie mijloace de prevenire şi corectare a anumitor erori ce pot să apară în condiţii de
exploatare “multi-utilizator”.
1.3.2 Obiectivele şi funcţiile unui SGBD

Succesul SGBD-urilor este susţinut prin realizarea următoarelor obiective:


• asigurarea independenţei datelor. Independenţa datelor poate fi definită drept “imunitatea”
programelor de aplicaţii la schimbarea structurii de memorare şi /sau a strategiei de acces.
Independenţa datelor trebuie urmărită atât la nivel fizic cât şi la nivel logic. Independenţa fizică
asigură modificarea datelor şi a tehnicilor fizice de memorare, fără rescrierea programelor de
aplicaţii.
• independenţa logică oferă posibilitatea adăugării de noi articole sau extinderea structurii globale fără
a necesita rescrierea programelor;
• asigurarea integrităţii datelor prin existenţa unor proceduri de validare sau a unor protocoale de
control concurent, precum şi a unor proceduri de refacere a bazei de date după incidente;
• asigurarea unei redundanţe minime şi controlate a datelor prin definirea unui element de structură,
cu o cantitate cât mai mică de date, evitându-se în acelaşi timp ambiguitatea;
• asigurarea unor facilităţi sporite de utilizare a datelor prin: folosirea datelor de către mai mulţi
utilizatori în diverse aplicaţii, accesul simplu şi multicriterial al utilizatorilor la date, fără a fi necesară
cunoaşterea structurii întregii baze de date; existenţa unor limbaje performante de interogare etc.;
• asigurarea partajării datelor, adică asigurarea accesului mai multor utilizatori la aceleaşi date pe
baza unor criterii de prioritate şi dezvoltarea unor aplicaţii fără a se modifica structura bazei de date;
• asigurarea securităţii datelor prin intermediul unor canale corespunzătoare şi definirea unor restricţii
de autorizare la accesarea datelor.
Plecând de la aceste obiective, rezultă că orice SGBD trebuie să îndeplinească următoarele
funcţii: de descriere, de manipulare, de utilizare.
Funcţia de descriere permite definirea structurii bazei cu ajutorul limbajului special LDD, stabilind
criterii de validare a datelor, metode de acces la date şi de asigurare a confidenţialităţii şi integrităţii datelor.
Toate aceste elemente se regăsesc în ceea ce se numeşte schema bazei de date. Execuţia definiţiilor
limbajului se materializează într-un ansamblu de tabele, memorate într-un fişier special denumit dicţionar de
date (repertoar de date).
Funcţia de manipulare asigură prin intermediul limbajului special LMD derularea următoarelor
activităţi: încărcarea bazei de date, adăugarea de noi înregistrări, ştergerea unor înregistrări, editarea totală
sau parţială a unor înregistrări, ordonarea înregistrărilor, căutarea logică sau fizică a înregistrărilor etc.
Funcţia de utilizare permite comunicarea între utilizatori şi baza de date prin intermediul unor
interfeţe care îi avantajează pe primii. În felul acesta se creează un mediu favorabil utilizatorului care la ora
actuală beneficiază de prelucrarea în timp real, arhitecturile client-server, servicii Internet etc. În cadrul
realizării acestei funcţii interacţionează diverşi utilizatori, literatura de specialitate oferind mai multe
clasificări sau grupări. Dintre acestea am selectat pentru prezentarea în continuare doar a câtorva astfel de
grupări.
Raportul ANSI/SPARC 1975 prezintă trei categorii de utilizatori (roluri umane) ce definesc schemele
dintr-o arhitectură de sistem bazat pe SGBD:.
- persoana sau grupul de persoane care defineşte schema conceptuală a bazei de date. Această schemă
furnizează o viziune pe termen lung şi este baza pentru declaraţiile de securitate-integritate şi standardizare
impuse celorlalte tipuri de utilizatori;
- administratorul bazei de date care are responsabilitatea definirii schemei interne a bazei de date şi a
întreţinerii acesteia. În acelaşi raport sunt prezentate trei categorii de administratori: administratorul
întreprinderii care asigură gestionarea globală a aplicaţiilor curente şi identificarea celor
viitoare;administratorul aplicaţiilor care are rolul de a dezvolta schemele externe (sub-schemele) pentru
aplicaţiile utilizator;administratorul de date care operează la nivelul schemei de date precizând necesarul şi
disponibilitatea datelor;
- programatorii de aplicaţii şi utilizatorii finali care comunică cu SGBD-ul prin intermediul limbajului de
manipulare sau a limbajului de interogare.

1.3.3 Evoluţia şi clasificarea SGBD-urilor

Perfecţionare SGBD-urilor a avut loc paralel cu evoluţia echipamentelor de culegere, memorare,


transmitere şi prelucrare a datelor, pe de o parte, şi cu evoluţia metodelor şi tehnicilor de organizare a datelor,
pe de altă parte.
1.3.3.1 Evoluţia SGBD-urilor
Literatura şi practica de specialitate oferă o diversitate mare de sisteme de gestiune a bazelor de date,
care sintetic pot fi prezentate în trei generaţii.
Prima generaţie este situată în timp, la sfârşitul anilor `60 şi începutul anilor ’70 şi include modelul
ierarhic şi modelul reţea de organizare a datelor în baze de date.
Modelul ierarhic are o structură de tip arborescent, legată puternic de principiile de descriere a
datelor specifice limbajelor din generaţia corespunzătoare.Fiecare nivel de date este constituit din una sau mai
multe grupe de date care se pot şi ele descompune la rândul lor. Intră în această generaţie de SGBD-uri: IMS
(Information Managent System- fig. nr.2.19), DL /1 (Data Language /1) EDMS (Extended Data Management
Systems) etc.
Modelul reţea încearcă să înlăture lipsurile modelului precedent, propunând o structură de date mai
bogată pe baza legăturilor posibile şi conducând la construirea unei reţele între acestea. Specificaţiile
CODASYL au permis obţinerea de sisteme relativ “normalizate”. Intră în această categorie: IDMS
(Integrated Data dBase Management Systems- figura nr.2.20), IDS II (Integrated Data Store) SOCRATE-
CLIO, TOTAL etc.
Generaţia a doua situată în timp la sfârşitul anilor ’80 şi începutul anilor ’90 cuprinde în principal
modelele relaţionale. Structura datelor este formată dintr-un ansamblu de relaţii sau tabele fără legături fizice
între ele. Apropierea dintre date este obţinută prin utilizarea unei “algebre” între tabele considerate ca
operanzi. Intră în această generaţie DB 2, ORACLE, INGRES, SYBASE, PARADOX, INFORMIX,
FOXPRO etc.
Generaţia a treia apărută la începutul anilor ’90. Aceste sisteme se bazează pe principii mult mai
complexe decât precedentele şi vor trebuie să permită gestionarea unor informaţii foarte variate. Se pot
încadra în această generaţie 4 subclase de SGBD: orientate, funcţionale, deductive şi multimedia.
Sistemele orientate obiect permit descrierea elementelor unei baze utilizând conceptele abordării
obiectuale care ţine seama de aspectele statice şi dinamice ale obiectelor. Această abordare se caracterizează,
în principal, pe operaţia de încapsulare, adică pe reunirea în aceeaşi unitate a caracteristicilor statice şi
dinamice ale obiectelor de gestionat. În plus, este posibilă reutilizarea obiectelor deja definite. Această
caracteristică reduce considerabil programarea “defensivă” datorită descrierii intrinseci făcută obiectelor.
Obiectele definite în bază au capacitatea de a transmite descendenţilor, ansamblul caracteristicilor lor prin
“moştenire”. Din această categorie, la ora actuală, pe piaţă există produsele: GemStone, ObjectStore, Ontos,
Raima Object Manager, Versant, Sybase etc.
Sistemele funcţionale au la bază noţiunile de entitate şi funcţie şi au fost introduse în 1979 de
Shipman. Pentru fiecare entitate (obiect) de un anumit tip există o colecţie de funcţii care sunt aplicate acelui
obiect, definind atributele obiectului şi exprimând asocierile dintre entităţi.
Modelul funcţional devine operaţional prin intermediul SGBD-urilor funcţionale care oferă
mecanisme şi instrumente de descriere şi manipulare a datelor prin intermediul limbajelor funcţionale.
Sistemele deductive utilizează reguli de inferenţă pentru a exprima situaţii bine sau mai puţin bine
definite din mediul unei organizaţii. Ele permit să li se răspundă cererilor care comportă exprimarea într-o
logică mai mult sau mai puţin vagă. În general astfel de baze de date sunt cuplate cu sistemele expert sau cu
un nivel din baza regulilor scrise în PROLOG, LISP, sau într-un alt limbaj de inteligenţă artificială.
Sistemele multimedia permit stocarea şi administrarea altor informaţii decât cele clasice precum:
imagini, fotografii, muzică, voci etc. Sistemele din această categorie, care se comercializează deja, permit
organizarea de “birouri fără hârtie”, propunând gestiunea diferitelor documente (imprimate) pe discul optic
cu proceduri de înregistrare prin scanare precum şi prin proceduri de consultare şi manipulare.
Rezultă că preocupările proiectanţilor de SGBD sunt concentrate spre construirea bazelor de date pe
modele obiectuale, deductive şi multimedia, fiind propuse mai multe soluţii de combinare şi extindere a
modelelor prezentate: înglobarea în SGBD-urile relaţionale a elementelor ce definesc tehnologia actuală,
persistenţa obiectelor prin extinderea actualelor sisteme obiectuale, integrarea tehnologiei semantice şi
obiectuale etc.
1.3.3.2 Clasificarea SGBD-urilor
Abordarea sistemică a problematicii referitoare la SGBD-uri presupune şi clasificarea acestora, mai
cu seamă că literatura de specialitate prezintă un număr deosebit de mare de astfel de soft-uri. Există mai
multe clase de SGBD privite din diverse puncte de vedere: modelul de organizare folosit (ierarhice, reţea,
relaţionale, obiect etc.), distribuirea resurselor (integrate şi distribuite teritorial), destinaţie (publice şi
private), tehnica de prelucrare (pe loturi, interactive, mixte). Ne oprim, în continuare, doar asupra câtorva
astfel de criterii de clasificare.
După sistemul de calcul pe care se implementează SGBD-urile pot fi:
• pentru mainframe-uri: RM (Relation Memory) RDMS (Relational Data Management System), R,
PRTV, Oracle, DB2 ,IMS;
• pentru minicalculatoare: PLANES (Programmed Language Based Enquiry System),
RANDEZVOUS, INGRES (Interactive Graphics and Retrieval System), SOCRATE-mini, ARGUS,
LEDA, Oracle;
• pentru microcalculatore: xBase, Double Helix II, Omnis III, dBase, Mac, VisualBase, Visual FoxPro,
PARADOX, CLIPER, ACCESS, Oracle etc. La ora actuală tendinţa este de generalizare şi
standardizare a SGBD-urilor conferindu-li-se atributul de “cross platforma” pentru a putea fi rulate
pe cât mai multe medii de operare (DOS, WINDOWS, MAC, UNIX, Linux, OS/2 etc).
În funcţie de limbajul pe care-l utilizează există două clase de SGBD-uri:
• cu limbaj gazdă: asigură crearea, actualizarea şi interogarea bazei de date utilizând limbaje de
nivel înalt propriu sistemului de calcul pe care se implementează baza de date. Prezintă avantajul
exploatării facilităţilor limbajului de nivel înalt şi dezavantajul complexităţii formulării cererilor
de prelucrare;
• cu limbaj autonom(propriu): folosesc limbaje speciale care sunt independente de limbajul gazdă
şi chiar faţă de sistemul de calcul ceea ce asigură un grad ridicat de portabilitate.Avantajul
acestor SGBD concretizat în larga lor utilizare, îl reprezintă simplitatea formulării cerinţelor.
În funcţie de organizarea şi structurarea datelor pe care le gestionează SGBD -urile sunt:
• ierarhice şi reţea: IMS, SYS2000, IDMS, COBRA (ierarhice); IDS, DMS, SOCRATE, DBTG-
CODASYL (reţea);
• relaţionale: RDMS, RM, SYSTEMR, XBASE,Visual FoxPro etc.;
• obiectuale: MANIFESTO, Postgres, Orion,Jasmin, Raima, Ontos etc;
• obiectual -relaţionale: Oracle, Visual FoxPro,Access,Informix etc
Din punct de vedere a modului de localizare a bazelor de date SGBD -urile sunt:
• centralizate care presupun ca datele să fie concentrate într-un singur loc pe un server, ca sursă
unică de informare şi/sau raportare(VisualFoxPro,Access etc);
• distribuite care presupun ca datele să fie repartizate geografic în mai multe puncte în funcţie de
locul lor de producere, cu posibilitatea accesării datelor din orice punct
definit(Oracle,DB2,Informix).
La ora actuală datorită proliferării prelucrărilor în reţea de calculatoare tot mai multe SGBD-uri
dispun de o componentă de gestiune distribuită a datelor.
1.4 Tendinţe în instrumentele software
Constructorii de software au lansat pe piaţă o serie de produse specializate în generarea de rapoarte,
grafice, diagrame, simulări de procese. Intră în această categorie limbajele din generaţia a 4-a, instrumentele
de tip CASE, instrumente de programare vizuală, instrumente de programare extreme, instrumente pentru
accesul la date ale utilizatorilor finali, pachete integrate de aplicaţii, instrumente de testare etc.
Instrumentele de tip CASE (Computer Aided Software Enginnering) reprezintă un set de programe
specializat în ingineria programării asistată de calculator. Aceste instrumente software ajută la crearea de
programe mai sofisticate care automatizează diferitele aspecte ale procesului de dezvoltare a programelor.
Iniţial, proiectanţii au avut ca obiectiv automatizarea completă a întregului proces de dezvoltare a
programelor, în practică reuşindu-se doar creşterea eficienţei programatorilor în realizarea unor sisteme mari
şi complicate.
Produsele CASE sunt de două tipuri:
-FRONT-END - destinate automatizării activităţii de analiză şi proiectare, conducând la obţinerea de
diagrame, biblioteci de date, formulare de ecran etc.
-BACK-END - destinate generării automate a programelor într-un limbaj foarte înalt, COBOL, ADA,
limbajele din generaţia a 4-a.
A apărut şi CASE-ul integrat, o combinaţie a primelor două care are ca mecanism de integrare, un
dicţionar de date extins, numit bibliotecă centrală cu rolul de păstrare, administrare şi utilizare partajată a
informaţiilor.
Produsele CASE asigură o gamă variată de activităţi dintre amintim:
• întocmirea şi listarea diagramelor folosind Generatoarele de machete şi diagrame;
• proiectarea machetelor de ecran şi a rapoartelor folosind Generatoarele de formate, de ecran
şi de rapoarte;
• schimbul de informaţii între depozitul central şi celelalte instrumente de dezvoltare prin
intermediul componentelor de import /export;
• verificarea şi analiza specificaţiilor aplicaţiilor prin Programele de analiză;
• scrierea automată a programelor pe baza specificaţiilor prin Generatoare de cod;
• redocumentarea, restructurarea, redezvoltarea sistemelor deja implementate prin programe de
întreţinere şi dezvoltare.
La ora actuală cele mai populare instrumente CASE sunt următoarele:
-Easy CASE, realizat de Evergreen CASE Tools;
-Erwin /DBF Erwin /ERX produse de Logic Works;
-SilverRun de la Computer System Advisors;
-InfoModeler de la Asymetrix;
-ORACLE*CASE de la ORACLE.
Toate aceste instrumente au rolul de sprijinire a proiectanţilor de sistem în modelarea datelor prin
crearea de diverse grafice şi diagrame. De exemplu SilverRun oferă module care creează diagrame de flux de
date (DFD - data-flow diagrams), diagrame ale relaţiilor dintre entităţi (ERD - entity-relationship diagrams) şi
scheme ale bazelor de date relaţionale.
Instrumentele CASE capătă un plus de valoare dacă sunt corelate cu alte instrumente de dezvoltare.
De exemplu SilverRun poate genera /construi instrucţiuni SQL CREATE pentru definirea tabelelor incluzând
declanşatoare /triggers (proceduri stocate în baza de date ce se execută automat la apariţia anumitor condiţii),
pentru cele mai populare sisteme RDBMS (sisteme de gestiune a bazelor de date relaţionale), incluzând DB2,
Sybase SQL Server şi ORACLE.
Instrumentele de programare vizuală sunt instrumente ce permit unui programator să realizeze rapid
un program de interfaţă cu utilizatorul asamblând diferite elemente de ecran cum ar fi butoane, casete de text,
meniuri ş. a. m. d. (numite controale) în formă necompletată şi apoi completarea acestora cu detaliile de
procesare asociate fiecărui control. Dintre cele mai cunoscute instrumente din această categorie ce dispun de
funcţii avansate amintim:
-Visual Basic (VB) şi Visual Basic Professional (Microsoft);
-Power Builder Enterprise (Powersoft);
-SQLWindows Corporate Edition (Gupta);
-VisualAge Team for OS /2 (IBM);
-Delphi (Borland).
Instrumente de programare extreme sunt destinate realizării programelor client /server mai flexibile
şi mai eficiente prin folosirea facilităţilor oferite de limbaje clasice (Cobol, C, C++ şi SQL) atunci când
mediile de programare vizuală nu satisfac cerinţele utilizatorilor. Pentru a răspunde acestor obiective
constructorii de soft ataşează biblioteci de clase (de ex. pentru C++, Microsoft include o bibliotecă numită
Microsoft Fundation Class - MFC, iar Borland o bibliotecă similară numită Object Windows Library - OWL).
Pe de altă parte folosirea acestor instrumente necesită mai multe cunoştinţe de programare şi detalii
referitoare la accesul la reţea.
Instrumentele pentru accesul la date ale utilizatorilor finali asigură colectarea şi afişarea datelor în
sistemele client /server. Principalele instrumente din această categorie sunt: -Forest & Trees (Trinzic)
care iniţializează un tablou de bord folosit pentru colectarea şi analiza datelor provenite din surse variate;
-Crystal Reports Professional (Crystal Service) care este un constructor de
rapoarte pentru mediul Windows şi care poate accesa date SQL Server, Sybase şi ORACLE;
-Q+E Database Editor care este un instrument de interogare ad-hoc folosit pentru generarea
rezultatelor şi a interogărilor din surse diferite (acest instrument este înlocuit în ultimele versiuni Excel cu
Microsoft Query);
-Quest (Gupta) care asigură accesul la baze de date SQL pentru construirea
interogărilor sau rapoartelor.
Pachete integrate de aplicaţii sunt colecţii integrate de programe cu funcţii complete ce includ de
obicei un procesor de text, un program de calcul tabelar, un sistem de gestiune a bazelor de date, un program
de prezentare grafică şi eventual module pentru exploatarea reţelei Internet.
La ora actuală piaţa de pachete integrate de aplicaţii este dominată de Microsoft Office Professional
(Microsoft), Perfect Office (Novell), SmartSuite (Lotus). În tabelul nr. 2.2 sunt prezente componentele
acestor pachete.
Tabelul nr. 1.2 Pachete integrate de aplicaţii
Pachet Microsoft Office Novell Perfect Lotus SmartSuite
/Componenta Professional Office
Procesor de texte Word Word Perfect AmiPro
Program de calcul Excel Quattro Pro 123
tabelat
Program pentru PowerPoint Presentations Freelance Graphics
prezentări grafice
SGBD Access Paradox Approch
Poştă electronică Mail Groupwise Nici unul
Administrator de Nici unul InfoCentral Organizer
informaţii
personale

Instrumentele de testare sunt folosite în programele cu grad mare de complexitate, acolo unde
modificările în sistem sunt frecvente şi impun testări repetate (numite testări regresive); în practică au fost
create instrumente soft care simplifică testarea regresivă precum:
-Automated Testing Facility - ATF (Softbridge);
-SQA Team Test (Software Quality Assurance - SQA );
-Microsoft Test (Microsoft).
Fiecare din aceste pachete integrate oferă posibilitatea creării de aplicaţii personalizate integrând funcţii cu
ajutorul lui OLE2 şi facilitând programarea componentelor individuale.
1.5 Criterii de alegere a limbajelor de programare şi a SGBD-urilor.
La alegerea unui limbaj de programare sau a unui SGBD trebuie avute în vedere o serie de aspecte care
să asigure eficienţă, siguranţă şi flexibilitate în rezolvarea aplicaţiilor utilizator. Criteriile care stau la baza
opţiunii de alegere a limbajului privesc următorii factori:
• tipul problemei ce urmează a fi rezolvată şi cunoştinţele utilizatorul (măsura în care limbajul de
programare sau SGBD-ul este convenabil atât la clasa de probleme cât şi pentru utilizator);
• tipul echipamentelor disponibile utilizatorului;
• gradul de dependenţă faţă de echipamentul folosit şi sistemul de operare;
• evaluarea rezultatelor obţinute prin folosirea anterioară de către alţi utilizatori;
• eficienţa scontată prin exploatare ;
• caracteristicile tehnice şi funcţionale generale;
• cerinţele de ordin economic.
Tipul problemei ce urmează a fi rezolvată şi cunoştinţele utilizatorul. Acest criteriu are în vedere
selectarea acelui limbaj care să răspundă cel mai bine tipului /tipurilor de aplicaţii utilizator, să asigure
concomitent uşurinţă în utilizare, un timp minim pentru prelucrarea datelor, confidenţialitatea şi securitatea
acestora.
Tipul echipamentelor hardware disponibile utilizatorului. Înaintea alegerii limbajului trebuie efectuată o
analiză a resurselor fizice existente şi a celor care urmează să fie achiziţionate. Această analiză trebuie să
stabilească dacă sunt asigurate resursele minime pentru dezvoltarea şi exploatarea aplicaţiilor. În felul acesta
se urmăreşte utilizarea eficientă a limbajului pe echipamentele din dotare.
Gradul de dependenţă faţă de echipamentul folosit şi sistemul de operare. Conform acestui criteriu
trebuie ales un limbaj de programare care să poată fi folosit fără probleme sub sistemul de operare sub care
lucrează echipamentele din dotare. În plus, trebuie asigurată portabilitatea programelor în cazul în care se vor
achiziţiona noi resurse informatice. Trebuie asigurată creşterea gradului de portabilitate cel puţin la nivel de
program sursă.
Evaluarea rezultatelor obţinute prin folosirea anterioară de către alţi utilizatori. Acest criteriu cere
realizarea unei documentări prealabile privind problemele cu care s-au confruntat alţi utilizatori ai limbajului
( existenţa /inexistenţa unei documentaţii de învăţare şi utilizare, posibilităţile /facilităţile de rezolvare a
problemelor practice etc.).
Eficienţa scontată prin exploatare. Această eficienţă implică stabilirea parametrilor de exploatare pe
fiecare etapă de realizare a programelor /produselor-program (scriere,
testare, implementare, utilizare). Se are în vedere atât eficienţa execuţiei programului, mai ales la programele
des utilizate cât şi eficienţa globală care ia în considerare toate fazele de elaborare şi utilizare (scriere, testare,
exploatare şi întreţinere). În acest context performanţa limbajului poate deveni o problemă mai puţin
importantă.
Caracteristicile tehnice şi funcţionale generale. Alegerea unui limbaj trebuie să ţină seama şi de
gradul de standardizare a acestuia, ştiut fiind că, în general, la standardizarea unui produs informatic se au în
vedere parametrii ce privesc simplitatea în exploatare, generalitatea în aplicare, naturaleţea, consistenţa şi
conciziunea în exprimare.
Cerinţele de ordin economic. Aceste cerinţe ţin seama de resursele financiare de care dispune
utilizatorul , resurse care trebuie să acopere atât achiziţionarea şi exploatarea propriu-zisă a limbajului, cât şi
organizarea şi pregătirea prealabilă a personalului.
Având în vedere cele de mai sus rezultă că alegerea unui limbaj este o decizie care trebuie susţinută
printr-o serie de analize de ordin tehnic, funcţional şi economic.

S-ar putea să vă placă și