Jegyz könyv. Adatbázis-rendszerek II. Beadandó feladat. Miskolci Egyetem

Hasonló dokumentumok
Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17

Adatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN

Adatbázis Rendszerek II. 2. Ea: Gyakorló környezet

Tranzakciókezelés PL/SQL-ben

B I T M A N B I v: T M A N

Adatbázis Rendszerek I. 10. SQL alapok (DML esettanulmány)

Adatbázis Rendszerek II. 2. Gyakorló környezet

ADATBÁZIS RENDSZEREK I BEADANDÓ

SQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai

Adatbázis rendszerek SQL nyomkövetés

8. Gyakorlat SQL. DDL (Data Definition Language) adatdefiníciós nyelv utasításai:

Tábla létrehozása: CREATE TABLE alma( ID INT( 3 ) NOT NULL PRIMARY KEY, Leiras VARCHAR( 100 ) );

Kilencedik témakör: Lazarus-Firebird. Készítette: Dr. Kotsis Domokos

Adatbázisok* tulajdonságai

Adatbázis Rendszerek II. 6. PLSQL Triggerek 32/1B IT MAN

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni:

Adatbázis Rendszerek II. 8. Gyakorló környezet

Adatbázis kezelés Delphiben. SQL lekérdezések

ADATBÁZIS-KEZELÉS FÉLÉVES FELADAT

LBRA6i integrált rendszer

Adattípusok. Max. 2GByte

Adattípusok. Max. 2GByte

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE) október október 22. Adatbázisok 1 / 14

Adatbázis használat I. 5. gyakorlat

B I T M A N B I v: T M A N

Adatbázisok. 2. gyakorlat SQL november november 12. Adatbázisok 1 / 31

Csomag. Adatbázis-objektum Programozási eszközök gyűjteménye Két részből áll. specifikáció törzs (opcionális)

Tartalomjegyzék. Tartalomjegyzék 1. Az SQL nyelv 1 Az SQL DDL alapjai 2

Adatbázisok. 9. gyakorlat SQL: SELECT október október 26. Adatbázisok 1 / 14

Adatbázisok I. Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

B IT MAN 65/1. Adatbázis Rendszerek II. Ellenőrző kérdések APLSQL B IT MAN. v:

A relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai

Az SQL adatbázisnyelv: DML

SQL PÉLDATÁR. készült a PTE TTK Iskolai informatika III. kurzus teljesítésére

Adatbázis-kezelés. Harmadik előadás

Gyakorlás: Hozzunk létre egy Alkalmazottak táblát AZO szám, Részleg szöveg, Munkakör szöveg és BelépésDátuma dátum típussal.

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

SQL jogosultság-kezelés. Privilégiumok Grant és Revoke Grant Diagrammok

A trigger egy aktualizálási művelet esetén végrehajtandó programrészletet definiál. Alakja:

SQL DDL-2 (aktív elemek) triggerek

SQL- Utasítások csoportosítása Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

Java és web programozás

SQL haladó. Külső összekapcsolások, Csoportosítás/Összesítés, Beszúrás/Törlés/Módosítás, Táblák létrehozása/kulcs megszorítások

Adatbázis tartalmának módosítása

SQL DDL-1: táblák és megszorítások

BEVEZETÉS Az objektum fogalma

Táblakezelés: Open SQL Internal table. Tarcsi Ádám: Az SAP programozása 1.

Vizuális programozás gyakorlat

Kalmár György Adatbázis alapú rendszerek

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni:

Adatbázisok elmélete 9. előadás

Informatikai képzés Információs rendszerek dr. Hajas Csilla (ELTE IK)

PL/SQL (folytatás) Kurzorok, függvények, eljárások

Triggerek. Olyan névvel ellátott adatbázisobjektumok, amelyek eseményorientált feldolgozást tesznek lehetővé

B I T M A N B I v: T M A N

Adatbázis Rendszerek II. 4. PLSQL Kurzorok, hibakezelés 53/1B IT MAN

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

Adatbázis-kezelés, információs-rendszerek

Együttes hozzárendelés

Az SQL nyelv Structured Query Language (Struktúrált lekérdező nyelv)

