リレーショナルデータベース:キーと関係性
導入済み| English | 意味 |
|---|---|
| primary key/ˈpraɪməri kiː/ | 主鍵 |
| foreign key/ˈfɒrən kiː/ | 外部鍵 |
この観察を説明する要因は何か?
- 注文ごとにユーザー住所を複製すると、住所が変更された際に矛盾するレコードが発生する可能性がある。
- まず予測を立てる。比較したい量や特徴を明記し、2つの説明を区別できる証拠は何かを決定せよ。
モデルを構築する
- リレーショナルテーブルは行と属性で構成される。主鍵は行を特定し、外貨鍵は別のテーブル内の参照鍵にリンクする。正規化は意味ある関係を維持しつつ、避けられる重複と更新アノマリーを減少させることができる。
- プライマリキー:テーブルの行を一意に識別する属性セット;フォレインキー:他のテーブル内のキーを参照する属性セット。
顧客住所更新の重複を避けるために役立つ設計はどれか。
難易度 1/5 · 100 コイン + 今日初回完了時に小ボーナス付与
顧客テーブルに住所を一度保存し、注文を外部キーでリンクさせれば、各情報は一处でのみ更新されます。すべての注文に住所を繰り返すと重複したコピーが生じ、名前が一意である保証もありません。
各専門用語を正確な意味と対応させよ。
難易度 2/5 · 140 コイン + 今日初回完了時に小ボーナス付与
関連する物理量やプロセスを区別するために定義を使用せよ。
これを検証できる証拠を選ぶ
- ジョインは指定された条件に従って行を結合する。結果の行数は関係のカルディナリティとフィルタに依存する。外貨制約は関係ルールを強制するが、個人情報自体を自動的に暗号化するわけではない。
- 実際の個人情報を含さない小さな合成ユーザー-注文データセットを設計する。鍵を宣言し、重複および未参照の挿入をテストした後、クエリ結果を手計算による予想表と比較する。
この場合、調査やモデルをより妥当にする2つの習慣は何か。
難易度 2/5 · 140 コイン + 今日初回完了時に小ボーナス付与
条件や仮定を明記することで他者が正確に再現でき、根拠となる証拠を記録することで結論を検証できます。相反する結果を隠すと、誤った結論を疑う証拠を失いますし、単一の測定でより広い主張を成立させることはできません。
既知の量から始める
- 既知の値と単位を明記する。このケースに適応する仮定を持つ関係式を選び、代入前に変形する。
- 既知:4人の顧客はそれぞれ 2, 0, 3, 1 の注文を持っている。顧客から注文への内側結合(inner join)は、2+0+3+1 = 6 行を返す。左結合(left join)はまた、注文のない顧客を1つのnullマッチed行として保持するため、ここでは 7 となる。
3人の顧客が1、3、2件の注文を持っている。顧客-注文の内側ジョインは何行を返すか。同じ手順を使用する:既知量 → モデル → 関係式 → 代入 → 単位と解釈。
3人の顧客がそれぞれ1、3、2件の注文を持っています。顧客と注文の内側結合(INNER JOIN)が返す行数はいくつですか?
難易度 2/5 · 140 コイン + 今日初回完了時に小ボーナス付与
結果は 6 行です。既知:3人の顧客がそれぞれ 1、3、2 の注文を持っています。内側結合は顧客-注文ペアごとに1行を返すため、1 + 3 + 2 = 6 行となります。注文のない顧客は内側結合には追加されません。
結論とその限界を確認する
- 主鍵は必ずしも人名である必要はない。ジョインは単なるテーブルの連結ではない。生文字列からSQLを構築するのではなく、信頼できない入力に対してパラメータ化クエリを使用すべきである。
- 元の観察に戻り、結果が何を裏付けているか、どのような条件を前提としているかを説明し、対立する説明を検証する方法を一つ示す。
外部キーは各行を自動的に暗号化する。この主張は誤りである:外部キーはテーブル間の参照リンクであり、参照される行が存在することを強制する。暗号化を行わず、行のコンテンツを保護するのは別のセキュリティメカニズムである。
リレーショナルデータベース:鍵と関係:ジョインは指定された条件に従って行を結合する。結果の行数は関係のカルディナリティとフィルタに依存する。外貨制約は関係ルールを強制するが、個人情報自体を自動的に暗号化するわけではない。
外部キーは各行を自動的に暗号化する。
難易度 1/5 · 100 コイン + 今日初回完了時に小ボーナス付与
外部キーはテーブル間の参照リンクであり、参照先レコードが存在することを強制します。暗号化は行わず、レコード内容の保護は別個のセキュリティ機構です。
表の行を一意に特定する属性セットの技術用語を記せ。
難易度 1/5 · 100 コイン + 今日初回完了時に小ボーナス付与
主キーとは、テーブルの行を一意に識別する属性のセットを意味する。