2006/2007. tanév II.(tavaszi) félév
ELTE, 2.évf. prog.inf.BSc/AB illetve C szakirány is
IP-abAEAG, Az adatbázisok elméleti alapjai, GYAK1
IP-cATPG, Az adatbázisok tervezése és progr. GYAK2

 

Ez az oldal az ELTE IK hallgatói számára tartalmaz szervezési információt.
Kérdések, megjegyzések e-mailben (dr. Hajas Csilla):
sila@inf.elte.hu

 

1. INFORMÁCIÓ
1.1. A gyak. célja és előfeltétele
1.2. Követelmények
1.3. A gyakorlatok beosztása
1.4. Az adatbázisok elérése

2. ANYAG, TEMATIKA
2.1. Előzetes heti tematika
2.2. A példa-adatbázis sémák
2.3. A gyak. anyaga (jelszóval)
2.4. Előzetes infó a gépt.ZH-ról

4. HASZNOS LINKEK
4.1. Ajánlott irodalom
4.2. magyar nyelvű linkek
4.3. angol nyelvű linkek
4.4. Oracle Online Doc

3. EREDMÉNYEK
3.1. Pontozás és ponthatárok
3.2. ZH eredmények /3 kar kóddal/
külön oldalon: / Cs8 / Cs12 / Cs16
3.3. Gyak.jegyek indexbe beírása

 

Budapest, 2007. február 12.
Utolsó módosítás: máj.21.(javítóZH eredménye, végleges gyakorlati jegyek)
Gyak.UV: május 23, szerda 9:00-10:30 Déli ép. 00-807 Adatbázis labor
                  
ZH az egész éves anyagból!!! Jelentkezés az ETR-ben!!!


http://people.inf.elte.hu/sila/                                        dr. Hajas Csilla

 


1. INFORMÁCIÓ A GYAKORLATRÓL

1.1. A gyakorlat célja és előfeltétele

Célkitűzés:
Adatbázis-kezelés gyakorlatok ORACLE 10g /SQL*Plus környezetben.
Az első félévben az SQL és a PL/SQL megismerése és gyakorlása a cél.

az SQL lekérdező nyelve, csoportosítás, összekapcsolások,

beágyazott lekérdezések és kiértékelésük, optimalizálás

az SQL adatdefiníciós nyelve, táblák, nézettáblák, indextáblák

az SQL adatkezelő nyelve, az adatok karbantartása

az SQL vezérlő nyelve, jogosultságok kezelése, tranzakció-kezelés

PL/SQL


A tantárgy felvétele:
Az ETR-en keresztül lehet jelentkezni. Felhívom a figyelmet arra, hogy
az ETR később ellenőrzi az előfeltételeket, amelyek az új BSc képzésben
még „kialakulóban” vannak, jelenleg
Előfeltételek:
AB szakirányon:

Algoritmusok és adatszerkezetek I. (Fekete István honlapja)

Logikai alapok a programozáshoz (Pásztorné Varga Katalin honlapja)

C szakirányon, lásd a honlapomon: Az adatbázisok tervezése és progr. EA.


A gyakorlat az előadással párhuzamosan van meghirdetve, és az előadáshoz
kapcsolódik, kérem, hogy csak azok vegyék fel a gyakorlatot, akik az előadást
is felvették. Másrészt mivel érvényes gyakorlati jegy nélkül a hallgató nem
vizsgázhat, az előadást csak azok vegyék fel, akik a gyakorlatot is felvették.

1.2. Követelmények (a gyakorlati jegy szerzése)

A gyakorlatokon jelenléti ív készül. Gyakorlati jegyet csak az szerezhet, aki
részt vesz a gyakorlatokon (legalább 7 alkalommal), és megírta a két gépes Zh-t.
Azok, akik 5 alkalomnál többször hiányoztak nem kaphatnak gyakorlati jegyet.
Valójában a „Hallgatói követelményrendszer” 85. (1c) pontja alapján az
„egyharmadot meghaladó távollét esetén a gyakorlati jegyet meg kell tagadni”.
 
A gyakorlati jegyet a két géptermi Zh-n kapott pontok alapján számolom ki.
Ha az egyik géptermi Zh elégtelen (vagy hiányzik), vagy javítani szeretné,
a két Zh-ból az egyiket az utolsó héten újból megírhatja, de ezen a pótZh-n
nemcsak javíthat, hanem ronthat is („lecseréli” ezt a Zh pontot a pótZh pontjaira).
Ha mindkét Zh elégtelen, akkor gyakorlati UV-val szerezhet gyakorlati jegyet. 
Ha 5 alkalomnál többször hiányzott nem kaphat gyakorlati jegyet (UV-val sem).


1.3. A gyakorlatok beosztása

 

Csütörtök

      

2006/07

II.félév

Csütörtök

8:00

8:30-10:00

      

SQL

1.gyak.

02.15

9:00

Északi ép. 2.63

      

 

2. gyak.

02.22

10:00

 

      

 

3. gyak.

03.01

11:00

 

      

 

4. gyak.

03.08

12:00

12:15-13:45

      

Márc15

ünnep

03.15

13:00

Északi ép. 2.63

      

 

5. gyak.

03.22

