このテーマについて数ページを熟読した後、それはすべてあなたが扱っているデータの種類に依存すると思います。
RDBMSはトップダウンのアプローチを表しており、データベース設計者は、データベースに存在するすべてのデータの構造を表明します。個人には、名、姓、ミドルネーム、自宅の住所などがあることを定義します。これは、RDBMSを使用して適用できます。人のHomePlanetの列がない場合は、地球とは異なるHomePlanetを持っているPersonになりたいと思っています。後日、列を追加する必要があります。そうしないと、データをRDBMSに保存できません。ほとんどのプログラマーはとにかく自分のアプリでこのような仮定をしているので、これは仮定して強制するのは馬鹿げたことではありません。物事を定義することは良いことです。ただし、将来追加の属性をログに記録する必要がある場合は、それらを追加する必要があります。リレーションモデルは、データ属性があまり変更されないことを前提としています。
MapReduce(この場合はCouchDB)のようなものを使用する「クラウド」タイプのデータベースは、上記の仮定を行わず、代わりにボトムアップからデータを調べます。データはドキュメントに入力されます。ドキュメントには、さまざまな属性がいくつでも含まれている可能性があります。データは、その定義により、持つことができる属性のタイプが多様であると想定しています。「このドキュメントがデータベースPersonにあり、HomePlanet属性が「Eternium」でFirstNameが「LordNibbler」で、LastNameがないことを知っています。」このモデルはWebページに適合します。すべてのWebページはドキュメントですが、ドキュメントの実際のコンテンツ/タグ/キーは非常に大きく異なるため、DBMSが高い位置から認識している堅固な構造に適合させることはできません。これが、GoogleがMapReduceモデルのroxorssoxorsと考える理由です。■データセットは非常に多様であるため、最初からあいまいさを考慮して組み込む必要があります。また、大量のデータセットがあるため、並列処理を利用できます(MapReduceでは簡単です)。ドキュメントデータベースモデルは、データの属性が大幅に変更されるか、データがリレーショナルデータベースに保存されている場合に見られる「ギャップ」とまばらに入力された列が多数あるため、非常に多様であると想定しています。RDBMSを使用してこのようなデータを保存することはできますが、非常に高速になります。また、データがリレーショナルデータベースに格納されている場合に見つかる可能性のある、まばらに配置された列がたくさんあります。RDBMSを使用してこのようなデータを保存することはできますが、非常に高速になります。また、データがリレーショナルデータベースに格納されている場合に見つかる可能性のある、まばらに配置された列がたくさんあります。RDBMSを使用してこのようなデータを保存することはできますが、非常に高速になります。
あなたの質問に答えるには、MapReduceパラダイムを使用するデータベースを見るとき、「関係的に」考えることはできません。なぜなら、それは実際には強制された関係を持っていないからです。それはあなたがただ乗り越えなければならない概念的なこぶです。
2つのデータベースを非常によく比較対照する良い記事は、MapReduce:A Major Step Backです。これは、MapReduceパラダイムデータベースは技術的な後退であり、RDBMSより劣っていると主張しています。私は著者の論文に反対しなければならず、データベース設計者は自分の状況に合ったものを選択するだけでよいと主張します。