Kultúrtörténet (2023 október)

Kategória: sql - emelt szint

Feladat leírása

Kultúrtörténet (2023 október) illusztráció

A 2018/19-es tanévben kultúrtörténeti versenyt szerveztek a középiskolásoknak. Minden
fordulóban egy-egy jelentős művész kapcsán kellett feladatokat megoldaniuk a tanulóknak.
A vetélkedés egész tanévben tartott, ahogy az egyik feladatsor beküldési határideje lejárt, szinte
azonnal kitűzték a következő forduló feladatait. Az értékelésbe beleszámított a megoldási idő
is, ezért a csapatok a feladatsor egy-egy megoldott feladatát azonnal beküldték. Minden csapat
minden feladatsorra küldött megoldást. 

Az adatbázis a versennyel kapcsolatos következő táblákat tartalmazza: 

Táblák:

feladatsor (id, nevado, ag, kituzes, hatarido) 

id A feladatsor azonosítója (szám), ez az elsődleges kulcs 
nevado A feladatsor témáját adó személy neve (szöveg), nincs két azonos név
A személy neve egy, két vagy három szóból áll, melyeket pontosan egy
szóköz választ el egymástól 
ag A művészeti ág, amelyhez a személy tartozik (szöveg) 
kituzes A feladatsor kitűzési dátuma (dátum)
hatarido A feladatsor feladatainak beadási határideje (dátum) 

feladat (id, feladatsorid, pontszam) 

id  A feladatsor egy feladatának azonosítója (szám), ez az elsődleges kulcs 
feladatsorid A feladatsor azonosítója (szám), idegen kulcs 
pontszam A feladatban elérhető pontszám (szám)

megoldas (id, feladatid, csapatid, datum, pontszam) 

id A feladat egy megoldásának azonosítója (szám), ez az elsődleges kulcs
feladatid A megoldott feladat azonosítója (szám), idegen kulcs 
csapatid A feladatot megoldó csapat azonosítója (szám), idegen kulcs 
datum A megoldás beadási dátuma (dátum) 
pontszam A megoldásra adott pontszám (szám) 

csapat (id, nev, tagszam) 

id A versenyre nevező csapat azonosítója (szám), ez az elsődleges kulcs
nev A csapat neve (szöveg), nincs két azonos nevű csapat 
tagszam A csapat létszáma (szám) 

A következő feladatokat megoldó SQL-parancsokat rögzítse a feladatok végén zárójelben
megadott nevű és .sql kiterjesztésű szöveges állományba! Például a 3. feladat megoldása
a 3csakegy.sql nevű állományba kerüljön! A javítás során csak ezeknek az állományoknak
a tartalmát értékelik. Ügyeljen arra, hogy a lekérdezésekben pontosan a kívánt mezők
szerepeljenek, felesleges mezőt ne jelenítsen meg! 

Az adatbázist és a táblákat létrehozó, és az adatokat a táblába beszúró SQL-parancsokat
a kulturforras.sql állomány tartalmazza

SQL-nyelven két dátum napokban kifejezett különbségét a Datediff függvénnyel lehet
meghatározni. Az alábbi példák mutatják használatát: 

  • Datediff('2020-12-02', '2020-12-01')
  • Datediff('2019-01-04', '2018-12-31')

Az első esetben 1, a másodikban 4 a visszaadott érték. A következő feladatok megoldásánál
használhatja a Datediff() függvényt. 


Részfeladatok

  1. 1. Futtassa az SQL-szerveren a kulturforras.sql parancsfájlt, és a továbbiakban a kulturtortenet adatbázisban dolgozzon! (A „Nincs kiválasztott adatbázis” üzenet nem befolyásolja az adatimportálás sikerességét.) 

  2. 2. Lekérdezés segítségével írassa ki azon csapatok nevét, amelyek neve a # karakterrel kezdődik! (2csapatok)

  3. 3. A feladatsor táblát használva, lekérdezés segítségével jelenítse meg a feladatsor névadójának nevét, ha abban pontosan egy szóköz van! (3csakegy)

  4. 4. Készítsen lekérdezést, amely megadja, hogy ki a névadója a 2018. szilveszterkor aktív feladatsornak! (4szilveszter

  5. 5. Készítsen lekérdezést, amely meghatározza a végeredményt! A csapatok neve és az általuk elért összpontszám jelenjen meg, utóbbi szerint csökkenő sorrendben! (5eredmeny

  6. 6. Eredetileg úgy tervezték, hogy minden feladatsor 150 pontos lesz. Néhány esetben a kitűzés után kellett módosítani a feladatsoron, így ez nem valósult meg. Adja meg lekérdezéssel azokat a feladatsorokat, amelyek nem 150 pontosak! A feladatsor névadóját, a művészeti ágat és a pontszámot jelenítse meg! (6nem150

  7. 7. Lekérdezés segítségével listázza ki azon csapatok nevét, amelyeknek volt maximális pontszámot érő feladata! Minden csapat neve egyszer jelenjen meg! (7hibatlan)  

  8. 8. Bár a versenyzők lelkesek voltak és törekedtek minden feladatot megoldani, ennek ellenére előfordult, hogy nem minden feladatra adtak be megoldást. Készítsen lekérdezést, amely megadja, hogy a „#win” csapat mely feladatsorokból hány feladatot nem adott be! Jelenítse meg a feladatsor névadóját és a be nem adott feladatok számát! (8#win)

  9. 9. Készítsen lekérdezést, amely megadja, hogy az „irodalom” művészeti ághoz tartozó feladatsorok közül melyeket kellett ugyanabban a hónapban beadni, mint amikor kitűzték? Adja meg a feladatsorok névadóját! (9ugyanabban)

  10. 10. Lekérdezés segítségével adja meg, melyik feladatsor megoldására volt a legkevesebb idő! A feladatsor névadóját jelenítse meg! Ha több ilyen feladatsor van, elegendő az egyiket megadnia. (10legrovidebb)

  11. 11. Készítsen lekérdezést, amely megadja, hogy mely feladatoksorokat tűzték ki az előző beadási határidejét követő napon! A feladatsor névadóját és a kitűzés idejét jelenítse meg! A feladat megoldása során kihasználhatja, hogy egyszerre csak egy feladatsor volt aktív. (11rogton


Mintaképek