19. Hasításos technikák (hash-elés)



Hasonló dokumentumok
Gyakorló feladatok ZH-ra

p j p l = m ( p j ) 1

Emlékeztető: a fordítás lépései. Szimbólumtábla-kezelés. Információáramlás. Információáramlás. Információáramlás.

ADATBÁZISKEZELÉS ADATBÁZIS

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Számelmélet I.

Felvételi vizsga Mesterképzés, gazdaságinformatikus szak BME Villamosmérnöki és Informatikai Kar június 2.

Csődvalószínűségek becslése a biztosításban

Csak felvételi vizsga: csak záróvizsga: közös vizsga: Mérnök informatikus szak BME Villamosmérnöki és Informatikai Kar január 4.

Összefoglaló elemzés a 2008 során a televíziókban sugárzott reklámokról

1. FELADAT Mező neve Mező típusa Mező hossza TermékID Tényleges eladás Hónap Mező neve Mező típusa

Adatbázisok* tulajdonságai

Gráfelmélet/Diszkrét Matematika MSc hallgatók számára. Párosítások

Digitális technika VIMIAA01

2. Hatványozás, gyökvonás

Algoritmuselmélet 6. előadás

23. ISMERKEDÉS A MŰVELETI ERŐSÍTŐKKEL

KR TITKOSÍTÓ PROGRAM. Felhasználói leírás. v március 12.

1. Számoljuk meg egy számokat tartalmazó mátrixban a nulla elemeket!

11. Matematikai statisztika

Számítógépvezérelt rendszerek mérnöki tervezése

FORD KA KA_202054_V5_2013_Cover.indd /06/ :59

Algoritmusok és adatszerkezetek 2.

Általános statisztika II. Kriszt, Éva Varga, Edit Kenyeres, Erika Korpás, Attiláné Csernyák, László

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

3. gyakorlat Dinamikus programozás

EGÉSZSÉGÜGYI DÖNTÉS ELŐKÉSZÍTŐ

Gábor Dénes Számítástechnikai Emlékverseny 2012/2013. Döntő. Alkalmazói kategória IV. korcsoport

Felvételi vizsga Mesterképzés, gazdaságinformatikus szak BME Villamosmérnöki és Informatikai Kar június 2.

Beadható feladatok december Add meg az alábbi probléma állapottér-reprezentációját!

MATEMATIKA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

Nemetz O.H. Tibor emlékére május 9.

Komputer statisztika gyakorlatok

Algoritmuselmélet. Hashelés. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem

Normalizálás. Elméleti összefoglaló

8. Mohó algoritmusok Egy esemény-kiválasztási probléma. Az esemény-kiválasztási probléma optimális részproblémák szerkezete

NYILVÁNOS KÖNYVTÁRI KATALÓGUSOK

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

NAV nyomtatványok xml szerkezete. (v6.7)

Érettségi eredmények 2005-től (Békéscsabai Andrássy Gyula Gimnázium és Kollégium)

BUDAPESTI KÖZGAZDASÁGTUDOMÁNYI EGYETEM. Puskás Csaba, Szabó Imre, Tallos Péter LINEÁRIS ALGEBRA JEGYZET

8. előadás EGYÉNI KERESLET

Valószínűségszámítás

EGY ÖTLET. A Venn-diagram és a logikai szita alkalmazásai

MATEMATIKA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

Ismerkedés az Abel-csoportokkal

VÁLLALATI ÖNKISZOLGÁLÓ ÜGYFÉLSZOLGÁLAT VERZIÓSZÁM: BEVEZETŐ SZOLGÁLTATÁSOK ÁLTALÁNOS ISMERTETŐ MENÜRENDSZER FOLYAMATOK SZÓTÁR

Mikrobiológiai leletfogadás az OSZIR rendszerbe

Algoritmuselmélet. Hashelés. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem

Kosztolányi József Kovács István Pintér Klára Urbán János Vincze István. tankönyv. Mozaik Kiadó Szeged, 2013

Statisztikai módszerek gyakorlat - paraméteres próbák

