Memóriaadatbázisok. áttekintő előadás az. Adatbázisok haladóknak. c. tárgy keretében, szeptember 18. Szerző: Marton József Ernő BME-VIK TMIT
|
|
- Ödön Orbán
- 6 évvel ezelőtt
- Látták:
Átírás
1 Memóriaadatbázisok áttekintő előadás az Adatbázisok haladóknak c. tárgy keretében, szeptember 18. Szerző: Marton József Ernő BME-VIK TMIT Tartalom BEVEZETÉS...2 IDŐRENDI ÁTTEKINTÉS...3 LEGFONTOSABB KÉRDÉSEK...3 Elférhet-e teljes adatbázis a memóriában?...3 Nem-felejtő memória kérdése...4 IMDBMS a nagy gyorsítótárral szerelt DRDBMS-sel szemben...5 Kommunikációs alternatíva...5 FONTOSABB RÉSZTERÜLETEK...6 Adatszerkezetek...6 Index-adatszerkezetek...6 Relációk...12 Lekérdezés-feldolgozás...12 A relációs algebra alapműveletei...13 Vetítés (π(a, B) R)...13 Szűrés (σ(gy='alma') R)...13 Illesztések...13 Tranzakciókezelés, az ACID tulajdonság...13 Hardvertámogatás...14 ÖSSZEFOGLALÁS...15 IRODALOMJEGYZÉK...16
2 Bevezetés Memóriaadatbázison (IMDB 1 ) olyan adatbázis rendszert értünk, ahol a tárolt és kezelt adatok elsődleges 2 példánya a fizikai memóriában található [GaK92], szemben a lemez-alapú 3 adatbázisokkal (DRBD 4 ), ahol az a lemezes-alapú háttértáron található. Az esetleges biztonsági másodpéldányok persze lehetnek lemezes vagy egyéb nem felejtő tárolón. Ahogy növekszik az elérhető memória-kapacitás, egyre több alkalmazás által kezelt összes adat fér el a fizikai memóriában. A fizikai memóriában tárolt adatok hozzáférési ideje nagyságrendekkel kisebb, mint a lemezről beolvasandó adaté. Ebből következően a feldolgozási idők lerövidülhetnek, ami idő-kritikus, akár soft vagy hard real-time feladatok elvégzését teszi lehetővé. Persze mindig lesz olyan adattömeg, ami meghaladja az elérhető fizikai memória-kapacitást. Az ilyen adattömegeknek is lehet olyan része, amelyet a feldolgozási műveletek az átlagosnál jóval gyakrabban használnak. Ezen tulajdonság alapján érdemes lehet az adatbázist egy IMDB és egy DRDB részre osztani (partícionált adatbázis). Bizonyos alkalmazások nem igénylik az adataik tartósságát: főként beágyazott rendszerekben jellemző, hogy a funkcionalitásához szükséges adatbázist működés közben építi fel (pl. IP routerek forgalomirányítási táblája) vagy induláskor letölti egy fejállomásról (pl. programajánló információs rendszerek). Az utóbbiak számára nem is a memóriában tárolt adatok gyorsabb elérése miatt csábító választás egy memóriaadatbázis-rendszer 5. Sokkal fontosabb, hogy bonyolult, a DRDB-hez kapcsolódó funkciók, mint például a lemezes IO-alrendszer, vagy a tranzakció-naplók vezetéséhez szükséges alkalmazás-logika és memória-szükséglet eliminálható. Ezáltal kisebb lesz az eszköz/alkalmazás memória-lenyomata 6 és számítási kapacitás-szükséglete is, így az előállítási költsége 7 [Ste02]. A telekommunikációs rendszerek esetén akár a CAC 8, akár a számlázáshoz szükséges forgalmi adatgyűjtés területén szükséges magas átbocsátó képesség miatt jó választás lehet IMDB alkalmazása. 1 IMDB In-Memory DataBase, vagy MMDB Main-Memory DataBase: memória-alapú adatbázis, vagy memóriaadatbázis 2 Elsődleges vagy munkapéldány: a logikai adatelem azon példánya vagy példányainak összessége, amin a tranzakciók műveleteket végeznek. 3 Az SSD-k térnyerésének idejét éljük, de jelenleg azokat még tipikusan a diszkekhez hasonló elérést és szervezést lehetővé tevő interfésszel találjuk meg a piacon. Ekkor a lemez-alapú helyett pontosabban úgy fogalmazhatunk, hogy a blokkos elérést lehetővé tevő tároló fölött működő adatbázis-kezelő rendszer. 4 DRDB Disk-Resident DataBase: lemezes tároló alapú adatbázis 5 IMDBMS In-Memory Database Management System: memória-alapú adatbázis-kezelő rendszer 6 memory footprint 7 Nem jellemző beágyazott rendszerekben DRDBMS alkalmazása. Az említett okokból a saját fejlesztésű adatszerkezetek alkalmazását válthatja ki egy IMDBMS rendszerrel a rendszerfejlesztő. Az erőforrás-igényt tehát ebben a környezetben kell vizsgálni, és dönteni, hogy a saját fejlesztésű megoldás vagy egy esetleges speciális rendszer alkalmazása éri meg jobban. 8 CAC Call Admission Control: hívásengedélyezés - 2 -
3 Időrendi áttekintés Az 1980-as évek első felében a high-end rendszerekben néhány megabyte és néhányszor tíz megabyte közötti fizikai memória volt elérhető. Ezzel összhangban eleinte a kutatások a megnövekedett puffer-kapacitás kihasználása irányában összpontosultak megmaradván a DRDB séma mellett. Az évtized közepére már 128 MB is elérhető volt [LeC86] a high-end rendszerekben. Ekkor került az érdeklődés középpontjába a relációs adatbázisok memória-rezidens tárolása. Különböző, a fizikai memória tulajdonságait kihasználó adatszerkezeteket alkottak a relációk és az indexek tárolására valamint a lekérdezések optimális végrehajtására. Az évtized vége felé a tranzakciókezelés és a zavartalan működés mellett készített backup-ok és visszaállítási pontok kérdése volt a fő kutatási irány. Ekkor a piacon már kereskedelmi termékként is elérhetőek voltak IMDB rendszerek, például az IBM IMS/VS Fast Path vagy Office by example [GaK92] rendszerei. Az 1990-es évek stagnálását követően 2001-ben újabb, már a processzor-cache adta lehetőségeket is jobban kihasználó módszereket, index-adatszerkezeteket [BMR01] publikálnak. Növekszik a kereskedelemben elérhető eszközök száma. A napjainkban elérhető rendszerek közül kettőt említenénk: beágyazott rendszerekben az extremedb 9, míg enterprise rendszerekben a TimesTen 10 egy-egy képviselője az IMDB elvnek. Mára 11 1GB RAM költsége 20USD alatt van, és néhány TB-os memória-kapacitású szerver is könnyedén elérhető a piacon. Legfontosabb kérdések Vajon jogos-e feltételeznünk, hogy az egész adatbázis a memóriában van? Mi történik a memóriában tárolt adatokkal a tápfeszültség kimaradása esetén? Van-e lényegi különbség az IMDB és a nagy cache-el felszerelt DRDB rendszerek között? Vizsgáljuk meg ezeket a kérdéseket közelebbről! Elférhet-e teljes adatbázis a memóriában? Érezzük, hogy a kérdés nincs pontosan megfogalmazva. Az egyetlen korrekt válasz csak az attól függ lehet [GaK92]. Vannak olyan alkalmazások, ahol a kezelt adat mérete alapján a válaszunk egyértelműen igen. Ilyenek például a korábban említett telekommunikációs routerek vagy kisebb raktárkészleteket kezelő adatbázisok. Bizonyos esetekben ha szükséges elérhető minden adat memória-rezidens tárolása. Tekintsünk például egy néhány százezer kötetes könyvtárat, amelynek néhány tízezer olvasója van. 9 McObject's extremedb 10 Oracle TimesTen ősz - 3 -
4 Egy ezt kezelő adatbázis mérete néhányszor 5GB nagyságú lehet. Ma könnyűszerrel lehetséges ennyi memóriával felszerelni egy adatbázisszervert. Egy könyvtári adatbázis azonban mégsem az az eset, ahol ez ma megéri: a napi feladatok ellátására tökéletesen megfelel egy DRDB. A másik véglet lehet a SETI projekt által begyűjtött gigantikus mennyiségű adat, vagy időjárási műholdképek. Ezek memória-rezidens tárolására valószínűleg sosem lesz elég a rendelkezésre álló operatív memória. Az utóbbi két esetben érdemes lehet megfontolni az adatok egy részének memória-rezidens tárolását, esetleg a hozzáférési gyakoriság függvényében az adatok migrálását a DRDB és IMDB rendszerek között. A migráció nem csupán gyorsítótárazás! Az adatokat olyan reprezentációra (adatszerkezetek) kell hozni, ami kihasználja a tároló médium adottságait. A nyerő stratégia talán a partícionált adatbázis lehet: az adatbázis-kezelő rendszer automatikusan felismeri, hogy a rendelkezésre álló fizikai memória és az adatok hozzáférési-statisztikái alapján az adatbázis melyik részét kezeli IMDB-hozzáállással, és melyik részét DRDB-elven [GaK92]. Az automatikus felismerés helyett a felosztást a rendszer tervezőjének kezébe is adhatjuk. Az 1. ábrán szenzor-adatfolyamok fogadására és analízisére kialakított adatbázis látható partícionált adatbázis-kezelő rendszerben. Az adatbázis-kezelővel kapcsolatban álló komponensek egy része kapcsolódhat közvetlenül az IMDB vagy DRDB részhez: ekkor szükséges figyelembe vennie, hogy az adatbázisnak nem az egészét látja. Kapcsolódhat a partícionált adatbázis-kezelőhöz, mint egészhez, amikor a rendszer belső mechanizmusai biztosítják, hogy a műveletek (lekérdezések) az adatbázis adatainak teljességével dolgozzanak függetlenül attól, hogy egyes adatelemek az IMDB, DRDB, vagy éppen mindkét részben megtalálhatóak. Nem-felejtő memória kérdése sensory data sources A lemez passzív adattároló eszköz: az adatok a tárolási elv sajátosságai miatt minden erőfeszítés nélkül megmaradnak a tápfeszültség kimaradása esetén is, ha egyszer felírásra kerültek. A fizikai memória ezzel szemben elveszti az adatait, ha a tápfeszültség kiesik. Ennek a valószínűsége csökkenthető UPS vagy telep alkalmazásával. De továbbra is aktív adattároló 12 eszközként viselkedik: ha az UPS-ből kifogy az energia, az adatok ugyanúgy elvesznek [GaK92]. A memória bithiba-valószínűsége hardveres támogatással csökkenthető éppúgy, mint a diszkek esetén: hibajelző ill. javító kódolással vagy modulháromszorozással (vö. RAID megoldások). Memory-resident DB query & result passing analysis tool cached data portion data propagation initial load Disc-resident DB transform logic Partitioned database 1. ábra: Az elemzőeszközök a partícionált adatbázishoz csatlakoznak, amíg az adatforrások friss adati közvetlenül az IMDB részbe érkeznek, hogy minél hatékonyabb lehessen az előfeldolgozásuk. 12 aktív adattároló az adatok tárolásához a tápfeszültség folyamatos rendelkezésre állása szükséges
5 Összefoglalva nem mondható, hogy létezik nem-felejtő memória, de az sem, hogy nem létezik. A lényeg az, hogy bizonyos technikákkal fokozható a megbízhatósága, de ezzel nem szűnik meg a backup-ok létjogosultsága. IMDBMS a nagy gyorsítótárral szerelt DRDBMS-sel szemben Felvetődik a kérdés, mi a különbség a nagy memória-gyorsítótáras DRDB rendszerek és az IMDB között. A gyorsítótár lehet az operációs rendszer illetőleg a DBMS szintjén. Tekintsük előbb az első esetet: az operációs rendszer a lemezes háttértároló tartalmának egy részét cache-seli. Ekkor az adatbáziskezelő rendszer a szokásos rendszerhívással kéri a megfelelő adat beolvasást. A lemezkezelő alrendszer kiszámítja az adat fizikai címét a lemezen, majd ellenőrzi, hogy benn van-e a cache-ben. Találat esetén visszatér, egyébként beolvasás után tér csak vissza. Ebben az esetben tehát a rendszerhívások és a kapcsolódó környezetváltások nem spórolhatók meg, csupán a blokkbeolvasás [Ste02]. Szembetűnő tehát, hogy az adatok lemezen való elrendezésére különös figyelmet kell fordítani annak érdekében, hogy a cache-találatok aránya nagy legyen. A 2. ábrán az az eset látható, amikor a DBMS saját gyorsítótárat tart fenn. Ekkor cache-találat esetén az IO-alrendszerhez fordulás összes többletmunkája megspórolható. A lényegi különbség az, hogy a memóriában más adatszerkezetek használata célszerű, mint a lemezes tároláskor. Egyszerű cache-selés esetén bár bekerül az adat a memóriába, de a reprezentációja diszkre optimalizált: például egy index B-fában a memóriában tárolva nem optimális, hiszen mások a költségfüggvények, amit korábban bemutatott T-fa adatstruktúra [LeC86b] hatékonyabban használ ki. További különbség, hogy bizonyos bonyolult alkalmazáslogikai elemek (pl. a diszken az adatok elrendezését optimalizáló, esetleg klaszterező megoldások) implementálása szükségtelen, mert az egyes feladatokra a memória sajátosságait jobban kihasználó, egyszerűbb módszerek létezhetnek. Például klaszterezés helyett az előreszámított illesztések mutatókkal implementálhatók [LeC86]. Kommunikációs alternatíva A hagyományos adatbáziskezelő-rendszerek esetében megszokott kliens-szerver modell az IMDB rendszerenél is elérhető. Amikor azonban a 2. ábrán látható környezetváltások egy részét megspóroltuk, Alkalmazás Adatbázismotor Fájlrendszer OS alrendszer lemezes háttértár DB belső cache OS fájlrendszer cache 2. ábra: adathozzáférés komponensei DRDB esetén a piros nyilak üzenetátadást, míg a zöldek adatáramlást jelölnek a szaggatott keret átlépése a futási környezetváltásokat mutatja felmerül az igény: ha egyazon gépen fut az adatbáziskezelő és az adatokat használó alkalmazás, akkor miért ne spórolhatnánk meg az alkalmazás és - 5 -
6 adatbázis-kezelő rendszer közötti kommunikáció közben esedékes környezetváltásokat. Ezt megtehetjük, ha az alkalmazás címterébe kerül az adatbázis-kezelő egy osztott memóriaterületen keresztül. Ez persze sok esetben biztonsági kockázatot is jelent, hiszen az alkalmazás a saját címterében szinte bármit megtehet, ha van közvetlen memória-manipulálási lehetősége. Másfelől a környezetváltáson túl is nyerünk, hiszen ha egyazon címtérben van az alkalmazás és az adatbázis, akkor a lekérdezések eredményének a visszaadása csupán egy iterátor átadását jelentheti, nincs szükség az adatok másolására. Fontosabb részterületek Adatszerkezetek Egy adatbázis-rendszer adatok tárolására és kezelésére létrehozott eszköz. Természeténél fontos kérdés tehát, hogy az adatokat milyen strukturában tárolja. A választott struktúrának illeszkednie kell a tároló médium és a tárolt adat sajátosságaihoz egyaránt. Adatmodellben a jól bevált relációs megfelelő választás, a legtöbb IMDB rendszer ezt implementálja. Az implementációban azonban az IMDB rendszerek új megoldásokat igényelnek. Alább áttekintjük az indexek és a relációk tárolására alkalmazható legfontosabb adatszerkezeteket. Index-adatszerkezetek A tároló médium sajátosságait az egyes adatkezelő műveletek költségével vehetjük figyelembe. Lemezes médium esetében ez a költség lényegileg a blokk-műveletek számával arányos. Persze nem független az egyes blokkok elérésének sorrendjétől, de nagyságrendekkel kisebb mértékben szerepel abban. Az adathozzáférés költségét a fizikai memória esetében elsősorban a hozzáférendő adat mennyisége határozza meg. Bár közvetlen ( random ) hozzáférésű tárról van szó, a szekvenciális hozzáférés ebben az esetben is kifizetődő, igaz, csupán csekély mértékben változtatja a hozzáférési költséget 13. Hash 14 -alapú módszerrel két megközelítésben is találkozhatunk az IMDB terén: az indexek és a zárak implementálásához egyaránt hasznos. Ez a két eset a módszereket tekintve nem különbözik jelentős mértékben. Sokkal lényegesebbek a felvetődő skálázási, illetőleg méretezési kérdések, amelyek meghaladják e dokumentum kereteit. 13 Bizonyos körülmények között a processzor-cache hatékony alkalmazása módosíthatja ezt az állítást. Hatását később tárgyaljuk. 14 A K halmazon értelmezett h: K {0,..., N-1} függvényt hash-függvénynek nevezzük. Általában a képhalmaz elemszáma (számossága) sokkal kisebb, mint a K halmazé. A hash-alapú indexelés/elérés ezt kihasználva és el jó kompromisszumot a tárkihasználás és az elemek elérési ideje között
7 A kiterjeszthető vödrös hash 15 hagyományos vödrös hash egy adaptív változata. A kezelendő kulcsok hashelt értékéből mindig csak annyi bitet vesz figyelembe, hogy a meghatározott vödrökbe eső kulcsok száma ne haladja meg a vödör-kapacitást. Szükség esetén a releváns bitek számát növeli a módszer. Ebben az esetben egy keresett kulcs megtalálásához szükséges idő független a tárolt kulcsok számától: csupán a vödörkapacitástól függ. Amennyiben a a b vödörkapaciás 1-nél nagyobb, úgy az átlagos tárigénye m rekord tárolása esetén O m 1 1 b [AnP92]. Az 3. ábrán a hash-függvény 3 bites értékeket vesz fel, és R(nnn) jelöl egy megfelelő hash-értékű rekordot. Az egyszerű, többes besorolású hash 16 az előbbinek egy kiterjesztése: az első szinten egy fix szótárméretű adatstruktúra, amelynek minden bejegyzése alá egy kiterjeszthető vödrös hash kapcsolódik. Láthatóan (4. ábra) nem sokkal bonyolultabb a kapott struktúra, de a tárkihasználása az előbbinél nagyságrendileg jobb: megfelelő méretezés esetén a felhasznált tárkapacitás közel lineáris a tárolt rekordok m számában [AnP92]. Mivel a gyökér-szótár fix méretű, csak elegendően sok információ birtokában méretezhető úgy a struktúra, hogy az megfeleljen az aktuális igényeknek: tehát egy nem adaptív struktúráról van szó. Ha a fa-szerkezetnek nem korlátozzuk strukturálisan a mélységét, és az egyes csomópontokban elhelyezett mini hash-szótárakat a beillesztett rekordok függvényében adaptívan növeljük illetve vonjuk össze a gyerekcsomópontokkal, akkor a Fast Search Multi-Directory Hash 17 szerkezethez juthatunk, amelyről bővebben az [AnP92] irodalomban olvashatunk. Előnye ezen adaptív struktúrának, hogy mérete várható értékben lineáris az m tárolt rekordok számában. Hátránya, 15 Extendible hashing 16 Simple multi-directory hashing 17 FSMH Gyorsan kereshető több-szótáras hash (a) (b) 3. ábra: Kiterjeszthető vödrös hash, b=1 (a) a hash-függvény 2 bitje releváns, azaz 4 a szótár mérete (b) vödörtúlcsordulás miatt szótárduplázás történt R(000) R(010) R(000) R(010) R(001) 4. ábra: Egyszerű többes-besorolású hash hash-érték gyökér-szótár levél-szótárak
8 hogy az előbbiekhez képest bonyolultabb az implementációja, és a fenntartása több adminisztrációt igényel. Az index adatstruktúrák másik családja a keresőfák, amelyről bővebben az [RIS98] irodalom nyújt tájékoztatást. Ebben a dokumentumban megvizsgáljuk, hogy a blokk-alapú tárolók esetén alkalmazott B-fa miért nem a legjobb választás a fizikai memóriában, és a legelterjedtebb alternatívájához, a T-fához jutunk el. A B-fák (5. ábra) [RIS98] belső csomópontjainak több, nevezetesen B/2..B gyermeke lehet, és minden csomópont részfái egyazon magasságúak 18. Ha egy csomópontot egy (a) (b) vezérlő inf. data1 data2... data(m-1) 5. ábra: (a) egy B-fa csomópont (b) egy B-fa (a kék csomópontokban egyenként 4 adatelem foglalhat helyet) blokkon kívánunk tárolni, akkor ezzel a feltétellel a blokk kihasználtságát írhatjuk elő. Így a fa mélysége a tárolt kulcsok számának logaritmusával arányos. Azonban a bejáráskor minden csomópont esetén bináris kereséssel kell eldöntenünk, hogy melyik részfában folytatjuk a keresést. Ez diszk-alapú rendszernél nem megy a hatékonyság rovására, hiszen ott a diszk-io műveletek száma az, ami meghatározza a költséget. A memóriában gazdaságtalan lehet, mert sokáig tart. A bináris keresőfák 19 családja ebből a szempontból jobb választás: egyetlen összehasonlítással el lehet dönteni, hogy melyik részfában kell a keresést folytatni. Vegyük azonban figyelembe, hogy a memóriában az indexelt értékeket nem kell duplikálnunk: elegendő egy mutató elhelyezése a hivatkozott n-esre 20. Így azonban az adminisztrációhoz (a struktúra leírásához) felhasznált tárterület a hasznos területnek legkevesebb duplája, ami túlságosan sok! Ugyanannyi tárolt elemet tekintve a bináris keresőfa mélysége azonban nagyobb lehet. Ha a fa építése során megköveteljük az AVL tulajdonság 21 teljesülését, a magassága továbbra is a tárolt elemek logaritmusával lesz arányos. Egy elem keresése során tehát (konstansszor) több csomópont meglátogatására lesz szükségünk, mint a B-fák esetében, de ez a memóriában nem probléma, hiszen a mutatók követése gyors művelet Ezt az adatstruktúrához tartozó műveletek algoritmusai garantálják, melyről szintén a hivatkozott irodalomban olvashatunk. 19 Egy bináris keresőfa egy olyan fa, amelynek minden csomópontjának legfeljebb 2 gyermeke van, továbbá minden csomópontjában 1 kulcsot tárolunk. Igaz továbbá, hogy valamely csomópont bal részfájában csak az ott tárolt értéknél kisebb, míg a jobb oldali részfájában az ott tárolt értéknél nem kisebb kulcsú elemek találhatóak (ezt nevezzük keresőfa-tulajdonságnak). 20 n-touple, n-es a rekord szinonímájának tekinthető ebben a környezetben 21 AVL tulajdonság: bináris fák esetében valamely csomóponthoz tartozó bal- és jobb-oldali részfa magasságának a különbsége legfeljebb 1 lehet. AZ AVL tulajdonságot teljesítő bináris fák az AVL fák [RIS98]
9 Ha a B-fa jobb tárkihasználását egyesítjük az AVLfánál látott egyszerű követőrészfa-kiválaszhatósági tulajdonsággal, a T-fához [LeC86b] jutunk: az AVL-fa minden egyes csomópontjában több kulcs címét is tároljuk. Egy csomópontban az alkalmazott rendezés szerint szomszédos elemek foglalnak helyet, így 2 összehasonlítással eldönthetjük, hogy a keresett értéket tartalmazó csúcsot megtaláltuk (ez az ún. bennfoglaló csúcs), vagy kiválaszthatjuk azt a részfát, ahol a keresést folytatni kell. Ha megtaláltuk a bennfoglaló csúcsot, akkor egyetlen bináris kereséssel eldönthető, hogy valóban létezik-e a keresett érték (ha létezik, meg is található). A T-fa kezelésére használt algoritmusok [LeC86b] (elem beszúrása, törlése) lényegében megegyeznek az AVL-fákhoz tartozó eljárásokkal (lásd: [RIS98]), itt csak a fő különbségekre térünk ki. Eddig nem említett követelmény, hogy minden belső csúcs esetén az ott tárolt adatok száma egy maximális és egy minimális érték közé esik, amelyek rendszerint csak egy kis additív konstansban térnek el egymástól. Az egy csúcsban tárolt elemek (rendezés szerinti) szomszédosságából, valamint az AVL-fáktól kölcsönzött keresőfa-tulajdonságból adódik, hogy az egy csúcsban tárolt elemek legnagyobb alsó szomszédja és a legkisebb felső szomszédja az 7/(c) ábrán kék körrel jelölt helyen van a fában. A fába való beszúrás során előbb megkeressük a beszúrandó elem bennfoglaló csúcsát. Ha van még ott hely, akkor egyszerűen berakjuk, ellenkező esetben az ott tárolt legkisebb elemet (adat 1 ) kivesszük, és a beillesztendő adatot elhelyezzük a csúcsban annak rendezés szerinti helyére. A kivett elemet a bal részfába próbáljuk az előbbiek szerint beszúrni. Ha nincs bal részfa, akkor egy új csúcs beszúrása válik szükségessé. Ez elronthatja az AVL tulajdonságot, amelyet egyetlen (esetleg dupla) forgatással helyre lehet hozni (8/a,b ábra). A forgatás következtében elromolhat a T-fákra megkövetelt kitöltöttségi tulajdonság, amennyiben levélcsomópont is közvetlenül részt vesz a forgatásban. Ezt csupán a forgatásban résztvevő csomópontok között az elemek áthelyezésével orvosolhatjuk (8/c ábra). (a) bal gyermekcsomópont (b) adat (mutató) vezérlő inf. jobb gyermekcsomópont 6. ábra: (a) egy AVL-fa csomópont (b) egy AVL fa - 9 -
10 Elem törlésekor a beszúráshoz hasonlóan megkeressük a törlendő elemet befoglaló csúcsot, ahonnan egyszerűen kitöröljük azt. Ha a kitöltöttségi követelmény sérül, akkor a csúcshoz tartozó legnagyobb alsó szomszéd-elemet beemeljük. Ha újra sérülne a kitöltöttségi követelmény, akkor a sérült csúcsba emeljük át annak legnagyobb alsó szomszédelemét, és így tovább. A törlés során legutoljára meglátogatott csomópontban, és sorban annak őseiben ellenőrizni kell az AVL tulajdonságot, és szükség esetén forgatásokkal helyre kell hozni. Ha a forgatásban levél-csomópont (a) (b) adat 1 bal gyermekcsomópont vezérlő inf. adatok (mutatók) jobb gyermekcsomópont 7. ábra: a T-fa struktúra elemei (a) egy csomópont; (b) egy T-fa (c) a tárolt elemek elhelyezkedése a T-fában is részt vesz, akkor a belső csúcsokra vonatkozó kitöltöttségi tulajdonság sérülhet, amelyet a forgatásban részt vevő csúcsok közötti elem-áthelyezéssel a beszúráshoz hasonlóan orvosolni kell. A memóriakapacitás-igény csökkentésére a T-fában csak mutatókat tároltunk a tényleges kulcsra. A keresés meggyorsítására azonban érdemes lehet a tényleges kulcs valamely részét szintén eltárolnunk. A gyorsítás ekkor nem közvetlenül a mutató-indirekciók eliminációjából adódik. Sokkal fontosabb, hogy a fa bejárása során a processzor-cache-ben a találatok arányát növeli, ha nem hivatkozunk az algoritmusok során gyakran egymástól távoli memóriacímekre. A részlegeskulcsú T-fák 22 segítségével éppen ez a viselkedés érhető el, ahol az egyes csomópontokban a hivatkozott rekord címe mellett a kulcsból eltárolva néhány bitet sok esetben elérhető, hogy a továbblépési döntést a tényleges kulcs-értékek összehasonlítása nélkül meghozzuk. A nyereség nyilvánvaló, hiszen ahogy a fizikai memória hozzáférési ideje nagyságrendben kisebb, mint a lemezeké, úgy a processzor-cacheben lévő adatok hozzáférési ideje újabb nagyságrendi lépés. A módszer részletei és figyelemreméltó teljesítőképessége a [BMR01] irodalomban olvashatók. adat 1 bal részfa vezérlő inf. adatok (mutatók) adat n jobb részfa (c) adat n 22 pkt-fa, partial key T-Tree
11 A B B a2 C A C b2 c1 c2 b2 a2 c1 c2 (a) A A C B a2 C a2 B A b1 C B c2 b1 c1 c2 a2 c1 c2 b1 c1 (b) A C C B B A B A C (c) 8. ábra: T-fa forgatások (az A jelű csúcsnál sérül az AVL tulajdonság) (a) egyszerű bal-forgatás; (b) bal-jobb dupla forgatás (c) bal-jobb dupla forgatás a kitöltöttségi követelmény helyreállításával
12 Relációk A relációk tárolása nagymértékben egyszerűbb az indexeknél. Egy leíróban feljegyezzük a reláció alaptulajdonságait, mezőit, azok típusát, és egyéb adminisztratív információkat. A tényleges adattárolás következik ezután. Fix hosszú rekordok esetén egyszerűen egy tömbben tárolhatjuk a rekordokat. Rekord törlésekor csak megjelöljük a megüresedő helyet, valamint nyilvántartásba vesszük a megüresedő helyet. Szükség esetén tömörítjük a tárat, ez azonban költséges művelet. Új elem beszúrásakor azt egy üres helyre írjuk, amit esetleg a tömbhöz további tárterületet foglalva tudunk csak megtenni, ami szintén meglehetősen drága művelet lehet. Ha nem ragaszkodunk a rekordok szekvenciális eléréséhez, sokkal kényelmesebb dolgunk van: ha létezik legalább egy index a relációhoz, akkor az egyes rekordok a memóriában akárhol elhelyezkedhetnek, így egyszerűen a memória-menedzserre bízhatjuk az összes adminisztratív feladatot, és megspórolhatjuk az említett drága műveleteket. Adódik a kérdés, hogy mi a teendő a rekordok változó hosszúságú mezőivel? Ésszerű keretek között korlátos mezőméret esetén fix hosszú mezőként is kezelhetőek az adattárolás szintjén. Ha ez nem vezetne gazdaságos tároláshoz, a rekordokban csupán egy mutatót tárolunk, amely egy elkülönített halomterületre mutat, ahol azok tárolhatók. Ezen a halomterületen újra memóriamenedzselési kérdések vetődnek fel, de sokkal kisebb léptékben. Ezekkel itt nem foglalkozunk. A változó hosszúságú rekord-mezők mellett érdemes megvizsgálni a távoli kulcsokat tartalmazó mezőket is! Ha a mező értéke helyett csupán egy mutatót tárolunk a hivatkozott reláció megfelelő rekordjára, akkor kétszeresen is nyerünk: egyfelől tárterület és változó hosszúságú mezők esetén adminisztrációs komplexitás terén spórolunk, másfelől ezen távoli kulcsok mentén előreszámított (fél)illesztések hozhatóak létre [LeC86], ami a lekérdezés-feldolgozás során térül meg. Az előreszámított félillesztések megvalósítása nem új találmány: DRDB rendszerekben is előszeretettel alkalmazzák. Azonban ezen a téren is egyszerűsítési lehetőség adódik a fizikai memória természetéből: míg a diszkes tároláskor erre a különböző relációkan összetartozó rekordok egy blokkra rendezése, az ún. klaszterezése jelent megoldást, addig a memóriaadatbázisok területén a sokkal egyszerűbb, mutatós megoldás kézenfekvő. Lekérdezés-feldolgozás A lekérdezések feldolgozását két pontban tekintjük át. Előbb megvizsgáljuk a relációs algebra alapműveleteinek egy megvalósítását, majd az eredménylisták előállítását tekintjük az azokat kiszolgáló adatszerkezetekre is utalva. Nem elhanyagolható kérdés a lekérdezések optimalizációja, ám az meghaladja e dokumentum kereteit
13 A relációs algebra alapműveletei Vetítés (π (A, B) R) A vetítés az eredményreláció leírójának módosításával kezdődik. Bizonyos esetekben nem érdemes az így keletkező duplumokat ténylegesen kiválogatni [LeC86]: elegendő a következő feldolgozási fázisban vagy az eredmények visszaadásakor menet közben átugorni. Különösen fontos észrevétel ez akkor, ha a részeredmény listát egy létező relációra alapozzuk, amelyhez létezik megfelelő összetett index, vagy a megmaradó mezők szerint rendezett bejárásra más módon van lehetőségünk. Ha a duplumok eltávolítása szükségessé válik, akkor a korábbiakban említett hash-alapú módszerek valamelyike jó választásnak tűnik: a megfelelő méretezés ebben az esetben nem jelent akkora problémát, mint az indexek esetében, hiszen lényegében statikus struktúráról van szó. A részeredmény-listákat, ha különválasztottuk a létező relációktól erre komplexebb lekérdezésekkor mindenképpen sor kerül előbb-utóbb, akkor a relációk tárolásánál megismert tömb-alapú módszer a legpraktikusabb tárolnunk. Szűrés (σ (Gy='alma') R) A szűrés szintén olyan művelet, amely az eredményreláció leírójának módosításával megoldható, és csak az eredmény visszaadásakor vagy a további feldolgozáskor elegendő eldobni a mintára nem illeszkedő rekordokat. Duplumok kiszűrése szükség esetén hash-alapú módszerekkel szintén hatékonyan megoldható. Illesztések A távoli kulcsok mentén történő fél-illesztések egyszerűségét a relációkhoz kapcsolódó adatszerkezetek részben már tárgyaltuk. Az illesztések további típusaira a diszk-alapú adatbázisrendszerekben használt hash-alapú módszerek használhatók, melyekről a [DeG85] irodalom részletes leírással szolgál. Tranzakciókezelés, az ACID tulajdonság A tranzakciókezelés összetartozó műveletsorozatok végrehajtására fogalmaz meg négy követelményt: az atomicitást 23, azaz valamely műveletsor vagy teljes egészében, vagy egyáltalán nem hajtódik végre, a konzisztenciát 24, amely a tárolt adatokra megfogalmazott kényszerek meg nem sértését követeli meg, a konkurens műveletek interferenciáját tiltó elkülönítést 25, valamint a sikeresen végrehajtott módosítások eredményeinek tartósságát 26. Az atomicitás zárak implementálásával illetőleg a módosítás előtt a rekord duplikálásával oldható meg [LeC86]. A zárak alkalmazása egyszerű művelet, és a költsége kicsi, hiszen a gyors 23 A - atomicity 24 C - consistency 25 I - isolation 26 D - durability
14 adat-elérési és feldolgozási képesség miatt a tranzakciók várható értékben rövid ideig tartanak. Így lehetőség nyílik zárakkal nagyobb adategységek [GaK92], akár teljes relációk kizárólagos hozzáférését biztosítani. A konzisztencia követelményét szintén a rekordok módosítás előtti duplázásával érhetjük el: ekkor hiba esetén rendelkezésre áll a korábbi verzió, míg a tranzakció sikeres lefutása esetén gyorsan véglegesíthető a változás. A tranzakciók hatásainak elkülönítését a műveletek megfelelő ütemezésével érhetjük el. A DRDB rendszerekhez kialakított sorosítható ütemezések, és zár-kezelési protokollok itt is alkalmazhatók, de soros ütemezés megvalósítására is adódik lehetőség a rövidebb tranzakciók miatt. A soros ütemezés előnye a tranzakciók közötti környezetváltások megspórolása: tágabb értelemben a processzorcache tartalma is beletartozhat a környezetbe, ami a cache-találatok esetén szignifikáns sebességnövekedést eredményez. Az adatok tartósságát tranzakció-naplók és backup-ok készítésével biztosíthatjuk. Ezek tárolása általában valamilyen mágneses tárolási elvű adathordozón (diszken vagy mágnesszalagon) oldható meg. Azonban a tartósság követelményét kielégítendő minden sikeres tranzakció befejeződése előtt ki kellene írni a tranzakció-naplót a lemezre. Ezzel persze lelassítanánk az írást is végző tranzakciók végrehajtását. Egy megoldás lehet ún. stable memory 27 -val felszerelt architektúra alkalmazása, ahol néhány lemez-blokknyi tranzakció-napló elfér [GaK92], és azt egy külön processzor vagy folyamat periodikusan, csoportosítva írja ki a lemezre. Ez tehát aszinkron művelet a tranzakció befejeződéséhez képest, így biztosítható a rendszer magasabb áteresztő képessége. Hardvertámogatás A fizikai memória hibavalószínűségének csökkentésére, illetőleg a tápellátás folyamatos biztosítására különböző megoldásokat alkalmazhatunk, amelyeket a nem felejtő memória kérdését tárgyaló részben tekintettünk át. Szintén a nem-felejtő memória került előtérbe a tranzakciók tartóssági követelményének kielégítésekor. Ekkor speciális architektúra (ún. stable memory) és külön napló-mentő processzor használata segíthet. Tágabb értelemben hardvertámogatásnak tekinthető egy többprocesszoros architektúra alkalmazása is. Eddig nem tárgyalt témakör, az ütemezések fair-tulajdonsága. A soros ütemezés esetében sokkal könnyebb azt biztosítani, legalábbis statisztikai alapon [GaK92]: sokkal kisebb valószínűséggel van jelen egyszerre N db hosszú tranzakció, mint egyetlen. 27 Olyan fizikai-memória megoldás, amelynek a megbízhatósága vetekszik a lemezes tárolókéval. Részletesen a [CKK89] irodalom foglalkozik a témával
15 Összefoglalás A memóriaadatbázisok alkalmazásának láttuk előnyeit és hátrányait is. Bizonyos feladatok elvégzéséhez egyszerűbb algoritmusokat alkalmazhatunk, mint a diszk-alapú rendszerekben, míg másokhoz bonyolultabb, újszerű megoldásokra van szükség. A konkrét feladat és követelményei ismeretében IMDB alkalmazása mellett vagy éppen ellen dönteni: ez a rendszert tervező mérnök feladata. Ma már rendelkezésre állnak hibrid rendszerek is, amelyek az adatbázis egy részét IMDB, másik részét DRDB elven kezelik, és teszik ezt a programozó számára teljesen transzparens módon. Ezen rendszerek bizonyos korlátok között képesek az egyes relációk hozzáférési statisztikái alapján migrálni az adatok megfelelő részét az IMDB és a DRDB alrendszer között. Az adatbázis tervezője azonban nagyobb rálátással rendelkezik az elkészítendő rendszerre, így a rendszer indulásakor legalábbis jobb konfigurációt definiálhat, mint az automatizmus
16 Irodalomjegyzék [GaK92]: [Ste02]: [LeC86]: [BMR01]: [LeC86b]: Hector Garcia-Molina, Kenneth Salem: Main Memory Database Systems: An Overview, 1992 (: IEEE Transactions on knowledge and data engineering - Vol 4, No.6, December) Steve Graves: In-Memory Database Systems, 2002 (SSC Publications, Inc.: Linux Journal - Issue 101, September) Tobin J Lehman, Michael J Carey: Query Processing in Main Memory Database Management Systems, 1986 (ACM Press - New York, NY, USA: ACM SIGMOD Record, Proceedings of the 1992 ACM SIGMOD international conference on Management of data - Volume 15 Issue 2, June) id=16878 Philip Bohannon, Peter McIlroy, Rajeev Rastogi: Main-Memory Index Structures with Fixed-Size Partial Keys, 2001 (ACM Press - New York, NY, USA: ACM SIGMOD Record, Proceedings of the 2001 ACM SIGMOD international conference on Management of data SIGMOD '01 - Volume 30 Issue 2, May) Tobin J Lehman, Michael J Carey: A Study of Index Structures for Main Memory Database Management Systems, 1986 (Proceedings of the Twelfth International Conference on Very Large Data Bases - August) [AnP92]: Anastasia Analyti, Sakti Pramanik: Fast search in main memory databases, 1992 (ACM Press - New York, NY, USA: ACM SIGMOD Record, Proceedings of the 1992 ACM SIGMOD international conference on Management of data - Volume 21 Issue 2, June) [RIS98]: Rónyai Lajos, Ivanyos Gábor, Szabó Réka: Algoritmusok, Typotex - Budapest [DeG85]: David J. DeWitt, Robert Gerber: Multiprocessor Hash-Based Join Algorithms, 1985 (Morgan Kaufman pubs. (Los Altos CA), Stockholm - ) [CKK89]: G. Copeland, T. Keller, R. Krishnamurthy, M. Smith: The case for safe RAM, 1989 (Proceedings of the 15th international conference on Very large data bases - ) ;
Memóriarezidens adatbáziskezelés
Memóriarezidens adatbáziskezelés Marton József Ernő marton@db.bme.hu Adatbázisok haladóknak 2012. 2012. szeptember 18. Miről lesz szó? Memóriaadatbázisokról általában Alapelv, kontraszt a hagyományossal
Marton József. Adatbázisok elmélete VITMMA február 20.
Marton József marton@db.bme.hu BME-TMIT Adatbázisok elmélete VITMMA13 2018. február 20. Miről lesz szó? ról általában Alapelv, kontraszt a,,hagyományossal Előnyök, erősségek Hátrányok (?), nehézségek Szervezés
Memória alapú adatbázisok (IMDB: In-Memory DataBase vagy MMDB Main-Memory DataBase)
Memória alapú adatbázisok (IMDB: In-Memory DataBase vagy MMDB Main-Memory DataBase) Takács Gábor mérnök informatikus, okl. mérnöktanár takacsg@sze.hu http://rs1.sze.hu/~takacsg/ Memória-adatbázis szervezési
Fá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
10. 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ő.
B-fa. Felépítés, alapvető műveletek. Programozás II. előadás. Szénási Sándor.
B-fa Felépítés, alapvető műveletek előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar B-fa Felépítése Beszúrás művelete Törlés
file:///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
ADATBÁZIS-KEZELÉS. Adatbázis-kezelő rendszerek
ADATBÁZIS-KEZELÉS Adatbázis-kezelő rendszerek Adat (Data) Észlelhető, felfogható ismeret Jelsorozat Tény, közlés Valakinek vagy valaminek a jellemzője Adatbázis (Data Base, DB) Hosszú ideig évekig meglévő
17. 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
Adatbáziskezelő-szerver. Relációs adatbázis-kezelők SQL. Házi feladat. Relációs adatszerkezet
1 2 Adatbáziskezelő-szerver Általában dedikált szerver Optimalizált háttértár konfiguráció Csak OS + adatbázis-kezelő szoftver Teljes memória az adatbázisoké Fő funkciók: Adatok rendezett tárolása a háttértárolón
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.
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
Egyirá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
Rendszermodernizációs lehetőségek a HANA-val Poszeidon. Groma István PhD SDA DMS Zrt.
Rendszermodernizációs lehetőségek a HANA-val Poszeidon Groma István PhD SDA DMS Zrt. Poszeidon EKEIDR Tanúsított ügyviteli rendszer (3/2018. (II. 21.) BM rendelet). Munkafolyamat támogatás. Papírmentes
Adatbáziskezelı-szerver SQL. Relációs adatbázis-kezelık. Relációs adatszerkezet. Házi feladat 2012.03.05.
1 2 Adatbáziskezelı-szerver Általában dedikált szerver Optimalizált háttértár konfiguráció Csak OS + adatbázis-kezelő szoftver Teljes memória az adatbázisoké Fő funkciók: Adatok rendezett tárolása a háttértárolón
Adatbá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
Informatikai alapismeretek Földtudományi BSC számára
Informatikai alapismeretek Földtudományi BSC számára 2010-2011 Őszi félév Heizlerné Bakonyi Viktória HBV@ludens.elte.hu Titkosítás,hitelesítés Szimmetrikus DES 56 bites kulcs (kb. 1000 év) felcserél, helyettesít
Algoritmusok és adatszerkezetek gyakorlat 07
Algoritmusok és adatszerkezetek gyakorlat 0 Keresőfák Fák Fa: összefüggő, körmentes gráf, melyre igaz, hogy: - (Általában) egy gyökér csúcsa van, melynek 0 vagy több részfája van - Pontosan egy út vezet
Adatbá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
Fájlrendszerek. A Windows operációs rendszerek fájlrendszere
Fájlrendszerek A Windows operációs rendszerek fájlrendszere Fájlrendszerek definíció A számítástechnika egy fájlrendszer alatt a számítógépes fájlok tárolásának és rendszerezésének a módszerét érti, ideértve
Adatszerkezetek 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
Adatbá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
Adatbá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
Operációs Rendszerek II. Első verzió: 2009/2010. I. szemeszter Ez a verzió: 2009/2010. II. szemeszter
Operációs Rendszerek II. Első verzió: 2009/2010. I. szemeszter Ez a verzió: 2009/2010. II. szemeszter 1 Mai témák ZFS NTFS 2 ZFS Új koncepció, nem továbbgondolás Pooled storage modell Minden művelet copy-on-write
Adatszerkezetek 2. Dr. Iványi Péter
Adatszerkezetek 2. Dr. Iványi Péter 1 Hash tábla A bináris fáknál O(log n) a legjobb eset a keresésre. Ha valamilyen közvetlen címzést használunk, akkor akár O(1) is elérhető. A hash tábla a tömb általánosításaként
R ++ -tree: an efficient spatial access method for highly redundant point data - Martin Šumák, Peter Gurský
R ++ -tree: an efficient spatial access method for highly redundant point data - Martin Šumák, Peter Gurský Recenzió: Németh Boldizsár Térbeli indexelés Az adatszerkezetek alapvetően fontos feladata, hogy
ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu
ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu Számonkérés 2 Papíros (90 perces) zh az utolsó gyakorlaton. Segédanyag nem használható Tematika 1. félév 3 Óra Dátum Gyakorlat 1. 2010.09.28.
file:///d:/apa/okt/ad/jegyzet/ad1/b+fa.html
1 / 6 2018.01.20. 23:23 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 tananyagának
Ugrólisták. RSL Insert Example. insert(22) with 3 flips. Runtime?
Ugrólisták Ugrólisták Ugrólisták Ugrólisták RSL Insert Example insert(22) with 3 flips 13 8 29 20 10 23 19 11 2 13 22 8 29 20 10 23 19 11 2 Runtime? Ugrólisták Empirical analysis http://www.inf.u-szeged.hu/~tnemeth/alga2/eloadasok/skiplists.pdf
Algoritmusok é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:
Marton József BME-TMIT. Adatbázisok VITMAB november 11.
Marton József BME-TMIT Gajdos Sándor diasorának felhasználásával Adatbázisok VITMAB00 2016. november 11. A lekérdezés-feldolgozás folyamata I. Cél: az adatok adatbázisból való kinyerése Mivel: egyértelmű,
Struktú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
Ionogram releváns területeinek meghatározása és elemzésének automatikus megvalósítása
Ionogram releváns területeinek meghatározása és elemzésének automatikus megvalósítása Előadó: Pieler Gergely, MSc hallgató, Nyugat-magyarországi Egyetem Konzulens: Bencsik Gergely, PhD hallgató, Nyugat-magyarországi
Térinformatikai adatszerkezetek
Térinformatikai adatszerkezetek 1. Pont Egy többdimenziós pont reprezentálható sokféle módon. A választott reprezentáció függ attól, hogy milyen alkalmazás során akarjuk használni, és milyen típusú műveleteket
Programozá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
Ismerkedjünk tovább a számítógéppel. Alaplap és a processzeor
Ismerkedjünk tovább a számítógéppel Alaplap és a processzeor Neumann-elvű számítógépek főbb egységei A részek feladatai: Központi egység: Feladata a számítógép vezérlése, és a számítások elvégzése. Operatív
Gyakori elemhalmazok
Gyakori elemhalmazok Bankó Tibor June 9, 2010 Bankó Tibor (BME) Gyakori elemhalmazok June 9, 2010 1 / 26 Tartalom 1 Bevezetés 2 Az algoritmusok Egy speciális eset Apriori Eclat FP-Growth 3 Az algoritmusok
22. 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
Speciá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
12. Másodlagos tár szerkezet
12. Másodlagos tár szerkezet Diszk felépítés Diszk ütemezés Diszk kezelés Swap (csere) terület kezelés Diszk megbízhatóság Stabil-tár implementáció 71 Diszk felépítés Logikailag a diszk blokkokból képezett
Adatbázisok elmélete 18. előadás
Adatbázisok elmélete 18. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu http://www.cs.bme.hu/ kiskat 2004 ADATBÁZISOK ELMÉLETE
Tranzakció-kezelés, alapfogalmak. Vassányi István, 2012.
Tranzakció-kezelés, alapfogalmak Vassányi István, 2012. ACID tulajdonságok Tranzakció: az üzleti folyamat egy logikailag összetartozó lépéssorozata atomicity: nem valósulhat meg részlegesen consistency:
elektronikus 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
Programozá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
A számítástudomány alapjai. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem
A számítástudomány alapjai Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem Bináris keresőfa, kupac Katona Gyula Y. (BME SZIT) A számítástudomány
Adatbázisok elmélete
Adatbázisok elmélete Adatbáziskezelés, bevezető Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem Katona Gyula Y. (BME SZIT) Adatbázisok elmélete
Előadás_#13. Egy lemez írási művelet kiszolgálása
Előadás_#13. 1. Az NT fájlrendszere, NTFS A korábbi fájl rendszerek vs. az NTFS korlátai: FAT12 alatt a fájl név 8.3 szerkezetű, egy fájl maximális mérete nem lehet több mint 32MB. A maximális partíció
A számítógép egységei
A számítógép egységei A számítógépes rendszer két alapvető részből áll: Hardver (a fizikai eszközök összessége) Szoftver (a fizikai eszközöket működtető programok összessége) 1.) Hardver a) Alaplap: Kommunikációt
Csima Judit szeptember 6.
Adatbáziskezelés, bevezető Csima Judit BME, VIK, Számítástudományi és Információelméleti Tanszék 2017. szeptember 6. Csima Judit Adatbáziskezelés, bevezető 1 / 20 Órák, emberek heti két óra: szerda 14.15-16.00
Ellenő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,
Operációs rendszerek. UNIX fájlrendszer
Operációs rendszerek UNIX fájlrendszer UNIX fájlrendszer Alapegység: a file, amelyet byte-folyamként kezel. Soros (szekvenciális) elérés. Transzparens (átlátszó) file-szerkezet. Link-ek (kapcsolatok) létrehozásának
Adatszerkezetek 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
7 7, ,22 13,22 13, ,28
Általános keresőfák 7 7,13 13 13 7 20 7 20,22 13,22 13,22 7 20 25 7 20 25,28 Általános keresőfa Az általános keresőfa olyan absztrakt adatszerkezet, amely fa és minden cellájában nem csak egy (adat), hanem
Az adatbázisrendszerek világa
Az adatbázisrendszerek világa Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 1.1. Az adatbázisrendszerek fejlődése 1.2. Az adatbázis-kezelő rendszerek áttekintése
Operációs rendszerek. UNIX/Linux fájlrendszerek
Operációs rendszerek UNIX/Linux fájlrendszerek Tartalom Linux fájlrendszerek UNIX/Linux fájlrendszerek Szimbolikus linkek Fájlrendszerek csatolása Virtuális fájlrendszer Szuperblokk Inode Objektumok 2
Adatmodellezé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)
Adatbá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,
Algoritmusok és adatszerkezetek 2.
Algoritmusok és adatszerkezetek 2. Varga Balázs gyakorlata alapján Készítette: Nagy Krisztián 1. gyakorlat Nyílt címzéses hash-elés A nyílt címzésű hash táblákban a láncolással ellentétben egy indexen
Adaptív dinamikus szegmentálás idősorok indexeléséhez
Adaptív dinamikus szegmentálás idősorok indexeléséhez IPM-08irAREAE kurzus cikkfeldolgozás Balassi Márton 1 Englert Péter 1 Tömösy Péter 1 1 Eötvös Loránd Tudományegyetem Informatikai Kar 2013. november
Tudásalapú információ integráció
Tudásalapú információ integráció (A Szemantikus Web megközelítés és a másik irány) Tanszéki értekezlet, 2008. május 14. 1 Miért van szükségünk ilyesmire? WWW: (Alkalmazások) Keresés a weben (pl. összehasonlítás
9.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)
9.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK) http://sila.hajas.elte.hu/ Adatbázis-kezelő rendszerek áttekintése, alapfogalmak Tankönyv: 1.fejezet: Az adatbázisrendszerek világa Adatbázisok-1 (Hajas
Szá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
5/1. tétel: Optimalis feszítőfák, Prim és Kruskal algorithmusa. Legrövidebb utak graphokban, negatív súlyú élek, Dijkstra és Bellman Ford algorithmus.
5/1. tétel: Optimalis feszítőfák, Prim és Kruskal algorithmusa. Legrövidebb utak graphokban, negatív súlyú élek, Dijkstra és Bellman Ford algorithmus. Optimalis feszítőfák Egy összefüggő, irányítatlan
Az 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
Hálózati réteg. WSN topológia. Útvonalválasztás.
Hálózati réteg WSN topológia. Útvonalválasztás. Tartalom Hálózati réteg WSN topológia Útvonalválasztás 2015. tavasz Szenzorhálózatok és alkalmazásaik (VITMMA09) - Okos város villamosmérnöki MSc mellékspecializáció,
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
Amortizá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
RELÁCIÓS LEKÉRDEZÉSEK OPTIMALIZÁLÁSA. Marton József november BME TMIT
RELÁCIÓS LEKÉRDEZÉSEK OPTIMALIZÁLÁSA Marton József 2015. november BME TMIT ÁTTEKINTÉS lekérdezés (query) értelmező és fordító reláció algebrai kifejezés optimalizáló lekérdezés kimenet kiértékelő motor
Fák 2009.04.06. Témakörök. Fa definíciója. Rekurzív típusok, fa adatszerkezet Bináris keresőfa, bejárások Bináris keresőfa, módosítás B-fa
Fák szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Rekurzív típusok, fa adatszerkezet Bináris keresőfa, bejárások Bináris keresőfa, módosítás B-fa Témakörök 2 Fa (Tree): csomópontok
Elemi 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
Operációs rendszerek III.
A WINDOWS NT memóriakezelése Az NT memóriakezelése Memóriakezelő feladatai: Logikai-fizikai címtranszformáció: A folyamatok virtuális címterének címeit megfelelteti fizikai címeknek. A virtuális memóriakezelés
Microsoft SQL Server telepítése
Microsoft SQL Server telepítése Az SQL Server a Microsoft adatbázis kiszolgáló megoldása Windows operációs rendszerekre. Az SQL Server 1.0 verziója 1989-ben jelent meg, amelyet tizenegy további verzió
2. Visszalépéses keresés
2. Visszalépéses keresés Visszalépéses keresés A visszalépéses keresés egy olyan KR, amely globális munkaterülete: egy út a startcsúcsból az aktuális csúcsba (az útról leágazó még ki nem próbált élekkel
6. óra Mi van a számítógépházban? A számítógép: elektronikus berendezés. Tárolja az adatokat, feldolgozza és az adatok ki és bevitelére is képes.
6. óra Mi van a számítógépházban? A számítógép: elektronikus berendezés. Tárolja az adatokat, feldolgozza és az adatok ki és bevitelére is képes. Neumann elv: Külön vezérlő és végrehajtó egység van Kettes
Nyí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 -----------------------------------------
Adatbá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,
Gyakori elemhalmazok kinyerése
Gyakori elemhalmazok kinyerése Balambér Dávid Budapesti M szaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Számítástudomány szakirány 2011 március 11. Balambér Dávid (BME) Gyakori
Adatbázis rendszerek I
Normalizálás 1NF 2NF BCNF Adatbázis rendszerek I 20111201 1NF 2NF BCNF Ha BCNF 2NF A B B A 2NF BCNF 2NF részkulcsból indul ki FD létezik FD, amely nem jelölt kulcsból indul ki Jelölt kulcs olyan mezőcsoport
9. előadás. A táblázat. A táblázatról általában, soros, önátrendező, rendezett és kulcstranszformációs táblázat
. előadás ról általában, soros, önátrendező, rendezett és kulcstranszformációs Adatszerkezetek és algoritmusok előadás 0. április. ról általában,, és Debreceni Egyetem Informatikai Kar. Általános tudnivalók
Adatbázisok elmélete
Adatbázisok elmélete Fizikai szervezés, tárkezelés, lekérdezések optimalizálása Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 2017. október
MŰSZAKI KÖVETELMÉNYEK, A KÖRKERESŐ SZOFTVER SPECIFIKÁCIÓJA, KÖLTSÉGVETÉS. A) Műszaki követelmények
1. sz. melléklet MŰSZAKI KÖVETELMÉNYEK, A KÖRKERESŐ SZOFTVER SPECIFIKÁCIÓJA, KÖLTSÉGVETÉS A) Műszaki követelmények A körkereső szoftvernek (a továbbiakban Szoftver) az alábbi követelményeknek kell megfelelnie
Vodafone ODI ETL eszközzel töltött adattárház Disaster Recovery megoldása. Rákosi Péter és Lányi Árpád
Vodafone ODI ETL eszközzel töltött adattárház Disaster Recovery megoldása Rákosi Péter és Lányi Árpád Adattárház korábbi üzemeltetési jellemzői Online szolgáltatásokat nem szolgált ki, klasszikus elemzésre
Adatszerkezetek é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ú
2. Visszalépéses stratégia
2. Visszalépéses stratégia A visszalépéses keres rendszer olyan KR, amely globális munkaterülete: út a startcsúcsból az aktuális csúcsba (ezen kívül a még ki nem próbált élek nyilvántartása) keresés szabályai:
A 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
Alkalmazások típusai Szoftverismeretek
Alkalmazások típusai Szoftverismeretek Prezentáció tartalma Szoftverek csoportjai Operációs rendszerek Partíciók, fájlrendszerek Tömörítés Vírusok Adatvédelem 2 A szoftver fogalma A szoftver teszi használhatóvá
8. gyakorlat Pointerek, dinamikus memóriakezelés
8. gyakorlat Pointerek, dinamikus memóriakezelés Házi ellenőrzés Egy számtani sorozat első két tagja A1 és A2. Számítsa ki a sorozat N- dik tagját! (f0051) Egy mértani sorozat első két tagja A1 és A2.
Valós idejű megoldások: Realtime ODS és Database In-Memory tapasztalatok
Valós idejű megoldások: Realtime ODS és Database In-Memory tapasztalatok Pusztai Péter IT fejlesztési senior menedzser Magyar Telekom Sef Dániel Szenior IT tanácsadó T-Systems Magyarország 2016. április
Adatszerkezetek 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
Számítógép hálózatok, osztott rendszerek 2009
Számítógép hálózatok, osztott rendszerek 2009 1: Bevezetés: Internet, rétegmodell Alapok: aszimptótika, gráfok 1 Az előadáshoz Előadás: Hétfő 10:00 12:00 óra Gyakorlat: Hétfő 14:00-16:00 óra Honlap: http://people.inf.elte.hu/lukovszki/courses/0910nwmsc
SQLServer. Particionálás
SQLServer 11. téma DBMS particiók, LOG shipping Particionálás Tábla, index adatinak szétosztása több FileGroup-ra 1 Particionálás Előnyök: Nagy méret hatékonyabb kezelése Részek önálló mentése, karbantartása
Párhuzamosítás adatbáziskezelő rendszerekben
Párhuzamosítás adatbáziskezelő rendszerekben Erős Levente, 2018. 1 Párhuzamos műveletvégzés Miért? Nagy adatmennyiségek Nagyságrendileg nő a keletkező/feldolgozandó/tárolandó adat mennyisége Célhardver
Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.
Eseménykezelés előadás http://nik.uni-obuda.hu/sztf2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Függvénymutatókkal Származtatással Interfészekkel Egyéb
A 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.
5. 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
Költséghatékony high-end adattároló megoldások Vitéz Gábor, Avaxio Kft.
Költséghatékony high-end adattároló megoldások Vitéz Gábor, Avaxio Kft. Az Avaxioról 2006 óta vagyunk a piacon Coraid Inc. kiemelt magyarországi partnere Fókusz: költséghatékony adattárolási megoldások
Már megismert fogalmak áttekintése
Interfészek szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Polimorfizmus áttekintése Interfészek Interfészek kiterjesztése Eseménykezelési módszerek 2 Már megismert fogalmak
Adatszerkezetek 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
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
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:
Dr. Illés Zoltán zoltan.illes@elte.hu
Dr. Illés Zoltán zoltan.illes@elte.hu Operációs rendszerek kialakulása Op. Rendszer fogalmak, struktúrák Fájlok, könyvtárak, fájlrendszerek Folyamatok Folyamatok kommunikációja Kritikus szekciók, szemaforok.
1: Bevezetés: Internet, rétegmodell Alapok: aszimptótika, gráfok. HálózatokII, 2007
Hálózatok II 2007 1: Bevezetés: Internet, rétegmodell Alapok: aszimptótika, gráfok 1 Az előadáshoz Előadás: Szerda 17:00 18:30 Gyakorlat: nincs Vizsga írásbeli Honlap: http://people.inf.elte.hu/lukovszki/courses/g/07nwii