Babeş–Bolyai Tudományegyetem Kolozsvár
Matematikai és Informatikai Kar  
 ____________  tanév,    I .  félév 

I.	A tantárgy adatai

A tantárgy neve: Adatbázis
Kód: MIH0002
Kreditszám: 6
Hol tartják?  (előadás, szeminárium, laboratórium):
Mikor tarják? (előadás, szeminárium, laboratórium):

II.	Az oktatók adatai 
 
Előadás
Név, tudományos cím: Varga Viorica, Dr.
Elérhetőség (e-mail, telefon): ivarga@cs.ubbcluj.ro, 0742-638017
Fogadóóra : szerda 10-12
Szeminárium
Név, tudományos cím: Varga Viorica, Dr.
Elérhetőség (e-mail, telefon): ivarga@cs.ubbcluj.ro, 0742-638017
Fogadóóra : szerda 10-12
Laboratórium 
Név, tudományos cím: Varga Viorica, Dr.
Elérhetőség (e-mail, telefon): ivarga@cs.ubbcluj.ro, 0742-638017
Fogadóóra : szerda 10-12

III.	A tantárgy leírása: 
Adatbázis alapok, adatmodellek, ebben a félévben a relációs adatmodell bemutatása. Relációs adatmodell tervezése egyed-kapcsolat diagram átalakítása segítségével és normalizálással. Adatbázis lekérdezése relációs algebra és SQL nyelv segítségével, adatkezelési műveletek elsajátítása. Egy vizuális környezet (a C# megismerése), melyben laboron az egyfelhasználós adatbázis projekt felületi részét készítheti a diák. Nem kötelező a C#, lehet más felületi szoftot is választani. Félév végén alapvető adatbázis fogalmakkal tisztában kell legyen a diák és képes kell legyen egyfelhasználós adatbázis projektet elkészíteni.

IV.	Kötelező könyvészet:
C. J. Date: An Introduction to Database Systems, 8th Edition, Pearson Education, Inc. Addison-Wesley Higher Education, 2004. (román fordítás)
H. Garcia-Molina, J. D. Ullman, J. Widom: Database System Implementation, Prentice Hall Upper Saddle River, New Jersey, 2000. (magyar fordítás)
J. D. Ullman, J. Widom: A First Course in Database Systems, Prentice Hall Upper Saddle River, New Jersey, 1997. (magyar fordítás)
R. Ramakrishnan: Database Management Systems, WCB McGraw-Hill, Boston, 1998.
I. Varga: Adatbázisrendszerek (A relációs modelltől az XML adatokig), Editura Presa Universitară Clujeană, 2005, p. 260.

V.	Az oktatásban használt eszközök:
Az előadás vetítés formájában történik. Az előadás anyagát a diákok megkapják. Bővebben az anyag megtalálható a könyvészetben. Laboron Visual Studio .NET-re és MS SQL Serverre van szükség, legalább 256 MHz-en működő számítógépek.

VI.	A tevékenységek és ellenőrzések/részleges vizsgák órarendje:

1. előadás: Adatbázis, adatbázis-kezelő rendszerek (ABKR) értelmezése. Adatbázisok ANSI/SPARC architektúrája, adatfüggetlenség. Adatbázisok nyelvei. ABKR-ek főbb részei.
2. előadás: Adatmodellek osztályozása. Egyed-kapcsolat adatmodell. Relációs adatmodell értelmezése, tulajdonságai. Egyed-kapcsolat diagram átírása relációs modellé.
3. előadás: Relációsémák létrehozása SQL nyelvben, adattípusok, alapértelmezés szerinti értékek. Megszorítások osztályozása, leírása SQL nyelvben.
4. előadás: Műveletek a relációs modellben. Relációs algebra. Lekérdezések megfogalmazása relációs algebra segítségével. Relációs algebrai műveletek tulajdonságai.
5. előadás: Az SQL lekérdezőnyelv. Egyszerű lekérdezések, több relációra vonatkozó lekérdezések, összesítő függvények és csoportosítás.
6. előadás: Alkérdések, korrelált alkérdések, más típusú összekapcsolási műveletek. Adatkezelési műveletek: beszúrás, törlés, módosítás.
7. előadás: Relációs adatbázisok tervezése. Funkcionális függőségek. Relációk veszteségmentes felbontása. Normalizálás. Első normál forma, második normál forma, harmadik normál forma, Boyce-Codd normál forma. 
8. előadás: Nézettáblák értelmezése, felhasználhatósági lehetőségek. Adatkezelési műveletek végrehajtása nézeten, nézet módosíthatósági feltételei.
9. előadás: Tárolt eljárások. Paraméterek, változók, sormutatók deklarálása, temporális táblák létrehozása, sormutató feldolgozása. Példák tárolt eljárásokra MS SQL Serverben, Oracle-ban.
10. előadás: Adatbázisok biztonsága. Tetszés szerinti és meghatalmazott hozzáférés ellenőrzés. Titkosítás. Oracle által javasolt biztonság politika. 
11. előadás: Adatbázisok kliens-szerver architektúrája. Kliens-szerver standardok. Kliens-szerver alkalmazások programozása. Beágyazott SQL, SQL API.
12 . előadás: Triggerek leírása, tervezése, példák triggerekre MS SQL Serverben, Oracle-ban.
13 . előadás: Adatbázisok fizikai szerkezete. Adatállományok típusa: heap file, kulcs szerint rendezett file, nyalábolt (clustered) file szerkezet. Pufferkezelés adatbázisokban.
14 . előadás: Index szerkezetek: fa típusú (ISAM, B+ fa), hash (lineáris és kiterjeszthető).

1. szeminárium: Adatbázis tervezés egyed-kapcsolat diagram segítségével. Diagram átírása relációs modellé. 
2. szeminárium: Lekérdezések megfogalmazása relációs algebra segítségével.
3. szeminárium: Lekérdezések megfogalmazása SQL nyelv segítségével. Egyszerűbb SELECT SQL parancsok.
4. szeminárium: Bonyolultabb SQL parancsok.
5. szeminárium: Adatbázis tervezés normalizálás segítségével.
6. szeminárium: Tárolt eljárások programozása MS SQL Serverben.
7. szeminárium: Triggerek programozása MS SQL Serverben. Ismétlés vizsgára. 
1. labor: Ismerkedés .NET-el, C#-al, egy egyszerű Console-os és Windows-os applikáció.
2. labor: Készítsünk egy verem osztályt, implementáljuk az ismert metódusait és egy ablakban listbox-ban jelenítsük meg a verem tartalmát. Nyomógombok segítségével tároljunk el (push) a veremben értékeket, illetve vegyük ki az értékeket (pop) a veremből.
3. labor: Egy ablak készítése, melyben egy szűrő feltételnek eleget tevő sorokat jelenítünk meg egy táblából az Engross adatbázisból datagrid segítségével. Egy kiválasztott sort tudjunk módosítani, törölni, a táblába új sort beszúrni. A külső kulcs esetén nem azonosítót kell megjeleníteni, hanem az apa táblából a megfelelő neveket.  
4. labor: Külső kulcsos megszorítások megfogalmazása és kipróbálása az Engross és Cipő adatbázisok esetén MS SQL Server és MS Access.
5. labor: Menürendszer kidolgozása az Engross adatbázis esetén, a lekérdezések a 6-7 labor esetén lesznek megoldva, meghívja a 3-as labor ablakát is és készít még egy ablakot egy másik tábla adatkezelési műveleteinek implementálására.
6. labor: Egyszerű SQL lekérdezések az Engross és Cipő adatbázisra vonatkozóan.
7. labor: Bonyolultabb SQL lekérdezések az Engross és Cipő adatbázisra vonatkozóan.
8. labor: Egyfelhasználós adatbázis projekt specifikációjának kidolgozása, mely tartalmazza az adatbázis egyed-kapcsolat diagramját, átírva relációs modellé is, formok tervezése, lekérdezések leírása. Az adatbázis legalább 10 táblát kell tartalmazzon.
9. labor: Laborvizsga SQL nyelvből.
10. labor: Adatbázis létrehozása, megszorítások, indexek  teszt adatokkal való feltöltése a projekt esetén. 
11. labor: Menürendszer és főprogram a projekt esetén.
12. labor: Adatkezelési műveletek leadása legalább 5 táblára a projekt esetén.
13. labor: Lekérdezések leadása, 10 egyszerű, 10 bonyolultabb lekérdezés a projekt esetén.
14. labor: Projekt végleges formájának leadása.
 
VII.	Az értékelés módja:
1. Labor 			30 pont (10 pont 1-7 leadott labor, 20 pont projekt) 
2. Labor vizsga 		10 pont
3. Előadási tevékenység	 5 pont
4. Szemináriumi tevékenység	 5 pont
5. Irásbeli vizsga		40 pont
6. Zárthelyi			10 pont

VIII.	Szervezési kérdések, a különleges esetek kezelése:
  Vizsgára való jelentkezés feltételei: maximum 3 hiányzás laboron, laborvizsgán minimum 5 pont, zárthelyin minimum 5, laboron minimum 15 pont.
   Írásbeli vizsgának van tervezési része és lekérdezés megfogalmazás, mindegyik 20-20 pontot ér, átmenőre minimum 10 pont-10 pontot be kell gyűjteni.  

IX.	Ajánlott, de nem kötelező könyvészet:
S. Abiteboul, R. Hull, V. Vianu: Foundations of Databases, Addison-Wesley Publishing Company, 1995.
E. Codd: A Relational Model of Data for Large Shared Data Banks, Communications of ACM, 13(6), pp: 377-387, 1970.
E. F. Codd: Relational Databases: A Practical Foundation for Productivity, Communication ACM, pp: 109-117, 1982.
B. Halassy: Az adatbázis tervezés alapjai és titkai, IDG Hungary, 1994.
P. Helman: The science of Database Management, Irwin, 1994.
L. Tambulea: Baze de date, Litografiat Cluj-Napoca 2003.
J. D. Ullman: Principles of Databases and Knowledge-Base Systems, Vol I: Classical Database Systems, Computer Science Press, New York, 1988.
J. D. Ullman: Principles of Databases and Knowledge-Base Systems, Vol II: The New Technologies, Computer Science Press, New York, 1989.