II.
Témakör
Adatbázisséma tervezés (E/K modell
--> leképezése
rel.AB-sémára és a
relációs tervezés:
normalizálás)
SQL SELECT, DDL, DML, DCL áttekintése
_______________________________________________________
7. gyak. (XI.06)
- E/K modell, SQL DDL: CREATE TABLE
- Az I.ZH feladatainak
megbeszélése.
Lekérdezések kifejezése TRC-ben
is!
- Lásd Az
órai
példa-adatbázissémák
1.példáját,
részletesen:
E/K modell,
és leképezése
relációsémákra.
SQL DDL.
Táblák
és megszorítások
(constraints) létrehozása.
SQL DML. A
megszorításoknak eleget tevő adatsorok felvitele.
- A gépes feladatokhoz lásd Oracle
adatbázisok
ELTE-s elérése itt az 1.pontban
leírt egyszerűbb sqlplus
kliens programot használjuk
a panda.inf.elte.hu
gépen.
- HF.
nov.20-i
gyakorlatra a 2. példa pelda2EK E/K modell
javítgatása,
és leképezése
relációs
sémákra (hasonlóan, mint a fenti
1.Példában)
a táblák és
megszorítások
létrehozása: CREATE TABLE , INSERT
(hasonlóan, mint
a fenti 1.Példában). Ebben lesznek a 2Zh
feladatai!
- HF beküldéséről a
részleteket,
lásd Zh
feladatok, beadandók beküldése
_______________________________________________________
8. gyak. (XI.13)
- SQL SELECT -->
függvények, csoportosítás
megoldásokat lásd 03_sql.txt
(jelszóval)
Feladatok az egyszerűsített egyetemi
tantárgyfelvétel
példában
- lásd Az
órai adatbázissémák
1. példáját (E/K modell,
rel.sémák)
- Hozzuk létre a tanar, hallg, targy,
felv táblákat:
CREATE
TABLE,INSERT utasítások: 01_sql.txt
(jelszóval)
- Vizsgáljuk meg a táblák
szerkezetét, integritási
megszorításokat!
- (ismétlő feladat a 2.gyak-ról)
Rel. algebrai lapműveletek
kifejezése SQL SELECT-tel
lásd 02_sql.txt
(jelszóval)
I. feladatcsoport: Rel. algebrai alapműveletek
átírása SQL-be
a múlt heti anyag
ismétléseként oldjuk meg
relációs algebrában csak
az alapműveletek felhasználásával,
és ezt irjuk át SQL SELECT-re.
1. feladat: Milyen tárgyakat vett fel Kiss Pál?
2. feladat: Milyen tárgyakat nem vett Kiss Pál?
3. feladat: Kinek a legnagyobb az ösztöndija?
Házi feladat
(Rel.alg.alapműveletek átírása
SQL-be)
HF1. Kik vettek fel legalább két
tárgyat?
HF2. Kik vettek fel legfeljebb két
tárgyat?
HF3. Kik vettek fel pontosan két
tárgyat?
II. feladatcsoport: Where
felt, csoportosítás,
függvények
Új anyag: az SQL SELECT lekérdezési
lehetősége bővebb, mint
amit a relációs algebrában
láttunk. Erre végezzünk feladatokat:
SELECT WHERE feltétele, GROUP BY
csoportosítás,
és FÜGGVÉNYEK. (Az
alkérdések a köv.héten
lesznek.)
4. feladat: több tábla
összekapcsolásából sorok
kiválasztása minél
érdekesebb keresési feltételeket ill
SQL függvényeket beleírva ...
Kik azok a hallgatók (+függvények)
akiknek
- odija 10000 és 30000 között van (between
and)
- a neve K betűvel kezdődik (like),
- vagy PTM vagy MAT szakosok (in),
5. feladat: Dátumfüggvények: a fentit
folytatva:
- a 200_-es években íratkozott be (konv.fv, like)
- 2005.09.01 - 2006.12.31 között
vizsgázott valamiből
(between and)
6. feladat: Csoportfüggvények a hallgató
táblára készítsük
el
az odijra vonatkozó
statisztikákat:
hány sora van a táblának,
ebből hány sorban van kitöltve
a az odij oszlop,
mennyi a
legnagyobb és legkisebb odij, mennyi az
átlag
és összeg?
7. feladat: Group by, lásd az előző feladatot, csak most
szak
szerinti csoportositásban.
Egészítsük ki having
záradékkal,
csak azokon a szakokon nézzük
meg a
statisztikákat, ahol
kettőnél többen
járnak.
HF: A függvényeknek utána
nézhetünk az Oracle Online Docban.
Függvények, különös
tekintettel a dátum és
csoportfüggvényekre...
HF4. (dátum
függvények)
Hány naposak és hónaposak vagyunk?
HF5. (dátum
függvények)
Listázzuk ki hallgatókként, hogy
hány
napja ill.
hány hónapja íratkoztak be az
egyetemre?
HF6. (konverziós
függvények)
Listázzuk ki hallgatókként, hogy
hány
éve járnak egyetemre?
HF7. (csoport függvények)
Melyek azok a szakok,
amelyre 3-nál
kevesebb
hallgató jár?
HF8. (csoport függvények) Kik
azok a
hallgatók, akik 3-nál több
tárgyat vettek fel?
_______________________________________________________
9. gyak. (XI.20) -
SQL SELECT --> join, hányados,
alkérdések
megoldásokat lásd 04_sql.txt
(jelszóval)
- HF. volt
a
7.gyak.-on a nov.20-i
gyakorlatra, az óra elején küld
át!
- HF beküldéséről
(így kell majd a géptermi Zh
megoldásait is küldeni)
ha nincs kész, küldj
üres fájlt, ha kész, akkor a
megoldást küld el,
a
részleteket,
lásd Zh
feladatok, beadandók beküldése
I. feladatcsoport: ELŐZŐ HETI HF.
MEGBESZÉLÉSE
II. feladatcsoport: AZ ÚJ ANYAG
SQL SELECT: WHERE-be beágyazott
alkérdések:
(a) t
in (SFW)
(b) t
theta (SFW)
(c) t
theta ANY/ALL(SFW)
(d) EXISTS
(SFW)
valamint a relációs algebra
származtatott
műveletei, mint
- a metszet
- az
összekapcsolások (join, stb,
külső összekapcsolás)
- a
hányados kifejezése SQL-ben.
1.feladat: Relációs algebra
származtatott műveleteit fejezzük ki
SQL-ben, kezdjük a metszettel
(lásd múlt heti HF3)
Az SQL-ben a metszet: (SFW) intersect (SFW)
Kik vettek fel pontosan két
tárgyat?
2.feladat: Természetes összekapcsolás
kifejezése alkérdésekkel
(eddig where-ben adtuk meg az
összekapcsolási feltételeket)
majd megnézzük az
ANSI SQL kompatibilis JOIN szintaxissal,
de a mai
órán alkérdésekkel
lesz:
Alkérdések (a) t
in (SFW)
Kik vettek fel Adatbázisos tárgyat?
3.feladat: Alkérdések (b) t
theta (SFW),
ahol theta: = <> < <=
> >=
és
a (SFW) pontosan egy sort ad vissza.
Ki(k) a legkorábban beiratkozott
hallgatók?
4.feladat: Alkérdések (c) t
theta ANY/ALL(SFW),
Az előző kérdést oldjuk meg
így is...
Ki(k) a legkorábban beiratkozott
hallgatók?
5.feladat: Alkérdések (d) EXISTS
(SFW)
Relációs algebrai hányados
kifejezése korrelált
alkérdésekkel
Kik azok a hazon (hallgatók), akik MINDEN
tárgyat felvettek?
vagyis Kik azok a hazon (.. felv f1), akikhez nincs
olyan tárgy
(not exists .. f2) amit ne vettek volna fel (not exists f3)
6.feladat: Alkérdések (d) EXISTS
(SFW)
Kik azok a hazon (hallgatók),
akik LEGALÁBB azokat a
tárgyakat vették
fel, mint a HAZON='KOPLAAT' vagyis
átfogalmazva az előzőhöz
hasonlóra:
Kik azok, akik minden olyan tárgyat felvettek,
mint amit
a KOPLAAT felvett?
HF További feladatok beágyazott
alkérdésekkel
önálló
gyakorlásra!
HF: A JOIN szintaxisnak utána
nézhetünk az Oracle Online Docban.
_______________________________________________________
10. gyak. (XI.27) -
SQL DDL, DML, DCL
Feladatokat és megoldásokat lásd 05_sql.txt
(jelszóval)
Témakörök:
SQL SELECT folyt.
-- ism. alkérdések
-- csoportosítás, DISTINCT a
csop.fv-ben, NULL a csop.fv-ben,
-- NVL
függvény, függvények
egymásba ágyazása
-- összekapcsolások: ANSI SQL kompatibilis
szintaxis
-- külső
összekapcsolások: Oracle 9i előtti és
utáni szintaxis
SQL DDL
-- folyt. nézettáblák
létrehozása
SQL SELECT
-- folyt. INLINE nézet
SQL DDL
-- foyt. nézettáblák
használata
SQL DCL
-- jogosultságok kezelése, GRANT, REVOKE
-- tranzakciókezelés alapjai: mentési
pontok, COMMIT, ROLLBACK
SQL DML
-- adatok karbantartása INSERT, DELETE, UPDATE
-- adatok karbantartása (nézeteken
keresztül)
SQL SELECT
-- hierarchikus lekérdezések, a PRIOR művelet,
CONNECT BY
Feladatok:
1.feladat: Azoknak a hallgatóknak az adatai, akik
legalább azokat
az
'adatbázis' tárgyat vették
fel,
amelyet 'Kovács Pál'
is felvett (minden, vagyis a
hányados kifejezése).
2.feladat: Mennyi hallgató van és
hány különböző
városból jöttek?
3.feladat: Adjuk meg az
ösztöndíjak
átlagát és
összegét, de az
összegbe
számoljuk
bele azokat is, akinek ismeretlen az
ösztöndíja
(valamilyen
értékkel, ill. H.F. az
átlagösztöndíjjal) (NVL)
4.feladat: A tárgyak adatai és az, hogy
kik vették fel az adott tárgyat,
melyek azok
a tárgyak, melyeket nem vettek fel
hallgatók
(NOT IN helyett KÜLSŐ JOIN)
5.feladat: Melyek
azok a tárgyak, amelyet a legtöbben vettek fel?
(Zh-n:
NÉZET-tel) Zh után: FROM (SFW)
INLINE
nézettel.
ZH-n csak WHERE
és HAVING záradékban
használhatunk
alkérdést, de FROM-ban nem: az INLINE
nézet csak
ZH után!
6.feladat: (ZH-n is lesz) egyszerű és összetett
nézettáblák
létrehozása és
használata. Adatok
karbantartása (INSERT, DELETE, UPDATE)
adattáblán illetve nézeten
keresztül,
és nézni ezek egymásra
hatását.
ZH-n nem szerepel, de vizsgán igen, ezért a ZH
után XII.11-én lesz: :
Hierarchikus lekérdezések, a
PRIOR művelet, CONNECT BY
Feladatok relációs
adatbázisok
tervezésére (függőségek
alapján)
ZH-ra kell: (Kiss
Attila honlapján) Az SQL nyelv
részei (Oracle specifikusan)
Hozd
létre a saját
mintatábláidat (lásd 11.gyak. Előzetes infó
a ZH-ról)
_______________________________________________________
11. gyak. (XII.04) -
II. ZH (géptermi SQL)
Előzetes
információ a dec.4-i
II. géptermi ZH-ról
1-3.f. SQL QL: Lekérdezések
kifejezése SQL-ben
(1-3.f-ban nézetek, inline
nézet
nékül megoldva)
4-5.f. SQL DDL: Adott E/K modell
leképezése relációs
modellre
Táblák,
megszorítások,
nézettáblák
létrehozása
6-7.f. SQL DML: Adatok
módosítása, sorok
beillesztése, törlése
- A géptermi Zh feladataihoz: lásd Az
órai
példa-adatbázissémák
2.példájához a
7.gyak (nov.7-i) gyakorlaton
volt kiadott HF-t:
E/K modell,
és leképezése
relációsémákra.
SQL DDL.
Táblák
és megszorítások
(constraints) létrehozása.
SQL DML. A
megszorításoknak eleget tevő adatsorok felvitele.
- Mindenki a saját tábláiban
tudja kipróbálni a
lekérdezéseket.
- A géptermi Zh
feladatok beküldéséről a
részleteket,
lásd Zh
feladatok, beadandók beküldése
- Figyelem! A 16h-kor kezdődő csoport december
4-én a
00-803 Programnyelvi laborban írja meg
a géptermi
Zh-t.
_______________________________________________________
12. gyak. (XII.11) -
Relációs adatbázis
tervezési feladatok
Relációs adatbázisok
tervezése függőségek alapján.
Feladatok az alapfogalmakra és algoritmusokra.
_______________________________________________________
PótZH (XII.18) - az
egyik ZH
pótlása/javítása
Előzetes
információ a dec.18-i
javító/pót ZH-ról
- Az egyik
(és csak az egyik) Zh javítható
(pótolható), de a pótzh-n
nemcsak
javíthat, hanem ronthat is (vagyis lecseréli
ennek a Zh-nak
a jegyét a
pótZh-n elért jegyre). Ha
pótZh után valamelyik Zh
még
mindig elégtelen,
akkor gyakjegy
uv-val szerezhet gyakorlati jegyet.
lásd A
gyakorlati jegy megszerzésének
feltételei
_______________________________________________________
Budapest, 2007. szeptember
10.
Utolsó
módosítás: 2007. nov.13.
dr. Hajas Csilla
Iroda: ELTE, Információs
Rendszerek Tanszék, 2.503-as
szoba,
Telefon: 2090-555/8475 mellék,
E-mail:
sila@inf.elte.hu
ej Lap
tetére
Gyak.oldalára
Kezdőlapra