1 / 64

Adatbázis-kezelés

Adatbázis-kezelés. Adatbázis-kezelés . Középszint: 1-2 tábla SQL-nyelv és lekérdező-rács használata Űrlap és jelentés készítés Emelt szint: több tábla (kapcsolatok) több elméleti háttér több alkotó jellegű probléma. Lekérdezés típusok: Választó Frissítő Törlő Táblakészítő

Download Presentation

Adatbázis-kezelés

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Adatbázis-kezelés

  2. Adatbázis-kezelés • Középszint: • 1-2 tábla • SQL-nyelv és lekérdező-rács használata • Űrlap és jelentés készítés • Emelt szint: • több tábla (kapcsolatok) • több elméleti háttér • több alkotó jellegű probléma

  3. Lekérdezés típusok: • Választó • Frissítő • Törlő • Táblakészítő • Hozzáfűző • Kereszttáblás • Függvények: alapfüggvények  4-5 fajta

  4. Árpád-ház • Milyen, ha csak elméleti feladat? • Egy, kevés rekordú adattábla • SQL lekérdezés • 2 értelmezés • 2 alkotás • Érettségin gyakorlat, gépes megoldás • Milyen szoftver? • Emelt szintű, de a feladat nehézsége közepes. • Feladatgyűjteményben sok pontból áll.

  5. Megoldás előkészítése • Adatbázis létrehozása • Adattábla importálása (szoftver függet-lenség biztosítása!) • Kulcs beállítása • Mezőtípusok vizsgálata • Lekérdezések mentése adott néven (!) • Űrlap és jelentés készítés

  6. Endre SELECT Gyermek, Meddig-Mettől AS [Uralkodás ideje] FROM Család WHERE Gyermek like '*Endre*'; Szűrés és számított értékek

  7. Gyerekek SELECT Szülő, Count(Gyermek) AS [Gyerekek száma] FROM Család GROUP BY Szülő; Csoport alkotás

  8. HosszSorrend SELECT Gyermek, Meddig-Mettől AS [Uralkodás ideje] FROM Család WHERE Király ORDER BY Meddig-Mettől DESC; Rendezés számított értékek alapján

  9. Béla apja SELECT Szülő FROM Család WHERE Gyermek='IV. Béla';

  10. István nagyapja SELECT Szülő AS Nagyszülő FROM Család WHERE Gyermek=(SELECT Szülő FROM Család WHERE Gyermek='IV. István'); Allekérdezés

  11. Királyok száma SELECT Count(Gyermek) AS [Királyok száma] FROM Család WHERE ( (Mettől<1000) and (Meddig>=1000)) or ((Mettől<=1099) and ((Meddig>1099)) or (Mettől>=1000) and (Meddig<=1099)) and Király; Többféle megoldás van

  12. Géza utániak SELECT Count(Gyermek) AS [királyok száma] FROM Család WHERE Mettől>=(SELECT Meddig FROM Család WHERE Gyermek='II. Géza') and Király; Összetett szűrés

  13. 8. és 9. feladat • Űrlap • Jelentés készítés • Varázsló használata kényelmes • Oldal beállítások (fejléc, lábléc tartalma) • Tulajdonság változtatás Szoftverek alkalmasak-e?

  14. Párbajtőr feladat • közép szintű feladat • adatbevitel, illetve konvertálás • a választó lekérdezések dominálnak • függvények használata • csoportosítás • 2 jelentéskészítés • standard feladatsor

  15. Párbajtőr pontozási útmutató Adatbázis létrehozása 1 pont Adattábla importálása 1 pont Kulcs beállítása 1 pont

  16. A: SELECT Név, Év, Helyszín FROM Egyéni WHERE Helyezés=1 ORDER BY Év; 1 pont

  17. B: SELECT Év, Helyszín, Helyezés FROM Egyéni WHERE Név='Kulcsár Győző'; 1 pont

  18. C: SELECT Név, Helyezés FROM Egyéni WHERE Helyszín='Atlanta' ORDER BY Helyezés; 1 pont

  19. D: SELECT Count(*) AS [Érmek száma] FROM Egyéni WHERE Ország='MA'; 1+1 pont

  20. E: SELECT Név, Count(*) AS [Helyezések száma] FROM Egyéni WHERE Ország='MA' GROUP BY Név; 1+1 pont

  21. F: SELECT Név, Count(*) AS [Aranyérmek száma] FROM Egyéni WHERE Helyezés=1 GROUP BY Név HAVING Count(*)>1; 1+1 pont

  22. G: SELECT Ország, Count(*) AS [Aranyérmek száma] FROM Egyéni WHERE Helyezés=1 GROUP BY Ország; 1+1 pont

  23. H: SELECT Helyszín, Count(Helyszín)/3 AS [Olimpiák száma] FROM Egyéni GROUP BY Helyszín HAVING Count(Helyszín)>3; 1+1 pont

  24. I: jelentés 1 pont J:SELECT Ország, Helyezés, Count(*) AS Darab FROM EgyéniGROUP BY Ország, Helyezés ORDER BY Ország; 1+1 pont J: jelentés 1 pont Összesen: 20 pont

  25. Verseny feladat • Emelt szint • Adatbázis létrehozás, táblák definiálása • Adatfeltöltés  idő szükséglet • Lekérdezésekhez melyik tábla kell? • Kapcsolatok • Függvények használata • Csoportosítás és allekérdezés használata

  26. Adatbázis létrehozása 1 pont • Versenyző tábla: mezőnevek és adattípusok 1 pont • Eredmény tábla: mezőnevek és adattípusok 1 pont

  27. Iskola tábla: mezőnevek és adattípusok 1 pont • Versenyző tábla adatainak felvitele 1 pont • Eredmény tábla adatainak felvitele 1 pont • Iskola tábla adatainak felvitele 1 pont

  28. A: SELECT Versenyző.Név, sum(eredmény.pontszám) AS összpontszám FROM Versenyző, Eredmény WHERE Versenyző.VersenyzőAZ=Eredmény.VersenyzőAZ GROUP BY Versenyző.Név ORDER BY sum(eredmény.pontszám); 5 pont

  29. B: SELECT FelSorszám, Max(Pontszám) AS [Maximális pontszám] FROM Eredmény GROUP BY FelSorszám; 2 pont

  30. C: SELECT Iskola.Iskolanév, Iskola.Város, Count(Versenyző.IskolaAZ) AS [Indulók száma] FROM Versenyző, Iskola WHERE Iskola.IskolaAZ = Versenyző.IskolaAZ GROUP BY Versenyző.IskolaAZ, Iskola.Iskolanév, Iskola.Város; 2 pont

  31. D: SELECT Versenyző.Név FROM Versenyző, Eredmény WHERE (Versenyző.VersenyzőAZ = Eredmény.VersenyzőAZ) and (Pontszám=0) GROUP BY Versenyző.Név ORDER BY Versenyző.Név; 3 pont

  32. E: SELECT DISTINCT Versenyző.Név, Iskola.Iskolanév, Iskola.Város, Iskola.Utca, Iskola.Házszám FROM Versenyző, Eredmény, Iskola WHERE (Versenyző.VersenyzőAZ = Eredmény.VersenyzőAZ) and (Iskola.IskolaAZ=Versenyző.IskolaAZ) and (Pontszám>10); 2 pont

  33. F: SELECT Név, Iskola.Iskolanév FROM Versenyző, Iskola, Eredmény WHERE (Versenyző.IskolaAZ=Iskola.IskolaAZ) and (Versenyző.VersenyzőAZ = Eredmény.VersenyzőAZ) and (Iskola.Város<>'Budapest') and (FelSorszám='I') and Pontszám= ( SELECT Max(Pontszám) FROM Versenyző, Eredmény,Iskola WHERE (Versenyző.VersenyzőAZ = Eredmény.VersenyzőAZ) and Versenyző.IskolaAZ=Iskola.IskolaAZ) and (FelSorszám='I') and (Iskola.Város<>'Budapest')); 5 pont

  34. A jelentés a versenyzők összpontszámairól 2pont • Jelentést a versenyzők adatairól iskolánként 2 pont Összesen: 30 pont

  35. Királyok • Középszintű feladat • Hasonlít az Árpád-ház feladathoz • Egyszerűbb lekérdezések a fele • Függvény, allekérdezés van • Csoport alkotás nincs • Jelentéskészítés

  36. Névsor SELECT * FROM Uralkodó ORDER BY Név 2 pont

  37. Lászlók SELECT Név, Végső-Kezdő AS [Uralkodásuk ideje] FROM Uralkodó WHERE Név Like '*László*' And Név Not Like '*Ulászló*‘ 3 pont

  38. HosszSor SELECT Név FROM Uralkodó ORDER BY Végső-Kezdő DESC 2 pont

  39. Istvánok száma SELECT Count(*) AS [Istvánok száma] FROM Uralkodó WHERE Név like '*István*‘ 2 pont

  40. Budai udvar SELECT Név FROM Uralkodó WHERE (Kezdő<= 1347) and (1347 <= Végső) 2 pont

  41. Királyok száma SELECT Count(*) AS [Királyok száma] FROM Uralkodó WHERE ((Kezdő<1300) and (Végső>=1300)) or ((Kezdő<=1399) and (Végső>1399)) or ((Kezdő>=1300) and (Végső<=1399)) 3 pont

  42. Mátyás előtt SELECT Count(*) AS [Királyok száma Mátyás előtt] FROM Uralkodó WHERE Végső < (SELECT Kezdő FROM Uralkodó WHERE Név='Mátyás') 4 pont

  43. 10 évnél többet uralkodók jelentés • Lászlók jelentés 2 pont

  44. Nobel-díj • középszintű • nagyon jó ötlet • importálásnál már van probléma (,) • nevek alakja szokatlan • QBE-ráccsal könnyen megoldható feladatok

  45. magyar: SELECT * FROM nobel WHERE ország='H'; Bárány: SELECT díj, ország FROM nobel WHERE név like '*Bárány*';

  46. Wigner: SELECT díj, évszám, ország FROM nobel WHERE név like '*Wigner*'; NL: SELECT név FROM nobel WHERE ország="NL";

  47. dijak: SELECT TOP 1 díj, count(*) FROM nobel GROUP BY díj ORDER BY 2 DESC; hiany: SELECT évszám, díj FROM nobel WHERE név = '-';

  48. egyszer: SELECT ország, count(*) FROM nobel GROUP BY ország HAVING count(*)=1; rangsor: SELECT ország, count(*) FROM nobel WHERE ország not like '-' GROUP BY ország ORDER BY 2 DESC;

  49. 1939: SELECT név, díj, évszám FROM nobel WHERE évszám between 1901 and 1939 ORDER BY évszám, díj;

  50. Összegzés

More Related