Documente Academic
Documente Profesional
Documente Cultură
UTILIZAREA ACESTORA
Cuprins Pagina
INTRODUCERE vi
1.1. Introducere 2
Bibliografie 12
2.2. Arhitectura intern a sistemlor de baze de date. 17 Modele de date, scheme i instane
2.4.Limbaje SGBD 20
2.5.Interfee SGBD 21
Interfee bazate pe meniuri
Interfee grafice
Interfee bazate pe forme
Interfee n limbaj natural
Interfee specializate aferente cererilor repetate
Interfee pentru administratorii bazelor de date
Biblliografie 27
1
Obiectivele unitii de nvare nr. 3 28
Biblliografie 57
4.1. Introducere 62
4.1.1. Deschiderea i nchiderea aplicaiei Microsoft Access 62
4.1.2. Crearea unei baze de date noi 63
4.1.3. nchiderea unei baze de date 63
1
4.6.7. Clauza HAVING 93
4.6.8. Cereri coninnd mai multe tabele 94
Biblliografie 102
Bibliografie 114
Biblliografie 127
1
BAZE DE DATE I UTILIZAREA ACESTORA
Cuprins Pagina
1.1. Introducere 2
Biblliografie 12
1
OBIECTIVELE unitii de nvare nr. 1
Dup studiul unitii de nvare nr. 1 vei fi capabil s demonstrezi c ai dobndit cunotine suficiente pentru a nelege:
1.1. Introducere
n ultimii ani, dezvoltarea sistemelor de baze de date reprezint unul dintre cele mai
importante aspecte n domeniul tehnologiei informaiei, avnd un impact decisiv asupra modului
de organizare i funcionare a numeroaselor instituii i servicii. Acestea sunt companiile de
comunicaie, intreprinderile de comer, serviciile bancare, serviciile de transport, asigurrile,
universitile etc. Acestea sunt dependente de funcionarea corect i nentrerupt a sistemelor
de baze de date.
Bazele de date pot avea mrimi (numr de nregistrri) i complexiti extrem de variate,
de la cteva zeci de nregistrri (de exemplu, baza de date pentru o agend de telefon a unei
persoane)
sau pot ajunge la milioane de nregistrri (de exemplu, baza de date pentru crile dintr-o
bibliotec, baza de date cu stocarea angajailor unei firme sau baza de date unde se pstreaz
informaii despre situaia studenilor etc).
Test de autoevaluare
2
1. 2. Ce este o Baz de Date?
n sensul larg, o baz de date (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 co/ecie de date centra/izate, creat i meninut computerizat, n scopu/ pre/ucrrii date/or
n contextu/ unui set de ap/icaii. Pre/ucrarea date/or se refer / a operaii/e de introducere, tergere, actua/izare i
interogare a date/or.
Simple colecii de fie (documente pe hrtie) sau fiiere de date care conin date, dar nu permit operaii de
interogare nu sunt considerate baze de date. De exemplu, datele memorate n fiiere pe disc ntr-o aplicaie de calcul
tabelar (Microsoft Excel) sau documentele memorate de un editor de texte (ca Microsoft Word) nu sunt considerate baze
de date.
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.
Sunt compacte: volumul ocupat de sistemele de baze de date este mult mai redus
dect documetele scrise
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.
Se pot lua n considerare mai multe criterii de clasificare ale sistemelor de baze de date.
2
Mode/u/ de date re/aiona/ (Re/ationa/ Mode/) se bazeaz pe noiunea de re/aie din
matematic, care corespunde unei entiti de ace/ai tip i are o reprezentare uor de ne/es i
de manipu/at, ce const dintr-un tabe/ bidimensiona/, compus din /inii i co/oane. Fiecare /inie din
tabe/ reprezint o entitate i este compus din mu/imea va/ori/or atribute/orentitii respective,
fiecare atribut corespunznd unei co/oane a tabe/u/ui.
Modelul de date relaional a fost propus de cercettorul E.F.Codd de la compania IBM, care
a publicat n 1970 lucrarea "Un model relaional de date pentru bnci mari de date partajate". Alte
lucrri ale lui Codd, ca i ale altor cercettori ca R. Boyce, J.D. Ullman etc au perfecionat modelul
de date relaional i au permis dezvoltarea sistemelor de baze de date.
Chiar dac noiunile de relaie i tabel difer n esena lor, relaia reprezentnd o mulime
de entiti i tabelul o reprezentare vizual a acesteia, cele dou denumiri se pot folosi, n general
pentru acelai scop.
Pe baza acestor noiuni, se poate sintetiza esena modelului relaional prin urmtoarele
caracteristici: Datele sunt percepute de utilizatori ca tabele
Operatorii relaionali care pot fi folosii pentru prelucrarea datelor genereaz un tabel rezultat din
tabelele operanzi
Asocierea dintre tabele se realizeaz prin intermediul egalitii valorilor unor atribute comune,
ceea ce permite rezolvarea oricrei interogri.
Pe lng avantajul unui model de date precis i simplu, sistemele de baze de date
relaionale mai beneficiaz i de un limbaj de programare recunoscut i acceptat, limbajul SQL
(Structured Query Language), pentru care au fost emise mai multe standarde de ctre
Organizaia Internaional de Standardizare (International Standardization Office-ISO).
Majoritatea sistemelor de gestiune a bazelor de date relaionale actuale implementeaz versiunea
din anul 1992 a standardului pentru limbajul SQL, denumit SQL 92 sau SQL2.
Modelul de date orientat obiect (Object Model) este un concept unificatorn tiina
calculatoarelor, fiind a p l i c a b i l n programare, n proiectarea hardware, a interfeelor, a bazelor
de date etc. Sistemele de baze de date orientate obiect se bazeaz pe limbaje de programare
orientate obiect cu capaciti de persisten, n care datele sunt independente de timpul de via
al programelor care le creeaz sau acceseaz, prin memorare pe suport magnetic (disc).
Exist i unele domenii, n special cele care manipuleaz tipuri de date complexe, cum ar fi
proiectarea asistat de calculator, sisteme de informaii geografice, medicin etc, n care modelul
relaional s-a dovedit a fi insuficient de expresiv i cu performane de execuie reduse.
2
superior (nodul printe) i fiecare nod (cu excepia nodurilor frunz) are una sau mai multe
legturi ctre noduri de pe nivelul imediat inferior (noduri fii).
Mode/u/ de date reea (Network Mode/) fo/osete o structur de graf pentru definirea
schemei conceptua/e a bazei de date; noduri/e grafu/ui sunt tipuri de entiti (nregistrri,
records), iar muchii/e grafu/ui reprezint n mod exp/icit asocieri/e (/egturi/e, /inks) dintre tipuri/e
de entiti.
La fel ca i modelul ierarhic, dezavantajul principal al modelului reea este acela c fiecare
interogare trebuie s fie prevazut nc din faza de proiectare, prin memorarea explicit a
legturilor ntre tipurile de entiti. n plus, complexitatea reprezentrii datelor n modelul reea
este deosebit de ridicat, iar programatorii trebuie s o cunosasc pentru a putea realiza
aplicaiile necesare.
O alt clasificare este cea dup numrul de staii pe care este stocat baza de date
Exist dou categorii de sisteme de baze de date: centralizate i distribuite.
Un sistem de baze de date distribuit (Distributed Database System) poate avea att datele,
ct i sistemul de gestiune, distribuite pe mai multe calculatoare interconectate printr-o reea de
comunicaie.
Test de autoevaluare
Noiunile de mai sus sunt strns legate ntre ele, msurile pariale se suprapun i se
acoper reciproc.
Securitatea i protecia datelor din baza de date constituie un domeniu foarte vast, care
prezint dou aspecte principale: pe de o parte, elementele legale i etice privind drepturile de
acces la anumite informaii, iar pe de alt parte, elementele legate de organizarea sistemelor
informatice din punct de vedere al posibilitilor de acces la datele stocate.
2
Unele informaii care exist n baza de date sunt strict private i nu pot fi accesate legal de
ctre persoane neautorizate. Diferite reglementri guvernamentale sau legi existente n
majoritatea rilor stabilesc ce informaii privind activitatea instituiilor sau a persoanelor pot fi
fcute publice i n ce condiii.
O alt tehnic de protecie i securitate a datelor este criptarea datelor (Data Encryption),
prin care datele importante sunt codate folosind diferii algoritmi de codare, mai ales atunci cnd
sunt transmise prin intermediul reelelor de comunicaie. Interpretarea datelor criptate este dificil
dac nu este cunoscut cheia (cifrul) de codare. n felul acesta numai utilizatorii autorizai care
dein cheile de decriptare pot interpreta cu uurin aceste date.
O alt tehinc se securizare a bazei de date pentru aplicaiile web ar fi instalarea unui
firewall, acesta fiind un calculator pe care este instalat un software special care permite
accesarea calculatorului pe care este stocat baza de date numai de ctre anumite calculatoare.
Deci, prin securitatea bazei de date se nelege o multitudine de msuri destinate proteciei
informaiilor coninute n baza de date mpotriva unor alterri, distrugeri sau divulgri neautorizate.
Test de autoevaluare
1. Spunei cteva avantaje ale faptului c datele se pstreaz i se manipuleaz mai bine stocate n format electronic.
2
2. Descriei n cteva cuvinte de ce este important s protejm datele.
Rspunsuri i comentarii la ntrebrile din testele de autoevaluare
ntrebarea 1.
Bazele de date sunt importante deoarece n cursul unei zile majoritatea persoanelor desfoar activiti care implic
interaciunea cu o baz de date: depunerea sau extragerea unei sume de bani din banc, rezervarea biletelor de tren sau
de avion, cutarea unei cri ntr-o bibliotec computerizat, gestiunea angajailor dintr-o firm, cumprarea unor produse
etc.
ntrebarea 2.
O baz de date este o colecie centralizat de date n scopul optimizrii prelucrrii acestora n contextul unui set dat de
aplicaii. Operaiile care se pot realiza asupra datelor dintr-o baz de date sunt de inserare a unor date noi, de modificare
a datelor existente, de tergere a datelor sau de crearea a unor interogri pentru regsirea unor informaii dup un anumit
criteriu.
ntrebarea 3.
ntrebarea 4.
Securitatea i protecia datelor din baza de date prezint dou aspecte principale: pe de o parte, elementele legale i
etice privind drepturile de acces la anumite informaii, iar pe de alt parte, elementele legate de organizarea sistemelor
informatice din punct de vedere al posibilitilor de acces la datele stocate.
Dou din tehnicile de securizare i protecie a datelor din baza de date sunt: crearea de conturi de utlizatori cu anumite
drepturi pentru fiecare utilizator n parte de ctre administratorul bazei de date i criptarea datelor. Mai exist i alte
tehnici n funcie de tipul aplicaiei.
2
Problematica organizrii informaiilor n mediul electronic
Bibliografie:
Cuprins Pagina
Obiectivele 14
unitii de
nvare nr. 2
2.2. Arhitectura intern a sistemlor de baze de date. Modele de date, scheme i instane
2.3. 19
Independen
a datelor
2.4.Limbaje 20
SGBD
2.5.Interfee 21
SGBD
Interfee bazate pe meniuri
Interfee grafice
Interfee bazate pe forme
Interfee n limbaj natural
Interfee specializate aferente cererilor repetate
Interfee pentru administratorii bazelor de date
Biblliografie 27
n unitatea de nvare nr. 1 am realizat o scurt introducere n acest amplu domeniu al bazelor
de date. Am adus n discuie unde se folosesc bazele de date, am prezentat o clasificare a sistemelor
de baze de date i am dorit s subliniez importana securizrii bazelor de date i a proteciei datelor
stocate n bazele de date
n aceast unitate de nvare vom descrie mai n detaliu ce este un sistem de baze de date i n
ce const el.
Dup studiul unitii de nvare nr. 2 vei fi capabil s demonstrezi c ai dobndit cunotine suficiente pentru a
nelege:
ce este un sistem de baze de date
care este independena fizic i cea logic a datelor din baza de date
2.1.1. Hardware.
Deoarece ntr-un sistem de baze de date este necesar accesul rapid la oricare dintre
nregistrrile de date, pentru memorarea acestora se folosesc discurile magnetice (harddisk-uri).
Benzile magnetice (care ofer acces secvenial la nregistrrile de date) se folosesc pentru
duplicarea (backup), salvarea i restaurarea datelor.
2.1.2. Software
ntre baza de date (colecia de date memorate fizic n fiiere pe harddisk-uri) i utilizatorii
sistemului exist un nivel software, numit sistem de gestiune a bazei de date (SGBD)-(DataBase
Management System). O baz de date computerizat poate fi generat i meninut fie cu
ajutorul unui grup de programe de aplicaie specifice acestui scop, fie cu acest SGBD.
Definirea bazei de date presupune specificarea tipurilor de date ce vor fi stocate n baza de
date, precum i descrierea detaliat a fiecrui tip de dat.
Construcia bazei de date reprezint procesul stocrii datelor nsi prin mediul controlat
prin SGBD.
2.1.3. Utilizatorii
Datele memorate ntr-o baz de date sunt date persistente, adic date care rmn
memorate pe suport magnetic, independent de execuia programelor de aplicaii. Datele
persistente ale unei baze de date se introduc, se terg sau se actualizeaz n funcie de date de
intrare provenite de la tastatur. Iniial datele de intare sunt date nepersistente, ele devenind
persistente dup ce au fost validate de SGBD. Datele de ieire ale unui sistem de baze de date
sunt tot date nepersistenete, ele provenind din operaii de interogare a bazei de date i puse la
dispoziie utilizatorului sunt form de raport, afiare etc.
Test de autoevaluare
Nivelul intern constituit din schema intern ce descrie structura de stocare fizic a datelor n baza de date, utiliznd
un model al datelor fizice. La acest nivel se descriu detaliile complete ale stocrii, precum i modul de acces la
date.
Nivelul conceptual sau schema conceptual descrie structura ntregii baze de date pentru o comunitate de
utilizatori. La nivelul conceptual se face o descriere complet a bazei de date, ascunznd detaliile legate de
stocarea fizic, concentrndu-se asupra descrierii entitilor, tipurilor de date, relaiilor dintre ele, precum i a
restriciilor asociate. Poate fi utilizat cu bune rezultate, la
model de nivel nalt sau un model specific de implementare.
Nivelul extern sau nivelul vizual (utilizator) include o colecie de scheme externe ce descriu
baza de date prin prisma diferiilor utilizatori. Fiecare grup de utilizatori descrie baza de
date prin prisma propriilor interese. Exist tendina la acest nivel ca grupuri de utilizatori s
ascund detalii de care nu sunt interesate. i la acest nivel se pot folosi modele de
implemetare sau modele de nivel nalt.
Desigur c n multe SGBD nu se poate face o distincie net ntre cele trei nivele. Cu toate
acestea se poate remarca la majoritatea SGBD un nivel conceptual puternic ce suplinete aparent
de cele mai multe ori celelalte niveluri. De asemenea, se remarc o contopire mai ales la
dezvoltarea aplicaiilor a nivelului conceptual i extern. Se remarc faptul c arhitectura pe trei
niveluri reprezint numai o descriere a datelor la nivel fizic. Grupurile de utilizatori se refer numai
la schema extern, deci SGBD este cel ce va trebui s transforme schema extern n schem
conceptual.
Vedere Vedere
Nivel extern grup grup
utilizator utilizator n
1
Schema
conceptuala
12 Proiectul pentru nvmntul Rural
Problematica organizrii informaiilor n mediul electronic
Nivel
inter Figura 2.2. Arhitectura intern a unui sistem de baze de date
n
Test de autoevaluare
Prin independena logic se nelege capacitatea schimbrii schemei conceptuale fr a atrage dup sine
schimbri n schema extern sau n programele de aplicaie. Este posibil schimbarea schemei conceptuale prin
expandarea bazei de date ca urmare a adugrii de noi tipuri de nregistrri sau a datelor insi, sau prin reducerea bazei
de date ca urmare a reducerii nregistrrilor. Schema conceptual dup aceste operaii se refer la schema conceptual a
datelor existente. Un exemplu de expandare al bazei de date este cel de adugare a unei noi coloane la un tabel.
Independena fizic este reprezentat prin capacitatea de schimbare a schemei interne fr schimbarea schemei
conceptuale sau externe. Schimbarea schemei conceptuale poate surveni ca urmare a reorganizrii fizice a unor fiiere,
prin crearea de noi structuri de acces menite s asigure accesul eficient la date. Dac sistemul conine SGBD pe mai
multe niveluri, catalogul trebuie s reflecte modul n care diverse cereri se implementeaz la fiecare nivel. Motivele
prezentate mai sus pledeaz pentru utilizarea arhitecturii pe trei nivele.
Test de autoevaluare
4. Care este diferena dintre independena fizic i independena logic a datelor din baza de date?
2.4. Limbaje SGBD
Pentru o arhitectur pe trei nivele, este necesar un al treilea nivel numit View Definition
Language (VDL) destinat utilizatorilor i legturii acestora cu nivelul conceptual. Multe sisteme de
baze de date realizeaz aceasta printr-un DDL ce accept i declaraii specifice nivelului extern.
Instruciunile n limbaj DDL pot fi nglobate ntr-un limbaj general de programare sau pot fi
compilate separat. Odat schema compilat i baza de date populat cu date, utilizatorul are o
serie de faciliti pentru manipularea datelor. Operaiile tipice includ cutarea, inserarea,
tergerea i modificare datelor. Pentru aceasta SGBD dispune de Data Manipulation Language
(DML). La rndul su, DML poate fi mprit n dou componente:
un DML de nivel nalt
un DML de nivel sczut
Seciunea DML de nivel nalt sau neprocedural este utilizat pentru specificarea
operaiilor complexe n baza de date ntr-o form concis. n general, operaiile utiliznd aceast
seciune sunt realizate fie ntr-o form interactiv de la terminal, fie prin utilizarea unui limbaj de
programare universal.
Seciunea DML de nivel sczut sau procedural este realizat utiliznd un limbaj de
programare general. Cu aceast seciune se realizeaz operaiile tipice, cum sunt refacerea unei
nregistrri individuale, procesarea separat a nregistrrilor bazei de date. Din motivul c
opereaz asupra nregistrrilor individuale, aceast prelucrare se mai numete i nregistrare cu
nregistrare. O comand pentru DML de nivel nalt specific o cerere de acces la date, dar nu
specific modul n care se realizeaz acasta. Din acest motiv acest limbaj se numete declarativ.
Oricum, comenzile DML fie de nivel nalt, fie de nivel sczut sunt implementate ntr-un limbaj de
programare general, limbaj numit i limbaj gazd, iar DML este numit limbaj de date. DML de nivel
nalt utlizat ntr-o manier interactiv formeaz ceea ce se numete query language.
Test de autoevaluare
SGBD trebuie s ofere interfee corespunztoare tuturor categoriilor de utilizatori. Aceste interfee au ca scop
facilitarea legturii ntre utilizatori i sistemul de baze de date. Principalele tipuri de interfee oferite de SGBD sunt:
Interfee bazate pe meniuri. Acestea ofer utilizatorului o list de opiuni, numite meniuri care i ajut la formularea
cererilor. Nu este necesar memorarea unor comenzi deoarece o comand specific este format pas cu pas prin
compunerea opiunilor indicate prin meniu.
Interfee grafice. Aceste interfee afieaz utilizatorului o diagram. Utilizatorul poate formula cererea prin
manipularea acestei diagrame. n cele mai multe cazuril, interfeele grafice sunt combinate cu meniuri.
Interfee bazate pe forme. Aceste interfee sunt acelea prin intermediul crora utilizatorul poate completa formele
cu noile date pe care le dorete s le insereze, sau folosete aceste forme pentru a cere SGBD s obin datele de
interes.
Interfee n limbaj natural. Aceste interfee accept cereri scrise n limba englez sau alte limbi de circulaie
internaional. O interfa n limbaj natural conine uzual o schem proprie similar cu schema conceptual a
bazelor de date. Interpretarea cererilor se face pe baza unui set standard de cuvinte cheie ce sunt interpretate pe
baza schemei interne. Dac interpretarea se realizeaz cu succes, programul de interfa genereaz cererea de
nivel nalt corespunztoare celei n limbaj natural, ce va fi transmis ctre SGBD.
Interfee specializate aferente cererilor repetate. Aceste interfee sunt destinate unei
anumite categorii de utilizatori, de exemplu utilizatorii care se ocup de operaiile dintr-o
banc. Uzual, un mic set de comenzi prescurtate sunt implementate pentru a scurta timpul
necesar introducerii comenzii, sau chiar utilizarea de chei funcionale. Aceste interfee
implementeaz un limbaj numit i limbaj de comand.
n momentul de fa, pe pia exist o ofert foarte mare de sisteme de gestiune a bazelor de date, de la sisteme
care se pot folosi gratuit (fr licen sau cu licen public), pn la sisteme de nalt performan, a cror utilizare
necesit cumprarea de licene. Pentru aceste sisteme exist pe site-urile productorilor versiuni de test numite trial
version, pentru care nu se pltete licen, durata folosirii respectivului produs fiind limitat la un numr de zile (30, 60
zile, n funcie de productor).
Microsoft SQL Server este sistemul de gestiune a bazelor de date relaionale multi-utilizator dezvoltat de firma
Microsoft pentru sistemele de operare Windows. Au existat mai multe versiuni, cea actual fiind: SQLServer 2000 (SQL
Sever 2003 fiind nc n faza de testare). n toate versiunile, acest sistem de baze de date suport standardul SQL2, cu
implementarea perfomant a trsturilor avansate de stocare i prelucrare a datelor. Exist o interfa grafic pentru
interaciunea cu utilizatorul, pentru folosirea tuturor opiunilor: de export/ import date, de creare i manipulare a tabelelor,
pentru popularea cu date a tabelelor, de
creare a interogrilor, a procedurilor stocate, a triggerelor etc. Pentru a obine gratuit o versiune
de test, accesai adresa http://www.microsoft.com.
Microsoft Access este unul din cele mai cunoscute sisteme de gestiune a bazelor de date
relaionale pe platforme de calculatoare personale. Microsoft Access dispune de un sistem de
control al bazei de date (database engine) i o intefa grafic pentru interaciunea cu utlizatorul.
Aplicaiile de baze de date n MS Access se pot dezvolta cu mult uurin datorit generatoarelor
de aplicaii (wizards) care permit proiectarea vizual a bazelor de date, a formularelor (forms)
pentru interfeele grafice i a rapoartelor (reports). MS Access este folosit n special pentru
aplicaii personale sau pentru mici afaceri i licena acestuia se cumpr odat cu cumprarea
licenei produsului Microsoft Office. Acest sistem este cel folosit de noi n capitolele urmtoare.
Sistemul Oracle este un sistem de gestiune al bazelor de date multi-utilizator foarte
puternic, cu implementri pe toate platformele (Windows, Linux, Unix), care ofer att
performane de execuie ridicate, ct i un grad mare de protecie i securitate a datelor. n toate
versiunile, Oracle ofer implementarea complet a caracteristicilor modelului relaional, conform
standardului SQL2, iar ultimele versiuni (Oracle8i, Oracle9i etc) sunt sisteme de gestiune obiect-
relaionale distribuite, implementnd extensiile orientate obiect prevzute n standardul SQL3 i
oferind posibilitatea de dezvoltare a bazelor de date distribuite. De la adresa
http://www.oracle.com se poate obine o versiune a sistemului de gestiune Oracle, dar i a
diferitelor instrumente de dezvoltare a aplicaiilor de baze de date. Termenii licenei permit
utilizarea gratuit a acestor sisteme n scopuri necomerciale pe o perioad nelimitat, pentru
utliizarea n scopuri comerciale trebuie pltite licenele corespunztoare.
MySQL este un sistem de gestiune a bazelor de date relaionale cu implementri pentru
sistemele de operare Linux, Unix, Windows. Acest sistem se poate utiliza gratuit, fiind open
putut rivaliza cu FoxPro n ce privete viteza de execuie a funciilor specifice bazelor de date . i acest mediu conine
vrjitori (Wizard) pentru gestionarea mai multor taskuri.
IBM DB2 este un sistem de gestiune al bazelor de date al firmei IBM. Acest sistem asigur integritatea datelor,
ofer o securitate sporit pentru date, are o interfa grafic pentru gestionarea bazei de date. Dispune, ca i Microsoft
SQL Sever i Oracle de posibilitatea crerii de proceduri stocate, acestea fiind nite proceduri care ruleaz pe server i
asigur o vitez mai mare de rspuns. Are mai multe versiuni n funcie de dorinele i necesitile utilizatorilor. Mai multe
informaii despre DB2 le gsii dac accesai www.db2mag.com, i pentru a v comanda un CD sau pentru a v descrca
versiunea de evaluarea a acestui sistem accesai www.ibm.com.
Test de autoevaluare
Accesai paginile de web ale fiecrui sistem de gestiune a bazelor de date i precizai cteva avantaje i cteva
dezavantaje ale fiecruia.
ntrebarea 1.
Componentele unui sistem de baze de date sunt: componenta hardware, componenta software,
utilizatorii i datele persistente care sunt stocate n baza de date.
ntrebarea 2.
Prin structura bazei de date se nelege alegerea tipului de date, legturile dintre ele, restriciile ce
trebuie ndeplinite de date.
ntrebarea 3.
Organizare pe trei niveluri a unui sistem de baze de date este important pentru c explic conceptul de independen a
datelor, prin posibilitatea modificrii sistemului bazei de date la orice nivel fr a influena nivelurile superioare.
Independena datelor se poate defini n dou moduri, moduri ce sunt aferente nivelurilor conceptual i intern.
ntrebarea 4.
Prin independena logic se nelege capacitatea schimbrii schemei conceptuale fr a atrage dup sine schimbri n
schema extern sau n programele de aplicaie. Independena fizic este reprezentat prin capacitatea de schimbare a
schemei interne fr schimbarea schemei conceptuale sau externe.
ntrebarea 5.
ntrebarea 6.
Un index primar este un fiier ordonat cu nregistrri de lungime fix avnd dou cmpuri.
Primul cmp al indexului este de acelai tip cu un cmp cheie ordonat al tabelei de date, iar al
doilea cmp este un pointer ctre un bloc (o adres a unui bloc).
Cmpul cheie de ordonare se mai numete i cheie primar a tabelei de date. Asociaia
celor dou cmpuri formeaz intrarea index sau nregistrarea index pentru fiecare bloc al tabelei
de date. Cum tabela de date este ordonat dup valorile cmpului index, n fiierul index valoarea
primului cmp este dat de valoarea cmpului index de la prima nregistrare a blocului. Al doilea
cmp, cel ce semnific un pointer este de tip ntreg i indic adresa blocului.
Volumul datelor n index este mai mic datorit faptului c n index avem o singur intrare
pentru un bloc, ct i datorit faptului c un index este similar cu o tabel, dar are numai dou
cmpuri. Ca efect, cutarea ntr-un fiier index este mult mai rapid dect ntr-o tabel de date,
putnd fi utilizate metode de cutare binare.
7 ------------------- 7
44 9
21
44
65
9733 78
^^+-9733
Indexul secundar este un fiier ordonat cu dou cmpuri ca i la ali indeci, n care primul
cmp este identic cu cel al tabelei de date, iar al doilea cmp este un pointer. Cmpul pentru care
indexul este construit se numete i cmp de indexare.
7
8
3
"* 5
4
65
5
31
Astfel de indeci sunt folosii cnd nregistrrile tabelei de date sunt ordonate fizic dup un
cmp care nu este cheie (noncheie), deci un cmp ce nu are valori distincte la fiecare nregistrare.
Un astfel de cmp identific un grup de nregistrri (clustering field). n aceast situaie se poate
crea un index ce faciliteaz gsirea nregistrrilor ce aparin unui cmp.
Un index de grup este deci un fiier ordonat cu dou cmpuri, primul cmp coninnd
aceeai informaie cu cea a cmpului noncheie de ordonare, al doilea fiind destinat unui pointer
ctre un bloc de date. n acest mod, fiierul index conine cte o intrare pentru fiecare valoare
distinct a cmpului de ordonare. Al doilea cmp al nregistrrii index conine un pointer ctre
blocul n care apare pentru prima oar valoarea cmpului de ordonare din primul cmp al
indexului.
'-----------------------------b
Cmpurile scrise ngroat sunt cheile primare din cadrul fiecrei tabele.
Liniile dintre tabele arat relaiile care le-am creat prin proiectare ntre fiecare dou tabele.
La capetele liniilor sunt dou cmpuri: cmpul scris nengroat reprezint cheia strin a tabelei
i dup cum spune i definiia, face legtura cu cheia primar a celeilalte tabele.
1. Propun pe lng aplicaia pe care am proiectat-o i realizat-o mpreun s ncercai s aplicai aceleai etape i pentru
o alt dou aplicaie descris mai jos.
Se dau mai jos cerinele pentru construcia unei baze de date aferente unei companii, baza de date numit
COMPANIE, ce are ca scop ilustrarea procesului descris. n faza preliminar se cunoate faptul c compania are un
numr de angajai organizai pe departamente i urmrete realizarea unor proiecte. Pentru simplitate, se presupune c
dup analiza cerinelor s-a decis urmtoarea descriere, ca elemente primare, pentru baza de date:
Compania este organizat n departamente, fiecare departament are un nume, un numr de cod, un numr de
angajai. Compania poate avea mai multe sedii
Un departament este implicat n mai multe proiecte, fiecare din ele are un nume, un numor de cod i o singur locaie
Se pstreaz pentru fiecare angajat numele, CNP, adresa salariul, sex, data naterii. Fiecare angajat este afiliat la un
departament, ns poate lucra la mai multe proiecte ce nu sunt neaprat coordonate de acelai departament. Trebuie
stocat i numrul de ore alocate sptmnal pentru fiecare proiect. De asemenea, fiecare angajat are un ef direct
Lista persoanelor din ntreinerea fiecrui angajat este important ntruct este utlizat a calculul impozitului, lista
coninnd numele, sexul i data naterii fiecrui ntreinut.
2. Dai exemple de entiti care ar putea exista pentru baza de date Companie. Scriei entitile propuse de voi alturi de
atributele asociate fiecreia din ele.
3. Dai exemple de relaii care ar putea exista pentru baza de date Companie. Descriei relaiile dintre toate entitile.
5. Definii cheile primare i strine asociate fiecrui tabel din baza de date Companie i scriei structura final pentru
fiecare tabel.
6. Explicai dac tabelele din baza de date Companie sunt normalizate. Dai exemple cum sunt ndeplinite fiecare form
normal.
Rspunsuri i comentarii la ntrebrile din testele de autoevaluare
ntrebarea 1.
ntrebarea 2.
Cmpuri (atribute). nregistrrile sunt constituite din cmpuri (coloane) . Un cmp este o particul atomic a
bazei de date ce reprezint cea mai mic cantitate de informaie care poate fi manipulat. Toate nregistrrile dintr-
o tabel au aceleai cmpuri.
ntrebarea 3.
Relaiile ntre tabele pot fi de mai multe tipuri: relaie unar (n cadrul aceleai tabele), relaia unul-la-unul, relaia unul-la-
multe i relaia multe-la-multe (aceste 3 tipuri de relaii fiind relaii ntre dou tabele.
ntrebarea 4.
Construirea diagramei entitate-relaie este important pentru o vizualizare ct mai clar a ansamblului de obiecte din baza
de date.
ntrebarea 5.
Constrngerile sunt reguli care se definesc la proiectarea unei baze de date i care trebuie s fie respectate de-a lungul
existenei acesteia.
Constrngerile sunt de mai multe feluri:
n cadrul tabelei
o Constrngeri de domeniu o Constrngeri de nuplu o Constrngeri impuse de
dependene de date
ntre tabele
o Constngeri de integritate referenial
ntrebarea 6.
Procesul de normalizare propus de Codd (1972) urmrete execuia asupra unei tabele a unor
serii de teste pentru a cerceta apartenena la forma normal. Codd propune trei forme normale
(1NF, 2NF, 3NF), cea mai bun definiie fiind dat mai trziu de Boyce i Codd, fiind cunoscut
sub numele de forma normal Boyce-Codd.
ntrebarea 7.
Indexul unei tabele este o structur de date adiional memorat n baza de date care permite
accesul rapid la nregistrrile tabelei prin ordonarea acestora. Indecii sunt de mai multe tipuri:
Index primar
Index secundar
Index de grup
Index multinivel
Bibliografie:
Browne, Allen, Balter Alison, Bazele Access 95, Editura Teora, 1999
Pribeanu, Costin, Baze de date i aplicaii, Editura MatrixRom, 2000
Pascu, C., Pascu A., Totul despre SQL, Editura Tehnic, 1994
Cuprins Pagina
4.1. Introducere 62
4.1.1. Deschiderea i nchiderea aplicaiei Microsoft 62
Access
4.1.2. Crearea unei baze de date noi 63
4.1.3. nchiderea unei baze de date 63
Biblliografie 102
n aceast unitate de nvare nr. 4 vom studia cum se creaz, se manipuleaz i se terge o
baz de date i datele stocate n ea.
ce este limbajul SQL i care sunt operaiile care se pot efectua n acest limbaj
cum se creaz o tabel, cum se modific tabela i informaiile din tabel, cum se insereaz
date n tabel, cum se terg datele
______dintr-o tabel i cum se terge o tabel_____________________
4.1. Introducere
Pe parcursul acestui capitol vom face referire la baza de date analizat i proiectat n capitolele anterioare.
Aceast baz de date se numete Universitate i conine urmtoarele tabele:
Facultate(CodFac, Denumire, Adresa, NumeDecan) Studenti(CodStud, CodFac, An, Grupa, Media, Bursa)
StudPers(CodStud, CNP, Nume, Init, Prenume, DataNasterii, LocNast, Tata, Mama, Adresa) Materii(CodMaterie,
Denumire, An, NumeProfesor) Note(CodNota, CodStud, CodMatrie, Nota, Data)
n acest capitol vor fi prezentate o serie de exemple pentru nelegerea mai exact a limbajului de interogri SQL.
Toate exemplele au fost dezvoltate in sistemul de baze de date Microsoft Access.
Pentru a nchide o baz de date, fr a nchide i aplicaia Access ce este necesar pentru utilizri ulterioare, se
utilizeaz comanda urmtoare:
0 Microsoft
Access
D New...Ctrl+N& Open,,,Ctrl+OGet External DataClose
sau se apas pe butonul 2] din colul din dreapa sus al ferestrei cu baza de date.
Teste de autoevaluare
Vom vorbi n continuare despre crearea de tabele n mediul Microsoft Access i despre
alocarea unui tip de date corespunztor pentru cmpurile din tabele.
Tabelele reprezint obiectele din cadrul bazei de date n care se stocheaz datele. Un tabel
este constituit din cmpuri, care sunt coloane ale acelui tabel i crora li se atribuie cte un nume,
fiecare avnd un tip de date i o dimensiune bine precizat. Aceast abordare structurat a
datelor asigur bazelor de date puterea i viteza de lucru de care au nevoie.
Vom alege personal numele fiecrui cmp, tipul i proprietile acestora, n funcie de
dorine. nelegerea corect a tipurilor de cmpuri disponibile i a proprietilor acestora ne ofer
posibilitatea crerii unor structuri bune i eficiente pentru stocarea i gestionarea datelor.
Memo
Dimensiunea unui cmp de tipul Memo este de 64KB (kilooctei), asta nsemnnd c
putem stoca aproximativ 16 pagini de text scris la un rnd pentru fiecare nregistrare. Cmpurile
memo constau numai din text. Pot fi incluse secvene de salt la nceput de rnd sau salt la rnd
nou, dar nu se accept opiuni de formatare a textului sau indentarea unui paragraf.
Numr
Tipul numr (Number) include mai multe tipuri care difer prin modul de stocare i viteza de
rspuns. Acestea sunt:
1. tipul Byte (Octet), care accept numai valori ntregi pozitive pn la 255
2. tipul Integer (ntreg), care acoper domeniul numerelor ntregi de la -32768 la 32768
3. tipul Long Integer (ntreg lung), care reprezint numerele ntregi pn dincolo de
limitele de plus i minus 2 miliarde
Dat calendaristic/Or.
Microsoft Access stocheaz intern datele calendaristice sub forma unor numere n virgul
mobil pe 8 octei, ora fiind reprezentat ca o fraciune dintr-o zi. n general este suficient n
majoritatea situaiilor opiunea Short Date (Forma scurt a datei), dei s-ar putea s dorim ca anul
s fie reprezentat pe formatul de 4 cifre.
Valut
Tipul valut (Currency) acoper valorile n dolari ntregi pn la 15 cifre i valorile zecimale
pn la sutimi de cent. Ca reprezentare intern, tipul valut este un numr n virgul fix.
Acest format asigur o precizie sporit calculelor financiare, dar este mai lent dect tipurile de
numere ntregi sau n virgul mobil.
Da/Nu
Tipul Da/Nu (Yes/No) stocheaz numai valori true sau false (adevrat sau fals). O astfel de
valoare poate fi afiat n una din formele True/False, Yes/No sau On/Off.
Obiect OLE
Tipul de cmp OLE este destinat pstrrii datelor provenite de la alte programe, care s-au
nregistrat ele nsele ca servere OLE n Windows.Aceasta permite bazei de date s stocheze
documentele create de programe de prelucrare a textelor, seturi de foi de calcul, ilustraii, sunete,
videoclipuri, etc.
Vom prezenta ca o introducere pentru limbajul SQL, operatorii logici pe care i vom folosi la
interogri.
Dup cum se vede, null op orice, unde op este un operator logic, ntoarce valoarea null.
SQL a fost conceput ca un limbaj standard de descriere a datelor i acces la informaiile din bazele de date, ulterior
dezvoltndu-se ca o adevrat tehnologie dedicat arhitecturilor client-server.
Utilizat iniial de ctre firma IBM pentru produsul DB2, limbajul de interogare al bazelor de date relaionale SQL a
devenit la mijlocul deceniului trecut un standard n domeniu. De atunci i pn n prezent au fost dezvoltate un numr de
7 versiuni ale standardului SQL, trei dintre acestea aparinnd Institutului Naional American de Standarde (ANSI),
celelalte fiind concepute de firme de prestigiu ca IBM, Microsoft, Borland, sau de ctre consoriile industriale SAG (The
SQL Access Group) i X/Open, primul format din sute de firme ce comercializeaz software pentru baze de date, iar cel
din urm orientat spre activiti de promovare a standardelor n domeniul sistemelor deschise. Din pcate, lipsa unui
standard unic SQL are drept consecine creterea costurilor programelor de gestiune a bazelor de date i ngreuneaz
ntreinerea arhitecturilor client/server.
Comenzile principale n cazul limbajului SQL se refer la cele cinci operaii de baz care se pot efectua ntr-un
limbaj relaional:
Teste de autoevaluare
Comanda de creare de noi tabele n baza de date curent n limbajul SQL standard este
CREATE TABLE.
NOT NULL indic faptul c valorile aferente coloanei respective nu pot avea valori de tip
null, care nu nseamn zero, ci lips de informaie.
FOREIGN KEY necesit ca fiecare valoare din coloan s existe ntr-o coloan
corespondent dintr-o tabel referit. Constrngerea FOREIGN KEY poate face referire
doar la
coloane care sunt PRIMARY KEY sau UNIQUE n tabela referit.
Interogrile prezentate mai departe vor fi fcute n modul SQL VIEW. Pentru a intra n acest mod ne poziionm pe
obiectul
Queries i apsam butonul ^[Aew . Va aprea o fereastr pentru alegerea tipului de creare a interogrii. Facem opiunea
Design View i vom face opiunea View - SQL View din noul meniu sau apsm clic dreapta de la mouse pe fereastra
Query i facem opiunea SQL View.
Exemplu:
An byte,
Grupa text(6),
Media double,
Bursa integer);
Dup rularea acestor fraze SQL vor aprea la obiectul Tables cele 5 tabele noi create.
Cea de-a doua metod de creare a tabelelor, mai exact metoda grafic este i cea mai des folosit de toi
utilizatorii.
Tablei : Table
Vom exemplifica dect crearea tabelei Facultate. Dup completarea denumirii cmpurilor n zona Field Name i a
tipurilor de date n zona Data Type vom seta cheia primar. Acest lucru se face poziionndu-ne cu cursorul de la mouse
pe partea din stnga cmpului corespunztor cheii primare (n cazul nostru CodFac), se apas clic dreapta i se face
opiunea Primary Key.
Aceeai pai trebuie urmai i pentru celelalte tabele. n final, partea de obiecteTables va
arta astfel:
tergerea unei tabele se face cu comanda DROP TABLE. Sintaxa acestei comenzi n limbajul SQL standard este:
Exemplu:
tergerea unei tabele n modul grafic se face astfel: ne poziionm n obiectul Tables, unde sunt afiate toate
tabelele din baza de date, apsm clic dreapta de la mouse pe tabelul dorit pentru tergere i facem opiunea Delete.
Se va apsa butonul Yes dac se dorete ntr-adevr tergerea tabelei sau se apas butonul No dac se dorete
revenirea asupra operaiei de tergere.
4.4.5. Modificarea structurii unei tabele
Modificarea structurii unei tabele n limbajul SQL standard se face cu comanda ALTER TABLE. Aceast comand
este folosit pentru a aduga coloane la tabele de baz din baza de date sau pentru a terge anumite constrngeri.
O nou coloan adaugat prin aceast comand va avea valoarea null n toate nregistrrile care existau n tabel.
Exemplu:
Modificarea structurii unei tabele n modul grafic se face astfel: ne poziionm n obiectul Tables, unde sunt afiate
toate tabelele din baza de date, apsm clic dreapta de la mouse pe tabelul dorit pentru modificare i facem opiunea
Design. Va aprea o fereastr cu structura tabelei. Se vor face modificrile dorite i apoi se salveaz tabelul.
Comanda INSERT care permite inserarea de noi linii ntr-o tabel are urmtoarea sintax simplificat n limbajul
SQL standard:
Aceast comand ne permite inserarea manual de noi nregistrri. Dac este prezent lista de coloane
(nume_coloana, . ) nseamn c se dau doar valori pentru aceste coloane, pentru celelalte asignndu-se valori de null.
Exemplu:
astfe
l:
Inserarea datelor ntr-un tabel n modul grafic se face astfel: ne poziionm n obiectul Tables, unde sunt afiate
toate tabelele din baza de date, apsm clic dreapta de la mouse pe tabelul n care dorim s introducem date i facem
opiunea Open. Va aprea o fereastr cu datele deja existente n tabel. Se vor face inserrile de date dorite i apoi se
salveaz tabelul.
Sintaxa simplificat a comenzii SQL n limbajul standard care terge liniile dintr-o tabel este urmtoarea:
Efectul acestei comenzi este de tergere a liniilor care ndeplinesc condiia din clauza WHERE. LIMIT se folosete
pentru a specifica numrul maxim de linii care se pot terge cu acea comand. n cazul n care clauza WHERE lipsete,
toate liniile tabelei vor fi eliminate.
Exemplu:
nainte:
Dup rularea acestei interogri se va terge nregistrarea a-4-a, aceasta ndeplinind condiia media<7.
tergerea datelor dintr-o tabel n modul grafic se face astfel: ne poziionm n obiectul Tables, unde sunt afiate
toate tabelele din baza de date, apsm clic dreapta de la mouse pe tabelul din care dorim s tergem anumite date i
facem opiunea Open. Va aprea o fereastr cu datele existente n tabela respectiv. Pentru a terge o nregistrare ne
poziionm n partea stng a nregistrrii dorite pentru tergere, apsm clic dreapta al mouse-ului i facem opiunea
Delete Record.
Se va apsa butonul Yes dac se dorete ntr-adevr tergerea nregistrrii respective sau sa apas butonul No
dac se dorete revenirea asupra operaiei de tergere.
Sintaxa simplificat a comenzii SQL n limbajul standard care modific liniile dintr-o tabel
este urmtoarea:
Efectul acestei comenzi este de actualizare a toturor liniilor care ndeplinesc condiia din
clauza WHERE, sau a tuturor liniilor din tabel, n cazul n care lipsete aceast clauz. Noile
valor sunt date de clauza SET.
Exemplu:
Tabela StudPers
dup:
I
StudPe
rsonal :
Table
333333 Vasilescu Rodica 12/09/1999 Braov
444444 Alecu Petre 13/08/1943 Bacu
555555
Gabriel
Record: H | < |
7 jJ JJ
_h m
Record: 1 >IH
n | | |~ of 5
Tabela Studenti
dup:
Modificarea datelor dintr-un tabel n modul grafic se face astfel: ne poziionm n obiectul Tables, unde sunt afiate
toate tabelele din baza de date, apsm clic dreapta de la mouse pe tabelul dorit pentru modificare i facem opiunea
Open. Va aprea o fereastr cu datele deja existente n tabel. Se vor face modificrile asupra datelor dorite i apoi se
salveaz tabelul.
Teste de autoevaluare
Regsirea datelor din una sau mai multe tabele se face cu comanda SELECT. Sintaxa
simplificat a acesteia este:
Dup cum se observ doar clauzele SELECT i FROM sunt obligatorii, celelalte
reprezentnd opiuni.
Cea mai simpl cerere este cea prin care se regsesc toate informaiile dintr-o tabel. n
acest caz, simbolul * plasat lng clauza SELECT ine loc de lista tuturor coloanelor unei tabele.
Clauza FROM conine numele tabelei.
Exemplu:
Vom exemplifica realizarea unei interogri n Design View, acest lucru fiind posibil
apsnd dublu clic pe opiunea
Create query in Design view
Va aprea o fereastr n care sunt afiate toate tabelele din baza de date.
Vom alege acele tabele necesare pentru interogare. De exemplu, vom realiza o interogare
care dup rulare mi va afia toate nregistrrile din tabela Facultate. Vom alege tabela Facultate
i n partea de jos alegem ce cmpuri doresc s fie afiate dup rularea interogrii.
astfe
l:
1 Query 1 : Select Query^jnjx|
CodFacDenumireAdresaNumeDecannfl
ElectrotehnicaNoul Local2 EnergeticaNoul
Local3AutomaticaNoul LocalDumitru
Popescu4ElectronicaLeu5AeronavePolizu6Mecanica
Noul Local7TransporturiNoul Local8IdRecord: H1
II l
Pentru rularea efectiv a interogrii se apas butonul Run Rezultatele obinute n urma rulrii vor aprea ntr-o fereastr
Pentru orice tip de interogare paii care trebuie urmai de utilizatori sunt aceeai. Cei prezentai mai sus.
n cazul n care se doresc regsite doar o parte a coloanelor unei tabele acestea sunt enumerate n clauza
SELECT.
Exemplu:
Selectarea anului i a mediei din tabela Studenti. select An, Media from Studenti;
n clauza SELECT pot fi prezente, pe lng nume de coloane, o serie de alte construcii,
cum ar fi:
a. Expresii aritmetice
Operatorii care pot fi utilizai sunt cei uzuali: +,-,*,/ paranteze. De remarcat c o expresie
care conine o valoare nul se evalueaz la NULL.
Exemplu:
nvmntul Rural 81
Un limbaj pentru baze de date relaionale
b. Alias de colan
n cazul n care clauza SELECT conine expresii, numele coloanelor din rezultat sunt date de acestea. Dac se
dorete ca n rezultat coloana respectiv s aib alt nume, acesta se poate specifica cu AS nume_nou.
Exemplu:
Afiarea numelui studentului cu denumirea Nume_Student, a prenumelui cu denumirea Prenume_Student din tabela
StudPersonal.
Record: H 1 II 1 I H of 6
select CNP, nume as 'Nume Student', prenume as 'Prenume Student' from StudPersonal;
c. Constante (literali)
Dac n lista SELECT se gsesc i constante atunci pe acele coloane toate liniile rezultatului vor conine valorile
respective:
Exemplu:
Selectarea numelui studentului, textul 'este nscut la data de' i DataNasterii din tabela StudPersonal.
nvmntul Rural 81
Un limbaj pentru baze de date relaionale
n cazul cererilor de pn acum din fiecare linie a tabelei rezult o linie a rezultatului, chiar dac uneori unele linii
sunt identice, ca n cazul urmtor:
Exemplu:
Afiarea codului numeric al facultii pentru care exist studeni n tabela Studenti;
Pentru a elimina liniile duplicat ale unui rezultat se folosete clauza DISTINCT care apare ntre cuvntul cheie
SELECT i lista de elemente ale rezultatului.
Qu -Inlxi
er
CodFac 1
D
3
Record: H 1 < 11
4.6.3. Clauza ORDER BY
Ordinea n care apar liniile unui rezultat este dat de modul n care un sistem de gestiune
stocheaz i regsete informaia n tabele. Din aceast cauz n limbajul SQL exist posibilitatea
de a sorta liniile unui rezultat n funcie de necesitile utilizatorului.
Criteriile de sortare se definesc cu ajutorul clauzei ORDER BY. Aceasta este n mod normal
ultima clauz care apare ntr-o cerere i poate conine nume de coloane, aliasuri de coloane sau
numrul de ordine al coloanei n rezultat. Cnd sunt specificate mai multe criterii ele se aplic de
la stnga la dreapta.
Exemplu:
Afiarea CNP, nume, prenume, data naterii din tabela StudPersonal ordonai dup nume i
prenume.
nvmntul Rural 81
Un limbaj pentru baze de date relaionale
select CNP, Nume, Prenume, DataNasterii from StudPersonal order by nume, prenume;
Dup cum se poate observa ordinea de sortare implicit este cea ascendent (cresctoare):
Pentru date calendaristice - de la cea mai veche dat la cea mai nou
Inversarea ordinii implicite se poate face pentru fiecare criteriu de sortare n parte folosind cuvntul cheie DESC
(descendent) plasat dup criteriul respectiv.
O problem important este tratarea valorilor nule (NULL) de clauza ORDER BY. Aceste valori
sunt considerate a fi mai mici dect orice alt valoare, deci vor apare primele pentru sortarea
implicit i ultimele pentru sortarea descendent.
Exemplu:
Afiarea n ordine ascendent a rezultatului dup valoarea bursei i o sortare descendent dup codul studentului n
tabela Studeni.
1 0
Pn acum, n afara cazurilor n care se utilizeaz DISTINCT, din fiecare linie a tabelei rezult o linie a rezultatului.
Prin folosirea clauzei WHERE se poate specifica o condiie care indic liniile din tabela care vor avea asociat cte o linie
din rezultat.
Exemplu:
Afiarea media i valoarea bursei pentru studenii de la facultatea cu codul 3 din tabela Studenti.
nvmntul Rural 81
Un limbaj pentru baze de date relaionale
Afiarea codului facultii, media, grupa, anul i valoarea bursei pentru studenii care au bursa egal cu 4400000 i media
mai mare sau egal cu 9 sau sunt la facultatea cu codul 3.
select CodFac, Media, Grupa, An, Bursa from Studenti where (Bursa=4400000 and media>=9) or CodFac=3;
Pe lng operatorii de mai sus care sunt prezeni n majoritatea limbajelor de programare exist ns n SQL patru
operatori specifici. Acetia au fost introdui pentru a simplifica anumite categorii de cereri sau pentru a specifica
condiionri care nu pot fi exprimate prin operatori obinuii.
a. Operatorul BETWEEN
Operatorul between indic o plaj de valori incluznd valorile din capetele acestuia, cele indicate. Este un operator
derivat, astfel de condiii putnd fi scrise folosind >=, AND,<= i a fost introdus pentru ca cererile s fie mai apropiate de
exprimarea n limba englez.
nvmntul Rural 81
Un limbaj pentru baze de date relaionale
Exemplu:
Afiarea codului facultii, media, grupa pentru studenii care au media cuprins ntre 8 i 9 inclusiv.
select CodFac, Media, Grupa from Studenti where media between 8 and 9;
b. Operatorul IN
Sintaxa: IN (v1,v2,...vk)
Operatorul IN indic apartenena la o mulime de valori (v1,v2,...vk). Este de asemenea un operator derivat, dar
este foarte util pentru simplificarea scrierii cererilor n cazul n care mulimea conine un numr mare de valori.
Exemplu:
Afiarea codului facultii, codul studentului, grupa, bursa pentru studenii care au codul facultaii 1 sau 3.
select CodFac, CodStud, Grupa, Bursa from Studenti where CodFac in (1,3);
Operatorul IS NULL
c.
Operatorul IS NULL a fost introdus pentru a se putea testa dac o valoare a unei expresii este nul, deoarece
valorile nule nu pot fi detectate cu operatori de comparaie obinuii.
Exemplu:
Afiarea codului facultii, codul studentului, grupa pentru studenii care nu au bursa.
Pentru negarea acestui operator s-a fcut fcut i o excepie de la sintaxa standard a expresiilor. Astfel n loc de
"not is null", sintaxa SQL prevede forma IS NOT NULL.
Exemplu:
Afiarea codului facultii, codul studentului, grupa pentru studenii care au bursa.
select CodFac, CodStud, Grupa from Studenti where bursa is not null;
Operatorul LIKE a fost introdus pentru a se putea testa potrivirea valorii unei expresii cu un ablon. ablonul poate
conine caractere care vor fi cutate aa cum sunt i caracterele speciale:
% nsemnnd orice ir de caractere (inclusiv unul vid)
_ nsemnnd orice caracter
De exemplu 'I_S%L' este un ablon pentru un ir de cel puin 4 caractere care ncepe cu litera I, are al treilea caracter S i
ultimul caracter este L. Cu acest ablon se potrivesc de exemplu irurile: INSTABIL, IXSTL, IOSL.
Operatorul se poate folosi inclusiv pentru expresii de alt tip dect irurile de caractere, valoarea acestora fiind nti
convertit la ir de caractere i apoi verificat potrivirea cu ablonul.
Exemplu:
select CodStud, Nume, Prenume, DataNasterii from StudPersonal where Prenume like 'A%';
Exist multe cazuri n care se dorete obinerea de date statistice din informaiile coninute n baza de date. Pentru
aceasta se folosesc funciile de grup, care pe baza nregistrrilor din ntreaga tabel sau a celor care fac parte dintr-un
grup - n cazul existenei clauzei GROUP BY - calculeaz valoarea statistic respectiv.
COUNT(*) ntoarce numrul de nregistrri din grup COUNT(expr) ntoarce numrul de valori nenule pentru expresia
argument
COUNT(DISTINCT expr) ntoarce numrul de valori distincte pentru expresia argument
Funciile Min i MAX se pot aplica i irurilor de caractere, n acest caz se folosete ordinea
lexicografic.
SUM(expr) ntoarce suma valorilor unei expresii sau NULL n cazul n care n grupul pentru care
se calculeaz suma este vid. Valorile nule nu sunt luate n considerare la calcularea sumei.
Exemplu:
Afiarea valorii minime, maxime i media pe coloana media, suma pe coloana bursa i numrul de nregistrri din tabela
Studenti.
Exemplu:
Clauza GROUP BY se folosete pentru a grupa nregistrrile pe baza unor criterii n scopul
calculrii de valori statistice pentru fiecare grup n parte. n acest caz rezultatul cererii va conine
cte o linie pentru fiecare grup identificat.
Afiarea grupat a nregistrrilor din tabela Studenti dup valoarea coloanei bursa i obinerea unui rezultat coninnd
valoarea bursei, numrul de studeni avnd acea burs i suma burselor din fiecare grup.
n cazul n care n GROUP BY apar mai multe coloane, un grup va fi construit din toate nregistrrile care au valori
comune pe toate coloanele specificate.
Exemplu:
Atenie: n cazul folosirii funciilor de grup n clauza SELECT nu pot apare alturi de
acestea dect valori care sunt constante pentru fiecare grup n parte- n principal numele
coloanelor dup care s-a fcut gruparea.
Dac WHERE introduce o condiie de filtrare a nregistrrilor, HAVING face acelai lucru
pentru grupuri: doar grupurile care ndeplinesc condiia coninut n aceast clauz vor avea o
linie n rezultatul cererii.
Condiia specificat prin HAVING este o expresie logic incluznd funcii de grup sau
constante la nivel de grup.
Exemplu:
O cerere n dou variante: fr i apoi cu o clauz HAVING care elimin o parte din grupuri.
select CodFac, count(*) as NumarStudenti, avg(Media) as MediaFacultatii from Studenti group by CodFac;
select CodFac, count(*) as NumarStudenti, avg(Media) as MediaFacultatii from Studenti group by CodFac having
avg(Media)>8;
Operaia prin care se obine un rezultat pe baza datelor din mai multe tabele se numete
JOIN. Pentru a se putea efectua un JOIN este n general necesar ca tabelele s aib coloane
comune, cum este cazul CodFac care se gsete att n tabela Studenti, ct i n tabela
Facultate.
n cazul n care clauza FROM sunt specificate mai multe tabele toate celelalte clauze sunt
evaluate pornind de la produsul cartezian al tabelelor. Acesta este obinut (teoretic) prin
concatenarea fiecrei linii a unei tabele cu fiecare dintre liniile celorlalte tabele.
De exemplu, n tabelele de mai sus, produsul cartezian va conine 7X7=49 lini, deoarece
sunt 7 linii n tabela Studenti i 7 linii n tabela Facultate.
Pentru eliminarea liniilor inconsistente - cum este concatenarea nregistrrii unui student al
facultii 1 cu nregistrrea facultii 2 - este necesar ca n clauza WHERE s existe aa-numita
condiie de join. n cazul existenei de coloane comune ntre tabele, aceasta este o condiie de
egalitate a valorilor acelor coloane.
Exemplu:
1. Afiarea numelui i prenumelui studentului (din tabela StudPers) i a grupei din care face parte, anul i media
(informaii aflate n tabela Studenti).
select Nume,Prenume,Grupa,An,Media
from Studenti,StudPersonal
where Studenti.CodStud=StudPersonal.CodStud;
2. Afiarea numelui facultii (din tabela Facultate), a numelui i a prenumelui studentului (din
tabela StudPers) i a grupei din care face parte, anul i media (informaii aflate n tabela Studenti).
select Denumire,Nume,Prenume,Grupa,An,Media
from Facultate,Studenti,StudPersonal
where Studenti.CodStud=StudPersonal.CodStud and
Facultate.CodFac=Studenti.CodFac;
2. Afiarea numelui facultii (din tabela Facultate), numelui i prenumelui studentului (din tabela
StudPers) i a grupei din care face parte, anul i media (informaii aflate n tabela Studenti)
grupate pe faculti.
F, S, P sunt aliaii tabelelor (nu este obligatorie folosirea cuvntului cheie as). Folosirea numelui
de tabel sau a aliasului ca prefix pentru un nume de coloan este obligatorie doar n cazul n
care pot aprea confuzii.(coloane cu acelai nume n mai multe tabele), dar nu va fi semnalat
eroare dac se folosesc i pentru celelalte coloane.
3. Afiarea numelui studenilor care au nota la materia cu numele Analiz.
S Analiza
S| Analiza Vasilescu
Record: H 1 II i 1 H !*! of 2 1
Pentru acest exemplu vom utiliza i modul grafic care va genera rezultatul de mai sus.
Pasul 1:
Pasul 2:
Apsm dublu clic pe opiunea Create query in Design view i se va deschide fereastra care
conine toate tabelele din baza noastr de date:
Pasul 3:
Alegem tabelele care ne sunt necesare pentru interogare. n cazul nostru StudPersonal, Materii i
Note, apsnd pe rnd butonul
Add.
Pasul 4:
Se aleg pentru fiecare tabel cmpurile care trebuie afiate i se seteaz un criteriu dac acesta
exist.
Nume Denumire
Nota 1
fiT? Analiza 7
Vasilescu Analiza
Record: H 1 11 1 !*!
2
of
2. Creai tabelele din baza de date Companie. Structura bazei de date Companie este cea proiectat n capitolul anterior.
1. Creai n baza de date Universitate o tabel suplimetar numit Test cu un cmp numit testare cu tipul de date text (n
modul grafic).
2. Modificai structura tabelei Test adugnd un cmp numit Nou cu tipul de date asociat Integer (n modul grafic).
Introducei date n tabelele din baza de date Companie, folosind modul grafic, dar i modul SQL view.
1. tergei din baza de date Universitate materia care este predat de profesorul M.Olteanu.
2. tergei din baza de date Universitate toi studenii care s-au nscut n oraul Constana.
3. tergei dintr-un tabel al bazei de date Companie, 2
nregistrri, dup un criteriu ales de Dvs.
1. Afiai notele i data efecturii testrii pentru toate nregistrrile din tabela Note.
2. Afiai numele facultii i adresa din tabela Facultati folosind aliaii de coloan 'Nume
facultate' i 'Adres facultate'.
3. Afiai cmpurile nume facultate, nume decan i ntre acestea textul 'are decanul' din
tabela Facultate.
ntrebarea 2.
Operatorii din algebra relaionl sunt AND, OR, XOR, =, A IS NULL, IS NOT NULL. n limbajul standard SQL mai exist i
sunt folosii i ali operatori ca: BETWEEN, IN etc.
ntrebarea 3.
Termenul SQL reprezint o prescurtare a Structured Query Language. El a fost utilizat iniial de ctre firma IBM
pentru produsul DB2, limbajul de interogare al bazelor de date relaionale SQL a devenit la mijlocul deceniului trecut un
standard n domeniu.
ntrebarea 4.
Operaii de baz care se pot efectua n cadrul unei baze de date sunt:
Crearea/tergerea unei tabele
Inserarea de noi linii intr-o tabel
tergerea unor linii dintr-o tabel
Modificarea unor linii dintr-o tabel
Listarea selectiv a datelor din una sau mai multe tabele
Problemele propuse n lucrrile de verificare se fac dup modelele de exemple prezentate n unitatea de nvare sau
dup tipicul acestora.
Bibliografie:
Cuprins Pagina
Bibliografie 114
nc de la nceput doresc s v felicit pentru parcurgerea cu succes a primelor patru uniti de
nvare i s v urez bun venit la studiul acestei noi uniti de nvare. n primele patru uniti de
nvare am realizat o scurt introducere n acest amplu domeniu al bazelor de date, am descris mai
n detaliu ce este un sistem de baze de date i n ce const el, am studiat i cum se creaz,
analizeaz i se proiecteaz corect o baz de date, dar am studiat i cum se gestioneaz datele
stocate n baza de date.
n aceast unitate de nvare nr. 5 vom studia cum se creaz, se manipuleaz i se terge un
formular pentru introducerea datelor n baza de date.
Dup studiul unitii de nvare nr. 5 vei fi capabil s demonstrezi c ai dobndit cunotine suficiente pentru a nelege:
ce este un formular
cum se utilizeaz un formular pentru introducerea datelor ntr-o tabel i pentru modificarea datelor ntr-o tabel
Dac exist deja creat un formular, acesta se poate deschide prin apsarea dublu clic pe respectivul formular din
obiectul Forms. Toate formularele create ntr-o baz de date se vor gsi n obiectul Forms.
Pentru a crea un formular nou vom alege obiectul Forms din fereastra Database i se apeleaz meniul Insert cu
opiunea Forms. Va aprea o fereastr cu mai multe tipuri de programe wizard pentru formulare:
Exemplu:
Vom exemplifica crearea unui formular nou pentru introducerea datelor n tabela Facultate, folosind opiunea
Create by using wizard, urmnd paii necesari pentru a crea formularul dorit.
Pas 1:
Se alege tabela creia dorii s i creai formularul i se apas butonul Next.
Pas
2:
n aceast etap se alege modul n care s fie afiate atributele n formular i se apas Next
Pas 3:
n aceast etap se pot alege din stilurile predefinite, stilul pe care l dorii s l conin formularul.
Pas 4:
Aceasta este etapa final, n care v alagei numele dorit penrtu formular i dac dorii s
introducei date n tabel cu ajutorul formularului.
CodFac
Denumire Electrotehnica
^- ^
Noul Local
Adresa
=^
NumeDecan
i | M k*l of 7
Pentru a introduce date n tabel cu ajutorul formularului trebuie apsat butonul k*l . Acesta ne va poziiona pe o
nou nregistrare i vom putea introduce noile date. Ne vom poziiona cu cursorul n cmpurile de editare i vom introduce
datele corespunztoare noii nregistrri.
Pentru a modifica date n tabel cu ajutorul formularului trebuie s ne poziionm pe nregistrarea dorit cu ajutorul
mouse-ului i apoi se modific datele dorite.
Exemplu:
De exemplu, dorim ca la nregistrarea de mai sus s completm numele decanului. Pentru aceasta ne poziionm
pe respectiva nregistrare i apoi n dreptul atributului NumeDecan introducem numele dorit. Dup realizarea modificrilor,
prin nchiderea formularului, modificrile vor fi actualizate n tabel.
Cu ajutorul formularelor putem parcurge toate nregistrrile unei tabele. Acest lucru l
putem realiza cu ajutorul butoanelor existente n partea de jos a formularului.
Record: H | J| T J_|_H_Li*L of 7
Pentru a putea face modificri n cadrul unui formular, mai exact dac dorim adugarea
unui text sau a unei imagini n antetul sau subsolului unui formular este necesar s deschidem
formularul n modul Design al formularului apsnd butonul
sau fcnd opiunea Design View, care apare la apsarea clic dreapta pe respectivul
formular.
Exemplu:
De exemplu, dorim s scriem n antet "Formular pentru introducerea datelor ". Pentru asta va trebui s facem loc n
partea antetului csuei de text, trgnd efectiv cu mouse-ul antetul i apoi n spaiul creat introducem textul dorit. Pentru
a introduce un
text trebuie apsat butonul i. de pe bara de instrumente. Dup apsarea acestui buton selectai locul unde dorim
poziionarea textului i apoi vom introduce textul.
Dup introducerea textului se salveaz forma pentru a vedea modificrile fcute asupra ei.
Forma final a formularului este:
Facultate
CodFac
Denumire lElectrotehnica
NumeDecan
Record: M | 11 T |H of 7
Putem terge un formular prin mai multe metode. Primul pas pentru orice metod este
selectarea formularului dorit pentru tergere i apoi fie apsam butonul Delete din tastatur, fie
apsnd butonul * existent n parte de sus a ferestrei, fie apsnd clic dreapta i fcnd opiunea
Delete.
Pe ecran va aprea o caset de dialog n care se cere confirmarea tergerii formularului.
1. Creai un formular pentru introducerea datelor personale despre studeni pentru baza de date Universitate cu titlul
Date personale studeni" i salvai-l cu numele Personal.
3. Modificai o nregistrare care deja exist n tabela StudPersonal cu ajutorul formularului creat la exerciiul 1 i apoi
nchidei formularul.
Teste de autoevaluare
1. Ce este un formular?
ntrebarea 1.
Formularele (Forms) reprezint ferestrele primare folosite pentru introducerea i afiarea datelor n Access.
ntrebarea 2.
Operaiile care se pot efectua asupra unor formulare sunt de creare, de modificare, de salvare i de tergere.
ntrebarea 3.
Rspunsul la aceast ntrebare este mai amplu i este descris cu amnuntul la nceputul acestui capitol.
Problemele propuse sunt aezate dup un exemplu. Fiecare problem propus se face dup modelul de exemplu
prezentat naintea ei sau dup tipicul acesteia.
Bibliografie:
Cuprins Pagina
Biblliografie 127
nc de la nceput doresc s v felicit pentru parcurgerea cu succes a primelor cinci uniti de
nvare i s v urez bun venit la studiul acestei noi uniti de nvare. n primele cinci uniti de
nvare am realizat o scurt introducere n acest amplu domeniu al bazelor de date, am descris mai
n detaliu ce este un sistem de baze de date i n ce const el, am nvat i cum se creaz,
analizeaz i se proiecteaz corect o baz de date, dar am studiat i cum se gestioneaz datele
stocate n baza de date. n unitatea de nvare anterioar am nvat cum se creaz, se manipuleaz
i se terge un formular pentru introducerea datelor n baza de date.
n aceast unitate de nvare vom studia ce sunt rapoartele, cum se creaz i cum se
manipuleaz ele.
Dup studiul unitii de nvare nr. 6 vei fi capabil s demonstrezi c ai dobndit cunotine suficiente pentru a nelege:
n timp ce formularul este proiectat pentru lucrul pe ecran (dei i el poate fi tiprit), raportul
este proiectat n primul rnd pentru tiprire ( cu toate c i el poate fi afiat pe ecran).
Un raport trebuie creat pentru orice intenionm s tiprim cu regularitate, fie c este vorba
de un listing simplu, o list de etichete potale, o colecie de grafice sau un rezumat sau o analiz
financiar complex. Raportul ne ofer de asemenea posibilitatea prelucrrii datelor n scopul
obinerii unor rezultate sintetice: totaluri, subtotaluri etc. Datele pot fi grupate pe un numr de
pn la zece niveluri diferite, fiecare cu propriile sale informaii sintetice.
Dac exist deja creat un raport, acesta se poate deschide prin apsarea dublu clic pe
respectivul raport din obiectul Reports. Toate rapoartele create ntr-o baz de date se vor gsi n
obiectul Reports.
Pentru a crea un raport nou vom alege obiectul Reports din fereastra Database i se
apas dublu clic pe opiunea
l &eatlreport.b^usir"3Wi2andl pentru crearea de rapoarte cu ajutorul Wizard-ului. Va trebui s parcurgem
paii necesari pentru a crea raportul dorit.
Exemplu:
Vom exemplifica crearea unui raport nou pentru afiarea datelor n tabela Facultate, folosind opiunea Create
report by using wizard, urmnd paii necesari pentru a crea raportul dorit.
Pas 1:
Se alege tabela (sau tabelele) cre conine cmpurile care trebuie s fie coninute n raport i se apas Next. Mai
exact, putem crea un raport care s conin numai anumite cmpuri dintr-o tabel i alte cmpuri din alte tabele, acest
lucru fcndu-se alegnd tabela corespunztoare i selectnd cmpurile dorite. Selectarea cmpurilor dintr-o tabel
se face astfel: se
poziioneaz pe respectivul cmp i se apas butonul >_! Dac dorim ca toate cmpurile dintr-o tabel s apar n raport
se
apas butonul -^J. Pentru deselectrarea cmpurilor ne
poziionm pe cmpul respectiv i se apas butonul sJ, iar
pentru desectarea tututror cmpurilor se apas butonul I^H
Observaie: Pentru a putea genera rapoarte cu date din mai multe tabele, trebuie nainte create relaiile ntre tabele.
Pentru a crea aceste relaii dintre tabele se face opiunea Tools din meniu i se alege Relations. Va aprea o
fereastr pentru alegerea tabelelor ntre care dorim crearea de relaii.
Pentru a crea relaii ntre toate tabelele ne poziionm pe fiecare dintre ele i apsm
butonul Add. Va aprea o fereastr n care sunt afiate toate tabelele ntre care vom crea relaii
(pe care le-am ales noi din lista de tabele existente n baza de date).
Pentru a crea efectiv relaiile, se poziionm pe un cmp al unei tabele i inem clicul de la
mouse apsat pn la cmpul corespunztor relaiei. Va aprea o fereastr pentru confirmarea
crerii relaiei.
Dup ce au fost create toate relaiilor, structura bazei de date ca arta astfel:
Pas2:
n aceast etap se alege modul n care vor fi afiate atributele n raport i se apas Next.
Pas3:
La acest pas se pot grupa rezultatele care vor fi afiate n raport dup anumite cmpuri
folosind sgeile i apoi se apas
Next.
Pasul 7:
Pasul 8:
Pentru a aduga un text sau o imagine n antetul sau subsolului unui raport este necesar
s deschidem raportul n
modul Design al raportului apsnd butonul ^- esign Sau fcnd opiunea Design View, care apare la
apsarea clic dreapta pe respectivul formular.
De exemplu, dorim s scriem n antet "Antet pentru raport ". Pentru asta va trebui s facem
loc n partea antetului csuei de text, tragnd efectiv cu mouse-ul antetul i apoi n spaiul creat
introducem textul dorit. Pentru a introduce un text trebuie apsat
butonul ^ de pe bara de instrumente. Dup apsarea acestui buton selectai locul unde dorim
poziionarea textului i apoi vom introduce textul.
Asemntor se poate modifica i subsolul raportului, sau putem introduce imagini n rapoarte
cu ajutorul comenzii Insert-Picture.
6.2.4. tergerea unui raport
Putem terge un raport prin mai multe metode. Primul pas pentru orice metod este
selectarea rapoertului dorit pentru tergere i apoi fie apsam butonul Delete din tastatur, fie
apsnd butonul e
apsnd clic dreapta i fcnd opiunea Delete.
Apsnd butonul Yes se confirm tergerea raportului, iar apsnd No se renun la operaia de tergere.
Pentru nchiderea raportului sau se apas butonul *\ din partea dreapt a ecranului sau
fcnd opiunea Close din meniu.
2. Creai un raport care s conin urmtoarele informaii: nume studentului, denumirea materiei la care a susinut
examen, nota obinut la acea testare i data testrii.
3. Modificai structura raportului de la exerciiul 2, mai exact introducei n antet titlul: Informaii despre
promovabilitatea studenilor.
Teste de autoevaluare
ntrebarea 1.
Diferenele dintre un formular i un raport sunt majore: n timp ce formularul este proiectat pentru
lucrul pe ecran (dei i el poate fi tiprit), raportul este proiectat n primul rnd pentru tiprire (cu
toate c i el poate fi afiat pe ecran), iar o diferen important ar fi aceea c formularul este
proiectat pentru acces la date (deci el poate modifica date), pe cnd un raport nu modific date, ci
doar le afi eaz pe ecran.
ntrebarea 2.
Da.
ntrebarea 3.
Da.
Problemele propuse sunt aezate dup un exemplu i se fac dup modelul de exemplu prezentat
naintea lor.
Bibliografie: