Az adatbázis fogalma, fontosabb összetevői, felhasználás módjai. Az entitás-relációs modell. Entitás-relációs sémák átalakítása relációs sémákká. Fizikai tárolási szerkezetek, hash-elés. Relációs adatmodell, funkcionális függőségek, normálformák.

Adatbázis: egymással valamilyen kapcsolatban lévő adatok jól szervezett halmaza, ahol az adatok számítógépen vannak tárolva úgy, hogy egyidejűleg több felhasználó is hozzáférhet.

Adatbázis-kezelő rendszer: olyan programcsomag, mely biztosítja az adatbázissal való kapcsolatot. Lehetővé teszi adatbázisok létrehozását, adatok lekérdezését, módosítását, karbantartását, nagy mennyiségű adat hosszú távú, biztonságos tárolását.

Adatbázis szintjei:

Fizikai szint: az adatok fizikai elhelyezését és fizikai elérési módját írja le

Fogalmi szint: az adatbázis teljes leírása az adatmodell segítségével (adatbázis-séma)

Külső szint: ez az a rész, amit az egyes felhasználó az adatbázisból lát.

Adatbázis életciklusa:

Elemzés -> Tervezés -> Létrehozás -> Feltöltése -> Használata és karbantartása

Adatfüggetlenség

- Fizikai adatfüggetlenség: A fizikai adatfüggetlenség azt jelenti, hogy a fizikai adatszerkezet, az elérési mód megváltoztatható anélkül, hogy a programot is módosítani kellene.

- Logikai adatfüggetlenség:	Az adatfüggetlenség másik típusát logikai adatfüggetlenségnek nevezik, mely szintén megvalósul az adatbázisoknál. Ez alatt azt értjük, hogy a letárolt logikai adatmodell maga is bõvíthetõ, illetve bizonyos mértékben módosítható, anélkül hogy az alkalmazói programokat módosítani kellene.

Tranzakciókezelés: Az adatbáisok általában többfelhasználós adathalmazok. Az egyidejű használattal kapcsolatban különféle problémák merülhetnek fel. Ennek megoldására született a tranzakció-kezelés.

Tranzakció: eleminek tekintett utasítássorozat, ami vagy teljes egészében végrehajtódik, vagy egyáltalán nem történik semmi. Amennyiben a tranzakció minden elemi utasítása végrehajtódik, akkor azt mondjuk, hogy a tranzakció kommitál. Ellenkező azt mondjuk, hogy a tranzakció abortál.

A tranzakciónak rendelkezni kell az alábbi tulajdonságokkal:

Konzisztencia: a tranzakció az adatbázist konzisztens állapotból konzisztens állapotba viszi. Egy adatbázis konzisztensnek nevezünk, ha ellentmondásmentes, következetes, azaz eleget tesz meghatározott szabályok halmazának. Ezeket a szabályokat nevezzük integritási szabályoknak. Ilyen szabályokat megadhatunk a reláció definíciójakor, például amikor meghatározzuk egy adott oszlop típusát. Integritási szabályok közé tartoznak a hivatkozási szabályok, amik a táblák közötti értelmi összefüggéseket határozzák meg (idegen kulcs). Ide tartoznak még a feladat definíciójából következő szabályok (például üzleti szabályok).

Atomiság: a tranzakció vagy végrehajtódik vagy nem, de köztes állapot nem létezhet.

Tartósság: a kommitált tranzakció eredménye végérvényesen beíródik az adatbázisba

Függetlenség: minden tranzakció más tranzakcióktól függetlenül hajtódik végre. Az elemek más tranzakció számára nem érhetőek el addig, amíg a tranzakció nem abortál vagy kommitál.

Sorrendiség: a tranzakciók párhuzamos futása ugyanazt eredményezi, mintha ugyanezek a tranzakciók egymás után futottak volna le.

Abortnál előfordulhat, hogy vissza kell állítani az adatbázist az eredeti állapotába, erre való a rollback (visszagörgetés). Abortálási esetek: programhiba, rendszerhiba, tranzakció adja ki.

Adatvédelem: az adatbázis eléréséhez általában szükséges egy azonosító és egy jelszó. Minden felhasználó számára megszabott, hogy mihez férhet hozzá. A jogokat a rendszeradminisztrátor kezeli. Az adatbázis használata során előfordulhatnak különféle hibák, melyeket helyre kell állítani. A helyreállítás a napló (LOG) alapján történhet.

