問題タブ [candidate-key]
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.
relational-database - 主キーと候補キー - リレーショナル DBMS
私の理解では、主キーは、理論的な観点からランダムに選択された候補キーです。
この定義によると
' 候補キー – 候補キーは、データベース内で一意のキーとして認定できる任意の列または列の組み合わせにすることができます。1 つのテーブルに複数の候補キーを含めることができます。各候補キーは、主キーとしての資格を得ることができます。
主キー – 主キーは、レコードを一意に識別する列または列の組み合わせです。主キーにできる候補キーは 1 つだけです。
「各候補キーは主キーとしての資格を得ることができます」という文。および「1 つの候補キーのみが主キーになることができます。」主キーが候補キーから任意に選択された場合にのみ、論理的に矛盾しません。これは正しいです?
候補キーにはなく、主キーにはどのような特別なプロパティがありますか?
relational-database - データベース - この関係 R は BCNF にあり、依存関係は保存されていますか?
R(A,B,C,D,E,G,H)
最小限のカバーは次のとおりです。
候補キー:
BCNF の定義により、左側の属性はいずれも SK または CK ではありません。したがって、BCNF にはありません。すべての FD が BCNF に違反していると結論付けても安全ですか? もしそうなら、BCNF に分解する過程で、アルゴリズムが言うように、BCNF に違反する FD、例えば X->Y を取り、R1(XY) と R2( R -Y)の手順を実行します。
私たちの場合、FD全体でそれを行う必要がありますか? そうすれば最後にたどり着く
しかし、まだ G->C と H->D がなく、R6 は最初から FD にありません。それで、依存関係が維持されませんか?