Az I. 531. feladat (2021. február) |
I. 531. (É). Ebben a feladatban egy kis létszámú iskola tanulóinak adatait elemezzük adatbázis-kezelő segítségével. A tanulók adatait a tanulo.txt, az osztályok adatait pedig az osztaly.txt tabulátorral tagolt, UTF-8 kódolású szövegfájlok tartalmazzák. A mezőnevek az első sorban vannak.
Készítsünk új adatbázist i531 néven, és a mellékelt adatállományokat importáljuk az adatbázisba a forrásállományokkal azonos néven. A létrehozás során állítsuk be a megfelelő típusokat és kulcsokat.
Táblák:
Készítsük el a következő feladatok megoldását. Az egyes lekérdezéseknél ügyeljünk arra, hogy mindig csak a kért értékek jelenjenek meg és más adatok ne. A megoldásokat a zárójelben lévő néven mentsük el.
1. Listázzuk ki a 4,5-nél jobb tanulmányi eredményt elért tanulók vezeték- és utónevét, átlagát, valamint osztályának évfolyamát és betűjelét az osztályok szerinti, azon belül pedig az átlag szerinti sorrendben. (1jelesek)
2. Írassuk ki lekérdezéssel az osztályok évfolyamát, betűjelét, létszámát és osztályátlagát. Az adatok átlag szerint csökkenő sorrendben jelenjenek meg. Az osztályátlagokat két tizedesjegyre kerekítve írassuk ki. (2osztalyok)
3. Zöld Alma szeretne nyelvi tanulmányutat szervezni a vele azonos nyelvet tanuló diákoknak. Kiket kell megkeresnie? A lekérdezésben jelenjen meg az érintett tanulók vezeték- és utóneve, valamint osztályuk évfolyama és betűjele, de maga Zöld Alma ne legyen a listában. (3alma)
4. A tanévnyitó ünnepélyen a belépő kilencedik osztályokat mindig az iskola legfiatalabb, már tavaly is ide járó tanulója köszönti. Az idén van olyan diák, aki valamennyi kilencedikesnél fiatalabb. Adjuk meg a tanuló vezeték- és utónevét, valamint évfolyamát és osztályát. Ha több ilyen tanuló is van, mindegyiket adjuk meg. (4fiatal)
5. Az iskolában az egyik legnépszerűbb idegen nyelv a francia. Ennek ellenére vannak olyan osztályok, amelyekben senki sem választotta. Az alábbi lekérdezés ezeket az osztályokat adja meg. Mit kell írnunk ehhez a \(\displaystyle \ldots\) helyére? A teljes lekérdezést készítsük el. (5francia)
SELECT DISTINCT evfolyam, betu
FROM tanulo, osztaly
WHERE osztid NOT IN (...)
AND osztid=osztaly.id;
6. Az iskolában az ,,a'' osztályok reál, a ,,b'' osztályok humán tagozatosok. Igaz-e, hogy a reál tagozatos osztályokban a fiúk, a humán tagozatos osztályokban a lányok száma nagyobb? Készítsünk lekérdezést, amely kiíratja a fiúk és lányok számát mindkét tagozaton, az alábbi mintának megfelelően. (6real)
7. Határozzuk meg osztályonként a legjobb átlagú tanulókat. A lekérdezés jelenítse meg a tanulók osztályának évfolyamát és betűjelét, a tanulók vezeték- és utónevét, valamint átlagát. A lista legyen az évfolyam, azon belül osztály és a tanulók neve szerinti sorrendben. Ha egy osztályban több ilyen tanuló is van, mindegyik jelenjen meg. (7legjobbak)
8. Készítsünk jelentést, amely a mintának megfelelő szerkezetben listázza ki az iskola névsorát osztályonként. A jelentés címe és az adatok címsora a mintának megfelelően, ékezethelyesen jelenjen meg. (8Lista)
Beküldendő egy tömörített i531.zip állományban az adatbázis, valamint egy rövid dokumentáció, amelyből kiderül az alkalmazott adatbázis-kezelő neve, verziószáma.
Letölthető állományok: tanulo.txt, osztaly.txt
(10 pont)
A beküldési határidő 2021. március 16-án LEJÁRT.
Értékelés: A feladatra 14 megoldás érkezett. Sajnos sok megoldás részben hiányos volt. Például konstansként építettek be olyan adatokat, amelyet lekérdezéssel kellett volna meghatározni. (Zöld Alma által tanult nyelv; legfiatalabb 9-es tanuló születésnapja.) A feladat nem zárta ki, így elfogadtuk táblakészítő lekérdezés alkalmazásával segédtáblák létrehozását és felhasználását.
Mintamegoldás: A mintamegoldás Ürmössy Dorottyától, a Budapesti Fazekas Mihály Gyakorló Általános Iskola és Gimnázium 12. osztályos tanulójától származik.
Statisztika:
14 dolgozat érkezett. 10 pontot kapott: Gyönki Dominik, Horcsin Bálint, Orosz Réka Ildikó, Szabó Máté, Ürmössy Dorottya, Vadász Levente Márton. 9 pontot kapott: Mályusz Etre Magnusz, Zádor-Nagy Zsombor. 8 pontot kapott: 5 versenyző. 6 pontot kapott: 1 versenyző.
A KöMaL 2021. februári informatika feladatai