Adatmodell: a valós világ objektumait, azok tulajdonságait és a köztük lévő kapcsolatokat ábrázolja oly módon, hogy ebből már a számítógép számára is értelmezhető fogalmakat kapunk. Az adatmodell jellemzői:

a valóságot tükrözi

nem konkrét értékekkel, hanem az adatok típusaival, összefüggéseivel foglalkozik

Az adatmodellt a jelölésrendszer (mely leírja az adatokat) és a műveletek halmaza határozza meg.

Adatmodellek elemei:

Egyed: Az egyedek a valóság azon elemei, melyek számunkra valamilyen lényeges információt hordoznak, egymástól megkülönböztethetőek. Az egyed egy konkrét értékét egyed előfordulásnak, az előfordulások összességét pedig egyedhalmaznak nevezzük.

Tulajdonság (attribútum): A tulajdonság az, amivel az egyedet leírjuk, megkülönböztetjük a többi egyedtől. A tulajdonságnak is van előfordulása, értéke. A tulajdonság előfordulások összességét tulajdonsághalmaznak nevezzük. Például a szín, mint tulajdonság esetén a fehér egy előfordulás.

Kapcsolat: Az egyedek közötti viszony. Például a diák és az iskola egyed között fennáll egy kapcsolat: a diák iskolába jár. Ezt a kapcsolatot elnevezhetjük (például tanulója) és a későbbiekben ezzel a névvel hivatkozhatunk rá.

Az egyedek közötti kapcsolatokat jellemezhetjük a fokuk szerint:

nincs kapcsolat: két egyed viszonyát az is jellemzi, ha nincs közöttük kapcsolat.

egy-egy (pl. ország-főváros)

egy-sok (pl. kontinensek és országaik)

sok-sok (pl. tanárok és diákjaik)

Entitás-relációs modell (tárgy-kapcsolat;egyed-kapcsolat):

Ez az adatmodell lehetőséget nyújt arra, hogy a valóság elemeit, tulajdonságait, és a köztük lévő kapcsolatokat könnyen tudjuk ábrázolni. Az egyedeket véges számú tulajdonsággal írjuk le. Az olyan tulajdonságokat, melyek minden egyedelőfordulásban más-más értéket vesznek fel, kulcsnak nevezzük.

Egyed:	Tulajdonság:	Kapcsolat:

Tárgy-kapcsolat modell leképezése relációs modellre:

Egyedhalmaz átírása: Egy egyed olyan relációval ábrázolható, melynek neve megegyezik az egyed nevével; az egyed attribútumai megfeleltethetők a reláció oszlopainak; a reláció minden sora egy egyed-előfordulás lesz az egyedhalmazból.

Kapcsolat átírása: A reláció sémájába bekerülnek a kapcsolat attribútumai, valamint a kapcsolatban részt vevő összes egyedhalmaz kulcs attribútuma.

Relációs modell

Reláció: adott n darab halmaz. Reláción e halmazok direkt szorzatának a részhalmazát értjük. A részhalmazok alkotják a reláció értelmezési tartományát, más szóval domaint; a halmazok számát (n) a reláció fokának nevezzük.

A reláció voltaképpen egy táblázat. A rész halmazok a táblázat oszlopai, azaz az egyedek tulajdonságai, számuk megadja a reláció fokát. A sorokba kerülnek az egyed-előfordulások az összes jellemzőjükkel együtt. A táblázatnak annyi sora lesz, ahány előfordulása van az egyednek, ez adja a reláció számosságát.

A relációs adatmodell tulajdonságai:

Minden táblának egyedi neve van.

A reláció oszlopai névvel vannak ellátva és ezek a nevek egy reláción belül egyediek.

Reláció foka (oszlopok száma) állandó, mivel az oszlopok a tulajdonságokat jelképezik, amiket nem változtatunk. Az oszlopok sorrendje tetszőleges; azonosításuk a nevük alapján történik.

A sorok sorrendje tetszőleges, mivel a tartalmuk alapján különböztetjük meg őket. Nem létezhet két teljesen megegyező sor a táblázatban, mint ahogy nem létezik két egyforma egyed-előfordulás sem.

Egy domainből csak egy elemérték kerülhet be a táblázatba. Általában megengedett, hogy ne kerüljön be érték valamelyik mezőbe, ekkor a mező definiálatlan értéket (NULL) fog tartalmazni.

Minden relációban léteznie kell az oszlopok egy olyan halmazának, melyek a reláció bármely sorát egyértelműen meghatározzák. Ezt hívjuk majd a reláció kulcsának.

