Az információ feldolgozás alapvetı módszerei



Hasonló dokumentumok
Az információ feldolgozás alapvetı módszerei Folyamat szemlélető információ feldolgozás A legfontosabb állomány struktúrák

Adatbázisok. 1. dia. 2. dia. 3. dia. Cél. Az információ feldolgozás alapvetı módszerei. Dr. Kotsis Domokos. Segédanyag az elıadáshoz

Dr. Kotsis Domokos. Adatbázisok. Segédanyag az előadáshoz

Célorientált: cél meghatározása célhoz vezető folyamat folyamathoz szükséges adatállomány

A relációs kalkulus 1.

BEVEZETÉS Az objektum fogalma

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

8. Gyakorlat SQL. DDL (Data Definition Language) adatdefiníciós nyelv utasításai:

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

Adatbáziskezelés alapjai. jegyzet

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

Adatbázisok* tulajdonságai

Adatmodellezés. 1. Fogalmi modell

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17

Adatbázis kezelés Delphiben. SQL lekérdezések

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

Tranzakciókezelés PL/SQL-ben

Bevezetés: az SQL-be

Gazdasági folyamatok térbeli elemzése. 5. elıadás

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

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

Adatbázisok-1 előadás Előadó: dr. Hajas Csilla

B I T M A N B I v: T M A N

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

SQL parancsok feldolgozása

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

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

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

Adatbázis-kezelés. Harmadik előadás

Adattípusok. Max. 2GByte

Adatbázisok elmélete 9. előadás

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áziskezelı-szerver SQL. Relációs adatbázis-kezelık. Relációs adatszerkezet. Házi feladat

A relációs adatmodell

Adattípusok. Max. 2GByte

Adatbázis, adatbázis-kezelő

A relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai

Adatbázis rendszerek. dr. Siki Zoltán

ADATBÁZIS-KEZELÉS FÉLÉVES FELADAT

SQL. Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések Nézettáblák

Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések

Java II. I A Java programozási nyelv alapelemei

Haladó DBMS ismeretek 1

Adatbázisok I. Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

Adatbázis használat I. 5. gyakorlat

Adatbázis Rendszerek II. 1. SQL programozási felületek 39/1B IT MAN

Adatbázisok elmélete 9. előadás

Adatbázis-kezelés, információs-rendszerek

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

SQL. 1.rész. 1.elıadás // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1

SQL haladó. Külső összekapcsolások, Csoportosítás/Összesítés, Beszúrás/Törlés/Módosítás, Táblák létrehozása/kulcs megszorítások

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

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

A hierarchikus adatbázis struktúra jellemzői

Adatbázismodellek. 1. ábra Hierarchikus modell

SQL DDL-2 (aktív elemek) triggerek

Magas szintű adatmodellek Egyed/kapcsolat modell I.

Gazdasági informatika vizsga kérdések

Adatbázis rendszerek SQL nyomkövetés

Adatbázis-kezelés. alapfogalmak

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

Adatbázisok. 2. gyakorlat SQL november november 12. Adatbázisok 1 / 31

Java és web programozás

Adatbázisok elleni fenyegetések rendszerezése. Fleiner Rita BMF/NIK Robothadviselés 2009

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE) október október 22. Adatbázisok 1 / 14

Adatbázis rendszerek. Molnár Bence. Szerkesztette: Koppányi Zoltán

Az SQL adatbázisnyelv: DML

Marton József BME-TMIT. Adatbázisok VITMAB november 11.

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

Ujj Tamás * VALÓS IDEJŐ ADATTÁRHÁZAK

Az indexelés újdonságai Oracle Database 12c R1 és 12c R2

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

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

Adatbázis-kezelés alapok Adatbázisok című tárgyhoz, ismétlés kapcsán

Titkok. Oracle adatbázisok proaktív es reaktív védelmi eszközei. Mosolygó Ferenc, vezetı technológiai tanácsadó. <Insert Picture Here>

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ÁZISOK gyakorlat: SQL 2. rész SELECT

Fájlszervezés. Adatbázisok tervezése, megvalósítása és menedzselése

A relációs algebra egy speciális algebra, amely néhány egyszerű, de hathatós. operandusok. Egy reláció megadható a nevével vagy közvetlenül, sorainak

Az egyed-kapcsolat modell (E/K)

Adatbázis rendszerek I

Indexek és SQL hangolás

Adatbázisok elmélete 10. előadás

Az adatbázisrendszerek világa

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

Az SQL nyelv Structured Query Language (Struktúrált lekérdező nyelv)

Adatbázisok biztonsága

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

Statisztikai szoftverek Molnár Gábor József

Adatbázisok. 9. gyakorlat SQL: SELECT október október 26. Adatbázisok 1 / 14

ADATBÁZISOK, ADATTÁRHÁZAK

Budapesti Műszaki és Gazdaságtudományi Egyetem Automatizálási és Alkalmazott Informatikai Tanszék INFORMATIKA 2 ADATBÁZISOK

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

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

Algoritmuselmélet 2. előadás

Táblakezelés: Open SQL Internal table. Tarcsi Ádám: Az SAP programozása 1.

Algoritmizálás és adatmodellezés tanítása 1. előadás

Ezeket a kiemelkedı sebességő számítógépeket nevezzük szuperszámítógépeknek.

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.

Átírás:

Az információ feldolgozás alapvetı módszerei I. Folyamat szemlélető információ feldolgozás: E rendszerek legfıbb jellemzıje hogy azok célorientáltak, azaz készítésükkor elıször az elérendı célt kell meghatároznunk, majd a cél ismeretében tervezzük meg az ahhoz vezetı folyamatot, s a folyamat által használandó adatállományokat (file). Az állományok csak adatokat tartalmaznak: kapcsolatokat a folyamat írja le. Tervezés sorrendje: cél folyamat állományok Az ilyen módon megtervezett adatállományok nem igényelnek túl nagy tárolókapacitást, hiszen csak a valóban felhasználandó adatokat kell tárolnunk. Másrészt az adatállományok feldolgozása igen gyors lehet, hiszen azok szerkezete optimálisan illeszkedhet az adott feladathoz. Ugyanakkor a folyamat szemlélető információ feldolgozás minden célhoz új folyamatot és állományokat kíván, függetlenül az esetleges közös adatok elıfordulásától. Az így keletkezı redundancia rossz tárkihasználást eredményez - és ami még nagyobb baj - felidézi az inkonzisztencia veszélyét, vagyis azt, hogy egy-egy több helyen elıforduló adat egyes példányainak különbözik a tartalma. Hátránya az effajta feldolgozásnak az is, hogy csak az eredeti kérdésre ad választ, a rendszernek ad hoc jellegő kérdések nem tehetık fel. Elınyök: -csak a szükséges adatokkal dolgozik -optimális adatstruktúra használható Hátrányok: -többszörös tárolás (inkonzisztencia) -csak egy cél Optimális struktúra Keresés A keresés idıigényét két tényezı szabja meg: 1. az átlagosan szüksége lépésszám (hány keresési lépést kell végrehajtanunk átlagosan egy-egy keresés alkalmával) 2. az egyes lépések idıigénye. Egy N elemő file-ban egy rekord keresésének lépései: S n (T a +T b +T c ) T a : algoritmus idı (az algoritmusnak az átlagos végrehajtási ideje) T b : "behozási" idı (a tárolóról való beolvasás átlagos idıigénye) T c : összehasonlítási idı (komparálási idı, mely a beolvasott rekord kulcsának megvizsgálásához szükséges) S n : átlagosan szüksége lépésszám Belátható, hogy központi tár esetén elesik a behozási idı, míg az általánosan használt mozgófejes lemezeknél az algoritmus idı és az összehasonlítási idı elhanyagolható a behozási idıhöz képest. Másrészt míg az 1

