Upgrade to Pro — share decks privately, control downloads, hide ads and more …

データベースと応用システム:データモデル

 データベースと応用システム:データモデル

More Decks by 自然言語処理研究室

Other Decks in Education

Transcript

  1. (c)長岡技術科学大学 電気系 4 ANSI/X3/SPARCの3層スキーマ構造 • スキーマ(schema):データベースの構造、データの 定義の集合 – RDBでは関係と関係内の属性、それらの関連の 定義

    • ANSI/X3/SPARC が3層スキーマを整理 – Standards Planning And Requirements Committee (標準化計画委員会) • 意義:物理的・論理的データ独立性を確保 – ある層に変更が生じても他に影響を与えないよ うに
  2. (c)長岡技術科学大学 電気系 5 ANSI/SPARCの3層スキーマ構造 • 外部スキーマ – 「見せ方」を定義したもの。個々のプログラムや利用者 から見た記述。RDBでのビューに相当。 –

    複数存在することがあり、その一部を「サブスキーマ」と 呼ぶ。 • 概念スキーマ – 実体やデータ項目相互の関係に関する記述 – 特定のアプリケーションに依存しない • 内部スキーマ – 概念スキーマを計算機上に実現するための記述
  3. (c)長岡技術科学大学 電気系 6 実世界 内部 スキーマ 概念 スキーマ 外部 スキーマ

    外部 スキーマ (RDBのview) 外部 スキーマ サブ スキーマ (RDBのtable) (RDBのindexや データ配置)
  4. (c)長岡技術科学大学 電気系 8 用語の説明 • エンティティ(entity、実体) – 対象事物を概念としてモデル化したもの – いくつかの属性を持つ

    • インスタンス(instance) – エンティティを具体化した(=属性に値を持った)もの • リレーションシップ(relationship、関連) – エンティティ間の結びつき – インスタンス間に何らかの参照関係がある場合にリレーション シップで結ばれる • 関係スキーマ – (関係データモデルにおける)エンティティと属性の対
  5. (c)長岡技術科学大学 電気系 9 実際の例 • エンティティ名 – 商品 • 属性名

    – 商品番号、商品名、単価 • 関係スキーマ – 商品(商品番号、商品名、単価) • インスタンス – 001, AQUOS何とか, 10万円
  6. (c)長岡技術科学大学 電気系 10 多重度(カーディナリティ) リレーションシップは、単に参照関係にあるというだけ でなく、対応関係によって3通りある。 • 1対1 (例:見積と契約) – 一つの見積書が一つの契約書に完全対応する

    • 1対多 (例:部署と社員) – 一つの部署には複数の社員がいる • 多対多 (例:商品と注文) – 一つの商品は何度も注文され、1回の注文で複 数商品を受け付ける
  7. (c)長岡技術科学大学 電気系 11 ER図(実体関連図) 見積 契約 部署 社員 商品 注文

    ER(entity-relation)図 (を簡略化したもの)による 記法 複数に対応している場合に 矢印で表現する。
  8. (c)長岡技術科学大学 電気系 12 UMLのクラス図 見積 契約 部署 社員 商品 注文

    UML(unified modeling language) のクラス図による記 法 UMLでは多重度を x .. y の ように記述できる。単に複数を 表わす場合は * を用いる。 1 2 .. 5 * * 1 1
  9. (c)長岡技術科学大学 電気系 13 連関エンティティ 商品 注文 パソコン 注文1 注文2 プリンタ

    注文3 • 多対多関係は、非正規形(次回以降に説明) になるため データベース設計上好ましくない。
  10. (c)長岡技術科学大学 電気系 14 連関エンティティ(続き) 商品 注文 注文明細 パソコン 注文1 注文2

    プリンタ {プリンタ, 注文1} {パソコン, 注文2} {プリンタ, 注文2} {パソコン, 注文3} 注文3 • 多対多の関係にある商品と注文の間に連関エン ティティ「注文明細」を作ることで解消できる。
  11. (c)長岡技術科学大学 電気系 15 強エンティティと弱エンティティ • 強エンティティ(強実体) – 他のエンティティのインスタンスに関係なくインスタンス が存在可能なエンティティ •

    弱エンティティ(弱実体) – あるエンティティのインスタンスが存在する時だけインス タンスが存在可能なエンティティ • 弱エンティティの例 – 売上明細(エンティティ「売上」にインスタンスがあって はじめて、エンティティ「売上明細」にインスタンスが存 在する)
  12. (c)長岡技術科学大学 電気系 16 例:図書館予約システムを考える • 必要なエンティティは二つ – 利用者、図書 • 利用者に必要な属性

    – 利用者ID、氏名、住所、年齢、... • 図書に必要な属性 – 図書ID、書名、著者、出版社、出版年、... • 図書と利用者の関係は? – 1人がいろんな本を予約する – 1冊の本をいろんな人が予約する
  13. (c)長岡技術科学大学 電気系 17 例:図書館予約システム 利用者 図書 利用者(利用者ID, 氏名, 住所, ...)

    図書(図書ID, 書名, 著者, ...) 問題:利用者と図書が多対多の対応関係になっている。
  14. (c)長岡技術科学大学 電気系 18 例:図書館予約システム 利用者 図書 予約 利用者(利用者ID, 氏名, 住所,

    ...) 予約(利用者ID, 図書ID) 図書(図書ID, 書名, 著者, ...) 対策:連関エンティティをはさんで多対多を解消する。 問題:図書館には同じ本が何冊もある。
  15. (c)長岡技術科学大学 電気系 19 例:図書館予約システム 利用者 図書 予約 利用者(利用者ID, 氏名, 住所,

    ...) 予約(利用者ID, 図書ID) 図書(図書ID, 書名, 著者, ...) 蔵書(蔵書ID, 図書ID, 購入日, 貸出回数) 対策:エンティティ「蔵書」を作る。 蔵書
  16. (c)長岡技術科学大学 電気系 22 階層データモデル 教員 A 教員 B 教員 C

    X系 教員 D 教員 E 教員 F Y系 教員 G 教員 H 教員 I Z系 大学
  17. (c)長岡技術科学大学 電気系 23 階層データモデル • 木構造 • エンティティを親子関係で表現 – 親レコード、子レコード

    • 各エンティティをレコードとして表現 – レコード間の関係はポインタで表現
  18. (c)長岡技術科学大学 電気系 24 ネットワークデータモデル 教員 A 教員 B 教員 C

    X系 教員 D 教員 E 教員 F Y系 教員 G 教員 H 教員 I Z系 大学
  19. (c)長岡技術科学大学 電気系 26 関係データモデル • 数学の集合概念が基礎 • データ構造に2次元の表を採用したモデル • 構造上の前提条件がない

    = 自由に設計できる • 行と行の関連付けは値の一致によって行う • 最も多くのDBMSで採用されている – Oracle Database, MySQL, PostgreSQL, FileMaker, Microsoft SQL Serverなど多数
  20. (c)長岡技術科学大学 電気系 27 関係データモデル 注文番号 注文日 取引先 商品番号 数量 1

    4/20 500 222 3 2 4/20 501 223 4 3 4/21 500 222 4 4 4/21 502 222 3 5 4/22 503 224 2 タプル アトリビュート(属性) ドメイン:属性の取り得る値 例:属性「性別」のドメインは「男・女」の2要素