Cómo elegir una base de datos NoSQL
NoSQL (NoSQL
=Not Only SQL
), que significa "no solo SQL", es un nuevo movimiento revolucionario en el campo de las bases de datos, fue propuesto en los primeros días y gradualmente se ha vuelto popular desde 2009. Los defensores de NoSQL abogan por el uso de datos no relacionales
para almacenar datos. En comparación con el uso intensivo de bases de datos relacionales, este concepto es sin duda una inyección de nuevas ideas.
Seleccionar la base de datos NoSQL adecuada a partir de esta tecnología emergente puede ser un gran desafío. More than a bit.com recomienda que considere los siguientes factores al hacer su elección:
Control de concurrencia
Concurrencia
El control de concurrencia se refiere a cuando varios usuarios ejecutan actualiza al mismo tiempo varias técnicas utilizadas para proteger la integridad de la base de datos. Los mecanismos de concurrencia incorrectos pueden provocar problemas como lecturas sucias, lecturas fantasma y lecturas no repetibles. El propósito del control de concurrencia es garantizar que el trabajo de un usuario no afecte irrazonablemente el trabajo de otro usuario. En algunos casos, el control de concurrencia garantiza que cuando los usuarios trabajan junto con otros usuarios, obtienen los mismos resultados que cuando trabajan solos
En otros casos, significa que el trabajo de un usuario se ve afectado por la programación de otros usuarios.
Bloquear
significa que la transacción T envía una solicitud al sistema para bloquear el objeto antes de operar en el objeto de datos (como una tabla, un registro, etc.). Después del bloqueo, la transacción T tiene cierto control sobre el objeto de datos y otras transacciones no pueden actualizar el objeto de datos hasta que la transacción T libere su bloqueo.
El bloqueo es un mecanismo que solo permite a un usuario leer o modificar a la vez. Es una tecnología muy importante para lograr el control de la concurrencia.
Control de simultaneidad de múltiples versiones (MVCC)
El control de simultaneidad de múltiples versiones mantiene múltiples versiones de datos para que las lecturas y escrituras no entren en conflicto.
MVCC optimiza los sistemas de concurrencia de bases de datos para obtener el máximo rendimiento con una gran cantidad de usuarios simultáneos y permite realizar copias de seguridad en caliente directamente sin apagar el servidor. Respaldo.
ACID
es una abreviatura que hace referencia
a los cuatro elementos básicos para la correcta ejecución de las transacciones de la base de datos. Son atomicidad, consistencia, aislamiento y durabilidad. Un sistema de base de datos que admita transacciones debe tener estas cuatro características. De lo contrario, no se puede garantizar la precisión de los datos en el proceso de transacción (procesamiento de transacciones) y es probable que el proceso de transacción no pueda cumplir con los requisitos. necesidades de las partes de la transacción.
Ninguno
Algunos sistemas no proporcionan atomicidad.
Espejo
El reflejo de la base de datos es un proceso en el que el DBMS copia automáticamente toda la base de datos o los datos clave a otro disco a petición del DBA. Cada vez que se actualiza la base de datos principal, el. DBMS copiará automáticamente las actualizaciones. Los datos posteriores se copiarán, es decir, el DBMS garantizará automáticamente la coherencia de los datos espejo y los datos principales.
Los espejos se dividen en espejos sincrónicos y espejos asincrónicos.
Almacenamiento de datos
Se refiere a las características físicas de cómo se almacenan los datos en una base de datos.
Los datos del disco se almacenan en el disco duro;
GFS o Google File System es un sistema de archivos distribuido patentado desarrollado por Google;
Hadoop es el software Apache framework, admite aplicaciones distribuidas con uso intensivo de datos con una licencia gratuita;
Memoria RAM de acceso aleatorio;
Los complementos pueden agregar complementos externos;
Amazon S3 a través de servicios web La interfaz proporciona almacenamiento
BDB: BDB
El nombre completo es "Berkeley DB", que es un tipo de tabla MySQL con funciones de transacción, desarrollado por Sleepycat
p>Software, el tipo de tabla BDB proporciona una característica muy esperada por los usuarios de MySQL, es decir, capacidades de control de transacciones. El control de transacciones es una característica extremadamente importante y valiosa en cualquier RDBMS
. El control de transacciones garantiza que un conjunto de comandos realmente se ejecute correctamente o que, si se produce un error en cualquier comando, se devuelvan los resultados de todos los comandos.
Lenguaje de implementación
El lenguaje de implementación afecta la velocidad del desarrollo de la base de datos. Las bases de datos NoSQL típicas están escritas en lenguajes de bajo nivel como C/C++. Por otro lado, los lenguajes de alto nivel como Java facilitan la personalización.
Los lenguajes de implementación incluyen C, C++, Erlang, Java y Python
Características
Considere cuál de las siguientes características es más importante para su base de datos:
Persistencia
Disponibilidad
Consistencia
Tolerancia de partición
Tipo de certificado
El siguientes licencias Las licencias son diferentes formas de licencias de código abierto:
GPL: Licencia Pública General****
BSD: Berkeley Software Distribution
MPL: Mozilla Pública ** ** Licencia
EPL: Licencia pública **** de Eclipse
IDPL: Licencia pública **** de desarrollador inicial
LGPL: LGPL: Menos Licencia pública genérica
Tipo de almacenamiento
El tipo de almacenamiento es la mayor diferencia entre las bases de datos NoSQL y el indicador principal para decidir qué base de datos usar.
Palabras clave: admite operaciones de obtención, colocación y eliminación
Almacenamiento en columnas: en comparación con el almacenamiento en filas tradicional, es más fácil integrar datos
Sistema de archivos orientado: almacenes Archivos estructurados como JSON o XML para facilitar la recuperación de datos de software orientado a objetos.