Avainarvotietokanta - Key–value database

Image
Babbatin analyyttiselle moottorille ehdotettu taulukkokortti, joka näyttää avain-arvo-parin, tässä tapauksessa numeron ja sen kymmenen logaritmin

Avain-arvo tietokannasta , tai avain-arvo tallentaa , on tietojen tallennus paradigman suunniteltu tallentamaan, hakemiseen, ja hallinta hakurakenne , ja datarakenne yleisemmin tunnetaan nykyään kuin sanakirjan tai hash-taulukkoon . Sanakirjat sisältävät kokoelma on esineitä , tai kirjaa , joka puolestaan on monia eri aloja niiden sisällä, joista kukin sisältää dataa. Nämä tietueet tallennetaan ja haetaan käyttämällä avainta , joka yksilöi tietueen yksilöllisesti, ja sitä käytetään tietojen löytämiseen tietokannasta .

Image
Taulukko, joka näyttää eri avaimiin liittyvät eri muotoillut data -arvot

Avainarvotietokannat toimivat hyvin eri tavalla kuin paremmin tunnetut relaatiotietokannat (RDB). RDB: t määrittävät tietokannan tietorakenteen ennalta sarjoiksi taulukoita, jotka sisältävät kenttiä, joissa on hyvin määritellyt tietotyypit . Tietotyyppien paljastaminen tietokantaohjelmalle antaa sille mahdollisuuden tehdä useita optimointeja. Sitä vastoin avainarvojärjestelmät käsittelevät tietoja yhtenä läpinäkymättömänä kokoelmana, jossa voi olla eri kentät jokaiselle tietueelle. Tämä tarjoaa huomattavaa joustavuutta ja seuraa tarkemmin nykyaikaisia ​​käsitteitä, kuten olio-ohjelmointia . Koska valinnaisia ​​arvoja eivät edusta paikkamerkit tai syöttöparametrit, kuten useimmissa RDB: issä, avainarvotietokannat käyttävät usein paljon vähemmän muistia saman tietokannan tallentamiseen, mikä voi johtaa suuriin suorituskyvyn parannuksiin tietyissä työkuormissa.

Suorituskyky, standardoinnin puute ja muut asiat rajoittivat avainarvojärjestelmät kapeisiin käyttökohteisiin monien vuosien ajan, mutta nopea siirtyminen pilvipalveluihin vuoden 2010 jälkeen on johtanut renessanssiin osana laajempaa NoSQL -liikettä. Jotkin kuvaajatietokannat , kuten ArangoDB , ovat myös sisäisesti avainarvotietokantoja, jotka lisäävät tietueiden välisten suhteiden ( osoittimien ) käsitteen ensimmäisen luokan tietotyypiksi.

Tyypit ja merkittäviä esimerkkejä

Key-arvo tietokannat voivat käyttää johdonmukaisuutta malleja aina lopulta yhdenmukaisuus ja serializability . Jotkut tukevat avainten tilaamista.

Jotkut säilyttävät tietoja muistissa (RAM) , kun taas toiset käyttävät SSD-asemia tai pyöriviä levyjä .

Jokainen entiteetti (tietue) on joukko avain -arvo -pareja. Avaimessa on useita osia, jotka on määritetty tilattuksi luetteloksi. Pääavain tunnistaa tietueen ja koostuu avaimen johtavista osista. Seuraavia komponentteja kutsutaan pieniksi avaimiksi. Tämä organisaatio on samanlainen kuin hakemistopolun määritys tiedostojärjestelmässä (esim./Major/minor1/minor2/). Avain -arvo -parin "arvo" -osa on yksinkertaisesti mielivaltaisen pituinen tavujen tulkitsematon merkkijono.

Unix -järjestelmä tarjoaa dbm (tietokannan hallinta), joka on Ken Thompsonin alunperin kirjoittama kirjasto vuonna 1979 . Se on myös siirretty Microsoft Windowsiin ohjelmointikielillä, kuten Perl for Win32 . Dbm hallinnoi mielivaltaisen datan assosiatiivisia matriiseja käyttämällä yhtä avainta (ensisijaista avainta). Nykyaikaisia ​​toteutuksia ovat Berkeley DB , sdbm ja GNU dbm . Vaikka dbm edeltää NoSQL -käsitettä ja sitä mainitaan harvoin nykyaikaisessa keskustelussa, sitä käyttävät monet ohjelmistot.

Palveluntarjoaja Lisenssi Lopulta johdonmukainen Tilattu RAM Levy
Aerospike AGPL Joo Joo
Apache Ignite AL2 Joo Joo
ArangoDB AL2 Joo Joo
Berkeley DB AGPL , Proprietary Joo
CDB Julkinen verkkotunnus
Clusterpoint -tietokantapalvelin Omistettu
Couchbase -palvelin Omistettu
Dynamo Omistettu Joo
jne AL2 Joo
SäätiöDB AL2 Joo
GigaSpaces AL2 , oma Joo
GridGain -järjestelmät Omistettu Joo
GT.M AGPL , Proprietary
Hazelcast AL2 , oma Joo
Hibari AL2
IBM Informix C-ISAM Omistettu Joo
immudb AL2 Joo
InfinityDB Omistettu Joo
Kvrocks BSD3 Joo
KeyDB BSD3
Näppäimistö Omistettu
LevelDB BSD3 Joo
LMDB OpenLDAP (BSD: n kaltainen) Joo Joo
muistettu BSD3 Joo
MemcacheDB BSD Joo
Microsoft SQL Server Omistettu Joo Joo
NoSQLz freeware
Johdonmukaisuus Omistettu Joo
Oracle NoSQL -tietokanta AL2 , oma Joo
Projekti Voldemort AL2 Joo
Redis BSD3 Joo
Riak AL2 Joo
RocksDB AL2 tai GPL 2 Joo
Scylla AGPL , Proprietary
Tarantool BSD Joo
Tkrzw AL2 Joo
Venti GPLv2 , BSD Joo
OpenLink Virtuoso GPLv2 , oma Joo Joo

Katso myös

Viitteet