Debreceni Egyetem Informatikai Kar TANULÓI NYILVÁNTARTÓ SZOFTVER FIREBIRD ADATBÁZIS ALKALMAZÁSÁVAL

SQLServer. DB Recovery modes

II. év. Adatbázisok és számítógépek programozása

Adatbázis-kezelés az Excel 2013-ban

Adabáziselérés ODBC-n keresztül utasításokkal C#-ban

Adatbázisok elmélete 10. előadás

AB1 ZH mintafeladatok. 6. Minősítse az állításokat! I-igaz, H-hamis

Relációsémák létrehozása SQL nyelvben

SQL. 1.rész. 1.elıadás // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1

Haladó DBMS ismeretek 1

Adatbázisban tárolt kollekciók

Webfejlesztés 4. alkalom

Bevezetés: az SQL-be

Adatbáziskezelés php-ben MySQL adatbáziskezelı rendszert használva

SQL/PSM kurzorok rész

Java és web programozás

SQL. Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések Nézettáblák

Összefoglaló. <variable_name> [IN OUT IN OUT] <data_type> [:=<default_value>] ... <label_name>: <statements>... GOTO <label_name>;...

Készítette: Szabóné Nacsa Rozália

5. téma XML DB. Az adatkezelés és XML kapcsolata. Miért fontos az XML használata az adatbázis kezelésben?

Bevezetés az SQL-be. Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009

Adatbázisok elmélete 9. előadás

Adatbázis-lekérdezés. Az SQL nyelv. Makány György

Adatbázis Rendszerek II. 3. SQL alapok

STRUCTURED QUERY LANGUAGE(SQL) - ALAPOK

Adatbázis rendszerek. Molnár Bence. Szerkesztette: Koppányi Zoltán

SQL OO elemei aktív komponensek

Gazdasági folyamatok térbeli elemzése. 5. elıadás

Megszorítások. AB1_06A_Megszorítások - Adatbázisok-1 EA (Hajas Csilla, ELTE IK) - J.D. Ullman elıadásai alapján

Adatbázis rendszerek tervezése

Adatbázisok webalkalmazásokban

BarAck.Net. Internetes csomagkezel. Felhasználói kézikönyv V 1.0. (2011. július 20.)

SQL parancsok feldolgozása

Elemi alkalmazások fejlesztése IV.

OO PDO. Tehát PDO használatával, könnyen átállhatunk egy másik adatbáziskezelőre, anélkül hogy a kódot teljes egészében újraírnánk.

Az indexelés újdonságai Oracle Database 12c R1 és 12c R2

Adatbázisok I. Jánosi-Rancz Katalin Tünde 327A 1-1

Az állományokban UTF-8 kódolással magyar betűk is vannak, ezért az az Unicode (UTF-8) kódolást.

Adatbázis Rendszerek I. 9. SQL alapok (DDL esettanulmány)

Spatial a gyakorlatban

Átírás:

Jegyz könyv Miskolci Egyetem Adatbázis-rendszerek II. Beadandó feladat Készítette: Er s Tamás Mihály (IEDBZO) 3. Évfolyam. Programtervez Informatikus Szak Miskolc, 2010

Feladat A feladat részletezése: 1. Rendszer szemantikai modelljének megalkotása 2. Relációs modell el állítása 3. Táblák létrehozása, feltöltése 4. Eljárások, függvények, csomagok megtervezése 5. Eljárások, függvények, csomagok implementálása 6. JAVA alkalmazás rövid felhasználói leírását (funkciók leírás, m ködése, esetleges képerny tervek) 2

Tartalomjegyzék 1. Fejleszt i dokumentáció 5 1.1. Feladat leírása......................... 5 1.2. ER-modell........................... 6 1.3. Relációs adatmodell...................... 6 1.4. Csomagok leírása....................... 7 1.4.1. pkg_kepregeny - A Kepregeny táblához tartozó csomag 7 1.4.2. pkg_kiado - A Kiado táblához tartozó csomag... 7 1.4.3. pkg_szereplo - A Szereplo táblához tartozó csomag. 7 1.4.4. pkg_szereplok - A Szereplok táblához tartozó csomag 7 1.5. Triggerek leírása........................ 7 1.6. JOB leíása........................... 8 1.7. A JAVA program paraméterezése............... 8 1.7.1. Rekordok paraméterezése direkt DML utasításokkal. 8 1.7.2. Rekordok törlése direkt DML utasításokkal..... 8 1.7.3. Rekordok módosítása direkt DML utasításokkal... 8 1.7.4. Rekordok paraméterezése tárolt eljárással...... 9 1.7.5. Rekordok törlése tárolt eljárással........... 9 1.7.6. Rekordok módosítása tárolt eljárással........ 9 1.7.7. Adatok lekérdezése egyes táblákra.......... 9 1.7.8. NAPLO tábla megtekintése, aktualizálása...... 10 1.8. Feladatok megoldása..................... 10 1.8.1. Táblák létrehozása.................. 10 1.8.2. Csomagok - Kiadó................... 10 1.8.3. Csomagok - Kepregeny................ 12 1.8.4. Csomagok - Szereplok................. 14 1.8.5. Csomagok - Szereplo................. 16 1.8.6. JOB létrehozása.................... 19 1.9. JAVA alkalmazás felhasználása................ 19 1.9.1. Menüsorban szerepl f menüpontok......... 19 1.9.2. "Kiadó tábla" menü elemei.............. 20 3

1.9.3. "Képregény tábla" menü elemei........... 20 1.9.4. "Szerepl k tábla" menü elemei............ 20 1.9.5. "Szerepl tábla" menü elemei............. 20 1.9.6. "Egyéb m veletek" menü elemei........... 20 1.9.7. "Modellek" menü elemei............... 20 1.9.8. "Információ" menü elemei............... 21 1.9.9. Felhasználás...................... 21 4

1. fejezet Fejleszt i dokumentáció 1.1. Feladat leírása Az adatbázis nyílvántartja, hogy mely képregénykiadóhoz mely képregény tartozik, valamint az adott kiadó mely szerepl i szerepelnek egy-egy képregényben. A kiadók esetén meg kell adni a kiadó nevét, kódját, és az, hogy hol helyezkedik el a központja. Képregény esetén a megadandó dolgok a képregény neve, ára, kódja, a legels rész kiadási dátuma, a kiadás gyakorisága hétben, és számított érték ebben az esetben a képregény jelenlegi részének a száma. Szerepl k esetén meg kell adni, hogy az adott szerepl él-e még, mi anve és azonosítója, és hogy jelenleg mely csapatnak a tagja. 5

1.4. Csomagok leírása 1.2. ER-modell 1.3. Relációs adatmodell 6

1.6. JOB leíása 1.4. Csomagok leírása 1.4.1. pkg_kepregeny - A Kepregeny táblához tartozó csomag PROCEDURE felvitel - Egy rekord beszúrása a táblába PROCEDURE torles - Egy rekord törlése a táblából PROCEDURE modosit - Egy rekord módosítása FUNCTION jelenlegi - Kiszámítja, hogy hanyadik rész van épp kiadva legutoljára 1.4.2. pkg_kiado - A Kiado táblához tartozó csomag PROCEDURE felvitel - Egy rekord beszúrása a táblába PROCEDURE torles - Egy rekord törlése a táblából PROCEDURE modosit - Egy rekord módosítása FUNCTION darab - Kiszámítja, hogy hány képregényt adott ki a kiadó eddig 1.4.3. pkg_szereplo - A Szereplo táblához tartozó csomag PROCEDURE felvitel - Egy rekord beszúrása a táblába PROCEDURE torles - Egy rekord törlése a táblából PROCEDURE modosit - Egy rekord módosítása FUNCTION halotttagokszama - Kiírja, hogy egy csapatnak hány halott tagja van eddig 1.4.4. pkg_szereplok - A Szereplok táblához tartozó csomag PROCEDURE felvitel - Egy rekord beszúrása a táblába PROCEDURE torles - Egy rekord törlése a táblából PROCEDURE modosit - Egy rekord módosítása FUNCTION aszsz - Megadja, hogy jelenlegi részben hány szerepl szerepel 1.5. Triggerek leírása Minden táblához tartozik egy trigger, ami naplózza a hozzá tartozó táblán elvégzett naplóm veleteket (DELETE, UPDATE, INSERT) kiado_trigger kepregeny_trigger szereplok_trigger szereplo_trigger 7

