[解決済み] DeterminantsとCandidate Keysは同じものなのか、それとも違うものなのか?
2022-02-25 02:16:25
質問
これ こんなのがありました。
定義 データベース・テーブルにおける決定子とは、他のテーブルに割り当てられた値を決定するために使用できる任意の属性のことです。 属性は、同じ行に存在します。
例 employee_id、first_name、last_name、date_of_birthの属性を持つテーブルを考えてみましょう。この場合、フィールド employee_id は残りの3つのフィールドを決定します。名前フィールドは というのも、その会社には複数の従業員がいる可能性があるからです。 同じ名字の従業員がいる。同様に、DOB フィールドは、employee_idやnameフィールドを決定しないためです。 複数の従業員が同じ誕生日を持つ可能性があります。
この定義は、候補キーにも適用できるのでは?
どのように解決するのですか?
私の理解では、テーブルが完全に正規化されていない場合、決定基は候補キーにならないかもしれません。実際、正規化されていないデータをより有用な正規化された形にするプロセスを説明するときに、行列式という単語が使われます。
この(明らかに非正規の)表を考えてみましょう。
CREATE TABLE US_Address (
AddressID int,
Streetline varchar(80),
City varchar(80),
State char(2),
ZIP char(5),
StateName varchar(80),
StateTax DECIMAL(5,2)
)
StateはStateNameとStateTaxの決定要素ですが、行の候補キーではありません。 したがって、適切な正規化により、StateName と StateTax は US_Address テーブルから State テーブルに移動します。
参照 ここで をご覧ください。
関連
-
[解決済み] テスト
-
[解決済み】ORA-01791: SELECTされた式ではない
-
[解決済み] ''付近の構文が正しくない
-
[解決済み] データ型 varchar の変換エラー
-
[解決済み] DELETE文の競合REFERENCE制約
-
[解決済み] ORA-01735: 無効な ALTER TABLE オプション - ヒキガエル
-
[解決済み] SQLクエリで2つの列から値を引き算する
-
[解決済み] SQLでchar値をmoneyに変換できない
-
[解決済み] ORA-01821: ISO 8601 のローカルタイム付き日付のフォーマットが認識されないエラー
-
[解決済み] 1行目4列目(年)の一括読み込みデータ変換エラー(型の不一致または指定したコードページに対して無効な文字)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】 "指定された集約関数を含まないクエリを実行しようとしました。"
-
[解決済み] varchar データ型から datetime データ型に変換すると、SQL クエリで範囲外の値が発生する
-
[解決済み】Postgresのエラー。式として使用されるサブクエリによって返される複数の行
-
[解決済み】テキストが切り捨てられた、または1つ以上の文字がターゲットコードページで一致しない アンピボットの主キーを含む
-
[解決済み】単一のクエリで加重平均を計算する
-
[解決済み] SQLエラーです。ORA-00922: オプションがないか無効です。
-
[解決済み] PostgreSQL - json 型の等値演算子を識別できませんでした。
-
[解決済み] アクセスクエリーエラー(from句のシンタックスエラー)
-
[解決済み] トリガーがコンパイルエラーで作成される
-
[解決済み] PLS-00428: この SELECT 文では INTO 句が必要です。