2009-06-20 19 views
4

オープンソースのオブジェクト指向のC++データベースがありますか? https://stackoverflow.com/questions/74141/good-orm-for-c-solutionsオープンソースのC++オブジェクト指向データベース

をし、これらも同様にinteretingた:

私はここに掲載したようなオブジェクト指向の関係マッピング(ORM)のライブラリを見ていた Object-oriented-like structures in relational databases http://en.wikipedia.org/wiki/List_of_object-relational_mapping_software#C.2B.2B

私の経験では、これまで苦痛となっています。ソリューションは成熟しているようには見えず、一部をコンパイルするのにも困難があり、ドキュメンテーションとサポートは疎にすることができます。

私はあるレベルでは、SQLの学習を避けようとしています(私はデータベース開発者ではありません)。一方、ORMは本質的にオブジェクトをサポートしていないデータベースシステムの上にレイヤーを作成しているという点で、ORMはアーキテクチャ上の「回避策」です。

私の理想的なデータベースライブラリには、次のことをできるようになる:

  1. 1は、おそらくXMLまたは単にC++で、クラス名に基づいてオブジェクト階層ツリーを指定することができます。
  2. 永続化するクラスのフィールドを指定できます。
  3. オブジェクトの階層を作成、更新、削除、検索するためのAPIを提供します。
  4. 理想的には、ツリーノードへの同時アクセスを含む、インメモリツリー自体のAPIを提供します。

このようなカスタムデータベースとAPIを持つ組み込みシステムで作業していました。

私は自分自身とオープンソースを作成しようとしているところです。

私は使用できる棚から何かがあるかと不思議です。

私はこれを見た: http://en.wikipedia.org/wiki/Comparison_of_object_database_management_systems

と、これはうまくいくかもしれない把握しようとしています:事前に

http://www.fastdb.org/fastdb.html

感謝を。

+0

「シリアル化」と「ORM」と「データベース」を検索することで、さらに多くのものが見つかります。 – ChrisW

+0

勉強したくないと思ったことに基づくデザインは不幸に思える。 ORMを使う良い理由がありますが、無知は一つではありません。 –

答えて

1

正直言って、あなたが「出血」に陥っていない限り、私はOOデータベースから離れています。ほとんどすべての場合、十分にサポートされておらず、未熟であり、クライアント側でさまざまなサポートの問題があります。

問題は、リレーショナルデータベース(および特定の非リレーショナルデータベース)のみが注意の99%を取得するため、より成熟します。 ORMは回避策かもしれませんが、信頼性を望むなら、本当に必要なものです。

UPDATE:

明確にするために、私はいくつかの非常に信頼性の高いオープンソースOODBのアウトがあると確信しているが、「realiability」のための私の要件は、それがクラッシュしないと壊れないんか単なる以上のものデータ。これには、クライアントコネクタの信頼性、一般的な言語のオブジェクトモデルとの統合の信頼性などが含まれます。

これは、オープンソースのOODBであり、商用ではありません。

+0

プロダクションでいくつのOOデータベースを使用しましたか? –

+1

はい、「SQLについて学ぶのを避ける」というのはIMOではない理由です。シリアル化するフィールドを指定したら、SQLを使用することもできます。 – ChrisW

+0

ZODBと宝石は確かに出血していません。彼らは数十年前から存在してきました。 –

3

私は高品質のOSSデータベースを知らないので、推薦しません。しかし、私は次のような観察を行います:

  • OOデータベースはSQLを避ける方法ではありません - 両方が必要です。率直に言って、もしあなたがSQLをよく知っていなければ、プロのプログラマーとしてのあなたの人生は不幸になりがちです。

  • OOデータベースは成熟しており、20年以上にわたって使用されています。私は個人的には、15年前に金融業界の大規模なプロジェクトに個人的に使用しました。

  • OOデータベースは、リレーショナルデータベースが故障する場所で使用するのが最も適しています。複雑な金融商品モデリング、オイルパイプラインの最適化、通信業などで使用しています。

  • ORMデータベースはオブジェクト指向(OO)とリレーショナルモデルの悪い部分をとり、それらをさらに悪化させます。

  • 私のお気に入りの商用OODBはObjectStoreですが、今はかなり長い間作業をしていません。

希望が曖昧です。

+0

リレーショナルデータベースはどこで失敗しますか?つまり、「どのデータ/アプリケーション/要件ですか?」という意味です。 – ChrisW

+1

ツリー/グラフナビゲーション。 OOよりもリレーショナルではるかに遅い(1000倍)。 –

+0

ナビゲーション、ええ?私はネストされたセットモデルを使用してSQLにツリーを格納しています。したがって、ツリーやサブツリー/ブランチのレコードを選択することは安価で、データベースの外にあるオブジェクトツリーに戻します。 – ChrisW

関連する問題