összehasonlítási idıt nem tudjuk befolyásolni, az algoritmus idı, behozási idı és az átlagos lépésszám értéke a választott algoritmustól függ. Azt pedig, hogy milyen keresési algoritmusok között választhatunk az állomány szervezési módja, szerkezete határozza meg. Fontos a hardware, a tároló szerkezete! RAM: a címek sorrendje közömbös. Mozgófejes lemez: pozícionálás, forgás, beolvasás. A keresést meghatározó tényezık Struktúra Algoritmus Például ha egy adott nevő személy létezı rekordját akarjuk egy rendezetlen állományból kikeresni, a lineáris keresést alkalmazhatjuk, azaz sorban meg kell vizsgálnunk a rekordokat, hogy azonosak-e az általunk keresettel. Ez esetben átlagosan a rekordok felét kell megvizsgálnunk (azaz S N = N/2). Ha az illetı rekordja nem található meg az állományban, ennek megállapításához már az egész állományt végig kell keresnünk (vagyis S' N = N). Ha az állomány a névre rendezett, az utóbbi esetben is elég a rekordok felét megvizsgálni (S' N = N/2). Így a struktúra megváltoztatása önmagában gyorsított az eljáráson. Más kérdés, hogy az ilyen módon strukturált állományokban már sokkal hatékonyabb keresési algoritmusok használatára is van remény. A legfontosabb állomány struktúrák 1. Szekvenciális 2. Hierarchikus 3. Hálós 4. Nem konzekutív (asszociatív) Szekvenciális állomány struktúrák -logikailag a rekordok mindegyikének egy megelızıje és egy rákövetkezıje van (az elsı és az utolsó elem kivételével) 1. Fizikai szekvenciális állomány struktúrák 2. Logikai szekvenciális állomány struktúrák Fizikai szekvenciális állomány struktúrák: A rekordok logikai és fizikai sorrendje megegyezik. Keresési módok: 1. Lineáris keresés 2. Bináris, logaritmikus keresés 3. Peterson-féle keresés Bináris, logaritmikus keresés: E közismert keresési eljárás lényege, hogy a megvizsgálandó állomány ill. állományrész középsı rekordjának kulcsát hasonlítjuk össze a keresett rekordéval, s így eldönthetjük, hogy a.) megtaláltuk a keresett rekordot, b.) a keresett rekord a vizsgált állomány bal felében van, c.) a keresett rekord a vizsgált állomány jobb felében van. Minden lépésben hosszra nézve felezzük a vizsgálandó állományt. A keresést ezután már csak az elızılépésben vizsgált állomány felében kell folytatnunk (ha egyáltalán). Belátható hogy bináris keresés esetén az átlagosan szükséges lépésszámra mind sikeres, mind sikertelen esetben S N = log 2 N. Peterson-féle keresés: Minden lépésben az elıfordulás valószínőségére nézve felezzük a vizsgálandó állományt. Az állományt az egyes lépésekben ne két hosszra egyenlı részre osszuk, hanem két olyan részre, melyekben a keresett rekord elıfordulása egyenlıen valószínő. (Pl. egy nevekre rendezett nyilvántartásban Ács Aba rekordját 2

nyilván az állomány elején, Zöld Zoltánét a végén célszerő keresni.) Az ilyen felezéshez nyilván ismerni kell a kulcsok eloszlását. Feltehetjük pl., hogy azok eloszlása egyenletes. Ekkor S N = 1/2 log 2 N. Mindebbıl nem következik azonban, hogy a Peterson-féle keresés mindig hatékonyabb a binárisnál. Ennek egyik oka az, hogy kulcsaink eloszlása messze eshet az egyenletestıl, s ilyenkor e módszer hatékonysága jelentısen romlik. A másik ok, hogy a Peterson módszer minden lépése arányosítást, azaz "igazi" osztást igényel. A bináris keresésnél erre nincs szükség, az itt használt felezés a rendkívül gyors léptetéssel megvalósítható. Mivel központi tárbeli használatnál, az egyes lépések idıigényét az algoritmusidı határozza meg, hiába igényel a Peterson-féle keresés kevesebb lépést, ha azok jóval lassabban hajthatók végre. Az átlagos lépésszám a Petersonnál kisebb, de 1. az eloszlás nem feltétlenül egyenletes, 2. Petersonnál valódi osztás kell, a binárisnál a léptetés alkalmazható. A leggyorsabb, ha N = 2 k 1 alakú. Ha nem ilyen: 1. két részre osztás 2. kiegészítés álrekordokkal A fizikai szekvencialitás Elınye: a keresés lépésszáma kicsi, de a rendezettség biztosítása idıigényes Hátránya: bonyolult beszúrási algoritmus, rendszeres fizikai rendezés Logikai szekvenciális állomány struktúrák: A rekordok logikai és fizikai sorrendje nem egyezik meg. A logikai sorrendet ez esetben legtöbbször a rekordokban elhelyezett pointerek adják meg. A mutatórendszerek lehetnek egy és kétirányúak, ill. győrősek. Az állomány, és a sokszor ugyancsak speciális listaként kezelt üres helyek kezdetét egy indító tábla tartalmazhatja. Elınye: -az állomány logikai struktúrájának megváltoztatása igen könnyő, nem igényli a rekordok mozgatását, csupán a mutatók módosítása szükséges. -fizikailag ugyanaz az állomány több mutatórendszer alkalmazásával többféle logikai szekvenciális rendbe is szervezhetı. Hátránya: -nem állnak rendelkezésünkre olyan hatékony keresési algoritmusok mint a bináris, vagy a Peterson féle -ha a rekordok véletlenszerően helyezkednek el az állományban a keresés során szükséges pozícionálások száma a feldolgozást nagyon lelassítja -véletlenszerő elhelyezkedésnél C cilindernyi anyagnál átlagosan C/3 cilindernyi pozícionálás kell A fenti hátrányok kiküszöbölésére, vagy legalább csökkentésére használhatóak az u.n. "csaknem fizikai szekvenciális" struktúrák. E struktúrák lényege, hogy az állományt - mely logikai szekvenciális, így mutatókkal rendelkezik - létrehozásakor fizikailag is szekvenciálisan helyezzük el. Beszúráskor nem szükséges a fizikai szekvencialitást megtartani, az új rekordot a cilinder túlcsordulási területre helyezzük, és a logikai rendbe a mutatók segítségével illesztjük be. Kupacos keresés: A keresési módszer lényege, hogy a rekordokat (N db.) G kupacra osztjuk, majd elıször e kupacok elsı elemeit hasonlítjuk össze a keresett rekorddal. Így vagy megtaláljuk a keresett rekordot, vagy legalább meghatározhatjuk, hogy melyik kupacban van. Ezután ezt a kupacot kell végigkeresnünk. Természetesen kulcskérdés a kupacok méretének megválasztása. A logikai szekvenciális struktúra esetén azonban alkalmazhatóak az önrendezı algoritmusok is, melyek a gyakoriság ismerete nélkül, ill. változó gyakoriság mellett is lehetıvé teszi a gyakoriság szerinti szervezést. Gyakoriság szerint rendezett file Hierarchikus struktúrák 3

