Középiskolai Matematikai és Fizikai Lapok
Informatika rovattal
Kiadja a MATFUND Alapítvány
Már regisztráltál?
Új vendég vagy?

Az I. 422. feladat (2017. február)

I. 422. A http://folyamhajo.hu folyamhajózási információs portálról minden olyan folyami kabinos személyhajóról (szállodahajó) jellemző adatokat ismerhetünk meg, mely az elmúlt évtizedekben legalább egyszer megfordult hazánkban. Az adatok a hajo.txt, a varos.txt és az allapot.txt állományokban állnak rendelkezésünkre. Az állományok tabulátorral tagolt, UTF-8 kódolású szövegfájlok, az első sorok a mezőneveket tartalmazzák.

1. Készítsünk új adatbázist regiszter néven. A mellékelt adatállományokat importáljuk az adatbázisba a fájlnévvel azonos hajo.txt, varos.txt és allapot.txt néven. Beolvasáskor állítsuk be a megfelelő adatformátumokat és kulcsokat. A táblákba ne vegyünk fel új mezőt.

Táblák

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 ne. Megoldásainkat a zárójelben lévő néven mentsük el.

2. Készítsünk lekérdezést, amely ábécérendben jeleníti meg a jelenleg is üzemelő személyhajók nevét. (2szemely)

3. Készítsünk lekérdezést, amely kilistázza a Viking Hajókirándulásnak, a dunai turisztikai célú hajózás meghatározó szereplőjének hajóit. Ezeknek a hajóknak a neve a ,,Viking'' szórészletet tartalmazza. (3viking)

4. Testvérhajónak nevezik azokat a hajókat, amelyeket ugyanabban az évben és országban gyártottak, valamint hosszúságuk, szélességük és merülésük is megegyezik. Soroljuk fel lekérdezés segítségével a ,,VIKING NEPTUNE'' testvérhajóit. (4neptune)

5. Lekérdezés segítségével adjuk meg, hogy melyik három európai városban regisztrálták a legtöbb hajót. (5kozpont)

6. Lekérdezés segítségével soroljuk fel azoknak az országoknak a betűjelét, ahol hajóregisztráció történt, de hajóépítő országként egy hajónál sincsenek megjelölve. (6konyveles)

7. Adjuk meg lekérdezés segítségével annak a hajónak, vagy hajóknak a nevét, amelynél teljes kihasználtság esetén a legnagyobb az egy utasra eső maximális teljesítmény. A teljes teljesítményt a motorszám és a névleges motorteljesítmény szorzataként számoljuk. (7eros)

8. Lekérdezés segítségével számoljuk meg, hogy az adatbázisban hány olyan hajó van, amelynek a maximális utasszáma az 50–99, a 100–149, a 150–199, illetve a 200–249 tartományokban van. (8kategoriak)

Beküldendő egy tömörített i422.zip állományban az adatbázis, valamint egy rövid dokumentáció, amelyből kiderül az alkalmazott adatbázis-kezelő neve és verziószáma.

Letölthető állományok: allapot.txt , hajo.txt , varos.txt .

(10 pont)

A beküldési határidő 2017. március 10-én LEJÁRT.


Megoldásokról:

A feladatra négy megoldás érkezett. Legérdekesebbnek a 6konyveles lekérdezés elkészítése mutatkozott.

A megoldásnak az a logikája, hogy két halmaz különbségét kell előállítani. A regisztráló országok közül azokat soroljuk fel, amelyek nincsenek benne a hajóépítő országok halmazában.

SELECT DISTINCT regor

FROM hajo

WHERE regor not in (SELECT orszag FROM hajo);

vagy

A hajo táblát két példányban vesszük fel és a kapcsolat bal illesztéssel az egyik regor és a másik orszag mezőjével történik. A LEFT JOIN-nal amikor összekapcsolunk két táblát és ha nincsen megfelelő érték az első helyen lévő táblában a második helyen lévő táblához, akkor kiegészíti azokat NILL értékekkel.

SELECT h1.regor

FROM hajo AS h1 LEFT JOIN hajo AS h2 ON h1.regor = h2.orszag

GROUP BY h1.regor, h2.orszag

HAVING h2.orszag Is Null;

vagy

SELECT Partition(utas,50,249,50) AS tarományok, Count(utas) AS utasok

FROM Hajo

GROUP BY Partition(utas,50,249,50);

Mintamegoldás:

Tersztenyák Balázs 9. osztályos tanuló Budapest, Kempelen Farkas Gimnázium megoldása: regiszter.accdb


Statisztika:

4 dolgozat érkezett.
10 pontot kapott:Kis Lázár Bence, Tersztenyák Balázs.
9 pontot kapott:Békési Péter, Horváth 237 Lili.

A KöMaL 2017. februári informatika feladatai