Adatbázis alapú rendszerek (nappali)

Triggerek

Trigger 1: Alapok.

Trigger 2: További példák.
  1. 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.
  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:
oracle.jdbc.driver.OracleDriver
A 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:oracab10
A 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.
  1. 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.
  2. Feladat: Írjon PL/SQL programot, amely kiírja az emp tábla sorainak számát és az átlagfizetést. Megoldás.
  3. Feladat: Írjon PL/SQL programot, ami létrehozza és feltölti a fibon nevű táblát a Fibonacci sorozat elemeivel. Megoldás.
  4. 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.
  5. 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.
  6. 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!
  7. 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.
  8. 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.
  9. 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. Készítsük el a feladat 0., 1., és 2. szintű adat folyam diagramját!
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

Projektmunka

Linkek