LEKÉRDEZÉSEK SQL-BEN. A relációs algebra A SELECT utasítás Összesítés és csoportosítás Speciális feltételek

Bitcoin és ami mögötte van... 1 / 27

Intézményi interface technikai dokumentáció

FELADATOK A. A feladatsorban használt jelölések: R + = {r R r>0}, R = {r R r < 0}, [a; b] = {r R a r b}, ahol a, b R és a b.

Valószínűségszámítás és statisztika. István Fazekas

2. ALPROJEKT FELHASZNÁLÓI KÉZIKÖNYV

DOCSTAMP FELHASZNÁLÓI DOKUMENTÁCIÓ A DOCSTAMP DOKUMENTUM KEZELŐ RENDSZERHEZ április 10. v1.5

Informatikai tehetséggondozás:

6 Nyugta befejezése 37

Statisztika I. 6. előadás. Előadó: Dr. Ertsey Imre

Szeminárium-Rekurziók

Bináris keres fák kiegyensúlyozásai. Egyed Boglárka

KVANTITATÍV MÓDSZEREK

KÖZGAZDASÁGTAN ALAPJAI

Sztochasztikus folyamatok 1. házi feladat

VIII./4. fejezet: Kutatás a szellemitulajdon-védelmi adatbázisokban

JANUS PANNONIUS TUDOMÁNYEGYETEM. Schipp Ferenc ANALÍZIS I. Sorozatok és sorok

Új gépjármű beérkeztetés modul

Többváltozós függvények Riemann integrálja

KÁDÁR IVÁN BARTHA KAROLINA NAGY BEÁTA DR. FÁBIÁN ZSÓFIA. Térstatisztika a Központi Statisztikai Hivatalban

AZ ESÉLY AZ ÖNÁLLÓ ÉLETKEZDÉSRE CÍMŰ, TÁMOP / AZONOSÍTÓSZÁMÚ PÁLYÁZAT. Szakmai Nap II február 5.

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.

Kombinatorikus kerese si proble ma k

KUTATÁS KÖZBEN. T el ep ül ési lélekszám-kategóriák

Funkcionálanalízis. Általánosított függvények Disztribúciók el adás május Lineáris funkcionál

INFORMATIKAI ALAPISMERETEK

Óravázlat. az ECDL oktatócsomaghoz. 5. modul. Adatbáziskezelés. Krea Kft Budapest, Szőlő u 21. Tel/fax: / krea@krea.

5. modul - Adatbázis-kezelés


2. Légköri aeroszol. 2. Légköri aeroszol 3

I. rész 1. Egy gyümölcsjoghurt árát egy akció során 20%-kal csökkentették, így 100 Ft-ért adták. Mi volt a joghurt eredeti ára?

Gyakorlatok. P (n) = P (n 1) + 2P (n 2) + P (n 3) ha n 4, (utolsó lépésként l, hl, u, hu-t léphetünk).

A programozás alapfogalmai

Relációs modell és relációs algebra. ER konvertáása reációs modellre,példák relációs algebrára Személetes ismertetés

1. Az adatbázis fogalma, fontosabb összetevÿi, felhasználási módjai

6. RADIOAKTIVITÁS ÉS GEOTERMIKA

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

Valószínűség-számítás II.

Matematikai modellalkotás

Hraskó András, Surányi László: spec.mat szakkör Tartotta: Surányi László. Feladatok

ÍRÁSBELI KIVONÁS. 31. modul. Készítette: KONRÁD ÁGNES

Nyugat-magyarországi Egyetem Geoinformatikai Kara. Prof. Dr. Závoti József. Matematika III. 6. MA3-6 modul. A statisztika alapfogalmai

86 MAM112M előadásjegyzet, 2008/2009

Véletlenszám generátorok. 5. előadás

2. Hőmérséklet érzékelők vizsgálata, hitelesítése folyadékos hőmérő felhasználásával.

Kvantumkriptográfia III.

Elemi matematika szakkör

Feladatok és megoldások a 4. hétre

Programozás alapjai. 8. előadás

Feltételes formázás az Excel 2007-ben

Átírás:

