Könyvtári másolás

Egy egyetemi kollégiumban a diákok egy része ösztöndíjas, akiket azzal is támogatnak, hogy egy bizonyos kvóta erejéig ingyenes fénymásolási lehetőséget biztosítanak számukra a könyvtárban. A kvótát kartól függően állapítják meg és a másolt oldalakra vonatkozik, tehát egy lapon a kétoldalas nyomtatás két egységnek számít. A hallgatók a másolandó oldalakat a nap folyamán bármikor leadhatják, de csak aznap és pontosan 20 órakor vehetik át. A megoldás során felhasználhatja, hogy az adatbázis a 2012/2013-as tanév adatait tartalmazza.

  1. Készítsen új adatbázist konyvtar néven! A mellékelt három – tabulátorokkal tagolt, UTF-8 kódolású – szöveges állományt (kar.txt, hallgato.txt, masolas.txt) importálja az adatbázisba a fájlnévvel azonos néven (kar, hallgato, masolas)! Az állomány első sora a mezőneveket tartalmazza. A létrehozás során állítsa be a megfelelő típusokat és kulcsokat!
    Táblák:
    kar (id, nev, kvota)
    id A kar azonosítója (szám), ez a kulcs
    nev A kar nevének rövidítése (szöveg)
    kvota Az adott kari hallgatók kvótája (szám)
    hallgato (id, nev, osztondijas, karid)
    id A hallgató azonosítója (szám), ez a kulcs
    nev A hallgató neve (szöveg) – a feladat megoldása során feltételezheti, hogy nincs két azonos nevű hallgató
    osztondijas Megadja, hogy a hallgató ösztöndíjas-e (logikai)
    karid A hallgató karának azonosítója (szám)
    masolas (id, hallgatoid, datum, lap, oldal)
    id A másolás azonosítója (szám), ez a kulcs
    hallgatoid A másolást kérő hallgató azonosítója (szám)
    datum A másolás dátuma (dátum)
    lap A másolás során felhasznált lapok száma (szám)
    oldal Megadja, hogy a másolás egy vagy kétoldalas volt (szám)


    A következő feladatok megoldásánál a lekérdezéseket a zárójelben olvasható néven mentse! Ügyeljen arra, hogy a megoldásban pontosan a kívánt mezők szerepeljenek!

  2. Készítsen lekérdezést, amely az orvosi kar (MED) hallgatóinak nevét listázza ki ábécérendben! (2med)
  3. Készítsen lekérdezést, amely meghatározza, hogy összesen hány csomag fénymásolópapírra volt szükség! Egy csomag 500 lapot tartalmaz. Az eredményt nem szükséges egészre kerekítenie. (3csomag)
  4. Készítsen lekérdezést, amely megadja azon tanár szakos (vagyis a PPK, illetve TKK karon tanuló) hallgatók nevét, akik másolnivalót adtak le a téli ünnepek 9 napján (december 24. és január 1. között)! Ügyeljen arra, hogy a lekérdezésben minden hallgató neve pontosan egyszer jelenjen meg! (4unnep)
  5. Készítsen lekérdezést, amely megadja azon hallgatók nevét, akik legalább egy napon több mint két alkalommal kértek másolást! Ügyeljen arra, hogy minden hallgató neve pontosan egyszer jelenjen meg! (5tobb)
  6. Készítsen lekérdezést, amely megadja, hogy az informatikai kar (IK) egyes hallgatói mikor kértek másolást utoljára! (6utoljara)
  7. Kikkel találkozott Eszes Albert aznap este, amikor először vett át fénymásolatot? Lekérdezés segítségével határozza meg ezen kollégisták nevét! Ügyeljen arra, hogy minden hallgató neve pontosan egyszer jelenjen meg! (7eszes)
  8. Azon ösztöndíjas(ok) nevét kell meghatároznia, akik számára elegendő volt a biztosított kvóta. Az alábbi lekérdezés pontosan ezt adja meg, de ahhoz, hogy használható legyen, a 8eddig lekérdezést Önnek kell elkészítenie! (8eddig)
    SELECT hallgato.nev, kar.kvota-[8eddig].osszesen AS maradt
    FROM hallgato, kar, 8eddig
    WHERE kar.id=hallgato.karid
    	  AND hallgato.id=[8eddig].hallgatoid
    	  AND [8eddig].osszesen<=kar.kvota;
    
  9. Készítsen lekérdezést, amely megadja azon kollégisták nevét, akik a másolási szolgáltatást nem vették igénybe! (9nem)