140 21 2MB
Hungarian Pages [95] Year 2003
Sulinet Expressz informatikai és informatika alapú továbbképzések
Adatbázis-kezelési alapok Helfenbein Henrik
Lektorálta: Kőhegyi Gergely
Sulinet Expressz, 2003.11.01.
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Tartalomjegyzék Tartalomjegyzék ......................................................................................................... 2 Bevezetés................................................................................................................... 3 1. Adatbázis-kezelési alapfogalmak ........................................................................ 3 1.1 Adatbázis-kezelő rendszerek ....................................................................... 3 1.2 Access adatbázis-kezelő.............................................................................. 3 2. Az Access-ben használható adattípusok............................................................. 7 2.1 Mező tulajdonságok ..................................................................................... 9 3. Adatmanipuláció................................................................................................ 12 4. Lekérdezések .................................................................................................... 18 4.1 Feltétel ....................................................................................................... 23 4.2 Többtáblás lekérdezés ............................................................................... 29 4.2.1 Kapcsolatok......................................................................................... 29 4.2.2 Összesítő választó lekérdezés............................................................ 38 5. Űrlapok .............................................................................................................. 42 5.1 Keresés varázsló........................................................................................ 42 5.2 Űrlapok készítése....................................................................................... 47 5.3 Űrlap varázsló ............................................................................................ 47 5.4 Munka a tervező nézetben ......................................................................... 53 5.5 Automatikus űrlap-előállítás ....................................................................... 59 5.6 Főűrlap és segédűrlap................................................................................ 61 6. Jelentések ......................................................................................................... 65 6.1 Jelentések készítése .................................................................................. 65 6.2 A jelentés tervező nézete ........................................................................... 70 6.3 Csoportosító összegfokozatos jelentés ...................................................... 72 6.4 Jelentések automatikus generálása ........................................................... 80 7. További lehetőségek ......................................................................................... 82 7.1 Kereszttáblás lekérdezés ........................................................................... 82 7.2 Táblakészítő lekérdezés............................................................................. 86 7.3 Hozzáfűző lekérdezés ................................................................................ 88 8. Adatok Importálása, csatolása .......................................................................... 91 8.1 Adatok exportálása..................................................................................... 94 9. Indítási beállítások............................................................................................. 95
2
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Bevezetés A tanfolyam során a pedagógusok megismerkednek az adatbázis fogalmával. A képzési cél, hogy a hallgatók a tanfolyam befejezésével képesek legyenek önállóan egy több táblából álló adatbázist létrehozni, feltölteni adatokkal és egyszerű lekérdezéseket elvégezni.
1. Adatbázis-kezelési alapfogalmak 1.1 Adatbázis-kezelő rendszerek A számítástechnika egyik alapvető szolgáltatása, hogy nagy tömegű adatokat biztonságosan tud kezelni. Az hogy ez a szolgáltatás, megbízható és hatékony, hosszú fejlődési folyamaton jutott el idáig. Az adatfeldolgozás egyik módszere, hogy az adott nyilvántartási feladatot egy programozási nyelv alatti adatstruktúrában, vagyis fájlban tároljuk, majd a programozó a hozzá tartozó nyelven megírja hozzá az adatok kezelését. Az ilyen típusú adatfeldolgozást, fájl-kezelő rendszereknek hívjuk. Nagy hátránya az adatok nehezen kezelhetősége, egyféle hozzáférési mód stb. Ezen hibák kiküszöbölésére fejlesztettek olyan típusú rendszereket, melyben az adat és az adatok elérhetősége önálló léttel bír. Az ilyen típusú rendszereket nevezzük adatbázis-kezelő rendszereknek. Az adatbázis-kezelő rendszer alapja az adatbázis, mely különböző típusú, de tartalmilag azért összefüggő, egymás rekordjaira hivatkozó strukturált fájlrendszer. Ezen integrált fájlrendszer összehangolt kezelésének a lehetősége nem más, mint az adatbázis-kezelő szolgáltatásai. Az adatbázis-kezelők univerzális rendszerek, melyek nagysága, fontossága egy operációs rendszerrel vetekedik. A szolgáltatásainak igénybevételéhez saját egyedi adatbázis-kezelőket építhetünk alá.
1.2 Access adatbázis-kezelő Egy iskolában a személyi nyilvántartást egy Access adatbázisban akarják nyilvántartani. Az adatbázisunknak adjuk az ISKOLA nevet. Az adatbázisban szeretnénk nyilvántartani a tanárok és a gyerekek adatait is. A nyilvántartás elkészítését már megelőzte az adatmodell felállítása, így mi már a kész adatstruktúrát kaptuk meg. Tehát ez a következő. Az adatokat több táblában fogjuk tárolni. Első lépésben készítsük el a tanárok adatait. TANAR(tanar_Id,t_nev,t_szido,t_fizetes,t_cím) SZAKOK(szak_ID,sz_neve) TANIT(tanar_ID,szak_ID)
3
Sulinet Expressz
Adatbázis-kezelés alapok
Indítsuk el az Access-t, és hozzuk létre az ISKOLA adatbázist
Üres adatbázis legyen a választásunk: ha új adatbázist akarunk létrehozni.
A megadott mappába létrehozzuk az ISKOLA adatbázist.
4
2003
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Adatbázis varázsló lehetőséget választva egy kínálatot kapunk:
Segédfelület, ahol előre elkészített mintákat tudunk a feladatunkra ruházni. Az esetek egy (kis) részében elképzelhető, hogy fenti témájú adatbázisra van szűkségünk. Ekkor használjuk bátran. Létező adatbázis megnyitása
Egy korábban megkezdett munka folytatásakor, a régebben létrehozott adatbázist megnyitjuk.
5
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Maradjunk akkor az új, üres adatbázis létrehozásánál.
Az Access indítás után felkínálja az objektumtípusait. Minden egyes dolgot, eseményt külön objektumban tárol. Az objektumtípusok a következők: Táblák: objektum alatt lehet elvégezni az adatdefiníciót és néhány adatmanipulációt. Lekérdezések: adatmanipulációkat és tényleges adatlekérdezéseket tartalmazhat. Űrlapok: képernyő terveket lehet elkészíteni. Jelentések: listákat lehet készíteni. Lapok: a webes hozzáférhetőség eszköze. Makrók: makrókat lehet írni. Modulok: programmodulokat írhatunk itt. Mit jelent az: • Adatdefiníció: új táblák létrehozása, módosítása, törlése. • Adatmanipuláció: új adat felvitele, adatok módosítása, adatok törlése. Feladat: Egy iskolai adatbázisban tárolni szeretnénk a tanárok adatait. A személyi adatokat a következő táblában akarjuk nyilvántartani.
6
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Hozzuk létre a táblát! TANAR(tanar_Id,t_nev,t_szido,t_fizetes,t_cím) A tábla objektum Tábla létrehozása Tervező nézetben választás után az alábbi képhez jutunk: Mezőnév: a mező neve (kerüljük a hivatkozások használatánál az ékezetes betűket és a szóközt). Típus: az adatok típusának megadása. Leírás: megjegyzések adása az egyes mezőhöz.
2. Az Access-ben használható adattípusok Szöveg
Szöveg vagy szöveg és számok Legfeljebb 255 karakter kombinációja, mint például egy lakáscím. Ide tartoznak az olyan számok is, amelyekkel nem kell számítási műveleteket végezni, mint például a telefonszámok, az alkatrészszámok vagy a postai irányítószámok.
Feljegyzés
Hosszú szöveg és szám Legfeljebb 64 000 karakter elhelyezése megjegyzésként vagy leírásként
Szám
Matematikai számításokhoz 1, 2, 4 vagy 8 bájt. használt numerikus adatok 16 bájt a többszörözési tárolásához (, kivéve a pénzügyi azonosító (GUID) esetén. számításokat ezekhez a Pénznem típust) használjuk. Az adott Szám típus definiálásához állítsuk be a Mezőméret tulajdonságot is.
Dátum/Idő
Dátumok és használható.
Pénznem
Pénznem értékek tárolása a cél
idők
leírására 8 bájt
7
8 bájt
Sulinet Expressz
Adatbázis-kezelés alapok
2003
A Pénznem adattípust használjuk a számítások során fellépő kerekítések megakadályozásához. A tizedesvesszőtől balra 15, míg attól jobbra 4 jegy pontosságú a számítás. Számláló
Mesterséges azonosító 4 bájt. automatikus megvalósítását 16 bájt a többszörözési támogató adattípus. Előállítására azonosító (GUID) esetén. két lehetőség van. Automatikusan beszúrt egyedi sorszám (egyesével növekszik), illetve véletlenszerűen generált (egyedi) szám új rekord hozzáadásakor.
Igen/Nem
Olyan mezők, amelyek csak két 1 bit érték egyikét tartalmazhatják (Igen/Nem, Igaz/Hamis, Be/Ki).
OLE objektum
Az OLE protokoll segítségével Legfeljebb 1 gigabájt más programokban létrehozott lemezterület szab határt) objektumot a Microsoft Access táblához lehet csatolni, vagy abba be lehet ágyazni. Így például Microsoft Word dokumentumok, Microsoft Excel munkalapok, képek, hangok és más bináris adatok kerülhetnek a nyilvántartásba. Az OLE objektum megjelenítéséhez űrlapon vagy jelentésben kötött objektumkeretet kell használni.
mező, amely Legfeljebb 64 000 karakter Hiperhivatkozás Olyan hiperhivatkozást tartalmaz. A hiperhivatkozás lehet elérési út vagy URL cím. Készítsük el a táblánkat! tanar_Id a tanár azonosítója t_nev a tanár neve t_szido születési dátuma t_neme a tanár neme t_fizetes a tanár fizetése t_cím a tanár címe
8
(a
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Minden mezőhöz hozzárendelhető több, különböző tulajdonság attól függően, hogy milyen típusú adatot akarunk szerkeszteni. Van olyan tulajdonság, amelyik gyakorlatilag bármelyik adattípusnál megtalálható, és van olyan is amelyik csak egy adott adattípushoz illeszkedik.
2.1 Mező tulajdonságok A mező tulajdonságok a mezők olyan tulajdonságainak a beállításai, melyekkel befolyásolhatjuk az adatok méretét, megjelenési formáját, tárolásra vonatkozó kikötéseket.
9
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Tulajdonság Mezőméret
Leírás A szövegmező mérete vagy számmező adható meg. Formátum Az adatok megjelenítési formája. Tizedes helyek Szám és pénznem adattípusoknál a tizedes jegyek száma. Bemeneti maszk Formázó karaktereket jelenít meg a mezőkben és biztosítja, hogy a bevitt adatok megfeleljenek a megadott maszknak. Cím Mező nevének megváltoztatása az adatlapon. Alapértelmezett érték Automatikus feltöltő érték, adatbevitelnél ezt kínálja fel. Érvényességi szabály Adatbeviteli szabályokat meghatározó kifejezések. Érvényességi szöveg Hibás adat beírásakor megjelenő szöveg. Kötelező Kötelező mezőkitöltés megadása. Nulla hosszúság engedélyezése Megengedett-e nulla-hosszúságú szöveg megadása. Indexelt Keresések, rendezések gyorsítására vagy a mezőtartalom egyediségére vonatkozó előírás az indexelés engedélyezése. Index: egy vagy több mezőn alapuló tulajdonságok megadása. Rámutatunk az indexelni kívánt mezőre, majd kiválasztjuk az index tulajdonságot. Igen (lehet azonos): a keresések és rendezések gyorsítása miatt szokták beállítani. Ez természetesen a helyfoglalás növekedése árán valósul meg Igen nem (lehet azonos): amennyiben egyedi indexet akarunk létrehozni. Az egyedi index esetén a rendszer (a gyorsítás mellett) nem engedi, hogy a mezőben eltárolt bármely korábbi adat egy új rekordban ismétlődjék. Elsődleges kulcshoz a rendszer automatikusan hozzárendeli ezt a tulajdonságot. Többmezős indexelést akkor kezdeményezünk, amikor több mező (azaz tábla tulajdonság) szerinti együttes keresést, vagy rendezést szeretnénk gyorsítani, illetve több mező együttes értékének az egyediségét szeretnénk biztosítani. Mi a kulcs: Egy olyan tulajdonsága (mezője) a táblának, amely értéke egyértelműen meghatározza a tábla bármely sorát, tehát az értéke egyedi. Feladatunkban a tanar_Id a tanar tábla egyedi azonosítója! Indexek hozzárendelése a mezőkhöz: Tervező nézetben válasszuk a Nézet/Index menüpontot.
10
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Írjuk be az index (fantázia) nevét ezután az Indexek ablak Indexnév oszlopának az első üres sorába. A mezőnév oszlopban kattintsunk a nyílra, és válasszunk indexelni kívánt mezőt a listából.
A szerkesztés befejezése az index ikonra kattintással történik. Elsődleges kulcs megadása: A tábla egy vagy több olyan mezője, amely a tábla sorait egyértelműen azonosítja alkalmas elsődleges kulcsnak. A tábla tervezői nézetében a megfelelő sorok, azaz mezők kijelölése után az eszközsor kulcs-ikonjára kattintva állíthatjuk be ezt a legegyszerűbben. Az elsődleges kulcs automatikusan indexet, sőt egyedi indexet kap. Így tehát az elsődleges kulcs megadásával az adatismétlődés már a tervezés szintjén kizárható. Mint látni fogjuk, az elsődleges kulcsnak még fontos szerepe van a már létező táblákkal való kapcsolatok megadásában, kialakításában is.Az elkészített táblát mentsük el:
A mezők nevét, típusát és méretét kötelező megadni. A mezők egyéb tulajdonságait nem kötelező kitölteni, sok esetben e rendszer egy konkrét értéket ír be helyettünk. Például a szöveg adattípus esetén a mezőhossz tulajdonság értéke 50 lesz, ha nem adunk mi meg értéket. Amennyiben nem adtunk meg, hogy melyik mező legyen a kulcs, figyelmeztet az Accsess bennünket. Ha ezek után sem jelöljük ki egyik mezőt sem akkor keres egy számláló adattípust, és ahhoz illeszti a az elsődleges kulcs tulajdonságot. Ha nincs számláló típusú adatmezőnk, akkor létrehoz egy számláló típusú kulcsmezőt Azonosító névvel. Általában az ember nem bízza ezt a „véletlenre”, így maga állítja be, mint a példánkban is megtesszük. Ennél a feladatnál a kulcs az a tanar_Id mező, amely egyértelműen azonosítja majd a tanárt. A megadása úgy történik, hogy ráállunk a kiválasztott mező oldal sávjára, majd rákattintunk a kulcs ikonra.
11
Sulinet Expressz
Adatbázis-kezelés alapok
2003
A struktúra kialakítása és elmentése után töltsük fel adatokkal a táblát! Az adatfeltöltés definíció szerint egy új műveleti csoportba tartozik, amelyet úgy nevezünk, hogy adatmanipuláció.
3. Adatmanipuláció Minden objektum típusnál (tábla, lekérdezés, …) választhatunk Tervező vagy Adatlap nézetet. Tervező nézet: ahol az objektum definícióját (struktúráját) kell felépíteni. Adatlap nézet: ahol a használatát lehet kiválasztani.
Az adatmanipuláció utasításai a következők: • • •
Új adat felírása. Adat, vagy adatok módosítása. Adatok törlése.
Új adat felírása Az új adat felírása a táblába a következőképpen történhet. Átállunk az adatlap nézetre ikonnal, amennyiben még a tábla tervezői nézetében vagyunk. A másik lehetőség, hogy a tábla-objektum Megnyitás nyomógombjával belépünk a tábla adatlap nézetébe.
12
Sulinet Expressz
Adatbázis-kezelés alapok
2003
A kitöltés során a számláló típusú mezőt nem kell kitölteni, itt a beírás automatikusan történik. A rendszer automatikusan, növekvő sorrendben adja a számláló értékeit, egy szám csak egyszer szerepel. A többi mezőt nekünk kell kitölteni. Ha egy mezőre,
még a tábla definíciónál nem kötöttük k ai kötelező kitöltési feltételt, akkor a kitöltés nem kötelező. A tábla mezői a képernyőn egy adott szélességű oszlopban jelennek meg. Ez a szélesség sok esetben nem elegendő. Ilyenkor szélesíthető a mező megjelenítése, ha a választóvonalat (fent a mező címek között) az egérrel tágítjuk, vagy akár csökkenthető is. A mezőbe beírható legtöbb adat annyi lehet, amennyit megadtunk a tábla kialakításánál. Az adatok felírása után a táblázatot nem kell menteni, mert az adatok közvetlenül felíródtak az aktuális táblába a háttértár most használt adatbázis fájljába! Az adatbázis-kezelő rendszerek alapfilozófiája szerint, nagy tömegű adat biztonságos kezelését nem lehet csak a memóriában végezni. Az adatokat folyamatosan és automatikusan lemezre írja egy adatbázis-kezelő rendszer. A felhasználó így más alkalmazási területekhez képest (, mint pl. szövegszerkesztés, táblázatkezelés) mentesül a folyamatos mentés kényszere alól. Az objektumok szerkezetének utólagos módosítása közben nem történik azonnal lemezre írás, bevárja a rendszer az összes javításunkat. Ilyen jellegű műveletet azért sokkal ritkábban hajtunk végre, mint adatkarbantartást. Az adatlap és a tervező nézet között bármikor válthatunk. Erre akkor lehet szükség, ha elfelejtettük a tábla szerkezetét, vagy a struktúráján változtatni akarunk. Amennyiben módosítjuk a struktúrát, általában nem vesznek el az adataink, de óvatosnak kell lenni. A mezők típusának megváltoztatása, vagy a hossz átírása megengedett műveletek. Ilyenkor azonban a figyelmetlenségünk bizony adatvesztést okozhat. Gondoljuk meg, hogy egy szöveg típusú adatmező mezőhosszát utólag csökkenthetjük 50-ről 10-re, hogy kevesebb helyet foglaljon el az adatbázisunk. Azonban, ha rosszul mértük fel a helyzetet és van 10-nél hosszabb adatunk, akkor annak a vége el fog veszni! A mezők változtatásánál csak a kulcs (. illetve kapcsoló) mezőknél van kikötés. Mégpedig akkor, ha egy mező lekérdezésben vagy kapcsolatban hivatkozás része, akkor először meg kell szüntetni a kapcsolatokat, és csak azután lehet változtatni a mező definícióját.
13
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Adatmódosítás Egy-egy rekord egy-egy mezőjét a tábla adatlap nézetében ki lehet javítani. A módszeres, szisztematikus módosításra azonban az adatbázis-kezelő rendszerek további lehetőséget is biztosítanak. Az Access-ben az adatmódosításokat a lekérdezések objektumnál kell kezdeményezni. Az Access az adatmanipulációnak ezt a módját is lekérdezésnek hívja: frissítő lekérdezés. Frissítő lekérdezés Egy tábla rekordjait módosíthatjuk egy frissítő „lekérdezéssel”. Váltsunk át a Lekérdezések objektum típusra! Válasszuk a Lekérdezés létrehozása tervező nézetben lehetőséget!
A megjelenő párbeszéd ablakban kiválasztjuk azt a táblát, amit módosítani akarunk. A Hozzáadás gombbal a tervező felületre helyezzük, majd bezárjuk ezt a segédablakot.
14
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Ezután a Lekérdezés menüpont Frissítő lekérdezés menüpontjával beállítjuk az adatmódosítás tényét: A tervező felület egyes sorainak a jelentése könnyen érthető.
Mező: a módosítandó mező neve. Tábla: annak a táblának a neve, amit használunk, azaz ahol a mező megtalálható. Módosítás: a módosítás végrehajtásakor ez az érték kerül a felett megjelölt mezőbe. Ha egy mezőre hivatkozunk, mindig szögletes zárójelezést kell használni. Ebben a példában a módosítással megemeljük a tanárok fizetését huszonöt százalékkal. Feltétel: ha valamilyen feltételhez van kötve a módosítás végrehajtása. A példában most üresen maradt, így minden egyes sorra, azaz minden tanár adatára végrehajtódik a módosítás. Tehát mindenki megkapja a fizetésemelést. Ahhoz, hogy a módosítás végrehajtódjon, futtatni kell a módosítást. Ezt vagy a Lekérdezés/Futtatás menüből vagy a ! ikonnal tehetjük meg. Amennyiben a frissítő „lekérdezést” már elmentettük, akkor a lekérdezés objektumtípus Megnyitás 15
Sulinet Expressz
Adatbázis-kezelés alapok
2003
nyomógombjával tudjuk azt futtatni. Arra kell nagyon ügyelni, hogy annyiszor fog a módosítás végrehajtódni, valahányszor futtatjuk ezt a „lekérdezésünket”, módosító programunkat!
Minden futtatáskor, jelzi, hogy hány soron (rekordon) fog végrehajtódni a módosítás. Adatok törlése Egy-egy rekord törlését a tábla adatlap nézetében el lehet végezni. A kijelölt sorok a törlés („Del”) gombbal törölhetők. A módszeres, szisztematikus törlésre azonban az adatbázis-kezelő rendszerek további lehetőséget is biztosítanak. Az Access-ben a rekordok módszeres törlését a lekérdezések objektumnál kell kezdeményezni. Az Access az adatmanipulációnak ezt a módját is lekérdezésnek hívja: törlő lekérdezés. Törlő lekérdezés Egy táblából törölni tudunk bizonyos feltételeknek eleget tevő rekordokat. A művelet, hasonlóan a módosításhoz, a Lekérdezés objektumból indul itt is Lekérdezés létrehozása Tervező nézetben lehetőséget válasszuk!
Kiválasztjuk a táblát amelyből sorokat törölni akarunk.
16
A
Sulinet Expressz
Adatbázis-kezelés alapok
2003
A Lekérdezés menüből a Törlő lekérdezést választjuk.
A tervező felület sorainak jelentése a következő. Mező: amelyik mezőt használjuk a törlés eldöntéséhez, azaz a sor kiválasztásához. Tábla: ahonnan a mezőt választjuk. Törlés: A törlés sorban kétféleképpen adhatom meg a feltételt Where, From. Where (keresés helye): A feltétel sorban megadom, hogy milyen feltételeknek eleget tevő rekordokat akarok törölni a megadott táblából. From (kezdő oldal): azt a táblát jelöli, ahonnan törölni akarunk. A tábla * mezője csak a kezdő oldal jelölésű lehet, minden más mező csak a keresés helye. Egy tábla megadása esetén nincs szükség a kezdő tábla megadására. A törlés indítása hasonló módon történik, mint a frissítő lekérdezésnél, végre kell hajtatni a futtatással.
17
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Feltétel: melyek azok a sorok, amelyeket törölni akarunk. A példában a százezernél kisebb fizetésűek kerülnek majd futtatáskor törlésre. Ahhoz, hogy a törlés végrehajtódjon, futtatni kell a törlő „lekérdezést”. Ezt vagy a Lekérdezés/Futtatás menüből vagy a ! ikonnal tehetjük meg. Amennyiben a törlő „lekérdezést” már elmentettük, akkor a lekérdezés objektumtípus Megnyitás nyomógombjával tudjuk azt futtatni. Arra kell nagyon ügyelni, hogy annyiszor fog a törlés végrehajtódni, valahányszor futtatjuk ezt a „lekérdezésünket”, törlő programunkat!
Minden futáskor jelzi a törlendő sorok számát. Nézzük meg a megoldást!
4. Lekérdezések Ez az a szolgáltatás, amely segítségével információkhoz juthatunk az adatokkal feltöltött táblákból. A lekérdezések készülhetnek táblákból vagy lekérdezésekből. Azaz egy új lekérdezést hozzárendelhetünk táblához, már létező lekérdezéshez vagy mindkettőhöz. A lekérdezések készítését a Lekérdezések objektumból kell indítani.
18
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Most a változatosság kedvéért az Új feliratú nyomógombon kattintva, a Tervező nézet választással ugyanoda juthatunk, mint a korábbi lecke végén a Lekérdezés létrehozása Tervező nézetben választással.
19
Sulinet Expressz
Adatbázis-kezelés alapok
2003
A táblákból kiválasztjuk azt, amelyikből szeretnék adatokhoz jutni. A hozzáadás gombbal felkerül a lekérdezés ablakba a tábla. A Tábla hozzáadása ablakot be kell zárni a további munkához! Az ablak felső részén láthatók a nyitott táblák, tábla névvel és mező nevekkel együtt. Az alsó ablakban a lekérdezési kritériumokat lehet megadni. A tervező felület sorainak jelentése a következő. Mező: legördülő listából kiválasztható a mező neve. Tábla: sorban az aktuális tábla neve látható. Rendezés: a lekérdezésen belül különböző mezők szerinti rendezettségeket kérhetünk. A rendezés iránya lehet növekvő, vagy csökkenő. Megjelenítés: ha kivesszük a jelölő négyzetet, nem jelenik meg az eredmény listában a mező tartalma. Feltétel: egyszerű és összetett feltételeket fogalmazhatunk meg.
Vegyük észre, hogy a táblázatban a mezők nem olyan sorrendben vannak, mint az eredeti táblában! Természetes, hiszen a megjelenítéskor nem mindig azt a sorrendet akarjuk látni, sőt nem minden mező tartalmára vagyunk kíváncsiak. A táblázatba a mezőket a következő módszerekkel tudjuk betenni. 20
Sulinet Expressz
Adatbázis-kezelés alapok • • • •
2003
A Mező sorban a legördülő listából kiválasztjuk azt a mezőt, amelyiknek a tartalmát az eredmény listában látni akarjuk. A fogd és vidd módszer, ilyenkor a tábla képében kiválasztjuk a mezőt, és az egérrel lehúzzuk az oszlopba. Dupla kattintás a tábla képében a kiválasztott mezőn, hatására az első üres oszlopba kerül a kívánt mezőnév. A mező kezdőbetűjével, ilyenkor automatikusan bekerül a neve az oszlopba.
Amennyiben a táblanév és mellette a csillag látszódik (pl. tanar.*). akkor a választás azt eredményezi, hogy minden mező tartalma benne lesz az eredmény listában. Ez a speciális mezőnév-jelölés sokszor nagy segítséget jelent. Ugyanis az összes mező megjelenítéséhez elég egyetlen (a csillag jelű mezőnév felhasználásával) oszlopot kitölteni a tervező felületen. Rendezés
A szemléletes megjelenítés egyik alapkritériuma, hogy az adatok valamilyen rendezettségben jelenjenek meg. A példában szereplő választó lekérdezés a tanár tábla adatainak, a tanár neve szerint növekvő sorrendű megjelenítését írja le. Amelyik mező szerint akarunk rendezni, abban az oszlopban a Rendezés sorban kiválasztjuk a legördülő listából a rendezés irányát. Több rendezési szempontot is beállíthatunk, de ilyenkor mindig a felírás sorrendje számít. A balról-jobbra szabály van érvényben. Tehát mindig azoknak a mezőknek kell előrébb lenniük, amik az elsődleges, másodlagos, … rendezési szempontot jelentik. Másként fogalmazva a rendezésben résztvevő mezők egymáshoz viszonyított helyzete adja meg, hogy melyik lesz az elsődleges, másodlagos, stb. szempont. Megjelenítés
21
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Amikor nem akarjuk, hogy az eredmény listában látszódjon egy mező tartalma, de szükségünk van rá a rendezés vagy a feltétel megfogalmazása miatt, akkor választjuk ezt a funkciót. Ilyenkor egyszerűen a négyzetből a pipát kikattintjuk. Nézzük az eredményt.
Az első oszlop fejlécében olyan név szerepel, amit nem találunk a mezők között. Ennek az oka az, hogy a t_szido mezőt kétszer jelöltük megjelenítésre. Viszont, miután a t_nev mező alól kiszedtük a jelölést, az eredmény listában a nevek nem szerepelnek. Eredmény (lek_rend_nev):
22
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Ha a pipa visszakerül, az eredményben már ismét szerepel a név!
4.1 Feltétel Alapértelmezésben a lista mindig az oszlopokban megadott mezők, az összes táblázatbeli sorára vonatkozik. Ha soronként válogatni akarunk, akkor válogatási feltételeket kell megadnunk. Feltételek megfogalmazása
A különféle feltételek segítenek bennünket, hogy a gyakorlatban felvetődő válogatási problémákat meg tudjuk oldani. Tekintsük át a legfontosabb lehetőségeket. • Egyszerű összehasonlítás =, , =, • Between összehasonlítás • IN összehasonlítás • Like illesztés • Összehasonlítás NULL értékkel • Összetett feltétel Egyszerű összehasonlítás: csak azok a rekordok legyenek az eredmény listában, amelyek eleget tesznek a relációs jellel megfogalmazott feltételnek. Példánkban azok a tanárok fognak látszódni, akinek a fizetésük nagyobb, mint 150 000 Ft.
23
Sulinet Expressz
Adatbázis-kezelés alapok
2003
A Feltétel: sorba kell beírni a relációs jel felhasználásával a kritériumot. Eredmény (lek_nagyobb_150000):
Tehát csak azok a sorok jelennek meg, ahol a fizetés több mint 150.000 Ft. A szemfüles Olvasó észrevette, hogy Elek Sándor látszólag 125000 Ft fizetéssel benne van a listában. Ezt a rekordot azonban az adatbázisban ellenőrizve rájöhetünk, hogy a valódi fizetési értéke 3125000 Ft. Ez persze lehet sajtóhiba, de jelenleg ez a sor is indokoltan van benn az eredményben. Ebből annyi a tanulság számunkra, hogy az adatok megjelenítésére szánt helyet megfelelő méretűre kell beállítani! Between Ha azt akarjuk, hogy csak azok legyenek a listában, akik 1970 és 1999 között születtek, akkor a legegyszerűbb módszer, ha a between alsó and felső feltételt használjuk. Ilyenkor az alsó és felső értéket adjuk meg, amik közötti adatokhoz szeretnénk jutni. Tehát ilyenkor egy zárt intervallumból választunk.
Vegyük észre, hogy a dátum típusú értékek # jel közé kerültek. Ezt a szintaktikát nekünk nem kell beírnunk, a dátum típusú konstansokat automatikusan kiegészíti az Access rendszer # jellel.
24
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Amire viszont vigyázni kell, hogy a kulcsszavak között szünet (szóköz) karakter van. Másrészt a dátum szintaktikája a Windows beállításától függ, magyar esetén év.hónap.nap. alakú. Eredmény (lek_lozott_szul):
IN összehasonlítás Amikor egy oszlopból előre tudjuk, hogy mik azok az értékek, amiket választani akarunk, akkor használjuk. Például, ha a listából az Elek Gábort, a Gergely Jánost, és a Borz Évát, valamint a hozzájuk tartozó adatokat akarjuk látni, akkor a megadás formája a következő lehet: IN (”Elek Sándor”; ”Gergely János”; ”Borz Éva”) Tulajdonképpen az IN operátor vagy feltételek sorozataként fogható fel.
Eredmény (lek_in):
25
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Like operátor Eddigiekben olyan kiválasztásokat végeztünk, ahol pontosan meg tudtuk mondani a feltételt. Például legyen nagyobb, vagy két érték között van, vagy pontosan felsoroltuk a lehetséges értékeket. Az viszont gondot okozott volna, ha az adatrögzítő nem úgy írja be a nevet, ahogy kell. Nem tudta volna a rendszer megtalálni a tanárokat. Vannak olyan esetek, ahol nem ismerjük a pontos értéket, csak egy szöveg típusú mintát tudunk a válogatáshoz összeállítani. Ilyenkor kell használni a Like operátort a lekérdezésben. A feltétel alakja: Like ”minta” , ahol a minta az amit illeszteni akarunk a mező elemeihez. A minta összeállításakor több lehetőségünk is van: • *- akárhány darab tetszőleges karakter lehet • ? – egyetlen tetszőleges karakter lehet • # - egyetlen tetszőleges számjegy lehet • [karakterlista] – egyetlen olyan karakter, amely szerel a listában • [!karakterlista] – egyetlen olyan karakter, amely nem szerepel a listában • konkrét karakter – konkréten szerepelnie kell a mezőben azon a ponton Azok a rekordok fognak megjelenni az eredményben, ahol a (Like felett található) mező értéke illeszkedik a megadott mintára. Például válasszuk ki azokat a tanárokat, akik Budapesten laknak! Like ”Budapest” ilyenkor azok jelennek, meg akiknél a lakcím mezőben csak annyi szerepel, hogy Budapest. Pontosabban mondva a hasonlítás során a kis- és nagybetűk között a rendszer nem tesz különbséget. Így például amennyiben BUDAPEST lett felgépelve, azt is megtaláljuk. Ez még mindig nem jó a mi feladatunk esetében, hiszen a mező nemcsak a városnevet, hanem a cím többi részét is tartalmazza. Ez feltétel akkor volna jó, ha külön mezőben tároltuk volna a várost. Legyen ez tanulság számunkra, hogy amennyiben egy adat logikailag összetett, és kíváncsiak vagyunk a részeire is, akkor nem érdemes egy mezőben tárolni azt. Érdemesebb részenként külön mezőt tervezni részükre. Így az adatrögzítés és a visszakeresés is biztonságosabbá válhat. Mit tehetünk? A Like operátornál használhatunk helyettesítő karaktereket. Ezek a *, a ?, és a mintarészek láncoláshoz az & jel (szövegek egymásutánírása művelet). 26
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Nézzünk példákat, milyen lehetőségeink vannak? Figyeljük meg, hogy a felgépelt adatokban először a városnév, majd az utca és házszám következik. • Like ”*Budapest*” Minden olyan sor megjelenik, ahol a mezőben bárhol van Budapest is! Tehát a csillag egy csoportot helyettesít! Itt természetesen bekerülnek azok is, akik pl. a Budapest utcában laknak. • Like ”?udapest*” Minden olyan sor megjelenik, ahol a mezőben az első karakter bármi, de közvetlenül mögötte udapest szerepel. Ezután a szöveg tetszőlegesen folytatódhat (a udapest mögött szerepel a *). • Like ”Budapest*” Minden olyan sor megjelenik, ahol a mezőben a bejegyzés a Budapest szöveggel kezdődik, és még bármi lehet mögötte! Ez elég bíztató próbálkozás. Igaz a Bp. felgépeléseket nem találjuk meg, de ez már gépelési a fegyelem kérdése. • Like ”Buda”& ”pest*” Az előző, ”Budapest*” mintával megegyező hatású. Az & jel használata itt most valóban felesleges bonyolítás. Azonban később, amikor úgynevezett paraméteres lekérdezéseket készítünk, szükségünk lesz erre a lehetőségre. Nevezetesen a mintát így több darabból, menet közben tudjuk majd előállítani. • Like ” [BP]*” – Minden olyan sor megjelenik, ahol a mezőben a szöveg a „B” vagy a „P” betűvel kezdődik. Így megtalálhatjuk a Budapest, Bp., Balatonkenese vagy Pécs kezdetű címeket egyaránt, ha vannak ilyenek az adatbázisban. • Like ” [!BP]*” – Minden olyan sor megjelenik, ahol a mezőben a szöveg nem a „B” és nem a „P” betűvel kezdődik. • Like ” [a-k]*” – Minden olyan sor megjelenik, ahol a mezőben a szöveg első betűje az „a” és a „k” betűk közé esik. Nézzük ismét a példát: Válasszuk ki azokat a tanárokat, akik Budapesten laknak!
27
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Eredmény (lek_like):
Nézzük azokat a tanárokat, akiknek a nevének a kezdőbetűje V és Z között van!
Eredmény: most természetesen egy üres lista, miután nincs ilyen nevű tanár sem az iskolában! Eredmény (lek_v-z_ig):
28
Sulinet Expressz
Adatbázis-kezelés alapok
2003
4.2 Többtáblás lekérdezés Az eddigiekben készített lekérdezések mindegyike egyszerű (úgynevezett) választó lekérdezés volt. Általában egy adatbázis nem egy táblából, hanem több táblából áll. Ahhoz, hogy a több táblából eredmény kapjunk, szükséges, hogy a táblák között valamilyen összefüggés, kapcsolat legyen. Az összefüggések logikai, és egyben fizikai megvalósítása csak úgy lehetséges, ha van egy (esetleg több) mező, mely a kapcsolatot kialakítja. Ennek a mezőnek formailag és tartalmilag megegyezőnek kell lennie! Az értelme az, hogy ha külön táblákban tároljuk az adatokat, akkor a tárolás hatékonyabb, miután így eleget tudunk tenni a tervezési és hatékonysági szabályoknak.
4.2.1 Kapcsolatok A kapcsolatok típusai Két tábla közötti kapcsolat elemzésekor a kapcsolat foka alapján három esetet lehet megkülönböztetni. 1:1 – egy az egyhez 1:n – egy a többhöz n:m – több a többhöz Mit is jelentenek ezek: 1:1 az egyik tábla egy sorához, vagy szabályosan egy rekordjához mindig csak egy rekord tartozik a másik táblából. 1: n kapcsolatnál az egy-oldali rekordhoz mindig több rekord is tartozhat a másik táblából. Sőt az is elképzelhető, hogy az egy-oldali rekordhoz egyetlen rekord sem kapcsolódik a több-oldali táblából. Másrészt a több-oldalon szereplő tábla egy rekordjához pontosan egy rekord kell, hogy tartozzon az egy oldalon álló táblából.. n:m kapcsolatnál, meghatározhatatlan az egyikből hány rekord tartozik a másikhoz, és megfordítva is. Tervezzük tovább az adatbázisunkat! Ahhoz, hogy alkalmazni tudjuk a lekérdezéseket több táblára is, természetesen szükségünk van az újabb táblák létrehozására. Eddig ami elkészült, az a „tanar” tábla: tanar(tanar_Id,t_nev,t_szido,t_fizetes,t_cím) Folytassuk az ISKOLA adatbázis létrehozását. Egészítsük ki a tervünket a következővel. Tegyük fel, hogy nemcsak a személyi adatait akarjuk nyilvántartani a tanároknak, hanem azt is, hogy milyen szakja van. Feltételezzük azt is, hogy általában egy tanárnak több szakja is van. Ezeket az ismereteket is szeretnénk az adatbázisunkban nyilvántartani. Át kell gondolnunk, hogyan kellene a tábla szerkezetét módosítani. Ha újabb mezőket veszünk fel a meglévő „tanar” táblánkban, akkor túl sok olyan mező lenne, ahol nem volna adat. Gondoljunk arra, hogy van olyan tanár, aki egy, de van, aki akár három szakos. Másrészt mennyiben maximálnánk a lehetséges szakok számát? És ha valakinek eggyel több van, mint amire mi gondoltunk? Tehát ez rossz megoldás. Amennyiben hatékonyan akarjuk az adatainkat tárolni, akkor a megoldás, hogy egy új táblát hozunk létre, ahol szerepel a tanár azonosítója és, hogy milyen tárgyat tanít.
29
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Itt egy tanár több rekordot is elfoglalhatna, a szakjai számának megfelelően. Ez már jobb megoldásnak látszik. Ez az adatbázis egy nagy nyilvántartásnak a kis része, tehát gondoljunk arra is, hogy a tantárgyakra nem csak a tanároknál lehet szükség, hanem a diákoknál, a tanrendnél, és még nagyon sok nyilvántartott adatnál. Ha erre gondolunk, akkor az lehetne a legjobb megoldás, hogy egy külön táblát hozunk létre a tárgyak (szakok) számára is. Így két új táblát terveztünk a rendszerünkbe. szakok(sz_ID, sz_nev) ahol az sz_ID a tantárgy azonosítója és egyben a tábla kulcsa is. Az sz_nev a tantárgy megnevezését tartalmazza. Most már csak azt a táblát kéne módosítanunk, ahol azok az adatok fognak szerepelni, hogy melyik tanár mit tanít. Amennyiben létrehoztuk a „szakok” táblát, akkor a harmadik, „tanit” táblában célszerű módosítani. A tanár kódja mellett nem a szak megnevezése, hanem a „szakok” táblabeli azonosítója szerepeljen. Így a harmadik táblánk: tanit(sz_ID,tanar_ID), ahol sz_ID a szak azonosítója, és a tanar_ID pedig a tanár azonosítója. A két mező együtt alkotja a tábla kulcsát. Vegyük észre, hogy nincs szükségünk itt más adatra, hisz ennek a táblának a szerepe az, hogy kapcsolatot teremtsen a „tanar” tábla és a „szakok” tábla között. Hozzuk létre a táblákat: Lássuk a „szakok” táblát:
Majd a „tanit” tábla következhet:
30
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Elemezzük a táblák közötti kapcsolatokat! A „tanar” tábla a „tanit” táblával egy a többhöz (1:N) kapcsolatban áll. Egy tanár kódja annyiszor fordul elő a „tanit” táblában, ahány szakja van. A „szakok” tábla a „tanit” táblával szintén egy a többhöz (1:M) kapcsolatban van. Egy szak kódja annyiszor fordul elő a „tanit” táblában, ahány tanár taníthatja jelenleg az iskolában. Így a „tanar” és a „szakok” táblák között, pedig közvetve több a többhöz (N:M) kapcsolat alakul ki. Ez fedi is a valóságot, hiszen egy tanárnak több szakja is lehet. Másrészt egy iskolában egy adott szakhoz több tanárt is alkalmaznak. Tehát a „tanit” tábla valósítja meg a több a többhöz kapcsolatot, azaz úgynevezett kapcsolótábla szerepet játszik.. Kapcsolatok kialakítása: Menüből: az Eszközök/Kapcsolatok… választás után az alábbi párbeszédablak jelenik meg.
A táblák kiválasztása után, a kapcsolatok automatikusan létre jönnek abban az esetben, ha a kapcsoló mezők neve megegyezik a táblákban. Ez természetesen nem kötelező. Viszont ha más a hivatkozási név, akkor nekünk kell a kapcsolatot megadni, kialakítani.
31
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Amennyiben mi határozzuk meg a kapcsolatot, vagy szeretnénk a kapcsolat típusát finomítani, a következőt kell tennünk. Kapcsolatok menü, Kapcsolatok szerkesztése menüpontot választva egy párbeszéd panel jelenik meg:
Nézzük, milyen beállítási lehetőségeink vannak! Tábla/lekérdezés: Kiválasztható a listából, hogy melyik táblához vagy lekérdezéshez akarunk kapcsolatot szerkeszteni. Kapcsolt tábla/lekérdezés: Melyik tábla vagy lekérdezés lesz, amit kapcsolunk. Mindkettő alatti listából lehet kiválasztani a kapcsoló mezőket. A táblázatos elrendezés több sort is megenged. Így van mód több mezőből álló kapcsolat kialakítására is. Összetett kulcson alapuló kapcsolatnál használjuk ezt a lehetőséget. Hivatkozási integritás megőrzése: olyan szabályok rendszere, amelyet a kapcsolódó táblákban lévő rekordok közötti kapcsolatok érvényességének biztosítására és a kapcsolódó adatok véletlen törlésének vagy módosításának 32
Sulinet Expressz
Adatbázis-kezelés alapok
2003
megakadályozására használunk. Amennyiben bekapcsoljuk ezt a tulajdonságot, úgy az adatbázis-kezelő rendszer magára vállalja a folyamatosan ellenőrzést. Kapcsolt mezők kaszkádolt frissítése: az elsődleges táblában lévő elsődleges kulcs értékének esetleges változását automatikusan frissíti, érvényesíti az összes kapcsolódó rekordban. Azaz átírja őket az új értékre. Kapcsolt mezők kaszkádolt törlése: az elsődleges tábla rekordjának törlése a kapcsolódó rekordok törlését is eredményezi a kapcsolódó táblában. Amennyiben a szolgáltatás nincs bekapcsolva, akkor először a több-oldali táblából kell törölni a kapcsolódó rekordokat. Ezt követően törölhetjük csak az egy-oldali táblából az eredetileg törölni kívánt adatrekordot. Kapcsolat típusa: mindig az aktuális kapcsolat típusát mutatja. Illesztés típusa…: nyomógombot választva három lehetőség közül választhatunk. Értelemszerűen, az illesztési tulajdonságok megadásának megfelelően, az eredmény listában azok a rekordok vesznek részt, amelyekre igaz a kiválasztás.
Új kapcsolat kialakítása:
a kitöltés értelemszerűen történhet. Kapcsolatok kialakítását, természetesen nemcsak a menüből lehet kezdeményezni, hanem az eszközsor Kapcsolatok ikonjával. Amennyiben a kapcsolatok már látszanak akkor, ha módosítani akarunk egy kapcsolatot, egérrel is dolgozhatunk. Kétszer kattintsunk a kapcsolatot jelképező vonalra, és megkapjuk a hozzátartozó Kapcsolatok szerkesztése párbeszéd ablakot. Feladat:
Készítsünk olyan lekérdezést, ahol az eredmény listában megjelenik a tanár neve és, hogy milyen tárgyakat tanít: Válasszuk ki a Lekérdezés objektumot és az Új lekérdezést:
33
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Jelöljük ki mind a három táblát, hiszen szükségünk lesz rájuk.
Vegyük észre, hogy rögtön kialakulnak a kapcsolatok, tehát itt is érvényes, ha azonosak a mező nevek, az adatbázis-kezelő maga felépíti a kapcsolatokat. Ha mi akarjuk a kapcsolatokat felépíteni, hasonló módon kell, mint ahogy a lecke elején megtanultuk.
34
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Eredmény (tanar_tanit):
A másik fontos megjegyzés, hogy amennyiben a kapcsolatokat egyszer megadjuk az Access adatbázis-kezelő rendszernek, akkor a későbbiekben létrehozott lekérdezésekben már a táblák között ez érvényre jut. Természetesen ezt a kapcsolatrendszert lekérdezés helyi igényei szerint még azért lehet módosítani. Számított mező
Nézzük meg, hogyan lehet egy lekérdezést kibővíteni egy számított értékkel. A feladat legyen az, hogy nézzük meg, hogyan alakulna a tanárok fizetése, ha megemelnénk 25%-kal! Hozzuk létre a lekérdezést:
35
Sulinet Expressz
Adatbázis-kezelés alapok
2003
A harmadik oszlopba írjuk a műveletet, a rendszer automatikusan a Kif1 elnevezést adja, és a mező nevét szögletes zárójelbe teszi. Ha új, kifejezőbb nevet akarunk a Kif1 helyett, csak át kell írni. Arra kell vigyázni, hogy a név után a kettőspont maradjon meg. Ezzel a módszerrel bármely mező nevét, azaz ha van a címét is, barátságosabbá tudjuk tenni! A megjelenítéskor ez a szöveg fog látszódni az oszlop tetején.
36
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Eredmény (emelt_fizetes):
Ha azt akarjuk, hogy az emelt fizetésnél is jelenjen meg az Ft jelölés, akkor a lekérdezést tervező nézetében kell módosítani a megfelelő mezőtulajdonságot. Ráállunk a módosítandó mezőre, és az egér jobb gombjával előhívjuk a helyi menüt. Így a következő listát kapjuk.
37
Sulinet Expressz
Adatbázis-kezelés alapok
2003
A Tulajdonságok… választása után
Kiválasztjuk a formátumot és az eredmény máris a kívánt lesz.
Mint láthatjuk a tulajdonságoknál, nem csak a formátumot, hanem egyéb jellemzőket is be tudunk állítani.
4.2.2 Összesítő választó lekérdezés Csoportosító lekérdezés Amennyiben egy lekérdezés eredményeként azt szeretnénk tudni, hogy az iskolánkban szakonként hány tanár van, akkor ehhez csoportosítanunk kell a „tanit” tábla rekordjait. A sorokat tárgyanként csoportosítva meg kell számlálnunk, hogy egy-egy tantárgy hányszor fordul elő a csoportjában „tanit” táblában. Hozzuk létre a lekérdezést:
38
Sulinet Expressz
Adatbázis-kezelés alapok
2003
A lekérdezéshez a „tanit” táblára, valamint a szak megnevezéséhez a „szakok” táblára van szükségünk. A csoportosítás alapja a szakok tábla sz_ID mezője. Ha elkészült a lekérdezés, válasszuk a Nézet/Összesítés menüjét, vagy kattintsunk a Σ ikonra. Ezzel beállítottuk, hogy összesítő választó lekérdezést készítünk.
Vegyük észre, hogy a tervező nézetében a tábla sor alá egy új sor íródik. A sor felirata Összesítés,, és minden oszlopban megjelenik a Group by szöveg, tehát a csoportosítás az alapértelmezett tevékenység.. A legördülő listában lehet látni, hogy a csoporton belül milyen műveleteket tudunk elvégezni. A mi feladatunkhoz a megszámlálást, azaz a Count függvényt kell választani.
39
Sulinet Expressz
Adatbázis-kezelés alapok
2003
További módosítások: Az sz-ID mező az első oszlopban a csoportosítás kedvéért van elhelyezve. Itt érdemes a megjelenítést kikapcsolni. A második oszlopban szereplő sz-nev adja a kiíratáshoz a szöveget. A Group By helyes megoldást ad, bár beláthatjuk, hogy a csoportosítást már az első mező szerint elvégeztük. Az sz_ID azonos értékeinél cask azonos sz_nev értékek szerepelhetnek csak, hiszen ettől lett az sz_ID kulcstulajdonság. Amennyiben kevesebbet akarjuk dolgoztatni az adatbázis-kezelőt, akkor a csoportosító Group By helyett elég lenne a csoportban lévő egyforma nevek közül egyet. Például az elsőt kiválasztani a First függvénnyel lehet. A harmadik oszlopba a Count függvényt választjuk. Az oszlop feliratát a tanult módon barátságosabbá tehetjük. A tervező nézetben a mező sorban a kettőspont előtti részt bátran írjuk át saját elgondolásunk szerint! Eredmény (tantargy_szamlalas):
Összesítő függvények Nézzük meg, hogy milyen műveleteket tudunk elvégezni a függvények segítségével:
40
Sulinet Expressz
Függvény SUM AVG MIN MAX COUNT STDEV VAR FIRST LAST
Adatbázis-kezelés alapok
2003
Feladata A csoport összege A csoport átlaga A csoport minimuma A csoport maximuma A csoport elemeinek száma A csoport szórása A csoport varianciája Az első rekord adott mezőjének értéke Az utolsó rekord mezőjének értéke
Paraméteres lekérdezés Az eddigi lekérdezésekben mindig csak olyan feltételt tudtunk megadni, amit pontosan előre tudtunk. Tehát, ha azt akartuk, hogy a budapesti pedagógusok névlistáját kapjuk meg, akkor a feltételhez azt írtuk, hogy Like „*budapest*”. Ha egy olyan listát szeretnénk, ahol a pécsi tanárok listáját akarjuk, akkor ismét kell egy lekérdezést készítenünk és itt a feltétel, Like „*pécs*”. Láthatjuk, hogy ahány város tanárait akarjuk kiválogatni, annyi lekérdezést kell gyártani. Ezen felesleges lekérdezések készítésének a kiküszöbölésére ad lehetőséget a paraméteres lekérdezés, ami a következőt jelenti. A feltétel sorba a feltétel típusa után egy olyan változót írunk, amit itt paraméternek nevezünk, aminek nincs konstans értéke, hanem az értéket minden egyes lekérdezés indításakor adjuk meg. A szintaktika a következő: ahová eddig a konstanst írtuk oda [] –be, azaz szögletes zárójelek közé írjuk egy új változót (szöveg, a paraméter neve). Arra ügyeljünk, hogy ez a szöveg ne egyezzen meg egyetlen mezőnévvel se. Például [város neve]. Nézzük ezt a gyakorlatban.
Indítás után:
41
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Eredmény:
Tehát vegyük észre, ha a feltételben megadott kifejezés nem konstans minden ilyen esetben érdemes a paraméteres lekérdezést használni.
5. Űrlapok Akkor, amikor az adatokat írtuk fel a táblákba, vagy az eredményeket kérdeztük le, eddig olyan képernyőket használtunk, amelyek nem a legszemléletesebb módon jelenítették meg a táblákat. Ahhoz, hogy az adatbevitel vagy az adatmegjelenítés barátságosabb legyen, szükségünk van a különböző bemeneti és kimeneti (Input/Output) képernyők kialakítására.
5.1 Keresés varázsló Nézzük először, hogy hogyan tudnánk megoldani azt a problémát, amikor a tanárok szakjait írjuk fel a „tanit” táblába, honnan tudjuk, hogy melyik tanár kódhoz melyik szak kód tartozik. Ehhez azt kéne látni, hogy az egyes azonosítók mellett milyen név szerepel. A munkát az könnyítené meg, ha egy legördülő listából választhatnánk. Ehhez az Access a következő segítséget nyújtja. Válasszuk ki a tábla objektumot és itt a „tanit” táblát, majd tervező nézetben nyissuk meg. Emlékezzünk, amikor az adattípusokról beszéltünk az első leckében, említést tettünk arról, hogy a felsorolt típusok között a Keresés varázsló nem típus! Valóban ez a segédfelület nem típus, hanem egy olyan segédeszköz, amely segítségével egy 42
Sulinet Expressz
Adatbázis-kezelés alapok
2003
olyan programot írhatunk, amely egy legördülő listát rendel a kiválasztott mezőhöz. A lista tartalmát akár egy másik táblából nyerhetjük. Nézzük a megoldási folyamatot. Nyissuk meg tervező nézetben a „tanit” táblát, álljunk rá a tanar_ID mezőre, és válasszuk ki a listából a Keresés Varázslót.
43
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Kétféle programot lehet írni: • Egy másik táblából keresem az értéket. • Elkészítek egy vektort, amit feltöltjük értékekkel és az adatbevitel során innen választok az aktuális kínálatból értékeket. Ebben a feladatban, nekünk az első lehetőségre van szükségünk!
Ebben a lépésben választjuk ki azt a táblát, vagy lekérdezést, amely a kiválasztás alapja, azaz ebből készül majd a választható lista.
44
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Megadjuk annak a mezőnek, vagy mezőknek a nevét, amelyből választunk.
A következő képernyő azt a mintát mutatja, amit majd a rögzítő lát. Amennyiben a kulcs mező értékét nem rejtjük, el akkor a kapcsoló mező tartalma is látszódik. Ebben a példában a kulcsmező a tanar_ID elrejtése mellett döntöttünk, az értéke nem jelenik meg a választáskor Így nézne ki a lista, ha nem kérnénk a kulcs elrejtését. Mi azonban válasszuk az előző állapotot és rejtsük el a kulcs értékét.
45
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Azt a mezőt választjuk ki a kijelöltekből, amelyikre a későbbiek során szükségünk van. Ne feledjük, az eltárolásra kerülő érték azért a kulcs értéke kell hogy legyen, hiszen a táblák eredeti felépítésében ez szerepel. Erről a varázsló által generált program fog gondoskodni. A példában most tanar_ID kerüljön tárolásra! Amennyiben a kulcsot elrejtettük, ez a kérdés elő sem kerül, és a kulcs kerül ebben a (példánkban „tanit”) táblában automatikusan tárolásra. Természetesen a hivatkozást el kell nevezni.
46
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Használatban:
Tehát a „tanit” tábla tanar_ID kitöltésekor, egy legördülő listából tudunk választani, így egyszerűbb az adatbevitel. Természetesen a mező értéke a tanar_ID lesz, csak mi látjuk azt, amit a kulcs értéke a másik táblában („tanar”) mutat, kiválaszt! Ennek mintájára oldja meg az sz_ID mező, azaz a szaknév, lista alapján való kitölthetőségét is! Ezzel a módszerrel, már sokat tettünk annak az érdekében, hogy könnyebb legyen az adatrögzítés. De ez még mindig nem elég felhasználó-barát ahhoz, hogy könnyen folyamatosan tudjunk adatokat felírni vagy megjeleníteni, anélkül, hogy tudnánk programozni. Ehhez további segítséget ad a rendszer.
5.2 Űrlapok készítése 5.3 Űrlap varázsló Egy külön objektum szolgál, itt ahhoz hogy gyorsan egyszerű képernyőket generáljunk válasszuk az Űrlap objektum Új/Űrlap Varázsló menüt!
47
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Mint látjuk, többféleképpen lehet űrlapot készíteni, mi a segítséggel készítő lehetőséget válasszuk először. Az OK gomb megnyomása után:
A képernyő első legördülő sorából azt a táblát, vagy lekérdezést kell kiválasztani, amelyhez a képernyőt (,azaz űrlapot) akarjuk készíteni. Mi ebben a példában a „tanar” táblához fogunk elkészíteni egy beviteli (, másként Input) képernyőt. Az elérhető mezők: felsorolásban azokat a mezőket láthatjuk, amelyek a kiválasztott táblához tartoznak. A következő lépés, hogy azokat a mezőket, amelyekre szükségünk lesz, kijelöljük, majd átirányítjuk a > jellel a másik oldalra. Az átirányítás sorrendje lényeges, az űrlapon is ebben a sorrendben jelennek majd meg az adatok.
48
Sulinet Expressz
Adatbázis-kezelés alapok
2003
A tanar_Id kivételével az összes mezőt megjelenítjük. A tanar_Id-re azért nincs szükségünk, mert az automatikusan töltődik, tehát nem szükséges ebben a feladatban, hogy mi lássuk az értékét.
Ebben az ablakban tudjuk megadni, hogy az egyes mezők milyen elrendezésben jelenjenek majd meg. Nézzük meg, hogy az egyes elrendezések milyen képernyőképet eredményeznek.
49
Sulinet Expressz
Adatbázis-kezelés alapok
Oszlopos:
Táblázatos:
Adatlap:
50
2003
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Sorkizárt:
Láthatjuk, hogy többféle megjelenés között tudunk választani. Mi ebben a feladatban válasszuk az oszlopos megjelenítést!
Ebben az ablakban, különböző sablonokból választhatunk, hogy milyen háttere, betűtípusa,… legyen az űrlapnak.
51
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Az utolsó ablakban már csak a mentésről kell gondoskodnunk. Alapértelmezésben mindig annak a táblának vagy lekérdezésnek a nevét kínálja fel, amihez az űrlapot készítettük. Ha már van ilyen nevű űrlapunk, akkor sorszámot illeszt hozzá. Természetesen bármikor új nevet adhatunk za űrlapnak. A helyi menüt kérve, az átnevezés művelete is választható. A kijelöléssel, megadhatjuk, hogy rögtön az űrlapot lássuk, vagy esetleg kilépés után tovább szerkeszthessük a tervező nézetben. Az űrlap megnyitása, azaz futtatása az alábbi látványt adja:
Ha megnézzük az elkészült űrlapot, csak annyiban különbözik az eddigi megjelenéstől, hogy van egy háttér, és tudnunk kell, hogyan léphetünk egy olyan rekordra, ami még üres.
52
Sulinet Expressz
Adatbázis-kezelés alapok
2003
A léptető gombok közül, az ahol a >* található, az illeszt a táblához egy üres rekordot.
5.4 Munka a tervező nézetben Tehát ez még mindig nem nagy segítség. Ahhoz, hogy még használhatóbb legyen az űrlapunk, a szerkesztést tovább kell folytatni, úgy hogy áttérünk a tervező nézetre.
Egy bonyolult képernyőt kapunk, ami tulajdonképpen egy tervező asztal. Az űrlapfej/űrlapláb-ban lehet majd elhelyezni azokat az információkat, amiket a használat során, ha többoldalas az űrlap látni akarunk, például cím, dátum, oldalszám,… . A mezőlistából választhatunk olyan mezőket, amiket még eddig nem tettünk fel az asztalra. Az új eszközkészlet pedig arra szolgál, hogy egyszerű objektumokat tudjunk generálni programozási tudás nélkül a képernyőnkre. Módosítsuk az űrlapunkat úgy, hogy a fejlécben legyen az űrlap címe, a mezők neve legyen értelmesebb, valamint legyenek a bevitelt és a léptetéseket segítő gombok!
53
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Feladat. A megadott minta szerint nézzen ki: Később közösen elkészítjük az űrlapot. Előtte azonban használja, próbálgassa a kész űrlapot, amit a minta adatbázisban „tanar” néven talál meg az űrlapok között!.
A tervező nézete az eredménynek a következő:
A megoldás lépései: • A cím megadása előtt ahhoz, hogy írni tudjunk a fejlécbe, helyet kell csinálni. Az egérrel a fejléc és a törzs elválasztó vonalára kell mutatni, és szét kell húzni őket. • Feliratozás: minden feliratot a képernyőn objektumnak nevezzük, amihez esetleg valamilyen jelzőt
54
Sulinet Expressz
Adatbázis-kezelés alapok
2003
illesztünk. Tehát minden objektum rendelkezik az objektumokra jellemző tulajdonságokkal. Ezek az objektumok lehetnek kötöttek vagy kötetlenek. Ilyenkor az űrlapokon ezeket vezérlő elemeknek is nevezzük. Kötöttek azok, amelyeket valahonnan vesszük, tehát az alaptulajdonsággal már rendelkeznek. Ilyen a táblák vagy lekérdezések hivatkozási nevei esetén a mezők típusa, mérete,… . A cím tehát egy kötetlen elem, hisyen nem kapcsolódik az adatbázis egy mezőjéhez sem.. A feliratozáshoz a kötetlen elemet úgy tudjuk feltenni, hogy az eszközökből választjuk az Aa (Felirat) vezérlő elemet. Ilyenkor az egérrel felrajzoljuk azt az objektumot, amibe írni akarunk. Ha elkészült, az egész objektumot egérkattintással kijelöljük, majd a formázási tulajdonságokat, legegyszerűbb módon a segédablakban megadjuk. A Tulajdonságok ablak a Nézet menüből bármikor láthatóvá tehető. Ezek a tulajdonságok lehetnek igazítások, betűk méretezése, színezése,…. . Ha az objektumot el akarjuk mozdítani a tervezői felületen, akkor a Windows objektumaira jellemző módon azt egérrel el tudjuk végezni. •
Mezők nevének átírása. Vegyük észre, hogy a mezőkre való hivatkozásnál két objektum jelenik meg. Az egyik a táblában megadott név, ami itt mint kötetlen vezérlőelem van jelen. A másik objektum (más színnel) szintén névvel ellátva a tulajdonképpeni kötött vezérlőelem (a mező). A kötetlen részt bármikor átnevezhetjük, míg a kötött részhez csak formai változtatásokat rendelhetünk, ami lehet elmozdítás, nagyítás, kicsinyítés, színezés,…. . Elmozdítani úgy tudjuk őket, hogy kijelöljük az objektumokat, majd amikor a kötött és a kötetlen rész felett az egérkurzor egy tenyeret mutat, akkor egyszerre tudjuk a két objektum típust mozgatni. Ha csak az egyiket akarjuk áthelyezni, akkor a választott objektum sarkára mutatunk, és ha a kurzor egy mutató ujj lesz, akkor önállóan elmozdíthatjuk azt az elemet. • Nyomógombok. Mint észrevehetjük, a nyomógombokkal sokkal használhatóbbá tehetjük az űrlapot. A nyomógomb vagy az egyéb objektumok elhelyezése programozási tudást feltételez, de a legtöbb objektumhoz hozzá rendeltek egy eddig is már megismert segédfelületet, a „varázslót”. Amennyiben az eszközsoron a varázspálca ki van jelölve az egyes objektumok kijelölése után már csak válaszolgatni kell a kérdésekre, és a funkció generálódik. Parancsgomb választása után, a képernyő kiszemelt, üres pontjára kattintva elindul a varázsló.
55
Sulinet Expressz
Adatbázis-kezelés alapok
2003
A kategóriákból kiválasztjuk a műveletet. Az első nyomógomb az új adat felírása, ez a kategóriák között a Rekordműveletek között találhatjuk meg.
Ha az ablakot figyelmesen megnézzük, a bal oldalon megjelent az új rekordot szimbolizáló jel.
56
Sulinet Expressz
Adatbázis-kezelés alapok
2003
A következő ablakban megváltoztathatjuk a nyomógomb jelét, vagy feliratozás mellett dönthetünk. A minta feladatunkban feliratoztunk.
A következő lépés, már a vezérlő elmentése. Az objektum nevét a rendszer generálja, de mi adhatunk neki természetesen más nevet is.
57
Sulinet Expressz
Adatbázis-kezelés alapok
2003
A parancs gomb már el is készült. Hasonló módon kell a többi nyomógombot is elkészíteni. Gyakorlásként végezze el önállóan a többi parancsgomb létrehozását! Mint láttuk, az űrlap elkészítéséhez használtuk a varázslót és használtuk az űrlap tervező nézetét is. A kérdés, ha mindkettőt lehet használnom, miért nem csak az egyik eszközökkel készítem el az űrlapot? • A varázslóval, csak nagyon egyszerű képernyőt tudok készíteni • A varázslóval generált, kész, de egyszerű űrlapot, utólag egyszerűbb módosítani, mintha rögtön tervező nézetben egy üres űrlappal kezdenénk Nézzük miért:
Kiválasztjuk a Tervező nézetet, a tábla sorban hozzá írom az aktuális táblát.
58
Sulinet Expressz
Adatbázis-kezelés alapok
2003
A következő ablakban megjelenik az üres tervező asztal, ahová nekünk kell egyesével minden objektumot felírni. Ezt a folyamatot gyorsítja meg a Varázsló, hogy felkerül az összes kijelölt mező, amit utólag szükség esetén egyszerűbb elmozdítani. Az úrlapot a generálás után már csak ki kell egészíteni a kívánt részekkel.
5.5 Automatikus űrlap-előállítás Ezek az eszközök még kevesebbet kérdeznek, mint a korábban megismert úrlap varázsló. A tábla, vagy lekérdezés kiválasztása után már le is generálják az űrlapot. A képernyőkép az összes mezőt tartalmazza. Az elrendezés módja szerint van több fajtája. Új/Űrlap autóűrlap oszlopos
59
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Egy, gyors, kérdések nélküli folyamattal egyszerű képernyő generálódik az utoljára beállított stílus szerint.
Új/Űrlap autóűrlap táblázatos
Új/Űrlap autóűrlap adatlap
60
Sulinet Expressz
Adatbázis-kezelés alapok
2003
5.6 Főűrlap és segédűrlap Feladat: Készítsük űrlapot egy új tanár adatainak felírására! Az adatbevitelnél rögtön adjuk meg, hogy mit tanít! Vegyük észre, hogy ez a feladat több mint amit a korábbi mintában megoldottunk. Ott csak egy táblába kellett, illetve lehetett adatot bevinni. A feladat nehézsége abban áll, hogy a „tanar” tábla mellett most a „tanit” táblát is szeretnénk kitölteni, egy képernyőn. Az eredmény a következő legyen!
61
Sulinet Expressz
Adatbázis-kezelés alapok
2003
A megoldás lépései: Űrlap Varázsló felhasználásával állítsuk elő az alapot.:
Az újdonság most következik. A táblák kiválasztásakor, amikor a „tanar” táblát és mezőit kiválasztottuk, nem lépünk tovább, hanem kiválasztjuk a „tanit” táblát is. Ebből csak a sz_ID mezőt választjuk ki, ahová majd a tanár által tanított tantárgyat (pontosabban annak kódját) fogjuk választani és elhelyezni a tanár kódjával együtt. Ne feledjük, a két tábla között kapcsolat áll fenn.. Természetesen ezt a műveletet általában csak akkor alkalmazhatjuk, ha a táblák ténylegesen össze vannak kapcsolva.
62
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Vegyük észre, hogy a varázsló egy új ablakot tesz fel, amit idáig még nem láttunk. Ez jogos, miután itt két táblát használunk, amely egymással 1:N kapcsolatban állnak. Itt most a tanár adatait választjuk a fő rendezési szempontnak. Ez fog látszani az úgynevezett főűrlapon. A kapcsolat másik részét a több-oldalt, a „tanit” tábla adatai alkotják. Mivel ezekből egy konkrét tanár esetén több adat is szerepelhet, így a „tanit”-beli adatokat külön ablakban fogjuk látni. Ezt hívják segédűrlapnak. Arról dönthetünk, hogy a segédűrlap folyamatosan látszódjék, vagy nyomógombra kattintással váljék láthatóvá (csatolás). A feladatban az előzőt „Űrlap segédűrlappal” lehetőséget válasszuk! A továbbiakban, már ugyanazokra a kérdésekre kell válaszolnunk, amikkel már találkoztunk. Az utolsó ablakban két fájlnevet kell megadnunk. Ennek oka, hogy a mentés két külön fájlba történik. Hiszen az egyik fájl a főűrlap lesz, ahol az egy-oldal adatai lesznek megjelenítve. A másik fájlba a segédűrlap kerül, ahol a több-oldal adatai látszódnak majd.
63
Sulinet Expressz
Adatbázis-kezelés alapok
2003
A varázsló futtatásakor, ha nem a segédűrlapot választjuk, hanem a csatolt űrlapot, mielőtt a formai részt határoznánk meg, megmutatja, hogy hogyan is fog kinézni az űrlap.
A főűrlapra egy nyomógomb kerül, és ha az N-részt (több-oldal) akarjuk látni, akkor egy külön ablakban tehetjük azt meg.
64
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Feladat. Amikor elkészült a varázslóval az űrlap, térjünk át a tervező nézetre és alkalmazzuk a mintában tanultakat a vezérlő elemek felvételére és a formai kialakításokra! Jó munkát!
6. Jelentések Akkor, amikor az eredményeket szeretnénk megjeleníteni, nem mindig a képernyőn akarjuk őket látni. Ha az űrlapokat nyomtatjuk ki nem biztos, hogy minden esetben szemléletes eredményhez jutunk. Ahhoz, hogy nyomtatásban is jól lássuk a lekérdezéseink, vagy tábláink eredményeit, úgynevezett jelentéseket kell készítenünk.
6.1 Jelentések készítése Jelentések készítése a Jelentések/Új menüből Itt is, mint az űrlapnál, válasszuk a Jelentés Varázsló-t. Az űrlaphoz hasonlóan, az első lépések ugyanazok lesznek.
65
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Feladat. Egy olyan listát akarunk készíteni, ahol szerepel a pedagógus szakja, a neve és a fizetése. Ehhez két táblára van szükségünk. A „tanar” és a „tanit” tábla tartalmazza a kívánt adatokat. A három mező a tanár neve, fizetése és a szak azonosítója.
A következő ablakban jelöljük ki, hogy hogyan jelenjenek meg az adatok:
Nézzük, mit mutat a További információt kérek nyomógomb:
66
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Mint látjuk, segítség a megjelenítésekhez, a további információkhoz kapcsoljon át az adatbázishoz és olvassa el a leírtakat!
Ha a feladatunk az lenne, hogy tantárgyi csoportonként jelenjenek meg a tanárok neve és fizetése, ezeket a paramétereket is beállíthatjuk. Ilyenkor csoportosító jelentést készítünk.
67
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Ha azt akarjuk, hogy az eredmény valamelyik mezője szerint rendezve legyen, akkor a következő ablakban ezt is beállíthatjuk.
A következő ablakban rendelhetünk a listához szerkezetet és álló vagy fekvő helyzetet, azaz laptájolást.
68
Sulinet Expressz
Adatbázis-kezelés alapok
Ebben az ablakban rendelhetünk a listához előre elkészített sablont,
Mentés az űrlaphoz hasonlóan történik.
69
2003
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Az eredmény:
6.2 A jelentés tervező nézete Vegyük észre, hogy itt is mint az űrlapnál a varázslóval elkészített jelentés még némi módosításra szorul. Ilyenkor itt is a tervező nézettel folytatjuk.A vezérlőelemeket itt is át tudjuk írni, és formai és egyéb tulajdonságokat tudunk hozzájuk rendelni.
70
Sulinet Expressz
Adatbázis-kezelés alapok
2003
A változtatásokhoz, ugyanazt a módszer alkalmazzuk, amit az űrlapoknál megismertünk.
71
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Vegyük észre, az oldallábba bekerült egy függvény, ez a függvény a napi dátumot fogja mutatni, ha nincs rá szükség, ki lehet törölni. Eredmény a következő („tanit” jelentés):
6.3 Csoportosító összegfokozatos jelentés Most a feladatot, módosítsuk úgy, hogy csak egyszer jelenjen meg a tantárgy, majd alatta a nevek és a fizetések. A jelentésben szakonként összegződjenek a fizetések!A kezdeti lépések megegyeznek az előzővel, a változás abban az ablakban történik, ahol a csoportszinteket tudjuk beállítani.
72
Sulinet Expressz
Adatbázis-kezelés alapok
73
2003
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Ennél a feladatnál, a szak az elsődleges csoport szint, nézzük hogy hogyan tudjuk finomítani és újabb definíciókat adni az egyes csoportokhoz. Válasszuk a Csoport beállítások… gombot. A választható lehetőségek alapvetően a csoportképzésben résztvevő mező adattípusától függnek. Más listát kapunk szöveg, dátum vagy szám típusú adat esetén. Példánkban az egész számokat intervallumonként lehetne még csoportosítani.
A korábbiakhoz hasonlóan, rendezési szempontokat is megadhatunk. A következő lépésben, miután a feladat úgy szól, hogy szakonként összegezzünk, kiválasztjuk az Összesítési beállítások… gombot.
74
Sulinet Expressz
Adatbázis-kezelés alapok
2003
A Sum jelölő négyzetet bejelöljük, majd miután a teljes összegre is kíváncsiak vagyunk a Megjelenítésnél a Törzs és Összesítést is bejelöljük. A választható statisztikák összeg (Sum), átlag (Avg), minimum (Min), és maximum (Max). képzése.
Az elrendezés beállítása a korábbihoz hasonlóan történik:
75
Sulinet Expressz
Adatbázis-kezelés alapok
2003
A következő lépésben a jelentés stílusát választhatjuk meg.
Feladat. Állítsunk elő több jelentést a különböző lehetőségek kipróbálására! Jó munkát!
Ha végig nézzük az ablakokat látható, hogy ugyan azokat a lépéseket végezzük el mint az elöző feladatnál. Az eredmény:
76
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Látható, hogy a csoportok alatt összegzés látható és az oldal végösszege. Természetesen a külseje némi javításra szorul. Vegyük a tervező nézetet.
77
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Próbáljuk meg értelmezni a tervező asztalt. Jelentésfej: itt tudjuk megadni a teljes jelentés címét, ha több oldalas, amit ide írunk az minden oldalon meg fog jelenni. Jelentésláb: mint a jelentés fej, ugyan az a lap alján. Oldalfej: az ebbe a sorba került vezérlők a fejlécet definiáljak Sz_Id fejléc: miután különböző csoportokat tudunk kialakítani, ez a szint az tárgy csoport szintje. Ha újabb és újabb csoportokat szeretnénk természetesen lehet új szinteket beszúrni. Ezt ebből a pozícióból az egér jobb gomb és a Rendezés és csoportosítás választással.
Értelem szerűen kialakítom az új szinteket, vagy módosítom a már meglévőket. A Sum sorban követhető a művelet végrehajtása, elsősorban ezek a sorok szorulnak megjelenítési finomításokra.
78
Sulinet Expressz
Adatbázis-kezelés alapok
Eredmény („tanit1” jelentés):
79
2003
Sulinet Expressz
Adatbázis-kezelés alapok
2003
6.4 Jelentések automatikus generálása Nézzük a jelentés készítésének egyéb lehetőségeit: • Tervező nézet: ugyan úgy mint az űrlapnál, minden paramétert a jelentés készítőjének kell megadni, tehát lassabb, nehézkesebb a munka. • AutoJelentés oszlopos:
80
Sulinet Expressz
•
Adatbázis-kezelés alapok
AutoJelentés táblázatos:
81
2003
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Feladat. Készítse el önállóan a különböző fajtájú autójelentéseket! Jó munkát!
7. További lehetőségek 7.1 Kereszttáblás lekérdezés Egy autószalonban kimutatást akarnak készíteni arról, hogy a munkatársak milyen hatékonyan dolgoznak. A vezető szeretne egy olyan „táblázatot” látni, amelyben havonta és dolgozónként látszódik az eladott autók száma. A következő ábrán ez látható:
Az első oszlopban a hónapok nevét találjuk, majd a többi oszlop fejlécét a dolgozók nevei adják. A táblázat egyes cellái azt a darabszámot tartalmazzák, ahány autót eladott a munkatárs az adott hónapban. Megoldás:
82
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Hozzuk létre a szükséges táblákat a tanult módon:
Töltsük fel a táblákat adatokkal. Általában, ha egy lekérdezés két szempont szerinti összesítő statisztikát állít elő, akkor úgy nevezzük, hogy kereszttáblás lekérdezés. Ez, akárcsak a korábban látott csoportosító lekérdezés, különböző statisztikai számítások elvégzését támogatja. A különbség abban áll, hogy most kétdimenziós elrendezésben, a két szempont szerinti bontásban látjuk a számított adatokat.
83
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Lekérdezés/Új Tervező nézet választásával kezdünk. (A megnyíló Tábla hozzáadása ablakot átmenetileg zárjuk be.)
A lekérdezés menüből a Kereszttáblás lekérdezést kell választani. Majd a Lekérdezés/Tábla hozzáadása… menüpontra kinyíló ablakban a szokásos módon kiválasztjuk a szükséges táblákat .
Vegyük észre, hogy a rácsháló magyarázó oszlopába két új sor került. Az Összesítés és a Kereszttábla.
84
Sulinet Expressz
Adatbázis-kezelés alapok
2003
A kereszttábla sorában kell kiválasztanunk, hogy melyik mező tartalma legyen soronként és melyik oszloponként az eredmény felirata, majd a harmadik mezőben a szükséges statisztikai műveletet adjuk meg.
Az eredmény (kereszt_tabla lekérdezés):
85
Sulinet Expressz
Adatbázis-kezelés alapok
2003
7.2 Táblakészítő lekérdezés Már léteznek táblázataink, lekérdezéseink. Szeretnénk ezek felhasználásával egy új táblát előállítani. A megoldáshoz ismét (az Access szóhasználatában) „lekérdezést” kell készíteni. A megoldás úgy indul, mint az előbb: Lekérdezések/Új Tervező nézet. A kiinduló adatokat most a lekérdezések közül fogjuk választani, a párbeszéd ablakban a második fülre kattintsunk! A listából a korábban elkészített lek_lozott_szul nevűt válasszuk, amely egy adott időintervallumban születet tanárok adatait fogja kikeresni.
A kiválasztott tábla, táblák vagy lekérdezések után a menüből a Lekérdezés/Táblakészítő lekérdezés… segítségével átállítjuk a lekérdezés típusát.
86
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Megadjuk az új tábla nevét, és ha nem az aktuális adatbázisban akarunk táblát készíteni, akkor a másik adatbázis nevét is.
A következő lépésben az eredménybe, azaz az új táblába szánt mezőket, illetve a rekordokra szűrési feltételeket kell megadni. A példában csak a nevet és születési időt kívánjuk átemelni. A rekordok közül már nem kívánunk válogatni, így feltételt nem is adtunk meg. A tervezői rács kitöltése tehát a szokásos módon történik. A beállítások után már csak futtatni kell a programunkat.
87
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Nézzük meg a munkánk eredményét! A Táblák objektum típust választva láthatjuk, hogy létrejött az „uj_tabla” nevű tábla.. Az új tábla szerkezete itt látható.
A táblába az adatok is bekerültek, az Adatlap nézet megmutatja az átemelt adatokat, amelyek már tárolásra is kerültek..
7.3 Hozzáfűző lekérdezés Ha van több táblánk, és bizonyos adatokat szeretnénk az egyik táblából a másikhoz hozzáilleszteni, azaz átmásolni, akkor válasszuk ezt a fajta „lekérdezést”. Feladat, másoljuk át a tanárok neveit az eladó táblába. A megoldás eleje már szokásosnak mondható . Lekérdezések/Új Tervező nézet: Az első lépésben a forrásadatokat tartalmazó táblát kell kiválasztani. Példánkban ez a „tanar” tábla.
88
Sulinet Expressz
Adatbázis-kezelés alapok
89
2003
Sulinet Expressz
Adatbázis-kezelés alapok
2003
A forrás kiválasztása után a Lekérdezés/Hozzáfűző lekérdezés… menüpontot választjuk. A Hozzáfűzés ablakban a célt, azaz a befogadó táblát választjuk ki, ahová az adatokat másolni akarjuk. Példánkban ez az „elado” tábla.
A következő lépésben megadjuk, hogy mely mezőket, melyik mezőhöz szeretnénk illeszteni. Példánkban a „tanar” tábla „t_nev” mezőjének tartalmát szeretnénk átmásolni az „elado” tábla „e_neve” mezőjébe. Mivel a forrástábla sorai közül nem akarunk válogatni, ezért a feltétel sorba nem tettünk semmit. Futtassuk a lekérdezést! A tanárok száma valóban ennyi volt, ezek kerülnek majd átmásolásra.
90
Sulinet Expressz
Adatbázis-kezelés alapok
2003
A lekérdezést „hozzafuzes” mentettük el. Az ellenőrzést a táblák tartalmának a megtekintésével végezhetjük el. Ott vannak a nevek, ahol szeretnénk!
8. Adatok Importálása, csatolása Az adatbázisunk egy zárt objektum, ami azt jelenti, ha belépünk az általunk elkészített adatbázisba, akkor csak azokat a táblákat, lekérdezéseket, és egyéb fájlokat látjuk, amiket ez az adatbázis tartalmaz. Sokszor van szükségünk arra, hogy egy másik adatbázis tartalmát felhasználjuk. Ilyenkor kell importálnunk, vagy csatolnunk. Nézzük mi a különbség a kettő között. Importálás: azt jelenti, hogy az importált fájlból egy másolat készül, amely bekerül a mi adatbázisunka is. Tehát duplázódik, helyet foglal. Másrészt a két tábla „külön életet él” a két adatbázisban. Csatolás: ilyenkor csak a címe kerül a mi adatbázisunkba, fizikailag a másik adatbázisban marad. Amennyiben változtatunk a csatolt tábla adatain, a módosítások a másik adatbázisban hajtódnak végre, ahol a tábla ténylegesen tárolva van. Természetesen a másik adatbázisból kezdeményezett javítást a mi adatbázisunkból is érzékelni fogjuk.
91
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Azt, hogy melyik módszert választjuk, az a feladat jellegéből derül ki. A munkafolyamat a következő. Bármelyik objektumtípusban állunk, elindíthatjuk a Fáj/Külső adatok átvétele… menüpontot.
A példában az importálást választottuk. A következő lépésben kiválasztjuk a forrás adatokat tartalmazó adatbázist.
92
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Mi a MINOSEG táblát választottuk ki, és ez a tábla átkerült az iskola adatbázisba.
Ha ugyan ezt a folyamatot végig csináljuk, de a csatolást választjuk, szintén megjelenik a kiválasztott tábla neve, de egy nyíl jelöli hogy ez csatolt objektum. Csatoltuk az IRODA táblát. Felhívom a figyelmüket, hogy ezt a táblát az iskola adatbázisban nem fogják megtalálni, miután a csatolt tábla mindig a helyén marad!
Eredmény (Táblák objektumtípus tartalma)
93
Sulinet Expressz
Adatbázis-kezelés alapok
2003
Látható, hogy a nyíllal megjelölt IRODA a csatolt, míg a MINOSEG tábla ugyanúgy látszódik és viselkedik, mint a többi korábbi táblánk.
8.1 Adatok exportálása Ha az adatbázisunkban használt táblákat akarjuk egy másik alkalmazásban használni, akkor módunkban áll a tábla tartalmát kimásolni. Ilyenkor exportálásról beszélünk. A keletkező fájl formátuma sokféle lehet, az igény szerint választjuk meg. A példánkban a MINOSEG táblát jelöltük meg előkészítésként az első lépésben. A Fájl/ Exportálás… menüpont hatására egy párbeszédablak nyílik meg.
Ki kell választanunk azt a formátumot, amelyben menteni akarunk. Látható, hogy akár egy táblázatkezelő program (Excel) formátumában is ki lehet a tábla adatait másolni az adatbázisunkból.
94
Sulinet Expressz
Adatbázis-kezelés alapok
2003
9. Indítási beállítások Ahhoz, hogy az elkészített adatbázis könnyen használható legyen szükséges, hogy az indítási paramétereket átalakítsuk. Ezt az Eszközök/Indítás… menünél tehetjük meg.
95