ELTE, IP-08AB1G, BSc Adatbázisok-1, 2014/2015/II.félév
Hétfő 14:00-15:30 PC3, Kedd 12:15-13:45 és14:00-15:30 MI-labor
Előzetes információ az II.ZH-ról (12.gyakorlat)
      
Előző 11.gyak                        Következő 13.gyak
   

II.ZH témaköre:
I.rész  Papíros feladatok (Semmilyen segédeszköz nem használható!)
(45 perc) A papíros feladatokra kapható 24 pontból legalább 8 pontot kell elérni.
               4 feladat az alábbi négy feladattípusból:
1.feladattípus: Alapfogalmak (Tk 6.5-6.6., 7.1-7.4., 8.1-8.2.)
     -- Táblák tartalmának megváltoztatása, a tranzakciókezelés alapjai.
     -- Megszorítások. Nézettáblák.
2.feladattípus: Alapfogalmak (Tk 9.3-9.4.)
     -- Tárolt eljárások és függvények (PSM vagy PL/SQL)
     -- Kurzorral történő módosítások (PSM vagy PL/SQL)
3.feladattípus  - Rekurzió (Tk 10.2.)
     -- Rekurzív lekérdezések kifejezése rekurzív Datalogban és
     -- WITH RECURSIVE utasítással SQL3 szabványban.
4.feladattípus: E/K diagram átírása relációs modellre (Tk 4.5-4.6.)
     -- Adott E/K diagram átírása relációs modellé:
     -- egyedhalmazok és kapcsolatok átírása relációkká, összevonások
     -- gyenge egyedhalmazok kezelése, valamint
     -- osztályhierarchia ("isa") átalakítása relációkká (a háromféle megközelítésben).
   
II.rész Gépes feladatok (csak az Oracle on-line dokumentáció használható!)
(45 perc) A gépes feladatokra kapható 18 pontból legalább 6 pontot kell elérni.
               3 feladat az alábbi feladattípusokból:
1.feladattípus: Teljes SQL nyelv
- SQL DDL (táblák, megszorítások, nézetek),
- SQL DML (insert, delete, update),
- SQL SELECT további lehetőségei, például CONNECT BY
2-3.feladattípus: PL/SQL
- PL/SQL hivatkozási és komplex típusok, (implicit és explicit) kurzorok,
- PL/SQL tárolt eljárások és függvények, kivételkezelés
   
Gépes mintafeladatsor a II.ZH-hoz:
Előkészítés: Az sila.emp és sila.dept táblákból készítsünk saját myemp és mydept
táblákat. A további feladatok ezekre a myemp és mydept táblákra vonatkoznak.
A feladatok megoldása során létrehozhat és használhat megfelelő nézettáblákat.
    
1.feladat SQL DDL (create table|view) és DML (select, insert, delete, update)
Írjon SQL DDL és DML utasításokból álló script programot, amely... folyt.a)... stb.
A táblák tartalmának változásáról (vagyis a beillesztés, a törlés és az adatmódosítás
sikerességéről listázással győződjön meg, majd állítsa vissza az eredeti táblatartalmat!
   
a) A myemp táblából töröljük a legjobban fizetett Dallas-i dolgozót.
b) A myemp táblában növeljük meg a 'BLAKE' nevű dolgozó beosztottjainak
    fizetését az átlagfizetésük 20%-ával.
c) Készítsünk egy nézettáblát, amelyben képezzük osztályonként az összfizetést,
    majd ennek a felhasználásával adjuk meg, hogy mely osztályokon nagyobb
    az osztályonkánti összfizetések átlagánál az összfizetés.
d) Hierarchikus lekérdezéssel (CONNECT BY) jelenítsük meg a myemp táblából
    'FORD' beosztottjait, és jelöljük a szintet is: a közvetlen beosztottjára legyen 1,
     ha a közvetlen beosztott közvetlen beosztottja 2, stb) az összes beosztottjára.
    
2-3.feladat PL/SQL (kurzorok, tárolt eljárások és függvények, kivételkezelés)
   
a) Írjon PL/SQL függvényt, amely a myemp tábla alapján kiszámolja paraméterként
    megkapott nevű dolgozónak és a közvetlen beosztottjainak az átlagfizetését.
    Ha az adott dolgozónak nincs beosztottja, akkor értelemszerűen a dolgozó
    fizetését adja vissza. Hívjuk meg a függvényt 'BLAKE'-re.
   
b) Írjon PL/SQL eljárást, amely a myemp táblában megnöveli minden Dallas-i
    telephelyű dolgozók fizetését a saját fizetésének a 20%-ával, feltéve, hogy
    a fizetése 3000 USD alatt van. Ha 3000 USD-nél több lenne, akkor csak
    írjon ki egy szöveget.
   
Vissza a honlapra: Hajas Csilla © ELTE IK Információs Rendszerek Tanszék  ill. Fel a lap tetejére