19. Hasításos technikák (hash-elés) Példák: 1. Ha egy telefon előfizetőket a telefonszámaikkal azonosítjuk, mint kulcsokkal, akkor egy ritkán kitöltött kulcstartományhoz jutunk. A telefonszám tehát nem alkalmas kulcsnak. Vidéki körzetben 6 jegy > 1 millió kulcsérték.. A személyi szám viszont nem alkalmas kulcsnak, ugyanis, ha összeszámoljuk az összes kitöltési lehetőséget, akkor 74 millió kulcsértéket kapunk. 74 millió (Az utolsó 4 jegyből csak 3 értékes, 1. a többiből det. képződik) A 10 millió lakosra pedig elég egy kb.: 1 millió rekordot tartalmazó file. A személyi szám tehát nem alkalmas kulcsnak. A hash-elés jelensége: Adott a K kulcsok halmaza. A K elemivel azonosított rekordok száma azonban várhatóan jóval kisebb, mint a K számossága. Ekkor K-t egy alkalmas h függvénnyel leképezzük az ábrázolás alapját képező kisebb tartományra. Legyen ez a [0..M-1] intervallum. A h: K [0..M-1] függvényt hash függvénynek nevezzük. Mivel M< K, sőt általában M<< K, ezért h nem lehet injektív, hanem szükségképpen fellép a kulcsütközés: van olyan k k, amelyekre h(k) = h(k ). A hash-elés ábrázolás (hasításos technikák) feladata éppen az, hogy megoldást adjanak a kulcsütközésre. 1.Hash-elés láncolással A) Központi memóriában: a rekordok tárolása a következő ábra szerinti sémában történik. A T hasító tábla elemei (= rései ) a fejelemek, rendre azokra a listákra mutatnak, amelyek az adott résre leképezett kulcsokat tartalmazzák. Pl.: h(k 1 )=h(k )=h(k 3 )=k.

Az N halmazbeli kulcsok azok, amelyek a listában tárolásra kerülnek. Ha N = n, akkor n α = -et nevezzük a kitöltöttségi aránynak. Ha h egy jó hash függvény, azaz egyenletesen M szórja szét a kulcsértékeket, akkor az összes lista kb. egyforma hosszú (feltéve még, hogy az input adatok kulcsai is véletlenszerűen érkeznek). A gyakorlatban így merül fel a tárolással kapcsolatban a kérdés, hogy ha ismerjük K szerkezetét és a várható n elemszámot, akkor mekkora M-et és milyen h függvényt célszerű választani. (Ezzel később foglalkozunk). A listákkal kapcsolatban eldöntendő kérdések: - egy- vagy kétirányú láncolást alkalmazzunk-e? - a listák rendezetlenek vagy rendezettek-e? - rendezetlen esetben az elejére szúrjuk be az új elemet, vagy a végére? Műveletek: Beszúrás: h(k) kiszámítása és beszúrás elsőnek a h(k)-adik listába, vagy utolsónak, ha előbb végignézzük, hogy ott van-e már az elem. Keresés: h(k) kiszámítása és keresés a h(k)-adik listában. A sikeres keresés átlagosan l/ összehasonlítást igényel. A sikertelen keresés átlagosan l összehasonlítást igényel. Törlés: h(k) kiszámítása után keresés a h(k)-adik listában. Ha ott van az elem, akkor átlagosan l/ összehasonlítást igényel. B) Háttértárolón A T táblázat is a háttértárolón van. A lista elemei blokkok. 1 blokk k 51 byte, kis k-ra pl. 104 v. 048 byte. 1 blokkban több rekord foglal helyet. Általában a listák kevés számú blokkból állnak. Javasolt többlet ráhagyás 0-5%. Példa: N = 1.000.000 rekord 1 blokkban 5 rekord fér el. Ha átlagosan 1 hosszú listákat szeretnénk, akkor M=00.000. Legyen a rátartás miatt M=40.000. Ekkor a keresés várhatóan 1+1 blokkelérést igényel, ha a T megfelelő részét tartalmazó blokkot közvetlenül (direkt) tudunk nyúlni. A tárolás néhány kérdése: - lapokon (=blokkokon) belül láncoljuk-e a rekordokat? - túlcsordulási blokkok létesítése; túlcsordulás kezelés?

Összefoglalóan: - h, T szerepe: hatékony elérhetőség; - a listák szerepe: kulcsütközés kezelésére.. Nyitott (nyílt) címzés A belső memóriában a T[0..M-1] tömbben legfeljebb néhány ezer rekord elhelyezésére kidolgozott módszer. Természetesen legfeljebb M rekord tárolható. Az ábra a kulcsütközés feldolgozásának általános módszerét szemlélteti. Ha a h(k) hely foglalt, akkor szisztematikusan próbálkozunk. Az i-edik lépésben h i (k)-val lépünk odább az eredeti helyről, ha kell. A h i (k) lépésköz egyszerűbb esetben nem függ k-tól, még egyszerűbb esetben mindig 1 mezővel lépünk arrébb, mint mindjárt látjuk. A próbálkozást a következő képlet fejezi ki: h(k)+ h i (k) (mod M) (0 i M-1) ahol { h 0 (k), h 1 (k), h (k),, h M-1 (k)} = {0,1,,,M-1} ugyanis így garantált, hogy a próbasorozat minden táblaelemhez eljut, ha szükséges. Egy mezőnek 3-féle státusza lehet: -üres -foglalt -törölt (hogy a keresés folytatódhasson) A) lineáris próbálás h i (k) = -i a h(k) helytől egyesével balra lépünk, amíg üres helyet nem találunk. Pl. M = 7 h(k) = k (mod 7) (1) k=3, 11, 9 elhelyezése: () k=4 beszúrása (3) k=9 törlése jelen esetben a * jel jelenti, hogy töröltük az elemet

(4) k=4 keresése Hátrány: clustereződés vagy elsődleges csomósodás B) négyzetes próbálás (álvéletlen / pszeudo véletlen) A h i (k) most is k-tól független, de nem szabályos, hanem véletlenszerű. Egy lehetséges h i (k) az úgynevezett kvadratikus maradék próba. Legyen M = 4k+3 alakú prímszám, pl. 19 A próbasorozat: 0, 1, -1,, -,, ( M 1 ), -( M 1 ) Belátható, hogy így minden értéket megkapunk [0..M-1]-ben. Mivel h i (k) véletlenszerű, ezért nem alakul ki elsődleges csomósodás. Viszont, ha h(k 1 )=h(k ), akkor k 1 és k teljes próbasorozata megegyezik, ezért azonos h(k i ) értékű kulcsok a közös próbasorozat mentén helyezkednek el. Ez a másodlagos csomósodás. C) kettős hash-elés A próbáló függvény most már függ k-tól. A h mellett egy másik h -t is használunk. h(k) i*h (k) (mod M) Követelmény: h (k) és M relatív prímek legyenek, minden k-ra. Kettős hash-elésnél nem alakul ki 1. és. típusú csomósodás. Pl. h (k)-ra h (k) = k (mod M-1)+1 3. Hash függvények Milyen a jó h? Receptkönyv, lásd elsősorban Knuth III. Tanács: h függjön a kulcs minden bitjétől Elvárás: h egyenletes legyen Osztómódszer A k-t tekintsük egész számnak h(k) := k (mod M) M nem lehet hatvány (noha egyszerűbb számítást adna) Knuth javaslata: legyen M prím, és ne essen közel 18, 56, 51, 104-hez. Pl. 000 rekord, legyen H=701, ez prím és nem esik hatvány közelébe. h(k) = k (mod 701) Tapasztalat: ez egyenletesen szór, kb. 3 elemű lánc tartozik minden kulcshoz.

Szorzómódszer: Legyen 0 < A < 1 rögzített h(k) = M *{ ka} Lépések: k kulcs {ka} törtrész Є [0,1) M *{ ka} [0..M-1] M-re nem érzékeny, így legyen M alkalmas hatvány. Számolás: Tegyük fel, hogy k elfér 3 biten 5 1 A = 0,6180 a legjobb (Knuth szerint) k= 13,45 M= 10.000 r 1 * 3 +r 0 h(k) = 41