14:00

 

      

I.ZH

6. gyak.

03.29

15:00

 

      

Tavaszi

szünet

04.05

16:00

16:00-17:30

      

PL/SQL

7. gyak.

04.12

17:00

Déli ép. 2.108

      

 

8. gyak.

04.19

18:00

 

      

 

9. gyak.

04.26

19:00

 

      

II.ZH

10. gyak.

05.03

20:00

 

      

Eötvös-

Pázmány

05.10

21:00

 

      

PótZH

11. gyak.

05.17

 

1.4. Az adatbázisok elérése

Szerver: az ELTE-n két működő Oracle 10g adatbázist tudunk elérni:

oradb (nevű adatbázis a dbpc75 nevű gépen) 10.2-es verziójú,

ablinux (nevű gépen v10 nevű, alias ablinux adatbázis) 10.1-es.


Kliens: SQL*PLUS kliens program

Az sqlplus kliens program a panda.inf.elte.hu (pandora, valerie)
gépeken fut, a használata:
sqlplus <usernév>/<jelszó>@<alias>    illetve
sqlplus <usernév>@<alias>
(esetén megkérdezi a jelszót).
Az <alias> helyére vagy az oradb vagy ablinux nevet írjuk be
Az adatbázisok távoli eléréséhez szükséges információ megtalálható
$ORACLE_HOME/network/admin/tnsnames.ora nevű állományban.

Grafikus felületű SQL*PLUS programoknál a bejelentkezéskor
három input mezőben kell megadnunk a fenti három adatot:
<usernév> <jelszó> és <alias> (vagy az oradb vagy ablinux).  
00-807 Adatbázis-laborbeli
gépekről Windows „SQL Plus” ikonnal,
az asztalon van egy „SQL Plus” ikon vagy Start > Program >„sqlplusw
(korábban ezt használtuk, de a PC5 laborban ebben a félévben nincs).

Az idén egy új felületen keresztül is el lehet érni az adatbázisokat,
az iSQL*PLUS webes kliens programmal. Bejelentkezéskor a 2-hez
hasonlóan, három mezőt kell kitöltenünk, a harmadik <connect identifier>
mezőbe vagy az oradb vagy ablinux adatbázis-nevet adjuk meg.
Elérhetősége: az „Információs Rendszerek Tanszék” kezdőoldalán:
http://ablinux.inf.elte.hu innen van rámutató link, azt kövesse, jelenleg:
http://ablinux.inf.elte.hu:5560/isqlplus/ 
http://medusa.inf.elte.hu:5561/isqlplus/
Ez a felület kísérleti jelleggel üzemel, így amikor épp nem elérhető,
akkor a „hagyományos módszert” tudjuk használni (lásd a fenti 1.pont).


Oracle azonosító: minden hallgatónak, aki felvette a gyakorlatot mindkét
adatbázisban az ETR EHA kódból lett generálva <usernév> (.ELTE nélkül).
Ha nem tud bejelentkezni valamelyik adatbázisba, akkor e-mailben forduljon
Nikovits Tiborhoz: nikovits@ullman.inf.elte.hu, akinek a honlapján megtalálhatja

Oracle eléréséhez az aktuális információt, lásd Adatbázisok elérhetősége
A kezdeti jelszó megváltoztatása az alábbi SQL utasítással lehetséges:
ALTER USER <usernév> IDENTIFIED BY <új_jelszó>;
A beállításokat mindkét adatbázisban (ablinux, oradb) végezzük el!

Az SQL*PLUS használatáról (ha pandorás gépekről jelentkezik be)
lásd SQL*PLUS parancsok (sqlplus.pdf) (Márton Ágnes diáit), illetve
Oracle Online Documentation: SQL*Plus User's Guide and Reference
Kilépés: SQL>EXIT (vagy QUIT)
Puffer vagy fájl tartalmának szerkesztése: SQL>EDIT (vagy ED) <fájlnév>[.sql]
Fájl betöltése a pufferbe: SQL>GET <fájlnév>[.sql]
Pufferben levő parancs futtatása: SQL>RUN (vagy /)
Parancsfájl futtatása: SQL>START <fájlnév>[.sql] (vagy @<fájlnév> .sql nélkül)
 
A környezeti paraméterek beállítása (ha a pandorás gépekről lép be)
Beállíthatjuk, melyik editort használjuk: DEFINE _editor=/usr/bin/joe
(vagy amit szeretnénk emacs, joe, pico, vim), dátum- és oldal-formátumot:
ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD';
SET PAGESIZE 40
SET LINESIZE 150
SET AUTOCOMMIT ON
érdemes egy-két beállítást megadni az aktuális könyvtárban található login.sql
scriptben, ami az sqlplus minden indításakor lefut és aktiválódnak a beállítások.


2. A GYAKORLATOK ANYAGA, TEMATIKÁJA

2.1. A gyakorlatok előzetes heti tematikája

AZ AKTUÁLIS ANYAG (2007. február-május): 2.3. A gyakorlatok anyaga (jelszóval)
  

