Adatbázisok és adattárházak az információs rendszerek adatkezelői

Hasonló dokumentumok
Az adatbáziskezelés alapjai

A hierarchikus adatbázis struktúra jellemzői

Haladó DBMS Radványi, Tibor

Adatbázisok I. Jánosi-Rancz Katalin Tünde 327A 1-1

Ingrid Signo Felhasználói kézikönyv. Pénztári használatra

Integrált ügyviteli rendszer: Kettős könyvelés modul

Lemezkezelés, állományrendszerek

Aronic Főkönyv kettős könyvviteli programrendszer

Access 2010 Űrlapok és adatelérés

KETTŐS KÖNYVELÉS PROGRAM CIVIL SZERVEZETEK RÉSZÉRE

II. év. Adatbázisok és számítógépek programozása

ADATBÁZISOK, ADATTÁRHÁZAK

Általános statisztika II. Kriszt, Éva Varga, Edit Kenyeres, Erika Korpás, Attiláné Csernyák, László

P-GRADE fejlesztőkörnyezet és Jini alapú GRID integrálása PVM programok végrehajtásához. Rendszerterv. Sipos Gergely

ADATBÁZISRENDSZEREK. Dr. Radványi Tibor. Készült a TÁMOP /1/A támogatásával.

ALAPISMERETEK...6 A MICROSOFT ACCESS INDÍTÁSA...14 AZ ABLAK...14 MEGNYITÁS...16 TÁBLÁK...17 LEKÉRDEZÉSEK...18

Gazdasági informatika vizsga kérdések

TÁMOP VIR alprojekt VIR felhasználói kézikönyv

Dr. Göndöcs Balázs, BME Közlekedésmérnöki Kar. Tárgyszavak: szerelés; javíthatóság; cserélhetőség; karbantartás.

Felhasználói leírás v1.0

TERMIR PROGRAM (Termelés-irányítási program)

ICN 2005 ConferControl

Poszeidon (EKEIDR) Irat és Dokumentumkezelő rendszer webes felület

KELE3. Felhasználói kézikönyv

Digitális kártyák vizsgálata TESTOMAT-C" mérőautomatán

Rendszerfelügyelet Logikai partíciók

Béta Software számlázó programok adóhatósági ellenőrzési adatszolgáltatása (AEA)

Összefoglaló az SMS Center által nyújtott szolgáltatásokról

Welcome3 Bele pteto rendszer

Hogyan böngésznek a fogyatékkal élő emberek?

Informatika szintmérő-érettségi tételek február

FELHASZNÁLÓI ÚTMUTATÓ

NÁLAD A NYERŐ KOMBINÁCIÓ? ELNEVEZÉSŰ NYEREMÉNYJÁTÉK RÉSZVÉTELI ÉS JÁTÉKSZABÁLYZATA

A könyv tartalomjegyzéke

Tisztelt Érdeklıdı, Olvasó!

OTDK-DOLGOZAT

Felhasználóbarát kliensszoftver

Szakmai program 2015

Info-kommunikációs technológiák a vállalati szektorban

FELHASZNÁLÓI LEÍRÁS a DIMSQL Integrált Számviteli Rendszer Készlet moduljának használatához

Minden jog fenntartva, beleértve bárminemű sokszorosítás, másolás és közlés jogát is.

Hallgatók a Tudomány Szolgálatában

OEP Betegéletút lekérdezés háziorvosok és vénytörténet lekérdezés patikák számára. API dokumentáció. verzió: 2.01

NYUGTALOTTO JÁTÉKSZABÁLYZAT

ADATBÁZIS-KEZELÉS ALAPOK I.

Word 2010 magyar nyelvű változat

FELHASZNÁLÓI KÉZIKÖNYV

AllBestBid. Felhasználói kézikönyv az AllBestBid online aukciós szolgáltatás használatához március DFL Systems Kft.

Adatbázisok I Adatmodellek komponensei. Adatbázis modellek típusai. Adatbázisrendszer-specifikus tervezés

Táj ékozt at ó köz finansz ír oz ot t felh asználók r és zére

komplex védelem Letöltő szoftver ismertető V1.61 Azonosító: EP Budapest, február

DB2 Connect Personal Edition telepítése és beállítása

ADATBÁZISOK, ADATTÁRHÁZAK

Felhaszna ló i ú tmútató

INFORMATIKA Emelt szint

ADATKEZELÉSI ÉS ADATVÉDELMI SZABÁLYZAT

TERÜLETFEJLESZTÉSI KONCEPCIÓ II. kötet

Kari Adminisztrátor. Funkcionális leírás

4. A GYÁRTÁS ÉS GYÁRTÓRENDSZER TERVEZÉSÉNEK ÁLTALÁNOS MODELLJE (Dudás Illés)

Delikát Gyűjtsön Osztálykirándulásra! Játék Részvételi- és Játékszabályzata

JOGI ADATBANK CompLex.hu. Hatalmas adatbázis, hatalmas lehetőségekkel az interneten.

Hálózatkezelés: Távoli elérés szolgáltatások - PPP kapcsolatok

Everlink Parkoló rendszer Felhasználói és Üzemeltetési útmutató

HÁZIPÉNZTÁR PROGRAM. Kezelési leírás

Oracle BI Administration Tool. Repository felépítése

A rendszert négy komponensből építjük fel, amelyek a következők:

Gyakori kérdések GINOP Digitális szakadék csökkentése projekt. 7 mrd Ft

12. tétel. Lemezkezelés

2010. E-KÖZIGAZGATÁSI ALAPISMERETEK Oktatási segédanyag

SAP vállalatirányítási rendszer alapjai

Általános Szerződési és Felhasználási Feltételek. 1. Bevezetés. 2. Eladó adatai

Adatbázisok I A relációs algebra

TARTALOM AZ INFORMATIKA FOGALMA A fogalom kialakítása Az informatika tárgyköre és fogalma Az informatika kapcsolata egyéb

