「NoSQLデータベース」の意味は広範で曖昧です。僕が想定しているのは主にMongoDBです。その前提でお読みください。 データベースの構成要素を、「コレクション」「レコード」「フィールド」と呼ぶことにします。MongoDBでは、「レコード」ではなくて「ドキュメント」と言いますが、普通の意味の「文書」と混同されるのがイヤなので「レコード」にします。レコードは入れ子構造を許す(かも知れない)ので、フィールドの識別にはフィールド名ではなくてフィールドパスが必要です。 次の2点はNoSQLデータベースの弱点としてよく指摘されることです。 トランザクションが出来ない。 ジョインが出来ない。 これら(特にジョイン)について分析し、あまり指摘されないNoSQLデータベースのメリットにも触れます。 内容: トランザクション:多くを望まない RDBのジョインとデカルト的能力 部分関数と集合値関数 部分関数