1.7. A JAVA program paraméterezése 1.6. JOB leíása A naploz eljárást futtatja naponta egyszer A naploz azokat a naplóbejegyzéseket, ahol a státuszmez értéke 1 (olvasott), 2-re (törlend re) állítja 1.7. A JAVA program paraméterezése 1.7.1. Rekordok paraméterezése direkt DML utasításokkal 1 2 i tábla_név adatok Példák: 1 2 i "kiado" "EDRFGZ" "DC" "USA" "New York" "Time Square" "66" 1 2 i "kepregeny" "SPMAN" "1988-09-16" "3400" "Superman" "451" "1" "DC" 1 2 i "szereplok" "Superman" "Batman" "341" "false" 1 2 i "szereplo" "Batman" "true" "JLA" "szuperh s" 1.7.2. Rekordok törlése direkt DML utasításokkal 1 2 d tábla_név kulcs Példák: 1 2 d "kiado" "EDRFGZ" 1 2 d "kepregeny" "SPMAN" 1 2 d "szereplo" "Batman" 1.7.3. Rekordok módosítása direkt DML utasításokkal 1 2 u tábla_név adatok Példák: 1 2 u "kiado" "EDRFGZ" "DC" "USA" "New York" "Time Square" "100" 1 2 u "kepregeny" "SPMAN2" "1988-09-16" "3400" "Superman" "455" "1" "DC" 1 2 u "szereplok" "Superman" "Batman" "341" "true" 1 2 u "szereplo" "Batman" "true" "Outsiders" "szuperh s" 8

1.7. A JAVA program paraméterezése 1.7.4. Rekordok paraméterezése tárolt eljárással 1 1 i tábla_név adatok Példák: 1 1 i "kiado" "EDRFGZ" "DC" "USA" "New York" "Time Square" "66" 1 1 i "kepregeny" "SPMAN" "1988-09-16" "3400" "Superman" "451" "1" "DC" 1 1 i "szereplok" "Superman" "Batman" "341" "false" 1 1 i "szereplo" "Batman" "true" "JLA" "szuperh s" 1.7.5. Rekordok törlése tárolt eljárással 1 1 d tábla_név kulcs Példák: 1 1 d "kiado" "EDRFGZ" 1 1 d "kepregeny" "SPMAN" 1 1 d "szereplo" "Batman" 1.7.6. Rekordok módosítása tárolt eljárással 1 1 u tábla_név adatok Példák: 1 1 u "kiado" "EDRFGZ" "DC" "USA" "New York" "Time Square" "100" 1 1 u "kepregeny" "SPMAN2" "1988-09-16" "3400" "Superman" "455" "1" "DC" 1 1 u "szereplok" "Superman" "Batman" "341" "true" 1 1 u "szereplo" "Batman" "true" "Outsiders" "szuperh s" 1.7.7. Adatok lekérdezése egyes táblákra 2 tábla_név Példák: 2 "kiado" 2 "kepregeny" 2 "szereplok" 2 "szereplo" 9