EZ AZ ELŐZŐ FÉLÉVES TEMATIKA, AZ ÚJAT SZERKESZTEM!!!
      A TAVASZI SZÜNETIG A TAVALYI GÉPES FELADATOK MIND!!!

      A TAVASZI SZÜNET UTÁN ÚJ ANYAG JÖN A PL/SQL LESZ!!!


A feladatokat és megoldásait a gyakorlatokon tárgyaljuk, itt csak azt soroltam fel,
hogy az adott héten milyen feladattípusokkal foglalkozunk (mire lehet készülni).
Az [AB1/ 4.1.] hivatkozás a „4.1. Ajánlott irodalom” [könyv/ megfelelő fejezet].
A gyakorlatok „táblás” része az előadást követi, az előadáshoz igazodva változhat,
a gyakorlatok „gépes” részében Oracle 10g környezetben gyakoroljuk az SQL-t.

  

Dátum

Táblás feladatok (csak AB szakirány)

Gépes feladatok (mind AB, mind C)

1.gy.
IX.13.
IX.14.

Bevezetés. Adatbázis-kezelés,
relációs adatmodell, alapfogalmak.
Relációs algebra alapműveletei I.:
szelekció/kiválasztás, projekció/vetítés,
Descartes-szorzat, unió, különbség.
[AB1/ 3.1, 4.1.]
Példák lekérdezések kifejezésére
relációs algebrai alapműveletekkel,
pl. „kik tették-vették?”, „kik nem
tették-vették?” kérdések kifejezése.      

Oracle azonosítók igényléséhez az
adatok egyeztetése (ETR EHA kód).
Az SQL története (lásd wikipedia).

2. gy.
IX.20.
IX.21.

Relációs algebra alapműveletei II.: 
[AB1/ 4.1.]
Példák lekérdezések kifejezésére
relációs algebrai alapműveletekkel,
pl. max./min. értékek kifejezése az
alapműveletekkel.

A relációs algebrai alapműveletek
kifejezése SQL-ben
SELECT ... FROM ... WHERE ...
(röviden „SFW”), ahol a „where” keresési
feltételek: aritmetikai összehasonlítás,
összetett feltételek (NOT, AND, OR
logikai műveletek és  zárójelek).
SELECT DISTINCT (valódi projekció).
A SFW kiértékelése, rel.alg. értelmezése.
A teljes SELECT használata: SFW
{UNION | INTERSECT | MINUS} SFW.
Halmazműveletek rel. alg. értelmezése.

3. gy.
IX.27.
IX.28.

Relációs algebra műveletei III.:
az összekapcsolások [AB1/ 4.1.]
Példák származtatott műveletekre:
metszet, természetes összekapcsolás,
theta-, ill. félig-összekapcsolások.
Hiányos adatok tárolása, a NULL.
Példák külső összekapcsolásokra.

Táblák összekapcsolása SQL-ben I.
összetett keresési (kapcs.) feltételekkel
SQL példák a WHERE kifejezésre:
BETWEEN ... AND ..., LIKE ’minta’,
IN értéklista, IS [NOT] NULL.
Kiválasztott sorok rendezése, ORDER BY

4.gy.
X.04.
X.05.

Relációs algebra műveletei IV.:
a hányados (alapműveletekkel kif.)
Példák hányadosra [AB1/ 4.1.9.feladat],
„minden”, „legalább”, „legfeljebb”
jellegű lekérdezések kifejezésére
relációs algebrában.

Alkérdések I. a WHERE utasításrészben:
[NOT] IN (SFW),
THETA [ANY | ALL] (SFW),
[NOT] EXISTS (SFW)
.
Táblák összekapcsolása SQL-ben II.
WHERE
záradékban egymásba ágyazott
IN (SFW)
alkérdésekkel kifejezve.
Egymásba ágyazott lekérdezések
kiértékelése (egyszerű típus, ha a belső
SELECT önmagában kiértékelhető).

5.gy.
X.11.
X.12.

 

Alkérdések II. a WHERE utasításrészben:
A hányados kifejezése SQL-ben I.
NOT EXISTS (SFW)
alkérdésben másik
NOT EXISTS (SFW) alkérdéssel.
Egymásba ágyazott lekérdezések
kiértékelése (korrelált típus, ha a belső
SFW külső SFW-re hivatkozást tartalmaz).
Táblák összekapcsolása SQL-ben III.
CROSS JOIN
; NATURAL JOIN;
JOIN USING
... ; JOIN ON ...
Hiányos adatok: IS [NOT] NULL.
Külső összekapcsolás
[LEFT | RIGHT | FULL] OUTER JOIN;
illetve WHERE feltételben (+).

6.gy.
X.18.
X.19.

Relációs kalkulusok, DRC, TRC.
Korábbi relációs algebrai lekérdezések
kifejezése DRC-ben és TRC-ben.

Származtatott adatok, sor-függvények:
karakteres: SUBSTR, LOWER, UPPER,
numerikus: ABS, MOD, ROUND, TRUNC,
dátum: ADD_MONTHS, MONTHS_BETWEEN,
konverziós: TO_CHAR, TO_DATE,
TO_NUMBER, egyéb (null kezelése: NVL).
Csoportosítás, csoport-függvények:
SFW [GROUP BY ... [HAVING ...]]
csoport-függvények: AVG, COUNT, SUM,
MAX, MIN, STDDEV, VARIANCE.