A hierarchikus (faszerő) struktúrák számítógépes ábrázolására egyaránt elterjedtek mind a belsı mutatós (pointeres), mind a külsı mutatós (táblázatos) eljárások. Nyelvi leírás: COBOL, LISP Ábrázolás: A.) Belsı mutatós módszerek 1. Left-list: -a fa egy megadott módon való bejárását rögzítjük -információvesztéssel jár: az eredeti fastruktúra nem állítható vissza belıle egyértelmően 2. Több pointer -A rekordokban lehet annyi mutatót elhelyezni, ahány rákövetkezıje (gyermeke) van az illetı rekordnak. -Az ábrázolás teljesen egyértelmő, -hátránya, hogy vagy igen rossz tárkihasználással, vagy változó hosszú rekordok használatával kell számolnunk 3. Segédrekordok Egy-egy rekordban legfeljebb két mutató legyen, sıt az is, hogy ezek egyike "oldalra", a másik lefelé" mutasson, ami a struktúrát igen áttekinthetıvé teszi 4. Győrők Szokásos megoldás a fában "függıleges" és "vízszintes" győrőket szervezni, melyekkel ugyancsak megoldható, hogy egy-egy rekord ne tartalmazzon kettınél több pointert B.) Külsı mutatós módszerek 1. Táblázatok E táblázatokban az egyes rekordokhoz tartozó bejegyzések adják meg a rákövetkezıket 2. Bináris mátrixok Bináris mátrixokban ábrázolhatjuk, hogy egyes rekordok között van-e kapcsolat elég a mátrix felét tárolni (a másik félmátrix csak 0 elemeket tartalmaz) Hálós struktúrák Logikailag a rekordok mindegyikének több megelızıje és több rákövetkezıje lehet A.) Belsı mutatós módszerek 1. Több pointer B.) Külsı mutatós módszerek 1. Táblázatok 2. Bináris mátrixok Nem konzekutív struktúrák Nem a rákövetkezés ill. megelızés adja az állomány struktúráját. Más logikai szempont szerint lehet a rekordokat ill. rekordok egy csoportját kiválasztani. Indexelt szervezés 1. Sőrő indexelés E szervezési formánál az adatállomány minden tételéhez tartozik az index állományban egy index bejegyzés: egy kulcs cím pár. Ilyen módon több szempont alapján több index is szervezhetı, az adatállományhoz új rekordok könnyen főzhetık az index bejegyzés ismeretében a keresés gyors. Sok szempontból a bináris fák (olyan fák, melyek miden elemének legfeljebb két gyermeke van) használata tőnik elınyösnek. Ha egy bináris fa kiegyensúlyozott (azaz az utolsó ill. és az utolsó elıtti szint kivételével minden elemnek valóban két leszármazottja van), a keresés igen gyors benne: közelítıleg log 2 N lépésre van szükség átlagosan. Ugyanakkor a kiegyensúlyozottság megtartása új elemek beszúrásánál igen idıigényes. A gyakorlatban indexállományok készítésére elsısorban a B+ fákat (Bayer fákat) használják. 4

A B+ fa egy olyan B fa, melyben azok a pointerek, melyek adatokra (adatok címére) mutatnak, s amelyeket keresünk, valamennyien a levéllapokon helyezkednek el, így a levéllapok és a többi lap struktúrája különbözik. n a B+ fa rendje: 1. Minden lap legfeljebb 2n tételt tartalmaz. 2. Minden lapon a gyökér kivételével legalább n tétel van. 3. Ha egy lapon m tétel van, vagy levéllap, vagy m+1 utódja van. 4. Minden levéllap ugyanazon a szinten van. A kereséshez szükséges átlagos lépésszám a laphivatkozásoktól függ, ezek száma N elemnél n rendő fában: log n N A B+ fa lényege, hogy az indexállomány lapokra van osztva, egy-egy lapon (a gyökérelemet kivéve) n és 2n közé esı számú bejegyzés, és a bejegyzéseknél eggyel több pointer van. Az ilyen állományok könnyen karbantarthatóak, és a bennük való keresés elég gyors: közelítıleg logn N lépésre van szükség átlagosan. -minden rekordhoz tartozik index bejegyzés -elıny: több index szervezhetı -hátrány: nagyok az index file-ok 2. Ritka indexelés - Jelzı cölöpök mutatják a rekord helyét. -Rendezettség kell! -Több szintő index rendszer is készíthetı. -Gyors elérés, de csak egy szempont szerint. Index-szekvenciális szervezés: A ritka indexelés egy megvalósítása. A fizikai architektúrának megfelelıen: Sáv; cilinder; fıindex. Index; elsıdleges; túlcsordulási terület. Szervezés: az elsıdleges területen fizikai, a túlcsordulási területen logikai szekvenciális szervezés. Az állomány létrehozásakor a rekordok az elsıdleges adatterületre kerülnek, melyet csak részben töltenek fel. A feltöltés rendje fizikai szekvenciális. Ekkor rögzítik az indexeket. Ha az elsıdleges adatterület betelik, a rekordok a túlcsordulási területre kerülnek, mutatókkal ellátva, azaz logikai szekvenciális rendben. Az adatok keresése az index rendszeren keresztül történik. Természetesen az index-szekvenciális állományokat idırıl idıre újra kell szerveznünk, azaz valamennyi rekordot az elsıdleges területre kell tölteni. Ellenkezı esetben a feldolgozás nagyon lelassulhat. Direkt szervezés A direkt szervezésnél a rekordok kulcsai és címei között egy leképezés hozza létre a kapcsolatot (természetesen kívánatos lenne, hogy ez a leképezés egy-egy értelmő legyen). 1. Közvetlen leképezés: igen rossz a tárkihasználás. 2. Hashing algoritmusok: megengedik, hogy különbözı kulcsokhoz ugyanaz a cím tartozzék (ezek a szinonimok) Maradék módszer: a kulcsot egy M modulussal osztjuk, s a sorszám az osztás maradéka lesz. (Célszerő modulusként prímszámot választani.) Csonkítás: a kevés információt hordozó jegyek elhagyása. Szinonimok kezelése A hashing algoritmusok nem egy-egy értelmőek, így szinonimok keletkezhetnek. 5

Szinonim kezelımódszerek: 1. Külsı láncolás -egy külön területen tároljuk a szinonimokat, melyeket mutatólánc köt össze az eredeti címmel -rossz tárkihasználás -az elsıt nem lehet törölni 2. Belsı láncolás -mutatórendszer köti össze a szinonimot eredeti címével, azonban azt az elsıdleges terület egy üres helyére tesszük -tárkihasználás jó, de másodlagos szinonimok keletkezhetnek 3. Nyílt (Peterson) módszer -a rekordok ugyanott helyezkednek el, mint a belsı láncolásnál, azonban nem használunk mutatókat -a keresésnél szükséges lépésszám nagyobb, mint a belsı láncolásnál 4. Többszörös hashing - Ha a leképezés szinonimra vezet, egy másikkal próbálkozunk. -A gyakorlatban két hashing algoritmust, majd a korábban ismertetett módszerek valamelyikét használják. 5. Bucket-ek használata -E módszernél nem egy-egy rekordnak, hanem egy-egy rekord csoportnak van külön címe. Kevesebb szinonimkezelésre van szükség, de a csoportokon belül is kell keresnünk. Hasznos akkor lehet, ha hardware szempontok (szektor) indokolják. Összehasonlítás Központi tárban való használat esetén, elınytelen a többszörös hashing számára a jelentıs algoritmusidı. A nyílt módszer több lépést igényel, mint a láncolások, s algoritmusideje azokéval összemérhetı. Jóllehet a belsı láncolás hajszállal több lépést igényelhet a külsınél (a "mőszinonimok" miatt), nagyobb súllyal esik latba a jó tárkihasználás. Így általában a belsı láncolást tudjuk javasolni. Mozgófejes lemeznél elınytelenek a sok fejmozgást igénylı módszerek: ilyen a többszörös hashing és a külsı láncolás. Bár a belsı láncolás elméletileg kevesebb lépést igényel a nyílt módszernél, ha a szinonim rekord ugyanazon a sávon van, mint az eredeti helye, a gyakorlatban ez az elıny nem érvényesül. Ugyanakkor, ha a szinonim az eredeti helyet közvetlenül követi, a nyílt módszer gyorsabb is lehet (nem kell a mutatókat feldolgozni). Végeredményben tehát ilyen esetekben többnyire a nyílt módszer javasolható. Gyors véletlen eléréső (pl. RAM) tárolónál: TH: nagy algoritmusidı. NyM: több lépés mint BL-nél. BL: másodlagos szinonimok miatt több lépés, mint KL-nél. KL: leggyorsabb, de rossz tárkihasználás. Mozgófejes tárolónál: TH, KL: sok fejmozgás. NyM: több lépés mint BL-nél. De NyM-hez nem kell CPU, így a leggyorsabb lehet. II. Az adatbázis szemlélető információfeldolgozás alapelve A rendelkezésre álló adatokból indulunk ki, az összes adatot (entity) és a közöttük fennálló összes kapcsolatot (relationship) egy integrált adatbázisba győjtjük, és valamennyi felhasználó valamennyi kérdéséhez ezt az adatbázist (vagy ennek egy részét) használhatja. Adatreprezentáció Az összes adat egy mini világra vonatkozik. Ennek leírása több szintő: -konceptuális (magas szintő), -implementációs (reprezentációs), -fizikai modell. 6

