問題タブ [relational]

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.

0 投票する
2 に答える
5085 参照

database - 実世界のMySQL/Postgresデータベーススキーマの例と分析ツール

私はスキーマの進化について分析を行っていますが、少し進化してバージョン管理に保存されている実際のデータベーススキーマには実際には達していません。Mediawiki(http://svn.wikimedia.org/svnroot/mediawiki/trunk/phase3/maintenance/tables.sql)はこれまでのところ非常に良い候補のようです。Bugzillaを検討しましたが、Mediawikiのようにトランクに.sqlファイルがないようです。データベーススキーマ/テーブルを構築するPerlスクリプトを実行する必要があるため、mediawiki(tables.sql)のように1つのファイルだけを取得するのではなく、基本的に、スキーマの変更を理解するために、さまざまなリビジョンのBugzillaフォルダー全体をダウンロードする必要があります。

質問1: オープンソースであり、リビジョン管理下にあり、スキーマ進化分析を行うのに十分な大きさの変更(できればDDLスクリプト-.sqlファイル)の大規模なデータベーススキーマを知っているか、使用したことがあるかどうか疑問に思います。

質問2: また、.sqlファイル(DDLスクリプト)の分析(テーブル/列数、リビジョン間のパッチなど)を提供するツールに出くわしたことがありますか。私が見つけたすべてのツールでは、分析を行う前に.sqlファイルをデータベースにロードする必要があります。

どちらの質問でも、データベースとしてMySQLまたはPostgresが推奨されます。

このコミュニティの仲間からの返答を歓迎します。

ありがとうございました、

ベンカテッシュマンダラパ

0 投票する
3 に答える
2772 参照

data-structures - リレーショナル データベースの効率的な永続データ構造

リレーショナル モデルの実装に使用できる永続的なデータ構造に関する資料を探しています。

不変のデータ構造の意味での永続性。

良いリソース、本、論文などを知っている人はいますか?

(私は既にPurely Functional Data Structuresという本を持っています。これは私が探しているものの良い例です。)

0 投票する
21 に答える
174945 参照

sql - テーブルの主キーのベスト プラクティスは何ですか?

テーブルを設計するとき、私は一意の 1 つの列を持ち、主キーを作成するという習慣を身につけました。これは、要件に応じて次の 3 つの方法で実現されます。

  1. 自動インクリメントする ID 整数列。
  2. 一意の識別子 (GUID)
  3. 行識別子列として機能する短い文字 (x) または整数 (またはその他の比較的小さい数値型) の列

数値 3 は、かなり小さなルックアップに使用されます。ほとんどの場合、一意の静的な長さの文字列コード、または年やその他の数値などの数値を持つ可能性がある読み取りテーブルです。

ほとんどの場合、他のすべてのテーブルには、自動インクリメント整数または一意の識別子の主キーがあります。

質問 :-)

私は最近、一貫した行識別子を持たず、主キーが現在さまざまな列にクラスター化されているデータベースでの作業を開始しました。いくつかの例:

  • 日時/文字
  • 日時/整数
  • 日時/varchar
  • char/nvarchar/nvarchar

これには有効なケースがありますか?これらのケースでは、ID 列または一意の識別子列を常に定義していました。

さらに、主キーがまったくないテーブルが多数あります。正当な理由があるとすれば、それは何ですか?

なぜテーブルがそのまま設計されたのかを理解しようとしていますが、私には大きな混乱のように見えますが、それには正当な理由があったのかもしれません。

答えを解読するのに役立つ 3 番目の質問: 複合主キーを構成するために複数の列が使用されている場合、この方法と代理/人工キーに比べて特定の利点はありますか? 私は主にパフォーマンス、メンテナンス、管理などに関して考えていますか?

0 投票する
6 に答える
298 参照

database-design - 質問状態を監査するための関係エンティティのモデリング

これはしばらくの間私を疑わせたものなので、ここに投稿して洞察を見つけるのは良い考えだと思いました。これはリレーショナルデータベースモデリングの問題/疑いです。

私は次の問題を抱えています:

特定の「状態」にある必要がある「質問」があり、状態のすべての変化を監査する必要があります。

私はこれに対する2つの解決策を見つけましたが、もしあれば、それらの違いを実際に見ることはできません...あなたはどう思いますか。

これが両方の図の画像です。

編集:

オプションA:テーブル「questions」にはstate_idを含めないでください。また、Question_Stateには「id」フィールドを含めないでください。間違いでごめんなさい。

EDIT2

すべての実世界の例と洞察に感謝しますが、これは学術的な問題であり、実世界に関連するものではありませんでした:)。

ダイアグラム

0 投票する
18 に答える
14072 参照

mysql - リレーショナル データベースの行を削除または無効にする必要がありますか?

スペースがそれほど大きな問題ではない新しいプログラムでは、行を削除するか、ブール値の「無効」と言って行を無効にし、プログラムにそれを無視させる方がよいでしょうか?

たとえば、プログラムからユーザーを削除したい場合。

0 投票する
2 に答える
12216 参照

database-design - リレーショナル データベースにどのようにトライを格納しますか?

プレフィックストライがあります。リレーショナル データベースでこの構造を表すために推奨されるスキーマは何ですか? 効率を維持するには、部分文字列の一致が必要です。

0 投票する
10 に答える
2854 参照

sql - 1 回のクエリで ID から関連データを取得する最良の方法は何ですか?

各行に、他のテーブルの他のデータに関連する ID を持つフィールドがいくつかあるテーブルがあります。

peopleという名前で、各人が 、および の ID を持っているとcitystateましょうcountry

したがって、さらに 3 つのテーブル 、citiesstatesおよびcountriesそれぞれが ID と名前を持つことになります。

人を選択するとき、1 回のクエリで の名前を取得する最も簡単な方法は何ですか?citystatecountry

注:これは結合で可能であることはわかっていますが、関連するテーブルが増えるため、ネストされた結合によりクエリが読みにくくなります。よりクリーンな方法があるかどうか疑問に思っています。人がそれらのフィールドを空にすることも可能であるべきです。

0 投票する
2 に答える
687 参照

database - 私の関係代数は正しいですか?

2つの問題に対して関係代数を作成する必要があるデータベース割り当てがあります。私はそれの大部分でかなり大丈夫だと感じていますが、別のテーブルに結合されているテーブルから属性を投影しようとすると混乱します。

たとえば、これは正しいですか?

Q1)受付係がまだどのインシデントに電話をかける必要があるかを知ることができるように、電話をかけなかったインシデントの詳細をリストしてください。

私が関係代数に解釈しようとしているSQLは次のとおりです。

アドバイスをいただければ幸いです。

0 投票する
7 に答える
53758 参照

database - リレーショナル データベースの代わりにドキュメント ベースのデータベースを使用する必要があるのはなぜですか?

リレーショナル データベースを使用する代わりに、CouchDB のようなドキュメント ベースのデータベースを使用する必要があるのはなぜですか。ドキュメント ベースのデータベースがリレーショナル データベースよりも適している典型的な種類のアプリケーションまたはドメインはありますか?

0 投票する
9 に答える
10993 参照

java - リレーショナル DB を使用せずに Java でオブジェクトを格納および取得する簡単な方法は?

Hibernate のようなリレーショナル DB / ORM を使用せずに、Java でオブジェクトを格納および取得する「簡単な」方法を知っていますか?

[オブジェクト グラフの途中で任意のオブジェクトを取得することはできないため、この目的のためにそのままのシリアル化を検討していないことに注意してください。ライセンスが制限されているため、DB4O も検討していません。ありがとう。]

「簡単」の意味: キー/値のペアなどの低レベルの詳細を処理してオブジェクト グラフを再構築する必要がないこと (BerkeleyDB や従来のキャッシュの場合と同様)。同じことが、ドキュメント指向または列指向の DB (CouchDB、HBase、...、さらには Lucene) からオブジェクトを再構築する場合にも当てはまります。

おそらく、私が気付いていない、前述のストレージ システムとオブジェクト モデル (RDBMS の場合の ORM など) との間の統合レイヤーを提供する興味深いプロジェクトが存在します。

本番環境でそれらをうまく使用している、またはリレーショナル DB 以外の永続化戦略を試している人はいますか? RDFストアはどうですか?

更新: 非常に興味深い記事を見つけました:分散型キー値ストアのリスト