Kulcs: Azt az attribútum halmazt (vagy attribútumot), melynek az értékei egyértelműen azonosítják a relációt, a reláció kulcsának nevezzük.

Ez a definíció séma (szerkezet) szintű, azaz független a sorok tartalmától. A kulcs akkor is kulcs marad, ha változik a reláció tartalma, például új sorok kerülnek a táblázatba. Fajtái:

Egyszerű kulcs: egyetlen attribútumból áll),

Összetett kulcs: legalább két attribútumból áll (akár az összes attribútumból is állhat)

Minimális kulcs: egy kulcs minimális, ha az őt alkotó attribútumok közül bármelyiket elhagyva a kapott halmaz már nem rendelkezne kulcs tulajdonsággal. Az egyszerű kulcs egyben minimális is.

Kulcsjelöltek: mindazok a kulcsok, melyek megfelelnek a minimális kulcs definíciójának.

Elsődleges kulcs (primary key): az a kulcs, melyet a kulcsjelöltek közül választunk ki, és kulcsként használjuk. A ki nem választott kulcsjelölteket alternatív kulcsnak nevezzük. Az elsődleges kulcsnak nem lehet NULL az értéke. Az összetett kulcs egyben minimális kulcs is.

Idegen kulcs: olyan attribútum kombináció egy relációban, mely egy másik relációban elsődleges kulcsként szerepel. Az idegen kulcsot tartalmazó relációt hivatkozó relációnak, a másikat, melyben ez a kulcs elsődleges, hivatkozott relációnak nevezzük.

Tárgy-kapcsolat modell leképezése relációs modellre:

Egyedhalmaz átírása: Egy egyed olyan relációval ábrázolható, melynek neve megegyezik az egyed nevével; az egyed attribútumai megfeleltethetők a reláció oszlopainak; a reláció minden sora egy egyed-előfordulás lesz az egyedhalmazból.

Kapcsolat átírása: A reláció sémájába bekerülnek a kapcsolat attribútumai, valamint a kapcsolatban részt vevő összes egyedhalmaz kulcs attribútuma.

Funkcionális függőségek

Funkcionális függőség: adott az R reláció, azt mondjuk, hogy Y értelmezési tartománya funkcionálisan függ az X értelmezési tartományától akkor és csak akkor, ha X minden értéke egyértelműen meghatározza Y-t. Ez a meghatározás minden lehetséges értékre teljesül.

Funkcionális függőségek tulajdonságai(Amstrong axiómák): reflexívitás, tranzitivitás, pszeudotranzitivitás, valamint az egyesítési és dekompenzációs szabály létezése

Funkcionális teljes függőség: adott az R reláció és az X összetett értelmezési tartomány. Y értelmezési tartománya funkcionálisan teljesen függ X-től, ha Y funkcionálisan függ X-től, de nem függ funkcionálisan X egyetlen valódi részhalmazától sem.

Tranzitív függőség: adott az R reláció; Z értelmezési tartomány tranzitívan függ X értelmezési tartománytól, ha Z funkcionálisan függ X-től, Y-tól és Y függ X-től.

Az elsődleges kulcstól minden tartomány funkcionálisan függ; ha a kulcs egyben egyszerű is, akkor ez a függőség teljes.

Normálformák

1. normálforma (1NF): az R reláció 1 NF-ben van, ha a relációban szereplő minden érték elemi: minden attribútum csak egy értéket vesz fel az értelmezési tartományából.

2. normálforma (2NF): az R reláció 2NF-ben van akkor és csak akkor, ha 1 NF-ben van és minden olyan attribútuma, mely nem része az elsődleges kulcsnak, funkcionálisan teljesen függ az elsődleges kulcstól.

3. normálforma (3NF): az R reláció 3 NF-ben van akkor és csak akkor, ha 2 NF-ben van és minden olyan attribútuma, mely nem része az elsődleges kulcsnak funkcionálisan teljesen függ az elsődleges kulcstól és csak attól. Azaz a reláció nem tartalmaz tranzitív függőségeket.

A normálformák használatával az adatmodellt redundanciamentessé tehetjük, valamint kiküszöbölhetjük az úgynevezett anomáliákat:

Hozzáadási anomália: A tábla egy sorát nem tudunk teljesen feltölteni, mert mert még van olyan adat (oszlop), aminek az értékét nem ismerjük.

