Skip to content

Modelado de datos NoSQL explicados

Patrones de modelado para almacenes de documentos, clave-valor, columnas anchas, grafos y vectores — cuándo incrustar, referenciar, desnormalizar o agrupar en ventanas de tiempo.

Los almacenes NoSQL intercambian esquemas fijos y joins por escala horizontal. Cada familia modela las relaciones a su manera, así que el patrón de acceso — no la forma normal — dicta la estructura.

Tabla de referencia · 28 entradas
28 of 28 rows
Documentos
Subdocumentos anidados viven dentro de un documento padre en lugar de en tablas separadas.Relaciones uno-a-pocos que se leen juntas. Un pedido con sus líneas. Un usuario con tres direcciones.
Guarda un id ajeno, no los datos. Se resuelve con una segunda lectura o un $lookup.Subentidades grandes, compartidas o actualizadas de forma independiente. Enlaces muchos-a-muchos entre colecciones.
El padre incrusta un array corto de hijos; todo el conjunto cabe y se carga como un solo documento.Un puñado de teléfonos o preferencias en un perfil. Una lectura devuelve padre e hijos.
Los hijos viven en su propia colección; cada hijo lleva el id del padre, o el padre mantiene un array de ids acotado.Conjuntos demasiado grandes o independientes para incrustar. Consulta los hijos por id de padre.
El hijo almacena el id del padre; el padre nunca lista hijos porque el conjunto no tiene cota.Eventos, logs o votos ligados a un host o usuario. Filtra los hijos por id de padre y pagina.
Documentos de distintos tipos de entidad comparten una colección, distinguidos por un campo de tipo.Comentarios o notificaciones adjuntos a muchos tipos de padre, todos consultados por una sola vía.
Algunas entidades extremas se separan de la forma común para que su tamaño o tráfico no distorsione el resto.Cuentas de celebridades cuyas listas de seguidores o contadores desbordarían el documento normal.
Cada revisión es un documento nuevo con el mismo id y un número de versión creciente; la consulta elige la última.Pistas de auditoría e historiales de edición donde las revisiones viejas siguen consultables.
Los valores derivados se calculan al escribir y se guardan junto a los datos que resumen.Totales, valoraciones y top-N que de otro modo ejecutarían una agregación en cada lectura.
Clave-valor y columnas anchas
Término de diseño de DynamoDB: colapsar muchos tipos de entidad en una tabla con claves de partición y de orden sobrecargadas.Obtener elementos heterogéneos en una sola consulta sin join.
Un atributo de clave sirve a muchos tipos de entidad, marcado con prefijos como USER# u ORDER#.Diseños de tabla única. Agrupa elementos relacionados bajo una partición y recupéralos en una consulta.
Una clave de partición reparte filas entre nodos; una clave de orden ordena cada partición.Cassandra y DynamoDB. Escaneos de rango, logs ordenados, claves compuestas jerárquicas.
Apila varios atributos en una clave de orden delimitada — country#region#city — para que una coincidencia de prefijo recorra la jerarquía hacia abajo.Jerarquías y filtros multifaceta. Una consulta de rango ordenada sustituye muchas búsquedas indexadas.
Agrupa eventos en ventanas fijas — hora, día, mes — bajo particiones o tablas dedicadas.Métricas, logs y telemetría IoT. Acota el tamaño de partición y expira los datos fríos.
Duplica campos de lectura intensa entre registros para que una consulta nunca persiga una segunda búsqueda.Cargas de lectura intensa donde la consistencia eventual es tolerable y el almacenamiento barato.
Un índice secundario sobre un atributo que solo algunos elementos llevan; los que no lo tienen jamás entran al índice.Rutas de acceso alternativas. Encuentra el subconjunto disperso — pedidos abiertos, artículos sin enviar — sin un escaneo completo.
Escribe primero las consultas exactas; el diseño de la tabla se deriva de ellas, no de entidades ni de la forma normal.Trabajo de esquemas en Cassandra y DynamoDB. Una tabla por familia de consultas; el modelo de datos copia la pregunta.
Una consulta debe golpear muchas particiones o nodos en paralelo porque ninguna clave responde a la pregunta.Un olor que se diseña fuera, no una meta. Cambia las claves de la tabla para que la consulta común caiga en una sola partición.
Las copias se empujan a la vista de cada lector al escribir, o se reúnen y fusionan al leer.Feeds y timelines. Fan-out en escritura para audiencias pequeñas, en lectura para enormes.
Un resultado de consulta preconstruido, almacenado como tabla propia y mantenido al día conforme cambia la base.Formas de lectura alternativas sobre una sola ruta de escritura. Responde consultas que la tabla base no puede.
Grafos
Cada arista es una fila o tupla que apunta de un nodo origen a un nodo destino.Almacenes de grafos y de propiedades. Búsquedas amigo-de-amigo, enrutado, recomendaciones.
Cada relación es un documento en su propia colección, con ids from y to más atributos del enlace.Grafos en almacenes de documentos. Atributos en el propio enlace — valoración, rol, marca de tiempo.
Cada nodo guarda contadores izquierdo y derecho de un recorrido en profundidad; un subárbol vive dentro del rango de su padre.Árboles de lectura intensa. Una consulta BETWEEN devuelve un subárbol; las inserciones renumeran el recorrido.
Una tabla dedicada registra cada par ancestro-descendiente, incluido cada nodo a profundidad cero.Consultas de rama completa a cualquier profundidad. Joins sencillos, pagados en almacenamiento y mantenimiento.
Los grafos de propiedades adjuntan atributos clave-valor a nodos y aristas; RDF expresa todo como tripletas sujeto-predicado-objeto.Grafos de propiedades para recorrido rico (Neo4j); RDF para datos enlazados abiertos e intercambio de ontologías.
Vectores
Un array de coma flotante de alta dimensionalidad junto a metadatos. Un índice ANN encuentra los vecinos más cercanos.Búsqueda semántica, recuperación RAG, recomendaciones y similitud sobre contenido no estructurado.
Los documentos fuente se dividen — por tamaño, solapamiento o estructura — antes de incrustar cada fragmento por separado.Calidad de recuperación RAG. El tamaño del chunk intercambia precisión por recall; el solapamiento protege frases partidas.
La similitud vectorial densa corre junto a la coincidencia de palabras clave; las dos listas ordenadas se fusionan en un resultado.Consultas que necesitan términos exactos y significado a la vez, con filtros de metadatos encima.