2008-10-07

Database Design: Intro, ER model




データベース設計の授業の予習をしまくってXMLをマスターすれば、情報検索のアプリケーションに100%役に立つことを発見。しかも課題も資料も回答ももろもろ全部先に提示してくれるとか、さすがIBMの研究員ともなるとレベルが違うわw。個人的には、このスタイルの授業が割にあってるなぁ。



----- note -----

・成績評価について
中間レポート 40%
→11月ごろ、課題をだす。
期末テスト 60%
→資料持ち込み負荷

目標:データベースの設計が出きるようになる。

教科書は使わない。
→http://www.fukudat.com/

参考書:
Ullman, Widom, "A First Cource in Database Systems," Prentice Hall.
北川, "データベースシステム" 昭晃堂
福田, 森本, 徳山, "データマイニング”

・今日の授業内容
1. データベース入門
2. ERモデル

-------------------------
「1st PPT:データベースの概要」
・What's Database?
→データを蓄えておくところ
→めもりは?

→データを永続的に蓄えておくところ
→HD, CD, Tapeは?

・Definition
データベースとは、
「複数の応用目的絵の共有を意図して、組織的活永続的に格納された大量のデータ群」
keyword:多目的、共有
→入れ物

ーDataBase Management System
「データベースを作成、管理するための機能を提供する仕組み」
→器

ーこれらは混同されて、単に「データベース」とよばれることが多い。


・データベースの役割
例:amazon
データ=本、顧客、仕掛け注文、注文履歴、売れ筋、顧客の嗜好などの情報

大量:中規模の書店でも、少なくとも数偽がギガバイトの情報を管理しなければならない
→メモリには大きすぎる。Cppでやろうとすると、メモリ管理が大変。

永続性:
→途中でなくなっては困る。サーバーシステムでも時々は電源をきらなくてはいけないことがある。ライフタイムが長いから。
複数のアクセスが競合する可能性がある。

マルチユーザ:
→ex:売上集計、注文など

・マルチユーザの例
二人が同時で買い物する時を考える。

重要なこと:どうやって排他制御をプログラムで実現するのか?

・何故データベースを使うのか?
scheme = definition of data
→変更の伝搬・影響が起こらないようにできる 
各層の間のマッピングが再構成できれば、他のアプリケーションは安定的に動かすことが出来る。

下からくる場合もある。physical dataから
→マッピングが再構成が出来れば

現在の主流:relational database

conceptual scheme:概念スキーマ

・Logical data independence
・physical data independence
これらを実現するのが、データベースの役割。



・DBMSはsoftware system
→ハードウェアで実現しようとするのは駆逐された。

しばしば、application server, middlewareと一緒に用いられる。


・DBMSのoutline(実装の例)
ユーザが2種類:一般ユーザ、データベース管理者

M:データの定義
U:問い合わせ、更新


strage = hard disc


これをどうやって作れば良いのか、が本当はやりたいこと。
しかし、授業では時間が足りないので、ある程度のテンプレートを使うことにする。
よって、データベース管理システム設計ではなく、データベース設計。


・Required things
-ACID property
Atomic Consistent(一貫性がある) Isolation Durable←データベースに求められる特性
-database schema
-relational database
-query processing
-physical data structure

3-tier schema(3層スキーマ)
-external schema
-conceputal schema
-

・教養としてしっておくこと
-Relational Data Model
E.F. Codd(1923-2003)
San Jose, Almaden laboratory
概念:すべてのデータをrelationで表現する->すべてのデータは表で表現できる。→relation=表, テーブル(visible)
プログラムとデータの独立
データ構造を知らなくても問い合わせがかける
relationというのは、Tableのこと
モデル図のオブジェクト間にある線のこと(だけ)ではない。
詳しくは「relational data model」の回で説明する。

-Relational Completeness 関係完備性 (完全>完備)
関係論理という宣言的な体系を使って表現できる異と、関係台数という手続的な体系を使って表現で切ることが同じであることを証明した。
→relational databaseで表現出来ないことはない。出来なければスキルが足りないか、スペックが足らないかなどが原因。
Ex.IMS 階層型DB
関係論理には十分な表現力が(なんとなく)しんじることができるので、関係台数にも十分な表現があることが分かる。
→SQLでは書けないことがある。
関係データベースの問い合わせ言語、SQLも関係完備。

-Normal Forms 正規化の理論
究極の正規形である第5正規形を発見した。
projection-join normal formともいう
他の正規形(1NF, 2NF, 3NF, BCNF, 4NF)の一般化になっている
→relational databaseで出きること、出来ないことを明確化した。
逆に言えば、正規形でないリレーションは、異常(anomaly)を起こす。
更新異常
削除異常
挿入異常




・データベース業界について
シェアウェア:
oracle
IBM DB2, Informix
Microsoft SQL Server, Access
Sybase
Hitachi HiRDB

フリーウェア:
MySQL - Private companyが作った
サービスを有償で売っている。
PostgreSQL
Apache Derby
SQLite  Ipod関係がよく使っている


・データベース業界、学会
国際学会
ACM SIGMOD(実践的なデータベース/PODS(データベースの原理)
SIGMODは日本からはほとんど通らない。
SIG=special interest group

ジャーナル国内(ある程度の結論でも載る:研究者の業績)
ACM TODS
IEEE TKDE
VLDB Journal

国内
情報処理学会 DBS研究会
電子情報通信学会 DEkennkyuukai
ACM SIGMOD 日本支部
日本データベース学会

文献検索
DBLP



「2nd PPT:データモデリング」
データモデルの3要素
1. データ構造を記述するための規約
2. データ構造に対する操作
3. データが満たす制約を記述するための規約

・データモデルの種類
関係データモデル
タプルの集合
現在の主流

ネットワークモデル


・実世界のデータモデリング
→作るための道具
real world -> conceptual design -> conceptual model(entity-relational model) -> logical design -> logical model

・ERモデルとは
実世界の事象をモデル化する。
データベース設計の概念的な概略を描くことが出来る。
設計図はER図と呼ばれる絵(一種の文法のようなもの)

・Entitiyとは
実体:もの。こと。
実体集合:似通った実体の集まり
→学生は同じ?違う?
→何を重要だと思うかによる
↑これがモデリング。この概念はOOPの前身となった。


属性:実体の特性

・ER図
ER図では、各実体集合は短形で表わせる

書き方;
○:名前、製造元
□:酒←注目しているもの


・関連
実体集合を関連図蹴る

◇:関連付ける塩っ太守烏合を表す短径と線で結ばれる
Ex.売る、行き着け、好き

0 件のコメント: