Kivonatolás a DBMS-ben: statikus és dinamikus kivonatolási technikák
Mi az a kivonatolás a DBMS-ben?
A DBMS-ben a kivonatolás egy olyan technika, amely közvetlenül keresi a kívánt adatok helyét a lemezen, indexstruktúra használata nélkül. A kivonatolási módszert az adatbázisban lévő elemek indexelésére és lekérésére használják, mivel gyorsabban lehet megkeresni az adott elemet a rövidebb kivonatoló kulcs használatával, az eredeti érték helyett. Az adatokat adatblokkok formájában tárolják, amelyek címét egy hash függvény alkalmazásával állítják elő azon a memóriahelyen, ahol ezeket a rekordokat tárolják. adatblokk vagy adatgyűjtő.
Miért van szükségünk a hashozásra?
Az alábbiakban felsoroljuk azokat a helyzeteket a DBMS-ben, amikor alkalmazni kell a kivonatolási módszert:
- Hatalmas adatbázis-struktúra esetén nehéz az összes indexértéket annak minden szintjén végigkeresni, majd el kell érnie a cél adatblokkot, hogy megkapja a kívánt adatokat.
- A kivonatolási módszert az adatbázisban lévő elemek indexelésére és lekérésére használják, mivel gyorsabban lehet megkeresni az adott elemet a rövidebb kivonatoló kulcs használatával, az eredeti érték helyett.
- A kivonatolás ideális módszer egy adatrekord közvetlen helyének kiszámítására a lemezen indexstruktúra használata nélkül.
- Hasznos technika a szótárak megvalósításához is.
Fontos terminológiák a hashingban
Itt vannak a Hashingben használt fontos terminológiák:
- Adatgyűjtő – Az adatgyűjtők azok a memóriahelyek, ahol a rekordokat tárolják. Tárolási egységként is ismert.
- Kulcs: Egy DBMS kulcs egy attribútum vagy attribútumkészlet, amely segít azonosítani egy sort (tuple) egy relációban (táblázatban). Ez lehetővé teszi, hogy megtalálja a kapcsolatot két tábla között.
- Hash funkció: A hash függvény egy olyan leképezési funkció, amely az összes keresőkulcsot leképezi arra a címre, ahol a tényleges rekordok vannak elhelyezve.
- Lineáris szondázás – A lineáris tapintás egy rögzített intervallum a szondák között. Ennél a módszernél a következő elérhető adatblokk kerül felhasználásra az új rekord bevitelére, ahelyett, hogy felülírná a régebbi rekordot.
- Másodlagos szondázás– Segít meghatározni az új vödör címét. Segít hozzáadni az intervallumot a szondák között azáltal, hogy a másodfokú polinom egymást követő kimenetét hozzáadja az eredeti számítás által megadott kezdőértékhez.
- Hash index – Az adatblokk címe. A hash függvény lehet egy egyszerű matematikai függvény, de akár egy összetett matematikai függvény is.
- Double hashelés -Double A hash egy számítógépes programozási módszer, amelyet a hash táblákban használnak az ütközés problémáinak megoldására.
- Vödör túlcsordulás: A vödör-túlcsordulás állapotát ütközésnek nevezzük. Ez végzetes szakasz minden statikus működéséhez.
A kivonatolási technikák típusai
Főleg kétféle SQL-kivonatolási módszer/technika létezik:
- Statikus kivonatolás
- Dinamikus hashelés
statikus kivonatolás
A statikus kivonatolásnál az eredményül kapott adatgyűjtőcím mindig ugyanaz marad.
Ezért, ha generál egy címet mondjuk Diák_azonosító = 10 hash funkció használatával mod(3), az eredményül kapott csoportcím mindig ez lesz 1. Tehát nem fog változást látni a vödör címében.
Ezért ennél a statikus kivonatolási módszernél a memóriában lévő adatgyűjtők száma mindig állandó marad.
Statikus hash-függvények
- Rekord beszúrása: Ha egy új rekordot be kell illeszteni a táblába, létrehozhat egy címet az új rekordhoz a hash kulcs használatával. A cím generálásakor a rekord automatikusan az adott helyen tárolódik.
- Kutató: Amikor le kell kérnie a rekordot, ugyanaz a hash funkció hasznos lehet annak a vödörnek a címének lekéréséhez, ahol az adatokat tárolni kell.
- Rekord törlése: A hash funkció segítségével először lekérheti azt a rekordot, amelyet törölni szeretne. Ezután eltávolíthatja az adott címhez tartozó rekordokat a memóriából.
A statikus hashelés további részekre oszlik
- Nyissa meg a kivonatolást
- Kivonat bezárása.
Nyissa meg a kivonatolást
A Nyílt kivonatolási metódusban a régebbi felülírása helyett a következő elérhető adatblokkot használják az új rekord bevitelére. Ezt a módszert lineáris tesztelésnek is nevezik.
Például az A2 egy új rekord, amelyet be szeretne szúrni. A hash függvény a 222-es címet generálja. De azt már lefoglalja valamilyen más érték. Ezért a rendszer megkeresi a következő 501-es adatgyűjtőt, és hozzárendeli az A2-t.

