多くのリレーショナルデータベース管理システム(RDBMS)に出会いました。しかし最近、私はhibernateを使用したので、なぜオブジェクト指向データベースがそれほど人気がないのか疑問に思い始めました。
JavaまたはC#などのオブジェクト指向言語が非常に人気がある場合、なぜオブジェクト指向データベース管理システム(OODBMS)もそれほど人気がないのですか?
複数の理由があります。
データベースが最初に登場したとき、OOPはまだプログラミングの方法ではありませんでした。一方、リレーショナルデータベースは大きな牽引力を獲得しました。そして、IBMによって80年代に導入されたSQLはすぐに- lingua francaすべてのデータベースの。
OOPが人気になると、いくつかの試みがありましたが、いくつかの問題があります。最初に、真のOODBMSは実装が本当に難しいです。リレーショナルデータベースの場合、テーブルと関連するインデックスはかなり単純な構造です(例:Bツリー)もう1つの理由は、リレーショナルモデルの背後に多くの理論があり、それが数学的集合論から直接派生していることです。リレーショナルデータベースを正しく設計する方法はいくつか知られています(正規化など)。最後に、少なくとも、人々はすでにSQLにかなり慣れています。
ほとんどの場合、現代のNoSQLソリューションは、実際にはOODBMSに向けた一歩ではありません。それらの多くはまだリレーショナルであり、JOINs
のみが削除されています。それらのいくつかは実際にはオブジェクトストアですが、オブジェクト間の関係を認識していないため、実際にはOODBMSではありません。
OODBMSがそれほど強くないもう1つの理由は、「貧乏人のOODBMS」ソリューションであるORMがあるためです。よく知られた安定したテスト済みのDBエンジンに支えられているため、これは非常に人気を博していますが、オブジェクトへのマッピングを提供します。もちろん、これらは真のOODBではありません。