Adatbázis háttér játszóházi beléptető és nyilvántartó rendszerhez Egy valós rendszer bemutatása

HÁZIREND. Általános szabályok

10193/12 KH/md DG E2

Informatikus informatikus Térinformatikus Informatikus T 1/9

ETR Pénzügyi közönségszolgálat

IBM Business Monitor 7. változat 5. alváltozat. IBM Business Monitor telepítési kézikönyv

Az Egri Kistérség területfejlesztési koncepciója. és programja

Adatkezelési tájékoztató

BBS-INFO Kiadó, 2013.

Történeti áttekintés

Budapest Főváros XXIII. kerület, Soroksár Önkormányzata

MAGYAR POSTA BEFEKTETÉSI ZRT. e-befektetés. Felhasználói kézikönyv

VEGA Energiagazdálkodó rendszer

Kitöltési útmutató a muzeális intézményekről szóló OSAP 1444-es adatgyűjtő kérdőívhez

IV. Szakmai szolgáltatások funkcionális tervezése

KÖZÖSSÉGI PORTÁL HASZNÁLATA AZ INFORMATIKAI TÁRGYÚ

Tűgörgős csapágy szöghiba érzékenységének vizsgálata I.

AZ ÉPÍTÉSI MUNKÁK IDŐTERVEZÉSE

ÁLTALÁNOS SZERZŐDÉSI FELTÉTELEK

Általános Szerződési és Regisztrációs Feltételek

4. sz. Füzet. A hibafa számszerű kiértékelése 2002.

Microsoft Office 2010

A nemzetközi vándorlás hatása a magyarországi népesség számának alakulására között 1

Szakiskolai Fejlesztési Program II. XII. Monitoring jelentés III. negyedév. Monitoring I. szakasz zárójelentés

1. A beszámolókészítés alapjai

I. A légfékrendszer időszakos vizsgálatához alkalmazható mérő-adatgyűjtő berendezés műszaki

Hungária Informatikai Kft.

Átírás:

Adatbázisok és adattárházak az információs rendszerek adatkezelői (Klárné Barta Éva) Részlet az Adatbáziskezelés és vállalati információs rendszerek című jegyzetből. Az első adatfeldolgozó rendszerek néhány file-ban tárolt kis mennyiségű adattal dolgoztak, amely csak egyetlen számítógépen volt elérhető. Később az adatok mennyisége és bonyolultsága egyre növekedett, az adatokat használó felhasználók számával együtt. Az adatokat már nemcsak tárolták és visszakeresték, hanem különböző alkalmazások segítségével feldolgozták, elemezték azokat. A számítógépes világhálózat létrejöttével pedig felmerült az igény, hogy a tárolt adatokhoz a világ bármely pontjáról hozzá lehessen férni. Ezek az elvárások egyre sokrétűbb adatkezelő eszközök kidolgozását igényelték, így alakultak ki a ma széleskörűen használt adatbáziskezelő rendszerek, majd a különböző adatforrásokból származó adatokat integráló adattárházak. ADATBÁZISOK ÉS ADATBÁZISKEZELŐ RENDSZEREK A vállalati információs rendszerekhez tartozó nagymennyiségű adatot adatbázisokba szervezve tárolják a számítógépek háttértárain. Az adatbázis együtt tárolt, egymással összefüggő adatok rendszere. Az adatok meghatározott szerkezet szerint kerülnek tárolásra, ez a szerkezet az adatbázis struktúrája. A struktúra leírását szintén az adatbázisban tárolják, ezt az adatbázis sémájának nevezzük, a séma leírására szolgáló adatokat szokás metaadatoknak is hívni. Az adatbázisok file-okból épülnek fel, de speciális szerkezetük miatt hagyományos file-kezelő rendszerekkel nem lehet a bennük tárolt adatokhoz hozzáférni. Az adatbázisok kezelésére adatbáziskezelő rendszereket fejlesztettek ki. Az adatbáziskezelő rendszer (ABKR) egy programcsomag (software), amely tulajdonképpen egy bonyolult file-kezelő rendszer. Ennek része a tényleges adatkezelést végző program, az adatbázis motorja (engine). A korszerű adatbáziskezelő rendszerek nagyrészt interaktív módon működnek, vagyis párbeszédet folytatnak a felhasználóval, aki megfogalmazza kéréseit, és a program azonnal végrehajtja azokat. A felhasználó, illetve azok az alkalmazások, amelyek segítségével a felhasználó az adatbázisban tárolt adatokat feldolgozza, csak az adatbáziskezelő rendszeren keresztül férhetnek hozzá az adatbázisban tárolt adatokhoz.

1. ábra: A felhasználók az adatbáziskezelő rendszeren keresztül érik el az adatbázisban tárolt adatokat Egy adatbáziskezelő rendszer legfontosabb feladatai: az adatbázis létrehozása az adatok karbantartása az adatok lekérdezésének biztosítása a felhasználók munkájának szinkronizálása az adatok védelme Az adatok karbantartásán az új adatok felvitelét, a meglévő adatok módosítását, vagy törlését értjük. A legtöbb adatbáziskezelő rendszer a karbantartó műveleteket tranzakciókként kezeli. Egy tranzakció egy felhasználó által végzett karbantartó műveletek sorozatából áll, ezeknek a műveleteknek az eredménye nem kerül be ténylegesen az adatbázisba egészen addig, amíg a felhasználó egy COMMIT utasítás segítségével meg nem erősíti azokat. Ezzel egyben lezárja a tranzakciót. A következő karbantartó utasítással egy új tranzakció kezdődik. Amíg a felhasználó nem zárta le a tranzakciót, alapértelmezés szerint a többi felhasználó az adatok eredeti állapotát látja. Ha a felhasználó nem kívánja megerősíteni a tranzakció során elvégzett műveleteket, akkor a ROLLBACK utasítás segítségével törölheti a tranzakció során végrehajtott adatváltoztatásokat. Az adatbáziskezelő rendszerek lehetővé teszik az AUTOCOMMIT beállítását, ekkor minden karbantartó utasítás után automatikusan megtörténik a COMMIT. 2

