A kulcs-érték adatbázis (key-value database, vagy key-value store), egy adattárolási paradigma, amelyet asszociatív tömbök, ma szótárként vagy hash-táblaként ismert adatszerkezetek tárolására, visszakeresésére és kezelésére terveztek. A szótárak objektumok, vagyis rekordok gyűjteményét tartalmazzák, amelyekben számos különböző mező található, amelyek mindegyike adatokat tartalmaz. Ezeket a rekordokat egy olyan kulcs segítségével tárolják és kérik le, amely egyedileg azonosítja a rekordot, és az adatok adatbázisban való megkeresésére szolgál.
A kulcs-érték adatbázisok egészen másképp működnek, mint a jobban ismert relációs adatbázisok (RDB). Az RDB-k előre definiálják az adatbázis adatszerkezetét táblázatok sorozataként, amelyek jól definiált adattípusú mezőket tartalmaznak. Az adattípusok adatbáziskezelő program számára történő elérhetővé tétele lehetővé teszi, hogy számos optimalizációt alkalmazzon. Ezzel szemben a kulcs-érték rendszerek egyetlen átlátszatlan gyűjteményként kezelik az adatokat, amely minden rekordhoz különböző mezőket tartalmazhat. Ez jelentős rugalmasságot kínál, és jobban követi a modern koncepciókat, mint például az objektumorientált programozás. A legtöbb RDB-vel ellentétben a kulcs-érték adatbázisokban az opcionális értékeket nem helyettesítik helyőrzők vagy bemeneti paraméterek, és ennek eredményeként a kulcs-érték adatbázisok sokkal kevesebb memóriát használnak ugyanazon adatok tárolására. Ez bizonyos típusú munkaterheléseknél jelentős teljesítménynövekedést eredményezhet.
A teljesítmény, a szabványosítás hiánya és egyéb problémák miatt a kulcs-érték rendszerek felhasználása évekig réspiaci volt, de a 2010 utáni gyors áttérés a felhőalapú számítástechnikára a tágabb NoSQL mozgalom részeként reneszánszukat eredményezte. Néhány gráfadatbázis, mint például az ArangoDB, belsőleg is kulcs-érték adatbázis, elsődleges adattípusként hozzáadva a rekordok közötti kapcsolatok (pointerek) fogalmát.
Definíció A kulcs-érték adatbázisok különböznek a jobban ismert relációs adatbázisoktól (RDB). Az RDB-k előre definiálják az adatbázis adatszerkezetét táblázatok sorozataként, amelyek jól definiált adattípusú mezőket tartalmaznak. Az adattípusok adatbáziskezelő program számára történő elérhetővé tétele lehetővé teszi, hogy különféle optimalizációkat alkalmazzon. Ezzel szemben a kulcs-érték rendszerek az értéket átlátszatlannak tekintik az adatbázis számára, és jellemzően csak egyszerű műveleteket támogatnak, például egy érték tárolását, lekérését, frissítését és törlését a kulcsa alapján. Ez jelentős rugalmasságot kínál, és alkalmassá teszi az ilyen rendszereket az alacsony késleltetésű, nagy áteresztőképességű, közvetlen kulcskeresések által uralt munkaterhelésekhez, de kevésbé alkalmasak olyan alkalmazásokhoz, amelyek összetett lekérdezéseket vagy rekordok közötti explicit kapcsolatokat igényelnek. Az átlátszatlanság azt jelenti, hogy a kulcsokra nem vonatkoznak keresési feltételek, relációk vagy hivatkozási integritási korlátozások. Az átlátszatlanság az, ami megkülönbözteti a kulcs-érték adatbázis-kezelőket a dokumentum-adatbázisoktól. Egy DBMS képes értelmezni egy rekord szerkezetét, míg egy kulcs-érték adatbázis-kezelő minden értéket átlátszatlan objektumként kezel, amelyet teljes egészében csak a hozzá tartozó kulcs segítségével lehet lekérdezni, ahelyett, hogy az egyes mezők alapján kérdezne le és kérne le. Ez a különbségtétel akkor is fennáll, ha egy dokumentum adatbázis-kezelő egy azonosító mezőt biztosít, amely lehetővé teszi a dokumentumok lekérdezését ugyanúgy, mint egy kulcs-érték adatbázis-kezelő. Egyes kulcs-érték adatbázis-kezelők támogatják az összetett értéktípusokat; például a Redis támogatja a listákat.
Típusok és példák A kulcs-érték adatbázisok a végső konzisztenciától a szerializálhatóságig terjedő konzisztencia modelleket használhatják. Néhány támogatja a kulcsok sorrendbe állítását.
Néhány az adatokat memóriában (RAM) tárolja, míg mások szilárdtestalapú meghajtókat vagy forgó lemezeket használnak.
Minden entitás (rekord) kulcs-érték párok halmaza. Egy kulcs több összetevőből áll, amelyeket rendezett listaként adnak meg. A főkulcs (elsődleges) azonosítja a rekordot, és a kulcs vezető összetevőiből áll. A további összetevőket alkulcsoknak (másodlagos) nevezzük. Ez a szervezés hasonló a fájlrendszer könyvtárútvonal-meghatározásához (pl. /Fő/al1/al2/). A kulcs-érték pár „érték” része egyszerűen egy értelmezetlen, tetszőleges hosszúságú bájt-lánc.Oracle NoSQL Database.
A Unix rendszer dbm-et (adatbázis-kezelő) biztosít, ami egy 1979-es könyvtár, amelyet eredetileg Ken Thompson írt. Microsoft Windowsra is portolták, olyan programozási nyelveken keresztül, mint a Perl for Win32. A dbm egyetlen kulcs (elsődleges kulcs) segítségével kezeli az asszociatív tömböket tetszőleges adatokból. A modern implementációk közé tartozik az sdbm, a GNU dbm és a Berkeley DB. Bár a dbm megelőzi a NoSQL koncepcióját, és ritkán említik a modern diskurzusban, számos szoftver használja.
A kulcs-érték adatbázisok egy újabb példája a RocksDB, amelyet más adatbázis-kezelő rendszerek, például az ArangoDB tárolómotorjaként használnak. További példák az Aerospike, az Amazon DynamoDB, a Memcached, a Redis és a ScyllaDB.
Kapcsolódó szócikkek Adatbázis Adatmodell Big data Adatelemzés Riak
Megjegyzések
Jegyzetek
Fordítás
Kategória:Informatika Kategória:Számítógép-programozás Kategória:Adatbázis-kezelés