Triggerek
Trigger 1: Alapok. Trigger 2: További példák.- Feladat: Hozzuk létre a RAPID RALLY autóversenyre benevezett versenyzők tábláját. Készítsünk triggert, amely minden beillesztett versenyzőhöz megkísérel alábbi feltételeknek megfelelő partnert keresni: 1) a partnerek nemzetisége egyezzen meg, 2) a partnerek minősítése legyen 20 ponton belül, 3) a feladatkörök illeszkedjenek. Tötse fel a partner oszlopokat(!) a feltételeknek megfelelően. Megoldás 1, Megoldás 2.
-
Feladat: Hozzuk létre a ALVÓ LAJHÁR Sport Egyesület által szervezett bajnokság adatbázisát.
Készítsünk triggert amelyik minden új résztvevő csapathoz legenerálja a lejátszandó mérkőzéseket a mérkőzések táblában.
Minden csapat egy mérkőzést játszik az adott bajnokság többi csapatával.
Megoldás 1, Megoldás 2.
Írjunk másik triggert amelyik egy résztvevő törlése esetén törli annak a mérkőzéseit is. Megoldás.
JDBC
JDBC - Oracle
Az adatbázis eléréséhez szükséges JDBC driver. Az eredeti
letölthető az Oracle oldaláról.
A driver osztály neve:
Feldat: Írjunk egy Java programot, ami feltölt egy táblát a Fibonacci sorozat elemeivel, aztán kilistázza azt! Használjunk Statement-et, ill. PreparedStatement-et!
Feldat: Írjunk egy Java programot, ami segít az elnöknek (president), karácsony alkalmából jutalmazni dolgozóit (önmagát nem!) az alábbi módon: 1) minden beosztott (akinek nincs további beosztottja) kapja meg a saját fizetése 10%-át jutalomként, 2) minden főnök (akinek van legalább egy beosztottja) kapja meg fizetése 8%-át, ha kettőnél több közvetlen beosztottja van, és 4%-át, ha legfeljebb kettő közvetlen beosztottja van. A jutalmazást a jutalék (comm) növelésével oldja meg!
oracle.jdbc.driver.OracleDriverA drivert tartalmazó jar fájlt el kell helyezni a CLASSPATH-ban. Az Oracle adatbázishoz kapcsolódás URL-je:
jdbc:oracle:thin:@home.cab.u-szeged.hu:1521:oracab10A Uzenofal.java program felépít egy kapcsolatot az adatbázissal és kiítja az uzenofal tabla tartalmat.
Feldat: Írjunk egy Java programot, ami feltölt egy táblát a Fibonacci sorozat elemeivel, aztán kilistázza azt! Használjunk Statement-et, ill. PreparedStatement-et!
Feldat: Írjunk egy Java programot, ami segít az elnöknek (president), karácsony alkalmából jutalmazni dolgozóit (önmagát nem!) az alábbi módon: 1) minden beosztott (akinek nincs további beosztottja) kapja meg a saját fizetése 10%-át jutalomként, 2) minden főnök (akinek van legalább egy beosztottja) kapja meg fizetése 8%-át, ha kettőnél több közvetlen beosztottja van, és 4%-át, ha legfeljebb kettő közvetlen beosztottja van. A jutalmazást a jutalék (comm) növelésével oldja meg!
HSQLDB
A HSQLDB egy java alapú adatbáziskezelő. Maga az adatbázis kezelő, a jdbc driver és az SQL kliens
is benne van a hsqldb.jar fájlban.
SQL kliens indítása oracle driverrel:
java -cp hsqldb.jar;ojdbc14.jar org.hsqldb.util.DatabaseManagerSwing
Hibernate
PL/SQL
Oracle dokumentáció SQL-hez és PL/SQL-hez a /pub/Adatbazisok/Adatb-alapu-rendsz könyvtárban. DEMO-1.sql script az EMP és DEPT táblák közvetlen létrehozásához. PL/SQL - I: Alapok, Változók, Vezérlési szerkezetek, Gyűjtőtáblák, Kivételkezelés. PL/SQL - II: Kurzorok, Alprogramok.- Feladat: Kérjen be két egész számot és döntse el, hogy az összegük páros-e vagy páratlan. Megoldás.
- Feladat: Írjon PL/SQL programot, amely kiírja az emp tábla sorainak számát és az átlagfizetést. Megoldás.
- Feladat: Írjon PL/SQL programot, ami létrehozza és feltölti a fibon nevű táblát a Fibonacci sorozat elemeivel. Megoldás.
- Feladat: Határozzuk meg egy PL/SQL program segítségével a felhasználó által megadott telephelyen dolgozók bérösszegét. Megoldás.
- Feladat: Hozzunk létre egy gyűjtőtáblát, tegyük bele az elemeket a demo.vevő táblából, adjuk hozzá még egy vevőt, módosítsuk a 22-es vevőt, töröljük ki a páratlan indexűeket, írjuk ki a tábla tartalmát. Megoldás.
- Feladat: Írjunk egy PL/SQL programot amely a CLERK munkakörű embereknek megemelí a fietését 20%-al. Indokoljuk meg miért hibás ez program! Javítsuk ki ROWID használatával! Javítsuk ki FOR UPDATE és CURRENT OF használatával!
- Feladat: Íjunk egy függvényt, amely paraméterében atadott számnál többet keresők átlagbérét adja vissza. Írjunk PL/SQL programot ami meghívja a függvényt és kiírja az eredményét. Megoldás.
- Feladat: Az emp táblából hozzon létre egy dolgozó táblát. Egy PL/SQL blokkot tartalmazó szkript programmal segítsen az elnöknek (president), aki a karácsony alkalmából jutalmazni akarja dolgozóit (önmagát nem!) az alábbi módon: 1) minden beosztott (akinek nincs további beosztottja) kapja meg a saját fizetése 10%-át jutalomként, 2) minden főnök (akinek van legalább egy beosztottja) kapja meg fizetése 8%-át, ha kettőnél több közvetlen beosztottja van, és 4%-át, ha legfeljebb kettő közvetlen beosztottja van. A jutalmazást a jutalék (comm) növelésével oldja meg. Megoldás.
- Feladat: A RAPID RALLY autóversenyre benevezett versenyzők adatbázis sémája: rally(név, nemzetiség, feladatkör, minősítés, partner). Készítsen PL/SQL programot, amely minden versenyzőhöz megkísérel az alábbi feltételeknek megfelelő partnert keresni: 1) a partnerek nemzetisége egyezzen meg, 2) a partnerek minősítése legyen 20 ponton belül, 3) a feladatkörök illeszkedjenek. Tötse fel a partner oszlopot a feltételeknek megfelelően. Megoldás.
SQL*Plus
SQL*Plus segédanyag Feladat: keszítsünk sql fájlt amely kiírja azon táblák nevét amelyek több sort tartalmaznak mint az 1. paraméter! Megoldás.Feladat: írassuk ki a 1. paraméternél több táblával rendelkező felhasználókat! Rávezetésként meg lehet oldani a "kinek hány táblája van"-feladatot. Megoldás.
SSADM
Feladat leírása: Dolgozók adatait nyilvántartó rendszer.- Dolgozó adatai: név, cím, fizetés, dolgozókód
- Login adatok: Usernév, jelszó, szerep(ek)
- A dolgozó csak lekérdezni tudja az adatait
- Az admin tud módosítani is
- Be- és kijelentkeztetés
- Jelszót csak az admin változtathatja meg
- Hibás jelszó esetén a rendszer hibaüzenetet küld
- Minden hónap végén autómatikusan készül egy jelentés a dolgozók adatairól és az összes kifizetésről. A jelentésből az admin és az irattár kap egy-egy példányt.
Készítsük el a folyamatok I/O diagramjait!
Készítsük el a folyamatok funkciómeghatározásait!
Készítsük el a feladat egyed-kapcsolat diagramját!
Készítsük el az egyed-esemény mátrixot! Készítsük el a szerep-funkció mátrixot!
1. gyakorlat
Követelmények ismertetése.Hallgatói h-s azonosítók összegyüjtése.
Gyakorlat menetrendje
- 02.03. Követelmények ismertetése
- 02.10. SSADM, projektek
- 02.17. SSADM, csapatok megalakítása
- 02.24. Oracle, SQL*Plus
- 03.03. PL/SQL
- 03.10. PL/SQL
- 03.17. 1. ZH.
- 03.24. PHP+MySQL, JDBC+Oracle
- 03.31. SSADM projektek bemutatása
- 04.07. Oracle triggerek
- 04.14. Tavaszi szünet
- 04.21. Oracle triggerek
- 04.28. 2. ZH.
- 05.05. Projektek bemutatása
- 05.12. Projektek bemutatása
Projektmunka
- A hallgatók csoportmunkában kidolgoznak egy-egy teljes adatbázis alkalmazást az SSADM tervezéstől a számítógépes implementációig.
- SSADM mintaprojektek
- Minimális SSADM követelmények: Szöveges feladatleírás, követelmény katalógus, Adatfolyam diagram(ok), Egyedmodell(ek), Funkció meghatározás, vagy egyed-esemény mátrix vagy szerep-funkció mátrix, Relációs adatelemzés (normalizálás, adattáblák leírása)
- Munkacsoportok: 2-4 fős csoportok lehetnek, ajánlott a 3 fő. Javasolható munkamegosztás: 1. személy: SSADM modell és dokumentáció. 2. személy: Adatbázis létrehozása (táblák és indexek), feltöltése (demó adatok), esetleg programmodulok (pl. triggerek, PL/SQL modulok). Esetleg hatékonysági teszt nagyobb adatmennyiséggel. 3. személy: Felhasználói felület, esetleg további programmodulok.
- Platform: A hallgatók választhatnak Oracle és PHP+MySQL között, egyeztetés alapján esetleg mást is, de Access-t nem.
- Értékelés. A csoportok az alábbi két értékelési módból választhatnak: a) A csoport tagjai közösen dolgoznak, minden tag ugyanannyi pontot kap. b) A csoport tagjai felosztják a munkát, értékelés egyénenként.
Linkek
- Kurzusleírás
- Katona Endre előadó honlapja.
- Balázs Péter gyakorlatvezető honlapja.
- SSADM mintaprojektek
- XAMP
- Oracle Database 10g Express Edition