A felhasználók munkájának szinkronizálására akkor van szükség, ha az adatbázis adataihoz egyszerre több felhasználó is hozzáférhet. Ekkor az adatbáziskezelő rendszernek biztosítania kell, hogy ne történjen adatvesztés, vagy hibás adatfelvitel. Ugyanazt az adatot egy időben több felhasználó is kiolvashatja az adatbázisból, ez nem okoz semmilyen problémát. Ha azonban ugyanazt az adatrekordot egy időben több felhasználó is módosítja, akkor a módosítások közül csak az kerül az adatbázisba, amelyiket utoljára fejeztek be, a többi felhasználó módosítása felülíródik. Ezért nem lehet megengedni, hogy egy adatrekordot egyszerre többen módosítsanak. Ennek legelterjedtebb módszere a rekord zárolása. A módosítás előtt a rekordot zárolni kell, a módosítás befejezése után pedig a zárolást fel kell oldani. Amíg egy rekord zárolva van, addig azt más felhasználó nem zárolhatja, így nem is módosíthatja. Szükség esetén egy adatbázisban nagyobb egységek is zárolhatók, akár a teljes adatbázis is. Kevésbé elterjedt szinkronizációs eljárás az, ha az adatbáziskezelő rendszer megengedi egy rekord módosítását több felhasználónak is egyszerre, de amikor a felhasználó a módosítást vissza kívánja írni az adatbázisba, ellenőrzi, hogy a rekord kiolvasása óta megváltozott-e a tárolt rekord tartalma. Ha igen, nem engedélyezi a módosítás visszaírását. Ekkor a rekordot újra ki kell olvasni és újra el kell végezni a módosítást. Az adatbázisban tárolt adatokat több szempontból is védeni kell. Ki kell szűrni az adatfelvitel során az esetleges hibás adatokat, védekezni kell az illetéktelen felhasználók ellen, valamint meg kell védeni az adatbázis adatait az adathordozók fizikai sérüléseitől. Az adatbázisba bekerülő adatokra vonatkozó megszorításokat részben az adatbázis sémájában lehet leírni, részben pedig az adatkarbantartásra szolgáló alkalmazásban. Ilyen megszorítások lehetnek például az értékhatárok, vagy az értékkészlet megadása, továbbá megkövetelhetjük az adatok közötti bizonyos összefüggések meglétét is. Az adatbáziskezelő rendszer nem enged olyan adatot bevinni az adatbázisba, amely nem felel meg a sémában előírtaknak (típus, méret, megszorítások), vagy nem teljesülnek rá az összefüggések, például egy dolgozó munkahelye csak olyan osztály lehet, amelyik a szervezeti felépítésben szerepel. Az adatokhoz történő illetéktelen hozzáférések megakadályozására a felhasználók azonosítót kapnak, és csak jelszó segítségével férhetnek hozzá az adatbázisban tárolt adatokhoz. A felhasználói névhez különböző jogok rendelhetők, például lekérdezési jog, vagy módosítási jog. Az adatbázisban található objektumokhoz szintén rendelhetők jogok. A felhasználó tényleges jogát egy objektum esetén a felhasználóhoz rendelt jogok és az objektumokhoz rendelt jogok metszete adja, vagyis például csak akkor módosíthatja az objektumban tárolt adatokat, ha rendelkezik módosítási joggal, és az objektumon is engedélyezett a módosítás. Az objektumokhoz rendelt jogok segítségével bizonyos objektumok elrejthetők a felhasználók elől, így minden felhasználó az adatbázisnak csak azon részét látja, amelyikre a munkájához szüksége van. Mivel az adatbázisok bonyolult belső szerkezet szerint épülnek fel, operációsrendszer szintről többnyire nem értelmezhető az adatbázisállományok adattartalma, tehát azok a felhasználók, akik nem jogosultak az 3

adatbázisba történő belépésre, operációs rendszer szintről sem tudnak hozzáférni az adatbázis adataihoz. Az adatbázisban tárolt adatokat meg kell védeni attól, hogy a számítógép valamely elemének meghibásodása, vagy programhiba miatt megsérüljenek, vagy akár teljesen megsemmisüljenek. Ennek legegyszerűbb módja az, ha az adatbázist alkotó fájlokról időről-időre biztonsági másolatot készítünk (teljes mentés). Ez a módszer azonban nem használható nagy adatbázisok esetén, és nem elegendő nagyon változékony adatbázisoknál sem (például banki alkalmazások). On-line mentés alkalmazása esetén a két teljes mentés között történő módosításokat egy külön állományba mentik, párhuzamosan a módosítás elvégzésével. Egy esetleges meghibásodáskor vissza kell tölteni az utolsó teljes mentést, majd átvezetni rajta az azóta történt módosításokat. Így gyakorlatilag a hiba bekövetkeztekor fennállt állapotot lehet visszaállítani, csak a le nem zárt tranzakciók módosításai vesznek el. Nagymértékben növeli az adatbiztonságot, ha az adatbázist több példányban tároljuk, más-más adathordozókon. Ezt az adatbázis tükrözésének nevezzük. Ilyenkor a módosításokat mindegyik példányon át kell vezetni. Nagyobb adatbázisok üzemeltetését nem lehet a felhasználókra bízni. Szükség van olyan személyre, vagy személyek egy csoportjára, aki az adatbázis működéséért felelős. Ő az adatbázis-adminisztrátor (DataBase Administrator, DBA). Az ő feladatai közé tartozik az adatbázis létrehozása, az adatbáziskezelő rendszer indítása, leállítása, a felhasználói jogok meghatározása és a fizikai adatvédelem. A software-piacon számos adatbáziskezelő rendszer található. Minden adatbázistípushoz saját adatbáziskezelő rendszer tartozik, egy adatbáziskezelő csak azokat az adatbázisokat tudja feldolgozni, amelyeket ugyanezzel a típusú adatbáziskezelő rendszerrel hoztak létre, ugyanis a különböző adatbázisok belső szerkezete nagymértékben eltér egymástól. Sok esetben ugyanannak az adatbáziskezelőnek a különböző verziói sem egyforma felépítésű adatbázisszerkezetet hoznak létre, így ha át akarunk térni egy másik verzióra, az adatbázist át kell konvertálni. Az adatbázisok belső felépítése, valamint az adatok elérési módja döntően befolyásolja az adatbáziskezelés sebességét. A különböző adatbáziskezelő rendszerek versenyének ez az egyik legfontosabb területe. A sebességek összehasonlítására úgynevezett benchmark teszteket végeznek, amelyek során nagy adatmennyiséggel nagytömegű tranzakciót és lekérdezést hajtanak végre. A vezető adatbáziskezelő rendszereket általában nemcsak egy platformra dolgozzák ki, hanem a legelterjedtebb operációsrendszerek mindegyikére (pl. Windows, UNIX, LINUX). Napjainkban a legelterjedtebb adatbázisok a relációs adatmodell szerint épülnek fel. 4