1.8. Feladatok megoldása 1.7.8. NAPLO tábla megtekintése, aktualizálása 3 naplo 3 akt 1.8. Feladatok megoldása 1.8.1. Táblák létrehozása CREATE TABLE Kiado (Kod char(10) PRIMARY KEY, Nev char(30), Orszag char(30), Varos char(30), Utca char(30), Hazszam number(4)); CREATE TABLE Kepregeny (Kod char(10) PRIMARY KEY, Kiadas date not null, Ar number(10), Nev char(20), Szam number(10), Gyakorisag number(2), Kiado REFERENCES Kiado); CREATE TABLE Szereplok (Kepregeny REFERENCES Kepregeny, Szereplo REFERENCES Szereplo, Debutalas number(10), Szerepele boolean); CREATE TABLE Szereplo (Azonosito char(10) PRIMARY KEY, Ele boolean, Csoportnev char(20), Csoporttipus char(20)); 1.8.2. Csomagok - Kiadó CREATE OR REPLACE PACKAGE pkg_kiado IS PROCEDURE felvitel (kod0 in kiado.kod%type, nev0 in kiado.nev%type, orszag0 in kiado.orszag%type, varos0 in kiado.varos%type, utca0 in kiado.utca%type, hazszam0 in kiado.hazszam%type); PROCEDURE torles (kod0 in kiado.kod%type); PROCEDURE modosit (kod0 in kiado.kod%type, nev0 in kiado.nev%type, orszag0 in kiado.orszag%type, varos0 in kiado.varos%type, utca0 in kiado.utca%type, hazszam0 in kiado.hazszam%type); FUNCTION darab (kod0 in kiado.kod%type) RETURN NUMBER; END pkg_kiado; CREATE OR REPLACE PACKAGE BODY pkg_kiado IS PROCEDURE felvitel (kod0 in kiado.kod%type, nev0 in 10

1.8. Feladatok megoldása kiado.nev%type, orszag0 in kiado.orszag%type, varos0 in kiado.varos%type, utca0 in kiado.utca%type, hazszam0 in kiado.hazszam%type) IS db number; SELECT count(*) INTO db FROM kiado WHERE kiado.kod=kod0; IF (db>0) THEN RAISE_APPLICATION_ERROR(-20001, 'A beszúrás nem végezhet el! Hiba: Már van ilyen kulcs.'); INSERT INTO Kiado VALUES (kod0, nev0, orszag0, varos0, utca0, hazszam0); PROCEDURE torles (kod0 in kiado.kod%type) IS db number, db_kepregeny number; SELECT Count(*) INTO db FROM kiado WHERE kiado.kod=kod0; SELECT count(*) INTO db_kepregeny FROM kepregeny WHERE kepregeny.kiado=kod0; IF (db=0) THEN RAISE_APPLICATION_ERROR(-20002, 'A törlés nem végezhet el. Hiba: Nincs ilyen kulcs!'); IF (db_kepregeny>0) THEN RAISE_APPLICATION_ERROR(-20400, 'A törlés nem végezhet el! Hiba: Küls kulcs hivatkozik ide a Képregény táblából'); DELETE FROM kiado WHERE kiado.kod=kod0; PROCEDURE modosit (kod0 in kiado.kod%type, nev0 in kiado.nev%type, orszag0 in kiado.orszag%type, varos0 in kiado.varos%type, utca0 in kiado.utca%type, hazszam0 in kiado.hazszam%type) IS db number; 11

1.8. Feladatok megoldása SELECT Count(*) INTO db FROM kiado WHERE kiado.kod=kod0; IF (db=0) THEN RAISE_APPLICATION_ERROR(-20002, 'A törlés nem végezhet el. Hiba: Nincs ilyen kulcs!'); UPDATE kiado SET kiado.kod=kod0, kiado.nev=nev0, kiado.orszag=orszag0, kiado.varos=varos0, kiado.utca=utca0, kiado.hazszam=hazszam0 WHERE kiado.kod=kod0; FUNCTION darab (kod0 in kiado.kod%type) RETURN NUMBER IS db number SELECT (*) INTO db WHERE kepregeny.kiado=kod0; RETURN db; END pkg_kiado; 1.8.3. Csomagok - Kepregeny CREATE OR REPLACE PACKAGE pkg_kepregeny IS PROCEDURE felvitel (kod0 in kepregeny.kod%type, kiadas0 in kepregeny.kiadas%type, ar0 in kepregeny.ar%type, nev0 in kepregeny.nev%type, szam0 in kepregeny.szam%type, gyakorisag0 in kepregeny.gyakorisag%type, kiado0 in kepregeny.kiado%type); PROCEDURE torles (kod0 in kepregeny.kod%type); PROCEDURE modosit kod0 in kepregeny.kod%type, kiadas0 in kepregeny.kiadas%type, ar0 in kepregeny.ar%type, nev0 in kepregeny.nev%type, szam0 in kepregeny.szam%type, gyakorisag0 in kepregeny.gyakorisag%type, kiado0 in kepregeny.kiado%type); PROCEDURE jelenlegi(); 12