Egyed-kapcsolat leírások Az alapvetıen használt modell az egyed-kapcsolat (entity-relationship), azaz ER modell. Az egyedeknek tulajdonságaik (attribute) vannak, ezek egyike, vagy ezekbıl egy készlet az egyedet egyértelmően azonosító kulcs. A kapcsolatok lehetnek 1:1, 1:n, m:n jellegőek. A kapcsolatokat sokszor egyedhalmazzá alakítjuk (kapcsoló rekord: a kapcsolat mint egyed). Adatbázis felügyelı A felhasználókénál nagyobb hatáskörrel rendelkezve, a jogokat kiossza és a munkát felügyeli. Az ı joga és kötelessége az adatbázist megtervezni, elkészíteni a teljes logikai struktúrát leíró sémát, valamint az egyes nézetek által látott adatbázis-rész logikai struktúráit leíró alsémákat. Ugyancsak az adatbázis felügyelı feladata az adatbázis mőködtetése során a felhasználókkal való kapcsolattartás, az adatbázis logikai és fizikai struktúrájának a felhasználói igényeknek megfelelı módosítása, valamint az adatbázis tartalmának rendszeres mentése. Védeni kell a rendszert a felhasználóktól és ıket is egymástól. Üzemeltetési feladatai közé tartozik a mentések, karbantartások valamint a kapcsolattartás a felhasználókkal. Eszköz: DDL (Data Definition Language) Adatfüggetlenség Logikai: az adatok logikai struktúrájában (konceptuális, implementációs modell) történı változtatás ne érintse az ezen változtatást nem igénylı felhasználók munkáját. Fizikai: a fizikai modell változtatása ne kényszerítse ki az implementációs modell változtatását. A kettı együtt az adatfüggetlenség. Tervezési szempontok -Kapcsolat múlttal, jövıvel. -Biztonság, titkosság, pontosság. -Konkurens folyamatok kezelése. -Válaszidı. -Kényelmes használat. -Költségek. DML (Data Manipulation Language) A felhasználó eszköze. 1. Alkalmazott nyelv szerint: Host language Self Contained Language 2. A felhasználás jellege szerint: Procedurális Deklaratív Host Language (Beépített, nyelvő) rendszerek Azoknak a programozóknak áll rendelkezésére, akik az általuk korábban jól megismert magas szintő nyelven kívánnak dolgozni, ezt a nyelvet egészíti ki a rendszer adatbázisok kezelésére alkalmas utasításokkal, eljárásokkal. Megoldások: Eljárás győjtemények könyvtárban. Eljárás győjtemény elıfordítóval. Eljárás győjtemény interpreterrel. Self Contained (Önálló) nyelvő rendszerek Teljesen kerek önálló rendszer, ami lehet programozási nyelv éppúgy, mint egy paraméterezéssel kezelhetı felhasználói felület. Lehet: -külön programozható nyelv. 7

-csak paraméterezendı rendszer. -4GL fejlesztı rendszer. Procedurális rendszerek Egy lépésben egy rekordot dolgoznak fel (record-in-time feldolgozás). Deklaratív rendszerek Egy lépésben egy meghatározott tulajdonságú halmazt (pl. egy táblázatot) dolgoznak fel (set-in-time rendszerek: ilyen pl. az SQL). Alapvetı ABKR modellek (approach) 1. Hierarchikus 2. Hálós (CODASYL, DBTG) 3. Relációs A hierarchikus modell A legelsı modell, ma már nem használják. Az adatokat fákban tároljuk, ahol a fák egy-egy szögpontja a szegmens (segment) adatokat és a további szegmensekre utaló mutatókat tartalmaz. A fák gyökérelemei hagyományos állományokba vannak szervezve. Az egyes nézetek a számukra érzékeny szegmenseket (sensitive segment) látják. Jellegzetes képviselıje az IMS (IBM). A hierarchikus modell tulajdonságai Igazi ABKR, hisz többfelhasználós, az egyes felhasználók nem ugyanazt látják. Nem igazi ABKR, mert a lekérdezés hatékonysága erısen függ az adatstruktúrától. A hálós modell A CODASYL bizottság által létrehozott DBTG (Data Base Task Group) jelentései (1969-1971) hozták létre. Két évtizedig szinte kizárólag ezt használták. Terminológiai és metodológiai javaslatokat tartalmaz. Már bevezetett fogalmak: DDL, DML, séma, alséma. Új fogalmak: Area: valamilyen szempontból egységesen kezelendı adathalmaz. Set: kétszintő fa, melynek gyökéreleme a tulajdonos (owner), levelei a tagok (members). A set-ek segítségével a legbonyolultabb hálós kapcsolatok is leírhatók. Séma hálós modellben -Séma név. -Zárak, kulcsok. -Rekord leírások (kalkulált mezık, kódolt mezık). -Kapcsolat leírások: SET-ek. -AREA leírások. Alséma hálós modellben A séma leírás valódi része. Újdonság nem szerepelhet, de mindent át lehet nevezni. Lekérdezés hálós modellben Az eredeti javaslat a COBOL nyelvet javasolta (BATCH feldolgozás!), ezt váltotta fel a PL1, majd az interaktív felhasználás. Fontos reprezentáns: IDMS (IBM 360 és 370: ESzR 1. és 2.). Az IDMS specialitásai 8

-Member-ek rendezése -Indexek készítése -Hashing algoritmus haználata. A relációs modell A relációs modell ötlete Codd 1970-es cikkébıl származik, így lényegében egyidıs a DBTG jelentéssel. Két évtized után átvette a vezetı szerepet, ma szinte kizárólag ezt használják, ezért ezt vizsgáljuk részletesen. A reláció ebben az értelemben tulajdonképpen egy táblázat (table). A táblázat oszlopai a tulajdonságok (domains), a sorai az n-esek (tuples). Gyakran nevezik azonban a sorokat rekordnak, az egyes oszlopokhoz tartozó értékeket mezınek (field). Az R reláció sorainak hosszát r-el jelöljük. Alapfeltételek relációkkal kapcsolatban 1. Ne legyenek teljesen megegyezı tartalmú sorok vagy oszlopok, 2. A sorok és az oszlopok sorrendje ne hordozzon információt. Azt a mezıt, vagy mezıkészletet, mely a sort (a sor többi elemét) egyértelmően meghatározza, szuperkulcsnak nevezzük. A nem szőkíthetı szuperkulcs neve kulcs. (1. miatt van ilyen.) Anomáliák 1. Módosítási anomália: egy attribútum értéke több helyen szerepel, így több helyen kell módosítani (inkonzisztencia). 2. Beírási anomália: hiányos adatok miatt valamit nem lehet bevinni (információvesztés). 3. Törlési anomália: egy sor törlésével olyan információ is elvész, amire még szükség lenne (információvesztés). Az anomáliák kiküszöbölése A felsorolt anomáliák kiküszöbölhetik, a relációk olyan felbontásával (dekompozíció), melyek eredményei normalizált relációk. 1. Normálforma A reláció 1NF értelemben normalizált, ha minden sorának minden mezı értéke egy elemi érték. (Újabb rendszerek lehetıvé teszik a figyelmen kívül hagyását.) 2. Normálforma A reláció 2NF értelemben normalizált, ha 1NF értelemben normalizált, és ha egy mezıérték meghatározásához összetett kulcs szükséges, egy másik mezıérték meghatározásához nem elegendı ennek egy része. 3. Normálforma A reláció 3NF értelemben normalizált, ha 2NF értelemben normalizált, és ha egy mezıérték sem függ olyan attribútum értéktıl, vagy ezek olyan halmazától, mely nem kulcs. Boyce-Codd (BCNF) normálforma A 3NF tovább gondolása. A reláció BCNF értelemben normalizált, ha 3NF értelemben normalizált, és ha egy összetett kulcs egy részét sem határozza meg más attribútum érték (nincs kulcstörés). Ha egy reláció BNCF, akkor 3NF is. Többértékő függıség Fennáll, ha az R reláció soraiból tekintve azokat, melyek minden Ai értéken megegyeznek, ezek Bj-ken felvett értékei függetlenek az A-któl és B-ktıl különbözı attribútumok értékeitıl. A többértékő függıség nem triviális, ha: 1. egyik B sincs az A-k között, 2. az A-k és a B-k együttesen sem tartalmazzák R összes atribútumát. 4. Normálforma Egy reláció 4NF-ben van, ha valahányszor az A1A2...An- ->B1B2Bm nem triviális többértékő függıség fennáll, akkor {A1A2...A} szuperkulcs. 9