Adatmodellezés Az adatmodellezés olyan eljárás, melynek során a valós világ tényeit és összefüggéseit tükröző adatok lényeges sajátosságait és lényeges összefüggéseit emeljük ki. Eredménye az adatmodell. Az adatbázisok mindig valamilyen adatmodellen alapulnak. Az adatmodelleket az alábbi jellemzők segítségével adjuk meg, írjuk le: Azokat a dolgokat, amelyek adatait le szeretnénk írni, egyedeknek, vagy objektumoknak nevezzük. Ezek lehetnek tárgyak, személyek, vagy akár események is. Például Hallgatók, Tantermek, Vizsgák. Az egyedek konkrét előfordulásai például "Kiss Jolán", "112-es terem", "2007.01.22-i Információs rendszerek vizsga". Egy adott egyed által képviselt összes előfordulás halmazát egyedhalmaznak nevezzük. Például a Hallgatók nevű egyedhalmaz az összes hallgatóból áll, a Terem nevű egyedhalmaz pedig az összes teremből. Az egyedeket tulajdonságokkal, attribútumokkal írjuk le. Az adatmodellezés fontos lépése, hogy az egyed számtalan tulajdonsága közül kiválasszuk azokat, amelyek számunkra lényegesek. Az adatmodellben csak ezek a tulajdonságok szerepelnek. Például egy hallgató tulajdonságai lehetnek a név, születési dátum, szak, évfolyam, testmagasság, szeme színe stb. Ha egy egyetemen hallgatói nyilvántartást készítenek, úgy ezek közül a név, születési dátum, szak, évfolyam tulajdonságokkal fogják jellemezni a hallgatókat, míg egy rendőrségi nyilvántartásban a név, születési dátum, testmagasság, szeme színe tulajdonságokat fogják használni. Amennyiben egy tulajdonság, vagy a tulajdonságok egy csoportja egyértelműen meghatározza, hogy az egyed melyik értékéről, vagyis az egyedhalmaz melyik eleméről van szó, akkor ezeket a tulajdonságokat kulcsnak, vagy azonosítónak nevezzük. Elvileg minden egyedhalmaznak van kulcsa, hiszen az egyedeket úgy határoztuk meg, hogy egymástól megkülönböztethetők legyenek. Így legrosszabb esetben az összes tulajdonság együtt alkotja a kulcsot. Ha nem tudunk kiválasztani olyan tulajdonságokat, melyek az egyedhalmaz elemeit egyértelműen meghatározzák, nagyon sok tulajdonság értékét kell megadni az egyértelmű azonosításhoz, akkor be kell vezetnünk egy olyan tulajdonságot - például sorszám, kódszám - amely ezt biztosítja. A Hallgatók egyedhalmazban például hallgatókódot rendelhetünk a hallgatókhoz, a termékeket pedig cikkszámmal látják el a könnyebb azonosítás végett. A hallgatónak a hallgatókód nem természetes tulajdonsága, épp így a cikkszám sem természetes tulajdonsága a terméknek. Ha a kulcs egyetlen tulajdonság, akkor egyszerű kulcsnak nevezzük, amennyiben több tulajdonság alkotja a kulcsot, akkor összetett kulcsról beszélünk. 5

A különböző egyedhalmazok kapcsolatban állhatnak egymással. Azokat a logikai összefüggéseket, amelyeket az egyedhalmazok közös tulajdonságai fejeznek ki, kapcsolatoknak nevezzük. Például a Hallgatók és a Vizsgák egyedhalmazok közötti kapcsolat lehet az, hogy kik vizsgáznak az adott napon a megadott tárgyból. A kapcsolatoknak három típusát különböztetjük meg. Egy-egy típusú kapcsolat (1:1 kapcsolat) Az egyik egyedhalmaz egy eleméhez a másik egyedhalmaz pontosan egy eleme kapcsolódik. Például a vidéki önkormányzatok halmaza és a polgármesterek egyedhalmaza között egy-egy típusú kapcsolat van. 1: 1 tí pus ú kapcs olat Egy-több típusú kapcsolat (1:N kapcsolat) Az egyik egyedhalmaz egy eleméhez a másik egyedhalmaz több eleme is tartozhat, de a másik egyedhalmaz egy eleméhez az egyik egyedhalmaz csak egy eleme tartozhat. Például a Raktárak és a Dolgozók közötti kapcsolatban egy raktárhoz több dolgozó is tartozhat, de egy dolgozó csak egy raktárban dolgozhat. 1: N t ípus ú ka pcs ol at 6

