第4章 データとモデル 本章の目的 • コンピュータで情報をあつかいたい → 情報を”うまく表現”しなければならない • ”うまい表現”=「データモデル」 – データモデル • データを体系的に扱うためのモデル – データ • コンピュータの処理対象となる,符号化された情報 • 本章では「データモデル」を概観する データのモデル化 • モデル化 – 対象からモデルを作ること • モデル化のやりかた – 対象のなかで興味がある要素を書き下す • 天体,質量,価値,需要,集積度,権力,意味,音階, 画素,など – 要素間の関係をルールとして規定していく • コンピュータの場合,要素間の関係は操作/演算/計算 としてとらえられる モデル化の例 太陽と地球 → 2つの点 地球が 時間をパラメタとした演 → 太陽の周りを回る動き 算 完全性 • 対象の要素が全て表現できる – 対象の操作も考えてモデルを作る場合,対象の 操作に対応する演算がモデルに必要 • 完全性がないモデル – 実数 – 人名漢字 一意性 • モデルの1つの要素が対象の1つの要素に対 応 • 一意性がないモデル – 下二桁で表された西暦 – 性のみで表された名前 忠実性 • 対象の1つの要素がモデルの1つの要素に対 応 – 対象とモデルの関係が一意性と逆 • 忠実性がないモデル – "半分"を表す有理数表現 – 実数の指数表現 整合性 • 対象で成り立つべき規則がモデルでも成り立 つ – 整合性が成り立たないモデルでは,操作も含め て対象がうまく表現できない • 整合性がないモデル – コンピュータで表された実数 無冗長性 • 同じ情報が表現の複数箇所に現れることが ない – 論理データモデルでは冗長性がない方が良い – 物理データモデルでは意図的に冗長な表現を用 いることがある • 冗長性を利用する例 – 学生証番号と氏名の両方を解答用紙に記入 拡張性 • データモデルを変更したときに,既存のデー タの表現を変更せずに新しいデータを表現で きる – データモデルは外的要因の変化や応用が拡大に つれて変化していく • モデルを拡張した例 – 電話番号: 先頭に184/186を追加 – 郵便番号: 7桁に変更 – IPアドレス: IPv4 → IPv6 データモデルのレベル • 概念モデル – 人間が対象を認識するレベル • 論理モデル(論理レベル) – ビットよりハイレベル – いろいろな対象に普遍 – これから話題にするものは主にこれ • 物理モデル – ビットでの表現のレベル 代表的なデータモデル • • • • • • 集合モデル ネットワークモデル 階層モデル 関係モデル 論理モデル オブジェクト指向モデル 集合モデル • 集合モデル – グループを対象とするモデル • 集合モデルの演算 – 共通部分(積集合): A ∩ B • 集合Aの要素と集合Bの要素を併せもった集合 – 和集合(和集合): A ∪ B • 集合Aと集合Bに共通に含まれる要素の集合 – 差集合: A - B • 集合Aから集合Bの要素を除いた集合 4.3 代表的なモデルと演算 1. 集合モデル 2. ネットワークモデル ・意味ネットワーク (後述)(skip可) ・実体関連モデル(ERモデル)(後述)(skip 可) 3. 階層モデル(木構造 )(オイラー図) ・ 階層的ファイルシステム ・ 日本の住所 ・ 図書の分類 十進分類法(Dewey) グラフモデル • • • • ノードとエッジから構成される ラベル付きグラフ 有向エッジ,弧: 方向を持つエッジ 道路ネットワーク/組織図/pert図/意味ネット ワークなど様々な領域で幅広く用いられる ノード エッジ 集合の視覚的表現 • ベン図 A∩B A∪B A B A A−B A B B 階層モデル • 階層モデル(木構造) – 生物の分類図のような,枝分かれの構造 – 有向グラフの特殊なもの,と見ることもできる – 例: コンピュータのファイルシステム 生物の分類図 ファイルシステム 色々な木 - 順序木 • 順序木 – 分岐先に順序をつけた木 • 例1: (2+3)*12 • 例2: (2+3)*((2+3)/12) – 共通の部分式 (2+3) をまとめて、 DAG(Directed Acyclic Graph) と して表せる 色々な木 - ゲーム木 • ゲーム木 – ゲームの状態を木構造で 表したもの – ゲーム木を使うと • 勝ち状態に至る経路を探 索することで,強いコン ピュータゲームプレーヤー を作ることができる • 必勝法のある/なしなど, ゲームの性質を考えること ができる ○×ゲームのゲーム木 意味ネットワーク (imi-network.html参照) 出典: フリー百科事典『ウィキペディア(Wikipedia)』 意味ネットワーク(いみねっとわーく)は人間の記憶の一種であ る意味記憶の構造を表すためのモデルである。 意味ネット ワークはコリンズとキリアンによって考えられた。 人間の記憶は、コンピュータの記憶と異なる構造を持つので、 ビットやバイトといった情報量で表すことができない。そのため、 このようなモデルが必要となる。集合論を基礎としたモデルな どもある。 ノード(円)が概念、リンク(矢印)が関係を表す。 リンクには「で ある(isa)」、「もつ(hasa)」などがある。 実体関連モデル ERモデル(skip可) • 世界を実体(entity)と関連(relation)の集まりと して見るモデル • 実体と実体のあいだの関連をもつ • 実体と実体のあいだの関連で表現すると、実 体の属性が変化しても、属性だけが変化した ことになる • HTML(sinsyuu-u.html) 参照。 実体と関連の表現の例 • 40歳の山田と40歳の田中が1985年4月1日に結婚 した 40歳の山田 40歳の田中 1985年4月1日に結婚 実体関連図の例 • 40歳の山田と40歳の田中が1985年4月1日に結婚 した 実体: 男性 属性: 名前,年齢 実体: 女性 属性: 名前,年齢 関連: 結婚 属性: 結婚記念日 ネットワーク上の最適化問題 1.最短路問題 2.ハミルトン閉路問題 (NP完全) 3.巡回セールスマン問題 (NP困難) http://www.tsp.gatech.edu/ 参照: d15112-DATA.gif, d15112-Solution.gif, d15112-Maze.gif, ピーターセングラフ 関係モデル • 関係モデル – ”関係”によるモデル化 • 関係 – 実際に関係のある組を集めたデータ – 例: 「山口君が東京に住んでいて, 電話番号は03-4567-8901」という事実 → 山口,東京,03-4567-8901 の関係 関係モデル - 正規化 • 正規化 – 同じデータが何回も出てくるような,冗長な関係を, 分割して簡潔な関係にすること 名前の関係 正規化 電話番号の関係 冗長な関係 住所の関係 識別番号 • 関係の項目のひとつに識別番号を入れ ると、冗長性がなくなる 第一正規化 2次元の表にする 番号 名前 所属 番号 名前 所属 g456 小泉 {15組,水泳部} g456 小泉 15組 非正規型リレーション g456 小泉 水泳部 正規型リレーション 発注番号 取引ID 会社名 日付 品名 価格 492 a61 プラス 4/26 コピー紙 50 492 a61 プラス 4/26 椅子 65 492 a61 プラス 4/26 本棚 330 492 a61 プラス 4/26 机 148 494 c13 小泉商店 7/1 机 168 494 c13 小泉商店 7/1 椅子 98 494 c13 小泉商店 7/1 鉛筆 15 494 c13 小泉商店 7/1 消しゴム 第一正規形の例 3 • 関係を冗長性がなくなるように、複数の 関係に分解することを正規化という • 発注番号と品名が主キーになっていて、あと はそれからきまる。この2つをあわせて復号 キーという。 • 正規形への分割では、属性を1カ所変更して も、他の属性値はそのままでしよい。 • 記憶領域の無駄遣いをしないですむ。 発注番号 取引ID 会社名 492 a61 プラス 494 c13 小泉商店 発注番号 492 492 492 492 494 494 494 494 品名 コピー紙 椅子 本棚 机 机 椅子 鉛筆 消しゴム 日付 4/26 7/1 価格 50 65 330 148 168 98 15 3 第2正規形
© Copyright 2024 ExpyDoc