問題タブ [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.
mysql - SQLクエリでのforeachの使用、オブジェクト指向データベース
以下は、オブジェクト指向設定でのデータベースのスキームです。すべての関係は、オブジェクトのコレクションになります。学生は人であり、教員も人です。これらは、「isa」とラベル付けされた有向エッジとして表示されます。他のすべての有向エッジは、参照属性を示します。Course の PreReq 属性は参照のセットであることに注意してください。
これは私が書く必要があるクエリです: 各分類について、学生の数と平均 GPA をリストします。クエリでは、「Freshman」などの定数は使用できません。出力では、各タプルは Classification、NumOfStudents、および AvgGPA で構成されている必要があります。
定数を使用できれば、これができると思います。ある種の foreach が分類に役立つと思いますが、これを行う方法がわかりません。クエリは、基本的な mysql 構文を使用して記述する必要があることに注意してください。
mysql - オブジェクト指向データベースでのクエリ
以下はscheme
、オブジェクト指向設定のデータベースの場合です。すべてのリレーションはオブジェクトのコレクションになります。学生は人であり、学部も人です。これらは、「isa」というラベルの付いた有向エッジとして表示されます。他のすべての有向エッジは参照属性を示します。CourseのPreReq属性は一連の参照であることに注意してください。
これが私が書く方法を理解できないクエリです:
StudentIDによる登録コレクションを再編成します。学生ごとに、学生のIDと成績を取得します。グレードはCourseCode
、LetterGrade
属性で構成されるリレーションである必要があります。
再編成することで、データベースを更新するのではなく、その順序で情報を取得することを意味すると確信しています。
xml - XQuery でのオブジェクト指向クエリ
リレーショナル スタイルの結合を使用して XQuery クエリを作成するのに問題はありません。ただし、オブジェクト指向スタイルの構成を使用する際に問題が発生しています。xsd ドキュメントでスキームを見つけることができる xml データベースがあります -> http://pastebin.com/Jj6PMgxe。データベースの図は以下のとおりです。
成績で少なくとも 1 つの A を取得した学生の学生の StudentID とメンターの教員 ID をリストしようとしています。どんな助けでも大歓迎です。ありがとう
c# - Db4o - 永続セッションですべての新しいオブジェクトを更新する
Db4o で新しいオブジェクトを永続的な IObjectContainer にロードすることは可能ですか?
起動時に 1 つの接続 (IObjectContainer) を開くデスクトップ アプリケーションがあります。すべてのオブジェクトを次のようにクエリすると:
すべてのオブジェクトを完全に選択します。ただし、この後に別のクライアントが新しいクラスを追加した場合、同じクエリは引き続き同じオブジェクトを選択し、新しいオブジェクトは選択しません。
私も知っています:
しかし、新しいオブジェクトへの参照をアクティブ化していないので、そこにあります。新しいオブジェクトを更新するには?
注意: データが必要になるたびにセッションを開いたり閉じたりしたくありません。OODB (透過的なアクティブ化、ロード後のオブジェクトの永続性など) を利用したいのです。
ありがとうございました
UPDATE (理解を深めるためのコード例)
次のようなものが必要です:
java - Java オブジェクトのツリーを db またはファイルに保存するためのオープンソース ライブラリ
Java オブジェクト (およびその依存関係) を一種のスナップショットであるファイルまたはデータベースに透過的に保存するために使用できるオープンソース ライブラリを探しています。
ユース ケースの例: オブジェクト、プレーヤー、スコア、場所などのゲームの状態があります。ユーザーが [保存] をクリックすると、これらのオブジェクトを保存する必要があります (保存するすべてのオブジェクトに注釈を付けることができます)。ファイルまたはデータベース。後でシステムがクラッシュしたり、ユーザーがログインしたりしても、この時点から回復できるはずです。
可能な限り透過的かつ効率的に実行できるライブラリを探しています。お取引等は不要です。私の優先事項は
- オープンソース、無料、優れたドキュメント
- 使いやすさ。何かを変更した後、ユーザーがオブジェクトを手動で保存する必要はありません。彼がしなければならないのであれば、それは些細な活動であるべきです
- 安定
- スナップショットからの読み取りと回復が容易である必要があります。
上記の要件の 4 つすべてまたは少なくともかなりの部分をカバーするライブラリは存在しますか? 私はアスペクト指向のアプローチにオープンです
ユースケースに対して間違った q を尋ねていますか? 業界では非常に異なる方法で行われますか?
graph - オブジェクト データベースを使用して複雑なグラフの永続性を実現するにはどうすればよいですか?
私はいくつかのグラフを持っています。各グラフの幅と深さは変化する可能性があり、実行時に変更や変更が加えられます。グラフの例を参照してください。
グラフ全体 (つまりツリー) を保持するためのルート ノードがあります。ノードは複数の子を持つことができ、各子は特別な目的を果たします。さらに、特定の情報を取得するために、ノードはすべての直接の子にアクセスできます。一方、子ノードは、それ自体の親ノードも他の兄弟ノードも認識しない場合があります。これまでのところ、目を見張るものはありません。
各グラフを格納し、オブジェクト データベース (この場合は DB4O) を使用して更新することは、非常に簡単に見えます。リレーショナル データベースを使用してデータの永続性 (データベース トリガーなどを含む) を実現することもできましたが、代わりにオブジェクト データベースでそれを実現したいと考えました。
私のグラフには奇妙な点が 1 つあります。別のグラフの例を参照してください。
計算を適切に実行するために、一部のノードは他のノードからの情報を必要とします。これらの他のノードは、兄弟、子供/孫、または他の種類の関連である可能性があります。この場合、特定のノードは他の関連するノードも認識しています (したがって、それらから必要な情報を直接取得できます)。簡単にするために、最初の画像はすべての潜在的な接続を示していません。
1 つのノードの状態が変化した場合 (たとえば、内部タイマーによってトリガーされた、または他のノードによってトリガーされた)、他のノード (関心のあるオブザーバー、オブザーバー パターンも参照) にその変更について通知します。通知を受けた各ノードは、適切なアクションを実行して自身の状態を更新します (そして、必要に応じて他のオブザーバーに通知します)。何かが変更されたことを知っているのは関係するノードだけなので、ルート ノードは発生したすべての変更を認識しているわけではありません。このような一連のイベントがルート ノードによってトリガーされた場合、もちろん大きな問題にはなりません。
目的は、オブジェクト データベースでデータの永続性を保証することです。メモリ内のデータは、データベース内に保存されているデータと同期している必要があります。複雑さを増しているのは、グラフが単純な (そしてばかげた) データ ノードで構成されていないという事実ですが、多くの機能が各ノードに統合されているという事実です (つまり、グラフ全体の状態変化をトリガーするイベント)。
提示された問題に対処する方法について、大まかなアイデアがいくつかあります (例: (1) データと機能をより強力に分離する、(2) データベースをより強力に統合する、(3) データを更新する間隔を任意に設定し、データが更新される可能性があることを受け入れる)。一定期間同期がとれない)。私は、そのような重要な問題に関するいくつかの入力とオプションを探しています (これは、具体的な実装に大きな影響を与えることは間違いありません)。
(編集済み) 言い忘れた別の側面があります。グラフは常にメモリに常駐するべきではありません。不要なグラフはデータベースにのみ存在するため、停止状態になります。これは、考慮が必要なもう 1 つの問題です。一時停止中は、更新メカニズムもスリープ状態になる可能性がありますが、これは意図したものではありません。
java - db4oクラスモデルトランジェントフィールド
私はdb4oをDBMSとして使用していますが、質問があります。
モデルクラスのフィールドをデータベースに保存しないように指定する方法はありますか?
@Transient
リレーショナルデータベースを操作するときの注釈に似たものはありますか?
object-oriented-database - 「オブジェクトデータベース」とは何ですか。いつ使用するのが有益ですか。
私は、コンテンツがどのように関連しているかを理解するためにテーブル、行、列、および結合があるmysqlなどのリレーショナルデータベースであると私が理解していることをよく知っています。
誰かが私が忙しいプロジェクトにオブジェクトデータベースを使用することを提案しましたが、オブジェクトデータベースが何であるか、またそれがリレーショナルデータベースよりもいつ有益であるかはわかりません。
私はすでにグーグルで検索しました。ウィキペディアは豊富な情報(そう、皮肉)であり、私がたどったいくつかのリンクは特に啓発的ではなかったことを認めなければなりません。したがって、私は将来のグーグルに目を向けます。クラウドソーシング情報。誰かが私が読むことができる良い記事を知っていますか、または誰かが私にそれを説明することができますか?
前もって感謝します。
hibernate - Hibernate との OODB JPA 実装の違い
私はすでに Hibernate の経験がありますが、私が正しければ、それを使用して Versant の VOD のようなオブジェクト データベースにアクセスする方法はありません。彼らは JPA サポートのプレビューをリリースしたばかりなので、限られた Hibernate スキルを使用して JPA でオブジェクト データベースを使用できるかどうか疑問に思っていました。経験のある方は、これらのバージョンに互換性があるかどうか教えてください。
一番。
ハリー
sql - 巨大なバイナリ オブジェクトを格納して動的にアクセスするデータベースまたはその他の方法
いくつかの大きな (200 GB が通常) データのフラット ファイルがあり、データが論理的に編成されている直感的な方法ですばやくアクセスできるように、ある種のデータベースに保存したいと考えています。これは、非常に長いオーディオ録音の大きなセットと考えてください。各録音は同じ長さ (サンプル) で、行と見なすことができます。これらのファイルの 1 つには、通常、それぞれの長さが 2,000,000 サンプルの約 100,000 の録音が含まれています。
これらの記録を BLOB データの行としてリレーショナル データベースに格納するのは簡単ですが、データ セット全体の特定の列 (サンプル 1,000 ~ 2,000 など) のみをメモリにロードしたい場合がよくあります。これを行うための最もメモリ効率と時間効率の良い方法は何ですか?
推奨事項を作成するために、私のデータの詳細についてさらに明確にする必要がある場合は、遠慮なくお尋ねください.
編集:データの次元を明確にするために... 1つのファイルは、100,000行(記録)×2,000,000列(サンプル)で構成されています。私が調査したほとんどのリレーショナル データベースでは、1 つのテーブルに最大で数百から数千の行が許可されます。繰り返しになりますが、私はオブジェクト指向データベースについてあまり知らないので、そのようなものがここで役立つのではないかと思っています。もちろん、良い解決策は大歓迎です。ありがとう。
編集:データの使用法を明確にするために...データは、私が作成するカスタムデスクトップ/分散サーバーアプリケーションによってのみアクセスされます。各データ「セット」 (これまでは 200 GB ファイルと呼んでいました) には、メタデータ (収集日、フィルター、サンプル レート、所有者など) があります。また、各レコーディングに関連付けられたメタデータもあります (テーブル内の行になることを望んでいたので、レコーディング メタデータの各部分に列を追加するだけで済みます)。すべてのメタデータは一貫しています。つまり、特定のメタデータが 1 つの記録に存在する場合、そのファイル内のすべての記録にも存在します。サンプル自体にはメタデータがありません。各サンプルは、8 ビットの単純なバイナリ データです。