Több-több típusú kapcsolat (N:M kapcsolat) Az egyik egyedhalmaz egy eleméhez a másik egyedhalmaz több eleme is tartozhat és ennek a fordítottja is igaz. Például az Áruk és a Szállítások közötti kapcsolat több-több típusú kapcsolat, hiszen egy szállítás során többféle árut is vihetnek, de egy áruféleséget több szállítással is szállíthatnak. N :M tí pus ú kapc s ol at Az adatmodell elkészítése során meg kell adnunk az adatokra vonatkozó megszorításokat is, ezek szintén a séma részei lesznek. A legfontosabb megszorítástípusok: Kulcsok: a megszorítások között szokás megadni az egyedhalmazok kulcsát. Egyértékűségi megszorítások: megköveteljük, hogy egy egyedhalmazon belül egy adott tulajdonság értéke minden egyednél különböző legyen. Ennek speciális esetei a kulcsok, de nem azonosító tulajdonságnál is előfordulhat ilyen megszorítás, például egy hallgató egyedhalmaz kulcsa a hallgatókód, de a személyigazolvány-számnak is minden egyednél egyedinek kell lennie. Hivatkozásépség-megszorítások (referenciális integritás): megköveteljük, hogy egy hivatkozott érték szerepeljen az adatbázisban. Például egy hallgató nem vehet fel olyan tantárgyat, amely nem szerepel a tantárgyak egyedhalmazában. Értékkészlet-megszorítások: egy tulajdonság értékeit csak egy meghatározott halmazból veheti fel, például az érdemjegy csak 1, 2, 3, 4, 5 lehet. Általános megszorítások: tetszőleges követelmények, amelyeket az adatokkal szemben támasztunk. Például, egy dátum nem lehet későbbi az aktuális dátumnál. 7

Relációs adatmodell A relációs adatmodell az adatok táblázatos ábrázolásán alapul. Ebben az adatmodellben a reláció egy névvel ellátott táblázat. Egy táblázat sorai egy egyedhalmaz egyedeinek leírását tartalmazzák. Egy adatmodellben általában több egyedhalmaz szerepel (hallgató, oktató, tantárgy, terem, vizsga)), így több táblázatban kell leírni őket, ezek a táblázatok pedig kapcsolatban állnak egymással, hiszen ezért tartoznak egy adatmodellhez. Az egyedeket tulajdonságaikkal írjuk le, ezek a tulajdonságok alkotják a táblázat oszlopait. Például a Hallgató táblázat egyik oszlopa a név, a másik a születési dátum, stb. A táblázat struktúrájának leírása Egy relációs adatbázisban meg kell adnunk minden táblázat struktúrájának leírását. Ennek során rögzíteni kell az egyes oszlopok nevét, típusát és méretét. Egy oszlopban csak a típusának megfelelő adat tárolható. A legfontosabb adattípusok: számok (numerikus adatok) szövegek (karakteres adatok) dátum, vagy idő adatok Az oszlopok mérete rögzített, nem függ a benne tárolt adat méretétől. Ha például a Név oszlop méretét 40 karakternek definiáljuk, akkor abban 0-tól 40 karakterig terjedő hosszúságú neveket tárolhatunk, de az oszlop mérete akkor is 40 karakter lesz, ha a leghosszabb név sem éri el ezt. Szintén a struktúraleírásban kell megadni az egyes oszlopokra vonatkozó megszorításokat is. Egy adatbázisban tárolhatók hosszabb összefüggő szövegek is, ezeket feljegyzés, vagy hosszú karakteres típusú mezőkbe lehet felvinni. Ennek az adattípusnak nincs meghatározott mérete. Multimédiás objektumokat pl. képek, hang-file-ok szintén elhelyezhetünk egy adattáblában, ezeket vagy hosszú karakteres mezőkben, vagy speciális OLE (Object Linking and Embedding) objektumokat tartalmazó mezőkben, vagy BLOB (Binary Large OBject) - nagyméretű bináris objektum - típusú mezőben kell tárolni. Kulcsok Ahhoz, hogy a táblázatban szereplő egyedeket egyértelműen azonosítani tudjuk, a táblázatnak rendelkeznie kell kulccsal. Az adatmodell elkészítésekor rögzítenünk kell, hogy a lehetséges kulcsok közül melyiket fogjuk a tábla sorainak, vagyis az egyedeknek az azonosítására használni, ezt a kulcsot elsődleges kulcsnak, vagy primary key-nek nevezzük. Például a Hallgató táblában lehetséges kulcs a név és a születési dátum együttes megadása, de lehetséges kulcs a hallgató kód is. Az adatmodell 8

készítésekor meg kell adnunk, hogy melyiket fogjuk elsődleges kulcsként használni. A táblák közötti kapcsolatot sok esetben az biztosítja, hogy az egyik táblázatban benne szerepel a másik táblázat elsődleges kulcsa. Ezt a mezőt az első táblázatban idegen kulcsnak nevezzük. Példa: ANYAG tábla Cikkszám Megnevezés Mennyiségi egység Egységár (Ft) 120306 Lemezcsavar db 5 302564 Facsavar db 4 523652 Alumínium lemez db 1500 212121 Vaspor kg 842 A példánkban a tábla neve ANYAG, a sorai egy-egy anyag leírását tartalmazzák, az anyagokat jellemző tulajdonságaikkal cikkszám, megnevezés, mennyiségi egység, egységár írjuk le, ezek a tábla oszlopai. A tábla elsődleges kulcsa a cikkszám. KÉSZLET tábla Raktárszám Cikkszám Mennyiség 2100 120306 1000 2200 302564 5000 2100 302564 3500 2300 120306 1200 A KÉSZLET tábla elsődleges kulcsa a raktárszám és a cikkszám (összetett kulcs). Ebben a táblában benne szerepel az ANYAG tábla elsődleges kulcsa, vagyis a cikkszám. Itt a cikkszám idegen kulcs is, mert egy másik tábla elsődleges kulcsa. Ez a mező biztosítja a kapcsolatot a két tábla között, a KÉSZLET tábla adataiból nem tudjuk megmondani, hogy mi a 120306 cikkszámú anyag, és hogy a mennyiség miben értendő, csak az ANYAG tábla segítségével derül ki, hogy ez lemezcsavar és a mennyiség darab. Az idegen kulcs általában nem része az elsődleges kulcsnak, de mint példánk mutatja -, az is lehet 9

