問題タブ [object-oriented-database]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python オブジェクトのクエリ言語
Python の「オブジェクト データベース」で SQL のようなクエリを実行できるライブラリを探しています。オブジェクト データベースとは、メモリ内の Python オブジェクトとリストのかなり複雑な構造を意味します。基本的に、これは「逆 ORM」です。リレーショナル データベースにオブジェクト指向インターフェイスを提供する代わりに、オブジェクト データベースに SQL 風のインターフェイスを提供します。
C# の LINQ は非常に近いです。Python のリスト内包表記は非常に優れていますが、複雑なこと (並べ替え、結合など) を行うと構文が複雑になります。また、リスト内包表記を使用してクエリを動的に作成することは (簡単に) できません。
実際の構文は、文字列ベースにするか、オブジェクト指向の DSL (from(mylist).select(...) など) を使用することができます。ライブラリが検索を高速化するために何らかのインデックスを提供する場合のボーナスポイント。
これは存在しますか、それとも発明する必要がありますか?
database-design - データベース内のすべてのインデックスを作成できるオブジェクト データベースはどれですか?
現在、db4oでは、コレクションのコンテンツに対するインデックス作成は許可されていません。データベース内の個々のフィールドのインデックスを作成できるオブジェクト データベースはどれですか?
例:
db4o がフィールド「thisIsNotIndexed」で検索するには、完全なオブジェクトをメモリにロードしてから、LINQ-to-Objects を使用してフィールドをスキャンする必要があります。これは、検索を行うためにデータベース全体を RAM にロードする必要がある可能性があることを意味するため、低速です。これを回避する方法は、検索するすべてのフィールドをルート オブジェクトに含めることですが、これは人為的な制限のように思えます。
この制限を受けず、サブオブジェクト内の任意の文字列のインデックス作成を許可するオブジェクト データベースはありますか?
アップデート
答え #1:
使いやすさ (階層構造) と、ツリー全体の完全なインデックス作成を使用した驚くほど高速なネイティブ クエリという、両方の長所を活かす方法を見つけました。これには、ちょっとしたトリックと、親ノードのコンテンツをキャッシュするメソッドが含まれます。
- 通常どおり、ネストされた階層を作成します。
- サブノードごとに、ノードの親への逆参照を作成します。
- 葉ノードを照会できるようになりました。途中まで到達しました - クエリを実行できますが、親ノードのパラメーターで検索する場合、ツリー ノードを上に移動するために結合を実行する必要があるため、処理が遅くなります。
- 高速化するには、検索語を親ノードにキャッシュする「キャッシュ」パラメーターを作成します。最初にnullに設定されているメソッドで、最初に呼び出されたときに高価な結合を行い、次にフィールドをミラーリングし、その時点から検索が非常に高速になります。
- これは、変化することのないデータ、つまり経時的な温度サンプルに適しています。データが変更される場合、ルート ノードの値が変更された場合に、キャッシュされた値をクリアする何らかの方法が必要です。たとえば、各リーフ ノードに「ダーティ」フラグを設定するなどです。
答え #2:
リストの代わりに配列を使用すると、SODA を使用して子ノードに降りることができます。リストを使用する場合、SODA はそれをサポートしていないため、SODA (または、LINQ、QBE、ネイティブ クエリなど、SODA に依存するもの) を使用してクエリを実行することはできません。
c# - DB4O のスケーラビリティ
DB4O オブジェクト データベースに関する情報を探しています。クライアント/サーバー モードがあることは知っていますが、それがどれほどスケーラブルかはわかりません。私はオブジェクト データベースのアイデアが大好きですが、自分のプロジェクトで使用する適切な OODB をまだ見つけることができませんでした。だから私の質問は:
- マルチクライアント環境に DB4O をデプロイした人がいる場合、RDBMS と比較してどのように機能するか興味がありますか?
- これまでに DB4O を利用した Web アプリケーションはありますか?
- SQL Server (少なくとも SQL Express) の代わりとして DB4O を使用できますか?
- DB4O が実際にサポートできる同時クライアント数はいくつですか?
- DBのサイズが大きくなるとパフォーマンスは低下しますか?
ありがとう
PS C#版に興味があります。
rdbms - 組み込みの nosql オープン ソース Java データベース
私はオープン ソース製品を開発しており、組み込みの dbms が必要です。組み込みのオープン ソース データベースをお勧めできますか?
- それぞれ10 GBを超えるオブジェクトを処理できます
- 埋め込みに適したライセンスを持っています (GPL ではなく LGPL)。
- ピュア Java である
- (できれば)nosqlです。Sqlは機能するかもしれませんが、nosqlを好む
mongodb のようないくつかのドキュメント DBMS を調べましたが、それらは 4 または 16 MB のドキュメントに制限されているようです。
Berkeley DB は魅力的に見えましたが、GPL ライクなライセンスを持っています。
Sqlite3 は魅力的です。優れたライセンスであり、任意の最大 blob サイズでコンパイルできます。しかし、それは Java ではありません。JDBC ドライバーが存在することは知っていますが、純粋な Java システムが必要です。
助言がありますか?
ありがとう
スティーブ
java - ObjectDBの本番環境は準備できていますか?
このベンチマークでは、ObjectDBははるかに高速なDBです: http ://www.jpab.org/All/All/All.html
しかし、ObjectDBから他のベンチマーク結果を見ることができません。ObjectDBを使用している人はいますか?生産準備はできていますか?経験は何ですか?
database - Web開発-オブジェクトデータベースとリレーショナルデータベース
多くのCRUDを含む通常のWeb開発にオブジェクトデータベースまたはリレーショナルデータベースを使用することの短所と長所は何ですか?
更新:私はネビルにそれを与えるために賞金報酬を再開しました。
database-design - 外部キーを使用する代わりに、別のテーブルからの行へのポインターをテーブルに格納します
c/java/etc のポインターを使用することが可能かどうか、ただ興味があります。外部キーに基づいてテーブルを結合する代わりの方法。また、このトピックに取り組んでいるので、postgres やその他の RDBMS は、結合時にポインタを使用して、FK を含むテーブル全体を検索する代わりに、外部キーによって参照される行をすばやく見つけますか?
c# - あるDB4Oセッションでオブジェクトを取得し、別のセッションに保存します(「切断されたシナリオ」)
DB4Oのクライアントセッション間でオブジェクトを使用できるようにする方法を見つけようとしています。私の理解では、クライアントセッションが閉じられると、オブジェクトはキャッシュに存在しなくなり、有効なUUIDがあるにもかかわらず、複製を挿入せずにストアを呼び出すことはできません。手動でキャッシュに再追加する方法を探しましたが、そのようなメカニズムはありません。再取得すると、現在は役に立たないオブジェクトからすべての値をコピーする必要があります。
上記のコードの段落は次のとおりです。
Eloqueraの最新バージョンは、[ID]属性またはStore(uid、object)を介して、これらのシナリオをサポートします。
何かご意見は?
orm - Relationaデータベース+ORMまたはオブジェクト指向データベース?
オブジェクト指向プログラミング言語、つまりJavaで1つのアプリケーションを作成したいとします。
フォローすることから何をするのが良いですか?
--リレーショナルデータベース、つまりmySQL +オブジェクトリレーションマッピング、つまりHibernateのいずれかを使用します
また。
-オブジェクト指向データベース、つまりdb4oを使用します
なんで?