質問: マインドマップアプリを作りたいのですが、マインドマップのデータ形式は、各ノードが自由に線で結ばれている構造になっているので、 **普通に素朴に考えると、表形式ではなく、ネットワーク型のデータベースになります。** しかし、世の中では、データベースというと、mySQLに代表されるように、**表形式のRDBMSばかりが挙げられ**、あたかも、「一般的なデータベースなら、RDBMS形式だけでほとんどの場合事足りる」と言っているかのようです。 しかし、例えばHTMLのDOMのように、**階層型のデータ構造は普通に需要があります。** それでもRDBMSばかり使われるということは、 **「RDBMSだけで階層型やネットワーク型のようなデータの取り扱いが再現可能であるから」** なんじゃないかと思っていますが、実際どうなのでしょうか? それとも、mySQLに匹敵するほどの、階層型・ネットワーク型DBMSの定番ソフトがあるのでしょうか? 私が使いたいのは、冒頭にも書いた通り、ネットワーク型のデータ構造です。 ご回答宜しくお願いします。 ### 追記 調べると、関係(relational)データ構造とは集合論と述語論理における「n項関係」に基づいて、 「データ同士を論理関係で結びつける構造」 だそうで、 **工夫しだいで大体どんなデータ構造も設計可能な、非常に汎用性の高いデータ論理体系** のようですね。 そして、それを実装してできたデータベース管理システムがRDBMSだそうで、 **別に表形式のデータ構造ばかりを想定しているわけでは全くない** みたいですね。 提唱者は偉大ですね。 「RDBMSの登場により、ネットワーク型データベースを採用する人々や会社は減っていった」 とまであったので、おそらくRDBMSでネットワーク型や階層型の再現も可能ということでしょう。 でも、調べてもなぜかexcelのような表形式データ構造の説明ばかりで、 ネットワーク型や階層型の設計方法についての記事は見つけにくいですね。 需要が少ないんでしょうか。
回答: > > マインドマップのデータ形式は、各ノードが自由に線で結ばれている構造になっているので、 > > 普通に素朴に考えると、表形式ではなく、ネットワーク型のデータベースになります。 > > > データ形式はネットワークでも、(ただ保存、読込するだけであれば)真っ正直にネットワーク型のデータベースにする**必要はありません**。 「頂点のデータを入れるテーブル」と、「頂点のID2つを入れて線を表現するテーブル」の2つがあれば、ネットワークとしての表現は保存可能です。