Facultatea de Inginerie Departamentul de Automatic, Energie i Mediu
LECTOR DR. ADRIAN RUNCEANU
Curs 1 Noiuni introductive despre teoria general a bazelor de date 03.03.2013 Curs 1 - BAZE DE DATE 2 Cteva precizri Structura cursului
2 ore curs titular curs Lector dr. Adrian Runceanu
2 ore laborator titular aplicaii practice Prep.ing. Alina Dinc 03.03.2013 Curs 1 - BAZE DE DATE 3 Cteva precizri Forme de examinare:
Examen final (verificare) 60% Evaluare pe parcursul semestrului a activitii de laborator 30% Prezena pe parcusul semestrului 10% 03.03.2013 Curs 1 - BAZE DE DATE 4 Cteva precizri Bibliografia necesar cursului:
1. Dezvoltarea bazelor de date n Oracle 9i prin exemple, Dan Hotka, Editura All, 2002. 2. An Introduction to Database Systems, C. J. Date, Addison-Wesley Publishing Company, New York, 1995. 3. Database Management Systems, Ramakrishnan, R., New York: McGraw-Hill, 1998. 4. SQL. Dialecte DB2, Oracle, Visual FoxPro, M. Fotache, ed. Polirom, 2001. 5. Baze de date Visual Foxpro 6.0 ndrumar de laborator, autori Marian Popescu, Adrian Runceanu, Editura Academica Brncui, Trgu-Jiu, 2007. 03.03.2013 Curs 1 - BAZE DE DATE 5 Cteva precizri Referina bibliografic nr. 5 se poate mprumuta de la Biblioteca Facultii de Inginerie, Str. Geneva nr.3, Etaj I lng Decanat.
1. Suport curs - varianta electronic disponibil pe site-ul: www.runceanu.ro/adrian
2. ndrumar de laborator - varianta electronic disponibil pe site pentru fiecare lucrare de laborator.
Not: Actualizarea site-ului se face sptmnal. 03.03.2013 Curs 1 - BAZE DE DATE 6 Coninutul cursului n cadrul acestui curs se vor studia bazele de date prelucrate cu ajutorul sistemului de gestiune a bazelor de date
ORACLE Database 11g Express Edition
Limbajul de programare a bazelor de date n care se vor face exemplificrile noiunilor teoretice va fi SQL (Structured Query Language). 03.03.2013 Curs 1 - BAZE DE DATE 7 Noiuni introductive despre teoria general a bazelor de date 1.1. Sisteme de baze de date 1.2. Modelul de date relaional 1.3. Modelul de date orientate obiect 03.03.2013 Curs 1 - BAZE DE DATE 8 1.1.Sisteme de baze de date Un sistem de baze de date este un sistem computerizat de eviden a informaiilor. Informaia ntr-un sistem de baze de date consta att din date ct i din informaii despre date (metadate) cum ar fi relaiile dintre date. 03.03.2013 Curs 1 - BAZE DE DATE 9 1.1.Sisteme de baze de date Un sistem de baze de date poate fi considerat ca avnd patru pri: 1. date
2. utilizatori
3. hardware
4. software 03.03.2013 Curs 1 - BAZE DE DATE 10 1.1.Sisteme de baze de date Datele: Sunt informaii pe care diferii utilizatori (firme, agenii, sau simpli utilizatori) le colecteaz pentru a-i ndeplini scopurile sau misiunile. Datele individuale sunt stocate n mulimi de date relaionate (legate) numite nregistrri. O colecie de nregistrri dependente se numete baz de date. 03.03.2013 Curs 1 - BAZE DE DATE 11 1.1.Sisteme de baze de date Utilizatorii: Diferite persoane sau grupuri de persoane care folosesc informaiile sunt definite ca utilizatori.
Hardware: De obicei noiunea de hardware const din device-uri fizice, cum ar fi harddisk-uri, imprimante, interfee de intrare/ieire i procesorul de date cu memoria sa asociat. 03.03.2013 Curs 1 - BAZE DE DATE 12 1.1.Sisteme de baze de date Software: Interfaa dintre datele fizice i utilizatorul se numete Sistemul de Gestiune a Bazelor de Date (SGBD). SGBD-ul este un sistem software, dar poate conine i hardware specializat pentru a gestiona mai eficient datele. Aceste componente hardware pot fi harddisk-uri speciale care permit un acces mai rapid la date, sau multiprocesoare care permit procesarea paralel de date. 03.03.2013 Curs 1 - BAZE DE DATE 13 1.1.Sisteme de baze de date SGBD-ul furnizeaz diferiilor utilizatori ai bazei de date, diferite modaliti de lucru cu date n funcie de necesitile fiecruia. Aceste diferite modaliti de lucru cu datele reprezint diferite nivele de abstractizare al datelor: Nivelul fizic Nivelul conceptual Nivelul de vizualizare 03.03.2013 Curs 1 - BAZE DE DATE 14 1.1.Sisteme de baze de date Nivelul fizic este cel mai de jos nivel de abstractizare. De obicei, acest nivel este utilizat de programatorii SGBD- ului, care sunt interesai de cum anume se memoreaz datele pe suportul fizic. 03.03.2013 Curs 1 - BAZE DE DATE 15 1.1.Sisteme de baze de date Nivelul conceptual este nivelul de mijloc al abstrctizrii, i care se concentreaz pe descrierea datelor care sunt n baza de date i pe relaiile dintre aceste date. De acest nivel de abstractizare sunt interesai: Administratorii bazei de date Administratorii securitii bazelor de date. 03.03.2013 Curs 1 - BAZE DE DATE 16 1.1.Sisteme de baze de date Nivelul de vizualizare este cel mai nalt nivel de abstractizare. De obicei, acest nivel este modalitatea prin care utilizatorii finali folosesc datele. Fiecare utilizator final are o vizualizare specific asupra datelor pe care l interezeaz. Aceast vizualizare a datelor nu presupune ca utilizatorul s stie sau s neleag caracteristicile interne ale datelor (cum ar modalitatea lor de reprezentare sau de stocare). 03.03.2013 Curs 1 - BAZE DE DATE 17 1.1.Sisteme de baze de date Modelele bazelor de date permit diferenierea dintre descrierea bazei de date, care este specificat n schem, i colecia de coninuturi sau de valori ale datelor din baza de date la un moment dat, care se numete instan. 03.03.2013 Curs 1 - BAZE DE DATE 18 1.1.Sisteme de baze de date Schema bazei de date utilizeaz un limbaj de definire a datelor (DDL Data Definition Language). Manipularea datelor n baza de date (inserare, tergere, actualizare, sau recuperare de valori de date) se poate face cu ajutorul limbajului de manipulare datelor (DML Data Manipulation Language). 03.03.2013 Curs 1 - BAZE DE DATE 19 1.1.Sisteme de baze de date SGBD-ul utilizeaz o mulime complex de componente software pentru a-i ndeplini funciile sale. Aceste componente includ: - managerul de date care furnizeaz o interfa ctre datele stocate fizic n baza de date; - procesorul de interogri care traduce limbajul de interogare n instruciuni pentru managerul de date; 03.03.2013 Curs 1 - BAZE DE DATE 20 1.1.Sisteme de baze de date - precompilatorul limbajului de manipulare a datelor care transform instruciunile DML de la programele de aplicaii la limbajul gazd, i lucreaz cu procesorul de interogri; - compilatorul limbajului de definiie a datelor care transform instruciunile DDL n tabele de metadate. 03.03.2013 Curs 1 - BAZE DE DATE 21 1.1.Sisteme de baze de date
Metadatele sunt memorate n dicionarul de date, care include: structura bazei de date sau schema constrngerile de integritate constrngerile de securitate 03.03.2013 Curs 1 - BAZE DE DATE 22 Modele de baze de date Vom prezenta acum dou din modele de baze de date care sunt cele mai utilizate: 1. Modelul de date relaional
2. Modelul de date orientate obiect 03.03.2013 Curs 1 - BAZE DE DATE 23 Noiuni introductive despre teoria general a bazelor de date 1.1. Sisteme de baze de date 1.2. Modelul de date relaional 1.3. Modelul de date orientate obiect 03.03.2013 Curs 1 - BAZE DE DATE 24 1.2.Modelul de date relaional O baz de date este reprezentat cu ajutorul modelului relaional ca o colecie de tabele. Mult mai important, este faptul c acest model este direct legat de conceptul matematic de relaie i este compus din: 1. o parte structural. Schema bazei de date este o colecie de scheme de relaii i o baz de date este o colecie de relaii. 2. o parte de integritate. Chei primare i chei strine. 3. o parte de manipulare. Algebra relaional i calcul relaional. 03.03.2013 Curs 1 - BAZE DE DATE 25 1.2.Modelul de date relaional Formal, o relaie R este o mulime, unde D 1 , D 2 , ..., D n sunt domeniile a n atribute A 1 , A 2 , ..., A n . Elementele relaiei sunt n-tuplurile (v 1 , v 2 , ..., v n ) cu v i D i , adic valoarea celui de-al i-lea atribut trebuie s fie un element din mulimea D i . Elementele dintr-un tuplu sunt numite cmpuri. Cnd un camp nu conine nici o valoare, vom reprezenta acest fapt cu o valoare special numit valoare null, semnificnd c nu este nici o intrare n loc de intrarea este necunoscut. 03.03.2013 Curs 1 - BAZE DE DATE 26 1.2.Modelul de date relaional Prezentm n continuare un exemplu de tabel pentru gestiunea studenilor dintr-o facultate: CODSTUD NUMEPREN AN FACULTATE GRUPA MEDADM 101 Popa Ionel 4 Inginerie 145 10.00 102 Popescu Vasile 1 Drept 113 9.24 103 Badea George 1 Inginerie 112 8.79 104 Achim Mimi 2 Economic 126 9.31 105 Ionescu Mioara 3 Litere 132 10.00 03.03.2013 Curs 1 - BAZE DE DATE 27 A t r i b u t e
T u p l u
1.2.Modelul de date relaional Constrngeri de integritate Constrngerile de integritate restricioneaz mulimea tuplu-rilor teoretice posibile la o mulime care este n mod practic cu semnificaie. Fie X i Y dou mulimi cu unul sau mai multe atribute A i , din schema relaional. Spunem c Y este dependent funcional de X, i notm acest lucru prin X Y, dac i numai dac nu este posibil s avem dou tupluri cu aceeai valoare pentru toate atributele din X dar cu valoare diferit pentru toate atributele din Y. 03.03.2013 Curs 1 - BAZE DE DATE 28
1.2.Modelul de date relaional
Cele mai importante constrngeri de integritate sunt: Constrngerea de integritate a entitii care stabilete c fiecare tuplu s fie unic identificat printr-o cheie i atributul cheie s nu poat fi null;
03.03.2013 Curs 1 - BAZE DE DATE 29 CODSTUD NUMEPREN AN FACULTATE GRUPA MEDADM 101 Popa Ionel 4 Inginerie 145 10.00 102 Popescu Vasile 1 Drept 113 9.24 103 Badea George 1 Inginerie 112 8.79 104 Achim Mimi 2 Economic 126 9.31 105 Ionescu Mioara 3 Litere 132 10.00 1.2.Modelul de date relaional
Constrgerea referenial de integritate stabilete c un n-tuplu dintr-o relaie care se refer la o alt relaie, trebuie s se refere la un n-tuplu care exist n acea relaie; aceast condiie se refer la cheile strine. 03.03.2013 Curs 1 - BAZE DE DATE 30 1.2.Modelul de date relaional O cheie candidat a unei relaii R este o mulime minim de atribute de care toate celelalte atribute ale lui R sunt dependente funcional. Cheia primar a unei relaii R este una din cheile candidat care a fost desemnat n acest scop. O cheie strin a unei relaii R este o mulime de atribute din schema relaional care formeaz o cheie primar pentru o alt relaie. 03.03.2013 Curs 1 - BAZE DE DATE 31 CODSTUD NUMEPREN AN FACULTATE GRUPA MEDADM 101 Popa Ionel 4 Inginerie 145 10.00 102 Popescu Vasile 1 Drept 113 9.24 103 Badea George 1 Inginerie 112 8.79 104 Achim Mimi 2 Economic 126 9.31 105 Ionescu Mioara 3 Litere 132 10.00 Noiuni introductive despre teoria general a bazelor de date 1.1. Sisteme de baze de date 1.2. Modelul de date relaional 1.3. Modelul de date orientate obiect 03.03.2013 Curs 1 - BAZE DE DATE 32 1.3.Modelul de date orientate obiect Bazele de date orientate obiect permit crearea unor obiecte complexe din componente mai simple, fiecare avnd atribute proprii i comportament specific. Aceste sisteme combin posibilitatea definirii i manipulrii structurilor complexe de date cu funcionalitatea unui limbaj de programare i tehnologia de gestiune a bazelor de date. 03.03.2013 Curs 1 - BAZE DE DATE 33 1.3.Modelul de date orientate obiect Modelele de date orientate obiect (MDOO) au fost create pentru a modela lumea real. De exemplu, limbajul C++ a fost dezvoltat pentru a crea modelul unui sistem telefonic. Conceptul fundamental al unui MDOO este obiectul. 03.03.2013 Curs 1 - BAZE DE DATE 34 1.3.Modelul de date orientate obiect ntr-un MDOO, orice entitate din lumea real este un obiect i reciproc, orice obiect reprezint o entitate a lumii reale. Un obiect reprezint un grup de date stucturate, identificate printr-o referin unic. Un obiect persistent este un obiect stocat n baza de date care are o durat de via mai mare dect a programului care l-a creat. Un obiect tranzitoriu este un obiect depus n memorie, a crui durat de via nu depete durata de via a programului care l-a creat. 03.03.2013 Curs 1 - BAZE DE DATE 35 1.3.Modelul de date orientate obiect Baza de date orientate obiect (BDOO) este o organizare coerent de obiecte persistente, partajate de utilizatori concureni. Prin urmare, BDOO este rezultatul aplicrii tehnologiei orientate obiect n domeniul stocrii i gsirii informaiilor.
Schema unei BDOO trebuie s includ: - definiiile structurale (atribute i tipuri) - comportamentale (metode) ale obiectelor 03.03.2013 Curs 1 - BAZE DE DATE 36 1.3.Modelul de date orientate obiect
Un sistem de gestiune al unei baze de date orientate obiect (SGBDOO) trebuie s ndeplineasc cerinele unui SGBD i s fie n plus, un sistem orientat pe obiecte. Aceste dou criterii genereaz o mulime de caracteristici ale unui SGBDOO. 03.03.2013 Curs 1 - BAZE DE DATE 37 1.3.Modelul de date orientate obiect
Putem accepta ca definiie minimal:
SGBDOO = SGBD + obiect + motenire + polimorfism 03.03.2013 Curs 1 - BAZE DE DATE 38 1.3.Modelul de date orientate obiect Caracteristicile obligatorii ale unui SGBDOO sunt: 1. Manipularea obiectelor atomice i complexe (colecii imbricate). Un constructor este o funcie asociat unei clase care permite crearea i iniializarea unui obiect (n memorie). Un destructor este o funcie asociat unei clase care permite distrugerea unui obiect. Noiunea de obiect complex s-a nscut prin aplicarea de constructori asupra obiectelor simple. O condiie privind constructorii, referitoare la MDOO, o constituie ortogonalitatea care presupune ca fiecare constructor s fie aplicabil fiecrui obiect. 03.03.2013 Curs 1 - BAZE DE DATE 39 1.3.Modelul de date orientate obiect 2. Persistena obiectelor. Obiectele pot persista mai mult dect programul care a creat aceste obiecte. 3. Concurena acceselor. BDOO poate s fie partajat simultan de ctre tranzaciile care o consult i o modific. 4. Fiabilitatea obiectelor. n cazul unei defeciuni, obiectele trebuie restaurate la starea pe care au avut-o nainte de defeciune. 03.03.2013 Curs 1 - BAZE DE DATE 40 1.3.Modelul de date orientate obiect 5. Uurina interogrii. Un obiect poate fi gsit utiliznd valorile atributelor sale, legturile cu alte obiecte sau metodele aplicate acestuia.
6. Identitatea obiectelor. Orice obiect trebuie s aib un identificator sistem. 03.03.2013 Curs 1 - BAZE DE DATE 41 1.3.Modelul de date orientate obiect 7. Motenirea (simpl). O clas poate fi specializarea altei clase i, prin urmare, poate s o moteneasc. Motenirea reduce efortul de programare. Exist mai multe modaliti de a moteni i anume prin: substituie incluziune restricie specializare 03.03.2013 Curs 1 - BAZE DE DATE 42 1.3.Modelul de date orientate obiect 8. Polimorfismul. Codul unei metode trebuie ales n funcie de parametrii si. 9. Extensibilitatea. SGBDOO trebuie s includ pe lng clasele sale i tipurile predefinite i instrumentele care s permit utilizatorului definirea unor noi clase i tipuri. 03.03.2013 Curs 1 - BAZE DE DATE 43 1.3.Modelul de date orientate obiect Dintre caracteristicile opionale ale unui SGBDOO amintim: Distribuia obiectelor. Aceast distribuie permite gestionarea obiectelor n diferite staii. Modelarea tranzaciilor evoluate. Ideea este de a accepta tranzacii imbricate care pot fi descompuse n subtranzacii. Versiuni ale obiectelor. Plecnd de la un anumit obiect, prin modificri succesive sau paralele, pot fi obinute mai multe versiuni ale obiectului. 03.03.2013 Curs 1 - BAZE DE DATE 44 1.3.Modelul de date orientate obiect Motenirea multipl. O clas (subclas) poate fi specializarea direct a unor supraclase i s moteneasc proprietile acestora. Mesajele de eroare. Este vorba de un mecanism de detectare i tratare a erorilor care implic faptul c dac ntr-o metod apare o eroare,este trimis un mesaj unei clase speciale definit anterior, care o va nregistra i o va trata corespunztor. 03.03.2013 Curs 1 - BAZE DE DATE 45 ntrebri? 03.03.2013 Curs 1 - BAZE DE DATE 46