Programozás | SQL » Várady Lajos - SQL adatbáziskezelés (segédanyag a gyakorlathoz)

Alapadatok

Év, oldalszám:2006, 33 oldal

Nyelv:magyar

Letöltések száma:407

Feltöltve:2010. augusztus 16.

Méret:306 KB

Intézmény:
-

Megjegyzés:

Csatolmány:-

Letöltés PDF-ben:Kérlek jelentkezz be!



Értékelések

Nincs még értékelés. Legyél Te az első!


Tartalmi kivonat

http://www.doksihu ADATBÁZISKEZELÉS Segédanyag a gyakorlathoz Összeállította: Várady Lajos varadyl@math.kltehu http://www.doksihu TARTALOM 1. RELÁCIÓKON VÉGEZHETŐ MŰVELETEK 3 1.1 PROJEKCIÓ (EGY TÁBLA VERTIKÁLIS MEGSZORÍTÁSA) 3 1.2 SZELEKCIÓ (EGY TÁBLA HORIZONTÁLIS MEGSZORÍTÁSA) 3 1.3 UNIÓ 3 1.4 METSZET 4 1.5 KÜLÖNBSÉG 4 1.6 DESCARTES SZORZÁS 4 1.7 ÖSSZEKAPCSOLÁS 4 2. AZ ORACLE SQL 5 2.1 SQL PARANCSOK 5 2.2 SZERKESZTŐ PARANCSOK 6 2.3 SZÜKSÉGES ALAPFOGALMAK 7 2.31 Literál 7 2.32 Kifejezés 7 2.33 Változó 7 2.34 Operátorok 7 2.4 QUERY NYELV 9 2.41 Projekció megvalósítása 9 2.42 Szelekció megadása 9 2.43 A kiválasztott sorok rendezése 10 2.44 Csoportok képzése 11 2.45 JOIN 12 2.46 Egymásbaágyazott lekérdezések 14 2.47 Táblákban kódolt hierarchiák 15 2.5 ADATDEFINÍCIÓS NYELV 20 2.51 Adattípusok 20 2.52 Táblák létrehozása, törlése, módosítása 20 2.6 ADATMANIPULÁCIÓS NYELV 21 2.7 ADATVEZÉRLŐ

NYELV 24 2.71 Tranzakció-kezelés 24 2.72 Privilégiumok és hozzáférési jogok 24 3. TOVÁBBI INFORMÁCIÓK 27 4. FÜGGELÉK 28 FÜGGELÉK A A CREATE TABLE UTASÍTÁS . 28 FÜGGELÉK B A „SULI KÖNYVTÁR” ADATBÁZIS. 28 FÜGGELÉK C RÖVIDÍTÉSEK. 33 http://www.doksihu 1. Relációkon végezhető műveletek 1.1 Projekció (egy tábla vertikális megszorítása) Def: Legyen R ⊆ D1 ×.× Dn , akkor R projekciója Di ,, Di -ra Ekkor Π i1,,ik ( R) = {s| ∃s2 ∈ R úgy, hogy s2|( Di ,., Di ) = s} 1 1 k k Példa: Az OLVASO (o azon, vnev, unev, lakcim, kiad azon, beir dat, okod) tábla projekciója a vnev, unev, lakcim attribútumokra. VNEV GIPSZ KEMENY MINTA UNEV JAKAB HELEN MOKUS KEREK POR ERNO OSZKAR LAKCIM DEBRECEN FAL U. 1 APAFA FA U. 12 SARAND FELFAL U. 9. SZOB TINTA U.13 EGER DOBO U.21 1.2 Szelekció (egy tábla horizontális megszorítása) Jelölése: σ Ψ (R) , ahol Ψ SQL keresési feltétel A szelekció a reláció azon elemei (sorok), amelyek

eleget tesznek a Ψ keresési feltételnek. SQL Példa: Szelekció az OLVASO (o azon, vnev, unev, lakcim, kiad azon, beir dat, okod) táblából, feltétel: vnev=’GIPSZ’ and unev=’JAKAB’. O AZ ON 001 VNE V GIPS Z UNE V JAKA B LAKCIM BEIR DAT DEBRECEN FAL U. 1. 04-JAN-90 OK OD Az unió, metszet és különbség műveletek csak pontosan azonos attribútumokat tartalmazó táblákon végezhetők. Mivel a reláció egy halmaz, ezek a műveletek a halmazelméletben tanultakkal megegyező eredményt szolgáltatnak. 1.3 Unió Példa Q(A,B,C) R(D,A,E) relációk uniója az S reláció. Q A a a B a c C b b R D a b e A a c f E b d g S a a b e a c c f b b d g http://www.doksihu 1.4 Metszet Példa Q R = S S a a b c b 1.5 Különbség QR=S S a 1.6 Descartes szorzás Példa Q× R = S S Q.A a a a a a a B a a a c c c C b b b b b b D a b e a b e R.A a c f a c f E b d g b d g 1.7 Összekapcsolás összekapcsolás/join, a Descartes szorzással kapott

halmaz egy részhalmaza Def: Legyen R1 ⊆ D1 ×.× Dm ; R2 ⊆ D1 ×× Dn Legyen Di = D j = D A R1 és R2 relációk összekapcsolása a D kapcsoló attribútum szerint az a D( , R2 ), amire D( R1 , R2 )={(d1,.,di-1,d,di+1,,dm,d1`,,dj1`,dj+1`,,dn`) | (d1,,di-1,d,di+1,,dm,) ∈ R1 ; és (d1`,,dj1`,d,dj+1`,,dn`) ∈ R2 } R1 Két kiinduló táblát használ. Az eredmény a két tábla soraiból épül fel Mindkét kiinduló táblában ki kell jelölni egy attribútumot (kapcsoló attribútum). Az eredménytábla sorai a következőképpen keletkeznek: a Válasszuk ki az első tábla első sorát (aktuális sor). bKeressük meg a második táblában azokat a sorokat, amelyek kapcsoló attribútuma ugyanazt az értéket tartalmazza, mint az aktuális sor kapcsoló attribútuma. Ha van ilyen sor, akkor folytassuk a következő lépéssel, ha nincs válasszuk a következő aktuális sort. http://www.doksihu c Az eredménytábla sorait úgy kapjuk, hogy az aktuális sort az

