Las características comunes de nosql

Libros y blogs NoSQL ofrecen diferentes opiniones sobre lo que una base de datos NoSQL es. Cuatro características principales de NoSQL, que se muestran en la siguiente lista, se aplican a la mayoría de las bases de datos NoSQL. La lista compara NoSQL al DBMS relacionales tradicionales:

  • Esquema agnóstico: Un esquema de base de datos es la descripción de todas las posibles estructuras de datos y datos en una base de datos relacional. Con una base de datos NoSQL, no se requiere un esquema, que le da la libertad para almacenar información sin hacer hasta # diseño de esquema 8208-frente.

  • No relacional: Relaciones en una base de datos establecen conexiones entre las tablas de datos. Por ejemplo, una lista de los detalles de la transacción se puede conectar a una lista separada de detalles de la entrega. Con una base de datos NoSQL, esta información se almacena como un agregado - un solo registro con todo lo de la operación, incluyendo la dirección de entrega.

  • Hardware de los productos básicos: Algunas bases de datos están diseñados para funcionar mejor (o única) con el almacenamiento especializado y hardware de procesamiento. Con una base de datos NoSQL, barato fuera # 8208-la # 8208-servidores de la plataforma se pueden utilizar. La adición de más de estos servidores de bases de datos NoSQL baratas permite escalar para manejar más datos.

  • Altamente distribuible: Bases de datos distribuidas pueden almacenar y procesar un conjunto de información en más de un dispositivo. Con una base de datos NoSQL, un cluster de servidores se puede utilizar para realizar una única base de datos de gran tamaño.

Esquema agnóstica

Bases de datos NoSQL son esquema agnóstico. Usted no está obligado a hacer un montón de arriba # 8208-frente de trabajo de diseño antes de poder almacenar datos en bases de datos NoSQL. Puede empezar a programar y almacenar y recuperar datos sin saber cómo las tiendas de bases de datos y funciona internamente. (Siempre y cuando se necesita una funcionalidad avanzada, a continuación, puede agregar manualmente nuevos índices o modificar las estructuras de almacenamiento de datos.) Agnosticismo esquema puede ser la diferencia más significativa entre NoSQL y bases de datos relacionales.

El gran beneficio para una base de datos independiente del esquema es que el tiempo de desarrollo se acorta. Este beneficio aumenta a medida que pasan a través de múltiples versiones de desarrollo y la necesidad de modificar las estructuras internas de datos en la base de datos.

Por ejemplo, en un RDBMS tradicionales, que pasan por un proceso de rediseño del esquema. El esquema indica a la base de datos sobre qué datos esperan. Cambie los datos almacenados, o estructuras, y debes reinstruir la base de datos utilizando un esquema modificado. Si se va a hacer un cambio, usted tendría que pasar mucho tiempo para decidir cómo volver # 8208-arquitecto los datos existentes. En las bases de datos NoSQL, almacenar simplemente una estructura de datos diferente. No hay necesidad de decir la base de datos de antemano.

