Post on 04-Apr-2018
7/30/2019 Baze de date 2
1/231
1 Baze de date
UNIVERSITATEA TEHNIC DE CONSTRUCII
BUCURETI
BAZELE INFORMATICII
SI
LIMBAJE DE PROGRAMARE
2
BAZE DE DATE RELAIONALE
Romic TRANDAFIR
Mihai NISTORESCU Ion MIERLU-MAZILU
Bucureti
2007
7/30/2019 Baze de date 2
2/231
2007 Cu rins 2
Cuprins
Cuprins................................................................................................................................................11. Bnci i baze de date ......................................................................................................................5
1.1. Noiuni generale ....................................................................................................................51.2. Sisteme de baze de date .........................................................................................................61.3. Organizarea datelor ntr-o baz de date.................................................................................71.4. Modelarea la nivel logic a datelor ntr-o baz de date...........................................................81.5. Sistem de gestiune a bazelor de date ...................................................................................10
1.5.1. Interfee SGBD ..........................................................................................................111.5.2. Funcii i servicii oferite de un SGBD.......................................................................121.5.3. Activitile asigurate de SGBD..................................................................................141.5.4. Obiectivele unui SGBD .............................................................................................15
2. Etapelede realizare a unei bnci de date...................................................................................172.1. Etapa de analiz ...................................................................................................................17
2.2. Etapa de programare............................................................................................................172.3. Punerea n funciune i exploatarea bazei de date ...............................................................182.4. Documentaia aplicaiei.......................................................................................................19
3. Sisteme de gestiune a bazelor de date relaionale .....................................................................203.1. Modelul relaional al datelor ...............................................................................................20
3.1.1. Structura relaional a datelor ....................................................................................203.1.2. Operaii n algebra relaional....................................................................................213.1.3. Optimizarea cererilor de date.....................................................................................283.1.4. Baze de date relaionale.............................................................................................303.1.5. Tipuri de relaii ..........................................................................................................313.1.6. Restricia de cardinalitate...........................................................................................33
3.2. Regulile lui Codd.................................................................................................................343.3. Normalizarea datelor ...........................................................................................................373.4. Cerinele minimale de definire a SGBDR...........................................................................37
4. Componentele funcionale ale sistemului Visual FoxPro.........................................................394.1. Programarea orientat pe obiecte ........................................................................................394.2. Ierarhia claselor n Visual FoxPro .......................................................................................444.2. Arhitectura VFP 6.0.............................................................................................................454.3. Moduri de lucru n VFP.......................................................................................................46
4.3.1. Modul de lucru meniu sistem.....................................................................................474.3.2. Modul de lucru prin comenzi.....................................................................................52
5. Organizarea datelor nVisual FoxPro ........................................................................................535.1. Manipularea bazei de date i a tabelelor n VFP.................................................................535.1.1. Crearea bazei de date .................................................................................................535.1.2. Crearea tabelelor........................................................................................................545.1.3. Validarea cmpurilor unei nregistrri la introducere................................................55
5.2. Deschiderea bazei de date/tabelei........................................................................................615.3. Consultarea i modificarea bazei de date/tabelei.................................................................62
5.3.1. Modificarea structurii de date a tabelelor n modul asistat ........................................625.3.2. Deplasri n tabel. Cutri secveniale.....................................................................64
5.4. nchiderea bazei de date/tabelei...........................................................................................656. Utilizarea asistentului Wizard n VFP .......................................................................................67
6.1. Table Wizard .......................................................................................................................676.2. Form Wizard........................................................................................................................686.3. Report Wizard .....................................................................................................................69
7/30/2019 Baze de date 2
3/231
3 Baze de date
6.4. Label Wizard .......................................................................................................................706.5. Query Wizard ......................................................................................................................706.6. Mail Merge Wizard .............................................................................................................726.7. Editorul de texte n VFP 6.0 ................................................................................................73
6.7.1. Lansarea editorului ....................................................................................................736.7.2. Lucrul cu blocul de linii din fiier .............................................................................737. Elemente ale limbajului propriu Visual FoxPro 6.0 .................................................................74
7.1. Simboluri .............................................................................................................................747.2. Variabile de sistem ..............................................................................................................747.3. Comentariul .........................................................................................................................747.4. Tipuri de date, operaii i funcii .........................................................................................74
7.4.1. Date de tip numeric. Funcii aritmetice i financiare.................................................777.4.2. Aplicaii ale funciilor financiare...............................................................................787.4.3. Date i funcii de tip caracter .....................................................................................817.4.4. Date i funcii de tip calendaristic..............................................................................83
7.4.5. Date de tip memo.......................................................................................................847.5. Variabile i masive ..............................................................................................................84
7.5.1. Variabile.....................................................................................................................847.5.2. Macrosubstituia.........................................................................................................857.5.3. Masive de date ...........................................................................................................86
7.6. Funcii de prelucrare a masivelor ........................................................................................878. Accesul i actualizarea datelor....................................................................................................92
8.1. Manipularea structurii unei tabele .......................................................................................928.2. Ordonarea datelor ................................................................................................................938.3. Accesul la date.....................................................................................................................988.4. Actualizarea datelor...........................................................................................................103
8.4.1. Adgarea de noi nregistrri.....................................................................................1038.4.2. Modificarea nregistrrilor.......................................................................................1068.4.3. tergerea nregistrrilor ...........................................................................................1108.4.5. Relaii ntre tabele ....................................................................................................113
9. Programarea procedural .........................................................................................................1209.1. Programarea structurat.....................................................................................................120
9.1.1. Structura liniar........................................................................................................1219.1.2. Structura alternativ .................................................................................................1249.1.3. Structura repetitiv...................................................................................................126
9.2. Modularizarea programelor ...............................................................................................129
9.2.1. Proceduri..................................................................................................................1309.2.2. Funcii ......................................................................................................................13110. Comenzi ale nucleului SQL.....................................................................................................13511. Proiectarea meniurilor i a barelor de instrumente .............................................................14612. Aplicaii .....................................................................................................................................147
12.1. Evidena rezultatelor activitii studenilor ntr-o facultate.............................................14712.1.1. Formularea i analiza problemei............................................................................14712.1.2. Crearea, actualizarea, modificarea i interogarea tabelelor ...................................14912.1.3. Crearea structurii unui fiier ..................................................................................15012.1.4. Adresarea prin macrosubstituie ............................................................................15112.1.5. Crearea unui meniu ................................................................................................151
12.2. Gestionarea unei magazii ................................................................................................15312.2.1. Proiectarea i realizarea aplicaiei..........................................................................15312.2.2. Realizarea documentaiei i a aplicaiei n format executabil................................220
7/30/2019 Baze de date 2
4/231
2007 Cu rins 4
12.2.3. Utilizarea Setup Wizard.........................................................................................225A. Anexa..........................................................................................................................................227Index de termeni.............................................................................................................................229Bibliografie .....................................................................................................................................231
7/30/2019 Baze de date 2
5/231
5 Baze de date
1. Bnci i baze de date
1.1. Noiuni generale
O baz de date reprezint un ansamblu de date integrat, anume structurat i dotat cu o descriere
a acestei structuri. Descrierea structurii poart numele de dicionar de date sau metadatei creaz o
interdependen ntre datele propriu-zise i programe.
Baza de date poate fi privit ca o colecie de fiiere interconectate care conin nucleul de date
necesare unui sistem informatic. Astfel, poate fi considerat drept un model al unor aspecte ale
realitii unei uniti economice, modelat prin intermediul datelor. Diferitele obiecte din cadrul
realitii, ce prezint interes, sunt denumite clase sau entiti. Pentru aceste obiecte sunt
achiziionate i memorate date referitoare la diferite caracteristici (atribute). Baza de date se
constituie ca un ansamblu intercorelat de colecii de date, prin care se realizeaz reprezentarea unei
realiti.
Datele constituie orice mesaj primit de un receptor, sub o anumit form.
Informaiile reprezint cantitatea de noutate adus de un mesaj din exterior (realitate).
Unfiiereste un ansamblu de nregistrri fizice, omogene din punct de vedere al coninutului
i al prelucrrii.
O nregistrare fizic este o unitate de transfer ntre memoria intern i cea extern a
calculatorului.
O nregistrare logiceste unitatea de prelucrare din punct de vedere al programului utilizator.
O nregistrare se compune din cmpuri (atribute) care descriu anumite aspecte ale realitii.
Cmpurile sunt nregistrri logice.
O baz de date trebuie s asigure:
abstractizarea datelor(baza de date fiind un model al realitii),
7/30/2019 Baze de date 2
6/231
1. Bnci i baze de date 6
integrarea datelor(baza de date este un ansamblu de colecii de date intercorelate, cu
redundan controlat),
integritatea datelor (se refer la corectitudinea datelor ncrcate i manipulate astfel
nct s se respecte restriciile de integritate),
securitatea datelor(limitarea accesului la baza de date),
partajarea datelor (datele pot fi accesate de mai muli utilizatori, eventual n acelai
timp),
independena datelor (organizarea datelor s fie transparent pentru utilizatori,
modificrile n baza de date s nu afecteze programele de aplicaii).
1.2. Sisteme de baze de date
Sistemele de baze de date, sau bncile de date, reprezint un sistem de organizare i prelucrare,
respectiv teleprelucrare (prelucrare la distan) a informaiei, constituit din urmtoarele trei
elemente:
creare bazade date
colecie de date aflate n interdependen
descrierea datelori a relaiilor dintre ele
un sistem de programe care asigur exploatarea bazei de date (actualizare, interogare).Arhitectura sistemului de baze de date este format din urmtoarele componente (Figura 1):
baza/bazele de date reprezint componenta de tip date a sistemului (coleciile de date
propriu-zise, indecii);
sistemul de gestiune a bazei/bazelor de date ansamblul de programe prin care se asigur
gestionarea i prelucrarea complex a datelor i care reprezint componenta software a
sistemului de baze de date (Sistem de Gestiune a Bazelor de Date SGBD);
alte componente proceduri manuale sau automate, inclusiv reglementri administrative,destinate bunei funcionri a sistemului, dicionarul bazei de date (metabaza de date) care
conine informaii despre date, structura acestora, elemente de descriere a semanticii,
statistici, documentaii, mijloacele hardware utilizate, personalul implicat.
Fig. 1
APLICAII
UTILIZATORI
ALTE ELEMENTE
BAZA DE
DATESGBD
7/30/2019 Baze de date 2
7/231
7 Baze de date
1.3. Organizarea datelor ntr-o baz de date
Arhitectura intern a unui sistem de baze de date conform standardului ANSI/X3/SPARC
(1975) conine trei niveluri funcionale. O caracteristic fundamental a bazelor de date este aceeac produce cteva niveluri de abstractizare a datelor prin ascunderea (transparena) detaliilor legate
de stocarea datelor, utilizatorilor.
Se definete modelul datelor, ca un set de concepte utilizat n descrierea structurii datelor. Prin
structura bazei de date se nelege tipul datelor, legtura dintre ele, restriciile aplicate datelor. O
structur de date asociat unei baze de date poate fi reprezentat pe trei niveluri, Figura 2, astfel:
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 detaliilecomplete ale stocrii i modul de acces la date.
Nivelul conceptual sau schema conceptual, descrie structura ntregii baze de date pentru o
cumunitate de utilizatori. La nivel conceptual se face o descriere complet a bazei de date
ascunzndu-se detaliile legate de stocarea fizici detaliind descrierea entitilor, tipurilor
de date, relaiile dintre ele i restriciile asociate.
Vizualizaregrup utilizatori 1
Vizualizaregrup utilizatori n
Schema conceptual
Schema intern
Nivel extern
Nivel conceptual
Nivel intern
Date memorate
Fig. 2
7/30/2019 Baze de date 2
8/231
1. Bnci i baze de date 8
Nivelul extern sau nivelul vizual (utilizator), include o colecie de scheme externe ce
descriu baze de date prin prisma diferiilor utilizatori.
n multe SGBD nu se poate face o distincie clar ntre cele trei niveluri, de multe ori nivelul
conceptual este puternic dezvoltat i suplinete aparent celelalte niveluri. De asemenea, la
dezvoltarea aplicaiilor se remarc o contopire a nivelului extern cu cel conceptual.
De la modelul conceptual, cererile sunt adresate modelului intern pentru a fi procesate i
aplicate datelor stocate. Procesul de transfer a cererilor i rezultatelor ntre nivele se numete
cartografiere (mapping).
n funcie de categoria de personal implicat n folosirea bazei de date, datele dintr-o baz de
date pot fi structurate pe trei niveluri:
nivelul conceptual(global) exprim viziunea administratorului bazei de date asupra datelor.
Acestui nivel i corespunde structura conceptual (schema) a bazei de date, prin care se
realizeaz o descriere a tuturor datelor, ntr-un mod independent de aplicaii, ce face posibil
administrarea datelor.
nivelul logic exprim viziunea programatorului de aplicaie asupra datelor. La acest nivelse realizeaz o descriere a datelor corespunztoare unui anumit program de aplicaie.
nivelul fizic care exprim viziunea inginerului de sistem asupra datelor. Corespunde
schemei interne a bazei de date prin care se realizeaz o descriere a datelor pe suport fizic de
memorie.
1.4. Modelarea la nivel logic a datelor ntr-o baz de date
Modelul de date reprezint ansamblul de concepte i instrumente necesare pentru a construi o
schem a bazei de date. Modelarea datelor poate viza totalitatea datelor din cadrul bazei de date
(schema/arhitectura datelor) sau o parte a acestora (subscheme ale bazei de date). Schema i
subschema bazei de date sunt modelele logice ale bazei de date, care au asociate principii generale
pentru gestionarea/definirea (structurarea) datelor, manipularea i asigurarea integritii datelor, fr
a reflecta modul de reprezentare i stocare a acestor date pe suportul de memorie (care sunt ele
modelului fizic).
Se cunosc mai multe tipuri de baze de date dup modul de organizare, modul de dispunere pe
suport magnetic a informaiei i a elementelor componente:
7/30/2019 Baze de date 2
9/231
9 Baze de date
modele primitive datele sunt organizate la nivel logic n fiiere, structura de baz este
nregistrarea, mai multe nregistrri fiind grupate n structuri de tip fiier;
baze de date ierarhice legturile dintre date sunt ordonate unic, accesul se face numai prin
vrful ierarhiei, un subordonat nu poate avea dect un singur superior direct i nu se poate
ajunge la el dect pe o singur cale;
baze de date n reea datele sunt reprezentate ca ntr-o mulime de ierarhii, n care un
membru al ei poate avea orici superiori, iar la un subordonat se poate ajunge pe mai multe
ci;
baze de date relaionale structura de baz a datelor este aceea de relaie tabel, limbajul
SQL (Structured Query Language) este specializat n comenzi de manipulare la nivel de
tabel. Termenul relaional a fost introdus de un cercettor al firmei IBM, dr. E. F. Codd, n
1969, cel care a enunat cele 13 reguli de baz necesare pentru definerea unei baze de date
relaionale. Baza de date relaional reprezint o mulime structurat de date, accesibile prin
calculator, care pot satisface n timp minim i ntr-o manier selectiv mai muli utilizatori.
Aceast mulime de date modeleaz un sistem sau un proces din lumea reali servete ca
suport unei aplicaii informatice;
baze de date distribuite sunt rezultatul integrrii tehnologiei bazelor de date cu cea a
reelelor de calculatoare. Sunt baze de date logic integrate, dar fizic distribuite pe mai multesisteme de calcul. Integrarea bazei de date distribuite se face cu ajutorul celor trei tipuri de de
scheme care sunt implementate:
1. schema global definete i descrie toate informaiile din baza de date distribuit n
reea;
2. schema de fragmentare descrie legturile dintre o colecie globali fragmentele
sale. Ea este de tipul unu la mai muli i are forma unei ierarhii;
3. schema de alocare descrie modul de distribuire a segmentelor pe calculatoarele(nodurile) din reea. Fiecare segment va avea o alocare fizic pe unul sau mai multe
calculatoare. Schema de alocare introduce o redundan minim i controlat: un
anumit segment se poate regsi fizic pe mai multe calculatoare.
Utilizatorul unei asemenea baze de date o vede ca pe o baz de date unic, compact (nivel
logic), cu toate c n realitate ea este distribuit pe mai multe calculatoare legate n reea (nivel
fizic). Aceast organizare a dus la o cretere substanial a vitezei de acces la o baz de date ntr-o
reea de calculatoare. Anumite date stocate pe un server local sunt mult mai rapid accesate dect
7/30/2019 Baze de date 2
10/231
1. Bnci i baze de date 10
dac ele s-ar afla pe un server la distan, unde baza de date ar fi fost stocat n ntregime
(nedistribuit);
modele semantice orientate spre obiecte. Aceste modele sunt orientate pe reprezentarea
semnificaiei datelor. Structura de baz folosit pentru reprezentarea datelor este cea de clas
de obiecte definit prin abstractizare din entitatea fizic pe care o regsim n lumea real.
Aici exist entiti simple i clase de entiti care se reprezint prin obiecte simple sau clase
de obiecte, ordonate n ierarhii de clase i subclase. Acest tip de baz de date a aprut din
necesitatea gestionrii obiectelor complexe: texte, grafice, hri, imagini, sunete (aplicaii
multimedia) i a gestionrii obiectelor dinamice: programe, simulri.
1.5. Sistem de gestiune a bazelor de date
Sistemele de gestiune a bazalor de date (DBMS DataBase Management System) sunt sisteme
informatice specializate n stocarea i prelucrarea unui volum mare de date, numrul prelucrrilor
fiind relativ mic.
Termenul de baz de date se va referi la datele de prelucrat, la modul de organizare a acestora
pe suportul fizic de memorare, iar termenul de gestiune va semnifica totalitatea operaiilor ce se
aplic asupra datelor din baza de date.
n arhitectura unui sistem de baze de date SGBD ocup locul central.
Un SGBD este ansamblul software interpus ntre utilizatori i baza de date i este un interpretor
de cereri de acces sau regsire de date n baza de date, execut cererea i returneaz rezultatul.
SGBD este un sistem de programe care faciliteaz procesul definirii, construcei, organizrii i
manipulrii datelor pentru diverse aplicaii. Utilizatorul are acces la SGBD prin intermediul unei
interfee (aplicaie) cu ajutorul creia stabilesc parametrii interogrii i se primete rspuns; ntreg
ansamblul este descris n Figura 3.
UtilizatorAplicaie SGBD
Baza dedate
Fig. 3
Organizarea pe trei niveluri a sistemelor de baze de date este strns legat de conceptul de
independen a datelor, n sensul c sistemul bazei de date poate fi modificat la orice nivel fr a
7/30/2019 Baze de date 2
11/231
11 Baze de date
afecta nivelurile superioare. Independena datelor poate fi privit n dou moduri, corespunztoare
nivelurilor conceptual (logic) i intern (fizic).
Independena logic a datelor reprezint capacitatea modificrii schemei conceptuale fr a
provoca modificri n schema extern sau n programele de aplicae. Schema conceptual se poate
modifica prin mrirea bazei de date datorit adugrii de noi tipuri de nregistrri (o nou coloan
ntr-o tabel) sau date (nregistrri) sau micorarea bazei de date n cazul tergerii unor nregistrri.
Independenafizic a datelor este dat de capacitatea de schimbare a schemei interne fr
modificarea schemei conceptuale sau externe.
Funcionarea unui SGBD se realizeaz prin comenzi specifice limbajului SQL. Nivelele
conceptual i intern nefiind distinct delimitate sunt adresate printr-un limbaj comun numit DDL
Data Definition Language, utilizat pentru administrarea i proiectarea bazei de date n definirea
ambelor scheme. Dac SGBD are o delimitare clar ntre nivelul conceptual i cel intern, atunci
DDL se folosete pentru comenzile la nivel conceptual, iar pentru specificarea schemei interne se
folosete limbajul SDL Storage Definition Language. Pentru cel de al treilea nivel, extern, se
folosete limbajul VDL View Definition Language, destinat utilizatorilor i pentru interfaaacestora cu nivelul conceptual. Pentru operaiile tipice legate de cutare, inserare, tergere i
modificarea datelor, SGBD dispune de un limbaj de manipulare numit DML - Data Manipulation
Language.
1.5.1. Interfee SGBD
Un SGBD este un ansamblu complex de programe care asigur interfaa ntre o baz de date iutilizatorii acesteia. SGBD este componenta software a unui sistem de baze de date care
interacioneaz cu toate celelalte componente ale acestuia asigurnd legtura i interdependena
ntre ele.
Un SGBD ofer interfeele corespunztoare tuturor categoriilor de utilizatori pentru a facilita
legtura acestora cu baza de date. Principalele tipuri de interfee:
Interfee pe baz de meniuri care ofer utilizatorilor o list de opiuni (meniuri) pentru
formularea interogrilor.
7/30/2019 Baze de date 2
12/231
1. Bnci i baze de date 12
Interfee grafice afieaz utilizatorului un set de diagrame, cererile sunt formulate prin
manipularea acestor diagrame. De cele mai multe ori interfeele grafice sunt asociate cu
meniurile.
Interfee bazate pe videoformate se utilizeaz pentru introducerea de noi date,
actualizarea bazei de date i cutare.
Interfee n limbaj natural accept comenzi scrise n limba englez sau alte limbi de
circulaie internaional. Interpretarea cererilor se face pe baza unui set de standard de
cuvinte cheie ce sunt interpretate pe baza schemei interne.
Interfee specializate pentru cereri repetate (limbaj de comand) sunt destinate unei
anumite categorii de utilizatori, de exemplu pentru angajaii unei bnci se
implementeaz un mic set de comenzi prescurtate pentru a micora timpul necesar
introducerii comenzii.
Interfee pentru administrarea bazei de date se utilizeaz pentru comenzile privilegiate
utilizate de administratorii bazei de date i se refer la crearea de conturi, parole, setarea
parametrilor sistemului, autorizarea intrrii pe un anumit cont, reorganizarea structurii de
stocare a datelor din baza de date, accsul la e, nregistrri.
Exemple de SGBD: MySQL, Microsoft SQL, Microsoft Access, Visual FoxPro, Oracle.
1.5.2. Funciii servicii oferite de un SGBD
Un SGBD trebuie s asigure funciile (Figura 4):
funcia de descriere a datelor se face cu ajutorul LDD, realizndu-se descrierea atributelor
din cadrul structurii bazei de date, legturile dintre entitile bazei de date, se definesc
eventualele criterii de validare a datelor (5.1.3.), metode de acces la date, integritatea
datelor. Concretizarea acestei funcii este schema bazei de date.
funcia de manipulare este cea mai complexi realizeaz actualizarea i regsirea datelor.
funcia de utilizare asigur mulimea interfeelor necesare pentru comunicare a tuturor
utilizatorilor cu baza de date.
Categorii de utilizatori:
neinformaticieni beneficiarii informaiei, nu trebuie s cunoasc structura bazei de date, nu
trebuie s programeze aplicaii, ci doar s le foloseasc prin intermediul unei interfee suficient
de prietenoase.
7/30/2019 Baze de date 2
13/231
13 Baze de date
informaticieni creaz structura bazei de date i realizeaz procedurile complexe de exploatare
a bazei de date;
administratorul bazei de date utilizator special, cu rol hotrtor n funcionarea optim a
ntregului sistem.
funcia de administrare administratorul este cel care realizeaz schema conceptual a
bazei de date, iar n perioada de exploatare a bazei de date 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).
ADMINISTRAREDESCRIEREMANIPULARE
BAZA DE
FUNCIILESGBD UTILIZARE
UTILIZATORI
DATE
Fig. 4
Prin acestea, un SGBD trebuie s asigure:
definirea crearea bazei de date;
introducerea (adugarea) datelorn baza de date;
modificarea structurii sau a unor date deja existente n baza de date;
tergerea datelor din baza de date;
consultarea bazei de date interogare/extragerea datelor.
7/30/2019 Baze de date 2
14/231
1. Bnci i baze de date 14
n plus un SGBD mai asiguri alteservicii:
suport pentru limbaj de programare;
interfact mai atractiv pentru comunicarea cu utilizatorul;
tehnici avansate de memorare, organizare, accesare a datelor din baza de date;
utilitare ncorporate: sistem de gestiune a fiierelor, listelor, tabelelor etc.;
help pentru ajutarea utilizatorului n lucrul cu baza de date.
Apariia i rspndirea reelelor de calculatoare a dus la dezvoltarea SGBD-urilor n direcia
multiuser: mai muli utilizatori folosesc simultan aceeai baz de date.
Principalul avantaj al reelelor a fost eficiena mult sporit de utilizare a resurselor sistemelor de
calcul: la o baz de date aflat pe un server central au acces simultan mai muli utilizatori, situai la
distan de server, de unde rezult o bun utilizare a resurselor server-ului i o economie de
memorie datorat memorrii unice a bazei de date.
Un SGBD este dotat cu un limbaj neprocedural de interogare a bazei de date SQL care
permite accesul rapid i comod la datele stocate n baza de date.
1.5.3. Activitile asigurate de SGBD
Un SGBD trebuie s asigure urmtoarele activiti:
definireai descrierea structuriibazei de date se realizeaz printr-un limbaj propriu, limbaj
de definire a datelor (LDD), conform unui anumit model de date;
ncrcarea datelor nbaza de date se realizeaz prin comenzi n limbaj propriu, limbaj de
manipulare a datelor (LMD);
accesul la date se realizeaz prin comenzi specifice din limbajul de manipulare a datelor.
Accesul la date se refer la operaiile de interogarei actualizare.
Interogarea este complex i presupune vizualizarea, consultarea, editarea de situaii de
ieire (rapoarte, liste, regsiri punctuale).
Actualizarea presupune trei operaiuni: adugare, modificare (efectuate prin respectarea
restriciilor de integritate ale bazei de date) i tergere;
ntreinerea bazei de date se realizeaz prin utilitare proprii ale SGBD;
reorganizareabazei de date se face prin faciliti privind actualizarea structurii bazei de
date i modificarea strategiei de acces. Se execut de ctre administratorul bazei de date;
7/30/2019 Baze de date 2
15/231
15 Baze de date
securitatea datelor se refer la asigurarea confidenialitii datelor prin autorizarea i
controlul accesului la date, criptarea datelor, realiarea de copii ale programelori fiierelor
de baz.
1.5.4. Obiectivele unui SGBD
Un SGBD are rolul de a furniza suportul software complet pentru dezvoltarea de aplica ii
informatice cu baze de date.
El trebuie s asigure:
minimizarea costului de prelucrare a datelor,
reducerea timpului de rspuns, flexibilitatea aplicaiilori
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 deaplicaie;
independena fizic modificarea tehnicilor fizice de memorare fr a determina rescrierea
programelor de aplicaie.
2. Asigurarea redundanei minime i controlate a datelorstocarea 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.
7/30/2019 Baze de date 2
16/231
1. Bnci i baze de date 16
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 obiecteleunei 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.
7/30/2019 Baze de date 2
17/231
17 Baze de date
2. Etapelede realizare a unei bnci de date
2.1. Etapa de analiz
Proiectarea unei baze de date const din proiectare logic i fizic a acesteia astfel nct s
rspund cerinelor utilizatorilor pentru un anumit set de aplicaii specifice. n general, proiectarea
corect a unei baze de date parcurge etapele de analizi programare. Pentru etapa de analiz se
recomand parcurgerea pailor:
1. Studierea problemei de rezolvat const din studiul i descrierea activitilor pentru care se
va organiza baza de date (cerine i resurse);
2. Proiectarea structurii bazei de date are ca principale activiti alegerea modelului de
SGBD, proiectarea funciilor bazei de date, stabilirea intrrilori ieirilor aplicaiilor;
3. Stabilirea modului de memorare a datelor n memorie (temporare) sau pe disc n baza de
date, pentru care trebuie stabiliti structura;
4. Stabilirea algoritmului general de rezolvare a problemei la nivel de schem bloc;
5. Stabilirea structurii meniului principal al aplicaiei acesta trebuie s conin opiuni
pentru toate funciunile sistemului informatic care sunt accesibile utilizatorului.
6. mprirea aplicaiei pe programe fiecare program urmrete rezolvarea unei pri aproblemei generale.
2.2. Etapa de programare
n etapa de programare se recomand urmrirea pailor:
1. Elaborarea programelor: realizarea componentelor logice programe/aplicaii ncepnd
cu programul monitor (principal), continund cu cele de introducere/actualizare a datelor, cu
cele de prelucrare i terminnd cu programele de interogare baza de date i extragere de
informaii.
2. Testarea funcionrii corecte a programelor individuale i a sistemului n ansamblu
pentru ct mai multe situaii posibile (ideal ar fi testarea n toate situaiile posibile, dar
numrul acestora este foarte mare) incluznd n mod obligatoriu i situaiile limit.
3. nlturarea erorilor depistate i reluarea pasului 2. Dac nu mai sunt erori, se continu cu
urmtoarea etap.
7/30/2019 Baze de date 2
18/231
2. Eta ele de realizare a unei bnci de date 18
2.3. Punerea n funciune i exploatarea bazei de date
1. ncrcarea i manipularea datelor operaii de actualizare i consultare, ntreinere
(dezvoltare) a bazei de date.2. Elaborarea documentaiei de utilizare care se pred beneficiarului, ct i documentaia
tehnic a sistemului (de preferat ca fiecare program s aib cte o fi tehnic, pentru o mai
uoar depanare, ntreinere).
- - - - - -Ecrane utilizator
Ferestre utilizator
Meniuri utilizator
Introducere date
Baze de date
Aplicaie
Consultri curente
Rapoarte statistice
Extragere de date
Programe
Schema bloc a unei aplicaii din punct de vedere utilizator
Fig. 5
Programe de
Programepentruintroducere
date
Date de la
utilizator
Import
Meniul principal
Programul
Baza de date
Ecrane deintroducere
Export
Filtre
Rapoart
Rezultateutilizator
Programe de
extrageredate
Schema bloc a unei aplicaii din punct de vedere al proiectantului
Fig. 6
Not: Programele de extragere date pot fi elaborate de programator sau pot fi obinute cu
generatoarele incluse n SGBD.
7/30/2019 Baze de date 2
19/231
19 Baze de date
ntreaga activitate din sistem este controlat de programul monitor care conine un meniu
principal definit de utilizator. Programele aplicaiei pentru introducerea datelor, prelucrare,
actualizare i extragere de date sub form de rapoarte se afl sub controlul programului monitor.
2.4. Documentaia aplicaiei
Deoarece etapa de analiz este proprie fiecrei aplicaii n parte, nu se recomand detalierea
etapelor 1 6. De aceea n cele ce urmeaz este detaliat documentarea programelor prin fia
tehnic, fi care trebuie s conin rubricile:
Program nume;
Scop;Parametri;
Variabile de intrare, de ieire;
Ce programe apeleaz;
Care sunt programele care l apeleaz;
Ce fiiere utilizeaz;
Explicaii - sub form de comentarii n programele surs;
Programul surs.
n 12.2.2 se arat cum se obine n mod automat, cu ajutorul VFP, documentarea unei aplicaii
realizat cu acest sistem.
7/30/2019 Baze de date 2
20/231
3. Sisteme de estiune a bazelor de date rela ionale 20
3. Sisteme de gestiune a bazelor de date relaionale
3.1. Modelul relaional al datelor
Un sistem de gestiune a bazelor de date relaionale se definete ca fiind un sistem de gestiune
care utilizeaz organizarea datelor conform modelului relaional. Conceptul de baz al modelului
relaional este acela de relaie/tabel (limbajul SQL specializat n comenzi de manipulare la nivel de
tabel).
3.1.1. Structura relaional a datelor
Structura relaional a datelor cuprinde urmtoarele componente.
Domeniul este ansamblul de valori caracterizat printr-un nume (domeniu de valori). El poate fi
precizat explicit prin enumerarea tuturor valorilor care aparin domeniului sau implicit prin
precizarea proprietilor pe care le au valorile din domeniu. Pentru un ansamblu de valori
produsul cartezian al acestora reprezint ansamblul tuplurilor
nDD ,...,1
( )nvv ,...,1 , unde v1 este o valoare din
D1, v2 este o valoare din D2, etc., iar tuplura corespunde unei linii din tabel.
Relaia (tabela) este un subansamblu al produsului cartezian al mai multor domenii, caracterizat
prin nume i care conine tupluri cu semnificaie (tabel). ntr-o relaie, tuplurile trebuie s fie
distincte nu se admit duplicate. O reprezentare a relaiei este tabelul bidimensional (tabela de date)
n care liniile reprezint tuplurile, iar coloanele corespund domeniilor. Numrul tuplurilor dintr-o
tabel este cardinalul tabelei, numrul valorilor dintr-un tuplu este gradul tabelei. Pentru a
diferenia coloanele care conin valori ale aceluiai domeniu, eliminnd dependena de poziie, se
asociaz fiecrei coloane un nume distinct atribut. n timp ce tuplurile sunt unice, un domeniu
poate aprea de mai multe ori n produsul cartezian pe baza cruia este definit tabela.
Tabelul 1 prezint comparativ conceptele utilizate n organizarea datelor n fiiere, n baze de
date, conceptele din teoria relaionali din SGBDR.
7/30/2019 Baze de date 2
21/231
21 Baze de date
Tabelul 1
Fiiere Teoria BD Teoria relaional SGBDR
Fiier Colecie de date Relaie Tabel
nregistrare Familie de caracteristici Tuplu Linie
Cmp Caracteristic Atribut Nume coloanValoare Domeniu de Valori Domenii Domeniu coloan
3.1.2. Operaii n algebra relaional
Reuniunea operaie n algebra relaional, definit pe dou relaii R1 i R2, ambele cu aceeai
schem (structur), ce const din construirea unei noi relaii R3, cu schema identic cu R1 i R2,
avnd drept extensie (nregistrrile) tuplurile dinR1iR2 luate mpreun, o singur dat.
Diferena definit pe dou relaii R1 i R2, cu aceeai schem, avnd drept extensie tupluri ale
relaieiR1 care nu se regsesc n relaiaR2.
Produs cartezian definit pe dou relaii R1 i R2, operaie care const din construirea unei noi
relaiiR3, a crei schem se obine din concatenarea schemelor relaiilorR1iR2, i a crei extensie
cuprinde toate combinaiile tuplurilor dinR1 cu cele dinR2.
Proiecia operaie din algebra relaional definit asupra unei relaiiR, ce const din construirea
unei noi relaii P, n care se regsesc numai acele atribute din R specificate explicit n cadrul
operaiei. Suprimarea unor atribute dinR nsemn efectuarea unor tieturi verticale asupra luiRi
pot avea ca efect apariia unor tupluri duplicate, care se cer a fi eliminate. n practic, operaia de
proiecie se face considernd i un cmp care conine o cheie unic, astfel nct fiecare nregistrare
devine unic.
Selecia operaie n algebra relaional definit asupra unei relaii R, care const din construirea
unei relaii S, a crei schem este identic cu cea a relaieiRi a crei extensie este constituit din
acele tupluri dinR care satisfac o condiie explicit n cadrul relaiei. Deoarece nu toate tuplurile din
R satisfac condiia, selecia nseamn efectuarea de tieturi pe orizontal asupra relaiei R, adic
eliminarea de tupluri. Condiia precizat n cadrul operaiei de selecie este de forma:
7/30/2019 Baze de date 2
22/231
3. Sisteme de estiune a bazelor de date rela ionale 22
Jonciunea (join-ul) operaie n algebra relaional definit pe dou relaiiR1iR2, care const din
construirea unei noi relaii R3, prin concatenarea unor tupluri din R1 cu tupluri din R2. Se
concateneaz acele tupluri dinR1iR2 care satisfac o anumit condiie, specificat explicit n cadrul
operaiei. Extensia relaiei R3 va conine combinaiile acelor tupluri care satisfac condiia de
concatenare. Cel mai important tip de join din punct de vedere al utilizrii este equijoin-ul, care este
o jonciune dirijat de o condiie de forma:
=
Jonciunea natural se refer la equijoin-ul aplicat tuturor cmpurilor comune. Operatorul pentrujonciunea natural este * .
Jonciunea exterioar (outer join) include trei tipuri de jonciune:
Jonciunea exterioarstnga care include toate tuplurile din partea stng a relaiei,
iar n partea dreapt a relaiei include numai acele tupluri care au corespondent.
Jonciunea exterioar dreapta care include toate tuplurile din partea dreapt a
relaiei, iar n partea stng a relaiei include numai acele tupluri care au corespondent. Jonciunea exterioar complet care include toate tuplurile din stnga i din dreapta
relaiei.
Intersecia operaie din algebra relaional definit pe dou relaii R1 i R2, ambele cu aceeai
schem, care const din construirea unei noi relaii R3, cu schema identic cu a operanzilori cu
extensia format din tuplurile dinR1iR2.
Diviziunea operaie din algebra relaional definit asupra unei relaii R, care const din
construirea cu ajutorul unei relaii ra relaiei Q. Tuplurile relaiei Q concatenate cu tuplurile relaiei
rpermit obinerea tuplurilor relaieiR.
Exemple
Pentru a nelege mai bine aceste operaii s presupunem c avem urmtoarele trei structuri de
date:
7/30/2019 Baze de date 2
23/231
23 Baze de date
1. Y1 fiier nchirieri maini
Sofer_id Auto_id Ziua
22 101 10/10/2004
58 103 11/12/2004
2. S2 fiier clieni
Sofer_id Sofer _nume Permis_ani
22 Ionescu Paul 7
31 Leahu Mihai 8
58 Arsene Ion 10
3. S3 fiier clieni
Sofer_id Sofer _nume Permis_ani
28 Doncea Horia 5
31 Leahu Mihai 8
44 Coman Stefan 12
58 Arsene Ion 10
Semnificaia structurilor de date este urmtoarea:
- n relaia Y1se stocheaz informaii referitoare la mainile rezervate cu atributele: Sofer_id
codul oferului,Auto_id codul mainii nchiriate,Ziua data la care a fost nchiriat;
- n relaiile S2 i S3 se stocheaz informaii referitoare la oferi (fragmentat), cu urmtoarele
atribute: Sofer_id codul oferului (pentru a stabili o legtur ntre structura de date Y1 i
S2, S3), Sofer_nume numele oferului,Permis_ani vechimea permisului de conducere.
Principalele operaii:
- Reuniunea R3 = S2 S3
Sofer_id Sofer _nume Permis_ani
22 Ionescu Paul 7
31 Leahu Mihai 8
58 Arsene Ion 10
44 Coman Stefan 12
28 Doncea Horia 5
7/30/2019 Baze de date 2
24/231
3. Sisteme de estiune a bazelor de date rela ionale 24
- Intersecia R3 = S2 S3
Sofer_id Sofer _nume Permis_ani
31 Leahu Mihai 8
58 Arsene Ion 10
- Diferena S2 -S3
Sofer_id Sofer _nume Permis_ani
22 Ionescu Paul 7
- Produs cartezian, . Fiecare linie din relaia Y1 se combin cu fiecare linie din
relaia S2; ca rezultat al produsului cartezian, apare un conflict deoarece ambele relaii Y1 i
S2 au cte un cmp cu numelesofer_id, care poate fi rezolvat prin operaia de redenumire.
21 SY
Comanda SQL pentru pentru produs cartezian 21 SY este dat n Figura 1.
Operatorul redenumire se utiliz :
(C(1 Sofer_id2), Y1
eaz sub forma
Sofer_id1,5 S2)
cu urmtoare interpretare: se re ana 1 Sofer_id1 i coloana 5 n Sofer_id2, n
relaia dat de produsul cartezian elaiile i S2.
eniu se pot repeta este necesar eliminarea
repetrilor:
denumete colo n
obinut din r Y1
- Proiecia. Deoarece valorile dintr-un dom
7/30/2019 Baze de date 2
25/231
25 Baze de date
Sofer_nume,Permis_ani(S3)
rSofe _nume Permis_ani
Donc 5ea Horia
Leahu 8
Coman Stefan 12
Mihai
Arsene Ion 10
- Selecia Permis_ani > 8(S3)
Sofer_id Sofer _nume Permis_ani
44 Coman Stefan 12
58 Arsene Ion 10
Din relaia S3 au fost selecta are satifac condiia de vechime a
permisului (mai mult de 8 ani).
Operaia de proiecie se poate combina cu cea de selecie pentru optimizarea cererilor de date;
de
Per
Sofer_ ,P
f
te numai acele nregistrri c
exemplu dac dorim extragerea datelor din relaia S3 numai pentru cmpurile Sofer_nume i
mis_ani mai mare de 8 ani:
nume ermis_ani( Permis_ani > 8(S3))
So er _nume Permis_ani
Coman Stefan 12
Arsene 1Ion 0
te echivalent cu
s
S2
Jonciunea (join-ul). Operaia de jonciune condiionat a dou relaii es
elecia condiionat a produsului cartezian al celor dou relaii.
S2.Sofer_id< Y1. Sofer_idY1
(Sofer_id) Sofer _nume Permis_ani (Sofer_id) Auto_id Ziua
22 s 7 8 103 /12/2004Ione cu Paul 5 11
31 eahu 8 58 1 /2004L Mihai 03 11/12
7/30/2019 Baze de date 2
26/231
3. Sisteme de estiune a bazelor de date rela ionale 26
peraia de jonciune condiionat mai poart uneori i numele de theta-join.
S2
O
Pentru acest exemplu, equijoin-ul, caz special al jonciunii condiionate n care condiia c
conine doar egalitai, devine
Sofer_id Y1
_nume Permis_ani Auto_id ZiuaSofer_id Sofer
22 I 10/10/2004onescu Paul 7 101
58 Arsene Ion 103 11/12/200410
Noua relaie rezultat din j usul cartezian dintre S2 i Y1, dar
numai o copie a cmpului pentru care este specificat egalitatea, va fi specificat n noua relaie (nu
mai apare duplicarea cmpului).
Exemple dejonciuni exterioare
jonciune exterioar stngaY1 Y1.Sofer_id=S2.Sofer_id S2
oin este similar cu prodequi
jonciune exterioar dreapta
Y1 Y1.Sofer_id=S2.Sofer_id S2
jonciune exterioar compet
Y1 Y1.Sofer_id=S2.Sofer_id S2
7/30/2019 Baze de date 2
27/231
27 Baze de date
De remarcat prezena cmpurilor cu valoarea NULL utilizat n jonciuni pentru a specifica
lipsa de date.
Presupunnd c tabele au fost create, programul surs pentru testarea celor trei tipuri dejonciuni exterioare este prezentat n Figura 1.
Fig. 1
DiviziuneaSe utilizeaz la exprimarea interogrilor de tipul: Gsete automobilistul care a
rezervat toate automobilele.
{ }ByAyxxBA = ,,/
7/30/2019 Baze de date 2
28/231
3. Sisteme de estiune a bazelor de date rela ionale 28
rela ia obinut prin diviziune va conine toate tuplurilex care pentru fiecare tuplurydinB nu
are asociat un tuplu xy n A. Pentru a nelege mai bine operaia de diviziune vom considera
urmtorul exemplu, n care considerm tabelulA1 (cmpurixx_no, yy_no) i tableleB1, B2,B3
(un singur cmp yy_no, corespondent cu cel din tabelul A) i realizm operaiile de diviziune
A1/B1,A1/B2,A1/B3:
Secvena de pr care realizeaz cele tre ii de diviziue se gs igura 1, ultima
seciune *Diviziune. Rezultatul celor trei comenzi SQL este:
ogram i opera ete n f
A1/B1 A1/B2 A1/B3
timizarea cererilor de date
Se realizeaz n dou etape:
1. exprimarea cererilor de date sub forma unor expresii algebrice relaionale care au la baz
ional,
3.1.3. Op
echivalena dintre calculul relaional i algebra rela
7/30/2019 Baze de date 2
29/231
29 Baze de date
nsformri algebrice asupra expresiilor obinute n etapa precedent, n
nor expresii echivalent iale, dar care s
i produs cartezian:
1
3
E
E
2. aplicarea unor tra
scopul obinerii u e cu cele ini fie executate mai
eficient.
Proprieti
Comutativitatea operaiilor de join
1221
1221
EEEE
EEEE
=
= >< )
Compunerea seleciilor )())((2121
EE FFFF = , deoarece II 221 FFF = 1F , seleciile se pot
comuta:
( ) ( ))()( 1221 EE FFFF =
rea seleciei cu proiecia
rea seleciei cu produsul cartezian
rea seleciei cu reuniunea
Comuta
Comuta
Comuta
Com
Comuta
Com
Prin deplasarea operaiilor de selecie ct mai la stnga expresiilor algebrice se reduce numrul
de
Se
ri. Prin selecie se reduce dimensiunea relaiilor la
care se aplic aceti generatori de tupluri. Se ine seama c operaia de jonciune poate fi
produs cartezian urmat de o selecie, iar n cazul jonciunii
naturale printr-un produs cartezian urmat de de o selecie i de o proiecie.
z prin
se realizeaz cu ajutorul relaiei de compunere a
seleciilor.
utarea seleciei cu diferena
rea proieciei cu produsul cartezian
utarea proieciei cu reuniunea
tupluri care trebuie manipulate n procesul de executare a cererii.
pot meniona urmtoarele strategii de optimizare a cererilor de date:
Deplasarea operaiei de selecie naintea operaiei de jonciune jonciunea i produsul
cartezian acioneaz ca generatori de tuplu
exprimat sub forma unui
Deplasarea operaiilor de proiecie naintea operaiilor de jonciune se realizea
folosirea proprietii de comutare a seleciei cu produsul cartezian
Combinarea seleciilor multiple
7/30/2019 Baze de date 2
30/231
3. Sisteme de estiune a bazelor de date rela ionale 30
buiesc
dintr-o anumit zi.
, pe baza faptului c aceste entiti sunt oameni.
Ionesc
entiti
diferit
rtament. Una din cerinele importante referitoare la valorile din domeniu se
refer
ali;
Deplasarea operaiilor de selecie naintea operaiilor de proiecie- realizat pe baza
proprietii de comutare a seleciei cu proiecia. Eliminarea tuplurilor duplicate obinute prin
proiecie se face prin ordonarea tuplurilor. Selecia reduce numrul tuplurilor ce tre
ordonate facilitnd operaia de proiecie.
3.1.4. Baze de date relaionale
Conceptul bazelor de date relaionale este axat pe metodologia entitate-tabel (E-T).
Entitile modeleaz obiectele care sunt implicate ntr-o organizaie, de exemplu studenii,
profesorii i cursurile dintr-o universitate.
Tabelele modeleaz legturile dintre entiti, de exemplu profesorii predau cursuri. n plus,restriciile de integritate aplicate entitilori relaiilor formeaz o parte important a specificaiilor
E-T, de exemplu, un profesor poate preda un singur curs la o anumit or
Entitile similare pot fi agregate n tipuri de entiti. De exemplu, Ionescu, Popescu, Albu,
pot fi agregai n tipul de entitate PERSOAN
u i Albu pot aparine tipului de entitate STUDENT, deoarece aceste obiecte sunt studeni.
La fel ca tabelele, entitile sunt descrise utiliznd atribute. Fiecare atribut specific o
particularitate semnificativ a entitii. De exemplu, atributul Nume al unei entiti de tipPERSOAN specific irul de caractere care alctuiete numele persoanei din lumea real. De
asemenea, Vrsta este atribuitul care specific de cte ori Pmntul a nconjurat Soarele fa de
momentul n care o anumit persoan s-a nscut. Pentru fiecare atribut, se asociaz un domeniu care
specific setul de valori pe care le poate lua atributul. n principiu, este posibil ca dou
e ale aceluiai tip s posede valori identice pentru toate atributele.
Atributelor li se asociaz valori care au drept scop identificarea entitii, realizndu-se o
nregistrare n tabela respectiv. Atribute pot fi:
- complexe - cele care pot fi divizate n mai multe pri cu semnificaie independent. De
exemplu, atributulAdresa poate fi divizat n mai multe atribute: Ora, Cod potal, Strad,Numr,
Bloc, Etaj, Nr_Apa
la atomicitatea datelor. Atomicitatea datelor nu nseamn c aceste valori nu se pot
descompune, datele pot fi iruri de caractere, ceea ce nseamn c pot fi descompuse. Cerina de
atomicitate se refer la faptul c modelul relaional nu specific nici un mijloc pentru a privi n
interiorul structurii valorilor, astfel c valorile sunt invizibile pentru operatorii relaion
7/30/2019 Baze de date 2
31/231
31 Baze de date
onal)
pentru o persoan este unic i nici o alt persoan nu mai are atribuit aceeai valoare a CNP;
derivate sunt cele ce se pot determin din alte atribute, de exemplu vrsta unei persoane se
poate
cului sauNr_Scara.
heile de restricie introduse n modelul relaional sunt asociate cu tipurile de entiti, de
exemplu, dou persoane diferite nu pot avea aceleai valori pentru atributeleNumei Adresa.
chema n modelul relaional se definete ca fiind un tip de entitate compus din numele
tipului de entitate, colecia de atribute (cu domeniile asociate i indicaii n cazul n care un atribut
este complex sau cu valori unice) i cheile de restric .
eprezentarea diagramelor E-T tipurile de entiti reprezentate n diagrameleE-Tsunt sub
form atributele sub form de elipse. Atributele tip set de de valori (modelul
relaional permite atributelor s posede un set de valori din domeniu) sunt reprezentate n elipse
duble
3.
- cu o singur valoare din setul de valori ale atributului pentru fiecare entitate exist numai
o singur valoare, nerepetabil la o alt entitate. De exemplu, CNP (Codul Numeric Pers
- cu set de valori atributul poate lua orice valoare din set i care se poate repeta pentru o alt
entitate. Este cazul culorilor (dou mrci de main diferite pot avea aceai culoare) sau gradul
cadrelor didactice;
-
determina scznd din data curent data naterii persoanei respective, sau determinarea valorii
unei entiti prin produsul dintre preul unitari cantitate. Prezena atributelor derivate mpreun cu
cele primare cresc gradul de redundan al datelor din baza de date i trebuie evitat;
-fr valoare (NULL) bazele de date accepti posibilitatea lipsei datelor pentru cmpurileanumitor nregistrri, de exemplu, din atributulAdres, poate lipsiNumele_blo
C
S
ie
R
de dreptunghiuri i
. Sublinierea unui atribut n diagram l desemneaz ca fiind cheie primar, adic un atribut cu
valoare unic. Figura 2 descrie o diagramE-R pentru entitatea PERSOANA:
PERSOANA
Nume Adresa CNP Copii
Fig. 2
1.5. Tipuri de relaii
7/30/2019 Baze de date 2
32/231
3. Sisteme de estiune a bazelor de date rela ionale 32
ente din tabelaR2, iar unui element din tabelaR2 i corespunde
un sin
,Bursa;
ente din tabela R2 i reciproc. De exemplu, un student frecventeaz mai multe
cursur
TUDENTI se introduce suplimentar tabela NOTE care face legtura ntre
tabelele MATERII i STUDENTI:tabela MATERII are atributele CodMaterie, Denumire,An,NumeProfesor;
tabela STUDENTI cu atributele: CodStud, CodFac,An, Grupa,Medie,Bursa;
tabela NOTE cu atributele: CodStud, CodMaterie,Nota,Data.
elaia unar este acea relaie care folosete o singur tabel care este asociat cu ea nsi.
Exemplul clasic este cel al managerului unei companii, care la rndul su este tot un angajat al
acestei companii.
Pentru fiecare tip de entitate participant n cadrul relaieise definete un rol care primete un
nume pentru tipul relaiei. n diagramele E-T, tipul relaiei se reprezint sub forma unui romb. De
exemp
Relaia unu-la-unu (1-1) este tipul cel mai simplu de relaie, prin care unui element din tabela
R1 i corespunde un singur element din tabela R2 i reciproc. Relaia 1-1 este mai rar folosit, n
general pentru a reduce numrul de atribute dintr-o tabel, de exemplu dac vrem s desprim
elementele fixe care se modific mai rar (datele personale) fa de cele care se modific mai des
(situaia colar anual).
Relaia unu-la-mai muli (1-N) este tipul de relaie prin care unui element din tabela R1 i
corespund unul sau mai multe elem
gur element din tabelaR1. De exemplu, presupunem c avem:
- tabela FACULTATE cu atributele CodFac, Denumire,Adresa,NumeDecan;
- tabela STUDENTI cu atributele CodStud, CodFac,An, Grupa,Medie
ntre cele dou tabele exist o relaie 1-Nprin intermediul cmpului CodFac.Relaia mai muli-la-mai muli (M-N) prin care unui element din tabelaR1 i corespunde unul
sau mai multe elem
i i o disciplin este frecventat de mai muli studeni. Acest tip de relaie este frecvent
ntlnit, dar nu se poate implementa direct n bazele de date relaionale. Pentru modelare se
folosete o relaie suplimentar, de tip 1-Npentru fiecare din tabelele iniiale. Presupunnd c avem
dou tabele MATERII i S
-
-
-
R
lu, tipul de relaie LUCREAZ cu atributul Data, definit n Figura 3, are dou roluri
ProfesoriDepartament:
Data
LUCREAZADEPARTAMENTPROFESOR
7/30/2019 Baze de date 2
33/231
33 Baze de date
Fig. 3
olul Profesor identific entitatea PROFESOR implicat n relaia LUCREAZ, iar rolul
Departamentidentific entitatea DEPARTAMENT n cadrul relaiei.
Figura 4 este prezentat o relaie ntre trei entiti: PROIECT (cu rolul Client),
PARTENER (cu rolul Produs), FURNIZOR (cu rolul Furnizor), cu tipul de relaie SOLD i
atributeleData
Fig. 4
3.1.6. Restricia de cardinalitate
Fie C un tip de entitate i A tipul de re nectat la C prin intermediul rolului R.
Restricia de cardinalitate a rolului R este o declaraie de forma min..max ataat la R, care
restric
Fig. 5
R
n
iPret.
SOLD
Data
PARTENERPROIECT
PRET
Pr
FURNIZOR
Chei: Client, Produs, Dat a
Client
laie co
ioneaz numrul de instane a relaiilor de tip A n care o singur entitate de tip C poate
participa n rolulRi este un numr n intervalul min..max, Figura 5.
odus
A
D
C1..2 c
E
R
a1 a2 a3
d1 e1 d2 e2 d13 e3
7/30/2019 Baze de date 2
34/231
3. Sisteme de estiune a bazelor de date rela ionale 34
lR. n partea dreapt
se prezint o instan valid a diagramei, unde entitatea Cparticip n dou relaiide tipA. Relaia
a3 este tiat deoarece violeaz limitele de cardinalitate 1..2 ale roluluiR.
general, modelulE-Tsuport restricia de cardinalitate de forma min..max, unde min este
un numr mai mare sau egal cu zero, max este un numr mai mare dect zero cu condiia
. n plus, max poate fi simbolizat i prin caracterul *, care reprezint infinitul. Astfel, o
restric orma 3..* asupra roluluiR care conecteaz un tip de entitate C, cu un tip de relaieA,
nseamn c fiecare entitate de tip Ctrebuie s participe n rolulR, cu cel puin trei relaii de tipA
(fr limit superioar N..N (unde min=max) esteadese
n Figura 6 sunt prezentate tipuri de relaii de grad superior (4). Tipul relaiei este determinat
de restricia de cardinalitate a roluri plu, relaia de tip B implic o
oresponden unu-la-unu ntre entitatea Ci D. Aceasta nsemn c o entitate de tip Cpoate fi
i pentru F la C i D). Aceasta
seamn c o entitate de tipEpoate fi asociat cu orice numr (inclusiv zero) de eniti de tip Ci
i asociat cu cel mult o entitate de tip E. Relaia de
3.2. Regulile lui Codd
Figura 5 prezinti o diagram cu restricia de cardinalitate pentru rolu
n
min max
ie de f
). Pentru restriciile de cardinalitate de formaa abreviat cuN, iar caracterul * se folosete pentru sintagma mai muli.
Fig. 6
BD
C
F
0..1
E
0..1
*
*
lor unei relaii. De exem
c
asociat cu cel puin o entitate de tip D i vice versa. n acelai timp, relaia B implic o
corespunden unu-la-mai muli pentru entitile E la C i D (ca
n
D, dar o entitate de tip C (sau D) poate f
coresponden unu-la-mai muli nu este simetric; inversa acestei corespondene (C la E) este
numit mai muli-la-unul. Corespondena ntre Ei Feste numit mai muli-la-mai muli, adic o
entitate de tipulEpoate fi asociat cu orice numr de entitiFi vice versa.
7/30/2019 Baze de date 2
35/231
35 Baze de date
oate informaiile din baza de date sunt gestionate numai prin mecanisme relaionale. Rezult c
sc toate funciile utiliznd ca unitate de informaie mulimea,
1 Reprezentarea logic a datelor
de date relaional trebuie s fie reprezentate explicit la nivel logic ntr-un
2 Garantarea accesului la date
aiilor din baza de date relaional se va face prin specificarea numelui tabelei, a
u semnificaia unor date lips
au inaplicabile. Valorile NULL, care difer de irurile de caractere spaiu sau de irurile vide de
mentarea restriciilor de integritate (integritatea entitii i
logic n
celai mod cu descrierea datelor propriu-zise, utilizatorul aplicnd asupra descrierii bazei de date
nuite. Sistemul nu trebuie s fac diferene ntre descrierea
5 Facilitile limbajelor utilizate
posibil utilizarea mai multor limbaje, n mai multe moduri.
Detalierea caracteristicilor, pe care trebuie s le prezinte un SGBD pentru a fi considerat
relaional, s-a facut de E. F. Codd n 1985, sub forma a 13 reguli.
R0 Gestionarea datelor la nivel de relaie.
T
SGBD-ul trebuie s-i ndeplinea
adic s utilizeze limbaje (SQL) care s opereze la un moment dat pe o ntreag relaie.
R
Informaiile din baza
singur mod i anume ca valori n tabelele de date. Rezult c toate datele trebuie s fie memorate iprelucrate n acelai mod. Informaiile privind numele de tabele, coloane, domenii, definiiile
tabelelor virtuale, restriciile de integritate trebuie s fie memorate tot n tabele de date (catalog).
R
Accesarea inform
valorii cheii primare i numelui de coloan.
R3 - Valorile NULL
SGBD trebuie s permit declararea i manipularea valorilor null, c
s
caractere sunt importante n imple
integritatea referenial) din modelul relaional.
R4 - MetadateleInformaiile despre descrierea bazei de date, metadatele, trebuie s se prezinte la nivel
a
aceleai operaii ca i la datele obi
datelori a metadatelor utiliznd o singur structur, cea relaional.
R
Un sistem relaional trebuie s fac
Trebuie s existe cel puin un limbaj de nivel nalt ale crui instruciuni s poat exprima oricare din
7/30/2019 Baze de date 2
36/231
3. Sisteme de estiune a bazelor de date rela ionale 36
itelor tranzaciilor.
7 Actualizrile n baza de date
a manipulrii unei tabele (de baz sau virtuale) nu numai n
operaiilor prin care se schimb coninutul bazei de date s se lucreze la un moment dat pe otreag relaie.
trebuie s fie afectate de schimbrile efectuate n modul de reprezentare
datelor sau n metodele de acces. O schimbare a structurii fizice a datelor nu trebuie s blocheze
ate.
R11 Distribuirea geografic a datel
situaia n care datele sunt distribuite, programele de aplicaie s fie logic aceleai cu cele
utili
12 Prelucrarea datelor la nivel de baz
urmtoarele operaii: definirea tabelelor de baz, definirea tabelelor virtuale, manipularea datelor,
definirea restriciilor de integritate, autorizarea accesului, precizarea lim
R6 Actualizarea tabelelor virtuale
Nu toate atributele din cadrul unei tabele virtuale, deci nu toate tabelele virtuale, sunt teoretic
actualizabile.
R
SGBD trebuie s ofere posibilitate
cadrul operaiilor de regsire, ci i n cazul celor de adugare, modificare i tergere a datelor. n
cursuln
R8 Independena fizic a datelor
Programele de aplicaie nu
a
funcionarea programelor de aplicaie.
R9 Independena logic a datelor
Programele de aplicaie nu trebuie s fie afectate de schimbrile efectuate asupra relaiilor bazei de
d
R10 Restriciile de integritate
Restriciile de integritate trebuie s poat fi definite n limbajul utilizat de SGBD pentru definirea
datelori s fie memorate
or
n
zate n cazul n care datele sunt fizic centralizate. Utilizatorul trebuie s perceap datele ca fiind
centralizate. Localizarea i recompunerea datelor distribuite cade n seama sistemului.
R
7/30/2019 Baze de date 2
37/231
37 Baze de date
Este procesul prin care se elimin redundana datelor n proiectul bazei de date i se
construiete un model de b i structuri alternative
le bazei de date. Sunt aplicate n normalizarea unei baze de date urmtoarele trei reguli.
but trebuie s depind n ntregime de identificatorul unic al entitii pe care o descrie.
Ace utele ntr-o tabel n care depind exclusiv de o
che o singur cheie!
N3. Pen tabel trebuie s posede o singur cheie primar, iar
dat
e a bazelor de date nu reuea
a
a bazelor de date pentru a putea fi considerat
rela
zentate prin valori n tabele;
2. ntre tabele nu exist pointeri observabili de ctre utilizatori operaiile cu relaii nu fac apel
la pointeri, indeci, fiiere inverse etc.;
3. sistemul suport operatori relaionali de proiecie, selecie i jonciune natural, fr limitri
impuse. Unitatea de informaie n cadrul acestor operaii trebuie s fie relaia.
SGBD este complet relaional dac este minimal relaional i satisface n plus urmtoarele
condiii: sistemul suport toate operaiile de baz ale algebrei relaionale;
Dac SGBD posed un limbaj de baz de nivel sczut orientat pe prelucrarea de nregistrri
(tupluri) i nu pe prelucrarea mulimilor (relaiilor) acest limbaj nu trebuie folosit, pentru a se evita
restriciile de integritate sau restriciile introduse prin utilizarea limbajelor relaionale de nivel nalt
3.3. Normalizarea datelor
az de date care susine diverse cerine funcionale
a
N1. Toate atributele trebuie specificate o singur dat. Aceasta esteforma inti normal.
N2. Un atri
asta este forma a doua normal. Se pun atrib
ie principal. Nu se utilizeaz tabele n care atributele s nu depind exclusiv de
tru a fi n forma normal a treia, fiecare
ele din tabel trebuie s depind exclusiv de cheia primar a tabelei.
3.4. Cerinele minimale de definire a SGBDR
Dintre primele versiuni aprute, practic nici un sistem de gestiun
s copere n ntregime regulile lui Codd. De aceea s-au formulat o serie de criterii minimale pe
care trebuie s le satisfac un sistem de gestiune
ional.
Pentru ca un SGBD s fie minimal relaional:1. toate datele din cadrul bazei de date sunt repre
7/30/2019 Baze de date 2
38/231
3. Sisteme de estiune a bazelor de date rela ionale 38
sistemul suport dou dintre restriciile de integritate de baz ale modelului relaional i anume
unicitatea che
SGBD estepseudorelaionaldac satisface condiiile 1 i 3 de mai sus;
ii unei relaii i restricia referenial;
SGBD este cu interfa relaionaldac satisface condiiile 1 i 3 de mai sus i condiia 3 este
ndeplinit numai n raport cu operaia de interogare.
7/30/2019 Baze de date 2
39/231
39 Baze de date
arelul de a permite descrierea i manipularea datelor conform unui model de date. La acest moment,
+, Visual Basic 6.0 i Visual Java 6.0. VFP este un sistem rapid, modularizat,
flexivizual).
grame n limbaj propriu i n SQL,
aplic
entru refacerea bazei de date etc.
rogramarea orientat pe obiecte
n program conceptele
descrise n continuare.
reprezint un tip abstract de date care definete structura obiectelor din acea
clas (proprietile) i mulimea de metode (operaii) pentru obiectele respective.
) care va conine clasele definite de utilizator.
Subclass este folosit pentru definirea unei noi clase, pentru un obiect care are ca punct de
plecare definirea din alt
4. Componentele funcionale ale sistemului Visual FoxPro
Sistemul de gestiune a bazelor de date este componenta unui sistem de baze de date, carero
n lume, cea mai mare parte a SGBD-urilor utilizate sunt bazate pe modelul relaional.
Visual FoxPro este un SGBD complet relaional, cu limbaj propriu, care suport un nucleu
extins din limbajul relaional SQL. Varianta Visual de FoxPro (VFP) a ajuns la versiunea 6.0
lansat n 1998 n cadrul pachetului de programe Visual Studio 6.0, care mai conine urmtoarele
programe: Visual C+
bil, care nu necesit resurse de calcul foarte mari, mbin programarea procedural (prin limbajpropriu) cu cea descriptiv, pe obiecte (programare
Utilizatorii neinformaticieni au la dispoziie o gam larg de generatoare pentru ecrane,
meniuri, rapoarte etc.
Utilizatorii de specialitate (informaticieni) pot dezvolta pro
aii (prin componentele Designeri Application).
Administratorul bazei de date are la dispoziie instrumente oferite de VFP pentru asigurarea
securitii i integritii datelor, p
4.1. P
area orientat pe obiecte, implementat n Visul FoxPro, se utilizeaz
Clasa de obiecte
O clas este un model sau o schi care definete caracteristicile unui obiect i n care este
descris modul n care trebuie s arate i s se comporte obiectul. Se poate crea o clas nou
utiliznd comanda CREATE CLASS sau modulul de proiectare a clasei (Class Designer). Rezult
un fiier cu extensia .vcx (Visual Class Library
clas (clas printe). Noua definire va moteni orice modificare din clasa
printe. O subclas poate avea toate funcionalitile unei clase existente i n plus orice control saufuncionalitate care se dorete a fi inclus. Dac, de exemplu, clasa de baz este telefonul, se poate
7/30/2019 Baze de date 2
40/231
4. Com onentele func ionale ale sistemului Visual 40
ui). Utilizarea subclaselor este una din cile de reducere a mrimii codului care
ebuie scris. Se ncepe cu definirea unui obiect care este apropiat de cel dorit i se gestioneaz.
utilizatorul nu are acces) i o interfa (care
ste public). Cererile adresate unui obiect pentru a returna o valoare sau pentru a schimba o stare
se nu
clas este o schi, o schem a unui obiect.
Operatorii modelului orientat pe obiecte se refer la actualizarea metodelor, a proprietilor, a
claselor, r. La baza operaiilor dintr-u model stau mesajele, care ajut
obiecte nice
Restric ritat
obiect resp
ul la obiec ntru clasa din care
.
iectului pot fi schimbate
construi o subclas care are toate funcionalitile telefonului original i n plus se pot aduga
caracteristici speciale. Astfel, subclasele permit reutilizarea secvenei de instruciuni surs
(reutilizarea codul
tr
Obiectele reprezint o colecie de proprieti care se refer la aceeai entitate. Aceste
proprieti descriu structura de date a obiectului. Un obiect are un nume, prin care este referit, un
identificator unic, metode, o implementare (privat
e
mesc mesaje.
Obiectul este o instan a unei clase, care combin att date, ct i proceduri. De exemplu, uncontrol ntr-un videoformat (Form) este un obiect.
Clasele i obiectele sunt entiti apropiate i nrudite, dar nu se identific n totatlitate. O clas
conine informaii despre modul n care un obiect trebuie s arate i s se comporte, dar nu este
obiectul ca atare. O
a instanelo n astfel de
le s comu ntre ele.
iile de integ e a datelor:
orice ect restriciile impuse clasei din care face parte;
identificatorul obiectului asigur integritatea referirii la acesta;
acces t este limitat la folosirea protocolului de mesaje definit pe
face parte
Metoda definete operaiile permise (operatorii) asupra obiectului, adic definete
comportamentul acestuia. Metoda este o aciune pe care un obiect este capabil s o realizeze. De
exemplu, obiectele de tip List Boxes au atate ca metode: AddItem,RemoveItem, Clear pentru a
gestiona coninutul listelor.
Proprietatea este un atribut al unui control, cmp sau obiect dintr-o baz de date, pe care
programatorul l stabilete pentru a defini una din caracteristicile obiectului sau un aspect al
comportrii acestuia. De exemplu, proprietatea Visible dac este fixat pe True,face ca obiectul
respectiv s fie vizibil la momentul rulrii videoformatului. Proprietile ob
7/30/2019 Baze de date 2
41/231
41 Baze de date
lui, ca urmare a apariiei
unor
utilizatorului, cum este
aps event), prin
ecvenele de program sau de ctre sistem (timers).
Un obiect are anumite pr o anumit culoare i mrime.
Cnd instalm un telefon pe bi nu n furca.Obiectele create au de aseme unt determinate de clasa din care face parte
obiectul. Aces i p rii sau la momentul execuiei
plicaiei. De exemplu, anumite proprieti pe care le poate avea un obiect de tip Check Box sunt
Proprietate Descriere
n fereastra de proprieti, n general, n timpul proiectrii videoformatului; exist situaii cnd
anumite proprieti pot fi schimbate i n momentul execuiei videoformatu
evenimente.
Evenimentul reprezint o aciune, recunoscut de un obiect pentru care se poate scrie o
secven de cod pentru rspuns. Evenimentele pot fi generate de o aciune a
area butonului stng al mouse-ului (Clickevent) sau apsarea unei taste (Keypress
s
oprieti, de exemplu, un telefon are
rou, el are o anumit poziie. Receptorul poate fi pus saunea proprieti care s
te propriet ot fi stabilite n momentul proiect
a
enumerate mai jos:
Caption Textul descriptiv de pe lng Check BoxE Sp oate fi adresat de utilizator.
ForeColor Cu
L Po Check Box.
MousePointer Forma pointer-ului cnd trecem pe deasupra obiectului cu mouse-ul.
Visible Specific cnd un obiect Check Box este vizibil.
nabled ecific dac un obiect Check Box p
loarea textului stabilit prin Caption.
ziia fa de marginea din stnga a obiectuluieft
Top Poziia fa de marginea de sus a obiectului Check Box.
te
activitate specific i predeterminat iniiat de utilizator sau de sistem. Evenimentele, n
Fiecare obiect recunoate i rspunde la anumite aciuni numite evenimente. Un eveniment es
o
majoritatea cazurilor, sunt generate de interaciunea cu utilizatorul. De exemplu, la telefon, un
eveniment este declanat n momentul n care un utilizator ridic receptorul din furc. Evenimentele
sunt declanate i atunci cnd utilizatotul apas pe butoane pentru a forma un numr de apel.
n Visula FoxPro aciunile utilizatorului care declaneaz evenimente includ: apsarea
butonului stng de la mouse (Click), micarea mouse-ului (MouseMove) i apsarea unei taste
7/30/2019 Baze de date 2
42/231
4. Com onentele func ionale ale sistemului Visual 42
). Sistemul poate iniia evenimente n cazul n care ntlnete o linie de cod care cauzeaz
orice eveniment. Metodele trebuie s fie apelate
expl
(Keypress
eroare, cum ar fi mesaje specifice i chiar ntreruperea execuiei aplicaiei.
Metodele sunt proceduri care sunt asociate cu un obiect. Metodele sunt diferite de procedurile
normale din Visual FoxPro: metodele sunt legate intrinsec de evenimente.
Evenimentele pot avea asociate metode. De exemplu, dac se scrie un cod pentru o metod
pentru evenimentul Click, acel cod este executat atunci cnd are loc evenimentul Click. De
asemenea, metodele pot exista independent de
icit n cod. Setul de evenimente este fix, nu se pot crea evenimente noi!
S considerm cteva evenimente asociate cu un obiect de tip check box:
Eveniment Descriere
Click Utilizatorul face click pe check box.
GotFocusUtilizatorul selecteaz check box cu mouse-ul sau
apsnd tasta [TAB].
LostFocus Utilizatorul selecteaz un alt obiect.
Metod Descriere
n tabelul de mai jos sunt date cteva metode asociate cu obiectul de tip check box:
RefreshValoarea din check box este actualizat pentru a reflecta orice
modificare aprut n datele surs.
SetFocusControlul este dat ctre check box ca i cum utilizatorul ar
apsa tasta TAB pentru a selecta check box.
Toate proprietile, evenimentele i metode asociate unui obiect sunt specificate n definirea clasei.
Programarea orientat spre obiecte este un sistem de programare care permite abstractizarea i
e nrudite pot avea amndou metodeDraw. O procedur transmite unstfel de obiect ca parametru poate apela metodaDraw fr a mai fi nevoie stie ce tip de obiect
organizarea modular de tip ierarhie i are caracteristici polimorfice, de motenire i ncapsulare.
Polimorfismul este abilitatea de a avea metode cu acelai nume, dar cu un coninut diferit pentru
clasele nrudite. Procedura de utilizare este determinat n momentul execuiei de ctre clasa unui
obiect. De exemplu, obiectela
7/30/2019 Baze de date 2
43/231
43 Baze de date
este
adaug o nou
roprietate IsBoldla un control de editare, orice subclas care are la baz clasa acestui control va
avea
mediul motenirii dac se face o modificare ntr-o clas, modificarea se reflect n
toate subclasele care aparin c t facut prin motenireduce beneficii n privina timpului i a efortului de proiectare. De exemplu, dac un productor de
lef
on cu butoane, va economisi mult munc dac va fi capabil s fac
modificrile n schema principali dac toate telefoanele realizate anterior pe baza acestei scheme
principale vor moteni automat modificrile aduse comparativ cu situaia n care ar trebui s fac
modificrile individual la toate telefoanele existente.
Dac se descoper o greeal n clasa de baz, n loc s fie modificat codul pentru fiecaresubclas se remediaz eroarea n clasa de bazi noua modificare se propag n toate subclasele
aferente.
ncapsularea n programarea orientat spre obiecte este legat de abilitatea de a conine i
ascunde informaiile despre un obiect, cum sunt cele referitoare la structura intern a datelor i
codul surs. ncapsularea izoleaz complexitatea intern a modului de operare a obiectului de restul
aplicaiei. De exemplu, cnd se fixeaz proprietatea Caption la un buton de comand nu estenecesar cunoaterea modului de stocare a irului de caractere. Se spune c obiectul din acest punct
de vedere este transparent. ncapsularea permite ca descrierea obiectelor s se fac astfel nct s nu
existe acces din afara obiectului la datele sale (black box).
Abstractizare este procesul de identificare a caracteristicilor distinctive a unei clase sau obiect fr
a fi nevoie de a procesa toate informaiile referitoare la clas sau obiect. Cnd se creaz o clas, de
exemplu, un set de butoane pentru navigare ntr-o tabel, setul se poate utiliza ca o singur entitate
n loc de a ine evidena componentelor individuale (butoane) i modul n care acestea
interacioneaz.
parametrul transmis. Polimorfismul reprezint posibilitatea ca diferitele obiecte s poat
rspunde diferit la aceleai mesaje.
Motenirea este un termen din programarea orientat spre obiecte i reprezint abilitatea unei
subclase de a prelua caracteristicile clasei printe (clasa de baz). Cnd caracteristicile clasei printe
se modific, subclasa derivat motenete noile modificri. De exemplu, dac se
p
de asemenea proprietateaIsBold. Asadar, motenirea reprezint capacitatea unui obiect de a-i
deriva datele i funcionalitatea din alte obiecte.
Prin inter
lasei respective. Aceast actualizare automaa
te oane dorete s schimbe modul de formare a numrului prin trecerea de la sistemul bazat pe
disc la sistemul de telef
7/30/2019 Baze de date 2
44/231
4. Com onentele func ionale ale sistemului Visual 44
Proiectarea i programarea orient schimbare a focalizarii activitii
de programarea procedural standard. n loc de a gndi schema logici algoritmul de la prima
dou tipuri de funcionalitate exist o interfa prin care utilizatorul poate
sch ui.
inc nimentelor
i m de
de mare ajutor cunoaterea ierarhiei obiectelor din Visual
Fox
at spre obiecte reprezint o
fa
linie la ultima linie de cod surs, trebuie s ne concentrm asupra crerii de obiecte autoconinute
ntr-o aplicaie care s posede att o funcionalitate privat ct i o funcionalitate expus
utilizatorului. ntre cele
imba anumite proprieti, dar nu are acces la codul surs intrinsec al obiectul
n Visula FoxPro videoformatele (Form) i controalele (Control) sunt obiecte care sunt
luse n aplicaii. Aceste obiecte pot fi manipulate prin intermediulproprietilor, eve
eto lor .4.2. Ierarhia claselor n Visual FoxPro
La crearea unei noi clase este
Pro, preluat din [8]:
7/30/2019 Baze de date 2
45/231
45 Baze de date
D VFP 6.0 (Figura 1) corespunde unui model complet relaional,co
in
(LMD). Tot aici sunt
QL este un subset din standardul SQL. Acesta este un limbaj relaional
dezvoltarea aplicaiilor cu baze de date relaionale.
D ), cereri de regsire
Fig. 1
4.2. Arhitectura VFP 6.0
Arhitectura SGBmponentele sale fiind structurate pe trei niveluri: nucleul (kernel), interfeele (interfaces) i
strumentele (toolkit).
1. Nucleul este componenta central a sistemului. Din nucleu fac parte:
Limbajul FoxPro care este propriu sistemului, este de tip procedural. El coine comenzi
att pentru descrierea datelor (LDD) ct i pentru m