SlideShare a Scribd company logo
Adatbázis alapú rendszerek 2. ZH
Adottak a (gyakorlatokon már korábban megismert) DEPT és az EMP adattáblák, az alábbi mezőkkel:
DEPT (DEPTNO NUMBER(2), DNAME VARCHAR2(14), LOC VARCHAR2(13))
EMP (EMPNO NUMBER(4), ENAME VARCHAR2(10), JOB VARCHAR2(9),
MGR NUMBER(4), HIREDATE DATE, SAL NUMBER(7,2),
COMM NUMBER(7,2), DEPTNO NUMBER(2))
1. Feladat (2.5 pont)
a.) Írj olyan triggert, mely hibaküldés segítségével megakadályozza új elemző (EMP.JOB =
'ANALYST') felvitelét az EMP adattáblába, amennyiben az adott részlegen az elemzők átlagos fizetése
jelenleg eléri vagy meghaladja a 3000-et, és az új alkalmazott felvétele csak növelné ezt az átlagot! A
megjelenő hibaüzenet: "Eleget fizetünk az elemzőknek!" legyen.
b.) Miután kész vagy, tiltsd le az imént létrehozott triggert, majd véglegesen töröld is azt (egy-egy
paranccsal)!
2. Feladat (2.5 pont)
a.) Hozz létre segédtáblát és trigger(eke)t, melyek segítségével számolod, hogy új alkalmazottak (az EMP
adattáblába történő) felvitelekor közülük hány fő rendelkezik jutalékkal (EMP.COMM) és 2000-nél
magasabb fizetéssel (EMP.SAL) egyaránt!
b.) Szúrj be egyszerre több, tetszőleges rekordot az EMP táblába egyetlen Oracle PL/SQL utasítással!
3. Feladat (2.5 pont):
Írj triggert, amely megakadályozza a nyári hónapokban történő adatmanipulációkat az értékesítési
("SALES") részleg adataiban a DEPT táblában. A hibaüzenetekben szerepeljen az is, hogy épp milyen
műveletet kíséreltek meg végrehajtani. (A tábla aktuális soránál az aktualizálás előtti állapotra a "regi", az
aktualizálás utáni állapotra pedig az "uj" kulcsszóval hivatkozz!)
4. Feladat (2.5 pont):
Írj triggert, mely új alkalmazott felvétele esetén megpróbál neki egy, az adatbázisban szereplő
alkalmazottak közül automatikusan egy főnököt keresni! Ez az alkalmazott tartozó rekord MGR oszlopának
kitöltésével – oda a főnök kódjának (EMP.EMPNO) felvitelével – történjen, a következő (meglehetősen
primitív) szempontok figyelembe vételével:
a.) csak az azonos részlegből kaphat főnököt az illető,
b.) a potenciális főnöknek legyen jutaléka
(itt kezelni kell azt az esetet is, amikor definiálatlan / nem szerepel érték)
c.) a főnök fizetése legalább 1000-el magasabb legyen a beosztotténál.
(Természetesen a feltételeknek megfelelő jelöltek közül egy tetszőlegesen választott hozzárendelhető az
alkalmazotthoz, akár az első találat is.)

More Related Content

PDF
e11debc0-6756-4c9e-a1af-2263419373af-151022195915-lva1-app6891
PDF
Econsultancy-Guide-to-LinkedIn-Marketing-Solutions
PDF
Minta zh1 mo_plusz
PPTX
Crypto failures every developer should avoid
PDF
Fraccionessss me
PDF
Brandverlauf
PPS
Leccinde vida24 2_2
PPTX
Deir el Medina architecture
e11debc0-6756-4c9e-a1af-2263419373af-151022195915-lva1-app6891
Econsultancy-Guide-to-LinkedIn-Marketing-Solutions
Minta zh1 mo_plusz
Crypto failures every developer should avoid
Fraccionessss me
Brandverlauf
Leccinde vida24 2_2
Deir el Medina architecture
Ad

Minta_Zh2

  • 1. Adatbázis alapú rendszerek 2. ZH Adottak a (gyakorlatokon már korábban megismert) DEPT és az EMP adattáblák, az alábbi mezőkkel: DEPT (DEPTNO NUMBER(2), DNAME VARCHAR2(14), LOC VARCHAR2(13)) EMP (EMPNO NUMBER(4), ENAME VARCHAR2(10), JOB VARCHAR2(9), MGR NUMBER(4), HIREDATE DATE, SAL NUMBER(7,2), COMM NUMBER(7,2), DEPTNO NUMBER(2)) 1. Feladat (2.5 pont) a.) Írj olyan triggert, mely hibaküldés segítségével megakadályozza új elemző (EMP.JOB = 'ANALYST') felvitelét az EMP adattáblába, amennyiben az adott részlegen az elemzők átlagos fizetése jelenleg eléri vagy meghaladja a 3000-et, és az új alkalmazott felvétele csak növelné ezt az átlagot! A megjelenő hibaüzenet: "Eleget fizetünk az elemzőknek!" legyen. b.) Miután kész vagy, tiltsd le az imént létrehozott triggert, majd véglegesen töröld is azt (egy-egy paranccsal)! 2. Feladat (2.5 pont) a.) Hozz létre segédtáblát és trigger(eke)t, melyek segítségével számolod, hogy új alkalmazottak (az EMP adattáblába történő) felvitelekor közülük hány fő rendelkezik jutalékkal (EMP.COMM) és 2000-nél magasabb fizetéssel (EMP.SAL) egyaránt! b.) Szúrj be egyszerre több, tetszőleges rekordot az EMP táblába egyetlen Oracle PL/SQL utasítással! 3. Feladat (2.5 pont): Írj triggert, amely megakadályozza a nyári hónapokban történő adatmanipulációkat az értékesítési ("SALES") részleg adataiban a DEPT táblában. A hibaüzenetekben szerepeljen az is, hogy épp milyen műveletet kíséreltek meg végrehajtani. (A tábla aktuális soránál az aktualizálás előtti állapotra a "regi", az aktualizálás utáni állapotra pedig az "uj" kulcsszóval hivatkozz!) 4. Feladat (2.5 pont): Írj triggert, mely új alkalmazott felvétele esetén megpróbál neki egy, az adatbázisban szereplő alkalmazottak közül automatikusan egy főnököt keresni! Ez az alkalmazott tartozó rekord MGR oszlopának kitöltésével – oda a főnök kódjának (EMP.EMPNO) felvitelével – történjen, a következő (meglehetősen primitív) szempontok figyelembe vételével: a.) csak az azonos részlegből kaphat főnököt az illető, b.) a potenciális főnöknek legyen jutaléka (itt kezelni kell azt az esetet is, amikor definiálatlan / nem szerepel érték) c.) a főnök fizetése legalább 1000-el magasabb legyen a beosztotténál. (Természetesen a feltételeknek megfelelő jelöltek közül egy tetszőlegesen választott hozzárendelhető az alkalmazotthoz, akár az első találat is.)