Bases de Datos Clave Valor

Almacén Key-Value

 

Una base de datos de valores-clave (también conocida como almacén de valores-clave y base de datos key-value) es un tipo de base de datos NoSQL que utiliza un método simple de clave / valor para almacenar datos.

La parte clave-valor se refiere al hecho de que la base de datos almacena datos como una colección de pares clave / valor. Este es un método simple de almacenar datos, y se sabe que escala bien.

El par clave-valor es un concepto bien establecido en muchos lenguajes de programación. Los lenguajes de programación normalmente se refieren a una clave-valor como una matriz asociativa o estructura de datos. Un valor-clave también se conoce comúnmente como diccionario o hash.

Un store de valores-clave o una base de datos de valores-clave es una base de datos simple que usa un arreglo asociativo (piensa en un mapa o diccionario) como el modelo de datos fundamental donde cada clave está asociada con un solo valor en una colección. Esta relación se conoce como un par clave-valor.

En cada par clave-valor, la clave se representa mediante una cadena arbitraria, como un nombre de archivo, URI o hash.

El valor puede ser cualquier tipo de datos como una imagen, archivo de preferencia del usuario o documento. El valor se almacena como un blob que no requiere modelado de datos inicial o definición de esquema.

Ejemplos de base de datos clave-valor

A continuación hay ejemplos de tiendas de valores clave.

Estos son ejemplos simples, pero el objetivo es proporcionar una idea de cómo funciona una base de datos clave-valor.

Directorio

Clave Valor
Juan (123) 456-7890
Pedro (234) 567-8901
Maria (345) 678-9012
Francisca (456) 789-0123

¿Qué tipo de datos se pueden almacenar en una base de datos clave-valor?

La clave


La clave en un par clave-valor debe (o al menos, debería) ser única. Este es el identificador único que le permite acceder al valor asociado con esa clave.

En teoría, la clave podría ser cualquier cosa. Pero esto puede depender del DBMS. Un DBMS puede imponer limitaciones mientras que otro puede imponer ninguno.

En Redis, por ejemplo, el tamaño de clave máximo permitido es 512 MB. Puede usar cualquier secuencia binaria como clave, desde una secuencia de texto corta hasta el contenido de un archivo de imagen. Incluso la cadena vacía es una clave válida.

Sin embargo, por motivos de rendimiento, debe evitar tener una clave demasiado larga.

Pero una clave demasiado corta también puede causar problemas de legibilidad. En cualquier caso, la clave debe seguir una convención convenida para mantener las cosas consistentes.

El valor

El valor en un almacén de clave-valor puede ser cualquier cosa, como texto (largo o corto), un número, código de marcado como HTML, código de programación como PHP, una imagen, etc.

El valor también podría ser una lista, o incluso otro par clave-valor encapsulado en un objeto.

Algunos DBMS de almacenamiento de claves le permiten especificar un tipo de datos para el valor. Por ejemplo, puede especificar que el valor sea un entero. Otros DBMS no proporcionan esta funcionalidad y, por lo tanto, el valor podría ser de cualquier tipo.

Como ejemplo, Redis DBMS le permite especificar los siguientes tipos de datos:

 

  • Cuerdas binarias seguras.
  • Listas: colecciones de elementos de cadena ordenados de acuerdo con el orden de inserción.
  • Conjuntos: colecciones de elementos de cadena únicos y sin clasificar.
  • Conjuntos ordenados, similares a Conjuntos, pero donde cada elemento de cadena está asociado a un valor de número flotante, llamado puntaje. Le permite hacer cosas como, seleccionar los 10 mejores, o los 10 inferiores, etc.
  • Hashes, que son mapas compuestos de campos asociados con valores. Tanto el campo como el valor son cadenas.
  • Arrays de bits (o simplemente mapas de bits).
  • HyperLogLogs: esta es una estructura de datos probabilísticos que se usa para estimar la cardinalidad de un conjunto.

¿Para qué se puede usar una base de datos de valores-clave?

Las bases de datos de valores clave se pueden aplicar a muchos escenarios. Por ejemplo, las tiendas de valores clave pueden ser útiles para almacenar cosas como las siguientes.

Ejemplos de sistemas de gestión de bases de datos clave-valor:

 

Sección NoSQL: