curs 1 sgbd

Upload: alex-luca

Post on 09-Mar-2016

243 views

Category:

Documents


0 download

DESCRIPTION

Curs 1 SGBD

TRANSCRIPT

Curs 1 SGBD 8 Mircea Musan

1. Noiunea de baz de dateEvoluia diferitelor metode i tehnici de organizare a datelor, pe suporturi de memorie extern, a fost determinat de necesitatea de a avea un acces ct mai uor la un volum ct mai mare de date. Datele stocate i prelucrate sunt foarte complexe cu foarte multe interdependene, lucru care a fcut necesar apariia bazelor de date.

n sensul larg, o baz de date [engl.: database] este o colecie de date corelate din punct de vedere logic, care reflect un anumit aspect al lumii reale i este destinat unui anumit grup de utilizatori. n acest sens, bazele de date pot fi create i meninute manual (un exemplu ar fi fiele de eviden a crilor dintr-o bibliotec, aa cum erau folosite cu ani n urm) sau computerizat aa cum sunt majoritatea bazelor de date n momentul de fa. O definiie ntr-un sens mai restrns a unei baze de date este urmtoarea:

O baz de date este o colecie de date centralizate, creat i meninut computerizat, n scopul prelucrrii datelor n contextul unui set de aplicaii. Prelucrarea datelor se refer la operaiile de introducere, tergere, actualizare i interogare a datelor.

Orice baz de date are urmtoarele proprieti implicite:

Baza de date este o colecie logic coerent de date ce are cel puin un neles.

Baza de date este destinat, construit i populat de date despre un domeniu bine precizat. Ea are un grup de utilizatori i se adreseaz unui anumit grup de aplicaii

O baz de date reprezint cteva aspecte ale lumii reale crend orizontul propriu. Schimbrile orizontului sunt reflectate n baza de date.

Fa de vechile metode de nregistrare a datelor privind diferite activiti pe fie (documente scrise) sau chiar n fiiere pe disc, sistemele de baze de date ofer avantaje considerabile, ceea ce explic extinsa utilizare a acestora. Cteva dintre avantajele oferite sunt:

Controlul centralizat al datelor, putnd fi desemnat o persoan ca responsabil cu administrarea bazei de date.

Vitez mare de regsire i actualizare a informaiilor.

Sunt compacte: volumul ocupat de sistemele de baze de date este mult mai redus dect documentele scrise.

Flexibilitatea ce const n posibilitatea modificrii structurii bazei de date fr a fi necesar modificarea programelor de aplicaie

Redundan sczut a datelor memorate, care se obine prin partajarea datelor ntre mai muli utilizatori i aplicaii. n sistemele de baze de date, mai multe aplicaii pot folosi date comune, memorate o singur dat. De exemplu, o aplicaie pentru gestionarea personalului dintr-o universitate i o aplicaie pentru gestionarea rezultatelor la examene din aceeai universitate care folosete o singur baz de date, pot folosi aceleai informaii referitoare la structurarea facultilor.

Posibilitatea introducerii standardelor privind modul de stocare a datelor, ceea ce permite interschimbarea datelor ntre organizaii

Meninerea integritii datelor prin politica de securitate (drepturi de acces difereniate n funcie de rolul utilizatorilor), prin gestionarea tranzaciilor i prin refacerea datelor n caz de funcionare defectuoas a diferitelor componente hardware sau software.

Independena datelor fa de suportul hardware utilizat. Sistemul de gestiunea a bazelor de date ofer o vizualizare a datelor, care nu se modific atunci cnd se schimb suportul de memorare fizic, ceea ce asigur imunitatea structurii bazei de date i a aplicaiilor la modificri ale sistemului hardware utilizat.

2. Conceptul de sistem de gestiune a bazelor de date

Sistemul de gestiune a bazelor de date (SGBD) reprezint sistemul de programe care permite construirea bazelor de date, stocarea i prelucrarea de informaii sub form de nregistrri n bazele de date i dezvoltarea de aplicaii privind bazele de date, permind astfel accesul utilizatorului.

Orice sistem de gestionare a bazelor de date conine:

limbajul de descriere a datelor (LDD), care permite descrierea structurii bazei de date, a componenei, a relaiilor dintre componente, a drepturilor de acces al utilizatorilor la baze de date (BD);

limbajul de cereri (LC) este limbajul n care se scriu programele pentru realizarea prelucrrii datelor;

limbajul de prelucrare a datelor (LPD), care permite operaii asupra BD, cum ar fi ncrcarea BD, inserarea, tergerea, cutarea sau modificarea unui element, realizarea de statistici.

2.1 Activitile unui SGBD

SGBD-ul este format din programe de software care interactioneaza cu programele de aplicaie ale utilizatorilor i cu baza de date. Sistemul de gestiune al bazei de date asigur realizarea urmtoarelor activiti:

definirea structurii bazei de date;

ncarcarea datelor n baza de date;

accesul la date (interogare, actualizare);

ntretinerea bazei de date (colectarea i reutilizarea spatiilor goale, refacerea bazei de date n cazul unui incident);

reorganizarea bazei de date (restructurarea i modificarea strategiei de acces);

integritatea datelor;

securitatea datelor.

Aadar, sistemul de gestiune al bazei de date apare ca un sistem complex de programe care asigura interfata ntre o baza de date i utilizatorii acestuia.

n plus un SGBD mai asigur i alte servicii:

suport pentru limbaj de programare;

interfa ct mai atractiv pentru comunicare cu utilizatorul;

tehnici avansate de memorare, organizare, accesare a datelor din baza de date;

utilitare ncorporate: sistem de gestiune a fiierelor, liste, tabele etc.;

help pentru ajutarea utilizatorului n lucrul cu baza de date.

2.2 Funciile unui SGBD

Un SGBD trebuie s asigure urmtoarele funcii:

funcia de descriere a datelor se face cu ajutorul LDD, realizndu-se descrierea atributelor din cadrul structurii BD, legturile dintre entitile BD, se definesc eventualele criterii de validare a datelor, metode de acces la date, integritatea datelor. Concretizarea acestei funcii este schema BD;

funcia de manipulare este cea mai complex i realizeaz actualizarea i regsirea datelor;

funcia de utilizare asigur mulimea interfeelor necesare pentru comunicare a tuturor utilizatorilor cu BD. 2.3 Obiectivele unui SGBD

Un SGBD are rolul de a furniza suportul software complet pentru dezvoltarea de aplicaii informatice cu baze de date. El trebuie s asigure:

minimizarea costului de prelucrare a datelor,

reducerea timpului de rspuns,

flexibilitatea aplicaiilor i

protecia datelor.

Pentru satisfacerea performanelor enumerate, SGBD trebuie s asigure un minim de obiective.

1. Asigurarea independenei datelor trebuie privit din dou puncte de vedere:

independena logic se refer la posibilitatea adgrii de noi tipuri de nregistrri de date sau extinderea structurii conceptuale, fr a determina rescrierea programelor de aplicaie;

independena fizic modificarea tehnicilor fizice de memorare fr a determina rescrierea programelor de aplicaie.

2. Asigurarea redundanei minime i controlate a datelor stocarea informaiilor n bazele de date se face astfel nct datele s nu fie multiplicate. Totui, pentru a mbunti performanele legate de timpul de rspuns, se accept o anumit redundan a datelor, controlat, pentru a asigura coerena bazei de date i eficiena utilizrii resurselor hardware.

3. Asigurarea facilitilor de utilizare a datelor presupune ca SGBD-ul s aib anumite componente specializate pentru:

folosirea datelor de ctre mai muli utilizatori n diferite aplicaii datele de la o aplicaie trebuie s poat fi utilizate i n alte aplicaii.

accesul ct mai simplu al utilizatorilor la date fr ca ei s fie nevoii s cunoasc structura ntregii baze de date; aceast sarcin cade n seama administratorului bazei de date.

existena unor limbaje performante de regsire a datelor care permit exprimarea interactiv a unor cereri de regsire a datelor.

sistemul de gestiune trebuie s ofere posibilitatea unui acces multicriterial la informaiile din baza de date spre deosebire de sistemul clasic de prelucrare pe fiiere unde exist un singur criteriu de adresare, cel care a stat la baza organizrii fiierului.

