問題タブ [relational-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.

0 投票する
8 に答える
726127 参照

sql - Oracle のビューとマテリアライズド ビューの違いは何ですか?

Oracle のビューとマテリアライズド ビューの違いは何ですか?

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

database-design - リレーショナルキャンプと「現実世界」のデータベース開発

1995年にDate'sとDarwenの「 TheThirdManifesto」が最初に発行されてから、10年以上が経過しました。

今日のデータベースの世界では、リレーショナルスクールの考え方はどこにありますか?マニフェストのアイデアが主流のソフトウェア開発とデータ管理の慣行を変えたという証拠はありますか?彼らは新しいデータ管理製品の作成を促進しましたか?これらの製品は商業的に成功していますか?

0 投票する
4 に答える
852 参照

php - 関係に関するデータベース設計の問題

検討中の設計を実装するためのコードを一切使用せずに設計された既存のデータベースのアップグレードに取り組んでいます。今、私はデータベース設計をコードで実装するという点で壁にぶつかりました。データベースの設計に問題があるのか​​、それとも、何をする必要があるのか​​について正しい解決策が見当たらないだけなのかどうかは確かです。

基本的なロジックでは、次のように規定されています。

  1. ユーザーは、シートを介してオンライントレーニングにアクセスします。ユーザーは複数のシートを持つことができます。
  2. シートは企業によって購入され、製品と多対多の関係があります。
  3. 製品は、モジュールと多対多の関係にあります。
  4. モジュールは、レッスンと多対多の関係にあります。
  5. レッスンは、エンドユーザーがトレーニングのためにアクセスするものです。
  6. 水を濁らせるために、何らかの理由で、一部のユーザーは同じ製品を含む複数のシートを持っています。
  7. 認定は、シートごとではなく、製品ごとに行われます。
  8. ユーザーは、レッスンの現在のステータスまたはスコアを保存するレッスンと多対多の関係を持っています。
  9. ユーザーは、製品のすべてのモジュールのすべてのレッスンを完了すると、製品の認定を受けます。
  10. 特定のモジュールのすべてのレッスンがユーザーによっていつ完了するかを知ることも重要です。
  11. 一部のシートは再認定用になります。つまり、以前に製品の認定を受けたユーザーは、サインアップして再認定試験を受けることができます。
  12. ルール11により、ユーザーは複数の認証レコードを持つことができます。
  13. 編集:ユーザーがレッスンを完了すると(スコアが80%を超える)、ユーザーは(現在のビジネスロジックに従って)レッスンを含むすべての製品とすべてのシートのレッスンを完了します。

私が多かれ少なかれ説明したように、現在の設計とビジネスロジックで遭遇し続ける問題は、ユーザーが特定の製品とシートの認定を受けているかどうかと、それらがいつ認定されているかを効果的に結び付ける方法が見つからないことです。してない。私は、どのシートがユーザーに対して認定されているか、どの製品が認定されていないかを確認しようと、ひっかかりを続けています。問題の一部は、それらが現在異なるシートの下で同じ製品の複数に登録されている場合、製品を1回だけカウントする必要があるためです。

以下は、関連するスキーマの部分のコピーです。デザインを改善する方法やコードで関連付けを描画する方法についての提案をいただければ幸いです。重要な場合、このサイトはLAMPPスタック上に構築されています。

ここでデータベーススキーマの関連部分を表示できます。http://lpsoftware.com/problem_db_structure.png

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

database - データベース結合はいつ、なぜコストがかかるのですか?

私はデータベースについていくつかの調査を行っており、リレーショナル DB のいくつかの制限を調べています。

大きなテーブルの結合は非常にコストがかかると思いますが、その理由は完全にはわかりません。結合操作を実行するために DBMS は何をする必要がありますか?ボトルネックはどこですか?
非正規化は、この費用を克服するためにどのように役立つでしょうか? 他の最適化手法 (インデックス作成など) はどのように役立ちますか?

個人体験も大歓迎!リソースへのリンクを投稿する場合は、ウィキペディアを避けてください。私はすでにそれを見つける場所を知っています。

これに関連して、BigTable や SimpleDB などのクラウド サービス データベースで使用される非正規化アプローチについて疑問に思っています。この質問を参照してください。

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

sql - Cross Join の用途は何ですか?

クロス結合は、2 つのセットのタプルに対してデカルト積を実行します。

このような SQL 操作が特に役立つのはどのような状況ですか?

0 投票する
8 に答える
309946 参照

mysql - MySQL でリレーションシップを作成する方法

クラスでは、全員がデータベースを「勉強」しており、全員が Access を使用しています。これに飽きて、私はクラスの残りの部分が行っていることをしようとしていますが、Access を使用する代わりに MySQL を使用して生の SQL コマンドを使用しています。

データベースとテーブルを作成できましたが、2 つのテーブル間の関係を作成するにはどうすればよいですか?

次のような 2 つのテーブルがある場合:

2 つのテーブル間に「関係」を作成するにはどうすればよいですか? 各アカウントに 1 つの customer_id を「割り当て」たい (所有者を示すため)。

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

database - ドキュメントベースのデータベースとリレーショナルデータベースの長所/短所

私は、ドキュメントベースのデータベース(この場合はCouchDB)でいくつかの要件を達成できるかどうかを確認しようとしてきました。2つの一般的な要件:

そして私は、ドキュメントベースのデータベースがこれらの要件に対処するための最良の選択ではないと考え始めています。さらに、ドキュメントベースのデータベースの使用を想像することはできません(おそらく私の想像力はあまりにも限られています)。

これらの要件にドキュメント指向データベースを使用しようとしたときに、ニレに梨を求めているかどうかを説明してもらえますか?

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

mysql - Is there a tool that can visually map table relationships in MySQL?

I'm looking for a tool that can map the relationships in my database in mysql. I would like something like the view that is generated in MS-SQL Server Management Studio in the 'Show Diagram Pane'. Does such a thing exist?

I'm in charge of the design of the database and its using rails conventions. I would not be adverse to specifying relationships by hand.

0 投票する
26 に答える
30852 参照

algorithm - 主キーはどうですか?

私のチームでの活発な議論の中で、ほとんどの人が主キーとして好むものを考えさせられました。次のグループがありました-

  1. 自動インクリメントが十分な主キーである Int/ BigInt 。
  2. 主キーを構成する列は少なくとも 3 つ必要です。
  3. Id、GUID、および人間が判読できる行識別子はすべて、異なる方法で処理する必要があります。

PK の最適なアプローチは何ですか? あなたの意見を正当化できれば素晴らしいことです。上記よりも良いアプローチはありますか?

編集: 適切にスケーリングされる行の人間が読める識別子を生成するための簡単なサンプル/アルゴリズムを持っている人はいますか?

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

theory - データベース クエリの標準形式はありますか?

「最適化されたクエリジェネレーター」を作りたいとしましょう。基本的に、時間/スペースの制限に基づいて SQL サーバーに配置できるものよりもはるかに優れた SQL クエリ オプティマイザーです。クエリと DB 統計を入力として取り、ターゲット システムに合わせて調整された SQL クエリを生成し、ほぼ理想的な計画にすばやく最適化します。

どの程度の SQL をサポートする必要がありますか? ほとんどの有用なクエリを簡単に記述できるほど柔軟でありながら、完全な SQL よりも十分に小さく、切り詰める価値のある SQL のサブセットはありますか? また、「マシンの近く」に固執する必要がない場合、クエリを説明するより良い方法はありますか?

既存の SQL を処理するプログラムではなく、新しい SQL を作成するためのツールを考えています。入力言語がクエリの要件を記述できる限り、実際に SQL を入力として受け取る必要はありません。

質問の別の形式は次のようになると思います:パフォーマンスのためだけに存在し、読みやすさ/理解度を向上させることのないSQLの部分はありますか?


誰かが指摘したように、これを行うには「大量の製品固有の知識」が必要であり、それ(たとえば、ネストされたサブクエリと何でも、どの種類のインデックスを使用する必要があるか、そのようなこと) は、まさにツールがカプセル化することを意図したものです。ユーザーがその知識を学ぶ必要がないようにします。


注:実際のクエリ プランの生成には興味がありません。これは DBMS の仕事であり、とにかく SQL からは実行できないからです。特定の DBMS 用に調整する必要のない入力から、その DBMS 用の適切な SQL を作成する作業を自動化できるシステムに興味があります。