összes lehetséges módon folytatjuk az előző lépésben megkeresett kapcsolódó sorokkal. dAz eredménytábla összes sorát úgy kapjuk, ha az első tábla összes során mint aktuális soron végiglépkedünk. Ez volt az equijoin. (kapcsoló attribútumok értékegyenlőségén alapszik) A nem equijoin a kapcsoló attribútumok egyenlőségtől eltérő relációján alapszik. A külső join nemcsak a kapcsolódó sorokat teszi az eredménytáblába, hanem az első tábla azon sorait is, amelyhez nem létezett kapcsolódó sor a második táblából. Példa equijoinra S Q.A a a kiad azon K001 K001 K002 K002 K003 K003 B a c C b b D a a R.A a a kiad nev TANKONYVKIA TANKONYVKIA AKADEMIAI AKADEMIAI GONDOLAT GONDOLAT E b b varos LONDON LONDON NEW NEW LONDON LONDON isbn 100002 100003 100001 100005 100004 100006 cim EGRI CSILLAGOK KOSZIVU EMBER TUSKEVAR ANATOMIA EMPATIA RECEPTEK varos LONDON LONDON NEW NEW LONDON LONDON LONDON isbn 100002 100003 100001 100005 100004

100006 cim EGRI CSILLAGOK KOSZIVU EMBER TUSKEVAR ANATOMIA EMPATIA RECEPTEK Példa külső joinra kiad azon K001 K001 K002 K002 K003 K003 K004 kiad nev TANKONYVKIA TANKONYVKIA AKADEMIAI AKADEMIAI GONDOLAT GONDOLAT KOSSUTH 2. Az oracle sql Négy résznyelve bontható: 1lekérdező QUERY Language 2adatdefiníciós DDL (Data Definition Language) 3adatmanipulációs DML (Data Manipulation Language) 4adatvezérlő DCL (Data Control Language 2.1 SQL parancsok SQLPLUS EXIT vagy QUIT http://www.doksihu CONN[ECT] [felh név[/jelszó]]| [felh név[/jelszó@adatbázis]] DISCONNECT ; Az SQL parancsokat ;-vel kell lezárni. HELP parancsnév /* Megjegyzés / 2.2 Szerkesztő parancsok SET PAUSE ON/OFF LIST [szám] A[PPEND] C[HANGE] ksor1/ksor2 I[NPUT] DEL SAVE fnev [CRE|REP|APP] GET EDIT [fnev] DEF[INE] változó=érték DEF[INE] változó UNDEF[INE] változó DEFINE EDITOR=’editor név’ @|STA[RT] fnev p1[ p2] RUN vagy / SPOOL [ON/OFF/OUT] | [fnev] HOST DESC[RIBE]

[felhasználói név]tábla[@adatbázis] Képernyőgörgetés laponkénti megállással. SQL buffer listázása. Aktuláis sor végére karakterek fűzése. Bufferben lévő SQL parancshoz új sor hozzáfűzése. Az aktuális sort törli a bufferből. A buffer tartalmát fájlba írja. Kimentett SQL fájlt bufferbe visszatölt. Az op.r editorát hívja meg fnev szerkesztésre. Változót definiálhatunk Megjeleníti a változó értékét Megszünteti a változót Megadhatjuk, mely editor használja a rendszer az EDIT paranccsal SQL kiterjesztésű fnev parancsfájlt futtat, p1,p2,,pn paraméterek, amelyekre a parancsfájlban &1,&2,,&n -nel lehet hivatkozni. a buffer tartalmát futtaja Fájlba menti a képernyő tartalmát Kilépés az op.r-be Tábla szerkezetét írja ki. Ábra 2.1 Az aktuális buffer és a külső editor EDIT Külsõ editor az editor SAVE parancsa EDIT fájl az editor SAVE parancsa GET fájl Kurrens buffer SAVE fájl START fájl Operációs

rendszer fájl http://www.doksihu 2.3 Szükséges alapfogalmak 2.31 Literál A CHAR, DATE, NUMBER standard ORACLE adattípusok értékeinek konstans alakja. Pl: ‘karaktersorozat’ -123.45 ‘01-JAN-97’ 2.32 Kifejezés • Literál, változó, függvény, mezőnév magában is, vagy ezeknek operátorokkal való összekapcsolása kifejezést alkot. • A kifejezésnek értéke van: pl. egy szám, szöveg, dátum, vagy igaz, hamis • Az igaz, hamis értékű kifejezést logikai kifejezésnek, vagy feltételnek hívjuk. 2.33 Változó • Neve van • Értéket adhatunk neki (DEF[INE] változó = érték, vagy a @|RUN parancsfájl p1[ p2] paraméterek segítségével, lásd 2.2 részben) • Hivatkozhatunk rá (ACCEPT vagy DEFINE által létrehozott változóra &változónév, az @|RUN parancsfájl p1[ p2] paraméterekre &1, &2 stb. lásd 2.2) • A változóknak csak literálokat adhatunk értékül. (Lásd 22 rész) Pl:’&varos’ 2.34 Operátorok

Lekérdező szelekciós utasítás UNION szelekciós utasítás szelekciós utasítás MINUS szelekciós utasítás szelekciós ut. INTERSECT szelekciós ut Logikai szelekciós utasítás eredményét mint halmazt kell felfogni. -„- NOT AND OR ALL(kifejezés[,kifejezés] | szelekciós utasítás) ANY(kifejezés[,kifejezés] | szelekciós utasítás) BETWEEN kifejezés AND kifejezés EXISTS (szelekciós utasítás) Nem És Vagy Minden. Előtte szerepelnie kell relációs operátornak. Valamelyik. Előtte szerepelnie kell relációs operátornak. -„- Igaz, ha a szelekciós utasítás ad http://www.doksihu vissza értéket IN(kifejezés[,kifejezés] | szelekciós utasítás) kifejezés IS NOT NULL kifejezés IS NULL LIKE kifejezés %=*, =? NOT BETWEEN kifejezés AND kifejezés NOT EXISTS (szelekciós utasítás) NOT IN(kifejezés[,kifejezés] | szelekciós utasítás) NOT LIKE kifejezés Numerikus +,-,*,/ Relációs vagy összehasonlító operátor jelenté s = !=,

<>, ^= > < >= <= Dátumra dátumkifejezés - dátumkifejezés  napok száma a két dátum között Sztringekre karakterkifejezés || karakterkifejezés  Konkatenáció http://www.doksihu 2.4 QUERY nyelv 2.41 Projekció megvalósítása SELECT [DISTINCT] kifejezés [aliasnév][, kifejezés [aliasnév]] FROM táblanév; Példa SELECT Vnev, Unev, lakcim FROM olvaso; SELECT * FROM konyv; SELECT * FROM tab; (csak az Oracle-nél) SELECT varos FROM kiado; SELECT DISTINCT varos FROM kiado; varos varos LONDON LONDON NEW YORK NEW YORK LONDON LONDON 2.42 Szelekció megadása SELECT [DISTINCT] kifejezés [aliasnév][, kifejezés [aliasnév]] FROM táblanév WHERE keresési feltétel; 2.421 Keresési feltétel (logikai kifejezés) • egyszerű összehasonlítás • összehasonlítás egy halmaz elemeivel • összehasonlítás NULL értékkel • összetett keresési feltétel Egyszerű összehasonlítás oszlopnév relációs operátor kifejezés|konstans

Összehasonlítás egy halmaz elemeivel oszlopnév összehasonlító operátor halmaz definíció operátor jelenté s BETWEEN kif. AND kif. IN (lista) LIKE kar minta ,% Összehasonlítás NULL értékkel oszlopnév IS NULL http://www.doksihu Összetett keresési feltételek operáto r jelenté s NOT AND OR A használható operátorokról bővebben a 2.34 részben olvashatunk Példa ORACLE MSSQL SELECT o azon, Vnev, Unev, lakcim FROM olvaso WHERE lakcim like ‘EGER%’ AND okod=6; SELECT o azon, Vnev, Unev, lakcim FROM olvaso WHERE lakcim like "EGER*" AND okod=6; o azon Vnev Unev lakcim 005 POR OSZKÁ EGER DOBO SELECT isbn,cim, kiad dat FROM konyv WHERE kiad dat BETWEEN ‘01/01/94’ AND ‘01/01/98’; isbn cim 100002 EGRI 100003 KOSZIVU kiad dat 2/12/97 7/1/94 SELECT * FROM olvaso WHERE okod IS NULL; o azon vnev unev lakcim 001 GIPSZ JAKA DEBRECEN FAL U. 002 KEME HELE APAFA FA U. 12 beir dat 1/4/90 2/27/95 okod 2.43 A kiválasztott sorok rendezése SELECT

[DISTINCT] kifejezés [aliasnév][, kifejezés [aliasnév]] FROM táblanév [WHERE keresési feltétel] ORDER BY kifejezés [DESC] [, kifejezés[DESC]]; Példa SELECT isbn, cim,kiad dat FROM konyv WHERE kiad azon=’K001’ /* MSACCESS-ben ‘ helyett „/ ORDER BY cim; isbn cim 100002 EGRI CSILLAGOK kiad dat 2/12/97 http://www.doksihu 100003 KOSZIVU EMBER 6/21/94 SELECT isbn, lelt szam,kolcs e FROM peldany ORDER BY isbn, lelt szam; 2.44 Csoportok képzése SELECT [DISTINCT] kifejezés [aliasnév][, kifejezés [aliasnév]] FROM táblanév [WHERE keresési feltétel] GROUP BY kifejezés [,kifejezés] [HAVING csopkiv. feltétel] [ORDER BY kifejezés [DESC] [, kifejezés[DESC]]]; 2.441 Csoportfüggvények (Oracle-nél és az Access-nél is ugyanaz) AVG([DISTINCT|ALL] kifejezés) COUNT([DISTINCT|ALL] {*|kifejezés}) A Null értéket figyelmen kívül hagyja. A Null értéket figyelmen kívül hagyja. MAX([DISTINCT|ALL] kifejezés) MIN([DISTINCT|ALL] kifejezés) SUM([DISTINCT|ALL]

kifejezés) A függvények NUMBER típusú adatokra alkalmazhatók, kivéve a MAX(), MIN(), COUNT() függvényeket, amelyek CHAR és DATE típusú adatokra is működnek. Példa SELECT okod, min(beir dat), max(beir dat), COUNT(*) FROM olvaso GROUP BY okod HAVING COUNT(*)>1; okod min(beir dat) 6 1/4/90 5/12/93 max(beir dat) 2/27/95 5/22/93 2.442 Sztringátalakító függvények INITCAP(kifejezés) INSTR(kifejezés,’sztring’) LENGTH(kifejezés) LOWER(kifejezés) SUBSTR(kifejezés, kp, hossz) UPPER(kifejezés) 2.443 Aritmetikai függvények ABS(kifejezés) COUNT( *) 2 2 http://www.doksihu GREATEST(kifejezés,kif2) LEAST(kifejezés,kif2) MOD(kifejezés, osztó) POWER(kifejezés,kitevő) ROUND(kifejezés,szám) SIGN(kifejezés) SQRT(kifejezés) TRUNC(kifejezés,szám) egyéb műveletek:*,/,+,2.444 Dátumkezelő függvények ADD MONTHS(dát,hónapszám) GREATEST(d1,d2) LEAST(d1,d2) MONTHS BETWEEN(d1,d2) ROUND(dátum,formátum) TO DATE(sztring) TO CHAR(dátum[,formátum])

SYSDATE Példa ORACLE MSACCESS SELECT lelt szam, o azon, SYSDATE-kolcs dat ota kint van FROM kolcson; SELECT lelt szam, o azon, nowkolcs dat as ota kint van FROM kolcson; lelt szam L002 L003 L004 L005 L007 L008 o azon 002 003 002 001 002 001 ota kint van 259.991331018522 55.991331018522 92.991331018522 41.991331018522 37.991331018522 212.991331018522 2.445 Az NVL függvény NVL(oszlopkif, kif) =oszlopkif, ha az nem NULL, egyébként =kif Példa: SELECT NVL(ar,0) FROM peldany; 2.45 JOIN SELECT [DISTINCT] kifejezés [aliasnév][, kifejezés [aliasnév]] FROM táblanév [aliasnév], táblanév [aliasnév] WHERE kapcs oszlop1 összehas operátor kapcs oszlop2 AND további feltétel [GROUP BY kifejezés [,kifejezés]] http://www.doksihu [HAVING csopkiv feltétel] [ORDER BY kifejezés [DESC] [, kifejezés[DESC]]]; Példa ORACLE MSACCESS SELECT Vnev, Unev, lakcim, kolcs dat FROM olvaso o, kolcson k WHERE o.o azon=ko azon AND SYSDATE-kolcs dat>30; SELECT Vnev, Unev, lakcim,

kolcs dat FROM olvaso INNER JOIN kolcson ON olvaso.o azon=kolcsono azon WHERE now-kolcs dat>30; Vnev KEME MINTA KEME GIPSZ Unev HELE MOK HELE JAKA lakcim APAFA FA U. 12 SARAND FELFAL U. APAFA FA U. 12 DEBRECEN FAL U. 1 kolcs dat 1/5/97 7/28/97 6/21/97 2/21/97 ORACLE MSACCESS SELECT a.kiad azon, kiad nev, varos, isbn,cim FROM konyv k, kiado a WHERE a.kiad azon=kkiad azon; SELECT kiado.kiad azon, kiad nev, varos, isbn, cim FROM kiado INNER JOIN konyv ON kiado.kiad azon=konyvkiad azon; kiad azon K001 K001 K002 K002 K003 K003 kiad nev TANKONYVKIA TANKONYVKIA AKADEMIAI AKADEMIAI GONDOLAT GONDOLAT varos LONDON LONDON NEW NEW LONDON LONDON isbn 100002 100003 100001 100005 100004 100006 cim EGRI CSILLAGOK KOSZIVU EMBER TUSKEVAR ANATOMIA EMPATIA RECEPTEK Outer Join(+) azt a táblát egészíti ki NULL értékekkel, amely a kapcsoló oszlop mellett van. ORACLE MSACCESS SELECT a.kiad azon, kiad nev, varos, isbn, cim FROM kiado a, konyv k WHERE a.kiad azon=kkiad azon (+);

SELECT kiado.kiad azon, kiad nev, varos, isbn, cim FROM kiado LEFT JOIN konyv ON kiado.kiad azon=konyvkiad azon; kiad azon K001 K001 K002 K002 K003 K003 K004 kiad nev TANKONYVKIA TANKONYVKIA AKADEMIAI AKADEMIAI GONDOLAT GONDOLAT KOSSUTH varos LONDON LONDON NEW NEW LONDON LONDON LONDON isbn 100002 100003 100001 100005 100004 100006 cim EGRI CSILLAGOK KOSZIVU EMBER TUSKEVAR ANATOMIA EMPATIA RECEPTEK http://www.doksihu Példa nem equijoinra Listázzuk ki azokat, akik később iratkoztak be, mint GIPSZ JAKAB. ORACLE MSACCESS SELECT x.vnev,xunev,xlakcim, y.vnev,yunev FROM olvaso x,olvaso y WHERE x.beir dat>ybeir dat AND UPPER(y.vnev)=’GIPSZ’ AND UPPER(y.unev)=’JAKAB’; SELECT x.vnev,xunev,xlakcim, y.vnev,yunev FROM olvaso as x,olvaso as y WHERE x.beir dat>ybeir dat AND y.vnev="GIPSZ" AND y.unev="JAKAB"; Pl: Listázzuk ki, hogy az egyes olvasóknál hány könyv van. ORACLE MSACCESS SELECT vnev, unev, count(k.lelt szam) FROM olvaso o, kolcson k

WHERE o.o azon=ko azon (+) group by o.o azon,vnev,unev; SELECT vnev, unev, count(kolcson.lelt szam) FROM olvaso left join kolcson on olvaso.o azon=kolcsono azon group by olvaso.o azon,vnev,unev; 2.46 Egymásbaágyazott lekérdezések Az első SELECT WHERE részében újabb SELECT, össz. 15 A beágyazott SELECT egyszerre több rekordot is visszaadhat. Ezek kezelésére használhatók a következők: ANY ALL EXISTS A belső SELECT-ből átvehetünk több oszlopot is. Példa Listázzuk ki azokat, akik később iratkoztak be, mint GIPSZ JAKAB. ORACLE SELECT vnev,unev,lakcim FROM olvaso WHERE beir dat>(select beir dat From olvaso where vnev=’GIPSZ’ AND unev=’JAKAB’); MSACCESS SELECT vnev,unev,lakcim FROM olvaso WHERE beir dat>(select beir dat From olvaso where vnev="GIPSZ" AND unev="JAKAB"); Listázzuk ki azon könyveket (ISBN, cim), amelyek Gipsz Jakabnál vannak. ORACLE SELECT v.isbn,cim FROM konyv v, peldany p WHERE v.isbn=pisbn AND lelt szam

MSACCESS SELECT konyv.isbn,cim FROM konyv inner join peldany ON konyv.isbn=peldanyisbn http://www.doksihu IN (SELECT lelt szam FROM kolcson k, olvaso o WHERE k.o azon=oo azon AND UPPER(vnev)=’GIPSZ’ AND UPPER(unev)=’JAKAB’); where lelt szam IN (SELECT lelt szam FROM kolcson inner join olvaso ON kolcson.o azon=olvasoo azon where vnev="GIPSZ" AND unev="JAKAB"); isbn cim 100002 EGRI 100005 ANATOMIA Példa korrelált lekérdezésre: a belső SELECT hivatkozik a külsőre. Listázzuk ki azokat a könyveket, amelyeknek az ára nagyobb a könyv kiadója által kiadott könyvek átlagáránál. ORACLE SELECT lelt szam,k.isbn,cim,ar,kiad azon FROM konyv k,peldany p WHERE p.isbn=kisbn and ar>(SELECT avg(ar) FROM peldany, konyv WHERE k.kiad azon=kiad azon); MSACCESS SELECT lelt szam,k.isbn,cim,ar,kiad azon FROM konyv as k,peldany as p WHERE p.isbn=kisbn and ar>(SELECT avg(ar) FROM peldany, konyv WHERE k.kiad azon=kiad azon); lelt szam isbn cim ar kiad azon

--------- ------ -------------------- -------- --------L001 100001 TUSKEVAR 1100 K002 L002 100001 TUSKEVAR 1100 K002 L003 100001 TUSKEVAR 1150 K002 L004 100002 EGRI CSILLAGOK 800 K001 L005 100002 EGRI CSILLAGOK 800 K001 L006 100003 KOSZIVU EMBER FIAI 1200 K001 Pl: Lisázzuk ki azokat a műveket, amelyek kölcsönözhetők. SELECT szerzo,cim FROM konyv WHERE isbn in (select isbn From peldany where kolcs e=1); Listázzuk ki azokat a műveket, amelyeket Londonban adtak ki, és van kölcsönözhető példány belőlük. 2.47 Táblákban kódolt hierarchiák SELECT [ALL] | [DISTINCT] {*| kifejezés [aliasnév]} [,kifejezés [aliasnév]]. FROM táblanév CONNECT BY PRIOR oszlopnév1= oszlopnév2 http://www.doksihu START WITH oszlopnév=kifejezés; A CONNECT BY részben adható meg a hierarchiát kódoló két oszlop neve (az oszlopnév1 az alacsonyabb, míg a oszlopnév2 a magasabb szinten lévő adat a hierarchiában). A visszakeresés kiindulási pontját a START WITH után lehet

megadni. Példa: Listázzuk ki NAGY KLARA összes beosztottját! SELECT LPAD( , 2*LEVEL)||VNEV||UNEV STRUKTURA,LEVEL,D AZON,FONOK FROM DOLGOZO CONNECT BY PRIOR D AZON = FONOK START WITH VNEV=NAGY AND UNEV=’KLARA’; STRUKTURA LEVEL D AZON FONOK -------------------------------------NAGY KLARA 1 D01 KISS TEREZ 2 D02 D01 SZILARD ISTVAN 3 D04 D02 BARNA PETER 2 D03 D01 KEREK EMIL 3 D05 D03 FUTO ERZSEBET 2 D06 D01 Listázzuk ki NAGY KLARA összes közvetlen beosztottját! SELECT LPAD( , 2*LEVEL)||VNEV||UNEV STRUKTURA,LEVEL,D AZON,FONOK FROM DOLGOZO WHERE level=2 CONNECT BY PRIOR D AZON = FONOK START WITH VNEV=NAGY AND UNEV=’KLARA’; Számítsuk ki a különböző vezetői szinteken az átlagfizetést! SELECT LEVEL,AVG(FIZETES) FROM DOLGOZO CONNECT BY PRIOR D AZON = FONOK START WITH VNEV=NAGY AND UNEV=’KLARA’ GROUP BY LEVEL; http://www.doksihu FELADATOK 1Határozzuk meg, hány londoni kiadó van az adatbázisunkban. 2Határozzuk meg, kik azok a debreceniek, akik

1990 februárjában iratkoztak be. 3Határozzuk meg, hány darab kölcsönözhető, és hány darab köteles példány van a könyvtárunkban. meg, hány darab 1994 január 1-től régebbi kölcsönözhető mű (létezik kölcsönözhető példánya) van a könyvtárunkban. 4Határozzuk 5Melyik kiadótól van a legrégebbi könyvünk. 6Listázzuk ki az olvasókat és adataik mellet azt, hogy az általuk legrégebben kivitt példány hány hete van náluk, névsor szerint rendezve. 7Listázzuk 8Irassuk ki a FEKETE ISTVAN által írt könyveket. ki azokat a könyveket, amelyekre egynél több előjegyzés van. 9Irassuk ki azokat a könyveket, amelyek TANKONYVKIADO által kiadott könyvek átlagára. 10Irassuk drágábbak, mint a ki, hogy az egyes szerzők hány könyvet írtak, névsor szerint rendezve. 11Irassuk ki, hogy az egyes olvasóknál hány példány van kint, darabszám szerint csökkenően rendezve, és a

listában csak azok legyenek benne, akiknél legalább két könyv van. 12Irassuk ki, hogy az egyes olvasók hány könyvre jegyeztek elő. 13Hány olvasónak nincs még figyelmeztetése (okod IS NULL). 14Mennyi pénz szükséges a jelenlegi dolgozók havi bérének 10 %-os emeléséhez. 15Irassuk ki, hogy az EGRI CSILLAGOKra jegyeztek-e elő, és ha igen, akkor ki(k). 16Határozzuk meg a könyvtárosok átlagfizetését. 17Irassuk ki 18Irassuk BARNA PETER szintjén az átlagfizetést. ki az EGRI CSILLAGOK című könyv bent lévő példányait. GIPSZ JAKAB az TUSKEVAR című k ö ynv et? És az EGRI CSILLAGOKat. 19Kiviheti-e 20Listázzuk ki a CIMVAL változó által meghatározott könyvből bent lévő kivihető (kölcsönözhető és nincs kikölcsönözve) példányokat. http://www.doksihu MEGOLDÁSOK 1SELECT COUNT(kiad azon) FROM kiado WHERE varos=’LONDON’; 2SELECT * FROM olvaso WHERE lakcim

LIKE ‘DEBRECEN %’ AND beir dat<’01-MAR-1990’ AND beir dat>=’01-FEB-1990’; 3SELECT kolcs e, COUNT(*) FROM peldany GROUP BY kolcs e; 4SELECT COUNT(ISBN) FROM konyv WHERE kiad dat<’01-JAN-1994’ AND ISBN IN (SELECT ISBN FROM peldany WHERE kolcs e=1); 5SELECT cim,kiad dat,a.* FROM kiado a, konyv k WHERE k.kiad azon=akiad azon AND kiad dat=(SELECT MIN(kiad dat) FROM konyv); 6SELECT o.*, (sysdate-kolcs dat)/7 FROM olvaso o,kolcson k WHERE o.o azon=ko azon AND kolcs dat = (SELECT MIN(kolcs dat) FROM kolcson WHERE o azon=o.o azon); 7SELECT * FROM konyv WHERE ISBN IN (SELECT ISBN FROM irta i, szerzo s WHERE i.szerzo azon=sszerzo azon AND vnev=’FEKETE’ AND unev=’ISTVAN’); 8SELECT * FROM konyv WHERE ISBN IN (SELECT ISBN FROM elojegy GROUP BY ISBN HAVING COUNT(ISBN)>1); 9SELECT * FROM konyv WHERE ar>(SELECT AVG(NVL(ar,0)) FROM konyv k, kiado a WHERE a.kiad azon=kkiad azon (+) AND kiad

nev=’TANKONYVKIADO’); {ez a megoldás akkor is helyes, ha a KOSSUTH KIADO szerepelt volna a kérdésben} 10SELECT MAX(vnev), MAX(unev), COUNT(s.szerzo azon) FROM szerzo s, irta i WHERE s.szerzo azon=iszerzo azon GROUP BY s.szerzo azon ORDER BY MAX(vnev), MAX(unev); 11SELECT MAX(vnev), MAX(unev), COUNT(NVL(lelt szam,0)) FROM olvaso o, kolcson k WHERE o.o azon=ko azon (+) GROUP BY o.o azon HAVING COUNT(NVL(lelt szam,0))>1 ORDER BY COUNT(NVL(lelt szam,0)) DESC; 12SELECT MAX(vnev), MAX(unev),COUNT(NVL(ISBN,0)) FROM olvaso o, elojegy e WHERE o.o azon=eo azon (+) GROUP BY o.o azon; 13SELECT * FROM olvaso WHERE okod IS NULL OR okod=0; 14SELECT SUM(1.1*fizetes-fizetes) FROM dolgozo; http://www.doksihu 15SELECT * FROM olvaso WHERE o azon in (SELECT o azon FROM elojegy e,konyv k WHERE k.ISBN=eISBN AND cim=’EGRI CSILLAGOK’); 16SELECT AVG(fizetes) FROM dolgozo WHERE beosztas=’KONYVTAROS’; 17SELECT AVG(fizetes) FROM

dolgozo WHERE LEVEL=(SELECT LEVEL FROM dolgozo CONNECT BY PRIOR d azon=fonok START WITH vnev=’BARNA’ AND unev=’PETER’) CONNECT BY PRIOR d azon=fonok START WITH vnev=’BARNA’ AND unev=’PETER’; 18SELECT lelt szam FROM peldany MINUS SELECT k.lelt szam FROM kolcson k, peldany p WHERE k.lelt szam=plelt szam AND ISBN = (SELECT ISBN FROM konyv WHERE cim=’EGRI CSILLAGOK’); 19GIPSZ JAKABnál kint lévő könyvek száma kisebb-e, mint a maximálisan kivihető könyvek száma (3)? SELECT COUNT(NVL(lelt szam,0))<3 FROM olvaso o, kolcson k WHERE o.o azon=ko azon (+) AND vnev=’GIPSZ’ AND unev=’JAKAB’ Van-e jelenleg az TUSKEVAR ból példány GIPSZ JAKABnál? SELECT vnev,unev FROM olvaso o, kolcson k WHERE o.o azon=k o azon AND vnev=’GIPSZ’ AND unev=’JAKAB’ AND lelt szam IN (SELECT lelt szam FROM konyv k, peldany p WHERE k.ISBN=pISBN AND cim=’TUSKEVAR’); Az előjegyzési sorban GIPSZ JAKAB előtt lévők száma kisebb-e, mint ahány szabad,

kivihető példány van az TUSKEVARból jelenleg a könyvtárban? Az előjegyzési sorban GIPSZ JAKAB előtt lévők száma: SELECT COUNT(e.o azon) FROM olvaso o, elojegy e WHERE o.o azon=eo azon AND ISBN=(SELECT ISBN FROM konyv WHERE cim=’ TUSKEVAR’) AND eloj dat < (SELECT eloj dat FROM olvaso o, elojegy e WHERE o.o azon=eo azon AND vnev=’GIPSZ’ AND unev=’JAKAB’); Hány szabad, kivihető példány van az TUSKEVARból? SELECT COUNT(p.lelt szam) FROM peldany p, kolcson k WHERE p.lelt szam =klelt szam (+) AND kolcs e=1 AND o azon is NULL AND ISBN = (SELECT ISBN FROM konyv WHERE cim=’ TUSKEVAR’); Az EGRI CSILLAGOK című könyv esetén a megoldás ugyanez, érdemes ilyen esetekben változókat használni (cim=&CIMVALT). 20SELECT p.lelt szam FROM peldany p, kolcson k WHERE plelt szam =k.lelt szam (+) AND kolcs e=1 AND o azon is NULL AND ISBN = (SELECT ISBN FROM konyv WHERE cim=&CIMVAL); http://www.doksihu 2.5 Adatdefiníciós nyelv 2.51 Adattípusok

CHAR NUMBER[(n[)]][, DATE d)} LONG RAW VARCHAR LONG VARCHAR DECIMAL INTEGER SMALLINT FLOAT LONG RAW 2.52 Táblák létrehozása, törlése, módosítása CREATE TABLE táblanév (oszlopnév adattípus (szélesség) [NOT NULL], oszlopnév adattípus (szélesség) [NOT NULL], oszlopnév adattípus (szélesség) [NOT NULL]); Táblanév: max 30 karakter, egyedi, a névképzési szabályoknak megfelelő. A CREATE TABLE utasítás teljes leírását lásd a Függelék A-ben. Példa Lásd Függelék B. ALTER TABLE táblanév ADD oszlopnév adattípus (szélesség); [DROP megszorítás] Új oszlop táblához adása. ALTER TABLE táblanév MODIFY oszlopnév adattípus (új szélesség) [NOT NULL|NULL]; [DROP megszorítás] Meglévő oszlop szélesítése. Példa ALTER TABLE kiado ADD telefon NUMBER(10); ALTER TABLE kiado MODIFY varos CHAR(20); • Táblában lévő oszlopot nem lehet direkt módon törölni. (Helyette: Új tábla létrehozása kevesebb oszloppal, értékek

átmásolása, régi tábla törlése.) • Csak olyan oszlop típusát lehet megváltoztatni, illetve méretét csökkenteni, amelyben minden sor értéke NULL. • Egy létező oszlop csak akkor változtatható NOT NULL típusúvá, ha minden sorában nem NULL érték áll. DROP TABLE táblanév; http://www.doksihu Példa A Suli-könyvtár adatbázisának törlése (a táblák törlési sorrendje lényeges) drop table elojegy; drop table kolcson; drop table peldany; drop table konyv; drop table kiado; drop table olvaso; CREATE VIEW nézetnév [aliasnév] AS szelekciós utasítás; ORDER BY rész nem lehet benne, több táblára is működik. DROP VIEW nézetnév; CREATE [UNIQUE] INDEX indnév. ON tábnév (oszlnév [ASC|DESC]); DROP INDEX indnév.[ON tábnév]; 2.6 Adatmanipulációs nyelv INSERT INTO tábnév [(on1,on2,)] VALUES (e1,e2,e3,) | szelekciós utasítás; UPDATE tábnév SET on1=e1,on2=e2,. WHERE keresési felt. | szelekciós utasítás; DELETE FROM tábnév [WHERE

keresési felt. | szelekciós utasítás}; Csak teljes sor törlése. Ha nincs WHERE vagy szelekciós, akkor minden sort töröl. http://www.doksihu FELADATOK Képzeljük el, hogy egy könyvesboltot vezetünk. Készítsünk egy olyan adatbázist, amelyben nyilvántarthatjuk a készleten lévő könyveket, a rendeléseket, és az eladásokat. 1Hozzuk létre a következő táblákat. 2Vigyünk fel néhány szállítót a szallito táblába. 3Rendeljünk könyveket. 4A rendelés megérkezésekor, állítsuk be a teljesítés dátumát az adott napi dátumra, és aktualizáljuk a készletet, ahol az egységárat a beszerzési ártól (rendeles tábla egysegar mezője) állítsuk nagyobbra. 5Az egyes könyvek eladásakor aktualizáljuk a készletet (darab mező), és bővítsük az eladás táblát. 6Kérdezzük le, hogy milyen könyvekből kell új rendelést feladni (pl. darab<2) http://www.doksihu MEGOLDÁSOK 1CREATE TABLE szallito (szall azon CHAR(3) NOT

NULL PRIMARY KEY, szall nev CHAR(20) CHECK (szall nev=UPPER(szall nev)), cim CHAR(30) CHECK (cim=UPPER(cim)) ); CREATE TABLE rendeles (rend szam CHAR(4) NOT NULL PRIMARY KEY, ISBN CHAR(6) NOT NULL, rend dat DATE DEFAULT SYSDATE NOT NULL, szall azon NOT NULL REFERENCES szallito, telj dat DATE, egysegar NUMBER (4) NOT NULL, mennyiseg NUMBER (4)); CREATE TABLE keszlet (ISBN CHAR(6) NOT NULL, besz dat DATE DEFAULT SYSDATE NOT NULL, PRIMARY KEY(ISBN, besz dat), cim CHAR(20) NOT NULL CHECK (cim=UPPER(cim)), szerzo CHAR(25) CHECK (szerzo=UPPER(szerzo), egysegar NUMBER(4) NOT NULL, darab NUMBER(4) NOT NULL); CREATE TABLE eladas (ISBN CHAR(6) NOT NULL, egysegar NUMBER(4) NOT NULL, besz dat DATE DEFAULT SYSDATE NOT NULL); 2INSERT INTO szallito VALUES (‘001’,’FOSPED’,’BUDAPEST’); 3INSERT INTO rendeles VALUES (‘0001’, ‘100001’,SYSDATE,’001’,NULL,1300,10); 4UPDATE rendeles SET telj dat=SYSDATE WHERE rend szam=’0001’; 5 http://www.doksihu 2.7 Adatvezérlő

nyelv 2.71 Tranzakció-kezelés Tranzakció: Tetszőleges adatmanipulációs utasítások egy sorozata. • lefutott a tranzakció  ellentmondásmentes adatbázis • nem futott le a tranzakció  ellentmondásos adatbázis COMMIT A tranzakció utáni állapotot rögzíti. ROLLBACK A tranzakció előtti állapotot állítja vissza. Ezek a parancsok automatikusan és expliciten is meghívásra kerülnek. 2.72 Privilégiumok és hozzáférési jogok 2.721 Jogok Az Oracle rendszerbe történő bejelentkezéshez szükséges • felhasználói név • jelszó • jogok A jogok lehetnek • a rendszer használatával kapcsolatos jogok (privilégiumok) • a táblák használatával kapcsolatos jogok (hozzáférési jogok) 2.722 Privilégiumok • Connect • Resource • Dba CONNECT • bejelentkezhet az Oracle RDBMS-be és használhatja • betekinthet táblákba, amelyekre SELECT jogot kapott • betekinthet a Public minősítésű táblákba • az

adatmanipulációs utasításokat használhatja azokra a táblákra, amelyekre a tábla tulajdonosa megfelelő jogokat adott (INSERT, DELETE, UPDATE) • nézettáblákat (view) definiálhat RESOURCE http://www.doksihu • minden CONNECT jog • táblák, indexek létrehozása és törlése • az általa létrehozott táblákra vonatkozóan jogokat adhat tovább más felhasználóknak • az általa létrehozott táblákra, indexekre igénybe veheti a rendszer AUDITING szolgáltatását • minden RESOURCE jog • bármely felhasználó adataiba betekinthet, és lekérdezést hajthat végre • jogokat adhat és vonhat vissza bárkitől • PUBLIC-nak minősíthet adatokat • rendszer AUDITING • teljes adatbázis export/import DBA 2.723 Táblákra vonatkozó hozzáférési jogok SELECT INDEX INSERT ALTER DELETE UPDATE REFERENCES A tábla tulajdonosa vagy DBA jogú felhasználó adhatja illetve vonhatja vissza ezeket a hozzáférési jogokat. 2.724

Privilégiumok és hozzáférési jogok adása és visszavonása Privilégiumok és hozzáférési jogok adása illetve visszavonása a GRANT illetve a REVOKE utasítással történik. 2.7241 Privilégiumok adása és visszavonása (csak DBA) GRANT privilégium TO felhasználó IDENTIFIED BY jelszó; REVOKE privilégium FROM felhasználó; 2.7242 Hozzáférési jogok adása és visszavonása GRANT ALL | hozzáférési jog [,hozzáférési jog ] ON táblanév TO PUBLIC | felhaszáló [,felhaszáló] [WITH GRANT OPTION]; GRANT oszlop jog (oszlop)[, oszlop jog (oszlop) ] ON táblanév TO PUBLIC | felhaszáló [,felhaszáló] [WITH GRANT OPTION]; REVOKE ALL | hozzáférési jog [,hozzáférési jog ] ON táblanév FROM PUBLIC | felhaszáló; http://www.doksihu A felhasználó helyett állhat a PUBLIC is, ekkor mindenki számára biztosítjuk a jogokat. Az összes hozzáférési jog helyett állhat ALL. oszlop jog: UPDATE, REFERENCES [WITH GRANT OPTION] ha megadjuk, a felhasználó

továbbadhatja a jogokat. http://www.doksihu 3. További információk Quittner Pál: Adatbázis-kezelés a gyakorlatban, Akadémiai kiadó, Budapest, 1993 Dr. Halassy Béla: Az adatbázisok kezelésének alapvető kérdései, 1978, Budapest, KSH Priskinné R. Zsuzsa és Erdélyiné: Építsünk könnyen és lassan adatmodellt, 1997, Veszprém Váthy Ágnes, Németh Krisztián: Adatmodellezési feladatok I., Veszprém 1996, Veszprémi Egyetem Stolnicki Gyula: SQL kézikönyv, ComputerBooks (http://www.computerbookshu/sqlhtm) Juhász I., Almási B, Márton Á, Balogh J,: ORACLE 60 referencia kézikönyv Balogh Judit, Rutkovszky Edéné: SQL Példatár, 1994 Teach Yourself SQL in 21 Days, Second Edition ftp://pc123a.mathkltehu/anonymous/Adatb/sql21/indexhtm Introduction to Structured Query Language ftp://pc123a.mathkltehu/anonymous/Adatb/SQLTut/sqltuthtm SQLFAQ: Table of Contents http://epoch.CSBerkeleyEDU:8000/sequoia/dba/montage/FAQ/SQ L TOC.html SQLReference Page

http://www.contribandrewcmuedu/~shadow/sqlhtml SQLStandards Home Page http://www.jcccom/sql stndhtml SQLTutorial http://w3.onenet/~jhoffman/sqltuthtm miniSQL http://www.Hughescomau/ http://www.doksihu 4. Függelék Figure A A SELECT utasítás SELECT [ALL] | [DISTINCT] {*|[tábla.]*|[tábla.]kifejezés [aliasnév]} [,[tábla]kifejezés [aliasnév]]. FROM [felhasználó.]tábla [aliasnév] [,[felhasználó]tábla [aliasnév]] WHERE feltétel CONNECT BY feltétel START WITH feltétel GROUP BY kifejezés[,kifejezés]. HAVING feltétel UNION | INTERSECT | MINUS SELECT. ORDER BY kifejezés | ASC | DESC,. FOR UPDATE OF oszlop, oszlop. NOWAIT; Függelék A A CREATE TABLE utasítás CREATE TABLE [felhasználó.]tábla (oszlopelem|táblamegszorítás [,oszlopelem|táblamegszorítás] ); oszlopelem: név típus [DEFAULT kifejezés] [oszlopmegszorítás] oszlopmegszorítás: [NULL | NOT NULL | [CONSTRAINT megszorítás] ] [UNIQUE | PRIMARY KEY [CONSTRAINT megszorítás] ] [REFERENCES

[felhasználó.] tábla [(oszlop)] [CONSTRAINT megszorítás] ] [CHECK (feltétel) [CONSTRAINT megszorítás] ] táblamegszorítás: [UNIQUE | PRIMARY KEY (oszlop[,oszlop])[CONSTRAINT megszorítás] ] [FOREIGN KEY (oszlop [,oszlop])] [REFERENCES [felhasználó.]tábla [oszlop[,oszlop] [CONSTRAINT megszorítás] ] [CHECK (feltétel) [CONSTRAINT megszorítás] ] Függelék B A „Suli könyvtár” adatbázis A táblák létrehozása create table szerzo ( szerzo azon char(3) not null primary key, Vnev char(15) not null check (Vnev = UPPER(Vnev)), Unev char(10) not null check (Unev = UPPER(Unev)), telszam char (12) null ); create table olvaso ( o azon char(3) not null primary key, Vnev char(15) not null check (Vnev = UPPER(Vnev)), http://www.doksihu Unev char(10) not null check (Unev = UPPER(Unev)), lakcim char (20) not null, beir dat date not null, okod number(2) null ); create table kiado ( kiad azon char(4) not null primary key, kiad nev char(15) not null check (kiad nev=upper(kiad

nev)), varos char(15) null ); create table konyv ( isbn char(6) not null primary key, cim char(20) not null check (cim=upper(cim)), kiad azon char(4) not null references kiado(kiad azon), kiad dat date null ); create table peldany ( lelt szam char(4) not null primary key, isbn char(6) not null references konyv(isbn), kolcs e number(1) not null check (kolcs e=0 or kolcs e=1), ar number(4) not null ); create table kolcson ( lelt szam char(4) not null references peldany(lelt szam), o azon char(3) not null references olvaso(o azon), primary key (lelt szam), kolcs dat date not null ); create table elojegy ( isbn char(6) not null references konyv(isbn), o azon char(3) not null references olvaso(o azon), primary key (isbn,o azon), eloj dat date default sysdate not null ); create table irta ( szerzo azon char(3) not null references szerzo(szerzo azon), isbn char(6) not null references konyv(isbn), primary key (szerzo azon,isbn) ); create table dolgozo ( d azon char(3) not null primary key,

Vnev char(15) not null check (Vnev = UPPER(Vnev)), Unev char(10) not null check (Unev = UPPER(Unev)), beosztas char(20), belepes date default sysdate not null, fizetes number(6), fonok char(3) ); grant ALL on irta to PUBLIC; grant ALL on szerzo to PUBLIC; http://www.doksihu grant ALL on elojegy to PUBLIC; grant ALL on kolcson to PUBLIC; grant ALL on peldany to PUBLIC; grant ALL on konyv to PUBLIC; grant ALL on kiado to PUBLIC; grant ALL on olvaso to PUBLIC; grant ALL on dolgozo to PUBLIC; Kapcsolatok A táblák adatai OLVASO O AZON VNEV UNEV LAKCIM BEIR DAT OKOD ------ --------------- ---------- -------------------- --------- ------------001 GIPSZ JAKAB DEBRECEN FAL U. 1 04-JAN-90 002 KEMENY HELEN APAFA FA U. 12 27-FEB-95 003 MINTA MOKUS SARAND FELFAL U. 9 30-NOV-94 7 004 KEREK ERNO SZOB TINTA U.13 22-MAY-93 6 005 POR OSZKAR EGER DOBO U.21 12-MAY-93 6 KIADO KIAD AZON KIAD NEV VAROS --------- --------------- --------------K001 TANKONYVKIADO LONDON K002 AKADEMIAI KIADO NEW YORK K003

GONDOLAT KIADO LONDON K004 KOSSUTH KIADO LONDON KONYV ISBN CIM KIAD KIAD DAT AZON ------ -------------------- ---- --------- http://www.doksihu 100001 TUSKEVAR K002 01-JAN-93 100002 EGRI CSILLAGOK K001 12-FEB-97 100003 KOSZIVU EMBER FIAI K001 21-JUN-94 100004 EMPATIA K003 24-NOV-91 100005 ANATOMIA K002 01-JUL-90 100006 RECEPTEK K003 01-JUL-92 PELDANY LELT SZAM ISBN KOLCS E --------- ------ --------- ---------- L001 100001 1 1100 L002 100001 1 1100 L003 100001 1 1150 L004 100002 1 800 L005 100002 1 800 L006 100003 0 1200 L007 100004 1 300 L008 100005 1 650 L009 100004 0 300 L010 100004 1 340 L011 100005 0 680 L012 100006 1 600 L013 100006 1 600 AR KOLCSON LELT SZAM O AZON KOLCS DAT --------- ------ --------L002 002 05-JAN-97 L003 003 28-JUL-97 L004 002 21-JUN-97 L005 001 11-AUG-97 L007 002 15-AUG-97 L008 001 21-FEB-97 ELOJEGY ISBN O AZON ELOJ DAT ------ ------ --------100002 003 22-AUG-97 100005 002 21-JUN-97 SZERZO SZERZO AZON VNEV UNEV TELSZAM ----------- ---------------

---------- -----------S01 FEKETE ISTVAN S02 GARDONYI GEZA S03 JOKAI MOR S04 BUDA BELA S05 TARSOLY EMIL S06 KUDLIK JULIA S07 PSOTA IREN http://www.doksihu IRTA SZERZO AZON ISBN ----------- -----S01 100001 S02 100002 S03 100003 S04 100004 S04 100005 S05 100005 S06 100006 S07 100006 DOLGOZO d azon Vnev Unev beosztas belepes fizetes fonok ------- ------- -------- ------------- ---------- ------- ----D01 NAGY KLARA IGAZGATO 30-NOV-92 110000 NULL D02 KISS TEREZ OSZTALYVEZETO 13-JAN-94 82000 D01 D03 BARNA PETER OSZTALYVEZETO 23-SEP-93 79000 D01 D04 SZILARD ISTVAN KONYVTAROS 17-MAR-91 28000 D02 D05 KEREK EMIL KONYVTAROS 10-OCT-92 31000 D03 D06 FUTO ERZSEBET ELJARO 01-FEB-96 30000 D01 http://www.doksihu Függelék C Rövidítések ABR Adatbázisrendszer DDL Data Definition Language (adatdefiníciós nyelv) DML Data Manipulation Language (adatmanipulációs nyelv) DCL Data Control Language (adatvezérlő nyelv) SQL Structured Query Language (struktúrált lekérdező nyelv) DB

Data Base (adatbázis) DBA Data Base Administrator (adatbázis adminisztrátor) DBMS Data Base Management System (adatbázis-kezelő rendszer) RDBM S Relational Data Base Management System (relációs adatbáziskezelő rendszer)