4. Asigurarea securitii datelor mpotriva accesului neautorizat.

5. Asigurarea coerenei i integritii datelor mpotriva unor tergeri intenionate sau neintenionate se realizeaz prin intermediul unor proceduri de validare, a unor protocoale de control concurent i a unor proceduri de refacere a bazei de date.

6. Asigurarea partajabilitii datelor se refer pe de o parte la asigurarea accesului mai multor utilizatori la aceleai date i de asemenea la posibilitatea dezvoltrii unor aplicaii fr a se modifica structura bazei de date.

7. Asigurarea legturilor ntre date corespund asocierilor care se pot realiza ntre obiectele unei aplicaii informatice. Orice SGBD trebuie s permit definirea i descrierea structurii de date, precum i a legturilor dintre acestea, conform unui model de date (de exemplu modelul relaional).

8. Administrarea i controlul datelor sunt asigurate de SGBD, n sensul c datele pot fi folosite de mai muli utilizatori n acelai timp, iar utilizatorii pot avea cerine diferite i care pot fi incompatibile. SGBD trebuie s rezolve probleme legate de concuren la date, problem care apare mai ales n lucrul n mediu de reea de calculatoare.

3. Categorii de utilizatoriDup cum spuneam mai sus, sistemul de gestiune al bazei de date apare ca un sistem complex de programe care asigura interfata ntre o baza de date i utilizatorii acestuia. ntr-o form de prezentare a categoriilor de utilizatori ai bazelor de date, acetia ar arta precum mai jos:

a) neinformaticieni beneficiarii informaiei, nu trebuie s cunoasc structura BD, nu trebuie s programeze aplicaii ci doar s le foloseasc prin intermediul unei interfee suficient de prietenoase.

b) informaticieni creaz structura BD i realizeaz procedurile complexe de exploatare a BD;

c) administratorul bazei de date utilizator special, cu rol hotrtor n funcionarea optim a ntregului sistem. Acesta asigur urmtoarele funcii:

funcia de administrare administratorul este cel care realizeaz schema conceptual a bazei de date, iar n perioada de exploatare a BD autorizeaz accesul la date, reface baza n caz de incident.

funcia de protecie a bazei de date ansamblul de msuri necesare pentru asigurarea integritii (semantic, acces concurent, salvare/restaurare) i securitii datelor (autorizare acces, utilizare viziuni, criptare).

4. Limbajele bazelor de date

Limbajele bazelor de date sunt mprite n 2 categorii: limbaje de definire a datelor (DDL) i limbaje de manipulare a datelor (DML). DDL este utilizat pentru a specifica schema bazei de date, iar DML este utilizat pentru citirea i reactualizarea bazei de date.

Aceste limbaje sunt numite sublimbaje de date deoarece ele nu includ construcii pentru toate necesitile de calcul, cum sunt cele asigurate de limbajele de nivel nalt. Multe SGBD au o facilitate de ncorporare a sublimbajului ntr-un limbaj de programare de nivel nalt, cum sunt Pascal, C, Java etc. n acest caz, limbajul de nivel nalt se numete limbaj gazd. Pentru a compila fiierul ncorporat, mai nti comenzile specifice sublimbajului de date sunt nlocuite prin apelri de funcii. Apoi fiierul preprocesat este compilat i rezultatul este plasat ntr-un modul obiect, legat legat la o librrie care conine funciile nlocuite.

4.1 Limbajul de definire a datelor (DDL) Rezultatul compilrii instruciunilor DDL este un set de tabele stocate n fiiere speciale, denumite global catalog de sistem. Acesta conine meta-datele adic datele care descriu obiectele din baza de date.

4.2 Limbajul de manipulare a datelor (DML) Limbajele DML pot fi de dou tipuri: procedurale i neprocedurale.

procedurale specific modul cum trebuie s fie obinut rezultatul unei instruciuni DML

neprocedurale descriu numai ce rezultat trebuie obinut.

De exemplu, SQL este un limbaj neprocedural.

