Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
データベースと応用システム:データモデル
Search
自然言語処理研究室
April 19, 2013
Education
0
660
データベースと応用システム:データモデル
自然言語処理研究室
April 19, 2013
Tweet
Share
More Decks by 自然言語処理研究室
See All by 自然言語処理研究室
データサイエンス14_システム.pdf
jnlp
0
380
データサイエンス13_解析.pdf
jnlp
0
480
データサイエンス12_分類.pdf
jnlp
0
340
データサイエンス11_前処理.pdf
jnlp
0
460
Recurrent neural network based language model
jnlp
0
140
自然言語処理研究室 研究概要(2012年)
jnlp
0
130
自然言語処理研究室 研究概要(2013年)
jnlp
0
97
自然言語処理研究室 研究概要(2014年)
jnlp
0
120
自然言語処理研究室 研究概要(2015年)
jnlp
0
190
Other Decks in Education
See All in Education
GitHubとAzureを使って開発者になろう
ymd65536
1
160
生成AIとの上手な付き合い方【公開版】/ How to Get Along Well with Generative AI (Public Version)
handlename
0
630
【品女100周年企画】Pitch Deck
shinagawajoshigakuin_100th
0
5.8k
CHARMS-HP-Banner
weltraumreisende
0
720
万博マニアックマップを支えるオープンデータとその裏側
barsaka2
0
810
Linuxのよく使うコマンドを解説
mickey_kubo
1
260
EVOLUCIÓN DE LAS NEUROCIENCIAS EN LOS CONTEXTOS ORGANIZACIONALES
jvpcubias
0
150
登壇未経験者のための登壇戦略~LTは設計が9割!!!~
masakiokuda
3
660
Common STIs in London: Symptoms, Risks & Prevention
medicaldental
0
140
Padlet opetuksessa
matleenalaakso
4
14k
Avoin jakaminen ja Creative Commons -lisenssit
matleenalaakso
0
2k
”育てる”から”育つ”仕組みへ!スクラムによる新入社員教育
arapon
0
140
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
A designer walks into a library…
pauljervisheath
207
24k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Git: the NoSQL Database
bkeepers
PRO
431
66k
Building Adaptive Systems
keathley
43
2.7k
A Modern Web Designer's Workflow
chriscoyier
696
190k
The Pragmatic Product Professional
lauravandoore
36
6.9k
The Language of Interfaces
destraynor
161
25k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Speed Design
sergeychernyshev
32
1.1k
Facilitating Awesome Meetings
lara
55
6.5k
Transcript
(c)長岡技術科学大学 電気系 1 データベースと応用システム データモデル 山本和英 長岡技術科学大学 電気系
(c)長岡技術科学大学 電気系 2 データモデル • 実世界のデータをどのようにしてデータベースに格 納・保持するかを表現するための方法 • つまり、データとデータ間の関連を表現するための 方法
実世界 論理 モデル 概念 モデル 特定のDBに 依存しない 特定のDBに依存する (実装できる表現)
(c)長岡技術科学大学 電気系 3 3層スキーマ構造
(c)長岡技術科学大学 電気系 4 ANSI/X3/SPARCの3層スキーマ構造 • スキーマ(schema):データベースの構造、データの 定義の集合 – RDBでは関係と関係内の属性、それらの関連の 定義
• ANSI/X3/SPARC が3層スキーマを整理 – Standards Planning And Requirements Committee (標準化計画委員会) • 意義:物理的・論理的データ独立性を確保 – ある層に変更が生じても他に影響を与えないよ うに
(c)長岡技術科学大学 電気系 5 ANSI/SPARCの3層スキーマ構造 • 外部スキーマ – 「見せ方」を定義したもの。個々のプログラムや利用者 から見た記述。RDBでのビューに相当。 –
複数存在することがあり、その一部を「サブスキーマ」と 呼ぶ。 • 概念スキーマ – 実体やデータ項目相互の関係に関する記述 – 特定のアプリケーションに依存しない • 内部スキーマ – 概念スキーマを計算機上に実現するための記述
(c)長岡技術科学大学 電気系 6 実世界 内部 スキーマ 概念 スキーマ 外部 スキーマ
外部 スキーマ (RDBのview) 外部 スキーマ サブ スキーマ (RDBのtable) (RDBのindexや データ配置)
(c)長岡技術科学大学 電気系 7 概念データモデル
(c)長岡技術科学大学 電気系 8 用語の説明 • エンティティ(entity、実体) – 対象事物を概念としてモデル化したもの – いくつかの属性を持つ
• インスタンス(instance) – エンティティを具体化した(=属性に値を持った)もの • リレーションシップ(relationship、関連) – エンティティ間の結びつき – インスタンス間に何らかの参照関係がある場合にリレーション シップで結ばれる • 関係スキーマ – (関係データモデルにおける)エンティティと属性の対
(c)長岡技術科学大学 電気系 9 実際の例 • エンティティ名 – 商品 • 属性名
– 商品番号、商品名、単価 • 関係スキーマ – 商品(商品番号、商品名、単価) • インスタンス – 001, AQUOS何とか, 10万円
(c)長岡技術科学大学 電気系 10 多重度(カーディナリティ) リレーションシップは、単に参照関係にあるというだけ でなく、対応関係によって3通りある。 • 1対1 (例:見積と契約) – 一つの見積書が一つの契約書に完全対応する
• 1対多 (例:部署と社員) – 一つの部署には複数の社員がいる • 多対多 (例:商品と注文) – 一つの商品は何度も注文され、1回の注文で複 数商品を受け付ける
(c)長岡技術科学大学 電気系 11 ER図(実体関連図) 見積 契約 部署 社員 商品 注文
ER(entity-relation)図 (を簡略化したもの)による 記法 複数に対応している場合に 矢印で表現する。
(c)長岡技術科学大学 電気系 12 UMLのクラス図 見積 契約 部署 社員 商品 注文
UML(unified modeling language) のクラス図による記 法 UMLでは多重度を x .. y の ように記述できる。単に複数を 表わす場合は * を用いる。 1 2 .. 5 * * 1 1
(c)長岡技術科学大学 電気系 13 連関エンティティ 商品 注文 パソコン 注文1 注文2 プリンタ
注文3 • 多対多関係は、非正規形(次回以降に説明) になるため データベース設計上好ましくない。
(c)長岡技術科学大学 電気系 14 連関エンティティ(続き) 商品 注文 注文明細 パソコン 注文1 注文2
プリンタ {プリンタ, 注文1} {パソコン, 注文2} {プリンタ, 注文2} {パソコン, 注文3} 注文3 • 多対多の関係にある商品と注文の間に連関エン ティティ「注文明細」を作ることで解消できる。
(c)長岡技術科学大学 電気系 15 強エンティティと弱エンティティ • 強エンティティ(強実体) – 他のエンティティのインスタンスに関係なくインスタンス が存在可能なエンティティ •
弱エンティティ(弱実体) – あるエンティティのインスタンスが存在する時だけインス タンスが存在可能なエンティティ • 弱エンティティの例 – 売上明細(エンティティ「売上」にインスタンスがあって はじめて、エンティティ「売上明細」にインスタンスが存 在する)
(c)長岡技術科学大学 電気系 16 例:図書館予約システムを考える • 必要なエンティティは二つ – 利用者、図書 • 利用者に必要な属性
– 利用者ID、氏名、住所、年齢、... • 図書に必要な属性 – 図書ID、書名、著者、出版社、出版年、... • 図書と利用者の関係は? – 1人がいろんな本を予約する – 1冊の本をいろんな人が予約する
(c)長岡技術科学大学 電気系 17 例:図書館予約システム 利用者 図書 利用者(利用者ID, 氏名, 住所, ...)
図書(図書ID, 書名, 著者, ...) 問題:利用者と図書が多対多の対応関係になっている。
(c)長岡技術科学大学 電気系 18 例:図書館予約システム 利用者 図書 予約 利用者(利用者ID, 氏名, 住所,
...) 予約(利用者ID, 図書ID) 図書(図書ID, 書名, 著者, ...) 対策:連関エンティティをはさんで多対多を解消する。 問題:図書館には同じ本が何冊もある。
(c)長岡技術科学大学 電気系 19 例:図書館予約システム 利用者 図書 予約 利用者(利用者ID, 氏名, 住所,
...) 予約(利用者ID, 図書ID) 図書(図書ID, 書名, 著者, ...) 蔵書(蔵書ID, 図書ID, 購入日, 貸出回数) 対策:エンティティ「蔵書」を作る。 蔵書
(c)長岡技術科学大学 電気系 20 論理データモデル
(c)長岡技術科学大学 電気系 21 論理データモデルとは • データベース管理システム(DBMS)でのデータの表 現方法をモデル化したもの – 階層データモデル –
ネットワークデータモデル – 関係データモデル – オブジェクト指向データモデル
(c)長岡技術科学大学 電気系 22 階層データモデル 教員 A 教員 B 教員 C
X系 教員 D 教員 E 教員 F Y系 教員 G 教員 H 教員 I Z系 大学
(c)長岡技術科学大学 電気系 23 階層データモデル • 木構造 • エンティティを親子関係で表現 – 親レコード、子レコード
• 各エンティティをレコードとして表現 – レコード間の関係はポインタで表現
(c)長岡技術科学大学 電気系 24 ネットワークデータモデル 教員 A 教員 B 教員 C
X系 教員 D 教員 E 教員 F Y系 教員 G 教員 H 教員 I Z系 大学
(c)長岡技術科学大学 電気系 25 ネットワークデータモデル • 木構造の拡張 • 親となる実体を複数持てるようにしたモデル • 各実体間の関係をより柔軟に表現が可能
(c)長岡技術科学大学 電気系 26 関係データモデル • 数学の集合概念が基礎 • データ構造に2次元の表を採用したモデル • 構造上の前提条件がない
= 自由に設計できる • 行と行の関連付けは値の一致によって行う • 最も多くのDBMSで採用されている – Oracle Database, MySQL, PostgreSQL, FileMaker, Microsoft SQL Serverなど多数
(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要素
(c)長岡技術科学大学 電気系 28 オブジェクト指向データモデル • 1990年代に注目 • データとその振る舞いをモデル化する • データやソフトウェアの共有、再利用化を向上させ
るのに有効 • いくつかのDBMSが開発 – Informix, PostgreSQL, IBM DB2, Oracle Database など