Una base de datos de clave-valor , o almacén de clave-valor , es un paradigma de almacenamiento de datos diseñado para almacenar, recuperar y administrar matrices asociativas , y una estructura de datos más comúnmente conocida hoy como diccionario o tabla hash . Los diccionarios contienen una colección de objetos , o registros , que a su vez tienen muchos campos diferentes dentro de ellos, cada uno con datos. Estos registros se almacenan y recuperan mediante una clave que identifica de forma exclusiva el registro y se utiliza para encontrar los datos dentro de la base de datos .
Las bases de datos de valores clave funcionan de una manera muy diferente a las bases de datos relacionales más conocidas (RDB). Los RDB predefinen la estructura de datos en la base de datos como una serie de tablas que contienen campos con tipos de datos bien definidos . Exponer los tipos de datos al programa de base de datos le permite aplicar una serie de optimizaciones. Por el contrario, los sistemas clave-valor tratan los datos como una sola colección opaca, que puede tener diferentes campos para cada registro. Esto ofrece una flexibilidad considerable y sigue más de cerca conceptos modernos como la programación orientada a objetos . Debido a que los valores opcionales no están representados por marcadores de posición o parámetros de entrada, como en la mayoría de las RDB, las bases de datos de valor clave a menudo usan mucha menos memoria para almacenar la misma base de datos, lo que puede generar grandes ganancias de rendimiento en ciertas cargas de trabajo. [ cita requerida ]
El rendimiento, la falta de estandarización y otros problemas limitaron los sistemas de valor clave a usos específicos durante muchos años, pero el rápido paso a la computación en la nube después de 2010 ha llevado a un renacimiento como parte del movimiento NoSQL más amplio . Algunas bases de datos de gráficos , como ArangoDB , [1] también son bases de datos de valor clave internamente, agregando el concepto de las relaciones ( punteros ) entre registros como un tipo de datos de primera clase.
Tipos y ejemplos notables
Las bases de datos de valores clave pueden utilizar modelos de coherencia que van desde la coherencia eventual hasta la serialización . Algunos admiten el pedido de llaves.
Algunos mantienen datos en la memoria (RAM) , mientras que otros emplean unidades de estado sólido o discos giratorios .
Cada entidad (registro) es un conjunto de pares clave-valor. Una clave tiene varios componentes, especificados como una lista ordenada. La clave principal identifica el registro y consta de los componentes principales de la clave. Los componentes siguientes se denominan claves menores. Esta organización es similar a una especificación de ruta de directorio en un sistema de archivos (por ejemplo, / Major / minor1 / minor2 /). La parte de "valor" del par clave-valor es simplemente una cadena de bytes no interpretada de longitud arbitraria. [2]
El sistema Unix proporciona dbm (administrador de bases de datos), que es una biblioteca de 1979 escrita originalmente por Ken Thompson . También está adaptado a Microsoft Windows , proporcionado a través de lenguajes de programación como Perl para Win32 . El dbm gestiona matrices asociativas de datos arbitrarios mediante el uso de una sola clave (una clave primaria). Las implementaciones modernas incluyen Berkeley DB , sdbm y GNU dbm . Aunque dbm precede al concepto de NoSQL y rara vez se menciona en el discurso moderno, es utilizado por muchas piezas de software.
Proveedor | Licencia | Eventualmente consistente | Ordenado | RAM | Disco |
---|---|---|---|---|---|
Aerospike | AGPL | sí | sí | ||
Apache Ignite | AL2 | sí | sí | ||
ArangoDB | AL2 | sí | sí | ||
Berkeley DB | AGPL , propietario | sí | |||
CDB | Dominio publico | ||||
Servidor de base de datos de Clusterpoint | Propiedad | ||||
Servidor Couchbase | Propiedad | ||||
Dinamo | Propiedad | sí | |||
etcd | AL2 | sí | |||
FoundationDB | AL2 | sí | |||
GigaSpaces | AL2 , patentado | sí | |||
Sistemas GridGain | Propiedad | sí | |||
GT.M [3] | AGPL , propietario | ||||
Hazelcast | AL2 , patentado | sí | |||
Hibari | AL2 | ||||
IBM Informix C-ISAM | Propiedad | sí | |||
immudb [4] | AL2 | sí | |||
InfinityDB | Propiedad | sí | |||
Kvrocks | BSD3 | sí | |||
KeyDB | BSD3 | ||||
Espacio de claves | Propiedad | ||||
LevelDB | BSD3 | sí | |||
LMDB | OpenLDAP (similar a BSD) | sí | sí | ||
memcached | BSD3 | sí | |||
MemcacheDB | BSD | sí | |||
Microsoft SQL Server | Propiedad | sí | sí | ||
NoSQLz | freeware | ||||
Coherencia | Propiedad | sí | |||
Base de datos Oracle NoSQL | AL2 , patentado | sí | |||
Proyecto Voldemort | AL2 | sí | |||
Redis | BSD3 | sí | |||
Riak [5] | AL2 | sí | |||
RocksDB | AL2 o GPL 2 | sí | |||
Tarantool | BSD | sí | |||
Tkrzw | AL2 | sí | |||
Venti | GPLv2 , BSD | sí | |||
Virtuoso de OpenLink | GPLv2 , propietario | sí | sí |
Ver también
- Big data
- Análisis de los datos
- Almacén de datos distribuidos
- Base de datos orientada a documentos
- Base de datos multimodelo
- Espacio de tupla
Referencias
- ^ "Motores de almacenamiento" . ArangoDB . Consultado el 16 de noviembre de 2020 .
- ^ Base de datos Oracle NoSQL .
- ^ Tweed, Rob; James, George (2010). "Un motor NoSQL universal, usando una tecnología probada y probada" (PDF) . pag. 25.
Sin excepción, las bases de datos NoSQL más exitosas y conocidas se han desarrollado desde cero, todo en los últimos años. Curiosamente, parece que nadie miró a su alrededor para ver si existían tecnologías de bases de datos implementadas con éxito que pudieran haber proporcionado una base sólida para satisfacer las demandas a escala web. Si lo hubieran hecho, podrían haber descubierto dos productos, GT.M y Caché ..... *
- ^ "Almacén de clave-valor de código abierto con pruebas criptográficas integradas" .
El flujo de procesamiento de transacciones internas y la vinculación criptográfica se diseñaron específicamente para aprovechar el modelo clave-valor. Admite indexación, escaneo, compresión de datos, entre otras capacidades que esperaría de un almacenamiento de valor clave. Puede integrarse en cualquier sistema y, siguiendo un protocolo criptográfico, es capaz de garantizar la inmutabilidad en cualquier medida.
- ^ "Riak: un almacén de datos escalables de código abierto" . 28 de noviembre de 2010. Archivado desde el original el 31 de diciembre de 2010 . Consultado el 28 de noviembre de 2010 .