A relációs adatbázisok legfontosabb típusai A legtöbb relációs adatbázis az alábbi két csoport valamelyikébe sorolható: dbase típusú adatbázisok SQL alapú adatbázisok A dbase típusú adatbázisok egyszerűbb felépítésűek, az adatbáziskezelő rendszerük is kevesebb funkciót lát el, így például az adatvédelmet a felhasználói programokba kell beépíteni. Általában kis adatbázisok kezelésére használják őket. A legelterjedtebb a dbase III adatbázistípus. Az SQL alapú adatbázisok az SQL (Structured Query Language) nyelvet használják az adatok karbantartására, lekérdezésére. A vezető relációs adatbázisok ebbe a csoportba tartoznak, így az egyik legelterjedtebb adatbáziskezelő rendszer az ORACLE, továbbá a DB2, INFORMIX, SYBASE és a Microsoft Sqlserver-e. is. Ezek az adatbáziskezelők általában fejlett adatvédelmi rendszerrel és számos, a felhasználó munkáját segítő, vagy a bonyolult adatrendszerek kezelését lehetővé tevő funkcióval rendelkeznek. Vannak olyan dbase típusú adatbázisok is, amelyek az SQL nyelv segítségével kezelhetők, ilyen például a dbase IV. Többfelhasználós adatbázisok A nagyobb adatbázisok általában több felhasználó kiszolgálására jönnek létre. Ebben az esetben biztosítani kell, hogy az adatbázis adataihoz minden felhasználó hozzáférhessen. Ekkor az adatbázist egy központi gép (szerver) merevlemezein helyezik el, a felhasználók pedig egy lokális hálózaton keresztül érik el az adatbázisban tárolt adatokat. Az SQL alapú adatbáziskezelő rendszerek általában kliens-szerver architektúra szerint felépülő hálózatokon működnek, ami azt jelenti, hogy a központi gépen fut maga az adatbáziskezelő rendszer, a kliens gépeken pedig az alkalmazások. Az alkalmazások SQL parancsokat küldenek a központi gépnek, ott az adatbáziskezelő végrehajtja azokat, és az eredményt visszaküldi a kliensnek. Egy módosítás eredménye például az, hogy a módosítás sikeresen megtörtént, egy lekérdezés eredménye pedig a feltételeknek megfelelő adatok csoportja. 2. ábra: Kliens-szerver architektúra 10

Alkalmazás szerver (Application server) Nagy erőforrás igényű alkalmazásoknál célszerű több szintű hálózatot felépíteni. A legfelső szint az adatbázis-szerver szintje, ennek feladata az adatok kezelése, megosztása, a következő szint az alkalmazás-szerver(ek) szintje. Ezeken a szervereken futnak azok az alkalmazások, amelyek a bonyolult, nagy számításigényes adatfeldolgozásokat megvalósítják, vagyis az alkalmazások programját osztják meg a kliensek között. A legalsó szinten, a kliensek gépein csak az adatok bevitele, illetve az eredmények megjelenítése történik (front-end alkalmazások). Ez egyrészt erőforrás megtakarítással jár, - mert a kliens oldalon nem követel meg erős gépeket, - növeli a biztonságot, másrészt gyorsítja az alkalmazások végrehajtását. A klienseknek éppúgy felhasználói névvel és jelszóval kell bejelentkezniük az alkalmazás-szerverre, mint kétszintű hálózatnál az adatbázis-szerverre. A felhasználókhoz hozzárendelhető, hogy mely alkalmazásokat futtathatják. Az adatbázisszerverre az alkalmazásszerveren futó alkalmazás jelentkezik be, ez a kliens elől elrejtve történik. A front-end alkalmazásoktól megkülönböztetendő, a háttérben futó, a felhasználó számára láthatatlan alkalmazásokat szokás back-end alkalmazásoknak nevezni. 3. ábra: Több szintű hálózat adatbázis-szerverrel és alkalmazás-szerverekkel Osztott adatbázisok Nagy adatbázisok esetén előfordulhat, hogy az adatok nem egyetlen számítógép merevlemezein helyezkednek el, hanem fizikailag különálló szervergépeken. Ezek a gépek egy-egy lokális hálózat központi gépei, és egymással is kapcsolatban állnak. Azok az adatbáziskezelő rendszerek, amelyek lehetővé teszik az osztott adatbázisok kezelését, biztosítják, hogy bármelyik lokális hálózatba kapcsolt felhasználó a fizikailag különböző gépek merevlemezein tárolt adatokat logikailag egyetlen adatbázisnak lássa. 11

