Creo que, después de leer un par de páginas sobre este tema, todo depende de los tipos de datos con los que se trate.
RDBMSes representan un enfoque de arriba hacia abajo, donde usted, el diseñador de la base de datos, afirma la estructura de todos los datos que existirán en la base de datos. Usted define que una Persona tiene un Primero, Último, Segundo Nombre y una Dirección de Casa, etc. Puede hacer cumplir esto usando un RDBMS. Si no tiene una columna para el HomePlanet de una persona, mala suerte, quiere ser una persona que tenga un HomePlanet diferente de la Tierra; tendrá que agregar una columna en una fecha posterior o los datos no se pueden almacenar en el RDBMS. La mayoría de los programadores hacen suposiciones como esta en sus aplicaciones de todos modos, así que esto no es una tontería para asumir y hacer cumplir. Definir cosas puede ser bueno. Pero si necesita registrar atributos adicionales en el futuro, deberá agregarlos. El modelo de relación asume que sus atributos de datos no cambiarán mucho.
Bases de datos de tipo "nube" que utilizan algo parecido a MapReduce, en su caso CouchDB, no hacen la suposición anterior, y en su lugar miran los datos de abajo hacia arriba. Los datos se ingresan en documentos, que pueden tener cualquier cantidad de atributos variables. Asume que sus datos, por definición propia, son diversos en los tipos de atributos que podría tener. Dice: "Solo sé que tengo este documento en la base de datos Persona que tiene un atributo HomePlanet de" Eternium "y un Nombre de" Lord Nibbler "pero no LastName". Este modelo se adapta a las páginas web: todas las páginas web son un documento, pero los contenidos/etiquetas/claves reales del documento varían tanto que no se pueden ajustar a la estructura rígida en la que el DBMS se pontifica desde lo alto. Esta es la razón por la cual Google piensa que el modelo MapReduce roxors soxors, porque el conjunto de datos de Google es tan diverso que necesita construir para la ambigüedad desde el principio, y debido a los conjuntos de datos masivos pueden utilizar el procesamiento paralelo (que MapReduce hace trivial) . El modelo de base de datos de documentos asume que los atributos de sus datos pueden/cambiarán mucho o serán muy diversos con "lagunas" y muchas columnas escasamente pobladas que uno podría encontrar si los datos estuvieran almacenados en una base de datos relacional. Si bien podría usar un RDBMS para almacenar datos como este, se pondría muy rápido.
Para responder a su pregunta, entonces: no puede pensar "relacionalmente" en absoluto al buscar en una base de datos que utiliza el paradigma MapReduce. Porque, en realidad, no tiene una relación forzada. Es una joroba conceptual que tendrás que superar.
Un buen artículo me encontré con que se comparan y contrastan las dos bases de datos bastante bien es MapReduce: A Major Step Back, que sostiene que las bases de datos de paradigma MapReduce son un paso tecnológico hacia atrás, y son inferiores a RDBMSes. Tengo que estar en desacuerdo con la tesis del autor y presentaría que el diseñador de la base de datos simplemente tendría que seleccionar el más adecuado para su situación.
Es poco probable que alguna vez haya aprendido conocimientos de DB relacionales. Es uno de esos temas que tiene mucha información errónea sobre lo que se pasa como legítimo. ¿Alguna vez leíste un libro de Chris Date? si lo hubiera hecho, probablemente no estaría tratando de usar CouchDB. Lo sabrías mejor. – Breton
Dicho esto, imagina que tienes una sola tabla llamada "documentos" con tantas columnas generadas automáticamente como necesites, y creo que tienes una buena aproximación de lo que se trata: una base de datos específica del dominio (Piensa en blogs) – Breton
@Brenton - ¡Hola, oye! Obtener sus datos correctos. Esa es C J Date para ti. :) –