Adatbázisok és adatbáziskezelı rendszerek



Hasonló dokumentumok
Az adatbáziskezelés alapjai

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

ADATBÁZISOK, ADATTÁRHÁZAK

ADATBÁZISOK, ADATTÁRHÁZAK

Adatbázis, adatbázis-kezelő

Adatmodellezés. 1. Fogalmi modell

Adatbázis-kezelés. alapfogalmak

INFORMATIKA ÁGAZATI ALKALMAZÁSAI. Az Agrármérnöki MSc szak tananyagfejlesztése TÁMOP /1/A

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

Adatbázis rendszerek. dr. Siki Zoltán

Adatmodellek. 2. rész

Programozás. Adatbázis-kezelés (alapok) Fodor Attila

Adatbázis rendszerek 2. előadás. Relációs algebra

MS ACCESS 2010 ADATBÁZIS-KEZELÉS ELMÉLET SZE INFORMATIKAI KÉPZÉS 1

Gazdasági informatika II (SZIE GTK GVAM 1. évfolyam) 2009/2010. tanév 2. félév

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

Az információs rendszerek adatai

Az adatok a vállalat kulcsfontosságú erőforrásai. Az információs rendszer adatai kezelésének két alapvető változata:

Adatbázis-kezelés az Excel 2013-ban

Az információs rendszerek adatai

Magas szintű adatmodellek Egyed/kapcsolat modell I.

NORMALIZÁLÁS. Funkcionális függés Redundancia 1NF, 2NF, 3NF

Fogalmak: Adatbázis Tábla Adatbázis sorai: Adatbázis oszlopai azonosító mező, egyedi kulcs Lekérdezések Jelentés Adattípusok: Szöveg Feljegyzés Szám

ADATBÁZIS-KEZELÉS ALAPOK I.

Informatikai alapismeretek Földtudományi BSC számára

Adatbázis-kezelő rendszerek. dr. Siki Zoltán

Adatbázis rendszerek 2. előadás. Relációs algebra

Adatbázisok. 4. gyakorlat. Adatmodellezés: E-K modellb l relációs adatbázisséma. Kötelez programok kiválasztása szeptember 24.

Csima Judit szeptember 6.

Adatbázisok elmélete

ADATBÁZIS-KEZELÉS. Adatbázis-kezelő rendszerek

Adatbázismodellek. 1. ábra Hierarchikus modell

A relációs adatmodell

ADATBÁZISOK ADATBÁZIS-KEZELŐ RENDSZEREK. Debrenti Attila

Példa Többértékű függőségek, 4NF, 5NF

Adatbáziskezelés. Indexek, normalizálás NZS 1

Adatbázis-lekérdezés. Az SQL nyelv. Makány György

Célkitűzések Az Oracle10 g felépítésének, használatának alapszíntű megismerése

AB1 ZH mintafeladatok. 6. Minősítse az állításokat! I-igaz, H-hamis

HASZNÁLATI ÚTMUTATÓ DOLGOZÓK IMPORTÁLÁSA KULCS BÉR PROGRAMBA AZ ONLINE MUNKAIDŐ NYILVÁNTARTÓ RENDSZERBŐL. Budapest, november 08.

Adatbázisok - 1. előadás

w w w. h a n s a g i i s k. h u 1

Több felhasználó párhuzamosan olvashatja, bővítheti, módosíthatja és törölheti az adatokat Az adatok konzisztenciájának és biztonságának biztosítása

Bevezetés: az SQL-be

Adatbázis tervezés normál formák segítségével

Mezők viszonya a relációs adatbázis tábláiban

Adatbázis rendszerek Definíciók:

PHP-MySQL. Adatbázisok gyakorlat

7. előadás. Karbantartási anomáliák, 1NF, 2NF, 3NF, BCNF. Adatbázisrendszerek előadás november 3.

Microsoft SQL Server telepítése

Adatbázisok. 3. gyakorlat. Adatmodellezés: E-K modellb l relációs adatbázisséma. Kötelez programok kiválasztása szeptember 21.

Adatbázis rendszerek. 4. előadás Redundancia, normalizálás

