ADATBÁZISOK-1
ELŐADÁS [prog.inf:
IP-08AB1E]
ELTE, 2015/2016-os tanév II.félévében [2016.febr] |
|
Előadás: Hétfő 10:15-11:45 (90') Déli ép. 0-821 Bolyai terem (Nincs katal)
Gyakorlatok: [1] Csüt. 8:30-10:00[2] Csüt. 12:15-13:45 [link: AB1GY.html]
Tudnivalók: az előadásról és a vizsgáról, követelmények, részletek [itt:.pdf]
Tankönyv: Jeffrey D. Ullman, Jennifer Widom: Adatbázisrendszerek Alapvetés
Második átdolgozott kiadás, Panem, 2009. (a kék könyv)
Az előadásokon olyan sorrendben szerepel a tananyag, ahogy a gyakorlatok
ezt megkívánják. Kérem, hogy az aktuális előadás pdf-t mindig frissítse (F5-el),
ugyanis még fejlesztem a tananyagot! Ha hibát vagy hiányosságot talál benne,
kérem, hogy azt e-mailben jelezze és javítom. Köszönöm a visszajelzéseket!
Témakörök:
ea+gyak:I. ADATBÁZISOK LEKÉRDEZÉSE: 1.EA | 2.EA | 3.EA | 4.EA | 5.EA | 6.EA
gyak: II. ADATBÁZISOK PROGRAMOZÁSA: 7.EA (és lásd még PL/SQL-1, -2, -3, -4)
csak ea: III. ADATBÁZISOK TERVEZÉSE: 8.EA: Modellek | 9-12.EA: RelTervezes.pdf
Információ a vizsgákról: A vizsgaalkalmakra a Neptunban kell jelentkezni,
a Neptun 24 órával a vizsga kezdete előtt zárja le a vizsga-jelentkezéseket.
A vizsgaidőszakban minden héten van vizsgaalkalom meghirdetve a Neptunban:
(1) 2016.05.18. Szerda 10h 0-821 Bolyai terem [vizsgalap-2016-05-18.pdf]
(2) 2016.05.25. Szerda 10h 0-821 Bolyai terem [vizsgalap-2016-05-25.pdf]
(3) 2016.06.01. Szerda 10h 0-821 Bolyai terem [vizsgalap-2016-06-01.pdf]
(4) 2016.06.08. Szerda 10h 0-821 Bolyai terem [vizsgalap-2016-06-08.pdf]
(5) 2016.06.15. Szerda 10h 0-821 Bolyai terem [vizsgalap-2016-06-15.pdf]
(6) 2016.06.22. Szerda 12h 0-821 Bolyai terem, figyelem! nem 10h, hanem 12h!
(7) 2016.06.29. Szerda 10h 0-821 Bolyai terem, ez csak javító- vagy utóvizsga!
-->> Vizsgatételek (ez a rögzített tananyag, amit a vizsgára tudni kell, fix)
-->> Ellenőrző kérdések és feladatok (ez csak minta, folyamatosan frissítem)
Adatbázisok-1 kurzus Vizsgatételekben négy fő témakörbe osztottuk az anyagot
és ennek megfelelően vannak csoportosítva a vizsgán is a kérdések négy lapra,
minden lapon 3-3 kérdés szerepel. Egy kérdés lehet egyszerű típusfeladat is.
Az írásbeli vizsgán négy lapon 12 ellenőrző kérdésre 80 perc áll rendelkezésre
(kb. 20 perc egy lap), kérdésenként 5 pont kapható, részpontok is szerezhetők.
Összesen kapható 60 pontból legalább 20 pontot kell elérnie a sikeres vizsgához.
Ponthatárok: 20p-tól elégséges, 30p-tól közepes, 40p-tól jó, 50p-60p jeles.
-->> Vizsgaeredmények/részpontok (név-> kód) hallgato/[jelszóval] [itt:.pdf]
Az előadások tananyaga/diasorozata:
1.EA: 2016.02.08. --- Relációs adatmodell, relációs algebra, egyszerű select
>>> 1.előadás.pdf
> 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, kulcsok megadása
> 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.
--- 1.GYAK: Egyszerű táblák (most még megszorítások nélkül) létrehozása,
--- milyen típusúak lehetnek az attribútumok az Oracle gyakorlatokon
--- ismerkedünk meg. Egyszerű lekérdezések: Oracle Példatár 1.fejezete
2.EA: 2016.02.15. --- Rel.algebrai lekérdező nyelv, rel.algebra átírása SQL-re
>>> 2.előadás.pdf
> Tk.2.4. Egy algebrai lekérdező nyelv, relációs algebráról teljes áttekintés
> Tk.2.4. Relációs algebrai feladatok (Tk.2.4.1.feladat) Termékek feladatai
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
--- 2.GYAK: Oracle Példatár 1.fejezete (folyt. kifejezések, sorfüggvények)
3.EA: 2016.02.22. --- Relációs algebra kiterjesztése egytáblás teljes SELECT
>>> 3.előadás.pdf
> Tk.5.1. Relációs algebra kiterjesztése multihalmazokra (az SQL-hez)
> Tk.5.2. Kiterjesztett műveletek, összesítések, csoportosítás
> Tk.6.4.3.-6.4.7. Relációkra vonatkozó műveletek, összesítő függvények
és csoportosítás az SQL-ben, group by és having záradék
--- 3.GYAK: Oracle Példatár 2.fejezete (Egytáblás csoportosító lekérdezések,
--- group by, having és order by záradékok) [4.GYAK: I.ZH Példatár 1-2.fej.]
4.EA: 2016.02.29. --- Több táblára vonatkozó lekérdezések, alkérdések
>>> 4.előadás.pdf
> Tk.7.1.-7.4. Megszorítások, kulcs, külső kulcs, hivatkozási épség
> Tk.6.2. Több relációra vonatkozó lekérdezések az SQL-ben, szemantika
> Tk.6.4.1.-6.4.2. Ismétlődések kezelése, Halmazműveletek az SQL-ben
> Tk.6.3. Alkérdések és összekapcsolások, külső összekapcsolások az SQL-ben
--- 4.GYAK: I.ZH Egytáblás lekérdezések Példatár 1-2.fej. feladatai
5.EA: 2016.03.07. --- Áttekintés: SQL DML, Adatbázis-kezelő rendszerek
> Kieg.: Példák rel.algebrai lekérdezések -> átírása SQL-be: 2.előadás.pdf
> Ismétlés: Külső összekapcsolások az SQL-ben: 4.előadás.pdf (4.EA vége)
>>> 5.előadás.pdf
> Tk.6.5. Táblák tartalmának módosítása: DML-utasítások (insert, delete, update)
> Tk.1.fej. Az adatbázis-kezelő rendszerek (ABKR) felépítése, alapfogalmak
--- HF 5-6.GYAK: Oracle Példatár 3.fejezete (Többtáblás lekérdezések)
Megj.: március 14-15 hétfő-és-kedd (két nap) nemzeti ünnep, nincs oktatás
6.EA: 2016.03.21. --- Logika a relációkhoz. Rekurzió a Datalogban és SQL-ben
>>> 6.előadás.pdf
> 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ó (csak a nem-monoton rekurzió) az SQL-ben.
-- Vizsgára csak az SQL-99 szabvány WITH RECURSION utasítása kell (papíron)
-- Oracle gépes-megoldások nincs a vizsgán, csak a gyakorlaton próbáljuk ki:
-- az Eljut-feladathoz a Jaratok táblát létrehozó script: create_jaratok_tabla.txt
--- HF 5-6.GYAK: Oracle Példatár 3.fejezete (Többtáblás lekérdezések)
Megj.: március 23-29 szerdától-keddig (egy hét) tavaszi szünet, nincs oktatás
II. ADATBÁZISOK PROGRAMOZÁSA TÉMAKÖR
7.EA: 2016.04.04. --- SQL-2003/PSM szabvány a gyakorlatban: Oracle PL/SQL
>>> 7.előadás.pdf --- és a gyakorlaton: 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
-- Adatbázisok-1 vizsgán választhat menyiket ismerteti (elég az egyik szerint)
-- (1) vagy Ullman-Widom Tankönyv 9.3.-9.4. SQL/PSM fejezete alapján,
-- (2) vagy a 9-12.gyakorlatokon begyakorolt Oracle PL/SQL alapján, ehhez
> 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)
-- Az Oracle doksikban szereplő példák kipróbálásához: createHRtables
> Gyakorlás: Oracle Példatár 8-10.fejezet feladatai --- Feladatok.pdf
PL/SQL--1/4: blokk, deklaráció, utasítások, vezérlési szerkezetek, select into
> 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)
> Rek3.feladat: Tegyük fel, hogy nemcsak az érdekel, hogy el tudunk-e jutni az
egyik városból a másikba, hanem az is, hogy utazásunk során az átszállások is
ésszerűek legyenek, ez azt jelenti, hogy ha több járattal utazunk, akkor nézni
kell átszálláskor az érkező járatnak legalább egy órával a rákövetkező indulás
előtt meg kell érkeznie. (Tegyük fel, hogy nincs egy napnál hosszabb utazás!)
> Rek4.feladat: A fenti feladatokat oldjuk meg PL/SQL-ben úgy is, hogy ne csak
a várospárokat, hanem a teljes útvonalat is listázzuk ki.
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
-- -- -- -- --
III. ADATBÁZISOK TERVEZÉSE TÉMAKÖR
8.EA: 2016.04.11. --- Tervezés: E/K-modell, E/K-diagram átírása relációkká
>>> 8.ea:Modellek.pdf
> Tervezés (előadáson: Tk.3-4.fej.) és progr. PL/SQL (gyak.: Példatár 8-10.fej.)
> Tk.4.1.-4.4. Az egyed-kapcsolat (E/K) modell elemei
> Tk.4.5.-4.6. E/K diagram átírása relációs modellé
9.EA: 2016.04.18. --- Relációs adatbázisok tervezése, normalizálás --1.rész
>>> 9.ea:RelTervezes.pdf -- Attribútum halmaz lezártjáig jutottunk 30.oldalig
> Tk.3.3.1-3.3.2. Bevezetés a relációs adatbázissémák tervezésébe
> Tk.3.1. Funkcionális függőségek
> Tk.3.2. Funkcionális függőségekre vonatkozó szabályok
Attribútumhalmazok lezárása, Funkcionális függőségek vetítése
10.EA: 2016.04.25. --- Relációs adatbázisok tervezése, normalizálás --2.rész
>>> 9.ea:RelTervezes.pdf -- folyt. 30.oldaltól 60.oldalig jutottunk
> Tk.3.3.3-3.3.4. Boyce-Codd normálforma és BCNF-ra való felbontás
> Tk.3.4. Chase-teszt a felbontás veszteségmentességének ellenőrzésére
11.EA: 2016.05.02. --- Relációs adatbázisok tervezése, normalizálás --3.rész
>>> 9.ea:RelTervezes.pdf -- folyt. 60.oldaltól végig
> Tk.3.4. Függőségek megőrzése
> Tk.3.5. Harmadik normálforma definíciója, 3NF-szintetizáló algoritmus
12.EA: 2015.12.07. --- 12.EA: Összefoglalás (vizsgatételek) és kitekintés
> ÖSSZEFOGLALÁS
>>> Vizsgatételek
-- >> Vissza a lapnak az elejére: Információ a vizsgákról
> KITEKINTÉS: Adatbázisok kurzusokhoz rövid ismertető és könyvajánló:
-- Ullman-Widom -- Molina-Ullman-Widom -- Abiteboul-AlicesBook
--- BSc Adatbázisok-1 témakörben (Hajas Csilla -- Adatbázisok-1 előadás)
(1) Ullman-Widom 1.-4.fejezet Relációs adatbázisok modellezése
(2) Ullman-Widom 5.-9.fejezet Relációs adatbázisok programozása
(3) Ullman-Widom 10-12.fejezet Haladó témák közül csak 10.2 Rekurzió,
(a többi haladó témakört MSc kurzusokon tanuljuk, lásd lentebb)
--- BSc Adatbázisok-2 témakörben (Kiss Attila -- Adatbázisok-2 előadása)
(4) Molina-Ullman-Widom 1.-5.fejezet Adattárolás, Indexstruktúrák
(5) Molina-Ullman-Widom 6.-7.fejezet Lekérdezések végrehajtása
(6) Molina-Ullman-Widom 8.fejezet Naplózás, helyreállítás
(7) Molina-Ullman-Widom 9.fejezet Konkurenciavezérlés. Tranzakciókezelés
--- BSc Adatbázisok-1 kurzus alapvető célja az SQL és PL/SQL megismerése,
Oracle Online Dokumentation: Az SQL és PL/SQL feladatok megoldásához
hasznos az SQL Language Reference és a PL/SQL Language Reference
--- BSc Adatbázisok-2 kurzuson további dokumentációknak vesszük hasznát
>> Alapfogalmak -- Oracle Database Concepts, itt lásd például Indexek
>> Hangolás -- Oracle Database Performance Tuning Guide
--- Információs rendszerek MSc szakirány bemutatása: InfoMSc.pdf (Kiss Attila)
--- MSc Tudáskezelő rendszerek projektlabor --> BSc-sek is csatlakozhatnak!
--- BSc és MSc: IT technológiák és architektúrák nagyvállalati környezetben
amely ingyenes! kredites! Oracle szeminárium --> Oracle Junior Program
--- MSc Az adatbázisrendszerek elméleti alapjai
(8) Relációs algebra, relációs kalkulusok és a Datalog bővebben
(9) Relációs sématervezés magasabb normálformák
(10) Molina-Ullman-Widom 10.fejezet Osztott adatbázisok
--- MSc Korszerű adatbázisok kurzus
(11) Ullman-Widom 11-12.fej. A félig-strukturált adatmodell
(12) Gráfadatbázisok
(13) BigData, Hadoop
--- MSc Információs rendszerek fejlesztési módszertana kurzus
(14) Információs rendszerek fejlesztése. Adatmodellezés
--- MSc Térinformatikai adatbázisok kurzus
(15) Ullman-Widom 10.4.-10.5. Objektum-relációs adatbázisok
(16) Térinformatikai adatformátumok, térbeli elemzések
--- MSc Adattárházak és adatbányászat kurzus
(17) Ullman-Widom 10.6.-10.7. OLAP, adattárházak --> Adattárházak (Kiss Attila)
(18) Molina-Ullman-Widom 11.fejezet OLAP, adatbányászat --> Adatbányászat
-- Adatbányászat magyar nyelven -- Digitális Tankönyvtár:
>> Bevezetés az adatbányászatba (Tan-Steinbach-Kumar könyve)
>> Előadásfóliák (Tan-Steinbach-Kumar könyvhöz, Ispány Márton fordítása)
!! A mai utolsó előadáson erről a témáról egy kis kitekintés --> 1.ea: Bevezetés
-- és a fontosabb algoritmusok PL/SQL forráskódja elérhető: Oracle Data Mining
VIZSGATÉTELEK
//Elméleti alapok //és az SQL
I.rész: Egyszerű lekérdezések //Alap relációs algebra //Egytáblás lekérdezések
II.rész: Összetett lekérdezések //R.alg, Datalog, Rekurzió //Többtáblás lekérdezések
III.: Modellezés és megvalósítás //E/K diagram->rel.mod. //SQL DDL, DML utasítások
IV.: Tervezés és programozás //Függőségek, normálformák //Oracle PL/SQL (PSM)
-- >> Vissza a lapnak az elejére: Információ a vizsgákról
-- I. RÉSZ/ELMÉLETI ALAPOK: ALAP RELÁCIÓS ALGEBRA ÉS SQL
1. A relációs adatmodell alapjai: Reláció, séma és előfordulás,
attribútumok és sorok, kulcsok, külső kulcsok, hivatkozási épség.
(Tankönyv 2.2. szakasz, 22-29.oldal, illetve 2.5. szakaszból részek)
2. Relációs algebra--1.:
Relációs algebrai alapműveletek, kifejezések felépítése, kifejezésfa.
(2.4. szakasz, 39-61.)
3. Relációs algebra--2.:
Lekérdezések kifejezése alap relációs algebrában és átírása SQL SELECT
utasításra. Tankönyv 2.4. szakasz feladatai, Tankönyv TERMÉKES példái.
-- I. RÉSZ/SQL: EGYSZERŰ (EGYTÁBLÁRA VONATKOZÓ) LEKÉRDEZÉSEK
4. 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, REFERENCES. (2.3. és 2.5. szakasz, 30-35.)
5. Az SQL adatbázisnyelv 6.1. Select--1.
Egyszerű lekérdezések, SQL SELECT egy relációra: WHERE záradék
feltételének megadására, speciális értékekre, adattípusokra és logikai
kifejezések megadására milyen lehetőségek vannak? 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.
Az eredmény rendezése: ORDER BY záradék. (6.1.szakasz, 258-271.)
6. Az SQL adatbázisnyelv 6.4. Select--2.
Ismétlődések megszüntetése: DISTINCT (6.4.1. szakasz 298.o.)
Függvények használata a lekérdezésekben, sorfüggvények (típusok).
Csoportosítás: GROUP BY záradék, összesítő függvények, nullértékek
kezelése, csoportokra vonatkozó feltételek: HAVING záradék.
A záradékok sorrendje. (6.4.3-6.4.7 szakaszok, 300-305.)
-- II. RÉSZ/SQL: ÖSSZETETT (TÖBB TÁBLÁRA VONATKOZÓ) LEKÉRDEZÉSEK
7. Az SQL adatbázisnyelv 6.2. Select--3.
Többrelációs lekérdezések, direkt szorzat és összekapcsolások a
FROM záradékban. Attribútumok megkülönböztetése, sorváltozók.
A lekérdezések kiértékelésének szabvány szerinti alapértelmezése.
(6.2.1-6.2.4. szakaszok, 273-280.)
8. Az SQL adatbázisnyelv 6.2., 6.4. Select--4.
Halmazműveletek az SQL-ben: UNION, INTERSECT, EXCEPT .
Ismétlődések kezelése halmazműveletek során: UNION és UNION ALL,
INTERSECT [ALL], EXCEPT [ALL]. (6.2.5., 280-281. és 6.4.2., 298-299.)
9. Az SQL adatbázisnyelv 6.3. Select--5.
Összekapcsolások és külső összekapcsolások az SQL FROM záradékban.
(6.3.6.-6.3.8. szakaszok, 290-295.)
10. Az SQL adatbázisnyelv 6.3. Select--6.
Alkérdések a FROM listán, a WHERE és a HAVING záradékokban,
korrelált alkérdések alakja, kiértékelése.
(6.3.1.-6.3.5. szakaszok, 284-290.)
-- II. RÉSZ/ELMÉLETI ALAPOK: REL.ALGEBRA ÉS DATALOG, REKURZIÓ
11. A kiterjesztett relációs algebra
Relációs algebrai műveletek kiterjesztése multihalmazokra.
További algebrai műveletek, ismétlődések megszüntetése,
az ismétlődések kezelése halmazműveletek során, összesítések
(aggregáló függvények), csoportosítás, kiterjesztett vetítés,
rendezés, külső összekapcsolások (5.1.-5.2. szakasz, 217-236.)
12. Logika a relációkhoz. Datalog alapjai. Relációs algebra és Datalog.
Lekérdezések kifejezése alap relációs algebrában és átírása
Datalog szabályokká. (5.3.-5.4. szakasz, 236-253.)
13. Rekurzió az SQL-99-es szabványban:
Az Eljut feladat (Tankönyv példája, az előadáson is szerepelt).
Az SQL-99-es szabvány WITH RECURSIVE utasítása (záradék).
Az Eljut feladat megoldása SQL-ben. (10.2. szakasz, 467-474.)
-- III. RÉSZ/SQL: MEGVALÓSÍTÁS -- SQL DDL és SQL DML UTASÍTÁSOK
14. Adatbázis-kezelő rendszerek áttekintése, ACID-tranzakciók
(1.2. szakasz 5-13.oldal)
15. Táblák tartalmának megváltoztatását szolgáló SQL DML utasítások:
INSERT, DELETE, UPDATE (6.5 szakasz, 307-312.)
16. Megszorítások az SQL-ben: kulcsok, idegen kulcsok és hivatkozási
épség. 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.
Megszorítások ellenőrzésének késleltetése. (7.1. szakasz, 329-337.)
17. Attribútumokra és sorokra vonatkozó megszorítások: NOT NULL, CHECK.
(7.2-7.4. szakasz, 338-360.)
18. 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. (8.1-8.2., 361-370.)
-- III. RÉSZ/ELMÉLETI ALAPOK: E/K MODELL ÉS ÁTÍRÁSA RELÁCIÓKRA
19. Az egyed-kapcsolat modell. Egyedhalmazok attribútumok, kapcsolatok.
E/K modell, séma, előfordulás, diagram. E/K-kapcsolatok típusai, szerepek,
kapcsolatok attribútumai. Alosztályok, "az-egy" ("isa") kapcsolat és jelölése.
Megszorítások modellezése, kulcsok és a kulcsok jelölése az E/K modellben,
hivatkozási épség, megszorítások. Gyenge egyedhalmazok fogalma, jelölése.
(4.1.-4.4. szakaszok, 133-165.)
20. 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. (4.5-4.6. szakaszok, 165-181.)
-- IV. RÉSZ/SQL: SQL/PSM SZABVÁNY A GYAKORLATBAN: ORACLE PLSQL
21. SQL programnyelvi bővítése. Alapok, végrehajtható utasítások,
feltételes utastások, ciklusok, SQL DML utasítások a programban.
Az Eljut feladat (lásd 11.tétel) iterációs megoldása SQL/PSM-ben
(az előadáson szerepelt) vagy az Oracle PL/SQL gyakorlat alapján.
22. SQL lekérdezések használata programozási környezetben.
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.
Kurzor FOR ciklus (PSM: Tankönyv 9.3-9.3.7. szakasz, 401-412.,
9.4.4-9.4.6. szakasz, 421-425., vagy Oracle PL/SQL gyak. alapján)
23. Sémában tárolt eljárások és függvények létrehozása, használata,
csomagok, hiba- és kivételkezelés, triggerek. (Tankönyv 9.4.1-9.4.3.
416-421., 9.4.7-9.4.8., 415-431. vagy Oracle PL/SQL gyak. alapján)
-- IV. RÉSZ/ELMÉLETI ALAPOK -- RELÁCIÓS SÉMATERVEZÉS, NORMÁLFORMÁK
24. Relációs adatbázisok tervezési elmélete--1.
Funkcionális függőség, kulcs, szuperkulcs, függőségi rendszerek, implikáció
(következés) és levezetés definíciója, szétvághatósági és összevonási szabály.
Attribútumhalmaz lezárása és algoritmusa, levezetési szabályok teljes halmaza
(az ún. Armstrong-axiómák), funkcionális függőségi rendszerek ekvivalenciája,
függőségi halmazok lezárása, minimális bázis (vagy más néven minimális fedő).
Függőségi rendszerek vetítése. (3.1.-3.2. szakaszok, 69-87.oldal)
25. Relációs adatbázisok tervezési elmélete--2.
Anomáliák funkcionális függőségek miatt. Relációk felbontása, dekompozíciója.
Boyce-Codd normálforma, BCNF dekompozíció algoritmusa, BCNF-ra
való felbontás tulajdonságai. (3.3.szakasz, 90-97. oldal.)
26. Relációs adatbázisok tervezési elmélete--3.
A felbontásra vonatkozó három elvárás. Veszteségmentes összekapcsolás és
Chase-teszt a veszteségmentesség ellenőrzésére. Függőségek megőrzése.
(3.4. szakasz, 98-106.oldal)
27. Relációs adatbázisok tervezési elmélete--4.
Harmadik normálforma (elsődleges attribútum és 3NF definíciója),
a minimális függőségi rendszer (minimális bázis, vagy minimális fedő),
3NF felbontás szintetizáló algoritmus, 3NF felbontás tulajdonságai.
(3.5. szakasz, 108-111.oldal)