DDL Este un limbaj descriptiv, care permite administratorului bazei de date sau utilizatorului s descrie i s denumeasc entitile cerute de aplicaie i relaiile care pot exista ntre diferitele entiti.

DML Asigur un set de procedee ce permit operaii de baz pentru manipularea datelor din baz de date:

inserarea de date noi

modificri de date

regsirea datelor

tergerea de date

5. Definirea sistemelor de gestiune a bazelor de date relaionale

ntr-o prim ncercare de definire, se poate considera un sistem de gestiune a bazelor de date relaionale (SGBDR) ca reprezentnd un SGBD care utilizeaz drept concepie de organizare a datelor modelul relaional. Astfel spus, un SGDBR reprezint un sistem care suport modelul relaional.

Definiia de mai sus este prea general pentru a putea fi operaional, deoarece modul de implemantare a modelului relaional difer, de regul att ntre diferitele SGBDR, ct i n raport cu modelul teoretic, cel definit n cadrul teoriei relaionale, datorit eforturilor productorilor de a realiza sisteme ct mai perfomante care s satisfac cerinele i exagerrile utilizatorilor. Ct de aproape (sau de departe) de modelul relaional teoretic trebuie s fie modelul datelor efectiv utilizat de SGBD pentru a putea afirma c SGBD-ul respectiv utilizeaz sau nu modelul relaional, deci este sau nu SGBDR?

Diversitatea modelelor relaionale operaionale au determinat, n mod natural existana unei mari diversitii de SGBDR, pentru a cror prezentare a fost necesar nuanarea terminologiei. Au aprut o serie de sintagme precum: sisteme cu interfa relaional, sisteme pseudorelaionale, sisteme complet relaionale.

Conceptele specifice organizriidatelor n fiiere, SGBDR i teoriei relaionale ntre care se pot stabili analogii:

Organizarea datelor n fiiereSGBDRTeoria relaional

FiierTabelRelaie

Record(nregistrare)LinieTuplu

CmpColoanAtribut

n general, conceptele utilizate la prezentarea SGBDR i a modelelor relaionale operaionale difer de cele din cadrul teoriei relaionale. Figura de mai sus prezint comparativ conceptele organizrii datelor n fiiere, concepte SGBDR i ale teoriei relaionale.

Faptul c se pot stabili analogii ntre conceptele organizrii datelor n fiiere i conceptele relaionale, i-au determinat pe unii productori s prezinte sisteme fr nici o legtur cu modelul relaional drept SGBDR, n scopul asigurrii succesului comercial al acestor sisteme.

5.1 Regulile lui CoddDefinirea unui SGBDR impune o detaliere a caracteristicilor pe care trebuie s le prezinte un SGBD pentru a putea fi considerat relaional. n acest sens, Codd a formulat 13 reguli care exprim cerinele pe care trebuie s le prezinte un SGBD ca s fie relaional. Dei reguli au strnit o serie de controverse, vor fi prezentate n continuare, ele fiind deosebit de utile n evaluarea unui SGBDR.

R0: Regula privind gestionarea datelor la nivel de relaie

Sistemul trebuie s gestioneze baza de date numai prin mecanisme relaionale.

Acest lucru nseamn c sistemul trebuie s-i ndeplineasc toate funciile prin manipulri n care unitatea de informaie s fie mulimea (relaia), adic s utilizeze limbaje, precum SQL, care s opereze la un moment dat pe o ntreag relaie. Deci SGBD nu trebuie s accepte operaii non-relaionale care s ndeplineasc operaiile de definire i manipulare a datelor.

Unele sisteme utilizeaz mecanisme releionale numai pentru o parte din funcii, n special pentru interogare. Aceste sisteme se numesc sisteme cu interfa relaional i nu SGBDR.

R1: Regula privind reprezenterea logic a datelor

Toate datele din daza de date relaional trebuie s fie reprezentate explicit la nivel logic, ntr-un singur mod, i anume ca valori n tabele de date.

Aceste lucru nseamn c toate datele trebuie s fie memorate i prelucrate n acelai mod. Informaiile privind numele de tabele,coloane, domenii, definiiile tabelelor virtuale, restricii de integritate trebuie s fie memotare tot n tabele de date (cataloage).