Az osztott adatbázisok kezelésének egyik legnagyobb problémája a fizikailag különböző adatbázisokban végzett egyidejű, összefüggő módosítások kezelése. Ugyanis előfordulhat, hogy a módosítás sikeresen lezajlik az első adatbázisban, azonban hiba történik a második adatbázisbeli módosítás esetén. Ekkor az első adatbázisba a módosítások belekerültek, míg a másodikba nem. Így az adatok integritása már nem áll fenn. Ezért olyan megoldásra van szükség, amely garantálja, hogy az összefüggő módosítások minden adatbázisban megtörténjenek. Erre szolgál a két fázisú commit (two-phase commit) eljárás.. Az első fázisban a commit művelet nem kerül ténylegesen végrehajtásra, csak az előkészítése történik meg, melynek során az adatbáziskezelő rendszer meggyőződik arról, hogy nincs akadálya az adatok tényleges módosításának. Ha a tranzakcióban résztvevő minden adatbázisban sikeres volt az előkészítés, akkor a második fázisban megtörténik a tényleges commit végrehajtása. Ha az előkészítés során valamelyik adatbázis hibát jelez, akkor a második fázisban a tranzakcióban résztvevő összes adatbázisban megtörténik a tranzakció visszagörgetése, így az adatok konzisztensek maradnak. Internetes adatbázisok 4. ábra: Osztott adatbázis Az Internet használatának széleskörű elterjedésével megjelentek az Interneten keresztül elérhető adatbázisok, biztosítva azt, hogy egy adatbázishoz a kliensek a világ bármely pontjáról hozzáférhessenek. Az adatbázis továbbra is egy központi szerver gépen helyezkedik el, kliens lehet bármely olyan számítógép, amely Internet-eléréssel rendelkezik. A kommunikációhoz valamely Internetes protokollt használják fel. Az alkalmazások vagy Web-es böngésző program felületén futtathatók, vagy a JDBC (Java DataBase Connectivity) protokoll segítségével közvetlenül kommunikálnak az adatbáziskezelő rendszerrel.. Az 12

Internetes adatbázisok megjelenésével lehetővé vált, hogy az adatbázis és az adatbáziskezelő rendszer nem a felhasználó cég számítógépén, hanem egy szolgáltató, vagy az alkalmazást fejlesztő software-ház számítógépén kerüljön elhelyezésre, ott működjön. Így a cég mentesül a nagy értékű hardwareberuházás alól, továbbá nincs szüksége szakembergárdára a számítógépek és az adatbázisok üzemeltetéséhez. Az adatbázisadminisztrációt a szerver tulajdonosa végzi el, a cég felhasználói pedig Interneten keresztül futtathatják az alkalmazásokat, így végezhetik az adatok karbantartását, lekérdezését. Műveleti adatbázisok OLTP rendszerek Amikor a vállalatok, bankok, kereskedőházak áttértek ügyviteli és termelési adataik számítógépes nyilvántartására, elsődleges céljuk az volt, hogy a tárolt adatok pontosan tükrözzék az adott cég aktuális állapotát (megrendelések, raktárkészlet, stb.). Az ilyen céllal kialakított adatbázisok úgynevezett operatív, vagy műveleti adatbázisok. A bennük tárolt adatok állandóan változnak, hiszen mindig az aktuális állapotot kell mutatniuk. Az adatbáziskezelő legfontosabb feladata a megbízható tranzakciókezelés, vagyis az adatok felvitelének, karbantartásának biztosítása. Ezért azokat az alkalmazásokat, amelyek az ilyen típusú adatbázisok adatkezelését végzik OLTP (On-Line Tranzaction Processing), On-Line tranzakció-feldolgozó alkalmazásoknak nevezzük. Döntéstámogató rendszerek OLAP rendszerek A műveleti adatbázisokba óriási mennyiségű információ kerül felvitelre, ezeknek az adatoknak az elemzésével számos következtetést lehetne levonni a cég működésével kapcsolatban. Ehhez azonban nemcsak a pillanatnyi állapotot tükröző adatokra, hanem a múltbeli értékekre is szükség lenne. Az OLTP rendszerek legfontosabb feladata a tranzakció kezelés, ezért nem biztosítanak hatékony megoldást sem az idősorok tárolására, sem ezen adatok feldolgozására. Az információs rendszerek egy viszonylag fiatal ága, a döntéstámogató rendszerek (Decision Support System, DSS) hivatottak arra, hogy a folyamatokat időben vizsgálják, a múltbeli adatok felhasználásával próbáljanak következtetéseket levonni a jövőre nézve. Ezen rendszerek felhasználói általában a cégek vezetői. A döntéstámogató rendszerek nagy mennyiségű adattal dolgoznak, melyeket időponttal is el kell látni, hiszen nemcsak az aktuális állapotokat tükröző adatok, hanem a régebbiek is szerepelnek a rendszerben. Az itt tárolt adatok nem változnak, ezért nincs szükség a karbantartásukra, a tárolt adatok köre egyre bővül, bizonyos időközönként a műveleti adatbázisok adatai betöltődnek a rendszerbe. Természetesen a túl régi adatok, amelyekre már nincs szükség, kitörölhetők. A döntéstámogatási rendszerek legfontosabb művelete a lekérdezés, és az adatok elemzése. Azokat a rendszereket, amelyek célja nagymennyiségű adat feldolgozása, OLAP (On-Line Analitical Processing) on-line analitikus elemző rendszereknek nevezik. Ezekben a rendszerekben a legfontosabb az adatok hatékony, gyors visszakeresése és a különböző adatelemzési eljárások alkalmazása. 13

