ADATBÁZIS-KEZELÉS
ELŐADÁS [FIZIKUS: if1c1i05] ELTE, 2016/2017-es tanév I.félévében [2016.szept] |
|
Előadás időpontja: Szerda 10:15-11:45 + 12:00-12:45 (3x 45', egy szünettel)
helye: Déli ép. 2-202 (PC3 labor) (2x 45') + 12 órától 2-520 (MI labor) (1x 45'),
de a harmadik óra is a 2-202 PC3-ban van, amikor nincsenek itt a levelezősök!
Az előadás nem kötelező, de gépes laborban van Oracle adatbázis gyakorlattal.
>> Az előadások órai diasorozata: [ ebben a mappában]
>> Gyakorló feladatok: Oracle Példatár Feladatok.pdf
>> Segédletek: hallgato/[jelszóval] [ebben a mappában]
Tudnivalók a vizsgáról és követelmények: A szóbeli vizsga két részből áll:
1.) Az előadásokhoz kapcsolódó saját beadandó feladat gépes bemutatása
2.) További kérdések a vizsgatételekből (alapfogalmak és feladatok megoldása)
Beadandó feladat: Saját adatbázis tervezése és megvalósítása, lekérdezések.
A terveket (az E/K diagramot vagy UML osztálydiagramot) papíron ceruzával
felrajzolva elegendő a vizsgára behozni, de a feladat leírását és megvalósítását
SQL-ben DDL (create table/view/index), DML (insert, delete, update, select) script
és a saját táblákon alapuló lekérdezési feladatokat (SQL select, PL/SQL program)
egyszerű szövegben e-mailben (nincs csatolás) kell beküldeni legalább 24 órával
a vizsga kezdete előtt! Vizsgák időpontja: vizsgaidőszakban Szerda 10:00 órától
Tankönyv: Jeffrey D. Ullman, Jennifer Widom: Adatbázisrendszerek Alapvetés
Második átdolgozott kiadás, Panem, 2009. (a kék könyv)
« | 01. | 02. | 03. | 04. | 05. | 06. | 07. | 08. | 09. | 10. | 11. | 12. | 13. | #
1.EA: 2016.09.14. --- Relációs adatmodell alapismeretek, séma-előfordulás
>>> 1.előadás.pdf --- Minden, ami egytáblás lekérdezésekhez kell
> Tk.2.1. Strukturált és félig-strukturált adatmodellek áttekintése
> Tk.2.2. A relációs modell alapjai, sémák, sorok, előfordulás, kulcsok
> Tk.2.3. Egyszerű relációsémák definiálása SQL-ben (folyt.köv.)
> Tk.2.4. Relációs algebra egytáblás műveletei: vetítés és kiválasztás
> Tk.6.1. Egyszerű egytáblás lekérdezések az SQL-ben, select utasítás
select, from és where záradékai, nullérték, műveletek nullértékekkel,
az ismeretlen igazságérték (U), háromértékű (T, F, U) logika.
Gépes gyak: Az első előadáshoz kapcsolódóan az Oracle gyakorlatban
> Ismerkedés, Oracle adatbázisok elérése, SQL Developer használata
> SQL DDL: relációséma, adattípusok, megszorítások: create table
> SQL DML: relációelőfordulás, táblák feltöltése adatsorokkal: insert
>> Egy egyszerű tábla létrehozása:szeret és feladatok: Rel.alg.feladatok
« | 01. | 02. | 03. | 04. | 05. | 06. | 07. | 08. | 09. | 10. | 11. | 12. | 13. | #
2.EA: 2016.09.21. --- Egy táblára vonatkozó lekérdezések az SQL-ben
Gépes gyak: Az első előadáshoz kapcsolódóan az Oracle gyakorlatban
>> Oracle-gyakorlat: adatbázisok elérése, SQL Developer használata
>> Táblák létrehozására scriptek:createDolg(hu) [vagy createEmpDept(en)]
-- FELADATSOR-1:
- Milyen azonosítójú osztályon dolgoznak a dolgozók? (kiterjesztett vetítés)
- Adjuk meg a dolgozók között előforduló foglalkozások neveit (vetítés,
az eredmény halmaz legyen, vagyis minden foglalkozást csak egyszer írjuk ki!)
- Kik azok a dolgozók, akiknek a fizetése > 2800? (kiválasztás, elemi feltétel)
- Kik azok a dolgozók, akiknek a fizetése 2000 és 4500 között van?
(1.mo: kiválasztás, összetett feltétel; 2.mo: where-ben: intervallum)
- Kik azok a dolgozók, akik a 10-es vagy a 20-as osztályon dolgoznak?
(1.mo: kiválasztás, összetett feltétel; 2.mo: where-ben: in értékek)
- Adjuk meg azon dolgozókat, akik nevének második betűje 'A' (where: like)
- Kik azok a dolgozók, akiknek a jutaléka ismert? (vagyis nem NULL)
-- Oracle Leckék a fenti feladatokhoz (ehhez: createHRsyn)
> SELECT utasítás SELECT, FROM, WHERE és ORDER BY záradékai
> Oracle Példák
>> 1.lecke (vetítés kiterjesztése, kifejezések),
>> 2.lecke (kiválasztás, kiválasztott sorok rendezése)
-- FELADATSOR-2:
- Adjuk meg azon dolgozókat, akik nevében van legalább két 'L' betű.
(Többféle megoldást is keressünk a lekérdezésre, LIKE, INSTR függvény)
- Adjuk meg a dolgozók fizetéseinek négyzetgyökét és 3-mal vett maradékát.
- Adjuk meg, hogy hány hete dolgozik a cégnél ADAMS és milyen hónapban
és milyen nap (hétfő, kedd, stb) lépett be.
- Számoljuk ki, hogy a mai nap hány naposak vagyunk, illetve azt is
hány hónaposak vagyunk (DUAL tábla)
- Adjuk meg a dolgozók nevét, az éves fizetését és hány hete állt munkába!
- Adjuk meg a dolgozók éves jövedelmét, ahol a havi jövedelem a fizetés
és jutalék összege, ahol nincs jutalék megadva,ott a 0 helyettesítő
értékkel számoljunk (NVL függvény alkalmazása).
-- Oracle Leckék is vannak a fenti feladatokhoz:
> sorfüggvények használata a SELECT és WHERE záradékban
>> 3.lecke
> Segédlet: Examples/Példák: SQL Language Reference >> 5 Functions:
Sorfüggvények: pl. Karakteres függvények: SUBSTR, RPAD, ..., INSTR, ...
pl. Dátum függvények: MONTHS_BETWEEN, ..., pl. Konverziós: TO_DATE, ...
pl. Null érték kezelése, helyettesítő érték megadása: NVL, COALESCE, ...
Figyelem! COALESCE példában: FROM product_information
mivel ez a tábla nem az HR, hanem OE sémában szerepel, ezért
itt ki kell írni a táblatulajdonost: FROM OE.product_information
(ugyanis csak a HR owner tábláihoz hoztuk létre a szinonimákat).
« | 01. | 02. | 03. | 04. | 05. | 06. | 07. | 08. | 09. | 10. | 11. | 12. | 13. | #
3.EA: 2016.09.27. --- Relációs algebra, több táblára vonatkozó lekérdezések
>>> 2.előadás.pdf --- Minden, ami a többtáblás lekérdezéshez kell
--- Elkezdjük a tervezést --> Lehet gondolkodni az egyéni beadandó feladaton!
> Tk.4.fej. Relációs adatmodellek tervezése, E/K modell alapjai (folyt.köv.)
> Tk.2.3. folyt. Tk.7.1. Relációsémák és megszorítások definiálása SQL-ben
> Tk.2.4. Egy algebrai lekérdező nyelv, relációs algebráról teljes áttekintés
> Tk.6.2. Több relációra vonatkozó lekérdezések az SQL-ben, szemantika
--- A 2órás előadáshoz kapcsolódó 1órás gyakorlat most az MI laborban:
> Relációk adatainak lekérdezése relációs algebra segítségével
Lekérdezések kifejezése természetes módon táblákkal, a táblákon
értelmezett műveletekkel gondolkodva, majd relációs algebrában:
Relációs algebrai feladatok: Relációs algebrai feladatok
« | 01. | 02. | 03. | 04. | 05. | 06. | 07. | 08. | 09. | 10. | 11. | 12. | 13. | #
4.EA: 2016.10.05. --- Alkérdések az SQL-ben, relációs algebrai lekérdezések
--- Konzultáció: Egyéni beadandó feladatok tervezése és megvalósítása
>>> 3.előadás.pdf --- Alkérdések SQL-ben, Példák: Relációs algebra és SQL
> Tk.6.3. Alkérdések az SQL lekérdezésekben
> Tk.2.4. Példák: Relációs algebrai feladatok (Tk.2.4.1.feladat) Termékekre
relációs algebrai kifejezésekkel, kifejezőfák átírása SQL lekérdezésekre
> Tankönyv feladatai: Termékek-feladatok.pdf, Csatahajók-feladatok.pdf
> Tankönyv feladataihoz a scriptek: create Termékek, create Csatahajók
« | 01. | 02. | 03. | 04. | 05. | 06. | 07. | 08. | 09. | 10. | 11. | 12. | 13. | #
5.EA: 2016.10.12. --- Relációs algebra kiterjesztése/1, csoportosítás
--- Köv. gépes résznél még maradunk az egytáblás lekérdezéseknél:
> SELECT utasítás SELECT, FROM, WHERE, GROUP BY, HAVING záradékai:
>>> 4.előadás.pdf --- Kiterjesztett relációs algebra unér műveletei
> Tk.5.1. Relációs algebra kiterjesztése multihalmazokra (az SQL-hez)
> Tk.5.2. Kiterjesztett műveletek, csoportosítás, külső összekapcsolások
> Tk.6.4. Összesítő függvények és csoportosítás, group by és having
-- FELADATSOR-3:
- Mekkora a minimális/maximális fizetés a dolgozók között?
- Mennyi a dolgozók összfizetése?
- Mennyi a 20-as osztályon az átlagfizetés?
- Adjuk meg, hogy hány különböző foglalkozás fordul elő a dolgozók között.
- Adjuk meg osztályonként az átlagfizetést (OAZON, ATL_FIZ).
- Adjuk meg osztályonként a telephelyet és az átlagfizetést (OAZON, TELEPHELY, ATL_FIZ).
- Adjuk meg, hogy az egyes osztályokon hány ember dolgozik. (OAZON, DB)
- Adjuk meg azokra az osztályokra az átlagfizetést, ahol ez nagyobb mint 2000.
- Kinek a legkisebb/legnagyobb a fizetése?
« | 01. | 02. | 03. | 04. | 05. | 06. | 07. | 08. | 09. | 10. | 11. | 12. | 13. | #
6.EA: 2016.10.19. --- Relációs algebra kiterjesztése/2, összekapcsolások
>>> 5.előadás.pdf --- Kiterjesztett relációs algebra binér műveletei
> folyt. Tk.5.1. Multihalmazok egyesítése, metszete és különbsége
> folyt. Tk.5.2. Kiterjesztett műveletek, külső összekapcsolások
> folyt. Tk.6.3. Összekapcsolások az SQL-ben, külső összekapcsolások
> Tk.6.5. SQL DML: Táblák tartalmának módosítása: insert, delete, update
> Tk.1.fej. Az adatbázis-kezelő rendszerek (ABKR) felépítése, alapfogalmak
« | 01. | 02. | 03. | 04. | 05. | 06. | 07. | 08. | 09. | 10. | 11. | 12. | 13. | #
7.EA: 2016.10.26. --- Tervezés: E/K modell, Megvalósítás: SQL DDL
>>> 6.előadás.pdf --- Tervezés és megvalósítás, SQL DDL
> Tk.4.1.-4.4. Tervezés: Az egyed-kapcsolat (E/K) modell elemei
> Tk.4.5.-4.6. E/K diagram átírása relációs modellé
> Tk.7.1.-7.5. SQL DDL: Táblák, megszorítások és triggerek
> Tk.8.1-8.2. és 8.5. Nézettáblák, tárolt nézettáblák
> folyt. Tk.6.3. Alkérdések a FROM záradékban, inline nézet
Tervezési feladatok: E/K diagram felrajzolása, átalakítása relációkká
> Ullman/Tk. 4.fejezete E/K modell prog.inf.ea: E/K modell.pdf
-- Tk.4.1.-4.4. Az egyed-kapcsolat (E/K) modell elemei
E/K diagramok felrajzolása: Modellezési feladatok - E/K diagram
-- Tk.4.5.-4.6. E/K diagram átírása relációs modellé
E/K diagramok átírása relációkká: E/K_pl1.pdf és E/K_pl2.pdf
További feladatok, lásd EKpelda.pdf (ábra: EKpelda.png)
> További irodalom (elektronikusan is elérhető magyar nyelvű könyvek)
--- MEK könyvtár: Halassy Béla: Adatmodellezés, elmélet és gyakorlat
--- MEK könyvtár: Halassy Béla: Az adatbázistervezés alapjai és titkai
« | 01. | 02. | 03. | 04. | 05. | 06. | 07. | 08. | 09. | 10. | 11. | 12. | 13. | #
8.EA: 2016.11.09. --- Logika a lekérdezésekhez, gráfok bejárása, rekurzió
>>> 7.előadás.pdf --- Logikai lekérdező nyelv: Datalog. Rekurzió.
> Tk.5.3.-5.4. Logika a relációkhoz. A relációs algebra és a Datalog összevetése
> Tk.10.2. Az Eljut-feladat. Rekurzió az SQL-ben: WITH RECURSIVE
Gépes gyak: Az Eljut feladathoz: create_jaratok_tabla.txt -->> Példa.pdf
-- További példák az Oracle SQL Language Reference 11.2.pdf doku-ban:
>> Rekurzió with-utasítással: Recursive Subquery Factoring: Examples
>> ill. egy korábbi Oracle megoldás 2/7.lecke hierarchikus lekérdezések
>> SQL Lang.Ref: Hierarchical Queries, Hierarchical Query Examples
« | 01. | 02. | 03. | 04. | 05. | 06. | 07. | 08. | 09. | 10. | 11. | 12. | 13. | #
9.EA: 2016.11.16. --- SQL/PSM szabvány a gyakorlatban: Oracle PL/SQL
>>> 8.előadás.pdf illetve Oracle Junior EA: Oracle PL/SQL.pdf
> Motiváció: Tk.10.2. Az Eljut-feladat SQL/PSM-ben (PL/SQL-ben)
> Tk.9.3. SQL/PSM: Osztott változók, lekérdezések és kurzorok
> Tk.9.4. Progr.alapok, tárolt eljárások és függvények, kivételkezelés
> Oracle PL/SQL segédanyagok: ebben az eduPLSQL mappában
-- Tankönyvtár: PL/SQL programozás Oracle 10g-ben (Gábor A.-Juhász I.)
PL/SQL--1/4: blokk, deklaráció, utasítások, vezérlési szerkezetek, select into
> Oracle PL/SQL, ehhez Oracle 11gR2 doc PL/SQL Language Reference
-- Az Oracle doksikban szereplő példák kipróbálásához: createHRtables
> PL/SQL blokk szerkezete, változóhasználat >> 2.fej. Alapok
[1_deklarációs_rész] 2_végrehajtható_rész [3_kivételkezelő_rész]
PL/SQL alapjai
>> példa-2-24 deklarációk-és-értékadás
>> példa-2-25 select-into (itt a 2-25 példában blokk: begin ... end; /
át kell tenni az end;-et a végére!) SELECT INTO-t akkor használjuk,
ha a lekérdezés pontosan egy sort ad, ha a lekérdezés több sorral
tér vissza, akkor kurzort kell használni, lásd köv.gyakorlat anyagát).
>> példa6-1 DML utasítások a programban, implicit kurzor
>> példa-6-4 implicit kurzor attribútumok
Vezérlési szerkezetek a PL/SQL-ben 4.fej. Control Statements
>> példa-4-5 if-then-elsif utasítás,
>> példa-4-6 egyszerű case utasítás, és itt írjuk át grade := 'B' -> '&B'
helyettesítési változóra, aminek a felhasználó adja meg az értékét!
>> példa-4-10 alap LOOP ciklus utasítás EXIT WHEN kilépés a ciklusból
>> példa 4-14 FOR ciklus utasítás
>> példa 4-27 WHILE ciklus utasítás
>> Oracle PL/SQL.pdf (és összefoglalók) plsql_01_bevezetes.pdf,
02_vezerlo_utasitasok.txt, 02_tipusok.pdf, 03_dml.pdf, 05_valtozok.pdf
--- Ez volt az előkészítés az Eljut feladat megoldásához:
PL/SQL--2/4: Rekurzió, az "Eljut feladat" megvalósítása PL/SQL-ben
> Az "Eljut feladat" megvalósítása PL/SQL-ben
-- Az Eljut-feladat a Tankönyv (Ullman-Widom kék könyv) 10.2 szakaszára épül
-- Adott Jaratok(legitarsasag, honnan, hova, koltseg, indulas, erkezes) táblában
repülőjáratok adatait tároljuk (honnan-hova várospárok). Azt keressük, hogy
Dallasból mely városokba tudunk eljutni (közvetlenül vagy egy/több átszállással).
-- Ezzel a scripttel jaratok_tabla.txt készítsünk saját táblát, ami alapján dolgozunk.
> Rek1.feladat: Mely (x, y) várospárokra lehetséges egy vagy több átszállással
eljutni x városból y városba? -- Ehhez készítsünk egy Eljut(honnan, hova) táblát,
a sorait a járatok tábla alapján PL/SQL programmal töltsük fel (ciklust szervezni,
az insert 2.alakja: több sor felvitele alkérdéssel/járatok és eljut táblák alapján).
>>> (csak ha kell, egy kis segítség, további ötletek és a megoldás vázlata: itt)
> Rek2.feladat: Mely (x,y) város párokra hány átszállással és milyen költségekkel
lehetséges egy vagy több átszállással eljutni x városból y városba? -- Ehhez is
készítsünk Eljut2(honnan, hova, atszallas, koltseg) táblát, a sorait programmal.
>> Papíron megoldandó feladat: Fejezzük ki az SQL-1999-es szabvány SELECT
WITH RECURSIVE utasítással, hogy mely mely városokba (hova) tudunk eljutni
'DAL' (Dallas)-ból legfeljebb 3 átszállással és legfeljebb 5000 költségből.
>>> (csak ha kell, egy kis segítség WITH RECURSIVE papíros részéhez itt)
« | 01. | 02. | 03. | 04. | 05. | 06. | 07. | 08. | 09. | 10. | 11. | 12. | 13. | #
10.EA: 2016.11.23. --- SQL/PSM szabvány a gyakorlatban: Oracle PL/SQL
>>> folyt. 8.előadás.pdf illetve Oracle Junior EA: Oracle PL/SQL.pdf
PL/SQL--3/4: Több sort visszaadó lekérdezések, kurzorok használata
> Oracle PL/SQL, ehhez Oracle 11gR2 doc PL/SQL Language Reference
-- Az Oracle doksikban szereplő példák kipróbálásához: createHRtables
DML utasítások a PL/SQL-ben, kurzorok >> 6.fej. Static SQL/Cursors
>> példa6-1 DML utasítások a programban, implicit kurzor
>> példa-6-4 implicit kurzor attribútumok,
>> példa-6-7 explicit kurzorok deklarálása és használata, lásd 5.feladat,
>> példa-6-11-től 6-14 explicit kurzor attribútumok, lásd 6.feladat,
>> példa-6-17 paraméteres kurzorok, lásd 7-8.feladat,
>> példa-6-43 for update kurzor módosításhoz, lásd 9-10.feladat.
>> (összefoglaló) (volt:03_sql_dml.pdf), 13_kurzorok.pdf, pl03_cursor.txt
PL/SQL--4/4: Tárolt eljárások és függvények használata, kivételkezelés
> PL/SQL eljárások és függvények >> 8.fej. PL/SQL Subprograms
>> példa2-19 Alprogramok (már itt is volt: 2.fej. Alapok)
>> példa4-1 IF-THEN utasítás (már itt is volt: 4.fej. Utasítások)
>> (összefoglaló) plsql_06_alprogramok.pdf, pl06_procedura_fv.txt
> PL/SQL kivétel- és hibakezelés >> 11.fej. PL/SQL Error Handling
>> példa-11-5 és tábla-11-2 előre definiált kivételek
>> példa-11-8 felhasználó által definiált kivételek
>> (összefoglaló) plsql_07_kivetelek.pdf, pl05_exception.txt
> (összefoglalásként) plsql_13_kurzorok.pdf
« | 01. | 02. | 03. | 04. | 05. | 06. | 07. | 08. | 09. | 10. | 11. | 12. | 13. | #
11.EA: 2016.11.30. --- Fizikai tervezés: indexek létrehozása és használata
Lekérdezések végrehajtása, katalógusok, optimalizálás. Indexek.
> [Tk2.folyt.] Molina-Ullman-Widom: Adatbázisrendszerek megvalósítása
> AB2-előadás: Indexstruktúrák (4.fej); Lekérdezések végrehajtása (7.fej)
Innen részletek: Elsődleges indexek fizika.p26 és fizika.p34
Másodlagos indexek fizika.p43 és B-fák: fizika.pp49-58
> Feladatok AB2-gyakorlaton: Ojektumokra, Adattárolásra és Indexekre
Innen gépes gyakorlat: Feladatok-indexekre.txt
> Oracle Példák
>> 1/10.lecke SQL DDL (nézettáblák, indexek és szinonimák létrehozása)
>> 2/1.lecke SQL DDL (táblákhoz megszorítások, indexek létrehozása)
>> OracleDoc: SQL Language Reference >> innen CREATE INDEX példák
>> OracleDoc: Concepts >> 3 Overview of Indexes
Hozzunk létre egy vagy több táblához több különböző indexet!
Legyen köztük több oszlopos, csökkenő sorrendű, függvény alapú,
fordított kulcsú (reverse), bitmap index, stb. Majd állapítsuk meg ezeknek
az indexeknek a különböző tulajdonságait a katalógusokból.
DBA_INDEXES, DBA_IND_COLUMNS, DBA_IND_EXPRESSIONS
« | 01. | 02. | 03. | 04. | 05. | 06. | 07. | 08. | 09. | 10. | 11. | 12. | 13. | #
12.EA: 2016.12.07. --- Félig-strukturált adatmodell, XML dokumentumok
A félig-strukturált adatmodell, XML, Xpath, XQuery
Ullman-Widom Tankönyv 11-12.fejezetek
Xpath-XQuery.pdf (Forrás: részlet Kiss Attila habilitációs előadásából)
Gépes feladatok:
[1] XPath_feladatok.txt >> Ehhez: kolcsonzesek.xml és Xpath-Tester
[2] XQuery_feladatok.txt >> Ehhez: kolcsonzesek.xml és XQuery-Demo
« | 01. | 02. | 03. | 04. | 05. | 06. | 07. | 08. | 09. | 10. | 11. | 12. | 13. | #
13.EA: 2016.12.14. --- Adattárházak, adatbányászat áttekintés
Adattárházak, adatbányászat áttekintés
Ullman-Widom Tankönyv 10.6.-10.7. OLAP, adattárházak
>> Adattárházak (Kiss Attila -- Han 5.ea. előadásfóliák fordítása)
Molina-Ullman-Widom 11.fejezet Adatbányászat
>> Adatbányászat: Bevezetés (Kiss Attila -- Han 1.ea fóliák fordítása)
>> Adatbányászat: Bevezetés (Ispány Márton -- Kumar 1.ea fordítása)
--- Adatbányászat magyar nyelven --- Digitális Tankönyvtár:
>>> Bevezetés az adatbányászatba (Tan, Steinbach, Kumar)
>>> Előadásfóliák (Ispány Márton -- Kumar előadásfóliák ford.) -->> Slides
Az adatbányászati feladatok általában két fő kategóriába sorolhatók, ezek:
- Prediktív modellezés és előrejelző feladatok: osztályozás, regresszió
- Leíró-feltáró feladatok: klaszterezés, asszociációs elemzés, anomália keresés
-- -- -- -- -- -- -- --
ÖSSZEFOGLALÁS:
-- -- -- -- -- -- -- --
Az előadások gépes részéhez: Oracle adatbázisok elérése, SQL developer
Oracle Példatár feladatai: Feladatok.pdf (SQL: 1-6.fej., PL/SQL: 8-10.fej.)
-- Példatár feladataihoz scriptek: createEmpDept(en) vagy createDolg(hu)
Tankönyv feladatai: Termékek-feladatok.pdf, Csatahajók-feladatok.pdf
-- Tankönyv feladataihoz a scriptek: createTermékek, createCsatahajók
Oracle SQL segédanyagok: ebben az eduSQL mappában
-- lekérdezésekhez a scriptek: createHRsyn (elég szinonimákat használni)
-- később, DML-utasításokhoz: createHRtables (itt saját tábláink legyenek)
Oracle PL/SQL segédanyagok: ebben az eduPLSQL mappában
-- itt a plsql_ fájlok forrása: innen -- és a PL/SQL könyvhöz a scriptek: itt
-- Tankönyvtár: PL/SQL programozás Oracle 10g-ben (Gábor A.-Juhász I.)
Oracle 11gR2 Online Docu: -- Tanszéki szerveren -- Oracle oldalán --
-- SQL Language Reference: HTML PDF (2009.10) HTML PDF (2014.07)
-- PL/SQL Language Refer.: HTML PDF (2010.03) HTML PDF (2014.12)
-- -- -- -- -- -- -- --
A vizsgára a Neptunban kell jelentkezni, a dec.14-i elővizsgára e-mailben,
ennek az eredményét a dec.21-i vizsganapra jegyezzük be a Neptunba.
Tudnivalók a vizsgáról és követelmények: A szóbeli vizsga két részből áll:
1.) Az előadásokhoz kapcsolódó saját beadandó feladat gépes bemutatása
2.) További kérdések a vizsgatételekből (alapfogalmak és feladatok megoldása)
Beadandó feladat: Saját adatbázis tervezése és megvalósítása, lekérdezések.
A terveket (az E/K diagramot vagy UML osztálydiagramot) papíron ceruzával
felrajzolva elegendő a vizsgára behozni, de a feladat leírását és megvalósítását
SQL-ben DDL (create table/view/index), DML (insert, delete, update, select) script
és a saját táblákon alapuló lekérdezési feladatokat (SQL select, PL/SQL program)
egyszerű szövegben e-mailben (nincs csatolás) kell beküldeni legalább 24 órával
a vizsga kezdete előtt! Vizsgák időpontja: vizsgaidőszakban Szerda 10:00 órától
VIZSGATÉTELEK
Adatbázisrendszerek - Alapok (ez a kötelező törzsanyag a vizsgán)
A1. A relációs adatmodell alapjai: Reláció, relációséma és előfordulás,
attribútumok és sorok, kulcsok, külső kulcsok, hivatkozási épség.
Relációsémák definiálása SQL-ben, a CREATE TABLE utasítás,
megszorítások, kulcsmegszorítás, hivatkozási épség megadása,
PRIMARY KEY, UNIQUE, FOREIGN KEY, REFERENCES.
(Tankönyv 2.2-2.3. szakasz, 22-35.oldal)
A2. Egyszerű egytáblás lekérdezések, Relációs algebra vetítés és kiválasztás.
SQL SELECT egy relációra: WHERE záradék feltételének megadása,
speciális értékek, adattípusok és logikai kifejezések megadása, nullérték:
hiányzó értékek, műveletek nullértékekkel, az ismeretlen (unknown)
igazságérték, logikai műveletek eredménye háromértékű logika esetén.
(Tankönyv 2.4. és 6.1.szakasz, 258-269.)
A3. Többtáblás lekérdezések, direkt szorzat, összekapcsolások és halmaz-
műveletek a relációs algebrában és az SQL FROM záradékban.
Attribútumok megkülönböztetése, sorváltozók. Az SQL lekérdezések
kiértékelésének szabvány szerinti alapértelmezése. Relációs algebrai
alapműveletek. Lekérdezések kifejezése relációs algebrában, kifejezésfa.
Relációkra (mint multihalmazokra) vonatkozó műveletek, ismétlődések
megszüntetése, ismétlődések kezelése halmazműveletek során.
(Tankönyv 2.4., 5.1. és 6.2. szakasz, 273-281.)
A4. A relációk egészére vonatkozó műveletek, csoportosítás: GROUP BY
záradék, összesítő függvények és nullértékek kezelése, csoportokra
vonatkozó feltételek: HAVING záradék. Külső összekapcsolások.
Az eredmény rendezése: ORDER BY záradék. A záradékok sorrendje.
(Tankönyv 5.2. és 6.4. szakasz, 300-305.)
A5. Alkérdések az SQL SELECT utasításban a FROM listán és a WHERE
és HAVING záradékokban, korrelált alkérdések alakja, kiértékelése.
(Tankönyv 6.3. szakasz, 284-290.)
A6. Változtatások az adatbázisban. Táblák tartalmának megváltoztatását szolgáló
SQL DML utasítások: INSERT, DELETE, UPDATE (6.5 szakasz, 307-312.)
A7. Az egyed-kapcsolat (E/K) diagram. Egyedhalmazok attribútumok, kapcsolatok.
Alosztályok, "az-egy" ("isa") kapcsolat és jelölése. Megszorítások modellezése,
kulcsok és a kulcsok, hivatkozási épség, megszorítások. Gyenge egyedhalmazok.
Az E/K diagram átírása relációs modellé. Osztályhierarchia ("isa") átalakítása
relációkká, a három megközelítés összehasonlítása: E/K-típusú, objektumelvű,
és nullértékek használatával való átírás. (Tankönyv 4.1-4.6. szakaszok, 133-181.)
A8. Megszorítások az SQL-ben: kulcsok, idegen kulcsok, hivatkozási épség
fenntartása. A hivatkozási épség fenntartására vonatkozó lehetőségek
megadása SQL-ben a hivatkozott táblára vonatkozó módosítások miatt.
Attribútumokra és sorokra vonatkozó megszorítások: NOT NULL,
CHECK. Megszorítások elnevezése. (Tankönyv 7.fejezete, 329-347.)
A9. Nézettáblák létrehozása és használata az SQL-ben, adatok módosítása
nézettáblákon keresztül. Tárolt nézettáblák. Indexek. (Tankönyv 8.fejezete)
Adatbázisrendszerek - Haladó kérdéskörök (ebből szabadon lehet választani vizsgán)
H1. Logika a relációkhoz. A relációs algebra és a Datalog összevetése. (Tk.5.3.-5.4.)
H2. Rekurzió az SQL-99-es szabványban: WITH RECURSIVE utasítás
Az Eljut feladat (könyv példája, előadáson is szerepelt).
Az SQL-99-es szabvány WITH RECURSIVE utasítása.
Az Eljut feladat megoldása rekurzióval. (Tk.10.2. szakasz, 467-474.)
H3. SQL programnyelvi bővítése, sémában tárolt függvények és eljárások.
(SQL/PSM szabvány vagy Oracle PL/SQL alapján) Sémában tárolt eljárások
és függvények létrehozása és használata, néhány egyszerű utasítás alakja.
(Tankönyv 9.4.1-9.4.3. szakasz, 416-421., 9.4.7-9.4.8. szakasz, 415-431.)
H4. SQL lekérdezések használata programozási környezetben
(SQL/PSM szabvány vagy Oracle PL/SQL alapján) Az SQL utasítások és
a programozási nyelvek összekapcsolásának a típuseltérés problémája.
Egyetlen sort eredményező lekérdezések és az osztott változók használata.
Sorhalmazt eredményező lekérdezések és a kurzorok (CURSOR) definiálása
és a használata, FETCH utasítás. Ciklusok használata.
(Tankönyv 9.3-9.3.7. szakasz, 401-412., 9.4.4-9.4.6. szakasz, 421-425.)
H5. Adatbázisrendszerek általános felépése (Tankönyv 1.fejezete)
Katalógustáblák, sémaobjektumok, adattárolással kapcsolatos feladatok
H6. Nézetek, indexek, indexstruktúrák, B-fák és hasító indexek
H7. Lekérdezések végrehajtása, végrehajtási tervek, tuning
H8. XML, Xpath, XQuery (Tankönyv 11-12.fejezetek)
H9. Adattárházak. OLAP. Adatkockák (Tankönyv 10.6-10.7 szakaszok)
Adatbányászati áttekintés, klaszterezés, osztályozás feladata