Referina la 'nivelul logic' nseamn c construcia fizic nu este reprezentat i nu necesit explicaie.

R2: Regula privind garantarea accesului la date.

Orice dat din baza de date relaional trebuie s poat fi accesat prin specificarea numelui de tabel, valorii cheii primare i numelui de coloan.

Aceast regul exprim cerina ca linbajul de cereri al SGBDR s permit accesul la fiecare valoare atomic din baza de date.

R3: Regula privind valorile null

Sistemele trebuie s permit declararea s manipularea sistematic a valorilor null, cu semnificaia unor date lips sau inaplicabile. Valorile null, care difer de irurile de caractere 'spaiu' sau de irurile vide da caractere sunt deosebit de importante n implementarea restriciilor de integritate (integritatea entitii i integritatea refereanial).

R4: Regula privind metadatele

Descrierea bazei de date trebuie s se prezinte la nivel logic n acalai mod cu descrierea datelor propiu-zise, astfel nct utilizatorii autorizai s poat descrierii bazei de date aceleai operaii ca i asupra datelor obijnuite.

Acest regul specific c trebuie s existe un unic limbaj de manipulare a metedatelor i a datelor propui-zise, mai mult, exist o unic structur logic folosit pentru a depozita informaiile de sistem.

Sisteme nu trebuie s fac diferenieri n definirea i tratarea datelor ia metadatelor, utiliznd o singur structur, i anume cea relaionala.

R5: Regula privind facilitaile limbajelor utilizate

Un sistem relaional trebuie s fac posibil utilizarea mai multor limbaje, n mai multe moduri. Trebuie s existe ns cel puin un limbaj de nivel nalt ale crui instruciuni s poat exprima oricare din urmtoarele operaii: definirea tabelelor de date, definirea tabelelor virtuale, manipularea datelor (interactiv dau prin program), definirea restriciilor de integritate, autorizarea accesului, precizarea limitelor tranzaciilor.

A se nota aici c noul standard O/I pentru SQL furnizeaz toate aceste funcii, deci orice limbaj care accept acest standard va satisface automat aceast regul.

R6: Regula privind actualizarea tabelelor virtuale

Toate tabelele virtuale care teoretic sunt posibil de actualizat trebuie s poat fi efectiv actualizabile.

Nu toate atributele din cadrul unei tabele virtuale, deci nu toate tabele virtuale sunt toeretic actualizabile.

R7: Regula privind inserrile, modificrile i tergerile n baza de date

Sistemul trebuie s ofere posibilitatea manipulrii unei tabele (da baz sau virtual) nu numai n cadrul operaiilor de regsire, ci i n aciuni de inserare, modificare i tergere a datelor.

Aceast regul exprim cerina ca prin operaiile n care se schimb bazei da date s se lucreze la un moment dat pe o ntreag relaie.

R8: Regula privind independena fizic a datelor

Programele de aplicaie nu trebuie s fie afectate de schimbrile efectuate n modul de reprezentare a datelor sau n metodele de acces. O schimbare a structurii fizice a datelor nu trebuie s blocheze funcionarea programelor de alpicaie.

R9: Regula privind independena logic a datelor

Programele de aplicaie nu trebuie s fie afectate de schimbrile efectuate asupra relaiilor bazei de date, schimbri care conserv datele i care toeretic garanteaz valabilitatea programelor de apicaie existente.

R10: Regula privind restriciile de integritate

Restrictiile de integritate trebuie s fie definite n limbajul utilizat de sistem pentru definirea datelor i s fie memorate n cadrul bazei de date i nu n cadrul programului de aplicaie.

R11: Regula privind distribuirea geografic a datelor

Limbajul de manipulare a datelor utilizat de sistem trebuie s permit ca, n situaia n care datele sunt distribuite, programele de aplicaie s fie logic aceleai cu cele utilizate n cazul n care datele sunt fizic centralizate.

Utilizatorul trebuie s perceap datele ca fiind centralizate. Sarcina de localizare a datelor, atunci cnd acestea sunt distribuite geografic precum i sarcina recompunerii datelor trebuie s revin sistemului i nu utilizatorului.