7.gy.
X.25.
X.26.

Relációs kalkulusok, DRC, TRC.
Formulák reprezentálása fákkal,
max. konjunkcióláncok megállapítása,
biztonságosság eldöntése.
Biztonságos DRC, TRC lekérdezések
átírása relációs algebrába.

Alkérdések III. és csoportosítások.
Alkérdések a WHERE ill. HAVING
utasításrészben. (Alkérdések a FROM
utasításrészben - INLINE nézet).
Halmazműveletek selectek között.
UNION [ALL], INTERSECT, MINUS
A hányados kifejezése SQL-ben II.
NOT EXISTS (SFW) alkérdésben (SFW)
MINUS (SFW) halmazművelettel.

 

Dátum

Táblás feladatok:

Gépes feladatok Oracle-ben:

9.gy.
XI.15.
XI.16.

Az egyed-kapcsolat modell [AB1/ 2.2.],
megszorítások modellezése [AB1/ 2.5.],
leképezése relációs adatmodellbe,
relációs sémák célszerű összevonásai
[AB1/ 3.3., 3.4.2.]
Beadandó feladatok adatmodellezésre,
saját adatmodell kialakítása, SQL-ben
saját táblák, integritási feltételek
létrehozása és a táblák feltöltése
adatokkal (lásd: gépes feladatok).

SQL DDL. Adatdefiníciós nyelv.
CREATE, DROP, ALTER
    [TABLE|VIEW|INDEX]
Adattípusok és megszorítások.
Feladatok saját táblák kialakítására:
CREATE TABLE táblák létrehozása
CONSTRAINT megszorítások megadása.
ALTER TABLE táblák szerkezetének,
illetve megszorításainak módosítsa,
DROP TABLE táblaszerkezet törlése.

10.gy.
XI.22.
XI.23.

A relációs adatbázisséma-tervezés
ismertebb algoritmusai [IA1/ 12.fej.]
Adott R relációs séma, F funkcionális
függőségi halmazra határozzuk meg
R kulcsait (az X attribútum-halmaz
lezártját kiszámoló algoritmussal).
Adjuk meg az F egy minimális fedését.
Adott R, F-re adott d dekompozíció
veszteségmentességét döntsük el.
Adott R, F-re adott d dekompozíció
függőségőrzését ellenőrizzük.

SQL DML. Adatkezelő nyelv.
INSERT, DELETE, UPDATE.
INSERT adatok felvitele a táblákba
(a fenti megszorításoknak eleget tevő
értékek megadásával illetve selecttel
másik táblákból töltve fel a táblát),
UPDATE adatok módosítása,
DELETE a tábla teljes tartalmának törlése,
ill. egy vagy több sor törlése (vigyázat:
ne legyen hivatkozási megszorítási hiba).

11.gy.
XI.29.
XI.30.

Normalizálás.  [IA1/ 12.fej.]
Adjuk meg (adott R, F esetén) az R
Boyce-Codd normálformába való
veszteségmentes dekompozícióját
a naív illetve javított algoritmussal.
Adott R, F-re adjuk meg az R
harmadik normálformába való
veszteségmentes és függőségőrző
dekompozícióját (ehhez alkalmazzuk
F egy minimális fedését ill. kulcsait
kiszámoló algoritmust).

Az Oracle adatbázis táblái: adatszótár,
felhasználói táblák, nézettáblák, stb.
SQL DDL. Nézettáblák (előnyei). 
CREATE VIEW egyszerű és összetett
nézettáblák létrehozása,
ALTER VIEW létező nézetek felülírása,
DROP VIEW nézettáblák törlése.
DML: az adatok karbantartása
(adatok felvitele, módosítása, törlése)
és lekérdezése a nézeteken keresztül.

 

  

Dátum

Táblás feladatok:

Gépes feladatok Oracle-ben:

12.gy.
XII.6.
XII.7.

Fizikai fájlszervezés, blokkszervezés,
indexstruktúrák. [AB2/ 4.Indexstruktúrák]

Beadandó gépes feladatok beküldése.
SQL DDL. Indextáblák Mikor jó és
mikor nem az indexek használata?
CREATE INDEX indextábla létrehozása,
ALTER INDEX módosítása,
DROP INDEX törlése.
SQL DCL. Adatvezérlő nyelv
Jogosultságok kezelése az SQL-ben
GRANT, REVOKE.
Tranzakció-kezelés alapjai az SQL-ben
COMMIT, ROLLBACK, SAVEPOINT.

 


2.2. Az órai példa-adatbázis sémák

1. Példa: Egyszerűsített egyetemi tantárgyfelvétel
E/K modell: pelda1EK.pdf

Relációsémák:
HALLG(HAZON, HNEV, SZAK, BDATUM, ODIJ)
TANAR(OAZON, ONEV, TANSZEK)
TARGY(TKOD, TMEGNEV, AEVGY, KREDIT, OAZON) ahol OAZON=TANAR.OAZON
FELV(HAZON, TKOD, XDATUM, JEGY) ahol HAZON=HALLG.HAZON és TKOD=TARGY.TKOD