Módosítási anomália: Több helyen is tárolhatjuk ugyanazt az adatot. Módosításnál mindegyiket át kellene írni

Törlési anomália: Előzőhöz hasonlóan több helyen történő tárolásnál az egyik táblából kitörlünk egy sort, mert az egyik oszlopában lévő adat már nem szükséges, ekkor olyan információt is elveszíthetünk, ami csak itt volt tárolva.

Megjegyzés: Ha a reláció 1NF-ben van és a kulcs egyszerű, akkor a reláció 2NF-ben is van. Összetett kulcs esetén a kívánt második alak eléréséhez a táblánkat sokszor fel kell bontanunk több kisebb táblára.

Fizikai tárolási szerkezetek

Adatelemek elérése: A rekordjellegû fájl szerkezeteknek az alábbi típusai ismertek:

soros, szekvenciális, indexelt, illetve random és hash

Soros elérés

Egy adott kulcsértékû rekord bárhol elhelyezkedhet a fájlban, így a kereséskor a fájl minden rekordját át kell nézni, egymás után, a fájl elejétõl kezdve, amíg meg nem találjuk a keresett rekordot. Akkor hatékony, ha minden fájlhozzáférésnél szükség van az összes rekordra

Szekvenciális elérés

A rekordok a fájlban a kulcsértékeik alapján sorba rendezve helyezkednek el, így nem kell a teljes fájlt végignézni adott kulcsértékû rekord keresésekor, mivel a sorrendbe rendezés miatt egy adott kulcstól jobbra csak tõle nagyobb (növekvõ rendezést feltételezve) kulcsértékû elemek helyezkedhetnek el. Ez megvalósítható fizikai szekvenciával vagy logikai, láncolt szekvenciával. A fizikai szekvenciánál a rekordok fizikai helye megfelel a sorrendben elfoglalt helyének. Gyors lesz az egymást követõ rekordok elérése, de egy új rekord beszúrása esetén át kell rendezni a rekordokat a fájlon belül. Gyakran változó fájl esetén nem javasolt.

Logikai szekvencia esetén a rekordok a bevitelük sorrendjében helyezkednek el fizikailag a fájlban, s a sorrendbe rendezettséget mutatók segítségével valósítják meg – így beszúráskor csak a mutatókat kell átrendezni. Mivel itt is a fájl elejérõl kiindulva, az egymást követõ elemek ellenõrzésével lehet keresni, ez a módszer sem igazán hatékony.

Indexelt struktúra

A keresés meggyorsítható, ha a nem kell a keresett rekordot megelõzõ rekordot fizikailag is átolvasni. (a keresett rekordot megelõzõ rekordokból csak a kulcsértékek fontosak számunkra.) Az index szerkezet egy külön listában tartalmazza a rekordok kulcsait és az elérésükhöz szükséges mutatókat. Az indexszerkezet sokszor csak egy indexlista, mely az összes rekord kulcsát tartalmazza , ahol a kulcsértékek rendezetten helyezkednek el.

Hash

Az indexszerkezetek révén nagyon gyorsan meghatározható a rekordok pozíciója, csupán az indexlistákat kell átolvasni. A hash elérésnél a rekord pozícióját közvetlenül a rekord kulcsértékébõl határozzák meg, tehát csak egy blokkolvasásra van szükség. Alapelve, hogy a kulcs értékébõl valamilyen egyszerûbb eljárással, határoznak meg egy pozíciót. Numerikus kulcsok esetén a h(x)=x mod n egy szokásos hash függvény, ahol x a kulcs érték és n hash tábla rekeszeinek a darabszáma. Bucket: a hash által egy adott címhez rendelt tárterület. Ha több rekord kerül egy címre, mint amennyi egy bucketban elfér, akkor lép fel a túlcsordulás, amikor is egy újabb blokkot, területet kell a címhez hozzákötni.

A túlcsordulás mellett a hash másik hátránya, hogy csak körülményesen lehet vele megvalósítani a rekordok kulcs szerint rendezett listájának elõállítását, hiszen a hash módszer az egymást követõ rekordokat tetszõlegesen szétszórhatja a címtartományon. Hatékony hash (kevés kulcs) esetén fenn áll a túlcsordulás veszélye. Ezt általában a rekordok egyenletes elosztásával próbálják kivédeni.

11. Adatbáziskezelés

- 7 -

Az adatbázis fogalma, fontosabb összetevői, felhasználás módjai

Vonnák Anikó

2002-06-10T12:15:00

Peter Szamoskozi