he estado escuchando un montón de hablar sin esquema (a menudo distribuido) como sistemas de bases de datos MongoDB, CouchDB, SimpleDB, etc ...¿Cuál es la atracción de los sistemas de bases de datos sin esquemas?
Aunque puedo entender que podría ser valiosa para algunos propósitos, en la mayor parte de mis aplicaciones, intento persistir objetos que tienen un número específico de campos de un tipo específico, y pienso de manera automática en el modelo relacional. Siempre estoy pensando en términos de filas con identificadores enteros únicos, campos nulos/no nulos, tipos de datos SQL y consultas seleccionadas para encontrar conjuntos.
Si bien me atraen la naturaleza distribuida y las interfaces jSON/RESTful fáciles de estos sistemas nuevos, no entiendo cómo los valores hash de clave/valor mecanografiados vagamente me ayudarán con mi desarrollo. ¿Por qué un sistema de tipo suelto y sin esquema sería bueno para mantener conjuntos de datos limpios? ¿Cómo puedo, por ejemplo, encontrar todos los elementos con fechas entre xey cuando es posible que no tengan fechas? ¿Hay algún concepto de unirme?
Entiendo que muchos sistemas tienen sus propias diferencias y puntos fuertes, pero me pregunto cuál es la diferencia de paradigma. Supongo que esta es una pregunta abierta, pero quizás las respuestas de la comunidad y las formas en que personalmente hayan visto las ventajas de estos sistemas ayudarán a iluminar a mí y a otros sobre cuándo querría utilizar estos sistemas (más modernos) en lugar de el RDBMS tradicional.
MongoDB (al menos con Mongoose) es _NOT_ schemaless. –