Adatbázis-kezelés
Adatbázis-kezelés Középszint: Emelt szint: 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
Függvények: alapfüggvények 4-5 fajta 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
Á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.
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
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
Gyerekek SELECT Szülő, Count(Gyermek) AS [Gyerekek száma] FROM Család GROUP BY Szülő; Csoport alkotás
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
Béla apja SELECT Szülő FROM Család WHERE Gyermek='IV. Béla';
István nagyapja Allekérdezés SELECT Szülő AS Nagyszülő FROM Család WHERE Gyermek=(SELECT Szülő WHERE Gyermek='IV. István'); Allekérdezés
Királyok száma Többféle megoldás van 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
Géza utániak SELECT Count(Gyermek) AS [királyok száma] FROM Család WHERE Mettől>=(SELECT Meddig WHERE Gyermek='II. Géza') and Király; Összetett szűrés
8. és 9. feladat Űrlap Jelentés készítés Szoftverek alkalmasak-e? 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?
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
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
A: SELECT Név, Év, Helyszín FROM Egyéni WHERE Helyezés=1 ORDER BY Év; 1 pont
B: SELECT Év, Helyszín, Helyezés FROM Egyéni WHERE Név='Kulcsár Győző'; 1 pont
C: SELECT Név, Helyezés FROM Egyéni WHERE Helyszín='Atlanta' ORDER BY Helyezés; 1 pont
D: SELECT Count(*) AS [Érmek száma] FROM Egyéni WHERE Ország='MA'; 1+1 pont
E: SELECT Név, Count(*) AS [Helyezések száma] FROM Egyéni WHERE Ország='MA' GROUP BY Név; 1+1 pont
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
G: SELECT Ország, Count(*) AS [Aranyérmek száma] FROM Egyéni WHERE Helyezés=1 GROUP BY Ország; 1+1 pont
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
I: jelentés 1 pont 1+1 pont J: jelentés 1 pont Összesen: 20 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
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
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
Iskola tábla: mezőnevek és adattípusok 1 pont Versenyző tábla adatainak felvitele 1 pont Eredmény tábla adatainak felvitele Iskola tábla adatainak felvitele 1 pont
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
B: SELECT FelSorszám, Max(Pontszám) AS [Maximális pontszám] FROM Eredmény GROUP BY FelSorszám; 2 pont
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
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
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
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
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
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
Névsor SELECT * FROM Uralkodó ORDER BY Név 2 pont
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
HosszSor SELECT Név FROM Uralkodó ORDER BY Végső-Kezdő DESC 2 pont
Istvánok száma SELECT Count(*) AS [Istvánok száma] FROM Uralkodó WHERE Név like '*István*‘ 2 pont
Budai udvar SELECT Név FROM Uralkodó WHERE (Kezdő<= 1347) and (1347 <= Végső) 2 pont
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
Mátyás előtt SELECT Count(*) AS [Királyok száma Mátyás előtt] FROM Uralkodó WHERE Végső < (SELECT Kezdő WHERE Név='Mátyás') 4 pont
10 évnél többet uralkodók jelentés Lászlók jelentés 2 pont
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
magyar: SELECT * FROM nobel WHERE ország='H'; Bárány: SELECT díj, ország WHERE név like '*Bárány*';
Wigner: SELECT díj, évszám, ország FROM nobel WHERE név like '*Wigner*'; NL: SELECT név WHERE ország="NL";
dijak: SELECT TOP 1 díj, count(*) FROM nobel GROUP BY díj ORDER BY 2 DESC; hiany: SELECT évszám, díj WHERE név = '-';
egyszer: SELECT ország, count(*) FROM nobel GROUP BY ország HAVING count(*)=1; rangsor: WHERE ország not like '-' ORDER BY 2 DESC;
1939: SELECT név, díj, évszám FROM nobel WHERE évszám between 1901 and 1939 ORDER BY évszám, díj;
Összegzés Van: Nincs: szűrés rendezés csoportosítás csoport szűrés függvény jelentés Nincs: allekérdezés űrlap
Próba dolgozatok javítása! részpontszámok meghatározása eredmények összehasonlítása
Termékek középszint ↔ több tábla A kapcsolat megadás Access specifikus ↓ A lekérdezésben úgyis szükség van rá, szűréssel is jó Táblák létrehozása és importálása Kulcs mező megadás Mező formátum állítása
Megoldás A: SELECT Terméknév, Szín, Méret, Ár, Raktárkészlet FROM Termékek WHERE Méret="L" AND Raktárkészlet>=5 ORDER BY Ár DESC 2 pont
B: SELECT Kategóriák.Kategórianév, Avg(Termékek.Ár) AS AvgOfÁr FROM Kategóriák INNER JOIN Termékek ON Kategóriák.Kategóriakód = Termékek.Kategóriakód GROUP BY Kategóriák.Kategórianév 2 pont
C: SELECT Termékek.Terméknév, Kategóriák.Kategórianév, Termékek.Szín, Termékek.Méret, [Termékek]![Ár]*[Termékek]![Raktárkészlet] FROM Kategóriák INNER JOIN Termékek ON Kategóriák.Kategóriakód = Termékek.Kategóriakód WHERE (((Kategóriák.Kategórianév)="pamutnadrág" Or (Kategóriák.Kategórianév)="vászonnadrág")) ORDER BY Termékek.Terméknév 3 pont
D: SELECT Termékek.Terméknév, Kategóriák.Kategórianév, Termékek.Méret, Termékek.Ár, Termékek.Raktárkészlet FROM Kategóriák INNER JOIN Termékek ON Kategóriák.Kategóriakód = Termékek.Kategóriakód WHERE Kategóriák.Kategórianév Like "*top" AND Termékek.Raktárkészlet>0 2 pont
E: SELECT Kategóriák.Kategórianév, Sum(Termékek.Raktárkészlet) AS SumOfRaktárkészlet FROM Kategóriák INNER JOIN Termékek ON Kategóriák.Kategóriakód = Termékek.Kategóriakód GROUP BY Kategóriák.Kategórianév HAVING Kategóriák.Kategórianév="kötött pulóver„ 2 pont
F: SELECT Terméknév, Raktárkészlet, Ár FROM Termékek WHERE Ár Between 5000 And 10000 ORDER BY Raktárkészlet, Terméknév 2 pont
G: űrlap H: jelentés Űrlap- és jelentés-varázslóval megoldhatók
Számonkért fogalmak, műveletek A: szűrés B: kapcsolat, csoport alkotás C: számított érték, rendezés D: szűrés E: csoport szűrés és függvény használat F: több szintű rendezés G: űrlap H: jelentés, rendezett lista
Próba dolgozatok javítása! részpontszámok meghatározása eredmények összehasonlítása
Vízi sporteszközök kölcsönzése emelt szint feladattípus, szerkezet, szöveg jó pontozás részletes, de hiányzik: megoldás adatbázis SQL kód a pontozáshoz ↓ elég-e a leírás?
Tanfolyam (feladat problémái) középszintű feladat A 4 adattáblát létre kell hoznia sok idő a gépelés Irányítószám táblát nem használjuk Dolgozó.Irányítószám mező felesleges több szóból álló mezőnevek kerülendők típus nem egyértelmű több mezőnél Elsődleges kulcs nem értelemszerű
Űrlapokat és jelentéseket milyen néven mentse? Nyomógomb létrehozása: nem középszint („egyszerű űrlap”) nem minden adatbázis-kezelő ismeri pozícionáló nyomógomb jelentése ha bele is tesszük, utolsó legyen 3. és 4. feladat azonos típusú