R12: Regula privind prelucrarea datelor la nivelul de baz

Dac sistemul posed un limbaj de baz (de nivel sczut) orientat pe prelucrare de recorduri (tupuri) i nu pe prelucrarea mulimiilor (relaiilor), acest limbaj nu trebuie s fie utilizat pentru a se evitarestriciile de integritate sau restriciile introduse prin utilizarea limbajelor de nivel nalt, adic accesul la toate dazele va fi controlat de SGBDR, altfel integritate bazelor de date nu poate fi compromis fr cunoaterea utilizatorului sau a administratorului bazei de date.

Pe parcursul anilor regulile lui Codd au generat o seam de controverse. Cteva argumente sunt c aceste reguli nu sunt mai mult dect nite exerciii academice.

Unele revendicri ale produselor existente sunt c ele pot indeplini cea mai mare parte din reguli, dar nu toate. Aceast discuie a generat ntr-o disput ntre utilizatori i teoreticienii prietilor eseniale ale unui SGBDR.

Pentru a accentua implicaia regulilor lui Codd n analiza unum SGBDR, aceste reguli au fost reorganizate n cinci categorii, i anume:

1) Reguli fundamentale,

2) Reguli structurale,

3) Reguli privind integritatea datelor,

4) Reguli privind manipularea datelor,

5) Reguli privind independena datelor.

5.2 Criterii minimale de definire a unui SGBDR

Nici unul dintre SGBDR disponibile astzi nu respect ntrutotul cerinele exprimate de Codd, n cadrul celor 13 reguli. De aceea pentru caracterizarea unui SGBD nu sunt utilizate regulile lui Codd, fiind formulate n schimb o serie de cerine minimale pa care trebuie s la satisfac un sistem de gestiune a bazelor de date pentru a putea fi considerat releional.

Un SGBD este minimal relaional dac satisface urmtoarela condiii:

1. Toate datele din cadrul relaiei sunt reprezentate prin valori n tabele,

2. Nu exist pointeri observabili de ctre utilizatori n tabele, n sensul c operaiile cu releii nu fac apel la pointeri, indeci, fiiere inverse, etc.

3. Sistemul suport operatori relaionali de proiecie, selecie i joing natural, fr limitri mpuse de considerente interne (cum ar fi de exemplu, necesitetea indexrii atributelor). Unitatea de informaie ciu care se lucreaz n cadrul acestor operaii trebuie s fie relaia.

Un SGBD este complet relaional dac este minimal ralaional i satisface n plus urmtoarele condiii:

4. Sistemul suport toate operaiile de baz ale algebrei relaionale, fr limitri npuse de considerente interne.

5. Sistemul suport dou dintre restriciile de integritate de baz al modelului relaional i anume unicitatea cheii unei relaiii restricia referenial.

Un SGBD este pseudorelaional dac satisface numai condiiile 1. i 3.

Un SGBD cu interfa relaional este un SGBD are satisface condiiile 1. i 3., cu observaia c cerina 3. este ndeplinit numai n raport cu funcia de interogare

n ultimii ani, ca rspuns la necesitatea de a crete complexitatea aplicaiilor cu baze de date (ncurajat i de progresele aprute n programare odata cu programarea orientata obiect) au aprut modelul de date orientat obiect (Object-Oriented Data Model - OODM) i modelul de date relaional extins (Extended Relational Data Model - ERDM). Cu toate ca modelul de date ce sta la baza noilor modele nu este atat de clar ca n cazul modelului relaional, se poate considera ca aceste din urma dezvoltari reprezinta generatia a treia de SGBD.

5.3 Exemple de sisteme de gestiune a bazelor de date relaionaleOracle. Este realizat de firma Oracle Corporation USA. Sistemul este complet relaional, robust, se bazeaz pe SQL standard extins. Arhitectura sistemului este client/server, permnd lucrul, cu obiecte i distribuit. Are BD Internet i modul de optimizare a regsirii. Ultima versiune este Oracle 10g.

DB2. Este realizat de firma IBM. Sistemul respect teoria relaional, este robust i se bazeaz pe SQL standard. Permite lucrul distribuit i are modul de optimizare a regsirii.

