Las características comunes de nosql

libros y blogs NoSQL ofrecen diferentes opiniones sobre qué base de datos NoSQL es una. Cuatro características principales de NoSQL, mostrados en la siguiente lista, se aplican a la mayoría de bases de datos NoSQL. La lista se compara NoSQL a 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, dándole la libertad para almacenar información sin hacer por adelantado el diseño del esquema.

  • no relacional: Las relaciones en una base de datos establecen conexiones entre las tablas de datos. Por ejemplo, una lista de 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 único registro con todo lo relacionado con la transacción, incluyendo la dirección de entrega.

  • Hardware básico: 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, servidores off-the-shelf baratos pueden ser utilizados. La adición de más de estos servidores de bases de datos NoSQL baratas permite escalar para manejar más datos.

    Video: BASES DE DATOS NoSQL

  • Altamente distribuible: bases de datos distribuidas pueden almacenar y procesar un conjunto de información sobre más de un dispositivo. Con una base de datos NoSQL, una agrupación de servidores se puede utilizar para mantener una sola base de datos de gran tamaño.

esquema agnóstico

bases de datos NoSQL son esquemas agnóstico. Usted no está obligado a hacer un montón de por adelantado el trabajo de diseño antes de poder almacenar los datos en bases de datos NoSQL. Puede empezar a programar y almacenar y recuperar datos sin saber cómo se almacenan en 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.

Video: Postgres como base de datos NoSQL por Rubén Gómez

El gran beneficio a 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 de lo que esperan. Cambiar los datos almacenados, o estructuras, y debe reinstruir la base de datos utilizando un esquema modificado. Si se va a hacer un cambio, que tendría que pasar mucho tiempo en decidir cómo modificar la arquitectura de los datos existentes. En las bases de datos NoSQL, sólo tiene que almacenar una estructura de datos diferente. No hay necesidad de decir la base de datos de antemano.

Es posible que tenga que modificar sus consultas en consecuencia, tal vez añadir la específica de vez en cuando índice (Tal como un índice de rango entero para permitir menos que y mayor que consultas específicas de tipo de datos), pero todo 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 que van a ser adoptado cada vez más con el tiempo.

Incluso en la consulta, es posible que no tenga que preocuparse demasiado acerca de conocer los cambios en el esquema - considerar un índice sobre 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. 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, este sigue estando disponible 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 columnas. Todavía están consideradas las bases de datos NoSQL porque se requieren campos no todos definidos (columnas en este caso) a ser conocido de antemano para cada registro - sólo las familias de las columnas.

Video: NoSQL en #programadorIO

RDBMS permite campos individuales de registros que se identificaron como nulo valores. El problema con un RDBMS es que el tamaño de los datos almacenados y el rendimiento se ven afectados negativamente cuando el almacenamiento está reservado para los valores nulos en caso de que el registro puede en algún momento en el futuro tener un valor en esa columna. En Cassandra, simplemente no proporciona 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 para almacenar datos de aplicación desde hace 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 fundamento se describe cómo las tablas se relacionan entre sí. Una fila sola orden puede estar relacionada con el número de 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-a-relación de muchos.

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 que no requiere 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 los registros individuales se relacionan con otros registros en la base de datos, que puede sonar como una limitación. Sin embargo, las bases de datos NoSQL son más flexibles en términos de las estructuras de datos que puede almacenar.

Considere una orden 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 la persona que pide, por ejemplo dirección de entrega y pago.

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

En la teoría de base de datos relacional, el objetivo es normalizar sus datos (es decir, para organizar los campos y tablas para eliminar datos duplicados). En las bases de datos NoSQL - especialmente documentos o bases de datos de agregado - que a menudo Desnormalizar deliberada de datos, el almacenamiento de algunos datos varias veces.

Puede almacenar, por ejemplo, “la entrega al cliente de direcciones” varias veces a través de muchos órdenes de un cliente realiza a través del tiempo, en lugar de almacenar una vez y se refieren a ella en varios pedidos. Para ello se requiere espacio adicional de almacenamiento, 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 único registro.

  • velocidad de las consultas: En las bases de datos relacionales, se une a la información y agregar restricciones a través de tablas en tiempo de consulta. Esto puede requerir 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 reduce su velocidad de las consultas. (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 que coincidan.

vistas relacionales y denormalizations NoSQL son diferentes aproximaciones al problema de los datos se distribuyen en los registros. En NoSQL, es posible 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 más la reducción del almacenamiento y el aumento de la velocidad de desarrollo y consulta, los datos no normalizados (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 comercial

En muchas bases de datos NoSQL, una decisión de diseño clave 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 va a consultar es difícil. Debe enviar la consulta a todos los servidores y esperar una respuesta. Con suerte, configura las máquinas para que sean lo suficientemente rápido para hablar unos con otros para manejar las 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. Tenga en cuenta 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.

Video: 4. MongoDB Caracteristicas Generales

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

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

No todas las bases de datos de código abierto soportan una alta disponibilidad a menos que comprar la versión compatible, pagado por 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 de manera efectiva ciertas consultas gráfico de manera oportuna, los datos necesitan ser almacenados en un único servidor. Nadie ha resuelto este problema en particular todavía.

considerar cuidadosamente si usted necesita un almacén o una tienda de triple gráfico. tiendas triples son generalmente distribuible, mientras que las tiendas de gráficos no lo son. Cuál usted necesita depende de las preguntas que debe soportar.

Artículos Relacionados