Multimédia az oktatásban 2001
Kupcsikné F. Ilona, GDF
Az Adatbáziskezelés oktatásának eszközei a Gábor Dénes Főiskolán „... nem akkor alkottál tökéleteset,ha már nem tudsz mit hozzátenni,hanem ha már nem tudsz mit elvenni belőle.”” (Sai nt-Exupery)
A GDF-n műszaki és gazdasági informatikusokat képzünk 8 szemeszterben. Mivel hallgatóink munka és család mellett tanulnak, valóban távoktatási jellegű tananyagokat kell számukra készítenünk minden tárgyból. A hallgatói létszám (min. 5000 hallgató évente) bizonyítja az ország 40 városában + 10 magyarlakta külföldi helyen, hogy a hallgatók és oktatók tananyagellátása profi módon működik. A szakmai igényesség azonos szintje érdekében minden tantárgyvezető igyekszik a tananyagát részletesen kidolgozni, szemléltető eszközökkel és útmutatásokkal ellátni. Az én tárgyam többek között az adatbáziskezelés, mely alapozó tantárgy. A tantárgy célja: A hallgatók megismertetése az adatbázisok és az adatbáziskezelő rendszerek fajtáival, az uralkodó relációs adatbázis tervezésével és SQL nyelvi eszközökkel való feldolgozásával. A gyakorlati háttér valamelyik –, a konzultációs központ által biztosított - korszerű adatbáziskezelő rendszer, melyben a tipikus SQLfeladatok kivitelezése a cél. Az itt szerzett tudás belépőként szolgál a nagy, modern fejlesztőrendszerek technikáiba; hiszen az informatikus kénytelen naponta legalább felhasználóként adatokat kinyerni meglévő hatalmas adatbázisokból, legfeljebb pedig fejlesztőként alkalmazásokat készíteni adatbázisrendszerekhez. Kapcsolata más tárgyakkal: A Programozás alapjai után, de az OOP, a 4GL és Internetes alkalmazásfejlesztés előtt, valamint konkrét ABKR (Informix) fakultálása előtt.
Ezen előadásban szeretném bemutatni a tantárgy tanításának didaktikai módszereit, és azok eszközeit. A tárgyból 35+21 (21+14) kontakt óra mellett olvasmányos tankönyvet, emészthető példatárat, felkészülést támogató útmutatót kapnak a hallgatók minta-vizsgasorokkal. Az előadás (324 felépített dia, rengeteg mintapéldával) vázlata a hálóról letölthető. 19 órás video-anyag kölcsönözhető, valamint az iskola 1. multimédiás segédlete: az SQL oktatólemez.
1
Multimédia az oktatásban 2001
Kupcsikné F. Ilona, GDF
TEMATIKA: • Az adatbázisok elmélete az információ fogalma, az adatfeldolgozás története az adatmodell alapelemei: egyed, tulajdonság, kapcsolat az adatmodellek típusai: hierarchikus (hálós), relációs, objektumos • A relációs adatmodell az elnevezés matematikai indoklása a reláció kulcsai funkcionális függőség fogalma, sajátosságai speciális funkcionális függőségek normálformák normalizálás a redundanciamentes adattárolás eléréséig az adatbázis szerkezeti ábrája, dokumentálása • Relációs adatbáziskezelő rendszerek történeti áttekintés relációs algebra műveletei relációs adatbáziskezelő rendszerek funkciói és segédfeladatai relációs adatbáziskezelő rendszerek fajtái • SQL nyelv a nyelv mint szabvány és kapcsolata a 4GL fejlesztői eszközökkel adatbázis, táblák, adattípusok, kifejezések adatdefiníciós, lekérdező, vezérlő parancsok a beépített SQL megszorítások tranzakciók jogosultságok
Bemutató a prezentációs készletből:
2
Multimédia az oktatásban 2001
Kupcsikné F. Ilona, GDF
4.példa: SZÁLLODA
Használható adatbázis
Egy szálloda forgalmára készítünk adatbázist az alábbi bemenő bizonylat alapján:
Cég adatai
sztip SZTIPUS ár ágy
Kelt SZOBAFOGLALÁS
3 darab 1 darab
kétágyas zuhanyzós egyágyas fürdőszobás
dátumtól - ig dátumtól - ig szszám SZOBA sztip
Visszajelzést kérünk. (aláírás, pecsét) Informatikai Alkalmazások Intézete
SOROZAT NINCS
KIMITIRT SZERZŐ
PÉLDÁNY
KÖNYV
K Ö N Y V
UTALÁS FOGALOM ELŐJEGYZ
KÖ
NY
VT
ÁR
FOGLALK
KÖLCSÖNZ
OLVASÓ
Informatikai Alkalmazások Intézete
P É L D Á N Y
Alkatal K ikölcs A ktksz
96225
045
.t.
2
96226
001
.f.
0
96226
002
.f.
0
96226
003
.f.
0
96226
044
.f.
0
96226
045
.f.
0
96654
001
.f.
11
5.
K a tal C ím
K i a d ó K e zd S o ro z
8 8 0 1 1 A m a te m a ti k a p rob lém á i 9 1 2 3 4 B ú c s ú k e r in g ő
AK1
12
EK1
180
9 1 4 1 2 A z é d e n s á rk á n y a i
EK1
55
9 2 1 1 2 M a t e m a tik a i z seb k ö n y v 9 2 1 3 4 A z élet m ásh o l v an
M K1
25
EK1
150
9 6 2 1 2 A z u t o ls ó h á ro m KT5 p e rc 9 6 2 2 5 A te rm é sz e t sz á m a i K T 5
45
VE
45
VE
9 6 2 2 6 I st e n g o n d o l a t a i
KT5
45
VE
9 6 6 5 4 E l fe le d e tt ő sö k á rn y a i
EK1
35 Adatbáziskezelés -114
FM 11601
6.
K atal
Adatbáziskezelés -114
Informatikai Alkalmazások Intézete
Adatbáziskezelés -114
FM 11601
iktszám MEGREND cégazon kelt
FM 11601
2.
KIADÓ
iktszám szszám FOGLALT tól ig
Informatikai Alkalmazások Intézete
Adatbáziskezelés -114
FM 11601
cégazon CÉG név cím tel
8.
SQL mintaadatbázisa: ISKOLA TANULO
ETKEZES
SEGELY
TAGSAG
NAPIDIJ
JOGCIM
KOR
…
ld. Példatár 22.oldal
f
Informatikai Alkalmazások Intézete FM 11601
Informatikai Alkalmazások Intézete
Adatbáziskezelés -114
FM 11601
9.
3
Adatbáziskezelés -114 15.
Multimédia az oktatásban 2001
Kupcsikné F. Ilona, GDF
Beágyazott Select Esetek
SELECT nev, osztaly FROM tanulo, segely WHERE tanulo.azon=segely.azon and osszeg>(SELECT AVG(osszeg) FROM segely);
a.Egyetlen értéket tartalmazó belső E-tábla b.Több értéket tartalmazó belső E-tábla
TANULO->NEV LOVAS LAJOS VARGA TEREZ BALOGH MIHALY
Ilyenkor használni kell az IN, ANY, ALL vagy EXISTS predikátumok valamelyikét.
• • • •
A predikátumok megadásának formátuma: predikátum (belső SELECT)
Informatikai Alkalmazások Intézete
SELECT osztaly, AVG(horasz) FROM tanulo ta, tagsag tg, kor WHERE ta.azon=tg.azon AND tg.kor=kor.kor GROUP BY osztaly;
OSZTALY 1B 2A 2B
G_OSZTALY 1A 1B 2B 2C
• egy legkülső SELECTet kap • több értéket ad vissza az alSELECTje • egyszer hajtódik végre az alSELECTje • csak a TANULOból vetítünk ki • nincs Descartes-szorzat
FM 11601
SELECT osztaly,horasz FROM tanulo ta, tagsag tg, kor WHERE ta.azon=tg.azon AND tg.kor=kor.kor; TA->OSZTALY KOR->HORASZ 1A 8 1A 4 1B 8 1B 4 2B 4 2B 6 2C 3 2C 3 2C 3
Informatikai Alkalmazások Intézete
Adatbáziskezelés -114
Adatbáziskezelés -114
FM 11601
10.feladat: az egyes osztályok tanulói átlagosan heti hány órát töltenek (szak-, nyelv-, sport-)köri foglalkozással
23.
10.feladat: 3.lépés select * from letszam; OSZT OSSZ 1A 4 1B 2 2A 3 2B 3 2C 7
1.lépés: osztályonként összesen hány óra foglalkozás 2.lépés: osztálylétszámok 3.lépés: közös táblából a számított adatok kiírása SELECT osztaly, SUM(horasz) FROM tanulo ta, tagsag tg, kor WHERE ta.azon=tg.azon and tg.kor=kor.kor GROUP BY osztaly SAVE TO TEMP korok(oszt,orasz);
select * from korok; OSZT ORASZ 1A 12,00 1B 12,00 2B 10,00 2C 9,00
SELECT ko.oszt, orasz/ossz FROM korok ko, letszam le WHERE ko.oszt=le.oszt; KO->OSZT 1A 1B 2B 2C
SELECT osztaly, COUNT(azon) FROM tanulo GROUP BY osztaly SAVE TO TEMP letszam(oszt,ossz); FM 11601
AVG1 6,00 6,00 5,00 3,00
Hamis, mert csak a tagság létszámával oszt
18.
Informatikai Alkalmazások Intézete
17.
10.feladat: az egyes osztályok tanulói átlagosan heti hány órát töltenek (szak-, nyelv-, sport-)köri foglalkozással
SELECT nev,osztaly FROM tanulo WHERE azon IN (SELECT azon FROM segely WHERE osszeg>(SELECT AVG(osszeg) FROM segely));
Informatikai Alkalmazások Intézete
Adatbáziskezelés -114
FM 11601
16.
NEV LOVAS LAJOS VARGA TEREZ BALOGH MIHALY
egy értéket ad vissza az alSELECT egyszer hajtódik végre az alSELECT csak TANULObeli kimenetek vannak felesleges a Descartes-szorzat ...
Informatikai Alkalmazások Intézete
Adatbáziskezelés -114
FM 11601
TANULO->OSZTALY 1B 2A 2B
Informatikai Alkalmazások Intézete
Adatbáziskezelés -114
FM 11601
24.
4
EXP1 3,00 6,00 3,33 1,29 Adatbáziskezelés -114 25.
Multimédia az oktatásban 2001
Kupcsikné F. Ilona, GDF
Példa : lista program
TRIGGER
DECLARE lista CURSOR FOR SELECT osztaly,COUNT(*) FROM tanulo GROUP BY osztaly;
CREATE TRIGGER tr.név AFTER / BEFORE / INSTEAD OF UPDATE [OF attr.] / DELETE / INSERT ON tábla [REFERENCING OLD AS régi NEW AS új] WHEN feltétel SQL-műveletek… [FOR EACH ROW]
OPEN lista; sor=sqlcnt FETCH lista INTO moszt,mszam; while sor>0 kiírás moszt,mszam sor=sor-1 FETCH lista INTO moszt,mszam; end
sorszintű: minden sorra utasításszintű: egyszer (OLD_TABLE, NEW_TABLE)
A lista lefutása:
1A 1B 2A 2B 2C
4 2 3 3 7
CLOSE lista; Informatikai Alkalmazások Intézete FM 11601
Informatikai Alkalmazások Intézete
Adatbáziskezelés -114
Adatbáziskezelés -114
FM 11601
27.
29.
Az elmélethez kapcsolódó gyakorlati konzultáción az MS ACCESS / Cloudscape (Informix) adatbáziskezelő rendszerben lehetőség van konkrét feladatok megoldására, melyek témájukban az adatbázis felépítését, az SQL lekérdezéseket, esetleg a jelentések témakörét ölelik fel. (illusztráció: a felülete teljesen megfelel valamennyi ABKR-nek)
A tapasztalatok azt is mutatják, hogy a Hallgatók zömének gondot okoz az SQLlekérdezés logikája. Az SQL-oktatólemez tanulmányozásától ugrásszerű javulást remélhetnek, ui. a csak ebben fellelhető parancs-végrehajtás illusztrálása meggyőző magyarázat szokott lenni. Ez egy interaktív példatár, melyben mód van az egyes parancsok - megtekintésére az eredménytáblával, - elkészítésére a lépések részletezésével, - végrehajtására a lépések bemutatásával, - gyakorlására a lépések interaktív összeállításával. Természetesen bármikor lehívhatjuk a feladat kifejtését, az adatbázis ismertetését, a kapcsolati ábra megmagyarázását illetve a terjedelmes parancs részleteinek elméleti tárgyalását.
5
Multimédia az oktatásban 2001
Kupcsikné F. Ilona, GDF
Bemutató:
6
Multimédia az oktatásban 2001
Kupcsikné F. Ilona, GDF
Tapasztalatok: A mintasorokkal megtámogatott, lépésenként kialakított parancskészítés több hallgatónál „bevált” és sikeresen le tud vizsgázni. A parancsvégrehajtás bemutatása olyan igényes tanári fogás, amellyel sok kollégámon segítettem. Arra viszont nem vagyok büszke, hogy a gyakorlás nem nagyobb szabadságfokú. Ezzel a problémával több tantárgy is szembekerül, hacsak nem tartja kielégítőnek az unalmas, tesztjellegű önellenőrzést. Matematikailag ugyanis lehetetlen egy beolvasott teljes válaszról eldönteni, hogy az is jó-e; hiszen az összes tesztadatra lefuttatva kellene ugyanazt eredményeznie. Marad a tanár szerint leghatékonyabbnak vélt parancs „összerakosgatásának” módszere.
Számonkérés: A tantárgyból elméleti [és gyakorlati] jegyet kell szerezni. Az elméleti vizsga írásban történik. Vizsga-minta : ld. melléklet. A gyakorlati jegy megszerzése számítógép előtt történik. A hallgatónak a helyszínen kapott lekérdezési, karbantartási feladatokat kell megoldania egy létező adatbázisból SQL-ben.
Referenciák: - végzett hallgatóink, akik valóban megszerezték ezt a tudást, már nem az SQLálszakemberek táborát gyarapítják. − PSZF diákjai − ZMNE logisztikai tanszéke − külső kollégák cégei Következtetés: Úgy gondolom, helyesen döntöttünk, hogy a fenti filozófiát követve oktatjuk hallgatóinkat, amikor alapozó ismereteket, általánosítható technikákat, időtálló módszereket tanítunk. Annak, hogy így tesszük, egyetlen magyarázata van: “A dolgokat annyi ra egyszerűen kell magyarázni , amennyire csak l ehet, de nem egyszerűbben.” (Ei nstei n)
Kupcsikné Fitus Ilona okl. matematikus, főiskolai docens
[email protected]
7
Multimédia az oktatásban 2001
Kupcsikné F. Ilona, GDF
GDF Gazd. Inf.
minta
GDF Műsz. Inf.
KÜLDEMÉNY
PARTNER
CÍM
f_név
megrendelő
név
elnevezés
f_tel
kelt
telefon
kerület
időpont
cím
utca
kitől
minta
Adott patika vényeinek nyilvántartásáról van szó. A gyógyszerek különböző kiszerelésben kaphatók, tehát a konkrét kiszerelésű gyógyszernek van azonosító száma. Egy vényen -, mely a felvitelkor azonosítót kap - egy konkrét gyógyszer szerepel a felírt mennyiségben, de tartalmazza az orvos kódját és a beteg TAJ-számát is. Az orvos-kód ellenőrzésre, de a beteg TAJ-száma csak rögzítésre kerül a patikában. A gyógyszerért fizetendő darabár: a támogatás százalékával csökkentett egységár. A konkrét gyógyszerekből a lejárat dátuma előtt a fennmaradó készletet megsemmisítik. Az adatbázis: gy_szám kiszerel gy_szám lejárat azonosító kód szak KISZERELÉS GYÓGYSZER KÉSZLET VÉNY ORVOS SZAK
Adott futárszolgálat nyilvántartását végezzük a fővárosban. Bizonyos cégek, magánemberek, intézmények a partnereink, akik kisebb sürgős küldemények más partnerhez való eljuttatását bízzák a szolgálatra. A szolgálat minden egyes küldeményt a megrendelő partner megbízásából partnertől partnernek szállíttat valam elyik futárával, akit telefonon ér el. Az adatbázis: f_szám azonosító kód cím FUTÁR
melléklet
leírás tartalom
kelt név kód szak taj_sz gy_szám mennyi A betűstílusok jelentése: EGYED, kulcs, egyéb tulajdonság.
hszám
kinek
elnevezés kiszerel támogatás egys_ár
készlet
megnev
f_szám I. 1. 2. 3. 4.
A betűstílusok jelentése: EGYED, kulcs, egyéb tulajdonság. I. Alapfogalmak: 1. Adja meg a külső kulcsokat a fenti adatbázisban! 2. Mi valósít kapcsolatot a FUTÁR és a KÜLDEMÉNY között? 3. Milyen a KÜLDEMÉNY : PARTNER kapcsolat? 4. Indokolja meg, hogy igaz-e az alábbi egyértelmű meghatározás: {megrendelő}→{elnevezés}
5.
II. 1. 2. 3.
II. SQL-lekérdezések : 1. Ki járt ma a „Rubin Business Center”-ben 2. Hány küldeményt szállított összesen „Jó Áron” 3. Melyik partner nem rendelt nálunk az utóbbi fél évben
III.
III. Bővítse az adatbázist mintasorokkal az alábbi eseménynek megfelelően: „Kovács Géza futár ma 8:30-kor indul a 2000/12345-ös küldeménnyel az Országos Levéltárból a Széchenyi Könyvtárba a Levéltár megbízásából.”
IV. − −
Alapfogalmak: Adja meg a külső kulcsokat a fenti adatbázisban! Mi valósít kapcsolatot a GYÓGYSZER és a KISZERELÉS között? Milyen a GYÓGYSZER : VÉNY kapcsolat? Indokolja meg, igaz-e az alábbi egyértelmű meghatározás: {kód, taj_sz} → {mennyi} Az adatbázis épségének megőrzése mellett mikor törölhető ki egy gyógyszer a törzsből? SQL-lekérdezések: Milyen kiszerelésben (leírással és tartalommal) kapható „Panadol” Naponta mennyit fizetett az „123456789” TAJ-számú beteg Ma megsemmisítendő gyógyszerek listája (lejáratuk max. 7 nap múlva) Bővítse az adatbázis szerkezetét nyilvántartásával!
8
egyes
gyógyszerek
hatóanyagainak
Igazak-e az alábbi állítások: Ha az adattábla redundáns adatokat tartalmaz, akkor részleges függés van benne. Egy alSelect csak 1 értéket adhat vissza.
Rendelkezésre álló idő: 80 perc Elérhető pontszám: 5+6+3+1 pont Elégtelen: 40% alatt
Rendelkezésre álló idő: 60 perc Elérhető pontszám: 4+6+2 pont Elégtelen: 40% alatt
az