Informix. Este realizat de firma Informix, respect teoria relaional i permite lucru distribuit.

Progress. Este realizat de firma Progress Software. Are limbaj propriu (Progress 4GL) dar suport i SQL. Ruleaz pe o gam larg de calculatoare sub diferite sisteme de operare.

SQL Server. Este realizat de firma Microsoft. Se bazeaz pe SQL i ruleaz n arhitectura client/server.

Ingress II. Este realizat de firma Computer Associates. Este un SGBDR complet, implementeaz dou limbaje relaionale (nti QUEL i apoi SQL) i este suportat de diferite sisteme de operare (Windows, UNIX). Lucreaz distribuit n arhitectura client/server, are extensie cu faciliti orientate obiect i permite aplicaii de tip Internet. Organizarea fizic a tabelelor se face prin sistemul de operare.

Visual FoxPro. Este realizat de firma Microsoft. Are un limbaj procedural propiu foarte puternic, o extensie orientat obiect, programare vizual i nucleu extins de SQL.

Access. Este realizat de firma Microsoft. Se bazeaz pe SQL, are limbajul procedural gazd (Basic Access) i instrumente de dezvoltare.

Paradox. Este realizat de firma Borland. Are limbaj procedural propiu (PAL) i suport SQL.6. Lucrare aplicativ propus spre rezolvare

a)Se va proiecta o baz de date pentru evidena angajailor unei societi comerciale. Pentru dezvoltare se va folosi aplicaia Access, iar fiierul de gestiune va purta numele Eviden angajati.mdb. Baza de date va conine tabelele descrise mai jos:

1:n

1:n

1:1

Angajati

Nume cmpTip/dimensiuneIndex/cheie primarRestricii

Id angNumeric ntreg Cheie primar

NumeText 20

PrenumeText 40

FunctiaText 3 Index cu duplicateSe gsete n lista

Data incadDat calendaristic

Sal incadNumeric ntreg >=600

Date personale

Nume cmpTip/dimensiuneIndex/cheie primarRestricii

Id angNumeric ntreg Index unicSe gsete n lista codurilor angajailor din tabela Angajai

CIText 8

Data nastDat calendaristic

AdresaMemo Se creaz un ablon Loc, str., nr., ap., tel., jud., e-mail:

Functii

Nume cmpTip/dimensiuneIndex/cheie primarRestricii

Cod fctText 3 Cheie primar

FunctiaText 15

StudiiText 10 Se gsete n lista

Copii angajati

Nume cmpTip/dimensiuneIndex/cheie primarRestricii

Cod angNumeric ntreg Index cu duplicateSe gsete n lista codurilor angajaior din tabela Angajai

PrenumeText 40

AlocatieNumeric ntreg Valoarea implicit va fi 40

Rezultatul la care trebuie s se ajung este indicat mai jos:

b)Vom continua aplicaia nceput, pentru formularea de cereri pe baza de date Evidenta angajati.mdb.

Ex. 1 a: Se cer date complete despre angajaii firmei folosind setul complet de cmpuri din tabela Angajati, aranjai n ordine alfabetic.

a) varianta Query Design view QBE:

b) varianta SQL:

SELECT [Id ang], Nume, Prenume, Functia, [Data incad],

[Sal incad]

FROM Angajati

ORDER BY Nume, Prenume;

Ex. 1 b: Acelai enun ca n exerciiul anterior, dar, ntr-o alt form de reprezentare a interogrii.

a) varianta Query Design view QBE:

b) varianta SQL:

SELECT Angajati.*

FROM Angajati

ORDER BY Nume, Prenume;

Ex. 2: S se refac prima interogare, astfel nct s apar n list doar acei angajai care sunt de profesie inginer.

SELECT Angajati.*

FROM Angajati

WHERE Functia='ING'

ORDER BY Nume, Prenume;Ex. 3 a: S se refac prima interogare, astfel nct n list s apar acei angajai al cror nume ncepe cu litera P.

SELECT Angajati.*

FROM Angajati

WHERE Nume Like 'P*'

ORDER BY Nume, Prenume;

