que example database design nosql

database - example - nosql list



NoSQL vs. SQL cuando la escalabilidad es irrelevante (5)

Recientemente, he leído mucho sobre diferentes bases de datos NoSQL y cómo están siendo implementadas efectivamente por algunos de los principales sitios web que existen. Estoy comenzando un proyecto en el que creo que la naturaleza libre de esquemas de una base de datos como MongoDB sería tremendamente útil. Todo lo que he leído parece indicar que la principal ventaja de una base de datos NoSQL es la escalabilidad. ¿Elegir una base de datos NoSQL para el diseño sin esquema es tan legítima como una decisión de diseño como la de escalabilidad?


Hay muchas otras condiciones de las que he oído hablar con sistemas no relacionales vs relacionales. Prefiero esta terminología sobre sql / no-sql, ya que personalmente creo que describe mejor las diferencias, y varios de los servidores "sin sql" tienen complementos sql, así que de todos modos ... qué tipo de patrón de concurrencia o aislamiento de tranaction es requerido en tu sistema Una de las supuestas diferencias entre dbs rel y no rel es la "constante-siempre", "consistente-en su mayoría" o "consistente-eventualmente". La relación dbs por defecto generalmente cae en la categoría "coherente en su mayoría" y con algo de trabajo, y un montón de condiciones de bloqueo y carrera,;) puede ser "constante-siempre" para que todos estén siempre buscando la representación más correcta de un dado un dato La mayor parte de lo que he leído / escuchado sobre dbs no rel es que son principalmente "consistentes, eventualmente". Esto significa que puede haber muchas instancias de nuestros datos flotando, por lo que el usuario "A" puede ver que tenemos 92 widgets en inventario, mientras que el usuario "B" puede ver 79, y es posible que no se reconcilien hasta que alguien realmente se vaya para sacar cosas del almacén Otro problema es la mutabilidad de los datos, ¿con qué frecuencia debe actualizarse? Los discos duros no rel a los que he estado expuesto tienen más sobrecarga para las actualizaciones, algunos de ellos tienen que regenerar todo el conjunto de datos para incorporar las actualizaciones.

Ahora, mente, creo que non-rel / nosql son excelentes herramientas si realmente coinciden con tu caso de uso. Tengo varios que estoy buscando ahora para proyectos que tengo. Pero debe tener en cuenta todas las ventajas y desventajas a la hora de tomar una decisión, de lo contrario, se convierte en un desarrollo más orientado al currículum.


Lo que planteó este problema es que si tiene una gran granja de servidores y necesita administrar la distribución de sus datos y balanceo de carga que es más difícil y más difícil de implementar usando RDBMS y requiere altas habilidades de TI para diseñar, planificar e implementar su solución (y aún el rendimiento es menor). pero si solo tiene 3 o 4 servidores con un proyecto pequeño. No creo que tengas un problema al respecto. La base de datos NoSQL generalmente se considera en grandes granjas de servidores, no en una pequeña cantidad de servidores.


No creo que deba elegir NoSQL Datastore para su diseño libre de esquemas. El diseño libre de esquemas siempre existió en RDBMS a través de XML y algunas bases de datos tienen un buen soporte de XML. Es mucho más fácil tratar con una base de datos que con un datastore NoSQL. La escalabilidad y el big data deberían ser los principales impulsores para elegir un datastore NoSQL; de lo contrario, la compensación de ACID y SQL es mucho para cambiar a NoSQL.


Sí, a veces RDBMS no es la mejor solución, aunque hay formas de acomodar campos definidos por el usuario (ver XML Datatype, EAV design pattern o simplemente tener columnas genéricas de repuesto) a veces una base de datos libre de esquemas es una buena opción.

Sin embargo, debe determinar sus requisitos antes de optar por una base de datos documental, ya que perderá gran parte de la energía a la que puede estar acostumbrado con el modelo relacional.

p.ej...

Si tuviera varias tablas en su base de datos RDBMS, deberá investigar las características que MongoDB le ofrece para satisfacer estas necesidades.

Si necesita consultar los datos de manera específica, nuevamente debe investigar qué le ofrece MongoDB.

No pensaría en NoSQL como reemplazo de RDBMS, sino como una herramienta ligeramente diferente que ofrece sus propios conjuntos de ventajas y desventajas, lo que lo hace más adecuado para algunos proyectos que para otros.

(Ambas bases de datos se pueden usar en algunas circunstancias. Además, si decides seguir la ruta de posiblemente usando MongoDB, una vez que hayas investigado los sitios web y tengas preguntas más específicas, puedes visitar Freenode IRC #mongodb channel)


las cosas más importantes deben ser notadas para distinguir entre No-SQL y SQL que es: NO-SQL útil cuando la base de datos escala de manera enorme como redes sociales, por ejemplo: Desbordamiento de pila: cada pregunta tiene múltiples respuestas y una respuesta no imaginaria sin pregunta, por lo que No-SQL se asegurará de que cada pregunta incluya sus respuestas, como resultado, cuando necesite obtener respuestas de una pregunta, podemos traer todas las respuestas sin unirse. Porque unirse es la consulta más costosa en la base de datos relacionada, muchas gracias.