Az I. 404. feladat (2016. május) |
I. 404. A rokonsági fokok ábrázolása nemcsak grafikusan családfával, hanem adatbázis-kezelővel is megoldható. (Erre találhatunk példát a 2006. februári emelt szintű érettségi feladatsorban is.) Ezúttal feladatunkban a Kiss-Nagy család rokonsági viszonyait fogjuk adatbázis-kezelővel elemezni. Az adatbázisban tárolt családfarészletet a következő ábra szemlélteti:
Az adatokat a csaladtagok.txt tabulátorral tagolt, UTF8 kódolású szövegfájl tartalmazza, az első sorban a mezőnevek találhatók.
1. Készítsünk új adatbázist i404 néven. A mellékelt adatállományt importáljuk az adatbázisba csaladtagok néven. Beolvasáskor állítsuk be a megfelelő adatformátumokat és a kulcsot.
Készítsük el a következő feladatok megoldásait. Az egyes lekérdezéseknél ügyeljünk arra, hogy mindig csak a kért értékek jelenjenek meg és más adatok viszont ne. A megoldásokat a zárójelben lévő néven mentsük el.
Az adatbázis szerkezete a valódi családi kapcsolatoknak csupán egyszerűsített formája, amely a valós viszonyok leírására nem teljesen alkalmas. Ezért feltételezzük, hogy a családban nem volt válás, újraházasodás, nincsenek féltestvérek. A feladatmegoldás során több esetben is szükségünk lehet arra, hogy az adattáblát több példányban használjuk fel.
2. Adjuk meg lekérdezés segítségével a férfiak és a nők számát. (2ffino)
3. Lekérdezéssel listázzuk ki a házaspárokat. Gondoskodjunk arról, hogy minden házaspár csak egyszer jelenjen meg. (3hazasparok)
4. Kérjük be egy családtag nevét, és adjuk meg anyjának és apjának nevét lekérdezés segítségével. Ha több azonos nevű családtag van, valamennyi adata jelenjen meg. (4apaanya)
5. Listázzuk lekérdezés segítségével a testvéreket. A felsorolásban minden testvérpár pontosan egyszer jelenjen meg. (5testverek)
6. Lekérdezés segítségével határozzuk meg az unokák anyai és apai nagyanyját a mintának megfelelően. Ha a két nagyszülő egyike sem szerepel az adatbázisban, akkor az unoka neve se jelenjen meg. (6nagyi)
7. Listázzuk ki lekérdezés segítségével az unokatestvéreket. Gondoskodjunk arról, hogy minden pár pontosan egyszer jelenjen meg. (7unokateso)
8. Készítsünk jelentést, amely tartalmazza az adatbázisban szereplő családtagokat névsorban, valamint (ha szerepel az adatbázisban) anyjuk, férjük, feleségük nevét. A megoldást lekérdezés segítségével készítsük elő. A cím és az oszlopfejléc szövege a mintának megfelelően jelenjen meg. (8lista)
Beküldendő egy tömörített i404.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ány: csaladtagok.txt.
(10 pont)
A beküldési határidő 2016. június 10-én LEJÁRT.
Értékelés és mintamegoldás:
A feladatra 5 megoldás érkezett. Két nehezebb részfeladat volt. A 6. feladatban meg kellett jeleníteni azokat az unokákat is, akiknek csak az egyik nagyanyja szerepel az adatbázisban (pl. bal oldali laza illesztéssel). A 7. feladatban három eset van (apai-apai, apai-anyai, anyai-anyai) amelyeket célszerű külön-külön vizsgálni. A közölt mintamegoldásban a WHERE záradékban a három eset VAGY-gyal kapcsolódik, de a beküldött megoldások között szerepel három segédlekérdezés eredményének egyesítése is.
A 6. és 7. feladat 2-2 pontot, a többi 1-1 pontot ért. Egy teljes értékű megoldás született.
A közölt mintamegoldás Nagy Ábeltől, a Budapesti Fazekas Mihály Gyakorló Általános Iskola és Gimnázium 11. osztályos tanulójától származik. i404.zip
Statisztika:
5 dolgozat érkezett. 10 pontot kapott: Nagy Ábel. 9 pontot kapott: Olexó Gergely. 6 pontot kapott: 1 versenyző. 5 pontot kapott: 1 versenyző. 4 pontot kapott: 1 versenyző.
A KöMaL 2016. májusi informatika feladatai