Megvalósítás: SQL DDL (a táblák és megszorítások létrehozása) és
                         DML (a táblák feltöltése a megszorításoknak eleget tevő adatokkal)
                         -- lásd az 1.gyakorlat anyagánál.

2. Példa: Komplexebb egyetemi hallgatói rendszer
E/K modell: pelda2EK.pdf

Relációsémák:
TANSZEK(TSZAZON, TSZNEV, WEBLAP)
TANTARGY(TKOD, MEGNEV, KREDIT, EA_OSZAM, GYAK_OSZAM, AJANL_FELEV, FELELOS)
                             ahol FELELOS=TANSZEK.TSZAZON
ELOFELT(TKOD_ENNEK, TKOD_EZ) ahol TKOD_ENNEK és TKOD_EZ is TANTARGY.TKOD
EPOLGAR(EAZON, NEV, LAKCIM, BELEP_DATUM)
OKTATO(EAZON, STATUSZ, FIZETES, TANSZ)
ahol TANSZ=TANSZEK.TSZAZON,
    és STATUSZ pl. ’docens’, ’tanár’, ’PhD hallgató’, ’demonstrátor’, stb.
HALLGATO(EAZON, SZAK, ODIJ, TANDIJ, TUTOR) ahol TUTOR=OKTATO.EAZON
    vagyis minden hallgatónak van egy „osztályfőnöke” ez a „tutor” tanára
TANREND(FELEV, HKOD, EAVGYAK, TEREM, IDOPONT, OKTAT)
    ahol OKTAT=OKTATO.EAZON azt jelenti, hogy (egy oktató) ki tartja az órát
NAPLO(FELEV, HKOD, EAZON, DATUM, JEGY, JEGYTIP)
   ahol FELEV+HKOD=TANREND.FELEV+HKOD
, EAZON=HALLGATO.EAZON
   és JEGYTIP pl. ’gyak.jegy’, ’ZH1’, PotZH’, ’vizsga’, ’UV1’, ’UV2’, stb.

Megvalósítás: -- lásd a gyakorlatok anyagánál.


2.3. A gyakorlatok anyaga (jelszóval)

A gyakorlat anyaga csak a gyakorlatok után (aznap este) kerül fel,
ELTE IK hallgatók részére (jelszóval):

1.gyak.

01_feb15_sql.txt

2.gyak.

02_feb22_sql.txt

3.gyak.

03_marc1_sql.txt

4.gyak.

04_marc8_sql.txt

5.gyak.

lásd 2.4. Előzetes információ a géptermi ZH-ról
SQL-összefoglalás: lásd Márton Ágnes: SELECT, DDL, DML,
lásd Kiss Attila diái (jelszóval nyitható): SQL DDL, DML, QL
AB-szakirányon elméleti feladatok is lesznek, lásd Kiss Attila:
BSC1.ppt (relációs algebra), BSC3.ppt (relációs kalkulusok)
a korábbi rel.algebrai feladatok megoldása TRC-vel, DRC-vel.

6.gyak.

SQL ZH (16h csoport egyik feladatsora: 070329zhB.ppt)

7.gyak.

Gyak ZH feladatsora és eredmények megbeszélése
8h/12h (C-n): EA ZH feladatsorát is megbeszéltük
16h (AB-n): Biztonságos TRC és DRC, Datalog (HF!).
A relációs algebra és relációs kalkulusok (TRC, DRC)
gyakorlásához használható a WinRDBI (Windows
Relational DataBase Interpreter) ingyenes oktatási
eszköz, telepíthető: http://www.eas.asu.edu/~winrdbi/
JAVA-ban http://www.amzi.com/customers/winrdbi.htm
a Dataloghoz pedig Datalog Educational System (DES)
letölthető: http://www.fdi.ucm.es/profesor/fernan/DES/

8.gyak.

08_apr19_plsql.txt
PL/SQL User's Guide and Reference HTML / PDF
Segédanyag: Nikovits Tibor/INFOKEZ2/Plsql.doc

9.gyak.

09_apr26_plsql.txt
PL/SQL User's Guide and Reference HTML / PDF

10.gy.

PL/SQL ZH  + 16h (AB-n): datalog_hf.txt

11.gy.

pótZH: SQL vagy PL/SQL (az egyiket lehet javítani)

 


2.4. Előzetes információ a géptermi ZH-ról

I.Zh SQL (márc.29)      II.Zh PL/SQL (máj.3)      PótZh (máj.17)      Gyak.UV (máj.23)

I.Zh SQL (március 29)

I. Zh időpontja: márc. 29-i gyakorlatokon (az ETR szerinti csoportbeosztásban)
AB és C szakirányon (gépnél): SQL DDL, DML, QL(SELECT)
1. táblák és megszorítások létrehozása, adatok felvitele,
2. nézetek létrehozása, adatok módosítása,
3. táblák összekapcsolása, sorok kiválasztása, beépített függvények,
4. csoportképzés (group by), csoportok szűrésével (having), csoportfüggvények,
5. egymásba ágyazott korrelált lekérdezések,
csak az AB szakirányon (papíron): az előadáshoz kapcsolódó feladatok is:
6. lekérdezések kifejezése relációs algebrában a relációs algebrai alapműveletekkel,
7. lekérdezések kifejezése relációs kalkulusokkal, biztonságosság megállapítása.
AB szakirányon ehhez az első dolgozathoz számolom hozzá a házi feladatként
beadott E/K diagramra kapott pontokat. Lásd, előzetes 3.1. Pontozás és ponthatárok