Zárja be a kivonatolást
A zárt kivonatolási módszerben, amikor a gyűjtők megtelnek, ugyanahhoz a hash-hez új gyűjtőhely kerül kiosztásra, és az eredményt az előző után kapcsolja össze.
Dinamikus hashelés
A dinamikus kivonatolás olyan mechanizmust kínál, amelyben az adatgyűjtők dinamikusan és igény szerint kerülnek hozzáadásra és eltávolításra. Ebben a kivonatolásban a hash függvény nagyszámú érték létrehozásában segít.
A rendezett indexelés és a kivonatolás közötti különbség
Az alábbiakban bemutatjuk az indexelés és a kivonatolás közötti fő különbségeket
paraméterek | Rendelési indexelés | hashelés |
---|---|---|
Cím tárolása | A memóriában lévő címek az elsődleges kulcsnak nevezett kulcsérték szerint vannak rendezve | A címek mindig a kulcsérték hash függvényével jönnek létre. |
Teljesítmény | Csökkenhet, ha a hash fájlban nő az adat. Mivel rendezett formában tárolja az adatokat, ha olyan (beszúrás/törlés/frissítés) műveletek hajtanak végre, amelyek csökkentik a teljesítményét. | A kivonatolás teljesítménye akkor lesz a legjobb, ha folyamatos az adatok hozzáadása és törlése. Ha azonban az adatbázis hatalmas, akkor a hash fájl szervezése és karbantartása költségesebb lesz. |
Használ | Előnyben részesítik az adatok tartománybeli lekéréséhez – ami azt jelenti, hogy amikor egy adott tartományhoz vannak lekérési adatok, ez a módszer ideális választás. | Ez egy ideális módszer, ha egy adott rekordot szeretne lekérni a keresési kulcs alapján. Azonban csak akkor működik jól, ha a hash funkció a keresőgombon van. |
Memóriakezelés | Sok fel nem használt adatblokk lesz a törlés/frissítés művelet miatt. Ezeket az adatblokkokat nem lehet újrafelhasználni. Ezért szükséges a memória rendszeres karbantartása. | A statikus és dinamikus kivonatolási módszerekben a memória mindig kezelésre kerül. A vödör túlcsordulása is tökéletesen kezelhető a statikus hashelés kiterjesztése érdekében. |
Mi az ütközés?
A hash ütközés olyan állapot, amikor az eredményül kapott kivonatok az adatkészletben lévő két vagy több adatból hibásan képezik le ugyanazt a helyet az adatkészletben. hash asztal.
Hogyan kezeljük a Hashing ütközést?
Két technikát használhat a hash ütközések elkerülésére:
- Rehashing: Ez a módszer egy másodlagos hash függvényt hív meg, amelyet folyamatosan alkalmazunk, amíg egy üres helyet nem találunk, ahová rekordot kell helyezni.
- Láncolás: A láncolási metódus olyan elemek összekapcsolt listáját állítja össze, amelyek kulcsa ugyanazt az értéket használja. Ez a módszer minden táblapozícióhoz külön hivatkozásmezőt igényel.
Összegzésként
- In DBMS, a kivonatolás egy olyan technika, amely közvetlenül keresi a kívánt adatok helyét a lemezen, indexstruktúra használata nélkül.
- A kivonatolási módszert az adatbázisban lévő elemek indexelésére és lekérésére használják, mivel gyorsabban lehet megkeresni az adott elemet a rövidebb kivonatoló kulcs használatával, az eredeti érték helyett.
- Adatgyűjtő, Kulcs , Hash funkció, Lineáris szondázás, Kvadratikus szondázás , Hash index, Double A kivonatolás, a Bucket Overflow a kivonatolás során használt fontos terminológiák
- Kétféle kivonatolási módszer: 1) statikus kivonatolás 2) dinamikus kivonatolás
- A statikus kivonatolásnál az eredményül kapott adatgyűjtőcím mindig ugyanaz marad.
- A dinamikus kivonatolás olyan mechanizmust kínál, amelyben az adatgyűjtők dinamikusan és igény szerint kerülnek hozzáadásra és eltávolításra.
- A sorrendben az indexelési címek a memóriában egy kritikus érték szerint vannak rendezve, míg a kivonatolás során a címek mindig a kulcsérték hash függvényével generálódnak.
- A kivonatütközés olyan állapot, amikor az eredményül kapott kivonatok az adatkészletben lévő két vagy több adatból hibásan képezik le ugyanazt a helyet a hash-táblázatban.
- Az újrakivonatolás és a láncolás két módszer, amelyek segítenek elkerülni a kivonatolási ütközést.