Puede que tenga que modificar sus consultas en consecuencia, tal vez añadir lo específico ocasional índice (como un índice rango entero para permitir menor que y mayor que los datos # 8208-tipo de consultas específicas), pero el proceso es mucho menos doloroso que es con un RDBMS.

RDBMS despegó debido a su flexibilidad y porque, mediante el uso de SQL, se aceleró el cambio de una consulta. Bases de datos NoSQL proporcionan esta flexibilidad para cambiar tanto el esquema y la consulta, que es una de las razones principales de que serán adoptados cada vez más con el tiempo.

Incluso en consulta, es posible que no tenga que preocuparse demasiado acerca de conocer los cambios de esquema - considerar un índice más de un número de cuenta de campo, donde número de cuenta puede ser ubicado en cualquier lugar en un documento que se almacena en una base de datos NoSQL. Usted puede cambiar la estructura y reubicar donde número de cuenta es almacenado, y si el elemento tiene el mismo nombre en otra parte del documento, es todavía disponibles para consulta sin cambios en su mecanismo de consulta.

Tenga en cuenta que no todas las bases de datos NoSQL son totalmente esquema agnóstico. Algunos, como HBase, exigirle que deje la base de datos para alterar las definiciones de columna. Todavía están consideradas las bases de datos NoSQL porque los campos no todos definidos (columnas en este caso) están obligados a ser conocido de antemano por cada registro - sólo las familias de las columnas.

RDBMS permite campos individuales de registros para ser identificados como nulo los valores. El problema con un RDBMS es que el tamaño de los datos almacenados y los resultados se ven afectados negativamente cuando el almacenamiento está reservado para los valores nulos por si el registro puede en algún momento en el futuro tener un valor en esa columna. En Cassandra, simplemente no proporcione los datos de esa columna, que resuelve el problema.

No relacional

Sistemas de gestión de bases de datos relacionales han sido la forma dominante de almacenar datos de aplicación por más de 20 años. Una gran cantidad de trabajo matemático se hizo para probar la teoría de que las sustenta.

Este apuntalamiento describe cómo las tablas se relacionan entre sí. Una fila Orden solo puede referirse a muchas filas de la dirección de entrega, pero cada fila Dirección de entrega también se refiere a varias filas Orden. Esto es un muchos# 8208-a# 8208-muchos relación.

Bases de datos NoSQL no tienen este concepto de las relaciones entre sus registros. En su lugar, desnormalizar datos. Esto significa que en una base de datos NoSQL tendría una estructura de orden con la dirección de entrega incrustado. Esto significa que la dirección de entrega se duplica en cada fila Orden que lo utiliza. Este enfoque tiene la ventaja de no requerir tiempo de consulta complejo se une a través de múltiples estructuras de datos (tablas) sin embargo.

Bases de datos NoSQL no almacenan información acerca de cómo individuo registros se refieren a otros registros en la base de datos, lo que puede sonar como una limitación. Sin embargo, las bases de datos NoSQL son más flexibles en cuanto a las estructuras de datos que puede almacenar.

Considere la posibilidad de un pedido de un minorista en línea. El orden puede incluir códigos de producto, cantidades, precios de artículos y descripciones de los artículos, así como información sobre el ordenamiento persona, como la dirección de entrega y pago.

En lugar de insertar diez filas de una variedad de tablas en una base de datos relacional, se puede almacenar en lugar de una única estructura de toda esta información para - por ejemplo, como un documento JSON o XML.

En teoría base de datos relacional, el objetivo es normalizar tus datos (es decir, para organizar los campos y tablas para eliminar datos duplicados). En NoSQL # 173-bases de datos - sobre todo documentos o bases de datos de agregado - a menudo Desnormalizar deliberada de datos, almacenamiento de algunos datos varias veces.

Puede almacenar, por ejemplo, " al cliente Entrega Dirección " varias veces a través de muchas órdenes de un cliente hace que con el tiempo, en lugar de almacenar una vez y se refieren a ella en varios pedidos. Hacerlo requiere espacio de almacenamiento adicional, y un poco de previsión en la gestión de la aplicación. Así que ¿por qué hacerlo?

Hay dos ventajas para el almacenamiento de datos múltiples veces:

  • Fácil almacenamiento y recuperación: Sólo tiene que guardar y obtener un registro único.

  • Velocidad de las consultas: En las bases de datos relacionales, se une a la información y añadir restricciones a través de mesas en tiempo de consulta. Esto puede requerir que el motor de base de datos para evaluar muchas mesas. Cuantas más restricciones de consulta que tiene a través de diferentes tablas, más se reducen la velocidad de su consulta. (Esta es la razón por un RDBMS tiene vistas precalculados.) En una base de datos NoSQL, toda la información que necesita para evaluar su consulta es en un solo documento. Por lo tanto, se puede determinar rápidamente la lista de los documentos correspondientes.

Vistas relacionales y denormalizations NoSQL son diferentes aproximaciones al problema de los datos se distribuyen en los registros. En NoSQL, puede que tenga que mantener múltiples denormalizations que representan diferentes vistas de los mismos datos. Este enfoque aumenta el costo de almacenamiento, pero le da mucho mejor tiempo de consulta.

Dado el costo cada vez # 8208 de reducción de almacenamiento y el aumento de la velocidad de desarrollo y consulta, los datos desnormalizado (aka vistas materializadas) No es una razón para descontar asesino soluciones NoSQL. Es sólo una manera diferente de abordar el mismo problema, con sus propias ventajas y desventajas.

NoSQL es altamente distribuible y utiliza hardware básico

En muchas bases de datos NoSQL, una decisión clave de diseño es el uso de varios ordenadores para almacenar datos para una sola base de datos, en lugar de tener toda la base de datos en un único servidor.

El almacenamiento de datos a través de múltiples máquinas y permitiendo que se puede consultar es difícil. Usted debe enviar la consulta a todos los servidores y esperar una respuesta. Con suerte, configurar las máquinas para que sean lo suficientemente rápido para hablar unos con otros para manejar consultas distribuidas!

La principal ventaja de este enfoque es en el caso de grandes bases de datos, ya que para algunos requisitos de almacenamiento, incluso el más grande de un solo servidor disponible no podría almacenar o procesar todos los datos que necesita. Considere todos los mensajes en Twitter y Facebook. Es necesario un mecanismo distribuido para gestionar eficazmente todos los datos, incluso si es sobre todo acerca de lo que la gente tenía para el desayuno y vídeos lindo gato.

Una ventaja de la distribución de su base de datos es que se puede utilizar servidores más baratos, llamados servidores de las materias primas. Incluso para los conjuntos de datos más pequeños, puede ser más barato comprar tres servidores de las materias primas en lugar de un único servidor, mayor # 8208 con motor.

Otra ventaja clave es que la adición de alta disponibilidad es más fácil- ya estás a mitad de camino mediante la distribución de los datos. Si replica los datos de una o dos veces a través de otros servidores en el clúster, los datos seguirán siendo accesibles, incluso si uno de los accidentes de servidores, quemaduras, y muere.

No todas las bases de datos abiertos # 8208-source soportan una alta disponibilidad a menos que comprar la apoyaron, pagados # 8208-para la versión de la base de datos de la compañía que lo desarrolla.

Una excepción a la regla altamente distribuible es el de las bases de datos del gráfico. Con el fin de responder con eficacia determinadas consultas gráfico de manera oportuna, los datos debe ser almacenado en un solo servidor. Nadie ha resuelto este asunto en particular todavía.

Considere cuidadosamente si necesita una tienda de triple o una tienda de gráfico. Tiendas triples son generalmente distribuible, mientras que las tiendas de gráficos no lo son. Cuál usted necesita depende de las consultas debe apoyar.




» » » » Las características comunes de nosql