Universitatea Babeş-Bolyai Cluj-Napoca
Facultatea de Matematică şi Informatică
Ciclul de studii: Licenţă
Domeniul: Matematică
Programul de studii: Matematică informatică - linia de studiu română
Limba de predare: Română

SYLLABUS

I. Date generale
Codul	Disciplina	
MIH0002	Baze de date	

Semestrul	Ore: C+S+L	Categoria	Statutul	
5	2+0+2	specialitate	obligatorie	

II. Cadre didactice cu norma de bază în Universitate
Numele şi	Titlul	Gradul	Catedra	Tipul activităţii	
prenumele	ştiinţific	didactic		C	S	L	
ŢÂMBULEA Leon	Dr.	Prof.	Sisteme Informatice	*			
SABĂU Andreea	Dr.	Lect.	Sisteme Informatice		*	*	

Cadre didactice asociate
Numele şi	Titlul	Instituţia	Tipul	Tipul activităţii	
prenumele	ştiinţific		postului	C	S	L	

III. Obiectivele disciplinei
1. Cunoasterea conceptelor generale privind bazele de date.
2. Cunoasterea modelelor de descriere a datelor, in special al modelului relational.
3. Gestiunea bazelor de date in .Net.	

IV. Conţinutul disciplinei
1. Conceptele bazelor de date.
2. Arhitectura sistemelor de gestiune a bazelor de date.
3. Modelul relational de organizare a bazelor de date. Dependente functionale intr-o relatie.  
4. Interogarea bazelor de date relationale cu algebra relationala. 
5. Gestiunea bazelor de date cu limbajul SQL. 
6. Protectia si securitatea bazelor de date.
7. Structura fizica a bazelor de date. Structura fisierelor. Organizarea fisierelor. Organizarea secventiala. Organizarea secvential-indexata. Memorarea fisierului sub forma unui arbore binar. Memorarea fisierului sub forma unui 2-3 arbore. Memorarea fisierului sub forma unui B-arbore. Organizarea directa. Regasirea dupa valorile mai multor atribute. Organizarile multiindexata, multilista si inversata.
8. Optimizarea interogării bazelor de date.	

V. Bibliografie
[Ba97] BÂSCA, O., Baze de date. Editura All, Bucuresti 1997.
[Da04] DATE, C.J., An Introduction to Database Systems (8th Edition), Addison-Wesley, 2004.
[Ga08] GARCIA-MOLINA, H., ULLMAN, J.,  WIDOM, J., Database Systems: The Complete Book, Pearson Prentice Hall, 2008 
[Iowww] IONESCU, F. Baze de date - Proiectarea bazelor de date, http://info.tech.pub.ro/BD/curs.html
[Kn76] KNUTH, D.E., Tratat de programare a calculatoarelor. Sortare şi căutare. Ed.Tehnica, Bucuresti 1976.
[Li05] LITCHFIELD, D., ANLEY, C., HEASMAN, J., GRINDLAY, B., The Database Hacker's Handbook: Defending Database Servers, John Wiley & Sons, 2005.
[Ra07] RAMAKRISHNAN, R., Database Management Systems. McGraw-Hill, 2007, http://pages.cs.wisc.edu/~dbbook/openAccess/thirdEdition/slides/slides3ed.html
[Si10] SILBERSCHATZ A., KORTZ H., SUDARSHAN S., Database System Concepts, McGraw-Hill, 2010, http://codex.cs.yale.edu/avi/db-book/
[Ta03] TAMBULEA, L. Baze de date, Litografiat Cluj-Napoca 2003.
[Ul11] ULLMAN, J.,  WIDOM, J., A First Course in Database Systems (3rd Edition), Addison-Wesley + Prentice-Hall, 2011.	

VI. Tematica activităţilor didactice pe săptămâni
Curs:
Curs:
1. Conceptele bazelor de date
•	Componentele unei aplicaţii: date (memorate în fişiere sau baze de date), algoritm, interfaţa
•	Evoluţia sistemelor de gestiune automata a datelor: fişiere independente  baze de date  baze de date distribuite
•	Caracteristici fişiere: există diverse organizări, există redundanţă  inconsistenţă, descrierea în program a operaţiilor de citire/scriere  se ia în considerare o structură a înregistrărilor (greutăţi la dezvoltarea unei aplicaţii prin schimbarea structurii fişierelor), complexitatea actualizărilor, lipsa procedurilor de securitate şi integritate
•	Baze de date. Separarea între: definirea datelor (păstrată într-un dicţionar al bazei de date), gestiunea datelor (adăugare, ştergere, modificare date), interogare
•	Sisteme de gestiune a bazelor de date; funcţiile unui SGBD (definire, gestiune date, administrare, protecţie)
•	Structurile unei baze de date: structura virtuală (structura conceptuală, schema), structuri logice (subscheme), structura fizică
•	Independenţa logică şi independenţa fizică
•	Arhitectura (componentele) sistemelor de gestiune a bazelor de date
2. Modelul relaţional de organizare a bazelor de date
•	Relaţie: schema, cheie (primară, secundară)
•	Restricţii de integritate
•	Baze de date relaţionale
•	Gestiunea bazelor de date relaţionale
3-4. Limbaje pentru gestiunea bazelor de date relaţionale: SQL - Structured Query Language 
•	Prezentare SQL
•	Instrucţiuni de definire, modificare definiţii
•	Instrucţiuni pentru gestiunea datelor
•	Interogarea bazelor de date, instrucţiunea SELECT
•	Funcţii de agregare
•	Extensii ale clauzelor de grupare: grouping sets, rollup, cube
•	Functii analitice: funcţie_analitica([argumente]) over (partitie ordonare)
Rezultatul evaluării funcţiilor analitice. Utilizarea funcţiilor: count, avg, sum, max, min, var/variance, stdev, row_number, rank, dense_rank
5. Interogarea bazelor de date relaţionale cu operatori din algebra relaţională.
6-7. Formele normale ale unei relaţii dintr-o baza de date relaţională
•	Dependenţe funcţionale 
•	Formele normale ale unei relaţii (se cer primele trei forme normale): definiţie, exemple, transformarea unei relaţii pentru a fi de o anumită formă normală
8-9. Evaluarea interogărilor
•	Etape în procesarea unei interogări
•	Determinarea unei forme interne pentru interogare (transformarea unei interogări din sql într-o expresie din algebra relaţională)
•	Transformarea expresiilor relaţionale 
•	Generarea planului de execuţie
•	Evaluarea operatorilor relaţionali
10-13. Structura fizică a bazelor de date. Structura fisierelor. Organizarea indexurilor.
•	Structura fişierelor. Probleme ce trebuie rezolvate: ştergerea unei înregistrări, gruparea înregistrărilor în blocuri, memorarea înregistrărilor de lungime variabilă, gestiunea zonelor tampon
•	Tipuri de căutări în colecţiile de date. 
•	Căutarea secventiala, complexitatea algoritmului (numărul mediu de comparaţii)
•	Căutarea în colecţii de date ordonate, algoritmul de căutare binară (complexitatea algoritmului, numărul maxim de comparaţii)
•	Memorarea indexurilor ca: 
-	arbori binari: mod de memorare, operaţii în arbore, "echilibrarea" arborilor
-	2,3-arbori: definire, mod de memorare, operaţii de căutare, adăugare, ştergere
-	B-arbori: definire, memorare, operaţii
-	B+-arbori: mod de construire
•	Organizarea directă, metode de rezolvare a coliziunilor
•	Index pentru atribute/expresii care nu sunt chei
14. Protectia şi securitatea bazelor de date.
•	Informaţii memorate în dicţionar despre utilizatori
•	Corectitudinea programelor utilizator
•	Injecţia SQL
Extensii ale modelului relaţional.

Seminar:
1.	Framework-ul .NET şi VB.NET 
2.	Modelarea unei bd entitate-relaţie şi transformarea la model relaţional 
3.	Limbajul SQL 
4.	ADO.NET 
5.	Algebra relaţională
6.	Organizarea fişierelor şi indecşi – organizarea hash şi ca B-arbori

Laborator: se vor da 6 teme de laborator care vor fi rezolvate în VB.NET
1.	Organizarea şi gestionarea datelor din fişiere în.NET (Săptămânile 1, 2)
2.	Modelarea unei bd în entitate-relaţie şi implementarea ei în MS Access (Săptămâna 3, 4)
3.	SQL – 1 (Săptămâna 5)
4.	SQL – 2 (Săptămânile 6, 7)
5.	Acces la date folosind ADO.NET – Connection, Command, DataReader (Săptămânile 8, 9)
6.	Acces la date folosind ADO.NET – Connection, DataSet (Săptămânile 10, 11)
7.	Recapitulare (Săptămâna 12)
Examen practic (Săptămânile 13, 14)	

VII. Metode didactice folosite
Expunerea cunoştinţelor noi. Demonstraţia facilităţilor prin diferite aplicaţii.	

VIII. Evaluare
Activitatea de la seminar, laborator si o proba practica va avea fiecare ponderea de 50% din nota finala. Examenul din sesiune va fi scris si va avea ponderea de 50%.
Pentru promovare, e necesar ca fiecare dintre note să fie cel puţin 5.	

IX. Bibliografie suplimentară
Documentatie Dot Net, medii vizuale.	

	Decan,							Sef de catedra,

	Data,							Titular curs,
	15.10.2010						Prof. Dr.  ŢÂMBULEA Leon