忘れないためにデータベースの基礎知識を一問一答形式でまとめています
基礎情報技術者試験や応用情報技術者試験を受ける人に知識確認に役立つかもしれません!
テーブルにおける定義について
Q1「テーブルにおける外部キーと主キーの定義とその見極め方は?」
主キー:テーブルの各行を一意に区別できる値がかかれたカラムのこと。ひとつのカラムで一意に表現できないときは複数のカラムを組み合わせて主キー(複合キーと呼ぶ)となる。 また外部キーとの対応関係の中では主キーとは参照(結合)先のテーブルのカラムを表す
外部キー:参照(結合)の元となるテーブルのカラム。特定のテーブルの主キーを参照したいときにその結合元のカラム(大抵の場合主キー)を外部キーと表現する
またテーブル間の主キーから、どちらが外部キーとなるか判断するときはどちらのカラムに結合できるかで判断する
定義より結合元が外部キーで、結合先(結合したいもの)が主キーである
Q2「外部キーと主キー間での参照を成功させるために発生する参照制約とは?」
以下の2つ
・主キーにおける、外部キーに値が存在する行の削除
・外部キーにおける、主キーに値が存在しない行の追加
Q3「テーブル間の数的な対応関係(カーディナリティ)について覚えておくべきことは?」
主キー(参照先のカラム)と外部キー(参照元のカラム)は1対多(→)の関係。
多対多(↔)の関係は直接的に主キーと外部キーで表現できない(テーブル間を結合できない)ので、新たに中間テーブル(連関エンティティ)を挿入する
中間テーブルのカラムがそれぞれのテーブルに対する外部キーとなる(下図を参照)
Q4「テーブルにおける正規化と3パターンの正規形とは?」
正規化とは、データベース内にデータの重複をなくし、データ更新しやすくすることである。
第一正規形:テーブル中に複数の値を持つカラムを含まない形
第二正規形:第一正規形のうち、複数の主キー(複合キー)のうち一方だけに従属するカラムを含まない形
第三正規形:第二正規形のうち、主キー以外のカラムに従属するカラムを含まない形
ちなみに平成30年度の応用情報技術者試験では以下のように表現されていました
第一正規形:繰り返し属性が存在しない
第二正規形:どの非主キー属性も、主キーの真部分集合(元の集合とは一致しない部分集合)に対して関数従属しない
第三正規形:どの非主キー属性も、主キーに推移的に(間接的に)関数従属しない
→「主キー以外のカラムに従属するカラム」とは主キーからみると「主キーに間接的に従属しているカラム」である
web系の基礎知識
Q1「Cookieとは?」