Ex. 3 b: Se va reface interogarea anterioar, astfel nct n list vor aprea toi acei angajai al cror nume conine grupul de litere op.

a) varianta Query Design view:

b) varianta SQL:

SELECT Angajati.*

FROM Angajati

WHERE Nume Like '*op*'

ORDER BY Nume, Prenume;

Ex. 4: Se cere o list: id-ul de angajat, numele, prenumele, functia, data incadrrii n funcie, vechimea n munc i salariul cu care este ncadrat fiecare angajat.

a) varianta Query Design view:

b) varianta SQL:

SELECT [Id ang], Nume, Prenume, Functia, [Data incad],

Int((Date()-[Data incad])/365) AS

[Vechime in munca], [Sal incad]

FROM Angajati;

Ex. 5: S se modifice interogarea 4, astfel nct, n list s apar denumirea complet a funciei angajailor i nu doar codul acesteia.

SELECT [Id ang], Nume, Prenume, Functii.Functia,

[Data incad], Int((Date()-[Data incad])/365)

AS Vechime, [Sal incad]

FROM Functii INNER JOIN Angajati

ON Functii.[Cod fct] = Angajati.Functia;

Ex. 6: Se cere o situaie similar celei precedente, doar c, n acest caz se cer acei angajai care sunt de profesie inginer sau muncitor, au vechime de pn n 4 ani n cmpul muncii, iar, salariul este peste media pe economie (considerm aceast medie ca fiind 1250 lei).

SELECT Angajati.[Id ang], Angajati.Nume,

Angajati.Prenume, Functii.Functia,

Angajati.[Data incad],

Int((Date()-[Data incad])/365) AS [Vechime in

munca], Angajati.[Sal incad]

FROM Functii INNER JOIN Angajati

ON Functii.[Cod fct] = Angajati.Functia

WHERE Int((Date()-[Data incad])/365)=1250 AND

(Angajati.Functia='ing' Or Angajati.Functia='mct')

ORDER BY Angajati.Functia;

Ex. 7: Se va reface enunul anterior, astfel nct, va exista posibilitatea afirii unei liste a acelor angajai care sau au sub 4 ani vechime, sau au salariul peste medie i sunt de profesie inginer sau muncitor.

SELECT Angajati.[Id ang], Angajati.Nume,

Angajati.Prenume, Functii.Functia,

Angajati.[Data incad],

Int((Date()-[Data incad])/365) AS [Vechime in

munca], Angajati.[Sal incad]

FROM Functii INNER JOIN Angajati

ON Functii.[Cod fct] = Angajati.Functia

WHERE (Angajati.[Sal incad]>=1250

AND (Angajati.Functia='ing' Or Angajati.Functia='mct'))

OR Int((Date()-[Data incad])/365)=60;

Observaie: n cazul interogrilor de modificare, respectiv, tergerea setarea unui astfel de tip de interogare se face n modul Query Design view prin click dreapta pe zona de lucru a interogrii i selectarea opiunii Update Query pentru cea de modificare, respectiv, Delete Query pentru cea de tergere.

Acelai lucru se mai poate realiza i folosind meniul Query, activ dup deschiderea unei interogri, i comutarea din opiunea interogri de selecie , care este de altfel i forma implicit de interogare, n varianta de interogare , pentru interogri de modificare, sau , pentru interogri de tergere.

c) Se va continua aplicaia nceput folosind elemente de construcie a formularelor i de transmitere a rezultatelor obinute prin intermediul rapoartelor.

Noiunea de baz de date

Conceptul de sistem de gestiune a bazelor de date

Categorii de utilizatori

Arhitectura ANSI-SPARC a bazelor de date

Limbajele bazelor de date

Definirea sistemelor de gestiune a bazelor de date relaionale

Lucrare aplicativ propus spre rezolvare

1

Iniiere n

sisteme de gestiune a bazelor de date

CURS

Copii ang

Cod ang

Prenume

Alocatie

Funcii

Cod fct

Functia

Studii

Angajai

Id ang

Nume

Prenume

Functia

Data ang

Sal incad

Date pers

Id ang

CI

Data nast

Adresa