Indexek - számítástechnika, programozás
Ez fog összpontosítani algoritmusok és adatszerkezetek, ezek szervezése és támogatása. A kifejezés index ezután kizárólag az alábbiak kijelölésének további keresési és optimalizálási szerkezetek. A fő nyelve kiválasztott példák MUMPS nyelvet. Ha lehetséges, használjon strandartny szintaxist, néhány kivételes esetben, a olvashatóság alkalmazni gyorsítótár Object Script - bővítése. Használatuk korlátozott, és lehetővé teszi egy alternatív helyettesítésére az ekvivalens kifejezések más nyelvjárásokban MUMPS.
Indexek - az adatstruktúra úgy van elrendezve, párhuzamosan és karbantartott szinkronban fő adatstruktúrák, és amelynek a fő célja a fenntartása adatstruktúrák orientált, hogy gyorsítsa a keresést, vagy optimalizálás tárolására fő adatok. Itt mestertől adat az adatok tárolása és a munka, hogy a fő célja az adatbázis rendszer.
Amikor a törzsadatok adatbázis rendszer elvégzi behelyezés, keresés, törlés, és a változás a törzsadatok tömb. Ha további index struktúrák párhuzamos rendszer frissíti az indexet szerkezetet, amikor a változó (beszúrás, frissítés és törlés) alapadatok és bizonyos esetekben képes használni az indexszerkezetre összpontosított keresési adatokat. Ez a lehetőség jellemzőitől függ az index.
Mint látható a fenti, bevezetése indexek adatbázisban felnagyítja a művelet változásaival kapcsolatos adatok, de felgyorsítja kapcsolódó műveletek a keresést, és a szokásos módon, ennek következményeként, az adatok minta.
Index szerkezetek önmagukban általában nem szükséges a működéséhez az adatbázis-rendszer. Használatuk határozza meg a programozó vagy rendszergazda.
A legtöbb közös adatbázis rendszerek támogatják index struktúrák és azok használatáról végzik automatikus módon. Ebben a munkában leszünk struktúrák és algoritmusok, hogy lehet használni az automatikus és teljes mértékben használja bármilyen korlátozások az adatbázis-rendszer. Körülbelül mintha részben végrehajtott belső mechanizmusokat egy nagy rendszer, de egy kissé egyszerűsített változata.
Egy olyan általános mechanizmus támogatására az index.
Az index szerkezete állapotuk meg kell felelnie az állam az indexelt adat. Ezért az index frissítési művelet általában két csoportra oszthatók - a dinamikus frissítés indexelő struktúrák nyilvántartások frissítésével és a tömeges művelet törlésére / építése a mutatók.
Ezután úgy az adatok húrok, rendezett egyszerűsége az alábbiak szerint:
Kapunk rekord ID növekmény csomópont ^ Adatok
felvétel a tárolt érték a csomópont ^ adatok (ID)
rekord áll mezők tagolt
Az index rekordok tárolódnak a globális ^ Index
A felvétel vállalnak területeken - ez a szám, szín, mennyiség
a teljes szerkezetét a rekord: ^ adatok (id) = ábra
Dynamic Update indexek műveleteket lehet építeni formájában hívásrekord és frissítési műveleteket megelőzi a tényleges elsődleges felvétel megőrzését vagy követni, vagy keretbe. Például:
; egyszerű objektum perzisztencia
i „+ $ g (id) s id = $ i (^ Data)
; frissíti az indexet mentés előtt
; keretező frissítése indexek mentésekor
i „+ $ g (id) s id = $ i (^ Data)
Itt DeletIndices törli az index bejegyzés erre az épületre, és InsertIndices létrehozza azokat. Ebben az esetben arra utal, hogy egy egyszerű formátumú iratok tárolására - egy sorban, amely úgy értelmezendő, mint akár egy string vagy egy elválasztott listában. Annak ellenére, hogy a három módszer végső soron ugyanahhoz az eredményhez vezet, van különbség a kettő között, hogy milyen jól fog futni a verseny (szimultán több folyamatok) az adatokhoz való hozzáférés és az indexek. Abban az esetben, tárolására csak olyan adatokat kérdés szinte nincs szükség, ahogy atomi művelet. Abban az esetben, párhuzamos struktúrák indexekben eljön a pillanat, az államok között, ahol nincs rekord, de van olyan index, az index, de nincs nyoma. Ez a probléma általában megoldható a használata zárak. Működés új rekordot állított érték kétoldalt csapatok
És belül funkciók törlése / beszúrni indexbejegyzéssel is ki szegélyező a zárat. Elérhetőség zárak különösen kritikusak esetében kódfuttatásra keretében a tranzakciók és a lehetőséget, hogy a művelet trollback.
A különbség az index újjáépítése mód, nevezetesen, hogy mielőtt megjelenik az adatbázis - index rekord vagy írására, ez lehetővé teszi, hogy építsenek egy bizonyos értelemben, öngyógyító rendszert, amely képes lesz vosstanovitsya meghibásodása esetén az adatok írási sorban. Ha az index a korábban épített, letöltése közben az index adatok mintavételi funkció meghatározhatja, hogy az index bejegyzés létezik, de ez nem felel meg az adatsort. Abban az esetben, zárak, a frissítés művelet bejegyzések mintát veszünk a funkció akkor is megpróbál zár ugyanazt a rekordot, és ha a zár volt sikeres, de nincs felvétel, vagy az állam nem egyezik az index értéke, ez azt jelenti, hogy a legtöbb adatsorban írási művelet sikertelen volt, és legyen könnyű eltávolítani index rekord. A mechanizmus meglehetősen nehézkes, de olyan helyzetben, amikor a hatékonyság miatt nem akarja használni az ügylet hasznos lehet. Kérdés index kiválasztási stratégia frissítéseket, amikor nyilvántartások frissítésével elhagyja a programozó.
Működés újjáépíteni az index csökken a eltávolítása az összes indexek és a keresés az összes rendelkezésre álló adatot rögzíti és az index felépítése bejegyzéseket minden rendelkezésre álló adat rekordokat. Úgy véljük, hogy DeleteIndex funkció törli az összes indextételeihez egy index. Majd újjáépíteni az index nézhet
s id = "" f s id = $ o (^ adatok (ID), ObjValue) q: id = "" d