Access gyakorlati feladatok lépésről lépésre

Vonalkód olvasó rendszer. Specifikáció Vonalkód olvasó rendszer SoftMaster Kft. [1]

7. Gyakorlat A relációs adatmodell műveleti része

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

TestLine - balla tesztje-03 Minta feladatsor

Archivált tanulmányi adatok importálása. Felhasználói dokumentáció verzió 2.0.

Informatika szigorlat 9-es tétel: Az adatbázis-kezelő rendszerek fogalmai

Adatbáziskezelő-szerver. Relációs adatbázis-kezelők SQL. Házi feladat. Relációs adatszerkezet

Adatbáziskezelés alapjai. jegyzet

Ajánlott irodalom. Adatbázisok I.

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni:

RELÁCIÓS ADATBÁZISSÉMÁK. Egyed-kapcsolat modellről átírás

Microsoft Access alapok

Gyakorlati vizsgatevékenység A

ADATBÁZISKEZELÉS ADATBÁZIS

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

Nyilvántartási Rendszer

SQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai

ADATBÁZIS-KEZELÉS. Relációalgebra, 5NF

INFORMATIKA ÉRETTSÉGI VIZSGA ÁLTALÁNOS KÖVETELMÉNYEI

Adatbáziskezelés alapjai ADATBÁZISKEKZELÉS 1

Tartalomjegyzék. Tartalomjegyzék 1. Az SQL nyelv 1 Az SQL DDL alapjai 2

CCS Hungary, 2000 szeptember. Handling rendszer technikai specifikáció

Adatbázisok gyakorlat

Alkalmazás technológiai frissítés migrációs és üzemeltetési tapasztalatok

MŰSZAKI KÖVETELMÉNYEK, A KÖRKERESŐ SZOFTVER SPECIFIKÁCIÓJA, KÖLTSÉGVETÉS. A) Műszaki követelmények

Adatbázis-kezelés alapjai 1. Ea: Infó Mátrix. Lehet, nem lehet

Moodle -egy ingyenes, sokoldalú LMS rendszer használata a felsőoktatásban

Adatbáziskezelés Delphi 5 alatt. Bese Antal

Help Key Bt Cím: 1142 Budapest Dorozsmai u 211 Számítástechnikai Telefon:


5. Gyakorlat. 5.1 Hálós adatbázis modell műveleti része. NDQL, hálós lekérdező nyelv:

Adatmodellezés, alapfogalmak. Vassányi István

Adatigények. Koncepcionális séma (magas szintű modell) Logikai séma (alacsony szintű modell) Belső séma (fizikai szerkezet, hozzáférési módok)

Választó lekérdezés létrehozása