1.8. Feladatok megoldása END pkg_kepregeny; CREATE OR REPLACE PACKAGE BODY pkg_kepregeny IS PROCEDURE felvitel (kod0 in kepregeny.kod%type, kiadas0 in kepregeny.kiadas%type, ar0 in kepregeny.ar%type, nev0 in kepregeny.nev%type, szam0 in kepregeny.szam%type, gyakorisag0 in kepregeny.gyakorisag%type, kiado0 in kepregeny.kiado%type) IS db number; SELECT count(*) INTO db FROM kiado WHERE kiado.kod=kod0; IF (db>0) THEN RAISE_APPLICATION_ERROR(-20001, 'A beszúrás nem végezhet el! Hiba: Már van ilyen kulcs.'); INSERT INTO Kepregeny VALUES (kod0, kiadas0, ar0, nev0, szam0, gyakorisag0, kiado0); PROCEDURE torles (kod0 in kepregeny.kod%type) IS db number, db_szereplok number; SELECT Count(*) INTO db FROM kepregeny WHERE kepregeny.kod=kod0; SELECT Count(*) INTO db_szereplok FROM szereplok WHERE szereplok.kepregeny=kod0; IF (db=0) THEN RAISE_APPLICATION_ERROR(-20002, 'A törlés nem végezhet el. Hiba: Nincs ilyen kulcs!'); IF (db_kepregeny>0) THEN RAISE_APPLICATION_ERROR(-20400, 'A törlés nem végezhet el! Hiba: Küls kulcs hivatkozik ide a Szerepl k táblából'); DELETE FROM kepregeny WHERE kepregeny.kod=kod0; 13

1.8. Feladatok megoldása PROCEDURE modosit (kod0 in kepregeny.kod%type, kiadas0 in kepregeny.kiadas%type, ar0 in kepregeny.ar%type, nev0 in kepregeny.nev%type, szam0 in kepregeny.szam%type, gyakorisag0 in kepregeny.gyakorisag%type, kiado0 in kepregeny.kiado%type) IS db number; SELECT Count(*) INTO db FROM kepregeny WHERE kepregeny.kod=kod0; IF (db=0) THEN RAISE_APPLICATION_ERROR(-20002, 'A törlés nem végezhet el. Hiba: Nincs ilyen kulcs!'); UPDATE kepregeny SET kepregeny.kod=kod0, kepregeny.kiadas=kiadas0, kepregeny.ar=ar0, kepregeny.nev=nev0, kepregeny.szam=szam0, kepregeny.gyakorisag=gyakorisag0, kepregeny.kiado=kiado0; PROCEDURE jelenlegi() IS UPDATE kepregeny SET Szam=((SYSDATE- Kepregeny.kiadas)/Gyakorisag); END pkg_kepregeny; 1.8.4. Csomagok - Szereplok CREATE OR REPLACE PACKAGE pkg_szereplok IS PROCEDURE felvitel (kepregeny0 in szereplok.kepregeny%type, szereplo0 in szereplok.szereplo%type, debutalas0 in szereplok.debutalas%type, szerepele0 in szereplok.szerepele%type); PROCEDURE torles (kepregeny0 in szereplok.kepregeny%type, szereplo0 in szereplok.szereplo%type); 14

1.8. Feladatok megoldása PROCEDURE modosit (kepregeny0 in szereplok.kepregeny%type, szereplo0 in szereplok.szereplo%type, debutalas0 in szereplok.debutalas%type, szerepele0 in szereplok.szerepele%type); FUNCTION aszsz (kod0 in kepregeny%type) RETURN number; END pkg_kiado; CREATE OR REPLACE PACKAGE BODY pkg_szereplok IS PROCEDURE felvitel (kepregeny0 in szereplok.kepregeny%type, szereplo0 in szereplok.szereplo%type, debutalas0 in szereplok.debutalas%type, szerepele0 in szereplok.szerepele%type) IS db number; SELECT count(*) INTO db FROM szereplok WHERE szereplok.kepregeny=kepregeny0 AND szereplok.szereplo=szereplo0; IF (db>0) THEN RAISE_APPLICATION_ERROR(-20001, 'A beszúrás nem végezhet el! Hiba: Már van ilyen kulcs.'); INSERT INTO Szereplok VALUES (kepregeny0, szereplo0, debutalas0, szerepele0); PROCEDURE torles (kepregeny0 in szereplok.kepregeny%type, szereplo0 in szereplok.szereplo%type) IS db number; SELECT Count(*) INTO db FROM szereplok WHERE szereplok.szereplo=szereplo0 AND szereplok.kepregeny=kepregeny0; IF (db=0) THEN RAISE_APPLICATION_ERROR(-20002, 'A törlés nem végezhet el. Hiba: Nincs ilyen kulcs!'); DELETE FROM szereplok WHERE szereplok.szereplo=szereplo0 AND szereplok.kepregeny=kepregeny0; 15

