ADATBÁZIS ELEMEI, ADATTÍPUSOK, ADATBÁZISKEZELŐ FÜGGVÉNYEK OKTATÁSA. SQL NYELV OKTATÁSA. készült a PTE TTK Informatika oktatása II. kurzus teljesítésére
PTE TTK Czimmermann Gergely MA matematika – informatika tanár szakos hallgató 2017
Tartalomjegyzék 1.
Elméleti ismeretek .............................................................................................................. 2 1.1.
1.1.1.
Adatbázis típusok ................................................................................................. 2
1.1.2.
Adatbázis-kezelők alkalmazási területei .............................................................. 2
1.2.
A relációs adatbázis elemei .................................................................................. 3
1.2.2.
A táblák tartalmi jelentése .................................................................................... 3
1.2.3.
Alapvető mezőtípusok, jellemzők ........................................................................ 3
1.2.4.
Mezőnév ............................................................................................................... 4
1.2.5.
Adattípus .............................................................................................................. 4
1.2.6.
Mezőtulajdonságok (Field Properties) ................................................................. 6
1.2.7.
Adatmegjelenítési beállítások - a cél meghatározása ........................................... 6
Lekérdezések ............................................................................................................... 8
1.3.1.
Lekérdezések használata ...................................................................................... 8
1.3.2.
Lekérdezések fajtái ............................................................................................... 8
1.3.3.
Lekérdezés létrehozása ......................................................................................... 9
Általános jellemzés .......................................................................................................... 10 2.1.
3.
Adatbázisok szerkezete................................................................................................ 3
1.2.1.
1.3.
2.
Az adatbázis fogalma................................................................................................... 2
Az Access indításának módjai: .................................................................................. 10
Relációsémák létrehozása, módosítása............................................................................. 12 3.1.
Elsődleges kulcs létrehozása ..................................................................................... 13
4.
Kapcsolatok (külső kulcsok) kezelése .............................................................................. 14
5.
Indexelés........................................................................................................................... 15
6.
Adatok aktualizálása ........................................................................................................ 15
7.
Űrlap létrehozása .............................................................................................................. 15
8.
Lekérdezések .................................................................................................................... 17
9.
8.1.
Lekérdezés készítése tervező nézetben...................................................................... 17
8.2.
SQL lekérdezés .......................................................................................................... 18
Jelentések ......................................................................................................................... 19 9.1.
Jelentés módosítása.................................................................................................... 19
1. Elméleti ismeretek 1.1.
Az adatbázis fogalma
Az adatbázis logikailag összefüggő információ-, vagy adatgyűjtemény, amelyet úgynevezett adatmodellel írunk le. Az adatmodell írja le az adatbázis szerkezetét. A szerkezet tartalmazza az adatok típusát, kapcsolatait, sőt az adatokon végrehajtható alapműveleteket is. 1.1.1.
Adatbázis típusok
Hierarchikus modell: Az adatokat faszerkezetben ábrázolja. Jellemzője, hogy egy gyökér adatból kiindulva elérhető az összes adat. Ilyen a DOS könyvtárszerkezete is. Egy szülőhöz tartozhat több gyerek, de mindegyik gyereknek csak egy szülője lehet. Hálós modell: A hierarchikus szerkezet továbbfejlesztett változata. Egy szülőhöz tartozhat több gyerek, de egy gyereknek is lehet több szülője. Nagygépes adatbázis-kezelők használják ezt a szerkezetet. Relációs modell: Az adatokat egymással kapcsolatban álló táblázatok rendszerében ábrázolja. Ahhoz, hogy egy táblázatot relációnak lehessen tekinteni, a következő feltételeket kell teljesíteni. •
nem lehet két egyforma sora,
•
minden oszlopnak egyedi neve van,
•
a sorok és oszlopok sorrendje tetszőleges.
1.1.2.
Adatbázis-kezelők alkalmazási területei
Olyan helyeken alkalmazzuk, ahol •
Nagy mennyiségű adatot kell tárolni,
•
az adatok kötött szerkezetűek és
• a tárolt adatokkal különböző műveleteket kell végezni. Bővíteni, módosítani, törölni vagy valamilyen szempont szerint válogatni, keresni, sorba rendezni, különböző célú lekérdezéseket, listákat készíteni. Az adatbázis-kezelő programok szolgálnak arra, hogy kapcsolatot hozzanak létre az alkalmazások és az adatbázisok között.
1.2.
Adatbázisok szerkezete
1.2.1.
A relációs adatbázis elemei
A relációs adatbázis egymással logikai kapcsolatban álló táblák rendszere. Tábla, reláció vagy egyedtípus. Adott témára vonatkozó információk gyűjteménye. Sorokból, rekordokból, illetve oszlopokból, mezőkből áll. A sorok a reláció egyedeinek adatait tartalmazzák. Az oszlopok az egyedeket leíró tulajdonságok. A táblák tervezésénél fontos szempont, hogy minden tábla csak egy témára vonatkozó információt tartalmazzon, és egy információ ne szerepeljen két táblában. Így elérhetjük, hogy minden adatot csak egyszer tároljunk. Tulajdonság vagy mező. A tábla oszlopainak fejléce a tulajdonság vagy mező neve. Az adott témakört leíró tábla egyedeinek jellemző adatait, tulajdonságait tartalmazza. Elsődleges kulcs. A tábla adatainak, rekordjainak egyértelmű azonosítására szolgáló tulajdonság (esetleg több tulajdonság együtt). Kapcsolat. Két adattábla logikailag összefüggő adatainak egymáshoz rendelését teszi lehetővé. Megvalósítására egy mindkét táblában meglévő közös mező, a kapcsolómező szolgál. Az azonos mezőtartalom alapján a különböző táblákban lévő információkat együtt láthatjuk és kezelhetjük. Leggyakrabban az egyik táblában szereplő kapcsolómező az elsődleges kulcs, amely minden rekord szempontjából egyedi rekordazonosítást tesz lehetővé, a másik táblában pedig ez a külső vagy idegen kulcs. 1.2.2.
A táblák tartalmi jelentése
A tábláknak neve van, ez fejezi ki, hogy a benne foglalt adatok a valós világ mely objektumát írják le. A táblázatnak az oszlopai jelentik azokat az adattípusokat, amelyeket összefüggésbe hozunk egymással, mégpedig azon az alapon, hogy ezek mindig ugyanazt az objektumot jellemzik. Ezek azon halmazoknak az elemei, amelyek között a relációk összefüggést teremtenek. A táblázat soraiban helyezkednek el a konkrét adatértékek, vagyis a konkrét objektumokra jellemző adatok 1.2.3.
Alapvető mezőtípusok, jellemzők
Mint már tapasztaltuk, az adattáblát a benne lévő oszlopok, tulajdonságok, másképpen mezők határozzák meg. Egy táblát tehát a mezők definiálásával állítunk elő. A mezőket nevükkel és a bennük lévő adatok típusával definiáljuk. A típus legtöbbször meghatározza a mező hosszát is. A definíciót a tartalomra vonatkozó magyarázó megjegyzéssel, leírással is kiegészíthetjük, s különböző mezőtulajdonságokat is beállíthatunk.
1.2.4.
Mezőnév
A mezőnév, többnyire az oszlop fejléce, arra szolgál, hogy azonosítsa azt az adattulajdonságot, amelyet az oszlop tartalmaz. Igyekezzünk tehát a tartalmára utaló nevet adni. Megkötések, szabályok (MS ACCES esetén): •
a mezőnév maximum 64 karakter lehet,
• tartalmazhat bármilyen betű-, szám-, szóköz- és speciális karakterkombinációt, de nem tartalmazhat pontot (.), felkiáltójelet (!), általában vesszőt (,) és szögletes zárójelet ([]) •
nem kezdődhet szóközzel,
•
nem tartalmazhat irányítókaraktereket (0-tól 31-ig az ASCII értékek).
1.2.5.
Adattípus
A mezőben tárolt adatok tartalma határozza meg a mezőtípust. Legtöbbször szöveget vagy számot tárolunk adatbázisunkban, de egyes adatbázis-kezelő programok ennél finomabb típus definíciót is lehetővé tesznek. Szöveg (Text) A leggyakrabban használt adattípus, betűt, számot, írásjelet, bármilyen nyomtatható karaktert tartalmazhat. Az adatok ASCII kódban tárolódnak, vagyis egy karakter 1 bájt helyet foglal. A mező maximális hossza 255 bájt. Amennyiben nem adunk meg mezőhosszt, az alapbeállítás szerinti hossz 50. Fontos, hogy a szövegben számok is lehetnek. Mikor használjunk szöveg- és mikor számtípust? Ha a mezőben betű és szám is előfordul, mint például az útlevélszámban, vagy az autók rendszámában, természetesen szöveg lesz a megfelelő típus. Milyen típusú legyen azonban a telefonszám vagy az irányítószám mezője? Mivel ezekkel a számokkal biztosan nem fogunk számolni, vagyis pontosan úgy használjuk, mint más szövegeket, általában szöveg típusúnak definiáljuk. Feljegyzés (Memo) Mint láttuk, a szöveg típusú mezőbe legfeljebb 255 karakter hosszúságú szöveget írhatunk, ami legtöbbször elég is. Néha azonban ennél többre lenne szükség. A feljegyzéstípus 255 karakternél hosszabb vagy változó hosszúságú és tartalmú szövegek tárolását teszi lehetővé. A mező maximális hossza 64 kilobájt. Mivel a feljegyzés szövege nem az adattáblában, hanem egy segédfájlban tárolódik, a mező hosszát nem kell megadnunk.
Szám (Number) Adattáblánkban szövegeken kívül leggyakrabban számokat tárolunk. Ezeket akkor használjuk, ha a számokkal számolni is akarunk. A számtípus tehát matematikai számításokban használható számok tárolására szolgál. A felhasználási igény szerint a számok lehetnek kisebb vagy nagyobb egész számok, de lehetnek törtszámok is. Az altípusok a következők. • Bájt (byte). Pozitív egész számok tárolására használhatjuk. A szám 0 és 255 közötti értéket vehet fel. A mező hossza 1 bájt. • Egész (Integer). Pozitív és negatív egész számok tárolására használhatjuk. A szám értéke -32 768 és +32 767 között lehet. A mező hossza 2 bájt. • Hosszú egész (Long integer). Szintén pozitív és negatív egész számok tárolására használhatjuk. A szám értéke -2,14*109 és +2,14*109 között lehet. A mező hossza 4 bájt. • Egyszeres (Simple). Pozitív és negatív egész és törtszámok tárolására használhatjuk. A szám értéke plusz és mínusz 3,4*1038 között lehet. A mező hossza 4 bájt. A tizedesjegyek maximális száma 7. • Dupla (Duble). Nagy értékű vagy nagy pontosságú pozitív és negatív egész és törtszámok tárolására használhatjuk. A szám értéke plusz és mínusz 1,8*10308 között lehet. A mező hossza 8 bájt. A tizedesjegyek maximális száma 15. Pénznem (Currency) Pénzértékek és egyéb számadatok tárolására használhatjuk, ahol a szám pozitív és negatív egész és törtérték lehet. Maximum 15 egész és 4 tizedesjegyet tartalmaz. A mező hossza 8 bájt. Számláló (AutoNumber) A tábla rekordjainak egyedi azonosítására szolgál. Akkor használjuk, amikor az egyedet leíró tulajdonságok között nincs az adat egyértelmű azonosítására alkalmas mező. A mező hossza 4 bájt, a tárolt szám hosszú egész típusú. Dátum/idő (Date/Time) Dátumokat és időpontokat ezzel a típussal tárolhatunk. A dátum formáját a Windows területi beállítása határozza meg. 100 és 9999 közötti évszámokhoz tartozó dátumok megadására alkalmas. Az időpont óra, perc, másodperc pontossággal adható meg. A mező pontos tartalmát a formátum mezőtulajdonságában lehet beállítani. A mező hossza 8 bájt. Igen/nem (Yes/No) Logikai értékeket lehet tárolni az adattípussal. A mező csak igen / nem (Yes/No), igaz/hamis (True/False) értéket tartalmaz. Akkor használjuk, ha az egyedről olyan tulajdonságot kell megjegyeznünk, mely azonos egy eldöntendő kérdéssel, vagyis a válasz igen vagy nem.
1.2.6.
Mezőtulajdonságok (Field Properties)
A mezőkre vonatkozóan a típuson kívül egyéb jellemzőket, tulajdonságokat is beállíthatunk. A tulajdonságok egy része függ a típustól. A legfontosabb mezőtulajdonságok a következők. • Mezőhossz beállítása szöveg- és számtípusnál. A hosszt mindig úgy kell beállítani, hogy a várható leghosszabb adat számára is elegendő legyen. Szövegtípus esetén a bájtszámot kell beírni, szám típusnál az előzőekben ismertetett altípus kiválasztásával (bájt, egész stb.) kell a hosszt definiálni. • Kötelező adatbevitel előírása, hogy új rekord feltöltésekor ne maradhasson üresen fontos adatot tartalmazó mező. • Formai előírások, az adatmegjelenítésre vonatkozólag, melyek a bevitt adatok azonos formájú tárolását szolgálják. • Adatbeviteli szabályok ellenőrzik a bevitt adatokat, csökkentve ezzel az adatrögzítési hibák mennyiségét. • Alapértelmezett érték beállítása. Azzal kapcsolatos, hogy új rekord hozzáadásakor a mező nem üres, hanem tartalmazza azt az értéket, amely várhatóan a leggyakrabban kerül a mezőbe. Befizetési dátumnál például feltehetően az aznapi dátumot, kell a mezőbe vinni. Ha ez az alapértelmezett érték, nem kell begépelni, vagyis gyorsabb lesz az adatbevitel. •
Cím beírása, mely a mezőnévnél beszédesebb oszlopfejléc megadását teszi lehetővé.
• Index. Mezőtulajdonságként állíthatjuk be azt is, hogy egy mezőhöz kívánjuk-e index készítését. 1.2.7.
Adatmegjelenítési beállítások - a cél meghatározása
Meg kell fogalmazni, milyen információkhoz akarunk jutni az adatbázis adataiból. Ebből össze tudjuk gyűjteni az adatbázisban az adatokat, illetve az adatok jellemzőit. Beszélni kell mindazokkal, akik használni fogják az adatbázist. Mondják el, milyen kérdésekre szeretnének választ kapni. Gyűjtsük össze azokat az űrlapokat és jelentéseket, amelyeket jelenleg használnak. Mindezen információk segítenek adatbázisunk megtervezésében. Az adatbázis tábláinak definiálása Ez a tervezés egyik legnehezebb és legkritikusabb része, hiszen az adatbázis adataiból nyerni kívánt nyomtatott listák, valamint a kérdéseinkre választ adó kitöltött űrlapok nem feltétlenül határozzák meg az adatok forrásául szolgáló táblák szerkezetét. Segítenek annak meghatározásában, mit kívánunk tudni, de azt nem mondják meg, milyen szerkezetű táblákat érdemes létrehozni. Az adattábla mezőinek meghatározása Az adattáblát a benne lévő mezők alkotják. A mezők a tábla által meghatározott egyed jellemző adatait, tulajdonságait tárolják. A tábla minden sora azonos jellemzőket tárol. Elsődleges kulcs definiálása A relációs adatbázis-kezelő rendszerek fő erőssége, hogy gyorsan lehet a tárolt információt visszakeresni, illetve a több különböző táblában tárolt információkat egyesíteni. Ezt akkor lehet megtenni, ha minden táblában egy mező vagy több mező van együtt, mely egyértelműen meghatározza a tábla egy-egy rekordját. Az adattáblának ezt az egyedi azonosítóját elsődleges kulcsnak hívjuk.
Tervezéskor gondoskodnunk kell arról, hogy minden táblának legyen elsődleges kulcsa; nagyon gyakran egy egyedi azonosítószám Táblák közötti kapcsolatok meghatározása Tervezéskor kell eldöntenünk, mely táblák adatait akarjuk később úgy együtt látni, mintha egyetlen táblánk lenne. Mely táblák tartalmaznak egymással összefüggő adatokat. A kapcsolat mindig két táblát köt össze, és a sok kettős kapcsolatból kialakul egy kapcsolatrendszer. A kapcsolat létrehozásához mindkét táblának tartalmaznia kell egy, azonos adatokkal feltöltött mezőt. A terv finomítása Amint láthattuk, a tervezés eddigi lépései még függetlenek attól, melyik relációs adatbáziskezelő programot fogjuk használni. Az adatbázistáblák mezőinek pontos leírása azonban már függ a felhasználni kívánt szoftvertől, így ezt még tovább kell finomítani. Az elvi tervezés befejezése után kezdjük el az adatbázis fizikai létrehozását. Ezzel azonban a tervezés nem fejeződött be. Munka közben sok olyan dolgot veszünk észre, ami az adatbázis apró módosításával kényelmesebb, szebb vagy biztonságosabb kezelést eredményezne. Ezeket a módosításokat, finomításokat folyamatosan végezzük mind a terven, mind a megvalósított rendszeren.
1.3.
Lekérdezések
1.3.1.
Lekérdezések használata
A lekérdezések megfogalmazásában az alábbiakra van lehetőségünk: 1. Mezők kiválasztására, amikor például nem kell megjeleníteni az adattábla egy rekordját alkotó összes mezőt: tegyük fel, vevőinknek csak nevére és telefonszámára van szükségünk, a címére és egyéb adataira nem. 2. Rekordok kiválogatására, amikor csak bizonyos feltételeknek eleget tévő rekordokra vagyunk kíváncsiak. Például adott hónapban érkezett megrendelésekre. 3. Sorba rendezésre, például ha a vevők nevét alfabetikus sorrendben szeretnénk megjeleníteni. 4.
Több adattáblában tárolt adatok összeválogatására.
5. Számítási műveletek elvégzésére, vagyis egy vagy több mező alapján számított értékek megjelenítésére, illetve az összes rekord vagy egy rekordcsoport bizonyos mezőértékeinek összegzésére. 6. Adatkarbantartásra, azaz rekordok bizonyos csoportján egyidejűleg végrehajtott módosításra, törlésre, új adatok felvitelére, új adattábla létrehozására. 1.3.2.
Lekérdezések fajtái
A leggyakrabban használt lekérdezés a választó lekérdezés. Segítségével kiválogathatunk egy vagy több adattáblából adatokat a kívánt sorrendben elemzés, illetve módosítás céljából. Ha például arra vagyunk kíváncsiak a Northwind adatbázisban tárolt adatok alapján, hogy az Édességek kategóriába tartozó termékekből menynyi van raktáron, akkor két adattábla adatai közül kellene kiböngésznünk a számunkra érdekeset: a Kategóriák táblából a kategória nevét, a Termékek táblából a termék nevét és a készletmennyiséget. Ahelyett, hogy külön-külön végigpásztáznánk mindkét adattábla adatait - amelyek esetleg számunkra nem fontos adatokat is tartalmaznak -, létrehozhatunk egy lekérdezést, amely kizárólag a nekünk szükséges adatokat jeleníti meg. A lekérdezés tehát a kérdés megfogalmazását, a válogatás meghatározását jelenti. A válogatott adatok megjelenítéséhez a lekérdezést (ez nem más, mint egy program) le kell futtatni. Az eredmény a képernyőn megjelenő adattábla, mely a forrás adatbázisból az éppen aktuális adatokat mutatja ugyanolyan formában, mint amit már megismertünk az adattáblák megjelenítésekor. A lekérdezés eredménye tehát a pillanatnyilag az adatbázisban tárolt adatokból kiszűrt és sorrendbe állított rekordok gyűjteménye. Ez azt jelenti, hogy ha később adattábláinkat módosítjuk - újabb rekordokat veszünk fel, megváltoztatunk néhány tárolt adatot, kitörlünk rekordokat -, akkor ugyanazt a lekérdezést újból lefuttatva más eredményt kapunk.
A választó lekérdezéseken kívül a Microsoft Accessben az adattáblák adatainak karbantartására akciós lekérdezéseket is készíthetünk. Ezek: Táblakészítő: új adattáblát hoz létre Frissítő: Adatmódosítást hajt végre a rekordok egy csoportján vagy az összesen Hozzáfűző: Másik adattáblából átvett adatokkal bővíti az adattáblát Törlő: Rekordokat töröl az adattáblából Különbség a választó és az akciós lekérdezések között A választó lekérdezés az adattábla adatainak megtekintésére szolgál, a tábla adatait nem változtatja meg. Az akciós lekérdezések módosítják az adattábla tartalmát. (Kivéve a táblakészítő-lekérdezés: a megnyitott adattábla adatait nem változtatja meg, de létrehoz egy új táblát) 1.3.3.
Lekérdezés létrehozása
A lekérdezéseket létrehozhatjuk a Lekérdezés varázslóval, vagy mi magunk is megtervezhetjük. Általában célszerűbb, ha mi magunk hozzuk létre a lekérdezést. Ebben az esetben •
ki kell választanunk a szükséges táblákat
•
meg kell adni a lekérdezésben használt mezőket
•
be kell állítani a feladathoz szükséges feltételeket
•
nem választó lekérdezés esetén ki kell választani az akciós lekérdezés típusát.
Az Access adatbázis-kezelő rendszer
2. Általános jellemzés Az Access a Microsoft által fejlesztett relációs adatbázis-kezelő program. Az Office programcsomag professzionális változatának része, de külön is megvásárolható. Felhasználóbarát rendszer: egyszerű alkalmazások interaktívan, programírás nélkül elkészíthetők, komolyabb alkalmazásokhoz Visual Basic programmodulok kapcsolhatók. Az Access önálló rendszer, de sokoldalúan együttműködik a Microsoft SQL Server adatbáziskezelővel. Alábbiakban az Access 2010-es verzióját mutatjuk be, de a leírtak jelentős része más változatokra is érvényes. Egy Access adatbázis az alábbi típusú objektumokat tartalmazhatja (zárójelben az angol elnevezés): – Tábla (table): relációs adattábla. – Űrlap (form): adatok aktualizálására szolgáló, egyedileg tervezhető képernyőablak. – Lekérdezés (query): interaktívan szerkesztett, vagy SQL alapú lehet. – Jelentés (report): formázott, nyomtatható lista, amely lényegében egy lekérdezés eredményét tartalmazza. – Makró (macro): programként rögzített műveletsor, amely szükség esetén Visual Basic kóddá konvertálható. – Modul (module): Visual Basic Program. Az egy adatbázishoz tartozó valamennyi tábla, űrlap, lekérdezés és jelentés egy közös, .accdb kiterjesztésű adatbázisfájlban tárolódik. A fájlban tárolt információ kódolt, csak az Access segítségével dekódolható. A fájl maximális mérete 2 GB.
2.1.
Az Access indításának módjai:
1. Start menüből, a szokásos módon. (Az induló párbeszédpanel megjelenítése az Eszközök/Beállítások/Megjelenítendő lapon kikapcsolható.) 2. Parancssorból: ekkor – többek között – az alábbi paraméterek adhatók meg: – adatbázisnév: a megadott adatbázisfájlt automatikusan megnyitja. – /nostartup: az indító párbeszédpanel nem jelenik meg. – /x makrónév: indításkor futtatja a megadott nevű makrót. (Hasonló hatást érünk el, ha létrehozunk egy AutoExec nevű makrót.) 3. Programtársítással, vagyis az .accdb vagy .mdb kiterjesztésű fájlra duplán kattintunk vagy Entert ütünk. Az indítást követően (ha nem meglévő adatbázisra kattintva indítottuk el az Accesst) megjelenik az Adatbázis ablak, melynek bal oldalán választható ki, hogy mit csinálunk. Létrehozhatunk új dokumentumokat, vagy akár megnyithatunk már meglévő adatbázisokat is, ezt a Megnyitás és Létrehozás gomb segítségével tehetjük meg.
Az új dokumentumot létrehozását vagy a megnyitást követően, az Adatbázis ablakban megjelenik a munkafelület.(1. ábra). A felső részen egy ún. menüszalagot találhatunk, melyről a különböző tevékenységeket választhatjuk ki, az ablak bal szélén a navigációs ablak látható,
ahol az adatbázisban szereplő összes Access-objektum van nyilvántartva. 1. ábra: Az Adatbázis ablak
A 2010es Office-nak fontos eleme a menüszalag (2. ábra), melyek az adatbázis ablak felső részén találhatóak. A szalag felső sorában a menükre (szalagnevekre) kattintva tudunk új
objektumokat létrehozni a Létrehozás menü segítségével, vagy a már létrehozott objektumon műveleteket végezni a Kezdőlap menüpontra kattintva. 2. ábra: Menüszalag Az egyes adatbázis-objektumok létrehozására általában három lehetőségünk van: – Automatikus: ekkor az Access automatikusan elkészíti az objektum szokásos, legcélszerűbb változatát. – Varázsló segítségével: a szokásos varázsló-technikával végigvezet a tervezési folyamaton. – Tervező nézetben: teljesen manuális tervezés, itt a rendszer valamennyi lehetősége elérhető. A rendszer kezelése többnyire kézenfekvő, ezért a továbbiakban csak a nemtriviális kérdésekre térünk ki.
3. Relációsémák létrehozása, módosítása Az adatbázisok legfontosabb elemei a táblák, hiszen ebben tároljuk adatainkat. Létrehozásához több lehetőségünk is van (séma használata, varázslóval való létrehozás), mi a tervező nézettel fogunk foglalkozni, hiszen az biztosítja a kellő szabadságot igényeink megvalósításához. Ehhez a menüszalagon a Létrehozás menüpontban válasszuk ki a Táblatervező ikont. Megjegyzés: Már meglévő relációséma módosításához a Navigációs ablakban először kiválasztjuk a táblát, majd a megjelent tábla nevére kattintunk jobb gombbal, és kiválasztjuk a Tervező nézetet. A megjelenő ablak felső részében tudjuk felsorolni a mezőinket, vigyázzunk arra, hogy egy sor egy mezőt ír le, így az első oszlop a rekordunk nevét, a második oszlopa pedig a mező típusát tartalmazza (3. ábra).
3. ábra Adattípusok beállítása Az egyes mezőkhöz az alábbi adattípusok rendelhetők: – Szöveg (text): legfeljebb 255 karakter hosszú string, alapértelmezett hosszúsága 50. – Feljegyzés (memo): legfeljebb 64000 karakternyi szöveg. Az ilyen típusú mező nem indexelhető. – Szám (number): bináris szám, altípusai: bájt, egész (2 bájt), hosszú egész (4 bájt), egyszeres lebegőpontos (4 bájt), duplapontos lebegőpontos (8 bájt). – Decimális: legfeljebb 28 jegyű decimális szám, a tizedes jegyek száma tetszőlegesen beállítható. – Dátum/idő: 100-tól 9999-ig terjedő években dátum és időpont tárolására szolgál, hossza 8 bájt. – Pénznem (currency): hossza 8 bájt. – Számláló (autoNumber): automatikusan generált egyedi sorszám, értéke egyesével növekszik új rekordok felvételénél. Hossza 4 bájt (hosszú egész). Kulcsként alkalmazható, de ne használjuk, ha van más azonosító (pl. könyv ISBN száma) vagy természetes kulcs (például {könyvszám, kivétel} ). – Igen/nem (yes/no): logikai érték.
– OLE objektum: más alkalmazásban (például Word, Excel) létrehozott objektum tárolására használható (szöveges dokumentum, kép, hang, stb.). mérete legfeljebb 1 GB, nem indexelhető. – Hiperhivatkozás: például URL cím. Hossza legfeljebb 64000 karakter, nem indexelhető. Ha minden elkészült, akkor a tervező nézetből való kilépéskor menthetjük el a sémát saját nevével együtt.
3.1.
Elsődleges kulcs létrehozása
Kiválasztjuk a kulcs sorát (a tervező ablak bal szélén), és a menüszalagon a Tervezés pont alatt Elsődleges kulcs gombjára kattintunk. Összetett (több mezőből álló) kulcs esetén Ctrl billentyűt lenyomva jelöljük ki a kívánt sorokat, majd az Elsődleges kulcs gombra kattintva hozzuk létre az összetett kulcsot. Ha nem adunk meg elsődleges kulcsot, akkor a séma megtervezése után a rendszer megkérdezi, hogy hozzon-e létre elsődleges kulcsot. Igen válasz esetén automatikusan generál egy Azonosító nevű, számláló típusú mezőt, amit kulcsként kezel.
4. Kapcsolatok (külső kulcsok) kezelése A külső kulcs feltételek megadását kapcsolatok megadásaként értelmezi a rendszer. A menüszalagon az Adatbáziseszközök/Kapcsolatok funkció kiválasztásával egy üres tervezőlapot kapunk, amely felett egy ablak jelenik meg, amelyben az adatbázis táblái jelennek meg. A tábla kijelölésével és a Hozzáadás gomb lenyomásával tudjuk a táblákat a munkafelületre importálni, s grafikusan megszerkeszthetjük a relációs adatbázissémát (4. ábra). Megjegyzés: Amennyiben később szeretnénk újabb táblát hozzáadni a kapcsolatokhoz, a menüszalagon található Tábla megjelenítése ikonnal tudjuk megtenni. Ezután minden egyes létrehozandó kapcsolatnál egérrel az egyik kapcsolandó mezőt átmozgatjuk a másik kapcsolandó mezőhöz, miközben megjelenik egy felugró ablak, melyben a kapcsolat tulajdonságait állíthatjuk be (4. ábra).
4. ábra: Relációs adatbázisséma Access-ben Tényleges külső kulcs kapcsolathoz a megjelenő ablakban a Hivatkozási integritás megőrzése jelölőnégyzetet be kell pipázni, ekkor megjelenik az ábrán az "1 – " jelölés, a rendszer ellenőrzi az összekapcsolt mezők típusának egyezését, és az adatok módosításánál a továbbiakban érvénybe lép a külső kulcs feltétel ellenőrzése. Kapcsolat törlése: egérrel kijelöljük a kapcsolatot, majd jobb gombbal rákattintunk és kiválasztjuk a törlést. Elnevezések. Az Access elsődleges táblának nevezi az 1:N kapcsolatok 1-oldalán álló táblát, és illesztőtáblának az N:M kapcsolatot megvalósító táblát, és illesztésnek az összekapcsolás (join) műveletet.
5. Indexelés A navigációs ablakban kiválasztjuk a táblát, megnyitjuk a Tervező nézetet, majd a menüszalagon kiválasztjuk a Megjelenítés/Indexek pontot. A kinyíló ablakban megadjuk az index nevét, majd hozzárendeljük a mezőnevet. Alul az Indextulajdonságoknál az Egyedi mező Igenre állításával megköveteljük, hogy a táblában nem lehet két azonos indexkulcs érték. (Lényegében így lehet nem elsődleges kulcsot definiálni.) Összetett (több mezőből álló) indexkulcs esetén az első mezőnél adjuk meg az index nevét, az indexkulcs többi mezőjénél az indexnév oszlop maradjon üresen.
6. Adatok aktualizálása A navigációs ablakban kiválasztjuk a táblát, majd válasszuk ki a megjelent lap nevére kattintva az Adatlap nézetet. Ebben az esetben a táblát Excel-hez hasonlóan, táblázatként szerkeszthetjük. Módosítás közben a rendszer állandóan ellenőrzi a kulcsfeltételeket. Az üres string megadását a rendszer általában Null (definiálatlan) értéknek tekinti.
7. Űrlap létrehozása Az elkészített adatbázisunk tábláihoz készíthetünk űrlapokat, amely egyszerű és praktikus adatbeviteli felületet biztosít az adott táblához. A kész űrlap a rekordokat egyesével jeleníti meg, a rekordok közötti mozgást pedig az űrlap alatt található rekordmozgató nyilak biztosítják. Automatikus űrlap létrehozás: A navigációs ablakban jelöljük ki a táblát, végül pedig rá kell kattintanunk a Létrehozás – Űrlap menüpontra. A folyamat automatikusan létrehozza a táblázathoz megfelelő űrlapot, amelyet a későbbiekben változtatni tudnunk. Az űrlapokat változtatni nagyon egyszerűen lehet a tervező nézet segítségével. Elég csak jobb egérgombbal rákattintanunk a megnyitott űrlap fülre, majd kiválasztani a Tervező nézet-et. Megjegyzés: Az űrlapkészítéshez be kell zárnunk minden olyan táblát, melyhez űrlapot szeretnénk rendelni, különben nem engedi a program az űrlap létrehozását. Űrlap létrehozása varázslóval: A menüszalagon válasszuk ki a Létrehozás – Űrlapvarázslót, majd a felugró ablakban kövessük a varázsló javaslatait. Egyedi űrlap tervezése: mint fent, de Tervező nézet választásával. Az űrlap törzsben találhatók a mezők, melyek formázására is lehetőségünk van, például meghatározhatjuk az adatok beviteli módját.
5. ábra: Egy egyszerű űrlap
Jobb gombbal kattintsunk a kijelölt mezőre válasszuk ki a Típus megváltoztatása menüpontot, majd kattintsunk rá a kívánt beviteli módra (Beviteli mező, Címke, Listapanel, Kombi mező, stb). Amennyiben legördülő listát szeretnénk létrehozni az űrlap mezőjéhez, akkor válasszuk ki a Kombi mezőt. A kiválasztás önmagában nem lesz elég, ezért nyissuk meg a mező tulajdonságait ugyan úgy jobb gombbal a mezőre kattintva. Ezt követően megjelenik a Tulajdonságlap (6. ábra) a munkafelület jobb oldalán. A Tulajdonságlap-on a Sorforrás típusát állítsuk be a kívánt módon.
6. ábra: Tulajdonságlap Ha a Lista lehetőséget választjuk, akkor kattintsunk át a Sorforrás mezőhöz, ahol megjelenik egy “…” fül. Kattintsunk a “…” fülre, ami egy felugró ablakot eredményez, ahová egyesével új sorokban megadhatjuk a kívánt listaelemeket. Ha túl sok listánk van, akkor válasszuk ki a Tábla/lekérdezés módot. Ebben az esetben is kattintsunk át a Sorforrás mezőbe, ahol a kattintás során megjelenik egy lefele nyíl és mellette egy “…” fül. Kattintsunk a “…” fülre, ekkor a program megnyit nekünk egy lekérdezés tervező ablakot, ahol ki tudjuk választani az adott táblát, ami tartalmazza a lekérdezni kívánt adatokat, és elkészíthetjük a lekérdezést, azaz a listát. Ha ezt megtettük, akkor zárjuk be a lekérdező ablakot, majd ellenőrizzük le, hogy a Sorforrás mező kitöltődött e. Ha igen, akkor nincs más teendőnk, mint menteni az Űrlap módosításait, megnézni, hogy valóban jól működik-e a legördülő lista. Megjegyzés: Csak külső kulcsok esetén érdemes legördülő listát készítenünk. Az űrlaphoz a rendszer Visual Basic kódot generál, amely az űrlap kiválasztása után Tervező nézetben a menüsorban Kód megjelenítése paranccsal elérhető és javítható.
8. Lekérdezések Lekérdezés megadásának fő módjai: – varázslóval, – tervező nézetben, – SQL-ben. Az interaktívan előállított lekérdezésekből a rendszer szintén SQL utasítást generál, amely megtekinthető és tovább szerkeszthető. Alább zárójelben utalunk az egyes interaktív beállítások SQL megfelelőjére.
8.1.
Lekérdezés készítése tervező nézetben
A menüszalagon válasszuk ki a Létrehozás/Lekérdezéstervező ikont, ekkor kapunk egy felugró ablakot, melyben az adatbázisban lévő táblák szerepelnek. Dupla kattintással választhatjuk ki a lekérdezéshez szükséges táblákat. Ezt követően megjelenik a tervező ablak (7. ábra).
7. ábra: Lekérdezés tervezése
Beállítási lehetőségek: – A Mező és Tábla sorokban a lekérdezéshez szükséges mezőket adhatjuk meg. – A Rendezés sorban az adott mező szerinti rendezettséget írhatjuk elő (SQL: ORDER BY). – A Megjelenítés sorban jelölhető, hogy az adott mező megjelenjen-e az eredménytáblában, vagy például csak feltételek kiértékeléséhez szükséges (SQL: SELECT). – A Feltétel sorban az adott mezőre vonatkozó feltétel adható meg (SQL: WHERE). A mező nevét itt nem kell újra kiírni, feltétel lehet például „> 100”. Ügyeljünk a Null érték használatára: „= Null” helyett „is Null” írandó! A tervező ablak felső részén a jobb egérgombra megjelenő helyi menüben további lehetőségek érhetők el, a fontosabbakat alább tekintjük át. SQL nézet: a megszerkesztett lekérdezésből generált SQL utasítás megtekinthető és tetszőlegesen átírható, de ha módosítva mentjük, akkor a továbbiakban tervező nézetben már nem kezelhető. Paraméterek megadása. Aktuális értéküket a képernyőn kéri be a lekérdezés, amikor futtatjuk. Lekérdezés típusának megadása: – választó (SQL: egyszerű SELECT), – kereszttáblás (SQL: GROUP BY), – táblakészítő (az eredménytáblából új tábla létrehozása), – frissítő (SQL: UPDATE), – hozzáfűző (SQL: INSERT), – törlő (SQL: DELETE) Ha több tábla szerepel a lekérdezésben, és közöttük kapcsolat van, akkor azokat automatikusan join művelettel kapcsolja össze a rendszer. A lekérdezés végrehajtása a Navigációs ablakban a lekérdezésre való kettős kattintással, vagy Megnyitás gombbal történik.
8.2.
SQL lekérdezés
Ha eleve SQL-ben kívánjuk megadni a lekérdezést, akkor – az menüszalagon válasszuk ki a Létrehozás -> Lekérdezéstervező ikont – a megnyíló Tábla hozzáadása ablakot zárjuk be (nem adunk hozzá táblát), – a megjelenő tervező ablak felső részén jobb egérgombra feljövő helyi menüben válasszuk az SQL nézetet. A megjelenő szövegablakba beírható az SQL lekérdezés. Ha az SQL utasítás a mező- és táblanevektől különböző változót tartalmaz, akkor azt a rendszer paraméternek tekinti, és lekérdezés végrehajtásakor bekéri annak aktuális értékét. Megjegyzés: a dátum SQL-ben #hó/nap/év# formában írandó, de adatként a táblába egyszerűen év.hó.nap módon lehet írni.
9. Jelentések A jelentések segítségével adatainkat – elsősorban papíron – esztétikus formába jeleníthetjük meg, így alapját a táblák és a lekérdezések képezik. A jelentéseket is, mint ahogy eddig - minden objektumot – három módon hozhatjuk létre. - automatikusan: válasszuk ki a táblát vagy a lekérdezést, amiből szeretnénk jelentést készíteni, majd kattintsunk a menüszalag Létrehozás -> Jelentés ikonjára. Ekkor megjelenik a jelentéstervező, melyben minden információ már adott, csak a szükséges formázások vagy átalakítások elvégzése marad hátra. Tanácsos ezt a létrehozást használni. - varázsló segítségével: a menüszalag Létrehozás -> Jelentésvarázsló ikonra kattintva hozhatjuk létre. - egyedi tervezéssel: a menüszalag Létrehozás -> Üres jelentés menüpont segítségével készíthetjük el. Ennek elkészítése bonyolultabb, mint az előző kettő lehetőség, viszont saját igényeink szerint formázható.
9.1.
Jelentés módosítása
A jelentés módosításához nyissuk meg az adott jelentést, majd térjünk át Tervező nézetre (jobb gombbal kattintva a jelentés lap nevére, itt kiválasztva a Tervező nézetet). Módosítása hasonlóan történik, mint az űrlapoké, valamint a Word és Excel programokból ismert szövegformázó elemeket is használhatjuk.