Ha a reláció 4NF, akkor BNCF is. Példa többértékő függıségre Pl. legyenek az R reláció oszlopai: Tanár Tantárgy Kar Egy tanár több tárgyat taníthat, egy tárgyat többen taníthatnak, egy tárgyat több karon tanítanak, egy karon több tárgyat tanítanak. Tanár->->Tantárgy és Tantárgy- ->Kar fennáll, és nem triviális. A lekérdezés elve relációs rendszerekben A relációk legfontosabb tulajdonsága, hogy azok exakt matematikai eszközökkel kezelhetıek. Ilyen eszközrendszer a relációs algebra és a relációs kalkulus. A relációs algebra Alapmőveletek: 1. Unió: R U S 2. Különbség: R S 3. Direkt szorzat: R x S 4. Projekció: π i1,i2...ik (R) (elhagyjuk a felsoroltakon kívüli oszlopokat) 5. Szelekció: σ F (R) (csak az F feltételnek eleget tévı sorokat hagyjuk meg) ahol: Az F feltétel az [i]θ[j], és az [i] Θ c elemi kifejezések logikai mőveletekkel (/\,\/, ) való összekötésébıl állhat. Θ tetszıleges összehasonlító operátort (=,!=,<,>,<=,>=) jelenthet. Következmény mőveletek: 6. Metszet: R S [R S = R (R S)] 7. Hányados: R S Feltesszük, hogy r > s, és s!=0 Legyen T= Π 1,2,... r-s (R), továbbá V= Π 1,2,... r-s ((T x S) R) Ekkor belátható, hogy R S = T - V 8. Belsı kapcsolat (inner join) 8a. Feltételes kapcsolat (Θ join): R*S= σ [i] Θ [r+j] (R x S) 8b. Természetes kapcsolat (natural join): R * S Hasonló a feltételes kapcsolathoz de itt a szelekció feltétele az, hogy az azonos nevő oszlopokban azonos érték szerepeljen. 9. Külsı kapcsolat (Left, vagy Right Outer join): Tulajdonképpen egy Θ join, de a szelekció valamelyik relációból azokat a sorokat is meghagyja, melyekhez a másikban nem tartozik érték (itt a NULL érték fog szerepelni). 9a. Left Outer Join A baloldali reláció minden sora legalább egyszer szerepel. 9b. Right Outer Join 10

A jobboldali reláció minden sora legalább egyszer szerepel. 9c. Full Outer Join Egy Left-és egy Right Outer Join uniója A relációs kalkulus Létezik sor-és oszlopkalkulus, mi csak az elıbbivel foglalkozunk. A kalkulus az alábbi alakú kifejezésekbıl áll: {t Ψ(t)} melynek jelentése: azok a t sorok, melyek kielégítik a Ψ(t) függvényt, azaz amelyekre a Ψ(t) függvény értéke igaz. Atomi formulának, vagy atomnak nevezzük, az alábbi kifejezéseket: 1.) R(s): (azaz az s sor R relációbeli), 2.) s[i] Θ u[j]: (ahol s[i] az s-edik sor i-edik elemét, u[j] az u-adik sor j-edik elemét jelenti, Θ a szokásos összehasonlító operátor), 3.) s[i] Θ c: (ahol c egy konstans). A Ψ(t) függvény, melyet formulának nevezünk, az alábbiak szerint épülhet fel: 1.) Minden atom formula 2.) A formulákból a /\, \/, logikai mőveletekkel képezett kifejezések is formulák. 3.) A ( s)(ψ) alakú (van olyan s, hogy igaz) kifejezések is formulák. 4.) A ( s)(ψ) alakú (minden s olyan, hogy igaz) kifejezések is formulák. 5.) A kifejezések a precedencia (Θ,,, /\, \/, ) megváltoztatása érdekében zárójelezhetik. 6.) Más formula nincs. A relációs algebra és kalkulus összehasonlítása A relációs algebra alapmőveletei kifejezhetık a relációs kalkulus eszközeivel. Unió: {t R(t) \/ S(t)} Különbség: {t R(t) /\ S(t)} Direkt szorzat: {t^(r+s) (Eu^(r)) (Ev^(s)(R(u) /\ S(v) /\ t[1]=u[1] /\...} Projekció: {t^(k) (Eu)(R(u)) /\ t[1]=u[i1]/\... /\ t[k]=u[ik]} Szelekció: {t (R(t) /\ F } {t R(t)}: értelmetlen, de nem írható le a rel. algebrában. DOM fv.: A DOM(Ψ) azon elemek halmaza, melyek közvetlen, vagy közvetett módon Ψ-t alkotják. Biztos kifejezések: 1. Ha t kielégíti Ψ(t)-t, t minden komponense DOM(Ψ)-beli. 2. Ψ minden (( u)(ω(u)) alakú részkifejezésére, ha u kielégíti ω(u)-t minden komponense DOM(ω)-beli. A rel. kalkulus biztos kifejezései ekvivalensek a rel. algebra kifejezéseivel. Lekérdezés relációs rendszerekben (ISBL) Korai IBM termék. Lényegében a relációs algebra kifejezéseinek linearizálása. Nem felhasználóbarát. Lekérdezés relációs rendszerekben (QBE) IBM termék. Tábla vázakat (skeleton) használ, ezeket vektorváltozók segítségével lehet összekapcsolni. Lekérdezés relációs rendszerekben (SQL) Structured Query Language Több részbıl áll: 1. DDL 2. DCL 3. DML 11

4. Query SQL verziók 1989 SQL1 1992 SQL2 -Hibakódok -Adattípusok -Adatbázis struktúrák -Rendszertáblák -Programozható felület -Portabilitás DDL CREATE TABLE ALTER TABLE DROP TABLE CREATE VIEW DROP VIEW CREATE [UNIQUE] INDEX DROP INDEX DDL példa I. Create Database kutya; Drop Database kutya; CREATE TABLE táblanév (oszlopnév oszlopleírás, esetleg index definíció ) Kulcsok legfontosabb jelzıi Táblánként max egy mezı lehet PRIMARY KEY: egyedi, nem lehet NULL értékő. Gyakran egy (elıjel nélküli) egész. AUTO_INCREMENT: automatikusan nı. Minta tábla létrehozása CREATE TABLE allatok (nev varchar(25), fajta varchar(20), szex char(1), szuld date, hald date ); ALTER TABLE allatok ADD COLUMN sorszam Integer Unsigned Primary Key Auto_Increment FIRST DCL Tranzakció kezelés: COMMIT ROLLBACK LOCK UNLOCK Jogosítvány kezelés: GRANT. WITH GRANT OPTION REVOKE DCL példa GRANT jogok ON adatbázisnév[,táblanév] TO felhasználó@ host IDENTIFIED BY jelszó WITH GRANT OPTION REVOKE jogok [, GRANT OPTION] ON adatbázisnév[.táblanév] FROM felhasználó@ host 12

Tranzakciók BEGIN WORK-el kezdıdik, COMMIT-al vagy ROLLBACK-al végzıdik. DML INSERT UPDATE DELETE INSERT INTO allatok VALUES ( Sajti, eger, n, 2004-02-02,NULL); UPDATE allatok SET nev= kukac WHERE nev = giliszta QUERY A SELECT utasítás valósítja meg. Legegyszerőbb formája: select [distinct] oszlopnevek from táblanevek [where feltétel] [order by rendezési feltétel] [group by feltétel [having having-feltétel]] SELECT nev, szuld FROM allatok WHERE faj = kutya OR faj = macska ORDER BY szuld DESC Keresés egymásba ágyazott SELECT-ek esetén: A WHERE részben alkalmazható újabb SELECT klauzula: 1. [NOT] IN (selectkifejezés) 2. Θ[ANY ALL] (selectkifejezés) 3. [NOT] EXISTS Több SELECT esetén a kiszámítás belülrıl kifelé történik. Beágyazott (embedded) SQL 1. EXEC SQL <beágyazott SQL utasítás> 2. Változók használata V->:V 3. Vezérlés: -NOT FOUND -- GO TO címke - WHENEVER -SQL WARNING-- CONTINUE - -SQL ERROR -- STOP - Egyetlen sort eredményezı lekérdezések: A SELECT utasításban rendszerint az INTO változónév szerepel Több sort eredményezı lekérdezések: Egy sormutatót (CURSOR) kell deklarálni, ezzel lehet a sorok között lépegetni (NEXT, PRIOR). A CURSOR használatával módosítani is lehet a sorokat. Dinamikus SQL A fordításkor még (részben) nem ismert SQL utasítások. PREPARE 4GL program generátorok 1. FORM (őrlap) 2. REPORT (jelentés) 3. MENU 13

Továbbfejlesztett modellek 1. Az EER modell. 2. Nested Relational Model. 3. Structural Data Model. 4. Objektum-orientált adatbázisok. 5. Deduktív adatbázisok. Az EER modell -Subclass, superclass bevezetése. (Közös tulajdonságok, kapcsolatok leírása.) -A hierarchiában a superclass tulajdonságai öröklıdnek (inheritance). -Relációkkal megvalósítható. Az EER modell felosztása 1. A subclass lehet attribútum által meghatározott, vagy felhasználó által definiált. 2. A felosztás lehet diszjunkt (disjoint), vagy átfedı (overlap). 3.) Ugyancsak lehet a felosztás teljes (complett) vagy részleges (partial). A subclass-ok nem diszjunktak, a felosztás részleges! Az EER modell használata 1.) Specializáció (Megkeressük az egy-egy csoportra jellemzı tulajdonságokat.) 2.) Generalizáció (Megkeressük a közös tulajdonságokat. ) Példa Specializációra Superclass=Munkavállaló->Subclasses=(Mérnök, Technikus, Szakm.) Superclass=Munkavállaló->Subclasses=(Havidíjas Órabéres Darabbéres) Példa Generalizációra Subclass=(Autó Kerékpár Motork.)->Superclass=Jármő Kategória az a subclass, melynek több superclassa van. Itt az öröklés szelektív lehet. Adatbázis kezelı architektúrák Három fı rész: 1.) Data processing (fizikai adatkezelés). 2.) Business logic (adatvédelem és integritás, tranzakció kezelés, stb.). 3.) User interface Hol helyezkednek el? Kliens-szerver architektúra: Többrétegő architektúra: Tárolt rutinok 14

