2015年2月10日火曜日

データベースまとめ 「データベース方式と設計 その1」

応用情報試験のデータベース分野のまとめとして,以下のポイントに絞って
書いていきたいと思う.

・データベースの基本
・キーの種類
・制約の種類


データベースの基本

データベース問題には,列,行,表のみでなく,多くの専門用語が飛び交い,
それが何を意味しているのかを知らなければ,問題を解くことが難しくなる.
そこで,以下に用語をまとめたいと思う.


上記に示すように,表全体の事を「デーブル」と呼び,通常は複数のテーブルが関係しあって,
一つのデータベースを構成する.

横の行は「タプル」や「レコード」と呼ばれ,例えば,一人の学生のデータを扱う 
ex.「ID001 は田中,住所は世田谷,実家は新大宮...」など

縦の列は「属性」や「カラム」.まれに「アトリビュート」と呼ばれるらしい.どんな属性を示すかを指す
ex.「このカラムは,住所を指す」

みたいな.


キーの種類

表において,ある属性を決めれば,特定の行が一意的に決まることがある.
その属性の事を「キー」と呼ぶ.
キーには3種類,

・スーパーキー・・・行を一意的に特定することのできる全ての属性の組み合わせ
・候補キー・・・スーパーキーであり,かつ冗長性のない属性の組み合わせ
・主キー・・・候補キーであり,NOT NULL制約を満たす(NULLを含まない)
※主キーは複数の属性で成り立つことがある.ex.下記の図では

がある.

以下の例において,



A→Bは,AがBを関数的に決定(Aが決まれば一意にBが決まる)するとして,

伝票番号→日付,顧客番号,顧客名
顧客番号→顧客名
商品番号→単価
{伝票番号,商品番号}→数量
という関係が成り立つとする.

スーパーキーは{伝票番号,顧客番号,商品番号}
ここから冗長性を取り除いたものが,候補キーになり,
候補キーは{伝票番号,商品番号}

候補キーと主キーの違いは「主キーはNULL値を許さない」という点です.


以上のキーを表で示すと,


となる.

一意性制約・・・同属性の中で同じ値をとらない.→ex.社員IDが重複しない

制約の種類

応用情報で大切な制約は以下の三つ
・参照制約
・一意性制約(UNIQUE制約)
・NOT NULL制約

特に参照制約を詳しく述べる.(下二つは上記で説明済み)

・参照制約(=外部キー制約)

これを理解するため

問題文にある
"新しいデータを追加するときに,他の表でキーになっている列の値がその表に存在しないとエラー"
これが,参照制約(=外部キー制約)です.

かんたんな言葉に置き換えると,
"他の表で主キーになってる属性(外部キー)をその表で勝手につくるとエラー"

ということ.

なので.ソフトウェア開発技術者試験 平成18年 春期 午前問70において,
外部キー制約に抵触しないためには,

"外部キーがない表から更新し,外部キーがある表を更新する際には,参照先の表が先に更新されていること"

が条件.

各表の外部キーと主キーを線で結ぶと,



※表cにおいて,事業本部コードは主キーかつ外部キー


あとがき
次回はUMLや,正規化の話をしたいと思う














0 件のコメント:

コメントを投稿