adatbázis-kezelés

64
Adatbázis- kezelés

Upload: kelly-davidson

Post on 01-Jan-2016

37 views

Category:

Documents


0 download

DESCRIPTION

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ő - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Adatbázis-kezelés

Adatbázis-kezelés

Page 2: 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

Page 3: Adatbázis-kezelés

• 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

Page 4: Adatbázis-kezelés

Á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.

Page 5: Adatbázis-kezelés

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

Page 6: Adatbázis-kezelé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

Page 7: Adatbázis-kezelés

Gyerekek

SELECT Szülő, Count(Gyermek) AS [Gyerekek száma]

FROM Család

GROUP BY Szülő;

Csoport alkotás

Page 8: Adatbázis-kezelé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

Page 9: Adatbázis-kezelés

Béla apja

SELECT Szülő

FROM Család

WHERE Gyermek='IV. Béla';

Page 10: Adatbázis-kezelés

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

Page 11: Adatbázis-kezelés

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

Page 12: Adatbázis-kezelés

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

Page 13: Adatbázis-kezelés

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?

Page 14: Adatbázis-kezelés

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

Page 15: Adatbázis-kezelés

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

Page 16: Adatbázis-kezelés

A: SELECT Név, Év, Helyszín

FROM Egyéni

WHERE Helyezés=1

ORDER BY Év;

1 pont

Page 17: Adatbázis-kezelés

B:

SELECT Év, Helyszín, Helyezés

FROM Egyéni

WHERE Név='Kulcsár Győző';

1 pont

Page 18: Adatbázis-kezelés

C:

SELECT Név, Helyezés

FROM Egyéni

WHERE Helyszín='Atlanta'

ORDER BY Helyezés;

1 pont

Page 19: Adatbázis-kezelés

D:

SELECT Count(*) AS [Érmek száma]

FROM Egyéni

WHERE Ország='MA';

1+1 pont

Page 20: Adatbázis-kezelés

E:

SELECT Név, Count(*) AS [Helyezések száma]

FROM Egyéni

WHERE Ország='MA'

GROUP BY Név;

1+1 pont

Page 21: Adatbázis-kezelés

F:SELECT Név, Count(*) AS [Aranyérmek

száma]FROM EgyéniWHERE Helyezés=1GROUP BY NévHAVING Count(*)>1;

1+1 pont

Page 22: Adatbázis-kezelés

G:

SELECT Ország, Count(*) AS [Aranyérmek száma]

FROM Egyéni

WHERE Helyezés=1

GROUP BY Ország;

1+1 pont

Page 23: Adatbázis-kezelés

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

Page 24: Adatbázis-kezelés

I: jelentés 1 pontJ: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

Page 25: Adatbázis-kezelés

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

Page 26: Adatbázis-kezelés

• 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

Page 27: Adatbázis-kezelés

• 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 felvitele1 pont

Page 28: Adatbázis-kezelés

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

Page 29: Adatbázis-kezelés

B:

SELECT FelSorszám, Max(Pontszám) AS [Maximális pontszám]

FROM Eredmény

GROUP BY FelSorszám;

2 pont

Page 30: Adatbázis-kezelés

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

Page 31: Adatbázis-kezelés

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

Page 32: Adatbázis-kezelés

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

Page 33: Adatbázis-kezelés

F:SELECT Név, Iskola.Iskolanév

FROM Versenyző, Iskola, EredményWHERE (Versenyző.IskolaAZ=Iskola.IskolaAZ) and (Versenyző.VersenyzőAZ = Eredmény.VersenyzőAZ) and(Iskola.Város<>'Budapest') and (FelSorszám='I') andPontszám= ( SELECT Max(Pontszám)

FROM Versenyző, Eredmény,IskolaWHERE (Versenyző.VersenyzőAZ =

Eredmény.VersenyzőAZ) andVersenyző.IskolaAZ=Iskola.IskolaAZ) and (FelSorszám='I') and (Iskola.Város<>'Budapest')); 5 pont

Page 34: Adatbázis-kezelés

• 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

Page 35: Adatbázis-kezelés

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

Page 36: Adatbázis-kezelés

Névsor

SELECT *

FROM Uralkodó

ORDER BY Név

2 pont

Page 37: Adatbázis-kezelés

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

Page 38: Adatbázis-kezelés

HosszSor

SELECT Név

FROM Uralkodó

ORDER BY Végső-Kezdő DESC

2 pont

Page 39: Adatbázis-kezelés

Istvánok száma

SELECT Count(*) AS [Istvánok száma]

FROM Uralkodó

WHERE Név like '*István*‘

2 pont

Page 40: Adatbázis-kezelés

Budai udvar

SELECT Név

FROM Uralkodó

WHERE (Kezdő<= 1347) and

(1347 <= Végső)

2 pont

Page 41: Adatbázis-kezelés

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

Page 42: Adatbázis-kezelés

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

Page 43: Adatbázis-kezelés

• 10 évnél többet uralkodók jelentés

• Lászlók jelentés

2 pont

Page 44: Adatbázis-kezelés

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

Page 45: Adatbázis-kezelés

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*';

Page 46: Adatbázis-kezelés

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";

Page 47: Adatbázis-kezelés

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 = '-';

Page 48: Adatbázis-kezelés

egyszer:SELECT ország, count(*)FROM nobelGROUP BY országHAVING count(*)=1;rangsor:SELECT ország, count(*)FROM nobelWHERE ország not like '-'GROUP BY országORDER BY 2 DESC;

Page 49: Adatbázis-kezelés

1939:

SELECT név, díj, évszám

FROM nobel

WHERE évszám between 1901 and 1939

ORDER BY évszám, díj;

Page 50: Adatbázis-kezelés

Összegzés

Van:szűrés

rendezés

csoportosítás

csoport szűrés

függvény

jelentés

Nincs:allekérdezés

űrlap

Page 51: Adatbázis-kezelés

Próba dolgozatok javítása!

•részpontszámok meghatározása

•eredmények összehasonlítása

Page 52: Adatbázis-kezelés

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

Page 53: Adatbázis-kezelés

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

Page 54: Adatbázis-kezelés

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

Page 55: Adatbázis-kezelés

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év3 pont

Page 56: Adatbázis-kezelés

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

Page 57: Adatbázis-kezelés

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évHAVING Kategóriák.Kategórianév="kötött pulóver„

2 pont

Page 58: Adatbázis-kezelés

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

Page 59: Adatbázis-kezelés

• G: űrlap

• H: jelentés

Űrlap- és jelentés-varázslóval megoldhatók

Page 60: Adatbázis-kezelés

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

Page 61: Adatbázis-kezelés

Próba dolgozatok javítása!

•részpontszámok meghatározása

•eredmények összehasonlítása

Page 62: Adatbázis-kezelés

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?

Page 63: Adatbázis-kezelés

Tanfolyam (feladat problémái)

középszintű feladat

1. 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

2. Elsődleges kulcs nem értelemszerű

Page 64: Adatbázis-kezelés

3. Űrlapokat és jelentéseket milyen néven mentse?

4. 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ú