modell, amiben csak bináris sok-egy kapcsolatok (link, memberowner,

Adatbázisok* tulajdonságai

TvNetTel Internet Kapcsolat Beállítása

Magic xpi 4.0 vadonatúj Architektúrája Gigaspaces alapokon

TERC V.I.P. hardverkulcs regisztráció

Táblák és a közöttük / az adatmezők közötti kapcsolatok grafikusan megjelenítve. 7 tábla, adatmezőik, bennük elsődleges és külső kulcsok

Adatbáziskezelés 1 / 12

Gyakorlati vizsgatevékenység B

6. Gyakorlat. Relációs adatbázis normalizálása

INFORMATIKA ÉRETTSÉGI VIZSGAKÖVETELMÉNYEK AZ ÉRETTSÉGI VIZSGA RÉSZLETES TEMATIKÁJA

BEVEZETÉS AZ ADATBÁZIS KEZELŐ RENDSZEREK ALKALMAZÁSÁBA. Az ADATBÁZIS logikailag összefüggő meghatározott szerkezetben tárolt adatok halmaza.

A FileZilla program beállítása az első belépés alkalmával

Teljesítményértékelések eredményeinek rögzítése a Neptun Egységes Tanulmányi Rendszerben

Átírás:

Adatbázisok és adatbáziskezelı rendszerek Az első adatfeldolgozó rendszerek néhány fájlban 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 fájlokból épülnek fel, de speciális szerkezetük miatt hagyományos fájlkezelő 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 (szoftver), amely tulajdonképpen egy bonyolult fájlkezelő 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

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. A tranzakció során végrehajtott módosítások nem kerülnek 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. Az adatok módosítása nem közvetlenül az adathordozón történik, hanem a módosítandó rekord beolvasásra kerül a felhasználó számítógépének memóriájába, ott megtörténik a módosítás, majd a rekord visszaíródik az adathordozóra. Ha ugyanazt az adatrekordot egy időben két felhasználó is módosítaná, akkor először mindketten kiolvassák a rekordot, elvégzik a módosítást, majd az a felhasználó, aki előbb végzett a módosítással, visszaírja a rekordot, ezután a másik felhasználó is visszaírja az általa módosított rekordot, ezzel felülírja az első felhasználó módosítását. 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, a tartalmát azonban bárki kiolvashatja. 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, amikor a rekordok az adatmezőkön kívül tartalmaznak még egy kódmezőt is, amelynek tartalma mindig megváltozik, ha a rekordot visszaírják. Ennek segítségével ellenőrizhető, hogy a rekord kiolvasása óta történt-e módosítás a rekordban. Itt az adatbáziskezelő rendszer nem akadályozza meg az egyidejű módosítást, hanem a rekord visszaírásakor ellenőrzi, hogy az adathordozón levő rekord kódmezője megegyezik-e a visszaírandó rekord kódmezőjével. Ha igen, az azt jelenti, hogy a kiolvasás óta nem módosult a rekord, így engedélyezi a visszaírást, ha nem, 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 3

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

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. 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 adatmodell elkészítésének első lépése, hogy meghatározzuk azokat a dolgokat, objektumokat, amelyeket a modellben le szeretnénk írni. Ezeket a dolgokat egyedeknek nevezzük. Egyedek 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 túl sok tulajdonságot kellene megadni az egyedhalmaz elemeinek egyértelmű azonosításához, akkor célszerű bevezetni egy olyan tulajdonságot - például sorszám, kódszám - amely lehetővé teszi az egyszerű azonosítást. 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. 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 legfeljebb 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. 2. ábra: 1:1 típusú kapcsolat 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 első egyedhalmaznak csak egy eleme tartozhat. Például a Raktárak és a Dolgozók közötti kapcsolatban egy raktárhoz több dolgozó tartozhat, de egy dolgozó csak egy raktárban dolgozhat. 3. ábra: 1:N típusú kapcsolat 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 ez a másik egyedhalmazra 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. 6

4. ábra: N:M típusú kapcsolat 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. 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. 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. 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. 7

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. 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-fájlok 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 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. 8

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égi egység darab. Az idegen kulcs általában nem része az elsődleges kulcsnak, de mint példánk mutatja -, az is lehet Normál formák, normalizálási eljárás Tekintsük a következő példát: Egy raktári nyilvántartásban a raktárakban található anyagokról a következő adatok szerepelnek: raktárszám, cikkszám, megnevezés, mennyiség, egységár. 9

Készítsünk egy Raktár táblát, amelynek oszlopai ezek a tulajdonságok. Az anyag megnevezése és az egységára annyiszor szerepel a táblázatban, ahány raktárban az adott anyag megtalálható. Ha egy anyag egységára megváltozik, ez minden olyan sort érint, amely erre az anyagra vonatkozik. Ha egy anyag kifogy a raktárakból, akkor ennek az anyagnak a megnevezése és egységára sehol sem fog szerepelni a táblában. Ha újra érkezik ebből az anyagból valamelyik raktárba, az anyag jellemzőit újra fel kell vinni valahonnan. Ezen problémák kiküszöbölésére célszerű a táblázatban szereplő tulajdonságok összefüggéseinek elemzése, és a táblázatok átalakítása normál formájú táblázatokká. Első normál forma Azon relációkat, amelyek ábrázolhatók táblázatos formában és minden cellában csak egyetlen érték (elemi érték) található, első normál formájúnak (1NF) nevezzük. Az elemi érték nem azt jelenti, hogy egyetlen szó, vagy egyetlen szám, hanem azt, hogy elemi tulajdonságérték. Például egy lakcím több részből áll (város, utca, házszám), de egyetlen hely megjelölésére szolgál, így ez tekinthető elemi adatnak, a lakcím cellában tehát szerepelhet. Ugyanakkor, ha valakinek van egy állandó, és egy ideiglenes lakcíme, ezek már nem szerepelhetnek ugyanabban a cellában. Függőségek Ha egy A tulajdonság ismeretében meg lehet határozni a B tulajdonság értékét, akkor a B tulajdonság függ az A tulajdonságtól. Például egy felsőoktatási intézmény nevéből egyértelműen következik az aktuális rektor, vagy főigazgató neve, tehát az intézmény vezetőjének neve függ az intézménytől. Ugyanakkor az intézmény nevéből nem következik Kiss Jolán vizsgajegye, hiszen valószínűleg több félévben és több tárgyból is vizsgázott. Lehet, hogy egyetlen tulajdonság értékének ismeretéből még nem következik a másik tulajdonság értéke, de több tulajdonság értékének együttes ismeretéből már igen. Például egy élelmiszer-áruházban a vásárlásokról a következő adatokat tartják nyilván: a pénztárgép számát, a vásárlás dátumát és időpontját, valamint a fizetett összeget. A pénztárgép száma, a vásárlás dátuma és időpontja együttesen egyértelműen meghatározza a fizetett összeget, azonban a pénztárgép száma önmagában nem határozza meg, hiszen egy pénztárgépen nagyon sok vásárlást blokkolnak, a dátum és az időpont sem határozza meg egyértelműen, hogy melyik vásárlásról van szó, mert egy adott időpontban több pénztárgép is blokkolhat. Tehát a vásárláskor fizetett összeg meghatározásához mindhárom tulajdonságérték ismeretére szükség van. 10

Egy relációban minden tulajdonság függ az elsődleges kulcstól, hiszen az elsődleges kulcs egyértelműen meghatározza az egyedhalmaz egyedét, így ennek tulajdonságait is. A B tulajdonság teljesen függ az A tulajdonságcsoporttól, ha az A tulajdonságcsoport minden elemének ismeretére szükség van a B tulajdonság értékének meghatározásához Előfordulhat, hogy egy tulajdonság egy harmadik tulajdonságon keresztül határozza meg a másik tulajdonság értékét, Vagyis az A tulajdonságból következik a C tulajdonság, abból pedig a B. Ekkor a B tulajdonság tranzitíven függ az A tulajdonságtól. Például: A dolgozók napi munkadíj-elszámolását egy táblázatban tartjuk nyilván, melynek oszlopai (a tulajdonságok): hónap, dolgozókód, órabér, dolgozott órák száma, fizetés A kulcs a hónap és a dolgozókód. A fizetés azonban függ az órabértől és a dolgozott órák számától, vagyis a kulcs meghatározza az órabért és az órák számát, amelyek meghatározzák a fizetést, így ez a reláció tranzitív függést tartalmaz. Nyilvánvaló, hogy fölösleges a táblázatban a fizetést tárolni, hiszen kiszámítható a rendelkezésre álló adatokból. Második normál forma Azon relációkat, amelyek első normál formában vannak és minden olyan tulajdonság, amely nem elsődleges kulcs teljesen függ az elsődleges kulcstól, második normál formájúnak (2NF) nevezzük. Ez tulajdonképpen azt jelenti, hogy a lehető legszűkebb tulajdonságcsoportot választottuk kulcsnak. Ha egy reláció első normál formájú, és minden kulcsa egyszerű kulcs, akkor második normál formájú is, hiszen az egyszerű kulcs egyetlen tulajdonságból áll, ezért itt nem fordulhat elő, hogy valamely tulajdonság csak a kulcs egy részétől függ. Harmadik normál forma Azon relációkat, amelyek második normál formában vannak, és nem tartalmaznak tranzitív függőséget (vagyis minden tulajdonság csak az elsődleges kulcstól függ), harmadik normál formájúnak (3NF) nevezzük. Az adatmodellezés során minden táblázatot harmadik normál formára kell alakítani. A harmadik normál forma biztosítja, hogy a táblázathoz a lehető legszűkebb kulcsot válasszuk, vagyis a lehető legkevesebb tulajdonság legyen a kulcs része, és a táblázat ne tartalmazzon fölösleges belső függéseket. 11

Az első normál formájú relációk csak egy része teljesíti a második normál forma feltételeit, ezeknek pedig csak egy része teljesíti a harmadik normál forma feltételeit. 5. ábra:normál formák Bebizonyítható, hogy minden reláció előállítható 3NF relációk összességeként. Egy reláció normalizálását általában további relációkra történő bontással valósíthatjuk meg. Azt az eljárást, amelynek segítségével egy reláció harmadik normál formájú relációkká alakítható, normalizálásnak nevezzük. Egy reláció további relációkra történő bontásán azt értjük, hogy a kiinduló táblázat helyett kisebb táblázatokat alakítunk ki úgy, hogy a létrejövő táblázatok együttesen ugyanazt az információtartalmat hordozzák, mint a kiinduló táblázat. normalizálatlan forma táblázatos formára hozás 1NF a kulcs részeitıl való függıségek eltávolítása 2NF a tranzitív függıségek eltávolítása 3NF 6. ábra: A normalizálás lépései 12

Példa egy normalizálási feladatmegoldására A feladatunk a hallgatók eredményeinek nyilvántartása. 1. lépés Első közelítésben adatainkat a következő táblázatban ábrázolhatjuk: HALLGATÓ (HALLGATÓKÓD, SZÜLETÉSI DÁTUM, NÉV, KAR, SZAK, ÉVFOLYAM, TANTÁRGYKÓD, TANTÁRGYNÉV, TANTÁRGY KREDITÉRTÉKE, JEGY, TANÁRKÓD, TANÁR NEVE, TANSZÉK NEVE) Egy sor egy hallgató adatait és az átlagszámításnál figyelembe vett vizsgajegyeit tartalmazza. A táblázat kulcsa a hallgatókód. A név nem lehet kulcs, mert egy oktatási intézményben előfordulhatnak azonos nevű hallgatók és tanárok, ezért volt szükség a hallgatókód, és a tanárkód bevezetésére. Két különböző tanszék is meghirdethet azonos nevű tantárgyat, így célszerűbb a tantárgyakat is kóddal azonosítani. Mivel egy hallgató több tantárgyat tanul egy félévben, a táblázatban egy hallgatóhoz több tantárgyra vonatkozó tulajdonságérték (tantárgykód, tantárgy neve stb.) tartozhat. Tehát ez a tábla nem normalizált. 2. lépés Bontsuk két táblázatra a kiinduló táblázatot, az egyikben csak a hallgató adatai szerepeljenek, a másikban pedig a tanulmányi eredmények! HALLGATÓ-1 (HALLGATÓKÓD, SZÜLETÉSI DÁTUM, NÉV, KAR, SZAK, ÉVFOLYAM) A tábla kulcsa a hallgatókód. EREDMÉNY (HALLGATÓKÓD, TANTÁRGYKÓD, TANTÁRGYNÉV, TANTÁRGY KREDITÉRTÉKE, JEGY, TANÁRKÓD, TANÁR NEVE, TANSZÉK NEVE) Az így kapott tábla sorait már nem azonosítja egyértelműen a hallgatókód, ezért a hallgatókódot és a tantárgykódot választjuk kulcsnak. Mindkét táblában minden cellába elemi értékek kerülnek, tehát ezek a táblák már első normál formában vannak. 3. lépés Vizsgáljuk meg, hogy a tulajdonságok az összetett kulcs teljes egészétől függnek-e, vagyis második normál formában vannak-e a táblázatok! A HALLGATÓ-1 táblának egyszerű kulcsa van, ezért második normál formájú. Az EREDMÉNY tábla összetett kulccsal rendelkezik, itt meg kell vizsgálni, hogy minden tulajdonság a kulcs teljes egészétől függ-e, vagy esetleg valamely tulajdonságot már a kulcs egyik eleme is meghatározza. 13

A teljes kulcstól függ a jegy, azonban a tantárgynév, tantárgy kredit-értéke, tanárkód, tanár neve, tanszék neve tulajdonságok csak a tantárgykódtól függnek. Bontsuk további két táblára az EREDMÉNY táblát, az egyik táblába kerüljenek azok a tulajdonságok, amelyek csak a tantárgykódtól függnek, a másikba pedig a jegy, amely a kulcs teljes egészétől függ. EREDMÉNY-1 (HALLGATÓKÓD, TANTÁRGYKÓD, JEGY) A tábla kulcsa a hallgatókód és a tantárgykód. TANTÁRGY (TANTÁRGYKÓD, TANTÁRGYNÉV, TANTÁRGY KREDITÉRTÉKE, TANÁRKÓD, TANÁR NEVE, TANSZÉK NEVE) A tábla kulcsa a tantárgykód. A kapott táblák második normál formában vannak, mert az első tábla kulcsa egyszerű kulcs, a második táblában a jegy tulajdonság pedig az összetett kulcs mindkét tagjától függ. 4. lépés Vizsgáljuk meg, hogy a felbontásokkal kapott három táblánk harmadik normál formában van-e! A HALLGATÓ-1 és az EREDMÉNY-1 tábla harmadik normál formájú, a tulajdonságok csak a kulcstól függnek. A TANTÁRGY tábla azonban nem, mert a tanár neve és a tanszék függ a tanár kódjától, ami pedig nem kulcs. A TANTÁRGY táblát bontsuk két újabb táblára, úgy, hogy a tanárra vonatkozó adatokat emeljük ki egy másik táblába: TANTÁRGY-1 (TANTÁRGYKÓD, TANTÁRGYNÉV, TANTÁRGY KREDITÉRTÉKE, TANÁRKÓD) A kulcs a tantárgykód. TANÁR (TANÁRKÓD, TANÁR NEVE, TANSZÉK NEVE) A tábla kulcsa a tanárkód. Az így kapott táblák már harmadik normál formában vannak. A normalizálási eljárás eredményeként a kiinduló táblánkat négy táblára bontottuk: HALLGATÓ-1 EREDMÉNY-1 TANTÁRGY-1 TANÁR 14

Most vizsgáljuk meg, milyen előnyök származnak ebből a felbontásból, a 3NF táblázatok használatából! Sokkal kevesebb adat kerül többszörösen tárolásra (minimális redundancia). A tantárgyakat leíró adatok (név, kredit-érték) csak egyszer kerülnek tárolásra a TANTÁRGY-1 táblában, míg az eredeti táblánk esetén annyiszor tároltuk őket, ahány hallgató felvette az adott tantárgyat. Ha módosítani kell egy tantárgy valamely adatát, például a kredit-értéket, elegendő ezt egyetlen helyen elvégezni. A kiinduló tábla esetén, ha minden olyan hallgatót törlünk a táblából, akik egy adott tantárgyat felvettek, akkor a tantárgy adatai is törlődnek. Míg a harmadik normál formában levő tábláink esetén a TANTÁRGY-1 táblában benne maradhat az a tantárgy, amelyet abban a félévben nem oktatnak, így a rá vonatkozó adatok nem vesznek el a törlés során. Rugalmasabb adatfelvitelt biztosít, hiszen ha egy új tantárgyat szeretnénk bevezetni, már akkor is felvihetjük az adatait a TANTÁRGY-1 táblába, amikor még egyetlen hallgató sem vette fel. Ezt a kiinduló tábla esetén nem tehetjük meg. Műveletek relációkkal Ugyanazon adatbázis különböző felhasználóinak az adatok más-más részhalmazára lehet szükségük, ezért egyes felhasználók számára egy táblázatnak bizonyos oszlopait és sorait kell kiemelni, más felhasználók számára pedig a táblázatokat össze kell vonni. A relációs modell egyik nagy előnye, hogy a különböző igényeknek megfelelő adatelemek matematikailag könnyen és jól definiálhatók a relációalgebra segítségével. Relációalgebra A relációalgebrai műveletek relációkon végzett műveletek, melyek eredménye szintén reláció. A legfontosabb relációalgebrai műveleteket: Projekció, vagy vetítés Egy táblázatból meghatározott oszlopokat kiemelünk, például a Hallgató táblából a Név, a Szak és az évfolyam oszlopot. Szelekció, vagy kiválasztás Egy táblázatból bizonyos feltételnek megfelelő sorokat emelünk ki, például a Hallgató táblából a 2. éves hallgatók adatait. A feltételek definiálásához a mezőneveket, konstansokat, összehasonlító operátorokat, logikai műveleteket (és, vagy, negálás), továbbá a létezik (exists) és a minden (all) kitételeket lehet felhasználni. 15

Példa: a) A Hallgató táblából válasszuk ki a 2. éves hallgatók sorait! A feltétel: Évfolyam=2 b) A Hallgató táblából válasszuk ki azoknak a 2. éves hallgatóknak a sorait, akiknek minden vizsgajegye jeles. Egyesítés A feltétel: Évfolyam=2 and all vizsgajegy=5 Két táblázat sorait egyesítjük egyetlen táblában. Ehhez a két táblázatnak azonos felépítésűnek kell lennie. Az egyesítés során az azonos sorok csak egyszer kerülnek az eredménytáblába, hiszen egy táblázatban nem lehet két egyforma kulcsú sor. Metszet Két táblázatból a közös sorokat emeljük ki. Összekapcsolás Két táblázat sorait összefűzzük úgy, hogy az eredménytáblában szereplő sorok első része az első táblából származik, második része pedig a másodikból. Így az eredménytábla mezőinek száma a két tábla mezőszámának összege lesz. Összekapcsolhatjuk az első tábla minden sorát a második tábla minden sorával - ekkor az eredménytábla sorainak száma a két tábla sorszámának szorzata lesz -, vagy megadhatunk feltételeket, és csak a feltételnek megfelelő sorokat kapcsoljuk össze. Speciális összekapcsolás a természetes összekapcsolás művelete, melynek feltétele, hogy a két táblában szerepeljen azonos oszlop. Az összekapcsolás során azokat a sorokat fűzzük össze, amelyek az azonos oszlopban azonos értéket tartalmaznak. Ezt a műveletet használjuk, amikor két táblát az idegen kulcs elsődleges kulcs páros alapján kapcsoljuk össze. Példa: KÉSZLET tábla Raktárszám Cikkszám Mennyiség 2100 120306 1000 2200 302564 5000 2100 302564 3500 2300 120306 1200 16

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 természetes összekapcsolás során a két táblát a Cikkszám mező segítségével kapcsoljuk össze: Raktárszám Cikkszám Mennyiség Megnevezés Mennyiségi egység Egységár (Ft) 2100 120306 1000 Lemezcsavar db 5 2200 302564 5000 Facsavar db 4 2100 302564 3500 Facsavar db 4 2300 120306 1200 Lemezcsavar db 5 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. A relációs adatbáziskezelő rendszerek (Relational Database Management System - RDBMS) döntő többsége SQL alapú adatbáziskezelő, vagyis az SQL (Structured Query Language) nyelvet használja az adatok karbantartására, lekérdezésére. SQL alapú az egyik legelterjedtebb relációs adatbáziskezelő rendszer az ORACLE, de ezt használják az IBM adatbáziskezelő szoftverei (DB2, Informix), valamint a SYBASE, a Microsoft SQL szerverei, és a Microsoft Access adatbáziskezelő rendszer motorjaként alkalmazott Microsoft Jet, vagy MSSQL szerver. 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. 17

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. ADATBÁZISKEZELŐ RENDSZEREK TÖBBFELHASZNÁLÓS KÖRNYEZETBEN 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. 7. ábra: Kliens-szerver architektúra Alkalmazás szerver (Application server) Nagy erőforrásigé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ét szintű 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 18

felhasználó számára láthatatlan alkalmazásokat szokás back-end alkalmazásoknak nevezni. 8. á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. 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. 19

Internetes adatbázisok 9. á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 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ő szoftver-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ű hardverberuhá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. 20