dinamikus Database
Tartalom.
Változások a verzió.
A teljes verzió E szakasz meghatározása a következő: versiya.podversiya.vypusk.
Adatbázis beágyazott alkalmazások számára.
Az adatbázishoz való hozzáférés bejegyzések végezzük a kulcsot. A kulcs a gyűjtemény egyes adatmezőket, az értéket termelt és minden művelet: keresés rögzítésére, annak hozzáadása, törlése és mások. Egy adatbázis több mint egy kulcs, amely hozzáférést biztosít a különböző logikai utakat. Egyes adatbázisok támogatják a lehetőségét duplikált kulcs, amikor néhány bejegyzések azonos értéke minden kulcsfontosságú területeken. Azonban dolgozik ilyen adatok elég kényelmetlen és bátorítani kell őket, hogy csak egyedi kulcsokat. Ha az aktuális mező nem elég ahhoz, hogy formában egy ilyen kulcs, akkor ajánlatos hozzáadni egy olyan területen, amely egy egyedi kulcsot.
Tekintsük keresési kulcs bevitellel, kiegészítve egy új bejegyzést, annak eltávolítását, majd transzfer a későbbi vagy korábbi, a fő belépési eljárást alapadatok műveleteket. Jellemzésére végrehajtási idejét az alapvető műveletek használt paraméter O (O nagy), amely jellemzi a relatív sorrendje a szükséges számú elemi gépi műveletek számától függően az adatbázis bejegyzések (mérete). Így, O (N) jelzi, hogy a végrehajtása az alapvető műveletek arányában az alap, és O (logN) azt jelzi, hogy a művelet növeli csak arányosan logaritmusának száma adatbázis bejegyzések.
Rendezetlen lista.
A rendezetlen listát adatok tárolása kézhezvételét nélkül válogatás. Abban az esetben, törlését rekord a helyén egy új bejegyzést tetszőleges kulcs érték lehet elhelyezni.
Időbeli jellemzőit és algoritmusok egy rendezetlen lista műveletek:
Így, az összes alapvető műveleteket az adatok elhelyezett rendezetlen listát, elég nehéz - számú elemi szükséges műveletek arányosan növekszik a méret a bázis. Ugyanakkor az egyszerűség szoftver végrehajtását egy ilyen lista indokolja a használatát, ha az adatbázis-bejegyzések száma nem haladja meg a mintegy száz. Meg kell jegyezni, hogy a munkát a rendezetlen lista algoritmikusan hasonló alkalmazott feltételes nyilatkozatok, ha mást, ha a szelektív hozzáférés közös adatai.
Egy rendezett tömb egy korlátozott körét értékeket.
Időbeli jellemzőit és algoritmusok rendelt tömb műveletek korlátozott értéktartomány:
A relatív sorrendje végrehajtási idő
Algoritmus végrehajtása alapvető működését
Egy rendezett adatokat.
Egy rendezett tömb egyik klasszikus adatbázis erre és nem szab korlátokat a hang számos kulcsfontosságú értékek vagy a számos különböző kulcsokat. Két megvalósítások egy adatbázis egy ilyen tömb szemszögéből kulcsfontosságú területeken. Az első módszer szerint racionalizására a teljes adatbázis az elsődleges kulcsot, amelyet egy vagy több adatmezőket.
Tovább végrehajtása különválasztását adatbázisának nem rendezett test, és egy vagy több kulcsfontosságú megrendelt tömbök. Ez a megközelítés lehetővé teszi, hogy hozzon létre egy sor különböző kulcsokat. Ezen túlmenően, a csökkentett költségek bejegyzéseket, ha a méret nem elég nagy legfontosabb adatokat. A megoldás hátránya, hogy szükség van kiegészítik egymást fő belépési mutató, valamint a kettős kulcs mezők adatbázisba. Ha ez a párhuzamos nem hajtják végre, akkor az átfogó felvételi szerelvény bevezetését igényelné fordított pointert az adatokat a megfelelő bejegyzés kulcsokat.
Időbeli jellemzőit és algoritmusok rendezett adathalmaz műveleteket:
Közvetlen felvétel minta.
Keresés a kívánt elemet az adatbázisban végzi felező gomb tömb vagy maga az adatbázis, ha van egy elsődleges kulcsot (bináris keresési algoritmust). Felhívjuk figyelmét, hogy a tartózkodási idő bármilyen adatbázis rekord garantált logaritmikus függés a mérete O (logN). Ez lehetővé teszi, hogy előre a maximális idő hozzáférést nyilvántartások, ami jelentős előny a beágyazott alkalmazások. Nem véletlen bináris kereső algoritmus szerepel számos szabványos programozási nyelv könyvtárban.
Azonban a működését hozzáadását és törlését bejegyzéseket kapcsolódó szükségességét razdvizhki vagy szorító tömb, ezért meglehetősen nehéz. A gyakorlati határt az adatbázis mérete, végre egy rendezett tömbben, nagyságrendileg tízezer bejegyzés, ami elegendő a legtöbb beágyazott alkalmazások. Azokban az esetekben, amikor meghatározzák a költségmegtakarítás válik a működés hozzáadása / eltávolítása, célszerű megvizsgálni a hash-alapú döntési táblázatokat, adatszerkezetek, mint a fák, vagy speciális listákat.
Szoftver végrehajtása rendezetlen listát.
A program azt mutatja egyetemes végrehajtását három alapvető műveletek: keresés, hozzáadhat és törléséhez. Mint egy rendezetlen lista egy minimalista módon megszervezni egy adatbázisban tárolja célszerű használni egy sor fix hosszúságú. Ezen túlmenően, az algoritmusok maguk gyakran végre egy speciális módon. Így a kiválasztott kulcs értékét és ellenőrzés a párhuzamos gyakran használják, mint egy szabad eleme a tömb és a zászlót sem lehet végezni.
Néhány fordító értelmezni a típusokat, amelyek nem tartalmaznak címszó alá, az ingyenes jel. Ez vegyes érzelmek, hanem azért, mert az a tény, ez a helyzet, akkor tanácsos alkalmazni egyértelmű meghatározása a jel (aláírt vagy hitelesített).
search_object funkció (obj) megkeresi az adatbázis rekord kulcs értékét. Keresési algoritmus - átfogó vizsgálat [so_4]. Minden aktív (lefoglalt) bejegyzés [so_5] összehasonlítja a legfontosabb [so_6], amely működni véletlen pozvraschaet nem negatív szám, amely meghatározza az írási tömböt. mínusz 1 [so_9] visszaadja a sikertelen keresés befejeződött.
add_object funkció (obj) bejegyzést hoz létre az adatbázist. A vezérlőgombok egyedi erők termelni átfogó vizsgálat [ao_5]. Miután érzékelte az egyik az aktív bejegyzések illő kulcs értéket ad vissza a párhuzamos error [ao_9]. Belépő az első észlelési hely van rögzítve egy új adatbázis rekord [ao_6, ao_7]. Ha ilyen nem volt az adatbázisban ad vissza túlcsordulás hiba [ao_12]. Egyébként egy új bejegyzést [ao_13, ao_14] kerül a tér észlelt.
delete_object funkció (obj) jelzi a megfelelő gombot adatbázis rekord [do_6], mint a szabad [do_7]. Amikor a kívánt bejegyzést aktívak közül [do_5] nem, akkor a visszatérési „rekord nem található” [do_12] hibakódot.
megjelölve nem aktív (ingyenes) inicializálásakor az adatbázis minden rekordot [id_4].
Egy rendezett elsődleges kulcsokat.
A bevezetési, a terminális komplement adatbázisrekordok amelyek tartalmazzák a minimum és maximum értékek az összes kulcsfontosságú területeken, és rendre az első és utolsó eleme egy rendezett tömbben található. Ez lehetővé teszi, hogy egyszerűsítse és optimalizálja dolgozó Scan kriptográfiai algoritmus alkalmazásával, távol tartják magukat vége bejegyzések megközelíthetetlen. Továbbá lehetőség van arra, hogy adjunk, hogy az alap munkaajánlatok is tartalmaz határértékeket a legfontosabb területeken. Minden algoritmusok dolgoznak az adatbázis szükség kötelező jelenléte a terminál rekordokat. Határozata, amely az ilyen bejegyzések, nagyon hasznos lehet, ha a klasszikus adatbázisok.
A program olyan funkciókat a szabványos C könyvtár miatt
Néhány fordító értelmezni a típusokat, amelyek nem tartalmaznak címszó alá, az ingyenes jel. Ez vegyes érzelmek, hanem azért, mert az a tény, ez a helyzet, akkor tanácsos alkalmazni egyértelmű meghatározása a jel (aláírt vagy hitelesített).
key_object funkció (obj1, obj2) meghatározza az arány a két kulcsfontosságú bázis rekordok. Először összehasonlítjuk az első kulcs mezőben [ko_2, ko_3], amelynek magasabb a prioritása. Ha ez a mező megegyezik a két kulcsot, összehasonlítja a második mezőben [ko_4, ko_5]. Az ilyen összehasonlítások eredményei, a döntés a kapcsolat kulcsok (több, kevesebb, egyenlő) a két adatbázis bejegyzéseivel.
search_object funkció (obj) végez egy bináris keresést bázis belépési kulcs értéke az objektumban lévő obj. amely egy mutató a bemeneti paraméter a függvény. Ha úgy találja, a bázis a szükséges adatok rögzítésére vissza nem negatív szám - pozíció (offset) tekintetében a nyilvántartás adatbázis [so_12]. Ha ilyen nem található, akkor a függvény mínusz 1 [so_14].
insert_object funkció (obj, pos) beilleszt egy új rekordot, amelynek a helyzete (offset az alap) által meghatározott pos. Ehhez, kihúzható bázis: a növekménye számának maximális rögzítési [io_4] és ciklus fel a bázis a tömb [io_5. io_7]. Ezután a megüresedett pozícióját az új bejegyzést írt [io_8]. Ez kellene hozzáadni razdvizhki felvételt okoz arányos kapcsolat O (N) a relatív műveletek száma a bázis méretű.
add_object (obj) függvény egy sor olyan műveletek bejegyzések hozzáadását az adatbázishoz. Ha az előzőleg kiválasztott memória tömb már megtelt [ao_6]. tett kérésére további memória [ao_8. ao_10]. Paraméter INC_OBJECTS. meghatározva a növekmény a bázis, mert tele mérete választjuk, hogy fellebbezni a memória kiosztás funkció [ao_10] nem volt túl gyakori (ez egy igen költséges művelet), és másfelől, az alap nem lett volna túl sok üres rekordot (a számot tudott eléri INC_OBJECTS-1). Memory Error hozzáadásával is előfordulhat, mint a sikertelen befejezését a kérelmet [ao_10] és túllépése esetén a maximális mérete az alap (nem feltétele [ao_9] nem teljesül).
Ha az összes szükséges műveleteket többletforrásokat memória sikeresen befejeződött, előállított bináris keresési tér [ao_18. ao_26], ahol az új rekordot kell beilleszteni. Ebben az ellenőrzött lehetséges párhuzamos a kulcsot, és a hiba [ao_25] kód vissza, amikor ilyen kimutatásra. Ha sikeres, találni egy új felvétel helyzetben készült a reklám [ao_27]. Ennek függvényében a keresési rekordok kulcs az algoritmus alkalmas az esetben, ha az adatbázis tartalmazza a felvétel végén, és jelenlétük elengedhetetlen.
delete_object (obj) függvény eltávolítja az adatbázisból rekord a legfontosabb érték az objektumban lévő obj. egy mutatót, amely telt, mint egy bemeneti paramétere. Ha a kívánt bejegyzés, akkor készül enyhe elmozdulás bázis, törölni ezt a bejegyzést [ciklus do_6], és a maximális bejegyzések száma eggyel csökken [do_9].
Egy rendezett idegen kulcsok.
A bevezetési, használt adatbázis tömbök kívül külső gombok véget tartalmazó bejegyzések maximális és minimális értékei minden területen, hogy az első és utolsó eleme egy rendezett tömb gombot. Ez lehetővé teszi, hogy egyszerűsítse és optimalizálja a keresési titkosítási algoritmus, távol tartják magukat a végén bejegyzések megközelíthetetlen. Továbbá lehetőség van arra, hogy adjunk, hogy az alap munkaajánlatok is tartalmaz határértékeket a legfontosabb területeken. Minden algoritmusok dolgoznak az adatbázis szükség kötelező jelenléte a terminál rekordokat. Határozata, amely az ilyen bejegyzések, nagyon hasznos lehet, ha a klasszikus adatbázisok.
A program olyan funkciókat a szabványos C könyvtár miatt
Néhány fordító értelmezni a típusokat, amelyek nem tartalmaznak címszó alá, az ingyenes jel. Ez vegyes érzelmek, hanem azért, mert az a tény, ez a helyzet, akkor tanácsos alkalmazni egyértelmű meghatározása a jel (aláírt vagy hitelesített).
key_1_compare funkció (K1, K2) meghatározza az arány az első bázis kulcsokat. Először összehasonlítjuk az első kulcs mezőben [k1c_2, k1c_3], amelynek magasabb a prioritása. Ha ez a mező megegyezik a két kulcsot, összehasonlítja a második mezőben [k1c_4, k1c_5]. Az ilyen összehasonlítások eredményei, a döntés a kapcsolat kulcsok (több, kevesebb egyenlő).
search_object_k1 funkció (kulcs) végrehajtja a bináris keresés rekordok kulcs értéke az első kulcsot. amely egy mutató a bemeneti paraméter a függvény. Észlelésekor egy nem-negatív szám visszatért a bázisra az írási kulcsok - a pozíció (offset), amely megfelel az alaptest körüli rögzítés kezdési [so1_12]. Ha a megfelelő kulcsot rekord nem található, akkor a függvény mínusz 1 [so1_14].
search_object_k2 funkció (kulcs) végrehajtja a bináris keresés rekordok kulcs értéke a második kulcsot. amely egy mutató a bemeneti paraméter a függvény. Észlelésekor egy nem-negatív szám visszatért a bázisra az írási kulcsok - a pozíció (offset), amely megfelel az alaptest körüli rögzítés kezdési [so2_10]. Ha a megfelelő kulcsot rekord nem található, akkor a függvény mínusz 1 [so2_12]. Mivel a második kompozit kulcsot nem használjuk közvetlenül összehasonlítani műveletek a kulcs mező értékek [so2_8, so2_9].
add_object (obj) függvény egy sor olyan műveletek bejegyzések hozzáadását az adatbázishoz. Ha a memória kiosztott tömbök előzőleg megtöltött ([ao_8] az alaptest, [ao_20] gomb tömbök). tett kérésére további memória [ao_10. ao_12] az alaptest és a [ao_23. ao_26] gombot. Paraméter INC_OBJECTS. megadja a növekmény mérete bázis tömböket a tölteléket úgy választjuk, hogy fellebbezni memóriafoglalási funkció [ao_12, ao_25, ao_26] nem túl gyakori (ez egy igen költséges művelet), és másfelől, az adatbázis nem marad túl sok üres bejegyzéseket (a szám elérheti INC_OBJECTS-1). Memória hiba hozzáadásával is előfordulhat, mint a sikertelen befejezését kéri, és ha az meghaladja a maximális mérete az alap (nem a feltételeket [ao_11, ao_24]).
Ha az összes szükséges műveleteket többletforrásokat memória sikeresen befejeződött, a bináris keresést végezni betoldások kulcs feljegyzések: [ao_35. ao_45] az első kulcsot és [ao_46. ao_54] a második. Ugyanakkor vezérli az esetleges párhuzamos az egyes gombot, és a hibakód akkor kap, ha ilyen érzékelés [ao_44] - Az első gomb, [ao_53] második. A sikeres befejezése az összes vizsgálatokat kiegészíti egy új bejegyzés végén az alaptest [ao_56] és olyan megfelelő mutatók a gombok [ao_57, ao_58]. Ezután egy adatbázis kulcsok kihúzható [ao_60, ao_64] és ők hoztak a saját konkrét helyzetében [ao_63, ao_67]. Ennek függvényében a keresési rekordok kulcs az algoritmus alkalmas az esetben, ha az adatbázis tartalmazza a felvétel végén, és jelenlétük elengedhetetlen.
delete_object funkció (obj) eltávolítja az adatbázisból rekord a kulcs értékek az objektumban lévő obj. egy mutatót, amely telt, mint egy bemeneti paramétere. Belépni kérik függetlenül egyes gombot [do_12, do_26]. Ha megállapítást nyer, mindkét tömbök kulcsok tették enyhe elmozdulás: ciklus [do_37] törli az első kulcsot, és az [do_40] második. Ennek megfelelően, a maximális számú kulcs adatbázis bejegyzés értéke eggyel csökken [do_43].
Azon, hogy nem lenne lehetséges eltávolításának befejezéséhez - a megfelelő bejegyzés már elérhető, ha keressük meg bármelyik gombot. De ebben az esetben, az alaptest fog felhalmozódni nem működik jegyzetek, ezért érdemes arra, hogy törölje őket. Ez egy meglehetősen időigényes művelet. Először a váltás alapja [do_44] test (a helyét a törölt rekord került rögzítésre [do_36]). Ezután, hogy fenntartsák az összhang a legfontosabb hivatkozások, hogy végre a megfelelő kiigazítás (csökkentő) mutatók utalva alaptesthez jegyzetek amelyeket után elhelyezett távoli [do_48]. Így a súlyossága a teljes eltávolítását a felvétel nagyon magas. Azonban az alkalmazás, ez a művelet általában a legritkább és fokozott mennyiségű számítási megtesz elég lehet összeegyeztetni.