1.8. Feladatok megoldása PROCEDURE modosit (kepregeny0 in szereplok.kepregeny%type, szereplo0 in szereplok.szereplo%type, debutalas0 in szereplok.debutalas%type, szerepele0 in szereplok.szerepele%type) IS db number; SELECT Count(*) INTO db FROM kepregeny WHERE kepregeny.kod=kod0; IF (db=0) THEN RAISE_APPLICATION_ERROR(-20002, 'A törlés nem végezhet el. Hiba: Nincs ilyen kulcs!'); UPDATE szereplok SET szereplok.kepregeny=kepregeny0, szereplok.szereplo=szereplo0, szereplok.debutalas=debutalas0, szereplok.szerepele=szerepele0; FUNCTION aszsz (kod0 in kepregeny%type) RETURN number IS db number; SELECT Count(*) IN db FROM szereplok WHERE szereplok.kepregeny=kod0 AND szerepele=true; RETURN db; END pkg_szereplok; 1.8.5. Csomagok - Szereplo CREATE OR REPLACE PACKAGE pkg_szereplo IS PROCEDURE felvitel (azonosito0 in szereplo.azonosito%type, ele0 in szereplo.ele%type, csoportnev0 in szereplo.csoportnev%type, csoporttipus0 in szereplo.csoporttipus%type); PROCEDURE torles (azonosito0 in szereplo.azonosito%type); PROCEDURE modosit (azonosito0 in szereplo.azonosito%type, ele0 in szereplo.ele%type, csoportnev0 in szereplo.csoportnev%type, 16

1.8. Feladatok megoldása csoporttipus0 in szereplo.csoporttipus%type); FUNCTION halotttagokszama (csoportnev0 IN szereplo.csoportnev%type) RETURN number; END pkg_szereplo; CREATE OR REPLACE PACKAGE BODY pkg_szereplo IS PROCEDURE felvitel (azonosito0 in szereplo.azonosito%type, ele0 in szereplo.ele%type, csoportnev0 in szereplo.csoportnev%type, csoporttipus0 in szereplo.csoporttipus%type) IS db number; SELECT count(*) INTO db FROM szereplok WHERE szereplok.azonosito=azonosito0; IF (db>0) THEN RAISE_APPLICATION_ERROR(-20001, 'A beszúrás nem végezhet el! Hiba: Már van ilyen kulcs.'); INSERT INTO Kiado VALUES (azonosito0, ele0, csoportnev0, csoportazonosito0); PROCEDURE torles (azonosito0 in szereplo.azonosito%type) IS db number, db_szereplok number; SELECT Count(*) INTO db FROM szereplo WHERE szereplo.azonosito=azonosito0; SELECT count(*) INTO db_szereplok FROM szereplok WHERE szereplok.szereplo=azonosito0; IF (db=0) THEN RAISE_APPLICATION_ERROR(-20002, 'A törlés nem végezhet el. Hiba: Nincs ilyen kulcs!'); IF (db_szereplok>0) THEN RAISE_APPLICATION_ERROR(-20400, 'A törlés nem végezhet el! Hiba: Küls kulcs hivatkozik ide a Szerepl k táblából'); DELETE FROM szereplo WHERE szereplo.azonosito=azonosito0; 17