A szerveren tárolódik és hajtódnak végre. CREATE PROCEDURE procnév (IN OUT INOUT parnév partípus) törzs CREATE FUNCTION funcnév RETURNS rettípus IN OUT INOUT parnév partípus) törzs Tárolt rutinok hívása PROCEDURE esetén CALL procnév(paraméterek) FUNCTION esetén kifejezésben használható (a RETURN utáni érték tér vissza) Utasítások tárolt rutinban BEGIN END több utasítást összefog DECLARE varnév típus [DEFAULT érték] A begin-end között él. SET varnév=kifejezés SELECT oszlopnév INTO varnév táblakif Csak egy sor! Vezérlés tárolt rutinban: IF feltétel THEN utasítások [ELSEIF feltétel THEN utasítások] [ELSE utasítások] END IF CASE case_érték WHEN feltétel THEN utasítások [WHEN feltétel THEN utasítások] [ELSE utasítások] END CASE CASE WHEN feltétel THEN utasítások [WHEN feltétel THEN utasítások] [ELSE utasítások] END CASE [kezdıcimke:] LOOP utasítások END LOOP [végcimke] LEAVE cimke 15

ITERATE címke [kezdıcimke:] REPEAT utasítások UNTIL feltétel END REPEAT [végcimke] [kezdıcimke:] WHILE feltétel DO utasítások END WHILE [végcimke] Kurzorok tárolt rutinban DECLARE curnév CURSOR FOR select_ut változó deklaráció után! OPEN curnév FETCH curnév INTO varnév CLOSE curnév Triggerek CREATE TRIGGER név idı esemény ON táblanév FOR EACH ROW utasítás Idı: BEFORE AFTER Esemény: INSERT UPDATE DELETE Több utasítás BEGIN END Változtatásnál OLD.oszlopnév és NEW.oszlopnév használható DROP TRIGGER tábla.név Osztott adatbázisok Megnövekedett a kommunikációs költségek részaránya. Javaslat: helyezzük az adatokat a felhasználóhoz közel. Osztott (distributed) adatbázis: fizikailag megosztott, de logikailag egységes adatbázis. Adatbázis felügyelet: központi, csomóponti. Osztott adatbázisok elınyei 1.) A kommunikációs költségek csökkenése. 2.) Mindenki a számára ismerıs adatokat gondozza. 3.) Egy-egy csomópont kiesése esetén a többi adatai továbbra is elérhetıek. 4.) Lehetséges a moduláris tervezés, a rugalmas konfigurálás. 5.) Hosszabb idı alatt a rendszer gépei akár ki is cserélhetik. 16

Osztott adatbázisok hátrányai 1.) A rendszer bonyolultabb és sebezhetıbb lesz, 2.) Nem könnyő minden csomópontra egyformán jó személyzetet találni, másrészt, ha találunk fenyeget a szuboptimalizáció veszélye. 3.) Mindig valamennyi gépnek mőködnie kell. 4.) Többféle hardvert és szoftvert kell a rendszernek kezelnie és "összehoznia". 5.) Bonyolult a jogosultságok ellenırzése. Osztott adatbázisok konzisztenciája Külön problémát jelent, ha feladjuk a redundancia-mentesség elvét. Erre okot szolgáltathat az is, ha nem eldöntheti egy-egy adatról, hogy hol használják legtöbbet, de biztonsági okokból is dönthetünk egy-egy adat többszörözése mellett. Ilyen estekben biztosítanunk kell, hogy az egyes példányok tartalma azonos legyen, azaz a rendszer konzisztens maradjon. Elemzések 1. Forrás nyelı elemzés (A használat gyakorisága, módja) Elsısorban a felhasználás gyakoriságát kell vizsgálnunk. Nem mindegy azonban, hogy a felhasználó csomópont nyelı (azaz csak olvassa az adatot, s így a felhasználáskor elég a legközelebbi példányt megtalálnia), vagy forrás (mely az adatot létrehozza, vagy módosítja). 2. ABC elemzés (A nélkülözhetetlenség foka) Az adatok kategóriákba sorolhatók "nélkülözhetetlenség" szerint. Ezekhez a kategóriákhoz különbözı minimális kópiaszámot rendelhetünk. 3. Érzékenység elemzés (A költség/teljesítmény arány) A különbözı csomópontok költség/teljesítmény aránya más és más lehet. Nyilvánvaló, hogy a teljesítményt "kevésbé érzékeny" csomópontoknál növelni, az "érzékenyebbeknél" csökkenteni kell. Konzisztencia, konvergencia Létezik Erıs konzisztencia Gyenge konzisztencia Koherencia: a konzisztencia mérı száma, mely erıs konzisztenciánál azonosan 1 értékő, gyenge konzisztenciánál pedig 1-hez tart. Szinkronizációs protokollok A. Központosított protokollok a.) A központi zárellenırzés Egy állandó központ végzi el a változtatásokhoz szükséges lezárásokat. Mőködése hasonlít az osztatlan adatbázisoknál megszokotthoz. A központ sérülésére érzékeny, csak statikus adatbázisoknál használható, erısen konzisztens módszer. b.) A zseton módszer Egy, a csomópontok között körbejáró "zseton" jelöli ki az alkalmi központot, mely a változtatásokhoz szükséges lezárásokat elvégezheti. Igen kedvelt, erısen konzisztens módszer. c.) Az elsıdleges példány módszer Egy adat kópiáit egy szekvenciába szervezzük, s a változtatások csak ennek mentében történhetnek. Mivel a tranzakciók nem elızhetik meg egymást, nem okoz gondot, hogy a módszer gyengén konzisztens. Elınye, hogy az ideiglenesen mőködésképtelen csomópontok újra munkába állítása egyszerő. B.) Osztott protokollok Az idıbélyeg módszer 17

