2. Adatszervezés, adatelérés, adatbáziskezelı rendszerek
|
|
- Emil Faragó
- 8 évvel ezelőtt
- Látták:
Átírás
1 2. Adatszervezés, adatelérés, adatbáziskezelı rendszerek 2.1. Bevezetés 2.2. Adatszervezés: elemi adatok, összetett adatszerkezetek 2.3. Tárolási szerkezetek 2.4. A háttértárakon, valamint az adatforgalomban alkalmazott adategységek 2.5. Tartalom szerinti adatelérés 2.6. Adatbáziskezelı rendszerek 2.7. Adatbázistervezés adatmodellezés
2 44 INFORMATIKUS SZAKMAI ISMERETEK 2.1 Bevezetés Ez a fejezet alapvetı adatszervezési ismeretekkel kezdıdik (2.2. alfejezet). Ezekbe beletartozik a különféle típusú elemi adatok számítógépi ábrázolási módja, de a bonyolultabb problémákat jellemzı összetett adatszerkezetek típusai is. A 2.3. alfejezet az összetett adatszerkezetek reprezentálására alkalmas tárolási szerkezetek fıbb típusait mutatja be függetlenül azok fizikai megvalósításaitól. A 2.4. alfejezet a háttértárakon, valamint a háttértárak és központi memória közötti adatforgalomban alkalmazott fizikai és logikai adategységeket ismerteti. Az adatszerkezeteket, az adattárolást, valamint az ezekkel összefüggı adategységeket tárgyaló részeket követıen a 2.5. alfejezet az adatok tartalom szerinti elérési módjaival, konkrétabban a tartalom szerinti elérést meggyorsító megoldásokkal foglalkozik különös tekintettel a relációs adatbázisoknál nélkülözhetetlen indextáblákra, valamint a többdimenziós adatbázisokra jellemzı inverz táblákra. A alfejezetek egyebek mellett az adatbázisok szerkezeti felépítésének megértését, lényegében az adatbáziskoncepciókat tárgyaló 2.6. alfejezetet készítik elı. Ez az alfejezet az adatbázisoknak nem csak felépítés (technológia), hanem az alkalmazási cél szerinti típusait is megkülönbözteti, így részletesen foglakozik az OLTP rendszerek adatbázisai és az adattárházak közötti különbségekkel. A 2.4. alfejezet az OLTP rendszereket kiszolgáló relációs adatbázisokra koncentrálva részletesen bemutatja az adatbázistervezés részét képezı adatmodellezés elveit, fogalmait és módszereit (normalizálási szabályait).
3 ADATSZERVEZÉS, ADATELÉRÉS, ADATBÁZISKEZELİ RENDSZEREK Adatszervezés: elemi adatok, összetett adatszerkezetek Adatábrázolás a számítógépeken Elemi adattípusok Digitális adatábrázolás Az szakaszban már szerepelt, hogy az adat egyszerő vagy összetett jel, az utóbbi legegyszerőbb változata pedig a jelsorozat. Technikailag (mechanikai, optikai, elektromágneses vagy elektronikus eszközzel) a legegyszerőbben megvalósítható jelkészlet egy kétállapotú kapcsoló kétféle állapotából áll. A digitális adatábrázolásban alkalmazott kétállapotú kapcsolók neve: bit. A digitális számítógépek operatív memóriájában vagy a digitális adathordozókon minden adat bitek sorozataként ábrázolódik. Az elemi adattárolási egységként itt bevezett bit nem azonos az szakaszban az információmennyiség mértékegységeként bevezetett bittel, de a két fogalom között szoros kapcsolat van: egy n bitnyi információmennyiséggel rendelkezı adat tárolásához legalább n bit (elemi tárolási egység) szükséges. A bit két állapotának egyike tekinthetı 0-nak, a másika 1-nek. A kettes (bináris) számrendszerben éppen elegendı ezt a két számjegyet használni, továbbá ebben a számrendszerben az alapvetı aritmetikai mőveleteket (összeadás, szorzás) nagyon egyszerő szabályok szerint lehet elvégezni. Ez az oka annak, hogy a számítógépes számábrázolásban egyeduralkodó szerephez jutott a kettes számrendszer. Ráadásul a számítógépben (de a háttértárakon is) nemcsak a számszerő adat, hanem mindenféle adat (szöveg, kép, hang) valamilyen szabályok szerint számként kódolódik, azaz végeredményben bináris számmal ábrázolódik. A legkisebb címezhetı adategység, a bájt (byte) A számítógép operatív memóriájában az egyes tárolási egységek (és azzal a bennük tárolt adatok) véletlenszerően (közvetlenül) elérhetık, a címük (a memóriaegység sorszáma) alapján: Pl. a 100. memóriaegységben tárolt adat olvasásához nem kell végigmenni az elızı 99 egységen, és így bármely memóriaegység az elhelyezkedésétıl függetlenül azonos idı alatt érhetı el. A legkisebb ilyen címezhetı egység általában a 8 bitbıl álló bájt (byte). Adattípus A számítógéptıl függetlenül is megkülönböztetik az adatok megjelenésének (ábrázolásának, kódolásának) többféle típusát, például a számokat, a szövegeket, a képeket, stb. Az adatok ilyen fajtáiból vonatkoztatható el az adattípus fogalma. Adattípus Az adattípus adatábrázolási (kódolási) módot, értékkészletet, az adott módon ábrázolt adatokon értelmezett mőveletek készletét és az egyes mőveletek végrehajtási módját együttesen meghatározó kategória. Az szakaszban értelmezett specifikált adat számítógépi reprezentációjának meghatározása magában foglalja az adattípus megválasztását. Itt azért a magában foglalja az adattípus megválasztását kifejezést használtuk az azonos az adattípus megválasztásával helyett, mert egy adattípus megvalósítása még függhet a számítógép vagy a használt szoftver (operációs rendszer, adatbáziskezelı) típusától is.
4 46 INFORMATIKUS SZAKMAI ISMERETEK A különbözı adattípusok mindegyike összetartozó bájtok sorozataként ábrázolható. Arra, hogy az adattípus meghatározza az elvégezhetı mőveleteket egyszerő példa, hogy a numerikus típusú (számszerő) adatokon lehet aritmetikai mőveleteket végezni, míg a szöveg típusú adatokon általában nem. Vannak azonban olyan mőveletek is, amelyek sokféle adattípuson elvégezhetık, mégpedig az összehasonlítás (A=B, A<B, A<=B, ) mőveletek, azonban a különbözı adattípusokra eltérı módon hajtódnak végre. Például a szöveges adatok összehasonlítása olyan, hogy ugyanazt a rendezettséget adja, mint amilyen a nevek rendezettsége a telefonkönyvben. Egy számjegyekbıl álló adat a számítógépben ábrázolható numerikus típusú (számszerő) formában és szöveg formában is. A két esetben a 2681 és a számok, illetve a 2681 és a szövegek összehasonlítása különbözı eredményre vezet: 2681 < , ahogy azt a matematikában megszoktuk; viszont < 2681, ahogy ELEMÉR is megelızi ELİD -öt a telefonkönyvben. (Egy fıkönyvi kivonaton a fıkönyvi számlaszámok szokásos rendezettsége is ilyen, ezért a fıkönyvi számlaszámok adattípusát célszerőbb nem numerikusnak, hanem szövegnek választani.) Egyébként a numerikus típusú adatok is többféleképpen ábrázolódhatnak (kódolódhatnak) a számítógép memóriájában: 1. A teljes számértéket teszik át a mindennapi életben megszokott decimális (tízes alapú) alakról bináris (kettes alapú) alakra. 2. A számjegyenként történik a bináris alakra áttétel, így számjegyenként binárisan kódolt, de a mőveletek szempontjából mégis decimálisnak számító alak adódik. Az 1. megoldás kedvezı a számítási mőveletek végrehajtási sebessége szempontjából, de különösen a pénzügyi alkalmazások szempontjából van egy kellemetlen tulajdonsága: A törtrészt is tartalmazó decimális számok többnyire nem konvertálhatók pontosan bináris számmá, mert sok véges tizedes törtnek véges számú biten csak pontatlanul ábrázolható végtelen kettedes tört felel meg. Ebbıl adódóan, amikor a számítógép pl. egy részletes számlát nyomtat, akkor az összegeket a belsı bináris ábrázolásról a külsı decimálisra kell konvertálni, ám a belsı és a külsı kerekítések eltérése miatt a konvertálás nem lehet pontos, és gyakran a számlán furcsa módon a részösszegeknek nem lesz összege a végösszeg (lásd a bekeretezett példát). Ajtók: ,21 Ablakok: ,21 Összesen: , : Decimálisból bináris számmá konvertálás és kerekítések miatti hiba. A 2. megoldás esetében nem jelentkezik az elıbbiekben említett eltérés a papíron és a számítógépben elvégzett mőveletek között, ezért a pénzügyi rendszerekben az ilyen belsı ábrázolási móddal rendelkezı numerikus adattípust célszerő a pénzösszegek adattípusává választani Összetett adatszerkezetek A strukturált megközelítési mód (lásd a 3. fejezetben) felfedezése volt az az elv, hogy a programok, programfunkciók szerkezetének optimálisan a feldolgozandó adatszerkezetet kell követni. (Ez a feladattól függıen lehet az input vagy az output adatszerkezet vagy a kettı burkolója vagy a kettı közötti közvetítı szerkezet.) Az elvet fejlettebb formában a korszerőbb objektumorientált módszertanok is megtartották. (A továbbfejlesztett elv úgy szól, hogy a
5 ADATSZERVEZÉS, ADATELÉRÉS, ADATBÁZISKEZELİ RENDSZEREK 47 programfunkciókat valamilyen gazda adatszerkezet köré kell szervezni.) A programozási feladatot lényegesen megkönnyíti, ha a programozók valamilyen elıre adott megoldási sémákat követhetnek, fıleg ha a sémák száma nem túl magas. Ilyen szempontból szerencse, hogy bár az adatoknak végtelen sokféle összetétele (kompozíciója) lehetséges, a lényeges tulajdonságok tekintetében az összetett adatszerkezetek mindössze néhány típusba sorolhatók, következésképpen a programozási feladatok is tipizálhatók. E szakasz az összetett (absztrakt) adatszerkezetek fı típusait tekinti át ábra: Néhány összetett adatszerkezet: tömb, szekvencia, fa, háló A 2.1. ábrán az összetett struktúrák elemeit csomópontok, a közvetlen kapcsolataikat pedig nyilak képviselik. Ezzel összhangban egy fa vagy egy háló elemei helyett ezek csomópontjairól lehet beszélni. Halmaz (asszociatív szerkezet, tömb) Az összetett adatok közül a legegyszerőbb szerkezet a halmaz. Halmaz A halmaz mint összetett adat elemi adatok olyan együttese, amelyek között azon felül, hogy bele tartoznak az adott együttesbe, semmilyen kapcsolatot nem feltételezünk.
6 48 INFORMATIKUS SZAKMAI ISMERETEK A [Mérey-1979] forrás ezt nevezi asszociatív szerkezetnek és tömbnek is. Valójában a programnyelvekben alkalmazott tömbfogalom inkább a 2.3. alfejezetben vektor néven bevezetett tárolási szerkezetnek felel meg. Szekvencia sor és verem Ha egy útvonal egymást követı szakaszait vagy egy gyártási folyamat szigorúan egymást követı mőveleteit vagy ügyfelek érkezési sorrendben való kiszolgálását akarjuk modellezni, akkor az útvonalszakaszok vagy az ügyfelek sorrendje már lényegi, tartalmi jelentéssel bír. Az említett jelenségek modellezésére alkalmas struktúra a szekvenciális adatszerkezetek egyike a sor (nem tévesztendı össze a papírlapra írt szövegek tagolásával kapott sorral). Szekvencia: A szekvenciális adatszerkezetet (röviden szekvenciát) a következı jellemzık definiálják: 1. A szerkezet bármely A eleméhez kivéve az egyetlen elsı elemet létezik pontosan egy olyan tıle különbözı B elem, amely közvetlenül megelızi A-t (másképpen, amelyet az A közvetlenül követi). Az elsı elemet éppen az definiálja, hogy nem létezik azt közvetlenül megelızı elem a szerkezetben. 2. A szerkezet bármely A eleméhez kivéve az egyetlen utolsó elemet létezik pontosan egy olyan tıle különbözı B elem, amely közvetlenül követi A-t (másképpen, amelyet az A közvetlenül megelızi). Az utolsó elemet éppen az definiálja, hogy nem létezik azt közvetlenül követı elem a szerkezetben. A szekvencia szemléletesen elemek lineárisan kiterített sorozata (lásd a 2.1. ábrán). A sor (egy és kétvégő) és a verem speciális szekvenciák, amelyek az új elem hozzáadása és egy elem elvétele mőveletekben különböznek egymástól. Sor (egyvégő): A sor (másképpen egyvégő sor) olyan szekvencia, amelybe új elemet elhelyezni csak a végére (az utolsó elem után) lehet, és amelybıl elvenni (törölni) a mindenkori elsı elemet lehet. A sor tehát egy FIFO (first in first out) szerkezet összhangban az ügyfelek érkezési sorrendben való kiszolgálásának példájával. Kétvégő sor: A kétvégő sor olyan szekvencia, amelybe új elemet elhelyezni vagy belıle elemet elvenni (törölni) mindkét végén lehet. Verem: A verem olyan szekvencia, amelybe új elemet elhelyezni és belıle elvenni csak ugyanazon végén lehet. A verem tehát egy LIFO (last in first out) szerkezet. A veremre közismert példa az öltözködés-vetkızés: amit utoljára veszünk fel, azt lehet elsıként levetni (ha a trükkös megoldásokat nem számítjuk). Hierarchia vagy fastruktúra Hierarchia, más szóval fastruktúrával például egy hagyományos szervezet felépítése a különbözı szintő szervezeti egységekbıl vagy a fıkönyvi számlák kapcsolatai a számlarendben.
7 ADATSZERVEZÉS, ADATELÉRÉS, ADATBÁZISKEZELİ RENDSZEREK 49 Hierarchia (fastruktúra): A hierarchiát másképpen a fát (fastruktúrát) a következı jellemzık definiálják: 1. A fa bármely A eleméhez kivéve az egyetlen gyökér elemet létezik pontosan egy olyan tıle különbözı B elem, amely közvetlenül megelızi A-t (másképpen, amelyet az A közvetlenül követi). A gyökér elemet éppen az definiálja, hogy nem létezik azt közvetlenül megelızı elem a fában. 2. A (szekvenciával ellentétben a) fa egyes A elemeihez esetleg több olyan tıle különbözı B elem is létezhet, amely közvetlenül követi A-t (másképpen, amelyet az A közvetlenül megelızi). A fa azon elemeit, amelyekhez nincs közvetlenül rákövetkezı elem, levélszintő elemeknek hívjuk. Nevezetes fák a rendezıfák, mert ezeket gyakran alkalmazzák a tartalom szerinti (kulcs szerinti) véletlenszerő keresés meggyorsítására, amikor a keresett elemet különösen nagy sokaságban kell megtalálni (lásd indextáblák). A fa tipikus mőveletei: Egy új B elem hozzáadása a fához, megadva, hogy melyik az az A elem, amelyet a B közvetlenül követ. A fa egy részfájának a levágása. A fa egy ágának bejárása a gyökérbıl kiindulva és mindig valamely közvetlenül követı elem irányában lépve. A fa egy ágának bejárása adott levélszintő elemtıl a gyökérig. A fa (vagy egy részfája) hierarchikus bejárása. A fa definíciójából következik, hogy minden elemére (csomópontjára) értelmezhetı a szintszáma és a fokszáma. A szintszám az elemtıl mindig a közvetlenül megelızı elem felé haladva a gyökérig vezetı útvonal hossza (a gyökér szintszáma 0). A fokszám az elemet a fában közvetlenül követı elemek száma. Egy fa bármely két A, B elemét összeköti egy A=E 1, E 2,, E n =B lánc, amelyben E i+1 az E i -t vagy közvetlenül követı vagy közvetlenül megelızı elem (ez az alternatív feltétel a különbözı i-kre eltérı módon teljesülhet). Az is igaz, hogy a fa bármely két A, B eleméhez pontosan egy olyan összekötı lánc létezik, amely a fa bármely elemét legfeljebb egy alkalommal tartalmazza. Háló Hálót alkotnak például a településeket összekötı útvonalak, de hálóval modellezhetı egy építkezés tevékenységeinek a technológiai sorrend szerinti kapcsolatrendszere is. Általában minden komplexebb folyamat (így egy könyvvizsgálati folyamat is) vagy egy összetettebb viszonyrendszer hálóra képezhetı le. Háló A háló egy összefüggı gráf; másképpen szólva olyan struktúra, 1. amelynek bármely két nem feltétlenül különbözı A, B elemére adott, hogy közöttük fennáll-e egy meghatározott A-K-B kapcsolat, és 2. amelynek bármely két A, B elemét összeköti legalább egy A=E 1, E 2,, E n =B (n>=2) lánc, melyben minden E i, E i+1 párra vagy az E i -K-E i+1, vagy az E i+1 -K-E i kapcsolat fennáll. A háló (a gráf) éleit olyan nem feltétlenül különbözı elemekbıl álló A, B elempárok alkotják, amely elemek között fennáll az A-K-B kapcsolat.
8 50 INFORMATIKUS SZAKMAI ISMERETEK Az értelmezésbıl következik, hogy a háló akár egy A-K-A hurkot is tartalmazhat; továbbá a háló két A, B elemét akár több lánc is összekötheti. A háló fenti értelmezése nyitva hagyja azt a kérdést, hogy a K kapcsolat szimmetrikus-e vagy sem; a szimmetrikus kapcsolaton azt értve, hogy az A-K-B kapcsolat azonos a B-K-A kapcsolattal. Irányított háló: Az irányított háló olyan összefüggı gráf, amelynek éleit meghatározó K kapcsolat nem szimmetrikus, és benne az A-K-B kapcsolat fennállásából nem feltétlenül következik a B-K-A kapcsolat fennállása is. Az irányított háló éleit meghatározó K kapcsolat tekinthetı a szekvenciában vagy a fában értelmezett közvetlenül követi / megelızi kapcsolatnak is, de azzal a különbséggel, hogy az irányított hálóban lehet olyan elem, amelyet több különbözı elem követ közvetlenül, és olyan elem is, amelyet több különbözı elem elız meg közvetlenül. Az irányított háló tartalmazhat körutat (hurkot) is, aminek a legegyszerőbb esete az önmagával (visszamutató) kapcsolatban álló elem. Irányítás nélküli háló: Az irányítás nélküli háló olyan összefüggı gráf, amelynek éleit meghatározó K kapcsolat szimmetrikus. Az irányítás nélküli háló elemei közötti kapcsolat nem értelmezhetı közvetlenül megelızi / követi kapcsolatként. Ugyanakkor egy Φ irányítás nélküli háló mindig egyértelmően helyettesíthetı egy olyan Ψ irányított hálóval, amelyben pontosan azok az elemek vannak jelen, mint a Φ-ben; továbbá a Φ minden A B szimmetrikus kapcsolatának megfelel a Ψ-ben a nem szimmetrikus A B és B A kapcsolatpár, és a Ψ-ben csak ezek a kapcsolatok állnak fenn Ellenırzı kérdések a 2.2. alfejezethez 1. Az adat(mezı) milyen jellemzıit határozza meg az adattípus? 2. Milyen adattípust alkalmazna pénzmozgás vagy számlaegyenleg értékének tárolására? 3. Milyen adattípust alkalmazna a fıkönyvi számlaszám értékének tárolására? 4. Jellemezze a halmaz és a szekvencia adatszerkezeteket! 5. Milyen változatait ismeri a szekvenciának, és ezek miben különböznek? 6. Jellemezze a fa és a háló adatszerkezeteket! 7. Miért könnyíti meg a programozási munkát az a tény, hogy az adatok végtelen sokféle összetétele (kompozíciója) ellenére a lényeges tulajdonságok tekintetében az összetett adatszerkezetek mindössze néhány típusba sorolhatók?
9 ADATSZERVEZÉS, ADATELÉRÉS, ADATBÁZISKEZELİ RENDSZEREK Tárolási szerkezetek Az elıbbi szakaszban tárgyalt összetett adatszerkezetek a memóriában tárolási szerkezetekre képezhetık le. A tárolási szerkezetek elemei címmel rendelkezı és a címük alapján közvetlenül elérhetı tárolóhelyek. Ez a szakasz háromféle tárolószerkezetet ismertet, a vektort, a listát és a multilistát. Ezek kombinálásával persze további tárolási szerkezeteket is kaphatunk Vektor A számítógép számára a vektor a legkönnyebben kezelhetı tárolószerkezet, mivel a központi memória maga is egy vektor. Vektor: A vektor azonos mérető tárolóegységekbıl áll, amelyek a memóriában összefüggıen egymás után helyezkednek el (lásd a 2.2. ábrán). A vektor elemei logikailag a sorszámukkal, fizikailag a memóriabeli címükkel hivatkozhatók. A definícióból következik, bármelyik vektorelem címe egyszerően kiszámítható az elsı elem címébıl, az elemek (bájtokban adott) méretébıl és a hivatkozott elem sorszámából. 1. vektorelem (cime: C) 2. vektorelem (címe = C + vektorelem hossza) 2.2. ábra: Vektor tárolási szerkezet 3. vektorelem (címe = C + 2* vektorelem hossza) Mind a halmaz (tömb), mind a szekvencia tárolható vektorban, de csak akkor, ha az adatszerkezet elemeinek maximális száma elıre ismert, és az elemek azonos méretőek. Ha a BEVÉTEL[1..20] 20 elemő tömböt vektorral valósítják meg, akkor egy tömbelem indexe egyértelmően megfelel az azt tároló vektorelem sorszámának, azaz a szomszédos indexő tömbelemek a memóriában szomszédos tárolóegységekben tárolódnak. Ilyenkor bármelyik tömbelem közvetlenül elérhetı, mert az indexébıl kiszámítható a tárolási címe. Ennek ellenére a tömb adatszerkezet és a vektor tárolási szerkezet nem keverendık össze. A tömbelemek indexével csak akkor azonos a tárolóhelyük sorszáma, ha a tömböt éppen vektorral reprezentálják. (Egyes szakkönyvek éppen fordítva, az adatszerkezetet nevezik vektornak, és a tárolási szerkezetet tömbnek, de az a lényeg, hogy különbséget tesznek közöttük.) Ha egy szekvenciát vektorban tárolnak, akkor a szekvencia elemeinek szomszédosságát az elemeknek a vektor szomszédos sorszámú tárolóegységeire való leképezésével lehet kifejezni Lista Amikor halmaz (tömb) vagy a szekvencia mérete dinamikusan változhat, vagy az elemei különbözı méretőek lehetnek, a lista az alkalmasabb reprezentáció.
10 52 INFORMATIKUS SZAKMAI ISMERETEK Lista A lista tárolóegységek szekvenciája. A lista elemei az egyes tárolóegységek az érdemi adatokon felül egy mutatót is tárolnak. Ez a mutató a szekvenciában közvetlenül következı listaelem címe (lásd a 2.3. ábrán). A mutató alkalmazásából következik, hogy a lista elemei a memóriában szétszórtan helyezkedhetnek el, ezek szekvenciája a tárolóegységeknek nem a fizikai, hanem egy logikai sorrendjét definiálja: Az egyes elemeknek a listán belüli sorszáma és a memórián belüli címe között nincs semmi összefüggés. 1. listaelem 2. listaelem 3. (utolsó) listaelem adat mutató = 2. listaelem címe adat mutató = 3. listaelem címe 2.3. ábra: Lista tárolási szerkezet adat mutató = nullmutató A listának több elınyös és hátrányos tulajdonsága állapítható meg a vektorhoz képest. Az elınyei: Egy lista különbözı típusú és mérető adatokat tároló listaelemekbıl épülhet fel. A lista rugalmasan bıvíthetı, mivel egy új listaelem bármely szabad területre elhelyezhetı a memóriában, függetlenül attól, hogy az új elemet a logikai sorrend szerint a lista végére vagy a lista belsejébe (két másik elem közé) kell-e illeszteni. Hasonlóan a listából bármely elem egyszerően törölhetı. A lista elemei könnyen átrendezhetık az eredetitıl különbözı szekvenciába. A lista utóbbi három elınye a vektorral szemben azért áll fenn, mert akár a szerkezet bıvítése, akár egyes elemek törlése, akár az elemek szekvenciájának módosítása a vektor esetében általában a vektor egészének vagy nagyon sok elemének fizikai mozgatásával, átmásolásával jár. Például egy új elemmel való bıvítés esetén az egész listát át kell másolni a memóriában egy olyan szabad területre, ahol az új elemével együtt is összefüggı tartományt alkothat. A lista hátrányos tulajdonsága: A lista adott eleme nem érhetı el közvetlenül, hanem csak az elsı elembıl kiinduló és a mutatók láncolatán haladó kereséssel. Ennél fogva egy listaelem átlagos elérési ideje nagyobb, mint egy vektorelemé. A lista különösen alkalmas a következı tulajdonságú adatszerkezetek tárolására: változó mérető adatelemeket tartalmazó halmazok és szekvenciák; szélsıségesen változó elemszámú halmazok és szekvenciák; az elemek sorrendjét dinamikusan változtató szekvenciák. A szélsıségesen változó elemszámú tömbre példa lehet, amikor egy személyi nyilvántartásból egy adott településen lakók neveit akarjuk kigyőjteni (az adott település alkalmanként más egyszer egy kis falu, máskor egy nagy város). Tehát a NÉV[ ] tömb ténylegesen szükséges mérete csak akkor derül ki, amikor már megtörtént a nevek kiválogatása a nyilvántartásból. A NÉV[ ] tömb egy listával így valósítható meg: 1. listaelem adata = NÉV[1], 2. listaelem adata = NÉV[2],. A listának különféle speciális változatai lehetnek: A ciklikus listában az utolsó elem a legelsı elemre (a lista belépési pontjára) mutat.
11 ADATSZERVEZÉS, ADATELÉRÉS, ADATBÁZISKEZELİ RENDSZEREK 53 A kétirányú lista elemeiben két mutató is van, az egyiken a közvetlenül következı, a másikon a közvetlenül megelızı elem felé lehet haladni. Az ilyen listának általában két belépési pontja is van. Az n-es lista elemeiben n számú mutató van, és eszerint minden listaelemhez legfeljebb n számú listaelem kapcsolódhat közvetlenül. Az ilyen tárolószerkezetben speciális (korlátozott elágazásszámú) fa vagy háló tárolható. Például a bináris fa, amelynek minden eleméhez legfeljebb két rákövetkezı elem lehet (egy baloldali és egy jobboldali), kettes (kettıs) listában tárolható, amelynek elemei két mutatót tartalmaznak: a balmutatót és a jobbmutatót. Ha az n-es lista fát reprezentál, akkor általában egyetlen belépési pontot elegendı nyilvántartani: a gyökér elemet; ha hálót reprezentál, akkor az összes eleme belépési pont Multilista Amikor egy fára vagy egy hálóra semmilyen megszorítás nem ismert akkor a memóriában ezen adatszerkezetek leghatékonyabb tárolási reprezentációja a multilista. A leghatékonyabb jelzı arra utal, hogy a legáltalánosabb esetre is léteznek más tárolási reprezentációk, de azokkal a szokásos hálómőveletek (pl. két csomópont közötti útvonal keresése) nagyobb ráfordítással (lényegesen nagyobb futási idıben) hajthatók végre. Multilista: A multilista egy-egy eleme vagy egy csomópontot, vagy egy közvetlenül követi kapcsolatot képvisel; és a következı részekbıl épül fel: a jelzı, az adat, és a kapcsolat mutatója. 1. A jelzı azt jelzi, hogy a multilista adott eleme csomópontot (c) vagy kapcsolatot (k) képvisel-e. 2. Az adat a csomópont esetén annak jellemzıit tartalmazhatja (a példában egyetlen jellemzıt a csomópont nevét írjuk ide). Kapcsolat esetén legyen az az X csomópont kapcsolata az X csomópontot az adott kapcsolatban közvetlenül követı csomópont mutatója. (Itt minden mutató alatt a multilista valamely elemének mutatóját kell érteni. Tehát egy csomópont mutatója pontosabban a csomópontot képviselı listaelem mutatóját jelenti, hasonlóan egy kapcsolat mutatója pontosabban a kapcsolatot képviselı listaelem mutatóját.) 3. A kapcsolat mutatója egy csomópont esetén a csomópont egyik (valamilyen rendezettségben elsı) közvetlenül követi kapcsolatának mutatója; de üres (null) értéket tartalmaz, ha a csomóponthoz nem tartozik egyetlen azt közvetlenül követı csomópont sem. Kapcsolat esetén legyen az az X csomópont kapcsolata ez a rész az X csomópont egy (valamilyen rendezettségben) következı kapcsolatának a mutatója. A multilista definíciója úgy is elıadható, hogy nem használjuk a jelzı mezıt. Ebben a megfogalmazásban a multilistának kétféle különbözı módon felépülı eleme van: a csomópont és a kapcsolat. A csomópont szerkezete az adat mezıbıl és az elsı kapcsolat mutatója mezıbıl épül fel. A kapcsolat szerkezete pedig a kapcsolódó csomópont mutatója mezıbıl és a következı kapcsolat mutatója mezıbıl áll. Példaként a 2.4. táblázattal szemléltetjük a 2.1. ábra irányított hálóját ábrázoló multilistát. (Irányítás nélküli háló helyett az azt helyettesítı irányított hálót lehet hasonlóan ábrázolni.) Ebben a 7 csomópontot és a 11 kapcsolatot összesen 18 listaelem képviseli. Az egyszerőség kedvéért a listaelemek mutatóját a listaelemek sorszámával vettük azonosnak. A 2.5. ábrán a mutatók szerinti navigáció is látható.
12 54 INFORMATIKUS SZAKMAI ISMERETEK Sorszám (a listaelem mutatója) Jelzı (c: csomópont, k: kapcsolat) Adat (itt a csomópont esetén annak neve; kapcsolat esetén a kapcsolódó csomópont mutatója) Kapcsolat mutatója 1. c A 3 2. c B 9 3. k c C k k 8 null 7. c D c E k 8 null 10. k 4 null 11. k k k 14 null 14. c F k 7 null 16. c G null 17. k k 16 null 2.4. táblázat: A 2.1. ábra irányított hálóját ábrázoló multilista 7 c D k 4 k 8 k c F k 7 4 c C k 4 8 c E k 14 k 16 1 c A k 4 k 7 k 8 16 c G 2 c B k ábra: Mutatók szerinti navigáció a multilistával reprezentált hálóban Megjegyzés: A legáltalánosabb (irányított) hálóknak még két további reprezentációját említjük meg: A legegyszerőbb, de a legkevésbé hatékony reprezentáció a mátrix. Ebben egy irányított él kiindulási végpontját a mátrix valamely sora, érkezési végpontját pedig valamely oszlopa képviseli, magának az élnek pedig az említett sor és oszlop metszetében álló mátrixelem felel meg. A hálók elég jó reprezentációja a relációs adatbázisok kapcsolótáblája (lásd a szakaszban a ábrát). Ez hatékonyságban csak annyival rosszabb a multilistánál, amennyivel a tartalom szerinti keresés lassúbb a cím szerinti keresésnél.
13 ADATSZERVEZÉS, ADATELÉRÉS, ADATBÁZISKEZELİ RENDSZEREK Ellenırzı kérdések a 2.3. alfejezethez 1. Jellemezze a vektort és a listát az elınyök és a hátrányok tekintetében! 2. Milyen tárolási szerkezettel (szerkezetekkel) reprezentálható a számítógép memóriájában a halmaz? 3. Milyen tárolási szerkezettel (szerkezetekkel) reprezentálható a számítógép memóriájában a szekvencia? 4. Milyen tárolási szerkezettel (szerkezetekkel) reprezentálható a számítógép memóriájában a hierarchia? 5. Milyen tárolási szerkezettel (szerkezetekkel) reprezentálható a számítógép memóriájában a háló?
14 56 INFORMATIKUS SZAKMAI ISMERETEK 2.4 A háttértárakon, valamint az adatforgalomban alkalmazott adategységek Fizikai adategységek Az adatokat tartósan nem a számítógép operatív memóriájában, hanem külsı tárolókon tárolják: az intenzíven használt adatokat bármikor elérhetı on-line háttértárakon, az archív adatokat pedig off-line tárakon. Az ilyen tárolókon elhelyezett adatok szervezésének, nyilvántartásának, kezelésének fizikai egységei a (fizikai) fájl és a blokk (fizikai rekord). Itt a fizikai adategység kifejezés az operációs rendszer 1 input/output mőveletekért felelıs magja által látott adategységek (másképpen: az alkalmazáslogikától független adategységek) rövidebb megnevezése. A számítástechnikában a fájl (file) tágabban egyrészt adatnyilvántartási egység, másrészt valamilyen belsı szerkezettel bíró egység. E két minıségbıl a fizikai fálj fogalma csak az elıbbit ragadja meg. Fizikai fájl A fizikai fájl a külsı tárolókon elhelyezett összefüggı adatok nyilvántartásának az operációs rendszer által kezelt alapegysége. A fenti értelmezés két lényeges eleme, hogy (1) a fizikai fájl az adatnyilvántartás alapegysége és (2) az operációs rendszer által kezelt alapegység. Tudni kell, hogy a háttértárak tartalomjegyzéke fájlokat leíró bejegyzéseket tartalmaz, és az (1) bıvebben azt jelenti, hogy a számítógép számára minden külsı adat csak valamely (külön azonosító névvel rendelkezı) fájl részeként létezhet (illetve csak így érhetı el). A (2) pedig azt fejezi ki, hogy a fizikai fájl olyan adategység, amelyet az operációs rendszer (input/output mőveletekért felelıs magja) lát, tehát közömbös az a szerkezete, amelyet csak az adott fájltípus feldolgozására (értelmezésére) szolgáló programok láthatnak. Amikor tehát arról beszélünk, hogy a fájloknak a tartalmuk, illetve a szerkezetük szerint különféle típusai lehetnek (programfájlok, strukturált adatfájlok, kép-, hang-, szöveg- és más speciális fájlok), akkor már nem a fizikai fájlról, hanem a következı szakaszban sorra kerülı logikai fájlról van szó. (A fájl típusára általában utal a fájl nevének kiterjesztése.) Blokk (fizikai rekord) Bár az operációs rendszer szintjén a külsı adatok nyilvántartásának alapegysége a fájl, de egy adott fájlt az operációs rendszer általában nem egészben írja vagy olvassa, hanem meghatározott mérető részegységekben, ezek a blokkok. 1 Az operációs rendszer olyan alapszoftver, amely nélkül a számítógép érdemben mőködésképtelen. Olyan programok összessége, amelyeknek feladata: a központi egység, a háttértárak és a perifériák együttmőködését megszervezni; hálózatban a számítógépek közötti kapcsolatfelvételt és a kommunikációt megszervezni; a felhasználói programok fejlesztıinek munkáját megkönnyíteni, a változatos típusú hardverkomponensekkel szemben a szoftverek hordozhatóságát lehetıvé tenni; több program (vagy több felhasználó) egyidejő és biztonságos kiszolgálásáról gondoskodni (köztük az erıforrásokat elosztani, az egyes programok és felhasználói környezetek integritását megırizni, egymástól is megvédeni); a felhasználók részére kényelmes kezelıfelületet adni.
15 ADATSZERVEZÉS, ADATELÉRÉS, ADATBÁZISKEZELİ RENDSZEREK 57 Blokk (fizikai rekord) A blokk (vagy fizikai rekord) operációs rendszer számára a külsı tárolókon elhelyezett adatok írásának, olvasásának, fizikai elérésének alapegysége. A fájl blokkokra tagolásának semmi köze ahhoz, hogy a fájl milyen jelentéső adatokat tartalmaz, azokra hogyan tagolódik. Egy fájl egész számú azonos mérető blokkból áll. Közvetlen eléréső tárolókon egy fájl blokkjai tetszıleges sorrendben pozícionálhatók Logikai adategységek Strukturált adatok Itt a logikai adategység kifejezés olyan adategységekre utal, amelyek az operációs rendszer számára nem léteznek, csak a speciális alkalmazások látják (és képesek értelmezni) ıket. A logikai adategységek közül is ebben a szakaszban olyan típusúakkal foglalkozunk, amelyeket struk-turált adatoknak szokás nevezni, bár a strukturált jelzı is magyarázatra szorul (lásd itt alább). Mezı, rekord (logikai rekord), (egyszerő) strukturált adatfájl Valamilyen értelemben minden fájl strukturált, amennyiben az azt létrehozó vagy használó alkalmazás számára a fájl szerkezete, a fájl különféle részei felismerhetık, kezelhetık; azonban a jelen szakaszban értelmezett (egyszerő) strukturált adatfájl szerkezete speciális megszorításoknak tesz eleget: formailag és tartalmilag is meghatározott mezıkbıl, illetve rekordokból épül fel. Mezı: A mezı egy specifikált adat számítógépi reprezentációja, amelynek adott az adattípusa, továbbá formailag az elıre adott mérete által vagy valamilyen elhatároló jelek által meghatározott. A fenti értelmezésbe formai tekintetben mind a fix hosszúságú, mind a változó mérető mezı belefér. Az utóbbi aktuális méretét például határoló jelek jelezhetik. A definícióban hivatkozott specifikált adat (lásd az szakaszban) fogalomból következik, hogy a mezı tervezési szinten valamilyen kategóriára értelmezhetı tulajdonságot képvisel; egy konkrét mezı pedig e tulajdonságnak a kategóriába tartozó konkrét objektumra vonatkozó konkrét értékét tartalmazza. Rekord (logikai rekord): A rekord (a logikai rekord) formai és tartalmi tekintetben meghatározott struktúra. Formai tekintetben a rekord adott mezık adott szekvenciája. Tartalmi tekintetben a rekordot alkotó mezık egyazon kategóriára (jelenségtípusra, egyedtípusra, objektumtípusra) értelmezett specifikált adatok, és egy konkrét rekord mezıi az adott kategória egy konkrét objektumát (példányát) jellemzı értékeket tartalmaznak. A fenti értelmezésbe formai tekintetben mind a fix hosszúságú, mind a változó mérető rekord belefér. Tervezési szinten a rekordból csak a kategória, az egyes mezık által reprezentált tulajdonság és a mezık szekvenciája adottak. Ezzel a tervezés nem konkrét rekordot, hanem rekordtípust határoz meg.
16 58 INFORMATIKUS SZAKMAI ISMERETEK Egyszerő strukturált adatfájl: Az egyszerő strukturált adatfájl formai és tartalmi tekintetben meghatározott struktúra: formai tekintetben rekordok adott halmaza vagy szekvenciája, tartalmi meghatározottsága pedig a rekordok tartalmi meghatározottságából következik. Egy fájl esetlegesen többféle típusú rekordot is tartalmazhat. Az a lényeg, hogy mindegyik típus elıre definiált, és a fájlt értelmezı alkalmazások számára felismerhetı. A fentiekkel összhangban, de némileg tömörebben úgy is lehet fogalmazni, hogy az (egyszerő) strukturált adatfájl olyan szerkezet, amely önálló jelentéssel bíró rekordokból épül fel, a rekord pedig önálló jelentéssel bíró mezıkbıl tevıdik össze Nem strukturált komplex adatok Multimédia adatok A számítógép technikai fejlıdése lehetıvé tette és az informatika társadalmi elterjedése pedig igényelte, hogy ne csak számokat és betőket tudjunk adatként kezelni, hanem úgynevezett nem strukturált, komplex adatok is tárolhatók, illetve kezelhetık legyenek a számítógépen. Elıször csak a szöveges adatok formázott megjelenítése iránti igény jelentkezett, de innen már csak rövid lépés volt a multimédia adatok, azaz képek, hangok, videó számítógépen való tárolása és kezelése. A multimédia adatok kezelése során három alapvetı problémát kell megoldani: digitalizálás; tárolás, tömörítés; megjelenítés (reprodukálás). A digitalizálás során a valamilyen külsı (sokszor analóg) adathordozón (papíron, filmen, magnó-, vagy videokazettán) létezı adatokat bitek sorozatára kell átalakítani, azért, hogy egyáltalán számítógépen tárolható legyen. A multimédia adatok kezelésének legkritikusabb része az adatok memória-, illetve tárigénye. A tárigény észszerő korlátok között tartása és a még elfogadható adatátviteli idı érdekében szükség van az adatok tömörítésére. Az ilyen adatok gépi értelmezése, a megjelenítés (megszólaltatás) során a digitalizált adatbemenet alapján az eredeti hatást (látványt, hangzást stb.) kell produkálni. A multimédia adatokat kezelı szoftvereknek az értelmezés (reprodukálás) mellett fontos funkciója lehet még a digitalizált adatok manipulálása, továbbszerkesztése, módosítása is Ellenırzı kérdések a 2.4. alfejezethez 1. Az operációs rendszer szempontjából mi a külsı tárakban elhelyezett adatok nyilvántartásának alapegysége? 2. Az operációs rendszer szempontjából mi a külsı tárakban elhelyezett adatok fizikai kezelésének (írásának, olvasásának, fizikai elérésének) alapegysége? 3. Mi a kapcsolat a specifikált adat és a mezı között? 4. Mi a különbség a blokk és a rekord között? 5. Mit értenek egyszerő strukturált adatfájl alatt? 6. Milyen alapvetı problémák megoldását jelenti a multimédia adatok kezelése?
17 ADATSZERVEZÉS, ADATELÉRÉS, ADATBÁZISKEZELİ RENDSZEREK Tartalom szerinti adatelérés Ebben az alfejezetben az (egyszerő) strukturált fájl rekordjainak tartalom szerinti keresésérıl, elérésérıl lesz szó. Az itt ismertetett módszerek komoly szerepet játszanak a következı alfejezetbe tárgyalt adatbázisok mőködésében Tartalom szerinti adatelérés A szakaszban már szó volt róla, hogy az on-line háttértárakon tárolt adatok a tárolási címük szerint közvetlenül (véletlenszerően) elérhetıek. Azonban az adatfeldolgozási mőveletekben általában nem egy adott címő rekordot kell elérni, hanem például adott nevő vagy adott lakcímő személy(ek) adatait tartalmazó rekord(oka)t keresünk. Tartalom (kulcs) szerinti keresés / elérés: Ha egy egyszerő strukturált adatfájlban egy nyilvántartási rekordot valamely mezıjének vagy mezıinek tartalma alapján kell megtalálni, akkor ezt tartalom szerinti keresésnek / elérésnek, a keresett értéket (értékegyüttest) pedig keresıkulcsnak nevezzük. A tartalom szerinti elérés csak úgy közelíthetı a közvetlen eléréshez, ha a keresıkulcsból valamilyen módon következtetni lehet a keresett rekord(ok) tárolási címére. Azonban a legegyszerőbb soros (angolul heap) fájlok szervezettsége erre nem ad lehetıséget. Soros elérés: Soros elérésrıl beszélünk az olyan fájlok esetében, amelyek szervezettsége nem tartalmaz semmilyen lehetıséget egy [tartalom (keresıkulcs) tárolási cím] következtetésre, azaz a tárolási címnek a keresıkulcsból való származtatására. A soros elérés esetén a fájlt az elsı rekordtól kezdve addig kell olvasni, amíg a keresett tartalmú (kulcsú) rekordhoz nem érünk. Magát, a különösebb szerkezet nélküli fájlt is szokás soros (angolul heap) fájlnak nevezni. Direkt (random) elérés Direkt vagy random elérésrıl beszélünk, ha a rekordoknak az egyszerően strukturált fájlba beírásakor, illetve a fájlból visszakeresésekor alkalmaznak egy olyan függvényeljárást (leképezı eljárást), amely a keresıkulcsból tárolási címet állít elı. A megoldás elınye, hogy a keresés meggyorsítása nem igényel járulékos adatokat. Ugyanakkor ez az eljárás csak egyféle kulcs (csak egy szempont) szerinti keresés megkönnyítésére alkalmas; ez a kulcs pedig célszerően a rekordot egyedileg azonosító tartalom, az elsıdleges kulcs szokott lenni. Megjegyzés: A leképezési eljárást hash eljárásnak, az ilyen eljárással szervezett fájlokat (adattáblákat) pedig hash fájloknak (hash tábláknak) is nevezik. Azonos fájlban többféle szempont (többféle kulcs) szerinti keresés meggyorsítására alkalmas az indexszekvenciális elérés.
18 60 INFORMATIKUS SZAKMAI ISMERETEK Indexszekvenciális elérés Indexszekvenciális elérésrıl beszélünk, ha az egyszerő strukturált fájlban a rekord kulcs (tartalom szerinti) elérését olyan külön képzett indextábla (indexfájl) segíti, amely éppen azt tartja nyilván, hogy melyik kulcsérték, melyik címen (mely címeken) tárolt rekord(ok)ban található. A relációs adatbázisokban (lásd a szakaszban) a leggyakrabban ez a megoldás használatos az elsıdleges kulcs, az idegen kulcs vagy bármilyen keresıkulcs szerinti keresés meggyorsítására, ezért a következı szakaszban kicsit bıvebben is lesz róla szó. Ugyanott megismerhetı az indexszekvenciális elérés egy, az inverztáblákra épülı speciális változata is. Ez a többdimenziós adatbázisokban ( szakasz) számít kedvelt megoldásnak Az indexszekvenciális elérés mőködése Minden olyan mezıre (vagy több mezıbıl összetett adatra), amely a fájl rekordjainak keresésénél kulcsként számításba jöhet. külön-külön indextáblát építenek fel. Ha például egy személy fájl esetében gyakori a név szerinti keresés, akkor a név mezıre fel kell építeni egy indextáblát. Egyszintő indextábla A legprimitívebb megoldást, az egyszintő indextáblát csak azért mutatjuk be, hogy egy elsı közelítéső képet adjunk a probléma lényegérıl, és elıkészítsük a gyakorlatban is használatos, de bonyolultabb többszintő indextábla megértését. Az egyszintő indextáblát egy olyan külön fájlként lehet elképzelni, amely kétmezıs rekordokból áll (2.6. ábra). Az egyik mezı tartalmazza a keresı kulcsot (példánkban a nevet), a másik pedig az indexet, ami az adott névhez tartozó rekordnak a sorszáma a személy fájlban. A rekordok fix hosszúságúak, így minden rekord címe kiszámítható a sorszámából. Ezen felül az indextábla rendezett a keresı kulcs (a név) szerint, és pont azért gyorsíthatja meg egy adott névhez tartozó személyrekord elérését, mert a rendezett táblában alkalmazható a bináris keresés. Indextábla a személy fájlhoz Személy fájl Kulcs (itt a név) Index Név Többi adat 1. Asztalos Éva 9 1. Kiss József 2. Barna Károly 7 2. Tóth Elemér 3. Bodor Judit Gazdag Teréz 4. Dénes János 4 4. Dénes János 5. Erdei Tamás 6 5. Vincze Andor 6. Gazdag Teréz 3 6. Erdei Tamás 7. Kiss József 1 7. Barna Károly 8. Kiss József Varga Tamás 9. Tóth Elemér 2 9. Asztalos Éva 10. Varga Tamás Bodor Judit 11. Vincze Andor Kiss József Bináris keresés 2.6. ábra: Egyszerő indextábla alkalmazása Tegyük fel, hogy a 2.6. ábra szerinti indextábla segítségével kell megkeresni a Varga Tamást leíró személyrekordot. A bináris keresés az indextábla középsı bejegyzésével indul, ez most a 6. bejegyzés, melyben a kulcs Gazdag Teréz. Mivel a karakterláncokra vonatkozó
19 ADATSZERVEZÉS, ADATELÉRÉS, ADATBÁZISKEZELİ RENDSZEREK 61 összehasonlítási szabály szerint Gazdag Teréz < Varga Tamás, ezért biztos, hogy a keresést a továbbiakban már csak bejegyzésekben érdemes folytatni. Ezek közül megint a középsıt vesszük, amely a 9. bejegyzés, melyben a kulcs Tóth Elemér < Varga Tamás. Így a további keresés már a bejegyzésekre szőkül. Közülük a 10. bejegyzést tekintve középsınek, a harmadik lépésben megtaláljuk a Varga Tamás kulcsot. A kulcs mellett álló 8- as index pedig azt mutatja, hogy Varga Tamás adatait a személy fájlban a 8. rekord tartalmazza. Vegyük észre, hogy a bináris keresés minden lépésében a felére csökken az indextábla azon bejegyzéseinek a száma, amelyeket még vizsgálni érdemes. Ez azt jelenti, hogy például 1 millió bejegyzés esetén is legfeljebb 20 lépésben megtalálható a keresett kulcs, vagy megállapítható, hogy az adott kulcshoz nem létezik rekord. Soros keresés esetén ezzel szemben ugyanilyen céllal átlagosan fél millió lépésre van szükség. Az olvasóban esetleg felmerül a kérdés, hogy miért nem a személy fájlt rendezik úgy a név (a kulcs) szerint, mint az indextáblát. Szokták ezt is tenni, de ez csak egy kulcsra lehetséges; tehát ha más kulcs szerint is szeretnének keresni, arra már mindenképpen külön indextáblát kell készíteni. A gyakorlatban tisztán a 2.6. ábra szerinti indexelés nem hatékony, mert ha a kulcsok száma elég nagy, akkor egy ilyen indextáblába nagyon sokáig tart egy újabb kulcsot beszúrni úgy, hogy a tábla a kulcsok szerint továbbra is rendezett maradjon. Ezért az indextáblát vagy hash módon szervezik (azaz az indexrekordokból építenek random fájlt), vagy többszintő indexelést alkalmaznak. Itt az utóbbi tárgyalásával folytatjuk. Többszintő indextábla A többszintő indextáblák lényegében rendezıfát reprezentálnak (a fa összetett adatszerkezet leírását lásd a szakaszban). A rendezıfa azért tudja meggyorsítani a keresést, mert benne a szükséges elemi elérések száma nem a kulcsok számával hanem csak a fa szintjeinek a számával arányosan növekszik. Az ilyen indextáblában az indexrekordok (bejegyzések) összefüggı blokkokat alkotnak. Ez a blokk a ben tárgyalt vektornak felel meg. Egy blokkon belül a kulcsok mindig növı sorrendben rendezettek, és az is igaz, hogy a blokkon belül a keresés sorosan történik. A rendezıfa minden csomópontjából legfeljebb annyi ág indulhat ki, ahány indexrekord fér egy indexblokkba. A 2.7. ábrán az indextábla blokkonként legfeljebb négy indexrekordot tartalmaz, tehát a fa minden csomópontjából legfeljebb négy ág indulhat ki. Az indexblokkok között van egy kitüntetett: az indextábla belépési pontja, a gyökérblokk, ez a példában történetesen a 8. blokk. A 0 típusú blokkok alap-indexbejegyzéseket (rekordokat), az 1 típusú blokkok magasabb szintő indexrekordokat tartalmaznak. Az alap-indexrekordokban a mutató a kulcshoz tartozó adatsor adattáblabeli sorszámát adja meg. A magasabb szintő indexrekordokban a kulcs melletti mutató annak az (alacsonyabb szintő) indexblokknak a sorszáma, amelyben az adott kulcs a legnagyobb értékő. A 2.8. ábra magyarázza, hogyan kell elképzelni az indexblokkok alkotta fastruktúrát; illetve a gyökérblokkból indulva, hogyan lehet megtalálni egy adott kulcsú adatsorra mutató indexrekordot. Például az LC kulcsú sor sorszáma az indextáblából így kereshetı ki: A 8-as blokkban (a gyökérblokkban) az 1. indexrekord az LC <= SE egyenlıtlenség fennállása és mutató=3 miatt jelzi, hogy a keresést a 3-as blokkban kell folytatni. További lépések: A 3-as blokkban a 3. indexrekord: LC <= NK és mutató=2. A 2-es blokkban (ez már alapindexblokk) a 3. indexrekord: kulcs= LC és mutató=15, tehát a keresett adattáblasor száma: 15. A 2.8. ábra rendezıfája 3 szintő, ezért benne a 16 kulcs bármelyike legfeljebb 3 lépésben megtalálható. Általában n kulcs esetén a csomópontonként legfeljebb k ágat megengedı fában a szintek száma (felülrıl) log k n-hez közelít. Ez annál jobb közelítés, minél kiegyensúlyo-
20 62 INFORMATIKUS SZAKMAI ISMERETEK zottabb a rendezıfa. A kiegyensúlyozást az indextábla idıszakonkénti újraszervezésével érik el. A kiegyensúlyozott rendezıfákat az angol balanced tree kifejezés után röviden btree néven emlegetik. Adatfájl Többszintő indextábla (4 indexrekord / indexblokk) Kulcs Adat Blokk Indexrekord1 Indexrekord2 Indexrekord3 Indexrekord4 1. FA típusa Kulcs Mutató Kulcs Mutató Kulcs Mutató Kulcs Mutató 2. KF 1. 0 AD 3 BI 7 DS 9 EP 5 3. AD 2. 0 JE 11 KF 2 LC 15 NK 4 4. NK 3. 1 EP 1 HA 4 NK 2 SE 5 5. EP 4. 0 FA 1 FA 13 HA SE 5. 0 PF 8 QI 12 RI 16 SE 6 7. BI 6. 0 TV PF 7. 1 TV 6 9. DS 8. 1 SE 3 TV TV 11. JE gyökérblokk 12. QI 13. FA 14. HA 15. LC A 0 típusú blokkok alap-indexbejegyzéseket (rekordokat), az 1 típusú blokkok magasabb szintő indexrekordokat tartalmaznak. Az alap-indexrekordokban a mutató a kulcshoz tartozó adatsor adattáblabeli sorszámát adja meg. A magasabb 16. RI szintő indexrekordokban a kulcs melletti mutató annak az (alacsonyabb szintő) indexblokknak a sorszáma, amelyben az adott kulcs a legnagyobb értékő ábra: Többszintő indexelés 8. 1 SE 3 TV EP 1 HA 4 NK 2 SE TV AD 3 BI 7 DS 9 EP TV FA 1 FA 13 HA JE 11 KF 2 LC 15 NK PF 8 QI 12 RI 16 SE ábra: Többszintő indextábla mint rendezıfa Most nézzük, mi történik, ha az eddig mutatott indextáblába beszúrjuk az LP kulcsot! A 2.8. ábrán látszik, hogy az új LP kulcsnak a 2-es alapindexblokkban lenne a helye, a rendezettség szerint az LC és az NK kulcsok között, de a 2-es blokk már betelt. Ekkor a 2- es blokk osztódik, pontosabban: a rendszer lefoglal egy újabb blokkot, a 9-est, és a 2-es blokk felsı fele (amely az LC és az NK kulcsú indexrekordokból áll) abba vivıdik át (a 2- es blokkban az eredeti helyük kiürül). E mőveletek azonban a 3-as magasabb szintő indexblokk tartalmára is hatással bírnak, mert abban az [NK; 2] tartalmú indexrekord hamis lett, hiszen a 2-es blokkban a legnagyobb kulcs már nem az NK, hanem a KF ; azon felül az új (9-es) blokkot is be kell kapcsolni a fába, és az NK most már ebben lesz a legnagyobb kulcs.
21 ADATSZERVEZÉS, ADATELÉRÉS, ADATBÁZISKEZELİ RENDSZEREK 63 Lényegében az eddigi [NK; 2] tartalmú indexrekord helyett két (magasabb szintő) indexrekordot kell létrehozni: egy [KF; 2] és egy [NK; 9] tartalmút. A rendezettség szerint mindkettınek a 3-as blokkban lenne helye, de az lehetetlen, mert a 3-as blokk már betelt. Így a 3-as blokk is osztódik : a rendszer megint lefoglal egy újabb blokkot (a 10-est), amelybe átvivıdik a 3-as blokk felsı fele, és az [NK; 2] tartalmú indexrekord már a 10-es blokkban cserélıdik le a [KF; 2] és a [NK; 9] tartalmú indexrekordokra. Még ezzel sincs vége, mert esetünkben az alsóbb szinteken történt változások hatása eléri a 8-as blokkot is. Abban az [SE; 3] tartalmú (magasabb szintő) indexrekord vált hamissá, mert a 3-as blokkban a legnagyobb kulcs már nem az SE, hanem a HA ; azon felül a legújabb (10-es) blokkot is be kell kapcsolni a fába, és az SE immár ebben lesz a legnagyobb kulcs. Tehát az eddigi [SE; 3] tartalmú indexrekord helyett két (magasabb szintő) indexrekordot kell létrehozni: egy [HA; 3] és egy [SE; 10] tartalmút, azaz a gyökérblokkban az eddigi két rekord helyett három lesz kitöltve. Esetünkben a gyökér még nem telt be, ezért további lépésekre már nincs szükség. A végeredményt a 2.9. ábra mutatja HA 3 SE 10 TV EP 1 HA TV KF 2 NK 9 SE AD 3 BI 7 DS 9 EP TV FA 1 FA 13 HA JE 11 KF LC 15 LP 17 NK PF 8 QI 12 RI 16 SE ábra: Többszintő indextábla az LP kulcs beszúrása után Ha már a gyökérblokk is betelt, a következı új gyökérszintő indexrekord már csak úgy helyezhetı el, ha a gyökérblokk is osztódik, egyben az eddigi gyökérblokk gyökér minısége megszőnik. Részleteiben: a rendszer két új blokkot foglal le; az egyiket (legyen ez az m. blokk) arra a célra, hogy abba viszi át a gyökérblokk felsı felében lévı indexrekordokat; a másikat pedig arra a célra, hogy ez legyen az új gyökérblokk. Ez utóbbiban két (magasabb szintő) indexrekord lesz: az elsı a korábbi gyökérblokkra mutat, a második pedig a fentebb említett m. rekordra. Vegyük észre, hogy amikor a gyökérblokk osztódik, akkor az indextábla emelkedik egy újabb szinttel. Fordítva is igaz: az indextábla szintjeinek száma pontosan akkor növekszik eggyel, amikor a gyökérblokknak (is) osztódni kell.
22 64 INFORMATIKUS SZAKMAI ISMERETEK Inverztábla A többdimenziós adatbázisokban kedvelt megoldás az inverztábla, amelynek tárgyalására azért az indexszekvenciális eléréssel közös szakaszban kerül sor, mert felfogható az indextáblák egy speciális változatának is. Ugyanakkor látni fogjuk, hogy az inverztábla mind az alkalmazási területében, mind a megoldásának részleteiben elég sok különbséget mutat az idáig tárgyalt indextáblákhoz képest, és az inverztáblára magára is többféle megoldás létezik. Ez az oka annak, hogy az inverztáblát a szakmában gyakran a tartalom szerinti adatelérés egy önálló kategóriájának tekintik. Inverztáblát olyan tulajdonságra (adatmezıkre) érdemes készíteni, amely az adatfájl rekordjainak (vagy adattábla sorainak) nem azonosító, hanem osztályozó ismérve. Éppen ilyen tulajdonságok a többdimenziós adatbázisok dimenzióadatai (lásd a szakaszban). Példa osztályozó ismérvre: A cikk (cikkód) nem azonosítója az eladástételeknek, mert azonos cikkbıl folyamatosan újabb és újabb tételeket adhat el a cég, tehát azonos cikk több eladástételt jellemezhet, másképpen az eladástételek egy osztályát különíti el. (Ha ez a cég arra kíváncsi, hogy egy adott idıszakban történt eladásokkal adott cikkbıl milyen árbevételt realizált, akkor azt az eladástételek megfelelı cikkhez és idıszakhoz tartozó osztályából kell összesíteni.) Ha az eladástételeket jellemzı cikkódra (normál) indextáblát hozunk létre, akkor abba egy cikkód-érték annyiszor kerül be keresıkulcsként, ahány eladástétel hivatkozza ezt a cikkód-értéket. Ugyanúgy, ahogy a 2.7. ábrán az FA kulcs két (alapszintő) indexrekordban is szerepel (a 4-es blokkban), mert az adatfájl két rekordjában (az 1. és a 13. rekordjában) is FA a kulcs értéke. Ezzel szemben az inverztáblát úgy kell elképzelni, hogy abba egy kulcsérték (cikkód) csak egyszer kerül be, és mellette nem egyetlen mutatóérték áll, hanem (a legprimitívebb változatban) egy vektor, amely (A) az adott cikkre vonatkozó eladástételek (adatfájlbeli) mutatóival van töltve, vagy (B) egy bittérképet tartalmaz. (A ábra mindkét változatot mutatja.) A bittérkép egy bitje az adatfájl egy rekordját képviseli, azaz a bittérkép annyi bitbıl áll, ahány rekordja van az adatfájlnak. Adott kulcsértékhez tartozó bittérképben a k. biten pontosan akkor áll 1-es, ha e kulcsérték jellemzi az adatfájl k. rekordját. Adatfájl (v. tábla) A) Inverztábla mutatóvektorral Kulcs Adat Kulcs Mutatók vektora 1. NK EP EP HA 8 3. NK NK NK SE SE 6. EP 7. EP B) Inverztábla bittérképpel 8. HA Kulcs Bittérkép 9. SE EP EP HA EP NK NK SE EP ábra: Inverztábla a legprimitívebb változatokban
Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája
Adatszerkezetek Összetett adattípus Meghatározói: A felvehető értékek halmaza Az értékhalmaz struktúrája Az ábrázolás módja Műveletei Adatszerkezet fogalma Direkt szorzat Minden eleme a T i halmazokból
Részletesebben22. GRÁFOK ÁBRÁZOLÁSA
22. GRÁFOK ÁBRÁZOLÁSA A megoldandó feladatok, problémák modellezése során sokszor gráfokat alkalmazunk. A gráf fogalmát a matematikából ismertnek vehetjük. A modellezés során a gráfok több változata is
RészletesebbenAdatbáziskezelés alapjai. jegyzet
Juhász Adrienn Adatbáziskezelés alapja 1 Adatbáziskezelés alapjai jegyzet Készítette: Juhász Adrienn Juhász Adrienn Adatbáziskezelés alapja 2 Fogalmak: Adatbázis: logikailag összefüggı információ vagy
RészletesebbenEgyirányban láncolt lista
Egyirányban láncolt lista A tárhely (listaelem) az adatelem értékén kívül egy mutatót tartalmaz, amely a következő listaelem címét tartalmazza. A láncolt lista első elemének címét egy, a láncszerkezeten
RészletesebbenStruktúra nélküli adatszerkezetek
Struktúra nélküli adatszerkezetek Homogén adatszerkezetek (minden adatelem azonos típusú) osztályozása Struktúra nélküli (Nincs kapcsolat az adatelemek között.) Halmaz Multihalmaz Asszociatív 20:24 1 A
RészletesebbenFájlszervezés. Adatbázisok tervezése, megvalósítása és menedzselése
Fájlszervezés Adatbázisok tervezése, megvalósítása és menedzselése Célok: gyors lekérdezés, gyors adatmódosítás, minél kisebb tárolási terület. Kezdetek Nincs általánosan legjobb optimalizáció. Az egyik
RészletesebbenAdatszerkezetek 1. előadás
Adatszerkezetek 1. előadás Irodalom: Lipschutz: Adatszerkezetek Morvay, Sebők: Számítógépes adatkezelés Cormen, Leiserson, Rives, Stein: Új algoritmusok http://it.inf.unideb.hu/~halasz http://it.inf.unideb.hu/adatszerk
RészletesebbenBevezetés a programozásba. 5. Előadás: Tömbök
Bevezetés a programozásba 5. Előadás: Tömbök ISMÉTLÉS Specifikáció Előfeltétel: milyen körülmények között követelünk helyes működést Utófeltétel: mit várunk a kimenettől, mi az összefüggés a kimenet és
RészletesebbenAdatbázismodellek. 1. ábra Hierarchikus modell
Eddig az adatbázisokkal általános szempontból foglalkoztunk: mire valók, milyen elemekből épülnek fel. Ennek során tisztáztuk, hogy létezik az adatbázis fogalmi modellje (adatbázisterv), amely az egyedek,
RészletesebbenA programozás alapjai előadás. [<struktúra változó azonosítók>] ; Dinamikus adatszerkezetek:
A programozás alapjai 1 Dinamikus adatszerkezetek:. előadás Híradástechnikai Tanszék Dinamikus adatszerkezetek: Adott építőelemekből, adott szabályok szerint felépített, de nem rögzített méretű adatszerkezetek.
RészletesebbenProgramozás alapjai II. (7. ea) C++ Speciális adatszerkezetek. Tömbök. Kiegészítő anyag: speciális adatszerkezetek
Programozás alapjai II. (7. ea) C++ Kiegészítő anyag: speciális adatszerkezetek Szeberényi Imre BME IIT M Ű E G Y E T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2016.04.05. - 1
RészletesebbenAdatszerkezetek Tömb, sor, verem. Dr. Iványi Péter
Adatszerkezetek Tömb, sor, verem Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot
RészletesebbenProgramozás alapjai II. (7. ea) C++
Programozás alapjai II. (7. ea) C++ Kiegészítő anyag: speciális adatszerkezetek Szeberényi Imre BME IIT M Ű E G Y E T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2016.04.05. - 1
RészletesebbenAdatszerkezetek és algoritmusok
2010. január 8. Bevezet El z órák anyagainak áttekintése Ismétlés Adatszerkezetek osztályozása Sor, Verem, Lengyelforma Statikus, tömbös reprezentáció Dinamikus, láncolt reprezentáció Láncolt lista Lassú
RészletesebbenAdatbázis rendszerek. dr. Siki Zoltán
Adatbázis rendszerek I. dr. Siki Zoltán Adatbázis fogalma adatok valamely célszerűen rendezett, szisztéma szerinti tárolása Az informatika elterjedése előtt is számos adatbázis létezett pl. Vállalati személyzeti
RészletesebbenMatematikai alapok és valószínőségszámítás. Középértékek és szóródási mutatók
Matematikai alapok és valószínőségszámítás Középértékek és szóródási mutatók Középértékek A leíró statisztikák talán leggyakrabban használt csoportját a középértékek jelentik. Legkönnyebben mint az adathalmaz
RészletesebbenSpeciális adatszerkezetek. Programozás alapjai II. (8. ea) C++ Tömbök. Tömbök/2. N dimenziós tömb. Nagyméretű ritka tömbök
Programozás alapjai II. (8. ea) C++ Kiegészítő anyag: speciális adatszerkezetek Szeberényi Imre BME IIT Speciális adatszerkezetek A helyes adatábrázolás választása, a helyes adatszerkezet
RészletesebbenEllenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t
Ellenőrző kérdések 2. Kis dolgozat kérdései 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t 37. Ha t szintű indexet használunk,
RészletesebbenAdatbáziskezelés. Indexek, normalizálás NZS 1
Adatbáziskezelés Indexek, normalizálás NZS 1 Fáljszervezés módjai Soros elérés: a rekordok a fájlban tetszőleges sorrendben, például a felvitel sorrendjében helyezkednek el. A rekord azonosítója vagyis
RészletesebbenVÍZÓRA NYÍLVÁNTARTÓ RENDSZER
Debreceni Egyetem Informatikai Kar VÍZÓRA NYÍLVÁNTARTÓ RENDSZER Dr. Kuki Attila Egyetemi Adjunktus Informatikai Rendszerek és Hálózatok Tanszék GYÖKÉR RÓBERT Mérnök Informatikus levelezı Debrecen 2009.
Részletesebben2. Fejezet : Számrendszerek
2. Fejezet : Számrendszerek The Architecture of Computer Hardware and Systems Software: An Information Technology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003 Wilson Wong, Bentley College
RészletesebbenStatisztikai függvények
EXCEL FÜGGVÉNYEK 9/1 Statisztikai függvények ÁTLAG(tartomány) A tartomány terület numerikus értéket tartalmazó cellák értékének átlagát számítja ki. Ha a megadott tartományban nincs numerikus értéket tartalmazó
Részletesebben5. SOR. Üres: S Sorba: S E S Sorból: S S E Első: S E
5. SOR A sor adatszerkezet is ismerős a mindennapokból, például a várakozási sornak számos előfordulásával van dolgunk, akár emberekről akár tárgyakról (pl. munkadarabokról) legyen szó. A sor adattípus
RészletesebbenAmortizációs költségelemzés
Amortizációs költségelemzés Amennyiben műveleteknek egy M 1,...,M m sorozatának a futási idejét akarjuk meghatározni, akkor egy lehetőség, hogy külön-külön minden egyes művelet futási idejét kifejezzük
RészletesebbenJava II. I A Java programozási nyelv alapelemei
Java2 / 1 Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2009. 02. 09. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve
RészletesebbenAdatszerkezetek 1. Dr. Iványi Péter
Adatszerkezetek 1. Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot kódoltan tároljuk
RészletesebbenInformatika érettségi vizsga
Informatika 11/L/BJ Informatika érettségi vizsga ÍRÁSBELI GYAKORLATI VIZSGA (180 PERC - 120 PONT) SZÓBELI SZÓBELI VIZSGA (30 PERC FELKÉSZÜLÉS 10 PERC FELELET - 30 PONT) Szövegszerkesztés (40 pont) Prezentáció-készítés
RészletesebbenLINEÁRIS PROGRAMOZÁSI FELADATOK MEGOLDÁSA SZIMPLEX MÓDSZERREL
LINEÁRIS PROGRAMOZÁSI FELADATOK MEGOLDÁSA SZIMPLEX MÓDSZERREL x 1-2x 2 6 -x 1-3x 3 = -7 x 1 - x 2-3x 3-2 3x 1-2x 2-2x 3 4 4x 1-2x 2 + x 3 max Alapfogalmak: feltételrendszer (narancs színnel jelölve), célfüggvény
RészletesebbenA programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai
A programozás alapjai 1 1. előadás Híradástechnikai Tanszék Amiről szólesz: A tárgy címe: A programozás alapjai A számítógép részegységei, alacsony- és magasszintű programnyelvek, az imperatív programozási
RészletesebbenAdatbázis-kezelő rendszerek. dr. Siki Zoltán
Adatbázis-kezelő rendszerek I. dr. Siki Zoltán Adatbázis fogalma adatok valamely célszerűen rendezett, szisztéma szerinti tárolása Az informatika elterjedése előtt is számos adatbázis létezett pl. Vállalati
RészletesebbenINFORMATIKA MATEMATIKAI ALAPJAI
INFORMATIKA MATEMATIKAI ALAPJAI Készítette: Kiss Szilvia ZKISZ informatikai szakcsoport Az információ 1. Az információ fogalma Az érzékszerveinken keresztül megszerzett új ismereteket információnak nevezzük.
RészletesebbenA lineáris algebrában központi szerepet betöltı vektortér fogalmát értelmezzük most, s megvizsgáljuk e struktúra legfontosabb egyszerő tulajdonságait.
2. VEKTORTÉR A lineáris algebrában központi szerepet betöltı vektortér fogalmát értelmezzük most, s megvizsgáljuk e struktúra legfontosabb egyszerő tulajdonságait. Legyen K egy test és V egy nem üres halmaz,
RészletesebbenSzakdolgozat. A Microsoft Access módszertana. Témavezetı: Radványi Tibor Készítette: Erényi Péter, 2006 IV. évfolyam, számítástechnika szak
Szakdolgozat A Microsoft Access módszertana Témavezetı: Radványi Tibor Készítette: Erényi Péter, 2006 IV. évfolyam, számítástechnika szak TARTALOMJEGYZÉK TARTALOMJEGYZÉK... 2 ELİSZÓ... 5 AZ ADATBÁZIS-KEZELÉS-
RészletesebbenAdatbázis rendszerek 6.. 6. 1.1. Definíciók:
Adatbázis Rendszerek Budapesti Műszaki és Gazdaságtudományi Egyetem Fotogrammetria és Térinformatika 6.1. Egyed relációs modell lényegi jellemzői 6.2. Egyed relációs ábrázolás 6.3. Az egyedtípus 6.4. A
RészletesebbenAdatmodellek. 2. rész
Adatmodellek 2. rész Makány György Alapfogalmak JEL ADAT INFORMÁCIÓ ADATHALMAZ ADATÁLLOMÁNY ADATBÁZIS 2 Alapfogalmak JEL ADATHALMAZ észlelhető, felfogható fizikai érték ADAT a valós világ egy jelenségéből
RészletesebbenThe Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003
. Fejezet : Számrendszerek The Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach. kiadás, Irv Englander John Wiley and Sons Wilson Wong, Bentley College Linda Senne,
RészletesebbenMiért olyan fontos a minıségi pont?
A fiókban látható konkrét minıségi pont értékek egy olyan általános számítás eredményei, ami a kulcsszó tökéletes egyezése esetére érvényesek. Miért olyan fontos a minıségi pont? A minıségi pont három
Részletesebben83/2004. (VI. 4.) GKM rendelet. a közúti jelzőtáblák megtervezésének, alkalmazásának és elhelyezésének követelményeiről
83/2004. (VI. 4.) GKM rendelet a közúti jelzőtáblák megtervezésének, alkalmazásának és elhelyezésének követelményeiről A közúti közlekedésrıl szóló 1988. évi I. törvény 48. -a (3) bekezdése b) pontjának
RészletesebbenAlgoritmusok és adatszerkezetek I. 1. előadás
Algoritmusok és adatszerkezetek I 1 előadás Típusok osztályozása Összetettség (strukturáltság) szempontjából: elemi (vagy skalár, vagy strukturálatlan) összetett (más szóval strukturált) Strukturálási
RészletesebbenAdatmodellezés. 1. Fogalmi modell
Adatmodellezés MODELL: a bonyolult (és időben változó) valóság leegyszerűsített mása, egy adott vizsgálat céljából. A modellben többnyire a vizsgálat szempontjából releváns jellemzőket (tulajdonságokat)
RészletesebbenIT - Alapismeretek. Feladatgyűjtemény
IT - Alapismeretek Feladatgyűjtemény Feladatok PowerPoint 2000 1. FELADAT TÖRTÉNETI ÁTTEKINTÉS Pótolja a hiányzó neveket, kifejezéseket! Az első négyműveletes számológépet... készítette. A tárolt program
RészletesebbenAlgoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek
Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek Tömb Ugyanolyan típusú elemeket tárol A mérete előre definiált kell legyen és nem lehet megváltoztatni futás során Legyen n a tömb mérete. Ekkor:
RészletesebbenÉrdekes informatika feladatok
A keres,kkel és adatbázissal ellátott lengyel honlap számos díjat kapott: Spirit of Delphi '98, Delphi Community Award, Poland on the Internet, Golden Bagel Award stb. Az itt megtalálható komponenseket
RészletesebbenWeb-programozó Web-programozó
Az Országos Képzési Jegyzékről és az Országos Képzési Jegyzékbe történő felvétel és törlés eljárási rendjéről szóló 133/2010. (IV. 22.) Korm. rendelet alapján. Szakképesítés, szakképesítés-elágazás, rész-szakképesítés,
RészletesebbenÚtmutató a MATARKA adatbázisból való adatátvételhez
Útmutató a MATARKA adatbázisból való adatátvételhez A MATARKA - Magyar folyóiratok tartalomjegyzékeinek kereshetı adatbázisa a következı címrıl érhetı el: http://www.matarka.hu/ A publikációs lista kinyerése
RészletesebbenAdatszerkezetek 2. Dr. Iványi Péter
Adatszerkezetek 2. Dr. Iványi Péter 1 Fák Fákat akkor használunk, ha az adatok között valamilyen alá- és fölérendeltség van. Pl. könyvtárszerkezet gyökér (root) Nincsennek hurkok!!! 2 Bináris fák Azokat
RészletesebbenAlkalmazásportfólió. Szoftvermenedzsment. menedzsment. Racionalizálás. Konszolidáció. Nyilvántartás. Elemzés
Megjegyzés: Egyes megoldásokban, ahol -szel kell jelölni a helyes választ, K (= közömbös) jelzés arra utal, hogy az és az hiánya egyaránt elfogadható (= valami lehetséges, de nem jellemzı). 5.1. A sorokban
RészletesebbenHarmadik gyakorlat. Számrendszerek
Harmadik gyakorlat Számrendszerek Ismétlés Tízes (decimális) számrendszer: 2 372 =3 2 +7 +2 alakiérték valódi érték = aé hé helyiérték helyiértékek a tízes szám hatványai, a számjegyek így,,2,,8,9 Kettes
Részletesebbenfile:///d:/okt/ad/jegyzet/ad1/b+fa.html
1 / 5 2016. 11. 30. 12:58 B+ fák CSci 340: Database & Web systems Home Syllabus Readings Assignments Tests Links Computer Science Hendrix College Az alábbiakban Dr. Carl Burch B+-trees című Internetes
Részletesebben1. előadás. Lineáris algebra numerikus módszerei. Hibaszámítás Számábrázolás Kerekítés, levágás Klasszikus hibaanalízis Abszolút hiba Relatív hiba
Hibaforrások Hiba A feladatok megoldása során különféle hibaforrásokkal találkozunk: Modellhiba, amikor a valóságnak egy közelítését használjuk a feladat matematikai alakjának felírásához. (Pl. egy fizikai
RészletesebbenFogalmak: 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
Fogalmak: Adatbázis: logikailag összefüggő információ vagy adatgyőjtemény. Tábla: logikailag összetartozó adatok sorokból és oszlopokból álló elrendezése. Adatbázis sorai: (adat)rekord Adatbázis oszlopai:
RészletesebbenHogyan fogalmazzuk meg egyszerűen, egyértelműen a programozóknak, hogy milyen lekérdezésre, kimutatásra, jelentésre van szükségünk?
Hogyan fogalmazzuk meg egyszerűen, egyértelműen a programozóknak, hogy milyen lekérdezésre, kimutatásra, jelentésre van szükségünk? Nem szükséges informatikusnak lennünk, vagy mélységében átlátnunk az
RészletesebbenAdatbázis rendszerek Gy: Az adattárolás fejlődése
Adatbázis rendszerek 1. 2. Gy: Az adattárolás fejlődése 1/22 B ITv: MAN 2017.09.17 Papír alapú adattárolás Lyukkártya 2/22 Probléma: 3/22 Papír alapú adattárolás Lyukszalag 4/22 Papír alapú adattárolás
RészletesebbenNormák, kondíciószám
Normák, kondíciószám A fizika numerikus módszerei I. mf1n1a06- mf1n2a06 Csabai István Lineáris egyenletrendszerek Nagyon sok probléma közvetlenül lineáris egyenletrendszer megoldásával kezelhetı Sok numerikus
Részletesebben17. A 2-3 fák és B-fák. 2-3 fák
17. A 2-3 fák és B-fák 2-3 fák Fontos jelentősége, hogy belőlük fejlődtek ki a B-fák. Def.: Minden belső csúcsnak 2 vagy 3 gyermeke van. A levelek egy szinten helyezkednek el. Az adatrekordok/kulcsok csak
Részletesebbenterminológia, értelmezések, fogalmak
terminológia, értelmezések, fogalmak Raffai Mária dr. Az információrendszer leképezése Valós folyamatok visszacsatolás információrendszer. leképezés. leképezés funkcionális modell adatmodell logikai tervmodell
RészletesebbenEGYSZERŰ, NEM IRÁNYÍTOTT (IRÁNYÍTATLAN) GRÁF
Összefoglaló Gráfok / EGYSZERŰ, NEM IRÁNYÍTOTT (IRÁNYÍTATLAN) GRÁF Adott a G = (V, E) gráf ahol a V a csomópontok, E az élek halmaza E = {(x, y) x, y V, x y (nincs hurokél) és (x, y) = (y, x)) Jelölések:
RészletesebbenA relációs adatmodell
A relációs adatmodell E. Codd vezette be: 1970 A Relational Model of Data for Large Shared Data Banks. Communications of ACM, 13(6). 377-387. 1982 Relational Databases: A Practical Foundation for Productivity.
RészletesebbenNyíregyházi Egyetem Matematika és Informatika Intézete. Fájl rendszer
1 Fájl rendszer Terminológia Fájl és könyvtár (mappa) koncepció Elérési módok Fájlattribútumok Fájlműveletek ----------------------------------------- Könyvtár szerkezet -----------------------------------------
Részletesebben5. Gyakorlat. 5.1 Hálós adatbázis modell műveleti része. NDQL, hálós lekérdező nyelv:
5. Gyakorlat 5.1 Hálós adatbázis modell műveleti része NDQL, hálós lekérdező nyelv: A lekérdezés navigációs jellegű, vagyis a lekérdezés megfogalmazása során azt kell meghatározni, hogy milyen irányban
RészletesebbenAlgoritmuselmélet. 2-3 fák. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 8.
Algoritmuselmélet 2-3 fák Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 8. előadás Katona Gyula Y. (BME SZIT) Algoritmuselmélet 8. előadás
RészletesebbenElemi adatszerkezetek
2017/12/16 17:22 1/18 Elemi adatszerkezetek < Programozás Elemi adatszerkezetek Szerző: Sallai András Copyright Sallai András, 2011, 2014 Licenc: GNU Free Documentation License 1.3 Web: http://szit.hu
RészletesebbenKedves Diákok! A feladatok legtöbbször egy pontot érnek. Ahol ettől eltérés van, azt külön jelöljük.
Kedves Diákok! Szeretettel köszöntünk Benneteket abból az alkalomból, hogy a Ceglédi Közgazdasági és Informatikai Szakközépiskola informatika tehetséggondozásának első levelét olvassátok! A tehetséggondozással
RészletesebbenOOP. Alapelvek Elek Tibor
OOP Alapelvek Elek Tibor OOP szemlélet Az OOP szemlélete szerint: a valóságot objektumok halmazaként tekintjük. Ezen objektumok egymással kapcsolatban vannak és együttműködnek. Program készítés: Absztrakciós
RészletesebbenIII. Gráfok. 1. Irányítatlan gráfok:
III. Gráfok 1. Irányítatlan gráfok: Jelölés: G=(X,U), X a csomópontok halmaza, U az élek halmaza X={1,2,3,4,5,6}, U={[1,2], [1,4], [1,6], [2,3], [2,5], [3,4], [3,5], [4,5],[5,6]} Értelmezések: 1. Fokszám:
RészletesebbenGazdasági folyamatok térbeli elemzése. 5. elıadás
Gazdasági folyamatok térbeli elemzése 5. elıadás Adatbázisok* tulajdonságai Rendezett, logikailag összefüggı és meghatározott szempont szerint tárolt adatok és/vagy információk halmaza Az adatok között
Részletesebben2009.04.29. 2009. április 24. INFO Savaria 2009 2. 2009. április 24. INFO Savaria 2009 4. 2009. április 24. INFO Savaria 2009 3
Négy adatbázis-kezelı rendszer összehasonlítása webes környezetben Sterbinszky Nóra snorav@gmail.com Áttekintés Növekvı igény hatékony adatbázis- kezelıkre a világhálón Hogyan mérhetı ezek teljesítménye
RészletesebbenJelek és rendszerek Gyakorlat_02. A gyakorlat célja megismerkedni a MATLAB Simulink mőködésével, filozófiájával.
A gyakorlat célja megismerkedni a MATLAB Simulink mőködésével, filozófiájával. A Szimulink programcsomag rendszerek analóg számítógépes modelljének szimulálására alkalmas grafikus programcsomag. Egy SIMULINK
RészletesebbenObjektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015
Objektumorientált programozás Pál László Sapientia EMTE, Csíkszereda, 2014/2015 9. ELİADÁS Kivételkezelés (Exception handling) 2 Mi a kivétel (exception)? A kivétel, olyan hibás állapot vagy esemény, amely
Részletesebben10. előadás Speciális többágú fák
10. előadás Adatszerkezetek és algoritmusok előadás 2018. április 17., és Debreceni Egyetem Informatikai Kar 10.1 A többágú fák kezelésére nincsenek általános elvek, implementációjuk elsősorban alkalmazásfüggő.
RészletesebbenALAPOK. 0 és 255 közé eső számértékek tárolására. Számértékek, például távolságok, pontszámok, darabszámok.
ADATBÁZIS-KEZELÉS ALAPOK Főbb Adattípusok: Igen/Nem Bájt Ez az adattípus logikai adatok tárolására alkalmas. A logikai adatok mindössze két értéket vehetnek fel. (Igen/Nem, Igaz/Hamis, Férfi/Nő, Fej/Írás
RészletesebbenAdatbázis, adatbázis-kezelő
Adatbázisok I. rész Adatbázis, adatbázis-kezelő Adatbázis: Nagy adathalmaz Közvetlenül elérhető háttértárolón (pl. merevlemez) Jól szervezett Osztott Adatbázis-kezelő szoftver hozzáadás, lekérdezés, módosítás,
RészletesebbenHardver leíró nyelvek (HDL)
Hardver leíró nyelvek (HDL) Benesóczky Zoltán 2004 A jegyzetet a szerzıi jog védi. Azt a BME hallgatói használhatják, nyomtathatják tanulás céljából. Minden egyéb felhasználáshoz a szerzı belegyezése szükséges.
RészletesebbenAdatszerkezetek Bevezetés Adatszerkezet Adatszerkezet típusok Műveletek Bonyolultság
datszerkezetek Bevezetés datszerkezet adatok rendszerének matematikai, logikai modellje elég jó ahhoz, hogy tükrözze a valós kapcsolatokat elég egyszerű a kezeléshez datszerkezet típusok Tömbök lineáris
RészletesebbenAdatszerkezetek I. 7. előadás. (Horváth Gyula anyagai felhasználásával)
Adatszerkezetek I. 7. előadás (Horváth Gyula anyagai felhasználásával) Bináris fa A fa (bináris fa) rekurzív adatszerkezet: BinFa:= Fa := ÜresFa Rekord(Elem,BinFa,BinFa) ÜresFa Rekord(Elem,Fák) 2/37 Bináris
RészletesebbenSegédlet az Informatika alapjai I. című tárgy számrendszerek fejezetéhez
Segédlet az Informatika alapjai I. című tárgy számrendszerek fejezetéhez Sándor Tamás, sandor.tamas@kvk.bmf.hu Takács Gergely, takacs.gergo@kvk.bmf.hu Lektorálta: dr. Schuster György PhD, hal@k2.jozsef.kando.hu
RészletesebbenSZÓBELI ÉRETTSÉGI TÉMAKÖRÖK
INFORMATIKA SZÓBELI ÉRETTSÉGI TÉMAKÖRÖK Az emelt szint a középszint követelményeit magában foglalja, de azokat magasabb szinten kéri számon. 1. Információs társadalom 2. Informatikai alapismeretek - hardver
RészletesebbenA KÖZÉPSZINTŰ ÉRETTSÉGI VIZSGA INFORMATIKA TÉMAKÖREI: 1. Információs társadalom
A KÖZÉPSZINTŰ ÉRETTSÉGI VIZSGA INFORMATIKA TÉMAKÖREI: 1. Információs társadalom 1.1. A kommunikáció 1.1.1. A kommunikáció általános modellje 1.1.2. Információs és kommunikációs technológiák és rendszerek
RészletesebbenAdatbázis-kezelés az Excel 2013-ban
Molnár Mátyás Adatbázis-kezelés az Excel 2013-ban Magyar nyelvi verzió Csak a lényeg érthetően! www.csakalenyeg.hu Csak a lényeg érthetően! Microsoft Excel 2013 Kimutatás készítés relációs adatmodell alapján
RészletesebbenElőfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból
ÜTEMTERV Programozás-elmélet c. tárgyhoz (GEMAK233B, GEMAK233-B) BSc gazdaságinformatikus, programtervező informatikus alapszakok számára Óraszám: heti 2+0, (aláírás+kollokvium, 3 kredit) 2019/20-es tanév
RészletesebbenKOVÁCS BÉLA, MATEMATIKA I.
KOVÁCS BÉLA, MATEmATIkA I. 3 III. MEGFELELTETÉSEk, RELÁCIÓk 1. BEVEZETÉS Emlékeztetünk arra, hogy az rendezett párok halmazát az és halmazok Descartes-féle szorzatának nevezzük. Más szóval az és halmazok
RészletesebbenHibajavító kódok május 31. Hibajavító kódok 1. 1
Hibajavító kódok 2007. május 31. Hibajavító kódok 1. 1 Témavázlat Hibajavító kódolás Blokk-kódok o Hamming-távolság, Hamming-súly o csoportkód o S n -beli u középpontú t sugarú gömb o hibajelzı képesség
RészletesebbenHamming-kód. Definíció. Az 1-hibajavító, perfekt lineáris kódot Hamming-kódnak nevezzük. F 2 fölötti vektorokkal foglalkozunk.
Definíció. Hamming-kód Az -hibajavító, perfekt lineáris kódot Hamming-kódnak nevezzük. F fölötti vektorokkal foglalkozunk. Hamming-kód készítése: r egész szám (ellenırzı jegyek száma) n r a kódszavak hossza
Részletesebbenelektronikus adattárolást memóriacím
MEMÓRIA Feladata A memória elektronikus adattárolást valósít meg. A számítógép csak olyan műveletek elvégzésére és csak olyan adatok feldolgozására képes, melyek a memóriájában vannak. Az információ tárolása
Részletesebben4. Fuzzy relációk. Gépi intelligencia I. Fodor János NIMGI1MIEM BMF NIK IMRI
4. Fuzzy relációk Gépi intelligencia I. Fodor János BMF NIK IMRI NIMGI1MIEM Tartalomjegyzék I 1 Klasszikus relációk Halmazok Descartes-szorzata Relációk 2 Fuzzy relációk Fuzzy relációk véges alaphalmazok
RészletesebbenAz informatika kulcsfogalmai
Az informatika kulcsfogalmai Kulcsfogalmak Melyek azok a fogalmak, amelyek nagyon sok más fogalommal kapcsolatba hozhatók? Melyek azok a fogalmak, amelyek más-más környezetben újra és újra megjelennek?
Részletesebben1. tétel. A kommunikáció információelméleti modellje. Analóg és digitális mennyiségek. Az információ fogalma, egységei. Informatika érettségi (diák)
1. tétel A kommunikáció információelméleti modellje. Analóg és digitális mennyiségek. Az információ fogalma, egységei Ismertesse a kommunikáció általános modelljét! Mutassa be egy példán a kommunikációs
Részletesebben3. TÖMBÖK A tömb absztrakt adattípus Legyen T az E alaptípus feletti k ( 1) dimenziós tömb típus. Vezessük be az I I1
3. TÖMBÖK Az egyszerű adattípusok ismertetését a tömbökkel kezdjük. Az sem okozna zavart, ha ezt a fejezet nem szerepelne jegyzetünkben, tekintettel arra, hogy a tömböket ismerjük a programozási kurzusokból.
RészletesebbenSzámítógép architektúra
Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár Számítógép architektúra Dr. Seebauer Márta főiskolai tanár seebauer.marta@roik.bmf.hu Irodalmi források Cserny L.: Számítógépek
RészletesebbenAz adatok a vállalat kulcsfontosságú erőforrásai. Az információs rendszer adatai kezelésének két alapvető változata:
ADATSZERVEZÉ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: fájlrendszerek (a konvencionális módszer) és adatbázis rendszerek (a haladóbb
RészletesebbenErıforrástérkép felhasználói kézikönyv 1.0
Erıforrástérkép felhasználói kézikönyv 1.0 Budapest, 2010. november 18. Az MTA Közgazdaságtudományi Intézet alapvetı feladata közgazdasági alapkutatások és az ezekhez kapcsolódó alkalmazott kutatások végzése,
RészletesebbenKeresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán
Keresés Rendezés Feladat Keresés és rendezés A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán 2016. november 7. Farkas B., Fiala
Részletesebben2 Access 2016 zsebkönyv
2 Access 2016 zsebkönyv BBS-INFO Kiadó, 2016. 4 Access 2016 zsebkönyv Bártfai Barnabás, 2016. Minden jog fenntartva! A könyv vagy annak oldalainak másolása, sokszorosítása csak a szerző írásbeli hozzájárulásával
RészletesebbenAdatszerkezetek I. 8. előadás. (Horváth Gyula anyagai felhasználásával)
Adatszerkezetek I. 8. előadás (Horváth Gyula anyagai felhasználásával) Kereső- és rendezőfák Közös tulajdonságok: A gyökérelem (vagy kulcsértéke) nagyobb vagy egyenlő minden tőle balra levő elemnél. A
RészletesebbenProgramozás alapjai 9. előadás. Wagner György Általános Informatikai Tanszék
9. előadás Wagner György Általános Informatikai Tanszék Leszámoló rendezés Elve: a rendezett listában a j-ik kulcs pontosan j-1 kulcsnál lesz nagyobb. (Ezért ha egy kulcsról tudjuk, hogy 27 másiknál nagyobb,
RészletesebbenMatematikai alapok és valószínőségszámítás. Valószínőségi eloszlások Binomiális eloszlás
Matematikai alapok és valószínőségszámítás Valószínőségi eloszlások Binomiális eloszlás Bevezetés A tudományos életben megfigyeléseket teszünk, kísérleteket végzünk. Ezek többféle különbözı eredményre
RészletesebbenSzámítógép felépítése
Alaplap, processzor Számítógép felépítése Az alaplap A számítógép teljesítményét alapvetően a CPU és belső busz sebessége (a belső kommunikáció sebessége), a memória mérete és típusa, a merevlemez sebessége
RészletesebbenPásztor Attila. Algoritmizálás és programozás tankönyv az emeltszintű érettségihez
Pásztor Attila Algoritmizálás és programozás tankönyv az emeltszintű érettségihez 3. ADATTÍPUSOK...26 3.1. AZ ADATOK LEGFONTOSABB JELLEMZŐI:...26 3.2. ELEMI ADATTÍPUSOK...27 3.3. ÖSSZETETT ADATTÍPUSOK...28
RészletesebbenOperációsrendszerek. 3. elıadás. Állományszervezés, felhasználói felületek
Operációsrendszerek 3. elıadás Állományszervezés, felhasználói felületek Bevezetés Állományszervezés Fizikai Logikai Stratégiák Felhasználói felületek Parancsmódú GUI X-Windows Állományszervezés Az állományszervezés:
Részletesebben7. BINÁRIS FÁK 7.1. A bináris fa absztrakt adattípus 7.2. A bináris fa absztrakt adatszerkezet
7. BINÁRIS FÁK Az előző fejezetekben már találkoztunk bináris fákkal. Ezt a központi fontosságú adatszerkezetet most vezetjük be a saját helyén és az általános fák szerepét szűkítve, csak a bináris fát
Részletesebben