Segédeszköz: A géptermi zh alatt csak az ablinux gép használata megengedett!
A feladatlapon a feladatokon kívül rajta lesz a táblák neve és szerkezete, lásd a
a fenti 2.2. Az órai példa-adatbázis sémák menüpont 2.példája (a zh-n kinyomtatva
kézben az E/K modell és a relációsémák). A táblákat a gépen sila.táblanévvel tudja
lekérdezni a ZH alatt. A feladatlapon az is rajta lesz, hogy az ablinux gépet hogyan
érjük el: http://ablinux.inf.elte.hu (Információs Rendszerek Tanszék honlapja), és
itt a http://ablinux.inf.elte.hu/oradoc10/index.htm Oracle online dokumentációból
az SQL Reference használható a zh alatt (de csak ez). A tanszék oktatóinak a
honlapjait vagy egyéb segédanyagokat nem szabad a zh alatt megnyitni! Ezen
a tanszéki honlapon rámutató linket talál az iSQL*PLUS webes kliens programra,
amivel grafikus környezetben dolgozhat http://ablinux.inf.elte.hu:5560/isqlplus/
az isqlplus leállása esetén egy másik link http://medusa.inf.elte.hu:5561/isqlplus/
vagy a panda.inf.elte.hu gépen futó sqlplus kliens programmal is dolgozhat. 

A kiosztott feladatlapot be kell adni, írja rá a nevét és az ETR_azonosítóját (EHA-kód).
A feladatlapon konkrét kérdések is találhatók az eredményekkel kapcsolatban, a választ
a feladatlap kitöltésével kell megadni (az eredményt, ha az legfeljebb 3 sorból áll,
de ha nagyobb, akkor csak azt, hogy az eredménytáblának hány különböző sora van).
A feladatlapon a feladatokon kívül rajta lesz a táblák neve és szerkezete („sila” nevű
felhasználó feltöltött adattáblái, amelyek csak select jogokkal a zh alatt elérhetőek),
valamint az alábbi információ is a lapon lesz feladatok megoldásának a beadásáról: 

Az 1-5 feladatok megoldását (az SQL utasításokat) egy szövegfájlba kell összemásolni.
Kérem, hogy a fájlban a feladatlapon megadott kérdések sorrendjét kövesse valamint
megjegyzésekkel világosan különítse el, hogy melyik rész melyik feladathoz tartozik.
3-5 feladat megoldása egyetlen SELECT lekérdezésből álljon (vagyis nem használható
sem PL/SQL, sem nézettábla, sem from utáni alkérdés), itt az 1.Zh-n alkérdéseket
csak WHERE illetve HAVING utasításrészben használjuk. A lekérdezés eredménye
pontosan a kérdésre adott válasz legyen (nem több, nem kevesebb, nem más).

A feladat pontozásánál figyelembe veszem a gyorsaságot is, aki hamarabb befejezte
és elküldte a zh-t, az több pontot kap, mint aki csak később adta be. Egy feladathoz
csak egy megoldást adjon be, ha nem sikerült teljesen megoldani a feladatot, akkor
a legutolsó verziót adja be, uis részpontokat számolok az egyszerűbb megoldásokra.

A fájl neve ehakod.txt legyen, ahol az ehakod helyére írja be a saját EHA-kódját,
vagyis az ETR azonosítóját (.ELTE nélkül). Ha kész van a feladatokkal, bemásolta
az SQL parancsokat egyetlen szövegfájlba, akkor kérem, hogy ezt az ehakod.txt fájlt
anonymous FTP-vel töltse fel az ablinux.inf.elte.hu gépre a sila alkönyvtárba! 
Névtelen kapcsolódás, ekkor nem kell jelszót megadni, de a fájlt csak egyszer
küldheti át, az nem írható felül, és nem is nyitható meg! vagyis csak akkor
küldje át a fájlt, ha már készen van minden feladattal, és az már a végleges!