E módszernél a tranzakciók elindításuk idıpontjából és a csomópont azonosítójából egy idıbélyeget kapnak, mely meghatározza végrehajtásuk sorrendjét. A távolságból adódó félreértéseket rendszeres dummy üzenetek küldésével kerülik el. A módszer gyengén konzisztens. Adatvédelem a.) Fizikai védelem (Zárt, ırzött számítóközpont) b.) Ügyviteli védelem (elsısorban a felelısségkérdését szabályozza) c.) Algoritmikus védelem Algoritmikus védelem a.) felhasználó azonosítás, partner azonosítás b.) hozzáférés védelem c.) rejtjelezés d.) üzenethitelesítés e.) digitális kézjegy Rejtjelezés Régóta ismeretes, hogy a védhetetlen közegen átjuttatandó x üzenetet valamilyen y = E(x) transzformációval torzítani érdemes, természetesen úgy, hogy az üzenet címzettje képes legyen az inverz x = D(y) transzformációra. A transzformációktól elvárjuk, hogy (legalábbis az üzenet "érvényességi idején" belül) kívülálló számára megfejthetetlenek legyenek, a címzett ugyanakkor gyorsan és könnyen megértse azokat. Mivel nem könnyő nagyszámú megfelelı E-D párt elıállítani, nem egy, hanem kétváltozós transzformációkat célszerő alkalmazni, ahol a másik változó az esetenként cserélhetı kulcs. Így a transzformációk akár nyilvánosak lehetnek, csak a kulcsok titkos kezelését kell megoldani. Ha az E transzformációnál alkalmazandó Kr rejtıkulcsból ennek D transzformációnál alkalmazandó K f fejtıkulcs párja könnyen meghatározható, konvencionális kódolásról beszélhetünk, ellenkezı esetben a kódolás nyilvános (rejtı) kulcsú. A rejtjelezés felosztása 1. Konvencionális a rejtjelezés, ha a rejti kulcsból a fejti kulcs meghatározható. 2. Nyílt (nyilvános ) kulcsú a rejtjelezés, ha rejti kulcsból a fejti kulcs nem határozható meg. A konvencionális kódolás a.) Helyettesítés A nyílt szöveg minden betőjét megadott rend szerint egy másikkal helyettesíthetjük. A nyelvi sajátosságok (betők gyakorisága) alapján megfejthetı. b.) Periodikus helyettesítés Az elızıhöz hasonló de több helyettesítési szabályt használunk periodikusan. Ez is megfejthetı: azonos betőkombinációkból lehet a periódus hosszára következtetni, s ezután az egyszerő helyettesítésnél leírtakhoz hasonlóan okoskodni. c.) Kulcsfolyam(at)os rejtés A helyettesítést aperiodikussá tesszük. A helyettesítést egy szöveg vezérli, az abc hosszának megfelelı számú különbözı abc permutációból álló mátrixban a rejtendı szöveg betőjének megfelelı oszlopban és a kulcsszöveg soron következı betőjének megfelelı sorban álló bető lesz a rejtett szöveg következı betője. d.) Rejtjelötvözés vagy keverı transzformációk Több egyszerő transzformáció egymás utáni alkalmazásával élünk. (Shannon, 1949) Lucifer (128 bites blokk, 128 bites kulcs) DES (64 bites blokk, 56 bites kulcs ) 18

A nyilvános (rejtı) kulcsú kódolás a.) MIT módszer (prímfelbontás). ahhoz, hogy a rejtıkulcsból a fejtıkulcs meghatározható legyen, egy több száz jegyő számot kell prímtényezıkre bontania b.) Merkle-Hellmann módszer (hátizsák probléma). Kulcsgondozás Ha a kulcsok megfelelı védelme nem biztosított, az egész kódolási rendszer értelmetlen. A kulcsok gondozása három feladatból áll. 1.) kulcsgenerálás 2.) kulcskiosztás 3.) kulcstárolás Kulcsgenerálás Az a mővelet, melynek eredményeképpen a kulcsok elıállnak. Egy valódi véletlenszám generátor segítségével végrehajtható. Kulcskiosztás Példák: a.) Alapkulcsok A kulcsok kiosztása történhet egy alapkulcs készleten keresztül, melyet rendszeren kívüli eszközökkel juttatnak el a résztvevıkhöz. Az alapkulcsokat, melyek gyakran nyilvános kulcsú rendszerhez tartoznak, csak a kulcsok cseréjéhez használják. b.) Merkle rejtvény módszere A hívó fél n db (K i, I i ) párt küld partnerének gyengén kódolva. Ez egyet kiválaszt, feltöri, és I i -t visszaküldi. Ezzel a kommunikáció kulcsa meghatározott. A behatolónak átlagosan a párok felét kell ahhoz feltörnie, hogy megtudja, I i -hez melyik K i tartozik. c.) A "hatványozós" módszer A módszer alapja, hogy az i és a j felhasználó kitalál egy-egy x i ill. x j számot. Egymás között kicserélik az Y i = α xi (mod p), ill. az Y j = α xj (mod p) számokat (p prímszám, a p elemő véges test egy primitív eleme). A kommunikáció kulcsa a xi* xj K= α szám (vagy annak valamilyen függvénye) lehet. Ennek elıállítása α mellett Y j és x i vagy Y i és x j ismeretében egy egyszerő hatványozást igényel, a behatolónak viszont a diszkrét logaritmusképzés a feladata. Kulcstárolás Nehézségeket okozhat, ha a kulcsokat akár túl kevés, akár túl sok ember ismeri. Megoldást jelentenek az (n,k) küszöbrendszerek. E rendszerek lényege, hogy a kulcsot n db. (nem feltétlenül diszjunkt) részre osztva, bármelyik k kulcsrészletbıl a kulcs elıállítható, de nincs olyan k-1 kulcs-részlet, amibıl ez megtehetı lenne. Ilyen küszöbrendszerek készítésére több matematikai módszer is rendelkezésünkre áll. Felhasználó azonosítás Személy azonosítás: a.) jelszóvédelem b.) fizikai azonosító használata c.) személyi jellemzık Partner azonosítás 19

