1
データベース工学 2011 年度資料 1
2011/4-7 情報学科 最首 この資料の目次
情報処理推進機構が行う情報処理技術者試験について 1.E-R図について
情報処理技術者試験問題より引用 概念データモデル(概念モデル)
論理モデル
リレーショナルモデル(関係モデル、関係スキーマ)
スーパータイプとサブタイプ 包含と真部分集合
情報処理推進機構が行う情報処理技術者試験について
試験区分に「データベーススペシャリスト試験(春)」がある。この講義ではその午前の問 題でデータベース関連のものをとりあげる。以下がそのホームページでの説明である。
1.対象者像
高度 IT 人材として確立した専門分野をもち、データベースに関係する固有技術を活用し、
最適な情報システム基盤の企画・要件定義・開発・運用・保守におい て中心的な役割を果 たすとともに、固有技術の専門家として、情報システムの企画・要件定義・開発・運用・
保守への技術支援を行う者 2.役割と業務
データ資源及びデータベースを企画・要件定義・開発・運用・保守する業務に従事し、次 の役割を主導的に果たすとともに、下位者を指導する。
(1) データ管理者として、情報システム全体のデータ資源を管理する。
(2) データベースシステムに対する要求を分析し、効率性・信頼性・安全性を考慮した企画・
要件定義・開発・運用・保守を行う。
(3) 個別システム開発の企画・要件定義・開発・運用・保守において、データベース関連の 技術支援を行う。
3.期待する技術水準
高品質なデータベースを企画、要件定義、開発、運用、保守するため、次の知識・実践能 力が要求される。
(1) データベース技術の動向を広く見通し、目的に応じて適用可能な技術を選択できる。
(2) データ資源管理の目的と技法を理解し、データ部品の標準化、リポジトリシステムの企 画・要件定義・開発・運用・保守ができる。
(3) データモデリング技法を理解し、利用者の要求に基づいてデータ分析を行い、正確な概 念データモデルを作成できる。
(4) データベース管理システムの特性を理解し、高品質なデータベースの企画・要件定義・
開発・運用・保守ができる。
2 4.試験時間・出題形式・出題数(解答数)
午前Ⅰ 午前Ⅱ
試験時間 9:30~10:20(50 分) 10:50~11:30(40 分) 出題形式 多肢選択式(四肢択一) 多肢選択式(四肢択一)
出題数解答数 出題数:30 問解答数:30 問 出題数:25 問解答数:25 問
午後Ⅰ 午後Ⅱ
試験時間 12:30~14:00(90 分) 14:30~16:30(120 分)
出題形式 記述式 記述式
出題数解答数 出題数:3 問解答数:2 問 出題数:2 問解答数:1 問
過去の問題(過去問)は以下のURLにリンクがある。
http://www.jitec.ipa.go.jp/1_04hanni_sukiru/_index_hani_sukil.html 2010年(平成22年)の問題は以下のURLにリンクがある。
http://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2010h22.html
参考書
テクニカルエンジニア データベース2010年度 翔泳社
リレーショナルデータベース入門 増永著 サイエンス社 1991年 インターネット(e-words.jp, ウィキペディアなど)
http://hondou.homedns.org/pukiwiki/pukiwiki.php
Basic情報処理(データベース)カンニングペーパー
1.E-R 図について(
E-Rモデル)データを「実体」(entity)と「関連」(relationship)、「属性」(attribute)という 3 つの構成 要素でモデル化する「ERモデル」を図で表したもの。データベースを設計する際などに広 く用いられている。1975年、マサチューセッツ工科大学(MIT)のPeter Chen氏は「世の中 に存在するあらゆるものは、実体と関連という2つの概念で表現が可能」としてE-Rモデ ルを発表し、同時にER図を提唱した。
実体とは、簡潔に言えば名詞で表現されるものであり、管理の対象として存在するもので ある。関連とは、実体と実体の関係を示したものや、実体に対する操作などのことであり、
動詞で表現することができる。また、属性とは、実体の特性や実体に関する情報のことを 指す。
ER図の表現手法にはいくつかの記法が提唱されており、最初にChen氏が考案したものを
「Peter Chen記法」という。実体を四角形、関連をひし形で表すというシンプルな表記法 である。一方、データベースの設計に特化した表記法としては、米国標準技術研究所(NIST) が規格化した「IDEF1x(ICAM DEFinition Language)記法」、James Martin氏が提唱した
「IE(Information Engineering)記法」などがある。(e-words.jp より)
「拡張されたE-R図」が情報処理技術者試験では使用される
「拡張されたE-R図」がE-R図と異なる点
エンティティタイプにスーパータイプ、サブタイプが導入される
3 エンティティ
エンティティは対象事物をモデル化 1つのエンティティは属性をもつ データ制約が定義される
属性が値をもったものをインスタンスという。
エンティティとインスタンスの関係
エンティティ例 インスタンス例
エンティティ名 学生 学生
属性1 学生コード 07j5003
属性 2 学生名 青木功
……. 住所 八王子市
リレーションシップ
リレーションシップは業務ルールによって起きるエンティティ間の結びつき
2つのエンティティのインスタンス間に参照関係があれば、両エンティティはリレーシ ョンシップで結ばれる。
例: 履修、担当 という2つのエンティティがある
履修 担当
学生名 科目名
科目名 教員名
各インスタンスを下記のようにする。
両インスタンス間には下図のような線で結んだリレーションシップがある。
エンティティタイプについて
エンティティの構造を定義したものをエンティティタイプという。エンティティと同じ と考えてよい。
左図で四角はインスタンス、線は リレーションシップである。
左右で同じ科目名のインスタン スを結ぶ。
4 多重度
エンティティとリレーションシップの間にあるインスタンスの対応関係を多重度という。
相手の1つのインスタンスに対して自分側のインスタンスが常に1なら、矢印のつかない 直線で表す。
相手の1つのインスタンスに対して自分側のインスタンスが複数の場合があれば、矢印の ついた直線で表す。矢印の方向は「自分のエンティティの方向」である。
上例では以下となる。この例は「学生は科目を履修する」というルールに対応する。
多側 1側
上記の関係を「1対多」という。この例は「履修」リレーションシップである。
多重度には「1対1」、「多対多」がある。
多重性の判定
2個のエンティティA,B間の多重性については以下で多重性を決める。
① Aのインスタンス1個に対するBのインスタンスの数:多または1 Bのインスタンスの数が1のとき、B側のリンクは線(矢印なし) Bのインスタンスの数が多のとき、B側のリンクはB向きの矢印
② Bのインスタンス1個に対するAのインスタンスの数:多または1 Aのインスタンスの数が1のとき、A側のリンクは線(矢印なし) Aのインスタンスの数が多のとき、A側のリンクはA向きの矢印 問題1
次の各場合の多重度を図示しなさい。
5
6
上記4問について、以下のように解答しなさい。下記のA,B間に線を引いて解答する。
問題2
以下の多重性を「×対○」で答えなさい。×は上記の①、○は上記の②である。
問1: Aのインスタンス1個に対するBのインスタンスの数が0、1、2、5の場合 Bのインスタンス1個に対するAのインスタンスの数は1
問2:Aのインスタンス1個に対するBのインスタンスの数が1
Bのインスタンス1個に対するAのインスタンスの数は1、5,10の場合 問3:Aのインスタンス1個に対するBのインスタンスの数が1の場合
Bのインスタンス1個に対するAのインスタンスの数は1
オプショナリティについて
情報処理技術者試験では2006年から表記ルールにオプショナリティが加わる。
(Optionality 選択性)
オプショナリティでは多重度に「0」を含むか否かを表現する。
相手のインスタンスに対して自分側のインスタンスが必ず存在する場合、●で表す。
相手のインスタンスに対して自分側のインスタンスが存在しない場合があるとき、○で表 す。
A B
7 例:1対1
見積と契約の関係で表すと
見積は必ずしも成約に至るとは限らないが、成約した契約書は一つの見積書が基となる 見積がない契約は認められない
例:1対多
部署と社員の関係で表すと
一つの部署には社員が一名以上所属
社員が一人もいないが部署の名前だけ残っている 社員は必ずどこかの部署に所属している
例:多対多
商品と注文の関係で表すと
一つの商品に対して複数の取引先から注文が入る 顧客は一回の発注で複数の商品を注文できる 商品詳細のない注文はない
参考URL: http://blog.livedoor.jp/kistame228/tag/データスペシャリスト
8 連関エンティティ
多対多のリレーションシップは、そのまま論理データモデルにすると非正規形になる。
多対多を排除するため、そのエンティティA,B間に新たなエンティティCを設け、AとC の間のリレーションシップ、B とC の間のリレーションシップで古いリレーションシップ を置き換える。この新たに設けたエンティティCを連関エンティティという。
A,Bというエンティティがある。これが多対多の多重度のとき、Aの主キーa,Bの 主キーbとすると、(a,b)をインスタンスとするエンティティC を作ると、C が連関エンテ ィティである。(主キーの説明は後で行う)
例題
Aは商品、Bは購入者とする。1人の購入者は複数の商品を買う。1つの商品は複数の 購入者が購入する。従ってAとBは多対多の関係である。
Cを購入伝票とする。購入伝票には{購入日、購入者、商品}が記入される。購入伝票の 購入者は 1人、商品は 1個である。従って1つの購入伝票に対して、1つの購入者、1つ の商品である。これは上図の A,B からでるリンクの矢印のない端に対応する。1つの商品 に対しては複数の購入伝票が存在する。1人の購入者に対しては複数の購入伝票が存在する。
これは上図のCに入るリンクの矢印の端に対応する。
情報処理技術者試験から引用
2002年 問題26より 問題3
次ページの問題(2002年 問題26)で以下の問に答えなさい。
注文のインスタンスは注文伝票とする。
問1 1枚の注文伝票に書かれる商品の数はいくつか?
問2 注文伝票で同じ注文主である伝票の数はいくつか?
問3 1枚の注文伝票に書かれる届け先の数はいくつか?
問4 1つの商品に対する注文伝票はいくつか?
解答は「1」または「複数」とする。
9 (解 ア)
上記問題はあるエンティティから他のエンティティに複数の対応がある場合です。
「注文した顧客コード」、「届け先の顧客のコード」が「注文」のオブジェクトに記される。
2003年 問29より(次頁より)
これは「語学教材(教科書、辞書など)を販売する会社で営業員は複数の担当地域が決めら れている。担当地域の顧客から受注を得る。1地域を複数の営業員が担当」という問題であ る。エンティティは営業員、地域、担当地域、受注、顧客、受注明細、教材である。
問題4
上文より以下の質問に答えなさい。
① 営業員と地域の多重度、②担当地域と顧客の多重度、③顧客と受注の多重度、
④ 受注と受注明細の多重度、⑤教材と受注明細の多重度
受注明細には{月日、1発注者、1受注教材}が記されるとする。
解答:①多対多(営業員は複数の担当地域が決められる。1地域を複数の営業員が担当)
② 1対多(1顧客の地域は1つ、1地域に複数の顧客)
③ 多対1(1受注に1顧客、1顧客に複数受注)
④ 1対多(受注と受注明細は1受注に複数受注明細、1受注明細に1受注)
⑤ 多対1(1受注明細に1教材、1教材に複数の受注明細)
10
問題 下記のアからエで下記のエンティティの多重度を書きなさい。
ア イ ウ エ
営業員と地域
担当地域と顧客
顧客と受注
受注と受注明細
教材と受注明細
解答は各欄に下記の1から4で答えなさい。
解答候補 1.1対1 2.1対多 3.多対1 4. 多対多
11
(解 ウ)
2004年 問題26 より
問題5 (1)利用者と予約の関係について説明しなさい。
(2)予約と図書タイトルの関係について説明しなさい。
(3)所蔵図書と図書タイトルの関係について説明しなさい。
12 (解答 ウ)
問題6
上記の問題で以下の問に答えなさい。「1」または「複数」で答えなさい。
所蔵図書エンティティのインスタンスは所蔵図書カードとする。
予約のインスタンスは予約票とする。
問1 1枚の予約票に書かれる利用者IDの数はいくつか?
問2 予約票で同じ図書タイトルIDの予約票の数はいくつか?
問3 所蔵図書カードで同じ図書タイトルIDのカードの数はいくつか?
2005年の問題32より
問題7 以下に答えなさい。
1.タイトルとビデオの多重度は何を表すか。
2.予約と貸し出しの多重度は何を表すか。
13 (解答 イ)
2006年の問題より
2006年の問題16は自己参照の場合である。
組織というエンティティに「子組織」というデータ項目がある。問題16に「自己参照は除 くものとする」と書かれている。「エンティティの各オブジェクトがそれ自身以外のオブジ ェクトを参照している」ということである。
ネットワーク構造の場合でも、間接的に自己参照にならないようにする必要がある。
(解答 ア)
説明: 組織のインスタンスを a,b,c,d,e とする。
a の子をd。 bの子をd,e。cの子をa,b,e とする。右図になる。リンクの子の側に●印を
14 付けた(このようなものは使用しない)。
上図で、受講は{受講コード、教師、受講生、教科コード、その他}からなる。教師、
受講生の項には「人のID」が入る。(解答 イ)
関連に付されたロールについて:教師を人のIDで表す場合、教師をロールという。役割と いうこと、受講生についても同じ
15 (解答 エ)
上図では会社のインスタンス1個について人のインスタンスが「0以上」が対応 人のインスタンス1個について会社のインスタンスが「0~5」が対応する。
雇用履歴は{会社ID,人ID}からなる。従って人のインスタンス1個について雇用履歴 のインスタンスが「0~5」が対応する。会社のインスタンス1個について雇用履歴 のインスタンスが「0以上」が対応する。
2007年問題31より UMLによるモデルの表記
上記では実績、予定のエンティティはトランザクションエンティティを継承している。
月毎に期首在庫量、トランザクションの実績、予定が決まっている場合を想定する。
保有エンティティは品目、倉庫エンティティの連関エンティティである。保有エンティテ ィはインスタンスは{品目ID、倉庫ID、期首在庫量、その他}からなる。また保有エンティ ティは在庫エンティティと 1 対多の関係なので、在庫エンティティのインスタンスは{保
有ID、数量、指定日、その他}からなる。
在庫インスタンスの数量は上図の式で与えられるから、トランザクションが発生する毎に 変わる。その値を持った在庫インスタンスが存在することになる。
また保有エンティティはトランザクションエンティティと 1 対多の関係なので、トランザ クションエンティティのインスタンスも{保有ID、数量、移動日、その他}となる。
この保有IDから、品目ID、倉庫IDが決まる。
16 (解答 イ)
2008年問題31より
(解答 イ)2006年問題27と同じ
17 概念データモデル(概念モデル)
データベース化の対象となる実世界のデータ構造が認識され、ある記号系で記述される。
それを概念データモデル(または、概念モデル)という。E-Rモデルもその1つである。
論理モデル
概念モデルは DBMSで管理可能な表現になっていないことがある。それを DBMSで実動 可能な表現にモデル変換したものが論理モデルである。現在論理モデルを記述するのに使 用される記号系は以下である。
リレーショナルデータベース ネットワークデータベース ハイアラキカルデータベース
論理モデルは概念スキーマとも呼ばれる。
リレーショナルモデル(関係モデル、関係スキーマ)
1970年に IBM のコッドが提案した論理モデルである。これに基づきリレーショナルデ ータベースが構成される。
スーパータイプとサブタイプ
スーパータイプとサブタイプの間のリレーションシップの表記ルール
汎化、専化関係を表現するのにスーパータイプ、サブタイプというエンティティを 用いる。汎化では複数のサブタイプの共通の属性を持つ1つのタイプを作り、スーパータ イプとする。サブタイプを汎化したのがスーパータイプである。
サブタイプの属性は、その共通の属性を除いた属性となる。
サブタイプはスーパータイプの持つ属性とリレーションシップを継承する。
更に、サブタイプは固有の属性とリレーションシップを持つ。
スーパータイプとサブタイプの主キーは同一である。
記述方法
サブタイプとスーパータイプの間に線を引き、途中に△を置く。(下記参照)
問題8
スーパータイプ1個、サブタイプ2個からなる例を書きなさい。
包含と真部分集合
エンティティはインスタンスの集合なので、あるエンティティに含まれるすべての インスタンスが、別のエンティティのインスタンスの集合に含まれることがある。
これを包含関係になるという。エンティティAはインスタンスの集合をIA,
18 エンティティBはインスタンスの集合をIBとする。
IA={x,y,z,w,v,}、IB={y,w}とする。IAはIBを包含している。IAとIBは等しくない。
この場合、IBはIAの真部分集合という。この場合、エンティティ Aをスーパータイプ、
エンティティBをサブタイプとする汎化関係を結ぶことができる。
19