OLTP kisebb adatmennyiség karbantartás aktuális állapot OLAP nagy adatmennyiség lekérdezés archívum gyakori rövid ideig tartó tranzakció kevesebb, hosszabb időt igénylő tranzakció sok konkurens művelet homogén adatforrás kevés konkurens művelet heterogén adatforrás Az OLTP és az OLAP rendszerek összehasonlítása Adattárházak (Data Warehouse) Az analitikus elemző rendszerek feladatuk miatt alapvetően más adatkezelő rendszert igényelnek, mint a tranzakció feldolgozó rendszerek. Erre a célra adattárházakat szoktak kialakítani. Az adattárház (data warehouse) egy témaorientált, integrált adatrendszer, amelynek legfőbb feladata az adatok lekérdezésének, elemzésének támogatása. Az adattárházban tárolt adatok mennyisége többnyire terabyte-okban mérhető. Az adattárházak általában műveleti adatbázisokon alapulnak, többnyire nem is egy homogén adatforrásból, hanem több, többféle felépítésű adatbázisból kapják adataikat. Az adatok betöltés, majd időszakos frissítések során kerülnek az adattárházba. Ahhoz, hogy a különböző adatmodellekből származó adatokat egyetlen rendszerbe lehessen integrálni, a betöltés és frissítés előtt az adatokat egységes formátumúvá kell alakítani, és ki kell szűrni a közöttük fennálló esetleges ellentmondásokat. Ezt az eljárást adattisztításnak nevezzük. Az adattárházakban gyakorlatilag nincs tranzakció kezelés, így szinkronizációs problémák sem fordulnak elő. Ezzel szemben számtalan, sokszor hosszú futási idejű lekérdezést hajtanak végre. A kliens oldalon a lekérdezések eredményét további elemzéseknek vetik alá, ezért az itt használatos eszközök többnyire táblázatkezelők, vagy statisztikai programcsomagok. A nagymennyiségű adat elemzésére adatbányászati (data mining) programokat használhatnak, melyek sokrétű adatelemzést, statisztikák készítését, az adatok közötti összefüggések feltárását teszik lehetővé. Az adattárház kezelő rendszerének fontos feladat, hogy biztosítsa az adatok bizonyos jellemzők szerinti összegzését felfelé (aggregálás, drill up), illetve az adatok bontását lefelé (lefúrás, drill down). Az összegzés során például a termelési értékeket megtekinthetjük, napi, havi, negyedéves, vagy akár éves bontásban is, a lefúrás pedig arra szolgál, hogy például, ha az elemzés kimutatja, hogy a cég eladásai csökkentek az előző évihez képest, részletesebb bontásban vizsgálható, hogy melyik termékkategória esetén, vagy konkrétan mely termékek esetén következett be ez a csökkenés. 14

Az adattárházak nem aktuális adatokkal dolgoznak, a döntéstámogatási rendszerek általában nem is igénylik a napra pontos adatokat, hiszen például a trendek vizsgálatához teljesen megfelelő, ha az adatok csak az előző hétig, vagy esetleg csak az előző hónapig állnak rendelkezésre. Mivel az adattárházak nagyon sok adatot integrálnak, a lekérdezések megkönnyítése érdekében célszerű lehet tematikus részekre bontani, ezek a részek a data mart-ok, vagy adatpiacok. 5. ábra: Egy adattárház helye az információs rendszerben Az adattárházak felépítéséhez már nem megfelelő a hagyományos relációs adatmodell, hiszen például nem tudja hatékonyan biztosítani az adatok több szempont szerinti csoportosítását. Ezért helyette a többdimenziós (multidimenzionális) adatmodellt alkalmazzák. Ebben a modellben az adatok tárolási egysége a kocka. A kocka élei a dimenziók, ezek egy-egy tulajdonságnak felelnek meg, a kocka tartalma pedig a tulajdonságok által meghatározott érték. Például az eladások nyilvántartására kialakíthatunk egy olyan háromdimenziós modellt, amelyben a dimenziók: a termék, az eladás dátuma és az értékesítési piacok, a cellák tartalma pedig egy adott termékből adott napon, adott üzletben eladott mennyiség. 15

Az értékesítési időszakok adatai Adatbázisok és adattárházak az információs rendszerek adatkezelői Az értékesített termékek mennyiség adatai Az értékesített termékek fajtái 6. ábra: Többdimenziós adatmodell Általában ilyen részletezettséggel nincs szükség az adatokra az elemzések során, ezért a dimenziók mentén az adatok összesíthetők, így például a dátum lehet hónap, vagy negyedév, a termék lehet termék-kategória, az üzlet pedig város, vagy régió szintű. A lekérdezések során fogalmazhatjuk meg, hogy az egyes dimenziók mentén milyen szintű összegzést kérünk. A kockát szeletelhetjük (slice) is valamely dimenzió mentén, ekkor az adott dimenzió értékét rögzítjük, így a dimenziók számát csökkentjük, mintegy a nagy kockának egy síkmetszetét vizsgáljuk. Fenti példánkban, ha egy adott termék eladási adataira vagyunk kíváncsiak az idő és a piac függvényében, ez már egy kétdimenziós táblázatban is ábrázolható. Egy másik szeletet választunk ki, ha az eladásokat egy adott időszakban vizsgáljuk, vagy az egy piacon történt eladásokat nézzük. Ha két, vagy több dimenzió értékét rögzítjük egy konkrét értéken, vagy értékhatárok között, akkor az eredeti kockából egy kisebb kockát választunk ki. 16

7. ábra: Szeletelés Természetesen nemcsak háromdimenziós adatmodell alakítható ki, hanem tetszőleges dimenziójú, ezeket azonban már nem lehet ilyen szemléletes módon megjeleníteni. A többdimenziós adatmodell tárolásához az adattárházak gyakran a csillag sémát használják. Ez a séma egy ténytáblából és dimenziótáblákból áll. A ténytáblában egy sor egy adatkocka leírása. Tartalmazza a kocka koordinátáit, és a kockában elhelyezett értéket, vagy értékeket. A koordinátákat úgy tárolják, hogy minden koordináta érték helyett egy mutató található, amelyik a megfelelő dimenziótábla azon sorára mutat, amely ennek a koordinátának a leírását tartalmazza. Például az eladott mennyiségnél a koordináták az idő, a termék és a hely, tehát három mutató szerepel egy sorban, valamint a mennyiség értéke. A dátum mutató a kockához tartozó dátum sorára mutat az idő dimenziótáblájában, a hely mutató az adott üzlet sorára, a termék mutatója pedig az eladott termék sorára a termék dimenziótáblájában. 17

8. ábra: Csillag séma Árnyaltabb adatstruktúra a hópehely séma, ugyanis ebben a dimenziókon belüli hierarchiák is megjeleníthetők. 9. ábra: Hópehely séma 18