A számítógép-számítógép kapcsolatokban is szükség lehet azonosításra. E célra fenntarthat minden számítógép pár egy-egy kulcsot, ez azonban egy n elemő hálózatnál n 2 kulcsot jelent. Folyhatnak az információcserék valamilyen hitelesítı központon keresztül, ez azonban a kommunikáció költségét növeli jelentısen. Megoldás: ha minden csomópont egy, csak a hitelesítı központ által ismert kulccsal tud e központhoz bejelentkezni, s üzenet továbbítási igényét bejelenteni. A központ jelöli ki a kommunikáció kulcsát, melyet a fenti kulccsal kódolva a hívónak visszaküld. Emellett küld egy csomagot, mely a hívandó fél kulcsával kódolva tartalmazza a kommunikáció kulcsát, s a hívó megjelölését. Ha a hívó e csomagot a hívott félhez továbbítja a párbeszéd kettejük között folytatódhat, s az azonosítás is kielégíti biztonsággal történt meg. Hozzáférésvédelem Nem elegendı kiszőrni a jogosulatlan behatolókat, a rendszernek azt is számon kell tartania, hogy a jogos felhasználók hatásköre mire terjed ki. A felhasználó által mőködtetett ügynök folyamatok hatáskörét a hozzáférési mátrix szabja meg. Ennek elemeit akár ügynökökhöz, akár adatokhoz kötötten tárolhatjuk. Üzenethitelesítés Az üzenetek hitelesítéséhez két feltétele van, egyrészt ellenırizni kell, hogy egy-egy blokkban az és csak az érkezett-e a címzetthez amit a feladó feladott, másrészt tudnunk kell azt is, hogy az egyes blokkok abban a sorrendben érkeztek e meg amilyenben feladták ıket (ideértve azt is, hogy nem hiányzik-e közülük). Az elsı célhoz ellenırzı összegeket, a másodikhoz sorszámot célszerő a blokkban elhelyezni még a kódolás elıtt. A digitális kézjegy Arra szolgál, hogy segítségével a címzett megbizonyosodhassék egy üzenet feladójáról és bizonyíthassa, hogy az illetıtıl kapott ilyen üzenetet. Olyasmire van szükség tehát mint az aláírás, ami könnyen azonosítható, de nehezen hamisítható. A cél elérhetı úgy is, hogy a kényes kommunikációt egy hitelesítı központ közbeiktatásával végezzük (mintha tanú elıtt beszélnénk) ez a valódi digitális kézjegy. A valódi digitális kézjegy Ehhez egy nyilvános kulcsú kódolási rendszer lehet felhasználni, mégpedig olyant, mely "megfordítható", azaz E(D(x)) = x (az általunk említett módszerek ilyenek). Rejtsünk a titkos fejtı kulccsal (és fejtsünk a nyílt rejtı kulccsal). A címzett, ha a nyílt kulccsal fejthetı üzenetet kap, biztos lehet abban, hogy azt csak a titkos kulcsot ismerı feladó küldhette. Mivel a címzett nem ismeri a titkos kulcsot, ha rendelkezik az üzenetnek a nyílt kulccsal megfejtheti kódolt változatával, nyilvánvaló, hogy azt ı nem készíthette. Hagyományos igények OLTP (On Line Transaction Processing): -az ábrázolt mini világ minden adatát tartalmazza -az utolsó állapotot mutatja -sok adatmódosítás -egy-egy tranzakció kevés adatot érint -viszonylag egyszerő, de ad hoc kérdésekre is tud válaszolni -a válaszidı kicsi -jellemzı több, párhuzamosan mőködı felhasználó Új igények 1. Adatfolyamok feldolgozása. 2. Elıre elkészített, aggregált adatok a vezetıknek: DSS (Decision Support System) 3. Nem ismert összefüggések kiderítése: Tudásfeltárás (Data Mining, adatbányászat) Adatfolyamok feldolgozása 20

Pl. szenzorok állandóan tömegével generálnak adatokat, ezeket nem tároljuk mind le, de kérdéseink lehetnek. Forgalom figyelés: hálózati, banki, közlekedés stb. Naplózás: meteorológiai, egészségügyi, ipar Új eszközök (részben az SQL kiterjesztésé) Stanford University: CQL (Continuus Query Language) Cornell University: COUGAR 1. Az ilyen kérdések hosszú ideig mőködnek 2. Sokszor a megválaszoláshoz hagyományos adatbázis is kell. Probléma: hogyan kezeljük az adatbázis adatainak változását? (Pl. kereskedelmi forgalom vizsgálata, de az árak és az ügyfelek címei hagyományos adatbázisban.) Döntés-támogató rendszer (DSS Decision Support System) OLAP (On Line Analitical Processing) Megoldásai: ROLAP, MOLAP OLAP -nem feltétlenül egészen up-to-date -csak az elemzéshez szükséges adatokat tartalmazza, ezek azonban több mini világból származnak -tartalmazza a régi adatokat (trendek) -jellemzıen olvas, de bonyolult elemzéseket végez -a válaszidı nem kritikus -látványos riportok, ezek könnyen elérhetıek (intra-internet, wap, sms, stb.) ROLAP (Relational On Line Analitical Processing): A jól ismert és bevált relációs eszközöket használja, ezek azonban nem erre a célra készültek. MOLAP (Multidimensional On Line Analitical Processing): Az adatokat egy többdimenziós kockában tárolja. Könnyő megvizsgálni egy kiválasztott élnek a többitıl való függését. -lassan kiépíthetı, hardware igényes rendszer -gyorsan ad választ a várt kérdésekre. Data Warehouse: Adattárház Bill Inmon: Az adattárház rendszer egy témaorientált, integrált, idıben változó, nem átmeneti adatrendszernek tekinthetı, melynek elsıdleges célja a stratégiai döntések támogatása. 21

Data Marts: Adatpiacok AB: Operatív adatok; AP: Adatpiacok Adatpiacok: 1. Az adatpiac az adattárház egyik fontos komponense, egy, kiválasztott tárgyaknak osztályhoz kötött részhalmaza. 2. Az adatpiac egy alkalmazás-központú adattárház, a teljes adattárház egy része. 3. Az adattárház nem más, mint adatpiacok összessége. Adatpiacok: elınyök 1. Adatkezelés: minden osztály maga állapíthatja meg az általa használt adatok struktúráját. 2. Relevancia: egy-egy osztály eldöntheti, hogy a historikus adatokból menynyire van szükség. 3. Önálló felhasználás: minden osztály maga döntheti el, mikor, milyen folyamatot futtat. 4. Hatékonyság: a kisebb egységek kezelése olcsóbb. Különféle célokra sok adatpiac építhetı ki egy adattárházból, ezek akár átfedıek is lehetnek. Egymástól függetlenül kiépült adatpiacok egy hálózatban egy virtuális adattárházat alkothatnak. Tudásfeltárás Rejtett, ismeretlen, potenciálisan hasznos tudás kinyerése az adatokból nem triviális módon. Több tudományágat átfogó kutatási terület. 22

Adatbányászat: az adatok összefüggéseinek feltárása. Lépések adatkiválasztás adattisztítás bıvítés szőkítés kódolás adatbányászat jelentéskészítés Tisztítás Véletlen kettızıdések Név elírások (Kotsis, Kocsis, Kotsits) Kitöltés hiánya (alapértelmezés) Bıvítés Hozzáveszünk újabb adatokat: születési idı, jövedelem,, van-e autója, van-e háza stb. Szőkítés Kihagyhatunk sorokat: pl. nincs kitöltve (?) Kihagyhatunk oszlopokat: pl. a név nem kell már (a tisztításhoz kellett!) Jól meggondolni, mert elveszíthetünk fontos információkat! Kódolás Fıként, ha az adat túl részletes. Pl. Születési dátum helyett: korkategória Cím helyett: régió kód Elıfizetés kezdete helyett: idıtartam hónapokban Jövedelem helyett: ezerrel(?) osztva Alapvetıen befolyásolhatja az eredményt! Adatbányászat Sokféle technika lehet, néhány ezek közül: -hagyományos lekérdezı eszközök Egyszerő lekérdezések: pl. átlagszámítások. -statisztikai technikák Összefüggéseket keresünk -vizuális technikák segíthet, ha a számítógépen ábrázoljuk a különféle eloszlásokat, esetleg idıben változva -hasonlóság, távolság, szomszédság A rekordokat tekinthetjük egy n dimenziós tér pontjainak (közöttük lehet távolságot definiálni) A k db. legközelebbi szomszéd viselkedése adhat elırejelzést a vizsgált objektum viselkedésére. -döntési fák -társító szabályok Új problémák Nagyon sok a rendelkezésre álló adat: a hálózat maga egy adatbázis. Válogatás kell (felesleges másolat, elektronikus szemét). Keresés (általában túl primitív, sok találat). Ügynök (agent) programok (barátságos, barátságtalan). Kiszolgáltatottság! NAGYISTVÁN: 23

Adattárházak kialakulása, építése, elemzése Az adatfeldolgozás forrásai Tranzakciós adatbázis (OLTP On-Line Transaction Processing) Operatív adattár (ODS Operational Data Store) Adattárház (OLAP On-Line Analytical Processing) 24

25

26

27

28