データモデリング論 - Data Engineering Lab

データモデリング
情報システム学科
島川 博光
講義について
• 教科書
– 10回:優秀な設計者の恣意的手法
• 真野 正 著,実践的データモデリング入門,翔泳社
– 2回:大衆の意見をモデル化
• T.Segaran著,富山訳,集合知プログラミング,オライリー
– 3回:演習
• 単位認定のための評価
– 定期試験
– 頻出する小テスト、たまに出すレポート
– クイズは評価に関係しない
なぜモデリングを行うのか?
モデルとは
– theoretical description that can help you
understand how the system works (COBUILD)
– 複数の人の間で共通の理解をもつために、対象の
関連特性だけを取り出して形式的に説明したもの
– 要は、
「からくりを、皆がわかるように説明する」
[例]
チケット屋はなぜ新幹線切符を安く販売できるの?
質屋はなぜ成り立つのか?
データ・モデリング
• 教科書では
システムの対象(こんなシステムを作りたいといっ
たイメージ)を定まった記法で表現したもの
– 誰が読んでも、同じものと理解されること
形式的でなければならない
– 誰でも簡単に理解できること
図による表現が便利
Quiz: 形式的表現とは
•
形式的: 英語では formal
①
②
③
④
数式を用いた表現
形にこだわった表現
規則どおりの表現
計算機(ソフトウェア)が解釈できる表現
恣意的なデータモデルの種類
• システム開発工程による分類
• 対象範囲による分類
• 技法による分類
– DOA ( Data Oriented Approach)
• データ中心の分析
– UML ( Unified Modeling Language)
• オブジェクト指向分析でよく使われる
• DBによる分類
– 関係DB
– オブジェクト指向DB
– 両者の直感的違いは
• オーダーメード のデータ vs. 既成 のデータか
Quiz: RDB 対 OODB
以下の文は,○か×か?
• RDBはいろいろなアプリケーションに柔軟に対応で
きる.
– でも,アプリケーションにあわせてデータ構造を組みなお
さないといけない
• OODBはRDBに比べて速い
– OODBがもつデータ構造がそのまま使えるなら○
[補助] 関係DB v.s. OODB
• 関係DB
– 表をjoinして目的の情報
を得る
• OODB
– 目的の情報をインスタン
スとして最初から記録し
ておく
システム開発のフェーズによる分類
1. 概念モデル
•
•
システム構築の最初に作成
開発要件を盛り込んだモデル
•
システム構想段階でのラフ・スケッチ
2. 論理モデル
•
•
概念モデルに必要なデータ項目をすべて付加したモデル
本講義の前半10回の主目的
3. 物理モデル
•
•
•
DBのテーブルと1対1に対応
DBMSに依存
1つの論理モデルに複数の物理モデルが存在
トップダウン分析とボトムアップ分析
• トップダウン分析
– 分析者が必要であろうとおもうテーブルやデータ
項目を定義する演繹的分析
• ボトムアップ分析
– (現行の)画面、帳票、データベースから、テーブ
ルやデータ項目を抽出する帰納的分析
• 双方を組み合わせて用いる
データモデルの構成要素
• エンティティ(entity)
:実体
– モデリングの対象
• 人、もの、場所などの目に見える実体
• 入出金、購入などの目に見えない実体
– 最終的にRDBのテーブルとして実装
• インスタンス(テーブルでは行、関係DBではtuple)の集まり
• 属性(attribute)
– エンティティの構成要素
– データ項目(テーブルでは行内の各セル)
• リレーションシップ(relationship)
– エンティティ間の関連を示す
– 1対1,1対多,多対多の関連が考えられる.
[補助] インスタンスと表
月3
火2
火3
分散システム
データモデリング
データモデリング実践
・・
・・・
高田先生
島川
池田先生
・・・・
属性 時限
属性
属性
科目名
担当教員
関係
月3
分散システム
インスタンス
表
(テーブル)
高田先生
ER図
• エンティティとリレーションシップを図で表現
• 教科書はERモデルとER図を同義に用いる
• いくつかの方式
– Peter Chen記法
• ERモデル創始者の記法
• 実用上はやや使いにくい
– IE記法
• Martinが提案
– IDEF1X
• メジャーなDOAツールのERWinで採用
• 本書はIDEF1Xを使用
モデルの読みかた
矩形で表現
角があるもの
角がないもの
実線と点線
矩形の中に書く
リレーションシップの読み方
• エンティティ間の関係を 動詞 で表現
• Quiz:
– どちらのエンティティを主語にして,どちらを目的
語にするか?
• ●のついた方
• ●のついていない方
• どちらでもよい
– 本書では意識していない
– 対象業務のイメージが掴めればそれでよいという
立場をとっている.
表記の例
FKとは外部キー
(「構成メンバ」の存在が
「開発プロジェクト」に
依存することを意味する)