Avainarvotietokanta - Key–value database
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 .
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
- Suuri data
- Tietojen analysointi
- Hajautettu tietovarasto
- Asiakirjalähtöinen tietokanta
- Monen mallin tietokanta
- Tuple tilaa