1.8. Feladatok megoldása PROCEDURE modosit (azonosito0 in szereplo.azonosito%type, ele0 in szereplo.ele%type, csoportnev0 in szereplo.csoportnev%type, csoporttipus0 in szereplo.csoporttipus%type) IS db number; SELECT Count(*) INTO db FROM szereplo WHERE szereplo.azonosito=azonosito0; IF (db=0) THEN RAISE_APPLICATION_ERROR(-20002, 'A törlés nem végezhet el. Hiba: Nincs ilyen kulcs!'); UPDATE szereplo SET szereplo.azonosito=azonosito0, szereplo.ele=ele0, szereplo.csoportnev=csoportnev0, szereplo.csoporttipus=csoporttipus0; FUNCTION halotttagokszama (csoportnev0 IN szereplo.csoportnev%type) RETURN number IS CURSOR lista IS SELECT * FROM kepregeny WHERE kepregeny.csoportnev=csoportnev0 AND Ele=false; db number; db := 0; OPEN lista; LOOP EXIT WHEN lista%notfound; db:= db + 1; END LOOP; CLOSE lista; RETURN db; END pkg_szereplo; 18

1.9. JAVA alkalmazás felhasználása 1.8.6. JOB létrehozása A JOB minden egyes alkalommal frissíti a 'naplo' táblát és kiszámolja midnen képregény esetén az aktuális rész számát és ezutóbbit berakja az adatbázisba CREATE OR REPLACE PROCEDURE naploz IS UPDATE naplo SET status=2 WHERE status=1; pkg_kepregeny.jelenlegi(); DECLARE job INTEGER; DBMS_JOB.SUBMIT(job, 'naploz;', SYSDATE, 'SYSDATE+1'); 1.9. JAVA alkalmazás felhasználása A JAVA alkalmazást egy menüsoron keresztül lehet irányítani, vagyis egy tetsz leges m velet elvégzésére ki kell választani a menüben a m veletet, utána a szükséges adatokat meg kell adni, és utána az alkalmazás elvégzi a kívánt m veletet, majd az eredményt jelzi is a képerny n 1.9.1. Menüsorban szerepl f menüpontok Kiadó tábla Képregény tábla Szerepl k tábla Szerepl tábla Egyéb m veletek Modellek Információ Kilépés 1.9.2. "Kiadó tábla" menü elemei Tábla elemeinek megnézése 19

1.9. JAVA alkalmazás felhasználása Új elem felvitele Elem törlése Elem módosítása 1.9.3. "Képregény tábla" menü elemei Tábla elemeinek megnézése Új elem felvitele Elem törlése Elem módosítása 1.9.4. "Szerepl k tábla" menü elemei Tábla elemeinek megnézése Új elem felvitele Elem törlése Elem módosítása 1.9.5. "Szerepl tábla" menü elemei Tábla elemeinek megnézése Új elem felvitele Elem törlése Elem módosítása 1.9.6. "Egyéb m veletek" menü elemei Egy megadott kiadó által kiadott képregények száma Aktuális szerepl k száma egy megadott képregényben Halott szerepl k száma egy megadott csoportban 1.9.7. "Modellek" menü elemei ER modell Adatbázis modell 1.9.8. "Információ" menü elemei Segítség Verzió 20

1.9. JAVA alkalmazás felhasználása 1.9.9. Felhasználás Ha módosítani akarjuk az adatbázisban lév táblák valamelyikét, akkor válasszuk ki az általunk módosítani kívánt tábla nevét a f menüb l, majd válasszuk ki az almenüben azt a m veletet, amit ténylegesen el akarunk végezni. Ha ez megtörtént, akkor töltsük ki a megfelel adatokat és nyomjuk meg a RENDBEN gombot. A gomb lenyomása után a kívánt m veletet az alkalmazás elvégzi és utána az eredményr l, vagy az esetleges sikertelenségr l információt kapunk a kijelz n. Az "Egyéb m veletek" menü elemeivel is hasonlóképpen kell eljárni és hasonlóképpen is m ködnek, mint az el bb leírt eseteknél. Az Információ f menün belüli Segítség menüpont során egy használati útmutató jelenik meg a felhasználónak Ugyanezen f menü Verzió menüpontján az aktuális verzió száma, az utolsó verzió kiadásának az ideje, valamint a készít adatai jelenik meg 21