FTP-ről: az ablinux.inf.elte.hu gépre csak ELTE IP címről engedi meg az FTP-t,
és olyan a beállítás, hogy például a WinSCP3 nem működik (így nem lehet letölteni).
A laborokból a Total Commander felső sor menüjéből a Hálózat alatt válasszuk
az új FTP kapcsolat (CTRL+N) menüpontot (csak így, sem az FTP kapcsolattal
(CTRL+F), sem az FTP ikonnal nem tudja az ablinux.inf.elte.hu-ra átküldeni a fájlt.
Vannak olyan laborok is, ahonnan a tűzfal miatt nem lehet az ablinux-ra ftp-ni. 
Ebben az esetben másolja át a szövegfájlt (pl. WinSCP3-al) a pandora (panda) gépre,
és innen az mc („Midnight Commander”) menüből „FTP link…” ablinux.inf.elte.hu
és itt a sila alkönyvtárba lépjünk be, és ide másoljuk be (küld majd egy hibaüzenetet,
hogy már nem módosíthatja a fájlt, csak „skip”-el menjünk tovább, mert rendben).
Vagy egyszerűen, a pandoráról (ftp ablinux.inf.elte.hu) (login: anonymous)
(passwd: <e-mail-cím>) (cd sila) (put ehakod2.txt) (bye).
Vagy bármilyen anonymous ftp-vel felrakható. De ha sehogyan sem sikerül az ftp,
akkor végső esetben küldje el e-mailben: sila@inf.elte.hu címemre csatolt fájlként.

Csak önálló munkát értékelek! E-mailezni vagy egyéb módon üzengetni a
zh alatt tilos! Az adatbázison kiadott minden művelet AUDITÁLVA lesz,
ha olyan műveletet találunk, amellyel másoknak jogtalan előnyöket biztosíthat,
vagy ha valaki nem megengedett segédeszközt használ, akkor a géptermi zh-t
nem tudom értékelni (vagyis a géptermi Zh 0 pontos, pótZh-t kell később írnia).
Másolás gyanúja esetén egyik Zh-t sem tudom értékelni, sem a segítő dolgozatát,
sem az áldozatét, akinek segítettek, mindkét Zh 0 pontos, elégtelen(1) osztályzatú.
A feladat pontozásánál figyelembe veszem a gyorsaságot is, aki hamarabb
befejezte és beadta a zh-t, az több pontot kaphat, mint aki csak később küldte be.

II.Zh PL/SQL (május 3)

16h (AB-n): datalog_hf.txt

PótZh (május 17)

Vagy az I.Zh vagy a II.Zh újraírható, pótolható (de csak az egyik)!

Gyak.UV (május 23)

május 23, szerda 9:00-10:30 Déli ép. 00-807 Adatbázis labor ZH az egész éves anyagból!

3. EREDMÉNYEK

3.1. Pontozás és ponthatárok

I.ZH

Pontozás: minden feladat 3 pontos (plusz/mínusz 1 pont gyorsasági/késedelmi pont).
C-szakirányon 5 feladat van, vagyis itt összesen 15 pont érhető el,
AB-szakirányon 7 feladat van, vagyis összesen 21 pont érhető el a dolgozaton,
itt ehhez az első Zh-hoz számolom hozzá a beadott E/K-t (max.2 pont), össz.23 pont.

II.ZH

Pontozás: 3 PL/SQL feladat van, minden feladat 5 pontos, össz.15 pont érhető el,
C-szakirányon a géptermi ZH-val összesen 15 pont érhető el,
AB-szakirányon a géptermi ZH-val itt is összesen 15 pont érhető el, ugyanis
van 4 db 2-2 pontos Datalog feladat, lásd datalog_hf.txt, össz. 15+8 = 23 pont.

Ponthatárok az I.-II.ZH-n és pótZH-kon

C-szakos pontok

AB-szakos pontok

Zh jegy

0-5

0-7

1

6-7

8-11

2

8-9

12-15

3

10-11

16-19

4

12-15

20-23

5

Ponthatárok a gyakorlati jegy megállapításánál

C-szakos pontok

AB-szakos pontok

Zh jegy

0-11

0-15

1

12-15

16-22

2

16-18

23-29

3

19-22

30-36

4

23-30

37-46

5


3.2. ZH eredmények (Név helyett 3 karakteres kóddal)

Zh eredménye, részpontokkal (ETR azonosító első 3 karaktere a kód)
A gyakorlati jegyet a két Zh-n szerzett pontok alapján számolom ki.

Itt, ezen a külön oldalon (link):
Csütörtök 08:30-10:00 Északi épület 2.63 labor
Csütörtök 12:15-13:45 Északi épület 2.63 labor
Csütörtök 16:00-17:30 Déli épület 2.108 labor

3.3. Gyakorlati jegyek indexbe beírása

A gyakorlati jegyek, lásd Itt, ezen a külön oldalon (link)


Indexbe való beírás:
Szerda  10:00 – 11:00 (vizsgaidőszakban a fogadóórám alatt 2-503 szoba)
május 17, csütörtök (az utolsó gyakorlaton a gyakorlat idején és helyén)
május 21, hétfő 11:00-12:00 Déli ép. 2-502 terem (vizsga felkészülési idő alatt)
május 23, szerda 9:00-10:30 Déli ép. 00-807 Adatbázis labor (gyak.UV alatt)


4. HASZNOS LINKEK

4.1. Ajánlott irodalom

Az előadásokhoz ajánlott irodalom (ami az előadáson elhangzott, az szükséges és elegendő)

[EN1]
[AB2]
[AB2]
[IA1]

Elmasri-Navathe: Fundamentals of Database Systems (Fourth Edition), 2004.
Ullman-Widom: Adatbázisrendszerek. Alapvetés, Panem, 1998.
Molina-Ullman-Widom: Adatbázisrendszerek megvalósítása, Panem, 2001.
Iványi Antal (szerk.): Informatikai algoritmusok I., ELTE Eötvös Kiadó, 2004.
12. fejezet Relációs adatmodell tervezés (Demetrovics János és Sali Attila)

 


Adatbázisokkal kapcsolatos további irodalom

[IA2]

[De1]
[De2]
[De3]
[Ga]
[Ha]
[Ro]
[Sa]

Iványi Antal (szerk.): Informatikai algoritmusok II., ELTE Eötvös Kiadó, 2005.
30. fejezet Lekérdezés átírás relációs adatbázisokban (Demetrovics J. és Sali A.)
Demetrovics-Denev-Pavlov: A szám.tud. matematikai alapjai, (7. fejezet), 1999.
Békéssy-Demetrovics: Előadások adatbázis szerkezetekből, ELTE, 1999.
Békéssy-Demetrovics: Adatbázis-szerkezetek, Akadémia, 2005.
Gajdos Sándor: Adatbázisok, Műegyetemi, 2004.
Halassy Béla: Adatmodellezés, Adatbázis-tervezés könyvei, Számok, 1980-as évek.
 Rolland: Adatbázis-rendszerek, Panem, 2002.
Sályi-Szelezsán: Adatbázisok, Számalk, 1991.


Oracle, SQL kézikönyvek magyarul (és angolul lsd. 4.5. Oracle Online Documentation)

[AC]
[J1]
[J2]
[K1]
[K2]
[L1]
[L2]
[S1]
[S2]

Abbey-Corey-Abramson: ORACLE8i Kézikönyv kezdőknek, Panem, 2001.
Gábor A.-Juhász I: PL/SQL-programozás ORACLE 9i-ben, Panem, 2002.
Gábor A.-Juhász I: PL/SQL-programozás ORACLE 10g-ben, Panem, 2006.
Kende-Kotsis-Nagy: Adatbáziskezelés az Oracle rendszerben, Panem, 2002.
Kende-Nagy: Oracle példatár(Oracle 9i és 10g verziókhoz), Panem, 2005.
Koch-Loney: ORACLE8i Teljes referencia, Panem, 2001.
Loney: ORACLE DATABASE 10g Teljes referencia, Panem, 2006.
Stolnitcki Gyula: SQL kézikönyv, ComputerBooks, 1994.
Stolnitcki Gyula: SQL programozóknak, ComputerBooks, 2003.


4.2. Adatbázisok oktatása magyar nyelvű linkek

Kiss Attila (ELTE, IKP-ABE előadó) Adatbázisok elm.alapjai EA

Nikovits Tibor (Oracle rendszergazda): Adatbázisok elérhetősége

 

Kósa Balázs (ELTE, 2007. tavasz) Adatbázis-kezelés gyakorlat

Nikovits Tibor (ELTE, 2007. tavasz) Adatbázis-kezelés gyakorlat

Molnár András (ELTE, 2006. ősz) Adatbázis-kezelés gyakorlat

Sidló Csaba (ELTE, 2005. ősz) Adatbázis-kezelés gyakorlat

 

Márton Ágnes (Debrecen) Adatbázisrendszerek (SQLelm.pdf)

Katona Endre (Szeged) Adatbázisok (előadási jegyzet.pdf)

Katona Gyula (BME) Adatbázisok (az előadások tartalma,.ps,.pdf)

Siki Zoltán (BME) Adatbáziskezelő rendszerek (és jegyzet.htm)

 

Adatbázisrendszerek Oktatási anyagok Tempus-97 (fóliák.doc)
Hajas Csilla: Relációs algebra, A relációs kalkulusok, SQL 1-2. rész,
Nikovits Tibor: Az adatok fizikai szervezése, Lekérdezések optimalizálása

Magyar nyelvű [doksi.hu]-a tudás birodalma: http://www.doksi.hu/
itt: Doksik/Informatika/Adatbázisok alatt: ea_gyak_vizsga_anyagok.rar
(Megj.: az interneten levő anyag több sajtóhibát tartalmaz, mint a könyv!)

4.3. Adatbázisok oktatása angol nyelvű linkek

Jeffrey D. Ullman honlapján található oktatási anyag

Stanford University CSC145 Introduction to Databases (Slides/Ullman)

Stanford University CSC145 Introduction to Databases (Oracle Guide)

Stanford University CSC145 Introduction to Databases (Slides/Widom)

 

Norfolk State University CSC 420 Database Principles and Design

Norfolk State University CSC 422 Database Implementation

 

SQL feladatok, megoldások: http://sqlzoo.net/

SQL Tutorial: http://www.sql-tutorial.net/

Wikipédia: http://en.wikipedia.org
Search: Tuple calculus, Domain calculus, Relational algebra, stb.,
lásd 1.gyak.: Az SQL története: http://en.wikipedia.org/wiki/SQL

4.4. ORACLE honlap és Oracle Online Documentation

Oracle honlap link:   ORACLE  és  ORACLE Magyarország

Angol nyelvű Oracle Online Documentation (SQL Reference)

 itt az ELTE-n:
Oracle honlapon:

Oracle 9i
Oracle 9i

Oracle 10g
Oracle 10g

  

   Javaslat: http://ablinux.inf.elte.hu/oradoc10/index.htm Oracle Online Doc-ból
   az adatbázis-kezelést megalapozó SQL és PL/SQL gyakorlatainkhoz
az SQL Reference és a PL/SQL User's Guide and Reference az érdekes.


 Fel a Lap tetejére                    Vissza a Kezdőlapra