Nyugat-magyarországi Egyetem Geoinformatikai Kara
Dr. Szepesné Stiftinger Mária
Informatika 10. INF10 modul
Adatbázisok kezelése
SZÉKESFEHÉRVÁR 2010
Jelen szellemi terméket a szerzői jogról szóló 1999. évi LXXVI. törvény védi. Egészének vagy részeinek másolása, felhasználás kizárólag a szerző írásos engedélyével lehetséges.
Ez a modul a TÁMOP - 4.1.2-08/1/A-2009-0027 „Tananyagfejlesztéssel a GEO-ért” projekt keretében készült. A projektet az Európai Unió és a Magyar Állam 44 706 488 Ft összegben támogatta.
Lektor: Cseri Tamás
Projektvezető: Dr. hc. Dr. Szepes András
A projekt szakmai vezetője: Dr. Mélykúti Gábor dékán
Copyright © Nyugat-magyarországi Egyetem 2010
Tartalom 10. Adatbázisok kezelése ........................................................................................................... 1 10.1 Bevezetés ................................................................................................................ 1 10.2 A relációs adatbázis-kezelők szolgáltatásai, műveletek adatbázisban .................................... 1 10.3 Az SQL nyelv bemutatása, az SQL parancsok használata. Az információszolgáltatás és az SQL nyelv kapcsolata. ...................................................................................................... 9 10.3.1 Az SQL nyelv résznyelvei: .............................................................................. 10 10.4 Döntéstámogatás adatbázis-kezelő és táblázatkezelő rendszerrel. ....................................... 19 10.5 Összefoglalás .......................................................................................................... 21
A táblázatok listája 10-1. ...................................................................................................................................... 8 10-2. Válogatási feltételek megadása ............................................................................................ 12
10. fejezet - Adatbázisok kezelése 10.1 Bevezetés Nagy tömegű adat tárolása és különféle szempontok szerinti visszakeresése nagyon gyakori ugyanakkor számos nehézséggel járó feladat. A számítógépek megjelenésével egy időben felismerték azt a tényt, hogy az ilyen feladatok megoldásában nagy segítséget nyújthatnak a gépek, s hamarosan létrejöttek az első számítógépes adatbázis-kezelők. A modulból megismeri: • Az adatbázis-kezelő rendszer fogalmát, feladatait. • Az adatbázis séma kialakításának módját, a szoftver által ismert adattípusokat • A relációs adatbázis mezőinek tulajdonságait; mikor célszerű egy adatmezőt indexelni? • A relációs adatbázis objektumait, ezek kialakításának folyamatát, feladatukat. • Az SQL fogalmát, jelentőségét, tulajdonságait és résznyelveit? Milyen célt szolgálnak a résznyelvek? • Mit értünk döntés, döntés-előkészítés alatt? Sorolja fel az ön által ismert döntés-előkészítési módszereket! Milyen lehetőséget biztosít az adatbázis-kezelés a döntés-előkészítésben? Milyen eszközöket biztosít a táblázatkezelés a döntés-előkészítésben?
10.2 A relációs adatbázis-kezelők szolgáltatásai, műveletek adatbázisban ADATBÁZIS-KEZELŐ RENDSZER (DATABASE MANAGEMENT SYSTEM - DBMS): olyan programrendszer, amely létrehozza, ellenőrzi, aktualizálja (naprakész állapotba hozza) az adatbázist, gondoskodik annak biztonságos kezeléséről (mentések, védelem illetéktelen hozzáféréstől). Az adatokat a felhasználói igényeknek megfelelő időben és formában rendelkezésre bocsátja. Használata megkönnyíti az adatok ellenőrzését, állományszervezési és hozzáférési módszereket szolgáltat. Az adatbázis a felhasználó számára akkor válik értékké, ha megadunk hozzá egy olyan szoftvert (programnyelvet), amellyel az adatbázist kezelni tudjuk. Az ilyen szoftver általában több elemből álló rendszert képez, és adatbázis-kezelő rendszernek hívjuk. Az adatbázisokkal lényegében két fontos műveletet kell elvégezni, nevezetesen az adatbázis létrehozását (az adatbázis szerkezetének definiálását és a szerkezet feltöltését konkrét adatokkal, illetve ezek módosítását, törlését), valamint az adatok visszakeresését, lekérdezését az adatbázisból. Ennek megfelelően az adatbázis-kezelő rendszereknek (DBMS=DataBase Management System) is két fő funkciójuk van: az adatdefiníció, ill. a lekérdezés . Adatbázis-kezelők elemei • A file-kezelő Az adatbázis-kezelő rendszerek magas szintű nyelvek, de voltakép-pen file kezelést végeznek. Az adatbázist alkotó file-okban lévő adatok fizi-kailag pontosan úgy vannak tárolva, mint minden más esetben: bináris je-gyek kombinációjaként. Az adatbázisok létrehozásakor mi a logi-kai szerkezetet (az adatbázis sémáját) adjuk meg, az adatbázis-kezelő rendszer fordítja ezt le, készíti el a "fizikai" file-okat, és kialakítja a logikai kapcsolatoknak megfelelő fizikai kapcsolatokat az adatok között. Ezeket a feladatokat a file-kezelő (file-manager) végzi, ami az DBMS fő ré-sze. Ez vezérli a file-ok létrehozását, a rekordok "beszúrását" (felvitelét) a törléseket; a módosításokat.
Informatika 10.
2010
A feladat támogatására az adatbázis objektumai: • Az adatok tárolására szolgáló táblák, • az adatbevitelt, módosítást, megjelenítést segítő űrlapok. Az adatbázis létrehozása jelenti az adatstruktúra (adatbázisséma) definiálását, mely adattáblákból és a közöttük kapcsolatokból áll. (Erről a tervezés fizikai szintjénél volt szó) Az adattáblák definiálását követően fel kell tölteni adatokkal, hogy az adatbázis kialakuljon. Az adatok bevitele történhet az adatrekordok beírásával az adattáblákba, vagy speciális adatbevitelt támogató objektum segítségével. Ezeket az objektumokat űrlapoknak nevezzük. Az űrlap az adatbázis-objektumok egyik típusa, melyet elsősorban az adatbázis adatainak bevitelére és megjelenítésére használunk. Eltakarja a felhasználó elől az adatbázis összetettségét, és ha megfelelő, akkor egyszerűen kezelhetővé teszi az adatbevitelt.
10-1. ábra A mezőtulajdonságok megfelelő használatával, támogathatjuk az egyszerű, pontos adatbevitelt
10-2. ábra
INF10 -2
© Nyugat-magyarországi Egyetem , 2010
Dr. Szepesné Stiftinger Mária
Adatbázisok kezelése
10-3. ábra Képes kiszűrni a hibás adatbeviteleket, pl. szabályozható, hogy adott mezőbe csak számot írhasson a felhasználó, vagy csupán meghatározott intervallumba eső értéket:
10-4. ábra A file-kezelő tartja nyilván az adatok (fizika helyét, a köztük lévő kapcsolatokat, stb. Erre a célra a file-kezelő mélyén elhelyezkedő adatszótár (Data Dictionary) szolgál. • A lekérdező nyelv Az adatbázis-kezelő feladata az adatbázishoz való hozzáférések biztosítása és az adatbázis belső karbantartási funkcióinak végrehajtása.(Az adatbázis-kezelő rendszer az adatbázishoz történő mindennemű hozzáférés kezelésére szolgál. (Codd által megadott értelmezés)). Az adatokhoz való hozzáférés nem egy egyszerű írási vagy olvasási műveletet jelent, hiszen az adatbázis-kezelő rendszernek hatékonynak kel lennie, és gondoskodnia kell az elemi adatok védelméről, az adatszerkezetek sérthetetlenségéről. Az adatbázis-kezelő rendszer emiatt egy bonyolult programrendszernek tekinthető, mely sok funkcióját, összetettségét tekintve leginkább az operációs rendszerekhez hasonlítható. Az integritási, hatékonysági és védelmi feltételek ellenőrzését és betartását az adatbázis-kezelő rendszer a háttérben végzi el, mintegy a felhasználó közvetlen parancsa vagy tudta nélkül. A feladat támogatására az adatbázis objektumai:
© Nyugat-magyarországi Egyetem , 2010
INF10 -3
Informatika 10.
2010
• az adatkeresést, a feltételek szerint kiválogatott adatok listázását szolgáló lekérdezések, • a kiválasztott adatok, összesítések megformált megjelenítését végző jelentések, A lekérdező nyelv egy interaktív eszköz, amelynek segítségével dialógus folytathatunk a rendszerrel. Ilyen például az SQL-nyelv. Az ilyen nyelveknek az a lényege, hogy könnyen felírhatók bennük kérdések, amelyekre rendszer azonnali választ ad. (lásd az SQL SELECT parancsát). Lekérdezések: Példák: • Jelenítse meg az 5000000 Ft-nál drágább autókat, és jelenítse meg az ezekhez az autókhoz tartozó márkát, teljesítményt, rendszámot és évjáratot.
10-5. ábra Jelenítse meg azokat az autókat, amelyeknek a teljesítménye 80 és 120 LE. között van, és jelenítse meg az ezekhez az autókhoz tartozó rendszámot, márkát, árat és színt.
10-6. ábra Jelentések: Adattömegek lényegét mutatja meg. Csoportosít, és számításokat is végez.
INF10 -4
© Nyugat-magyarországi Egyetem , 2010
Dr. Szepesné Stiftinger Mária
Adatbázisok kezelése
10-7. ábra • Adatbázis kezelőkben ellátott segédfeladatok Az adatbázis-kezelő rendszerek a fő funkciókon kívül több "segédfeladatot" is ellátnak. Ezek közül kiemeljük a következőket. • Adatvédelem, adatbiztonság. Nem minden felhasználónak van joga az adatbázis minden adatához hozzáférni. A felhasználónak a hozzáféréshez jelszóval kell azonosíta-ni magát. Ezt az adatbázis-kezelő rendszer értékeli, és csak azokhoz az adatokhoz engedi hozzáférni, amelyekhez annak jogosultsága van. Az adatok védelme nagy adatbázisoknál rendkívül fontos dolog, hiszen az adatbázis tönkretétele nagyon nagy károkat okozhat (gondoljunk egy óriási bank adatbázisára). Az adatok védelmének szoftver eszközökkel történő biztosítása programozói szemszögből nézve igen érdekes, de nagyon nehéz feladat. • Az integritási feltételek teljesülésének figyelése. Az adatbázis adatai-val kapcsolatban gyakran meg lehet fogalmazni olyan feltételeket; amelyek ellenőrzésével az adatbázis létrehozásakor kiszűrhetők azok az input adatok, amelyek nem az adott adatbázisba valók (hibásak). Az adatbázis belső szerkezete is hordozhat olyan információkat, amelyek meghatározzák, hogy új adatok bevitele esetén ezek illeszkednek-e az adatbázishoz. Például kiköthetjük, hogy a dátum nevű adattétel nem vehet fel az 1900-as évek előtti dátumot, vagy előfordulhat, a rendszer olyan, hogy két adat megegyezése valahol az adatbázisban maga után hozza másik két adat megegyezését. Az ilyen típusú információkat integritási feltételeknek nevezzük. Az adatbázis-kezelő feladata ezen integritási feltételek teljesülésének vizsgálata is. • Szinkronizáció Különösen hálózatban-üzemelő nagy adatbázisoknál, egyidejűleg nagyon sok felhasználó fordulhat esetleg ugyanazon adat-hoz. Ráadásul úgy, hogy egyik éppen módosítani akarja, a másik pe-dig lekérdezni. Ezeknek az ún. holtpont helyzeteknek a megoldása nagyon nehéz feladat. • Adatbázis statisztikák Mivel az adatbázis-kezelő rendszerekben az adatokhoz való hozzáférés a központi szoftver vezérlése alatt megy végbe, ezért az ilyen rendszerek minden, az adatokkal kapcsolatos műveletről feljegyzést vezetnek, mindent
© Nyugat-magyarországi Egyetem , 2010
INF10 -5
Informatika 10.
2010
naplóznak. Ezeknek az adatoknak a fel-használásával azokhoz a műveletfajtákhoz, amelyek gyakran szerepelnek különféle gyorsításokat (pl. indexelés) hajthat végre a rendszer. • Adatbázist használó személyek Adatbázis adminisztrátor feladatai: • sémamódosítás • sémadefiniálás • fizikai szervezés módosítása • Megszorítások megfogalmazása • Megszorítások módosítása • hozzáférési jogok biztosítása Az adatbázis adminisztrátort speciális szoftverek segíthetik. Adatbázis felhasználók: • Adatbázis adminisztrátor • felhasználói programok írói • nem szakember felhasználók . • A 4GL-ek A 4GL-ek (Fourth Generation Languages = Negyedik Generációs Nyel-vek) adatbázis-kezelő rendszerek, amelyekkel kényelmesen, gyorsan írhatók fel adatbázis-alkalmazások, rendszerfejlesztések. Az adatbázis-kezelő rendszer által ellátott feladatok: • adminisztrációs feladatok: az adatbázis létrehozása és aktualizálása az adatbiztonság és hozzáférési jogok garantálásával, • adat-visszanyerési funkció: a tárolt adatok rendelkezésre bocsátása, keresési, kiválasztási, kapcsolási feladatok elvégzése, • kommunikációs funkció: együttműködés a felhasználóval, az adatbázis információinak értelmezése a felhasználó igénye szerint. A DBMS fő feladatai: • adatstruktúra (adatbázisséma) definiálása, • adatok aktualizálása (új felvétel, törlés, módosítás), • lekérdezési lehetőségek, • fejlesztő környezet biztosítása célalkalmazások létrehozásához. Az adatbázisok osztályozása felhasználás szerint: • üzleti célú, • céginformációk,
INF10 -6
© Nyugat-magyarországi Egyetem , 2010
Dr. Szepesné Stiftinger Mária
Adatbázisok kezelése
• önkormányzati adatbázisok, • ágazati és statisztikai adatbázisok, • könyvtárak, • célirányos adatbázisok, • nemzetközi adatbázisok. Az adatbázis felhasználói szempontból fontos jellemzői a következők: összetett logikai szerkezetű, egyidejűleg osztottan használt, számítógéppel támogatott, adatbázis-kezelő rendszerrel manipulált ismeretek szervezett együttese. Összetett logikai szerkezet: Az adatszerű kezelésről akkor beszélünk, ha az állomány rekordjaiban vezetett ismereteket adatmezőkhöz rendeljük. Az adatmezőnek neve és tartalma van. Így a rekordok belülről strukturáltak, és az ismereteket az adatnevek alapján manipulálhatjuk. Az állományok közötti kezelés az adatok tartalmi (logikai) összefüggésein alapul. Egyidejűleg osztottan használt: Az osztott alkalmazás azt jelenti, hogy az adatbázis egyazon állományát több felhasználó közösen manipulálja. Mégpedig nem egymás után, hanem kvázi egyidejű módon. Így úgy tűnik, mintha ő lenne az egyetlen felhasználó. Adatbázis-kezelő rendszerrel manipulált Az adatkezelőnek nem csupán az a feladata, hogy tárolja, előkeresse, karbantartsa - vagyis alapvető szinten kezelje - az ismereteket. Neki kell gondoskodnia a tranzakciók fogadásáról, ütemezéséről, várakoztatásáról, esetleges kizárásáról. TRANZAKCIÓ, kölcsönös függésben levő változtatás. Tegyük fel, hogy pénzt helyezünk el a bankbetétünkön! A banki dolgozó átvezeti az adatokat • az ügyfél személyi lapon, • bejegyzi a napi forgalom naplóba, • bejegyzi a pénztárkönyvbe. Ha a befizetés rendben megtörtént, mindhárom változtatást egyszerre kell érvényesíteni. Ha azonban utolsó művelet - pénztári befizetés - során kiderül, hogy nincs nálunk elegendő pénz, akkor mindhárom előkészített változtatást egyszerre kell érvényteleníteni, különben az adatbázis nem lenne konzisztens . Az adatbázis-kezelő rendszerekkel szemben támasztott fontos követelmények: 1. Hatékonyság Az értékes adatok lehetőleg minél több felhasználóhoz, minél kevesebb idő alatt jussanak el. Egyszerű és gyors ELÉRÉS és MÓDOSÍTÁS biztosítása a programoktól független adatbázisban. 2. Redundancia Ugyanaz az adat csak egyszer kerüljön tárolásra. Azokat az adatokat, melyek a már tárolt adatokból előállíthatók ne tároljunk (Ezeket lekérdezések segítségével állítjuk elő.). 3. Támogatni a logikai és fizikai adatleírást 4. Az adatintegritás és konzisztencia biztosítása
© Nyugat-magyarországi Egyetem , 2010
INF10 -7
Informatika 10.
2010
Ha valamely adatban változás történik, úgy ennek az adatnak az egész kapcsolatrendszerét a változásnak megfelelően át kell alakítani. 5. Az adatbiztonság érvényesítése Az adatbázisban található adatok különböző titkossági szintűek lehetnek ezért az adatbázis-kezelő rendszernek gondoskodnia kell arról, hogy a megfelelő elérések csak a jogosult felhasználók számára legyenek engedélyezve. Továbbá gondoskodni kell az adatok fizikai biztonságáról is, előírt gyakoriságú mentések, biztonsági másolatok készítésével. Gondoskodni kell a biztonsági másolatok fizikailag elkülönített tárolásáról is. Az adatbázisokat veszélyeztető tényezők: • fizikai meghibásodások, • adatátviteli hibák, • jogtalan hozzáférés, • adatértékekre vonatkozó szabályok megsértése, • inkonzisztencia (a hivatkozási függőségek sérülése). ADATVÉDELEM, JOGOSULTSÁGOK Egy adatbázisban a biztonságos munkavégzés érdekében korlátozzák az egyes felhasználók jogait, az adatokhoz való hozzáférés lehetőségeit. Ahhoz, hogy egy adatbázissal dolgozhassunk, azonosítani kell magunkat a felhasználói vagy csoportnevünk és a hozzá tartozó jelszó megadásával (login). A különböző felhasználói jogokat a következő táblázatban foglaltuk össze.
10-1. táblázat FELHASZNÁLÓI JOGOK LÉTREHOZÁSI JOG
ELÉRÉSI JOG
Táblázatok létrehozása, olvasási jog: megadható táblázatok, illetve azok kijelölt oszmódosítása, olvasása globális lopaira vonatkozóan is. jog ÍRÁSI JOG: biztosítja a kijelölt táblázat kijelölt mezőinek írását, olvasását és módosítását. Az írási jog az olvasási jogot automatikusan biztosítja. SZERKEZET MÓDOSÍTÁSI JOG: a táblázat oszlopait is megváltoztathatja a felhasználó. Egész táblázatokra adható meg. Egyben Írási jogot is jelent a táblázat minden mezőjére vonatkozóan. Csoportok definiálása : azon felhasználók, melyek azonos jogokkal rendelkeznek, egy csoportot képeznek. A csoport használatának előnye, hogy az egyes jogokat nem kell minden egyes felhasználónak egyenként megadni, csak meg kell mondani, hogy az illető felhasználó melyik csoportba tartozik. Felhasználók azonosítása: nevük és jelszavuk megadásával definiáljuk őket. Létrehozási jog adása : a létrehozási jog lehetőséget ad új táblázatok létrehozására. A létrehozó a saját maga által létrehozott táblázatok fölött minden más (elérési és törlési) joggal is rendelkezik. Egyéb táblázatokra nézve az elérési jogokat természetesen meg kell adni. A legtöbb megvalósítás esetén van egy vagy két kiemelt felhasználó
INF10 -8
© Nyugat-magyarországi Egyetem , 2010
Dr. Szepesné Stiftinger Mária
Adatbázisok kezelése
(jelszó), akinek minden jog automatikusan biztosítva van. Ezeket rendszeradminisztrátoroknak, illetve adatbázis adminisztrátoroknak nevezik. Hozzáférési jogok adása : hozzáférési jogot az adhat, aki maga is rendelkezik valamilyen jogosultsággal. Minden felhasználó csak a magáénál alacsonyabb szintű jogot adhat. Az írási jog megadásakor három lehetőség közül lehet választani: Módosítás (update) fel lehet sorolni a megengedett mezők neveit, ha minden mezőre vonatkozik, akkor az egyúttal törlésre és új sor felvételére is jogosít. Új sor felvétele (insert) valamint az Törlés (delete) minden mezőre vonatkozik. Jogok visszavonása: bármely jog visszavonása egyúttal az egyel alacsonyabb szintű jog adományozását jelenti, például az írási jog visszavonása esetén a kijelölt mezőkre automatikusan olvasási jog marad fenn. Akkor szűnik meg az összes jog, ha az olvasási jogot vonjuk vissza.
10.3 Az SQL nyelv bemutatása, az SQL parancsok használata. Az információszolgáltatás és az SQL nyelv kapcsolata. MOTTÓ ‘ Az információ nem általában valamiféle új ismeret (hiszen általában véve új ismeret birtokába a diszciplínák művelésével, bizonyos történések, események feltárásával stb. juthatunk), hanem olyan új, illetve feltárt ismeret, amely a már meglevő ismeretek (adatok, tények) rendszerezéséből, összevetéséből, elemzéséből, értékeléséből, modellszerű felhasználásából származik . ‘ Edgar F. Cood szerint a relációs adatbázis-kezelő rendszernek legalább egy olyan relációs nyelvet kell támogatnia, amelynek • (a) lineáris a szintaxisa, • (b) interaktívan és alkalmazási programokon belül is lehet használni, továbbá • (c) támogatja az adat definiáló műveleteket (beleértve az adatok megjelenítési képeinek meghatározására szolgálókat), az adatmódosító (manipulációs) műveleteket (frissítés és visszakeresés is), biztonsági és jósági (integritási) korlátokat, valamint a tranzakció kezelési műveleteket (begin, commit, és rollback: elkezdés, jóváhagyás és visszagörgetés). Az SQL S tructured Q uery L anguage (Strukturált Lekérdező Nyelv) célja, hogy széles körben a műszaki, tudományos, informatikai, számszaki adatbázisok lekérdezése azonos logika szerint egységes formában valósuljon meg. Az SQL-t a hetvenes évek közepén fejlesztették ki az IBM-nél. Számos terv jött létre, de ezek nem feleltek meg a velük szemben elvárt követelményeknek. 1979-ben hozták nyilvánosságra az első változatát, melyet később szabványnak is elfogadtak, gyors sikerének egyik oka, hogy szabványos, és a kérdések feltételé-hez az alaputasítások könnyen megérthetők, megtanulhatók. Sikerének eredményeként továbbfejlesztették, újabb szabványok jöttek létre (1986 SQL első szabványosítása,1989,1992), mely változatok már nem csupán az információszolgáltatás eszközeként használhatók, hanem az adatbázis-kezelés további funkcióit is támogatják. A lekérdezés ezért tágabb értelmezést nyert: az adatbázisban lévő adatok visszakeresésére, létrehozására, módosítására vagy törlésére irányuló különleges kérés. Az SQL a relációs adatmodellen alapuló adatbázisok kezelőnyelve lett. Két fő használati módja különböztethető meg:
© Nyugat-magyarországi Egyetem , 2010
INF10 -9
Informatika 10.
2010
• önálló SQL (saját utasításai vannak) • beágyazott SQL (más nyelv utasításaiba építjük be annak érdekében, hogy a vezérlési, ill. más szükséges tevékenységeket pl. input/output biztosítsuk. Azt a nyelvet, melybe az SQL utasításait beágyazzuk gazdanyelvnek - befogadó vagy HOST nyelvnek hívjuk. Az SQL nyelv fő jellemzői: • nem algoritmikus (nem tartalmaz vezérlő utasításokat) • halmazorientált (egy mintához illeszthető összes bejegyzést visszakeresi és kezeli.) • nem rekurzív • szabványos Az SQL-t az idők során kiegészítették olyan tulajdonságokkal, hogy a programozók képesek legyenek benne bonyolult algoritmusokat is írni. Az SQL nyelv részei lettek a változókezelés, elágazások, ciklusok kezelése, kivételkezelés stb.
10.3.1 Az SQL nyelv résznyelvei: 1. Lekérdező nyelv (QUERY Language) Tartalmazza az információszolgáltatást támogató lekérdezés és a jelentés-készítéssel kapcsolatos utasításokat. Alaputasítása a SELECT. Lényegében minden lekérdezéssel kapcsolatos művelet ennek segítségével végezhető el. A lekérdezés az információnyerés eszköze. Az adatbázisban lévő adatok visszakeresésére, létrehozására, módosítására vagy törlésére irányuló különleges kérés. A relációs algebra műveleteit használjuk a lekérdezés megvalósításához, eredményként mindig egy újabb relációt kapunk, mely része az adatbázisnak. PROJEKCIÓ MEGVALÓSÍTÁSA:
10-8. ábra SZELEKCIÓ MEGVALÓSÍTÁSA:
INF10 -10
© Nyugat-magyarországi Egyetem , 2010
Dr. Szepesné Stiftinger Mária
Adatbázisok kezelése
10-9. ábra Kiterjesztés (egy reláción végzett művelet) A lekérdezésben nem egyes konkrét mezőértékeket, hanem az azokból matematikai műveletekkel képzett eredményeket jelenítünk meg. Az eredmény relációban újabb mezőt képezünk a kiinduló reláció mezőivel végzett műveletek eredményének megjelenítésére. Jelenítse meg a tulajdonosok nevét, az autók márkáját és árát, és hozzon létre egy új mezőt, amelyben az autók árának 10%-át jeleníti meg.
10-10. ábra SELECT Tulajdonos.Név, Autó.Márka, Autó.Ár, [Ár]-0.1*[Ár] AS [Új ár] FROM Tulajdonos INNER JOIN Autó ON Tulajdonos.[Személy igazolvány szám]=Autó.[Személy igazolvány szám]; Lekérdezési feladatok bemutatása: SQL parancs szintaktikája: SELECT oszlopnév ,oszlopnév
© Nyugat-magyarországi Egyetem , 2010
INF10 -11
Informatika 10.
2010
FROM táblanév WHERE keresési feltétel A WHERE után megadott keresési feltétel arra szolgál, hogy a táblában bizonyos sorokat kijelöljön (t.i. azokat, amelyekre a feltétel igaz). A feltételek megadásánál használhatjuk • a BETWEEN - két érték között van, • az IN - benne van, • LIKE - hasonlít, • NOT - nem kulcsszavakat, • valamint a relációjeleket
10-2. táblázat - Válogatási feltételek megadása 10
A szám egyenlő 10
Not 10
Nem egyenlő 10
<> 10
Nem egyenlő 10
<10
A szám kisebb 10-nél
>10
A szám nagyobb 10
<20 and >10
A szám 10 és 20 között van
10 or 20
A szám 10 vagy 20
L
A szöveg L
L*
A szöveg L-lel kezdődik
*L
A szöveg L-re végződik
null
A mező üres
Not null
A mező nem üres
False
A mező: nem, hamis
true
A mező: igen, igaz
A keresési feltétel felépítése: Egyszerű összehasonlítás, Összehasonlítás egy halmaz elemeivel, Összehasonlítás a NULL elemmel, Összetett keresési feltétel. 1. Egyszerű választó lekérdezések (egy relációból, egyetlen feltétel alapján történő válogatás): Jelenítse meg az 5000000 Ft-nál drágább autókat, és jelenítse meg az ezekhez az autókhoz tartozó márkát, teljesítményt, rendszámot és évjáratot.
10-11. ábra
INF10 -12
© Nyugat-magyarországi Egyetem , 2010
Dr. Szepesné Stiftinger Mária
Adatbázisok kezelése
SELECT Autó.Márka, Autó.Teljesítmény, Autó.Rendszám, Autó.Ár, Autó.Évjárat FROM Autó WHERE (((Autó.Ár)>5000000)); Összetett választó lekérdezések (több táblából, egyetlen feltétel alapján történő válogatás, vagy egy táblából, több feltétel alapján történő válogatás): Jelenítse meg azokat az autókat, amelyeknek a teljesítménye 80 és 120 LE. között van, és jelenítse meg az ezekhez az autókhoz tartozó rendszámot, márkát, árat és színt.
10-12. ábra SELECT Autó.Teljesítmény, Autó.Rendszám, Autó.Márka, Autó.Ár, Autó.Szín FROM Autó WHERE (((Autó.Teljesítmény)>80 And (Autó.Teljesítmény)<120)); Jelenítse meg azokat az autóknak a márkáját, amelyiknek a nevében van vagy „F” vagy „e” betű, valamint jelenítse meg az autó tulajdonosának nevét, és az autó árát.
10-13. ábra SELECT Autó.Márka, Autó.Szín, Autó.Rendszám, Autó.Teljesítmény FROM Autó WHERE (((Autó.Szín)="fekete" Or (Autó.Szín)="zöld")); Jelenítse meg azokat a tulajdonosokat, akik nem buktak meg informatikából, és az autójuk márkája Nissan vagy Audi, valamint jelenítse meg az autóik árát.
10-14. ábra SELECT Tulajdonos.[Informatika jegy], Autó.Márka, Tulajdonos.Név, Autó.Ár FROM Tulajdonos INNER JOIN Autó ON Tulajdonos.[Személy igazolvány szám] = Autó.[Személy igazolvány szám] WHERE (((Tulajdonos.[Informatika jegy])>2) AND ((Autó.Márka)="Nissan" Or (Autó.Márka)="Audi"));
© Nyugat-magyarországi Egyetem , 2010
INF10 -13
Informatika 10.
2010
1. Paraméteres lekérdezés: esetén a keresési feltételt a felhasználó adja meg Jelenítse meg a felhasználó által megadott értékek közötti árú autók márkáját és az ezekhez tartozó tulajdonosok nevét.
10-15. ábra SELECT Autó.Márka, Autó.Teljesítmény, Autó.Hengerűrtartalom, Autó.Szín FROM Autó WHERE (((Autó.Hengerűrtartalom)<[kisebb mint] Or (Autó.Hengerűrtartalom)>[nagyobb mint])); 1. Számítás lekérdezésben: a redundancia elkerülése érdekében származtatott adatokat az adattáblákban nem tárolunk, hanem a lekérdezések segítségével állítjuk elő ezeket a mezőket. Erre lehetőséget nyújt a kiterjesztés relációs algebrai művelet, melynek során a lekérdezésben megjelenítendő mezőket kiegészítjük egy vagy több mezővel, melyekben kiszámítatjuk a kívánt értéket, értékeket az adatbázisban tárolt mezők és számítási műveletek segítségével. • Jelenítse meg a tulajdonosok nevét és informatika jegyüket, valamint jelenítsen meg egy új mezőt, amelyben az informatika jegye mindenkinek egyel jobb.
10-16. ábra SELECT Tulajdonos.Név, Tulajdonos.[Informatika jegy], [Informatika jegy]+1 AS [Új jegy] FROM Tulajdonos; Feladat: Mely lekérdezés SQL utasítása az alábbi? SELECT Tulajdonos.Név, Autó.Márka, Autó.Teljesítmény, [Autó]![Teljesítmény]+5 AS [Módosított teljesítmény] FROM Tulajdonos INNER JOIN Autó ON Tulajdonos.[Személy igazolvány szám] = Autó.[Személy igazolvány szám]; A feladat megoldását támogatja a szerkesztő szolgáltatás.
INF10 -14
© Nyugat-magyarországi Egyetem , 2010
Dr. Szepesné Stiftinger Mária
Adatbázisok kezelése
10-17. ábra Végrehajtási sorrend (precedencia) • Aritmetikai operátorok (^,-,*,/,+,-) • Összefűző & • Összehasonlító (<,<=,>,>=,=,<>) • Mintaillesztő operátor (LIKE) • Egyéb (Between...and, in, is Null • Logikai operátorok (NOT, AND, OR, XOR, EQV, IMP) Előre definiált számítások: Függvény Számítás Sum Mező értékeinek összege Avg Mező értékeinek átlaga Min Mező legkisebb értéke Max Mező legnagyobb értéke Count Mező értékeinek száma, nem számítva a NULL (üres) értéket StDev Mező értékeinek szórása Var Mező szórásának négyzete • Jelenítse meg a legolcsóbb és a legdrágább autók árát, valamint az autók árainak átlagát.
10-18. ábra
© Nyugat-magyarországi Egyetem , 2010
INF10 -15
Informatika 10.
2010
SELECT Min(Autó.Ár) AS MinOfÁr, Max(Autó.Ár) AS MaxOfÁr, Avg(Autó.Ár) AS AvgOfÁr FROM Autó; Csoportosítás (egy reláción végzett művelet) A relációk rekordjait valamely attribútumok alapján meghatározott csoportokba foglaljuk, majd a csoportokhoz különböző függvényekkel meghatározott éréket rendelünk. (Pl.: összeg, átlag, min, max, elemszám, szórás,) • Jelenítse meg az autók színét, és a színekhez tartozó legnagyobb teljesítményű autókat.
10-19. ábra SELECT Autó.Szín, Max(Autó.Teljesítmény) AS MaxOfTeljesítmény FROM Autó GROUP BY Autó.Szín;
10-20. ábra Beépített függvények: MIN (attributum) – A sorok közül a minimális érték megkeresés COUNT (mező) – A megadott mező értékei alapján a csoport számának megszámlálása COUNT (*) – A csoportokba tartozó sorok számának megjelenítésem MAX (attributum) – A sorok közötti maximum megkeresése SUM (attributum) – Az összeg kiszámolása A lekérdezés eredményét csoportosíthatjuk és a csoportok között is további szelekciót alkalmazhatunk a GROUP BY és HAVING alparancsokkal.
INF10 -16
© Nyugat-magyarországi Egyetem , 2010
Dr. Szepesné Stiftinger Mária
Adatbázisok kezelése
SELECT attribútumok FROM reláció [WHERE feltétel] GROUP BY attribútum [HAVING csoport_feltétel]; Adatdefiníciós nyelv (Data Definition Lan-guage, DDL) Az adatleíró nyelv a séma megfogalmazására szolgáló nyelv. Séma: az adatmodellnek és a leírásnak további számítógépes feldolgozásra is alkalmas tartalmi és formai megfogalmazása. Egy adatbázishoz egy séma tartozik, amely pontosan meghatározza az adatszerkezetet, a tárolási struktúrát, valamint az egyes adatelemek között fennálló logikai kapcsolatokat. Az adatbázisok és táblák létrehozási, törlési parancsait tartalmazza. Ide tartoznak az adatvédelmi utasítások is. CREATE - adattábla létrehozása, Táblakészítő lekérdezés: Új táblát, és benne sorokat hoz létre ezekbe másolva a lekérdezés eredményét. Példa: Hozzunk létre egy új adattáblát, melyben a 1500 cm3 feletti autók márkája, ára és teljesítménye szerepel. SELECT auto.Ár, auto.LE, auto.Hengerűrtartalom INTO 1500felett FROM auto WHERE (((auto.Hengerűrtartalom)>1000));
10-21. ábra ALTER - oszlop hozzáfűzése az adattáblához, DROP- tábla törlése, GRANT - jogok adása, REVOKE jogok visszavonása A LÉTREHOZÁS (CREATE) egy új tábla definiálása során meg kell adnunk az adattábla nevét, a tábla oszlopainak nevét, azaz a mezőnevet, a mező típusát esetleges egyéb jellemzőket (az adatok felépítésével, megjelenítésével és fizikai tárolásával kapcsolatos információkat. Fontos, nagyméretű adatbázisok esetén adatbázist, adattáblát általában számítástechnikailag képzett, erre külön felhatalmazással bíró személy hozhat létre.
© Nyugat-magyarországi Egyetem , 2010
INF10 -17
Informatika 10.
2010
Adatbázis menedzser vagy adatbázis adminisztrátor. Ez érvényes az ebben a kategóriában található feladatok elvégzésére általánosan. Adatkarbantartó utasítások (Data Manipulation Language, DML) Az adatok bevitelét, törlését, és módosítását végző utasítások. INSERT adatsorok bevitele, DELETE - sorok törlésére szolgál, Törlő lekérdezés - Az ilyen típusú lekérdezés töröl egy adott feltételnek eleget tevő minden rekordot. A törlő lekérdezés teljes sorokat távolít el a táblából. Egyedi adatoszlopok értékeinek törléséhez használjunk FRISSÍTŐ LEKÉRDEZÉST. Példa: DELETE auto1.ár FROM szinek INNER JOIN auto1 ON szinek.kód = auto1.szinek_azonosító WHERE (((auto1.ár)>2000000));
10-22. ábra UPDATE - a megadott feltételeknek eleget tevő adatsorok megváltoztatására szolgál. Frissítő lekérdezés - Adott feltételt kielégítő rekordok valamely mezőjének (ill. mezőinek) módosítása. Tábla meglévő soraiban egyedi oszlopok értékeit módosítja. Példa: UPDATE [Autó másolata] SET [Autó másolata].Ár = "*0.85";
INF10 -18
© Nyugat-magyarországi Egyetem , 2010
Dr. Szepesné Stiftinger Mária
Adatbázisok kezelése
10-23. ábra Adatvezérlő nyelv (Data Control Language, DCL) A relációs adatmodellhez szorosan nem kötődő utasításokat tartalmazza, melyekkel a műveletek végrehajtását szabályozhatjuk, vezérelhetjük. A logikailag egybe tartozó SQL utasításokat tranzakcióknak nevezzük, egy tranzakció megszakadása esetén is gondoskodni kell az adatbázis konzisztenciájának megőrzéséről. Erre a COMMIT és ROLLBACK parancs pár szolgál. COMMIT parancs kiadásával véglegesíthetjük a tranzakció során végrehajtott változtatásokat a relációkban. ROLLBACK parancs segítségével pedig visszaléphetünk az előző véglegesített állapothoz.
10.4 Döntéstámogatás adatbázis-kezelő és táblázatkezelő rendszerrel. A döntés különböző lehetőségek közötti választást jelent. Az alternatívák közötti választás esetenként egyszerű, máskor viszont, ha ellentétes célokról, több döntéshozóról, jelentős bizonytalanságról van szó, akkor a döntés rendkívül bonyolulttá válhat. A döntés-előkészítő, döntéselemző szakember soha nem állapíthatja meg teljes bizonyossággal melyik a jó alternatíva. Optimális döntés: a döntés-előkészítés során az alternatívák elkészítésénél tudományos módszereket hívunk segítségül. A döntéshozatal folyamata A feltárás fázisában történik a problémák felderítése. A támogatás ebben a fázisban az adatbázis keresési, kiválogatási módszereit jelenti; azaz meghatározott feltételek szerinti kiválogatások, számítások, összesítések, elemzések elvégzése → céltudatos, el ő re meghatározott feldolgozás, információ-előállítás. Adatbázis-kezelő rendszerek következő objektumai támogatják a döntéshozatalt: Lekérdezés: meghatározott feltételek szerinti kiválogatások, számítások, összesítések Űrlap: Összefoglalja, és egyszerre jeleníti meg az egyszerre megjelenítendő adatokat. Eltakarja a felhasználó elől az adatbázis összetettségét, bonyolultságát.
© Nyugat-magyarországi Egyetem , 2010
INF10 -19
Informatika 10.
2010
Jelentés: Adattömegek lényegét mutatja meg, akár grafikonokon is. Csoportosít, és számításokat is végez. A döntéstervezési fázis az alternatívák generálását jelenti. Ez lehetséges cselekvési scenáriók kitalálását, kifejlesztését és elemzését jelenti. Statisztikai elemzések (egy adatsor vizsgálata: minimum, maximum keresése, átlag, medián, szórás számítása, két adatsor kapcsolatának vizsgálata, regresszió számítás és korreláció analízis), operációkutatás (matematikai programozás - optimum számítás), hálótervezés , trendszámítás. Táblázatkezelő rendszerek következő eszközökkel támogatják a döntéshozatalt: Függvények : fontos megismerni a függvényekben rejlő lehetőségeket, és az egymásba ágyazott függvények használatát. leggyakrabban használhatók: • Statisztikai függvények • Logikai függvények • Feltételes függvények • Mátrix függvények Az adatok összefüggésének meghatározása: • Munkalapok, munkafüzetek közti kapcsolat létrehozása • Kapcsolatok megjelenése a képletekben Felhasználásával sok számolótábla adataiból kimutatásokat és összesítéseket létrehozni. Adattáblák használata: • Szűrési lehetőségek • Sor és oszloprendezések
10-24. ábra Elemző eszközök:
10-25. ábra Diagramok :
INF10 -20
© Nyugat-magyarországi Egyetem , 2010
Dr. Szepesné Stiftinger Mária
Adatbázisok kezelése
Választási szakasz: döntési modellek, érzékenységvizsgálati módszerek, választási eljárások alkalmazását jelenti.
10.5 Összefoglalás KÉRDÉSEK: 1. Az adatbázis-kezelő rendszerek fogalma és szolgáltatásai; hogyan valósíthatók meg az Ms Accessben? 2. Milyen adattípusok ismertek az Ms Accessben, mikor melyik adattípust célszerű használni? Adjon mintapéldát minden adattípushoz! 3. Milyen mezőtulajdonságok ismertek az Ms Accessben, hogyan támogatják ezek a tulajdonságok az adatbáziskezelést? 4. Melyek azok a mezőtulajdonságok, amelyek az adatbevitelt támogatják? 5. Melyik mezőtulajdonság, támogatja a rendezést? Hogyan? 6. Melyik mező estén kell beállítani a kötelező kitölteni mezőtulajdonságot? Miért? 7. Sorolja fel, és értelmezze az ACCESS adatbázis-kezelő rendszerekre jellemző NÉZETEKET! 8. Mit jelent a lekérdezés, mi szolgáltatja elvi alapjait, sorolja fel a fajtáit. 9. SQL nyelv fő jellemzői (sorolja fel, és értelmezze). 10.Az SQL fogalma, résznyelvei? Milyen célt szolgálnak a résznyelvek? 11.Lekérdezés és a relációs algebra kapcsolata? 12.Fogalmazza meg, az alábbi lekérdezést magyarul, és írja le a neki megfelelő SQL parancsot!
10-26. ábra FELADAT: Egy termékforgalmazó kisvállalkozás az adataik hatékony, pontos, biztonságos tárolása érdekében adatbázis segítségével szeretné megoldani az adatkezelést. Az alábbi adatbázissémát hozták létre:
© Nyugat-magyarországi Egyetem , 2010
INF10 -21
Informatika 10.
2010
10-27. ábra Hozza létre az adatbázis sémát az ön által ismert adatbázis-kezelő rendszerben. Készítsen űrlapokat az adatbevitel támogatására! Töltse fel az adatbázist legalább 15 féle termékkel, legyen 5 vevője, melyek közül 1 vevő 4 féle terméket, 2 vevő 2 féle terméket, és 2 vevő 1-1 féle terméket rendelt. Milyen információkat tud szolgáltatni az így kialakított adatbázis segítségével? Írjon le három egyszerű és öt összetett feltételt tartalmazó lekérdezést, és keresse meg ezekre a választ is! Készítse el azt a lekérdezést, amely a felhasználó által megadott időpontok közötti megrendelés esetén megjeleníti a megrendelő nevét és a megrendelt áru megnevezését és darabszámát. Egészítse ki a MEGRENDELÉSEK adattáblát egy fizetendő nevű mezővel, amely a termék árának és darabszámának a szorzata. Készítsen jelentést varázsló segítségével, a jelentésben az egyes termékfajták szerint csoportosítson, jelenítse meg a termék nevét, egységárát, termekdb mezőt. Összesítse, hogy az egyes termékekből hányat vásároltak. A jelentés neve pedig Vásárlás legyen.
Irodalomjegyzék Microsoft : Microsoft Office Acces Help , Redmond , 2007 Pétery, K. : Adatbázis-kezelés - MS Office 2007-tel, eBook , Budapest , 2008
INF10 -22
© Nyugat-magyarországi Egyetem , 2010