Transcript データベース論
データベース論 朝日大学大学院 経営学研究科 奥山 徹 [email protected] 2006/04/24 データベース論(2回目) 1 講義日程 • • • • • • • • • • • 4月17日 4月24日 5月01日 5月08日 5月15日 5月22日 5月29日 6月05日 6月12日 6月16日 6月26日 2006/04/24 ガイダンスおよび集合論の基礎 リレーショナルデータベースの基礎 データ操作言語 データベースの論理設計 SQL(データベース操作言語)の基礎 データベース管理システム データベースの内部スキーマ 質問処理とその最適化 トランザクション処理 分散データベース序説 定期試験 データベース論(2回目) 2 データの収集・蓄積・利用(再掲) データ 実世界 アクセプタ 編集 加工 蓄積 要求 処理 ユーザ データ要求 データの収集 2006/04/24 データ(フィードバッ ク) データの蓄積 データの利用 データベース論(2回目) 3 データと情報(再掲) 「新データベース論」より • データ:人間または自動的手段によって 行われる通信、解釈、処理に適するよう に形式化された事実、概念または指令の 表現 • 情報:データを表現するために用いた約 束に基づいて、人間がデータに割り当て た意味 2006/04/24 データベース論(2回目) 4 歴史 • 1963年:IDS(Integrated Data Store), Honeywellが嚆矢 • 1970年ころまで:主要な3つのデータモデル(階 層型、ネットワーク型、関係型)が出揃う • 1970年代後半:演繹データベース、オブジェクト 指向データベース • 1980年代後半:インターネット時代のデータベー ス(大規模分散化) • 現在:検索エンジンの隆盛(全文検索、データマ イニング) 2006/04/24 データベース論(2回目) 5 データベースとDBMS • データベース→複数の人あるいはアプリケー ションが共同利用することを目指して組織的に 集める 永続的なデータの集まり 永続性 Persistency 共有性 Sharing スキーマ Schema • データベースを管理すソフトウェアシステム →DBMS(Database Management System) 2006/04/24 データベース論(2回目) 6 永続性(Persistency) • 広義:データの生存時間(Life Time) • 狭義:アプリの実行中はその値が保存される • 一般のアプリケーション アプリケーションの 実行中に値が設 定される A.date 2002/04/19 アプリケーションの ファイルに 保存 終了ととものこの 値は消滅する • データベース アプリケーションのが データベースのフィー ルドの値を変更する 2006/04/24 A.date 2002/04/19 データベース論(2回目) アプリケーションが終了 してもデータベース内 のフィールドの値は保 存される 7 ファイルとデータベース • ファイル:特定のアプリケーションでの利用を想 定した特殊なレコード形式をもつデータ保存ユ ニット – たとえば、MS-WORDのファイル(x.doc) • データベース:アプリケーションとは独立に存在 し(共有性、データの独立性)、レコード形式が データベースのスキーマ(後述)により決定され ている – 永続性だけ見ればファイルとデータベースは大差な い 2006/04/24 データベース論(2回目) 8 共有性(Data Sharing) • 同じデータを複数のアプリケーションで使用する – ファイルは特別のアプリケーション用にデータ構造が 最適化される→他のアプリケーションに利用する際 のオーバヘッド – 共有されるべきデータと特有なデータの取り扱いの 問題 – 同時アクセスによるファイルの更新矛盾の問題 • データベースはこれらの問題を解決するために データを統一管理する枠組みを与える 2006/04/24 データベース論(2回目) 9 スキーマ(Schema) • データベースの論理構造 • 格納すべきデータの表現(属性、型、一貫 性制約など)を定義するメタデータ • 複雑な実世界のデータをいかに自然に表 現するかが問題 2006/04/24 データベース論(2回目) 10 データベースの利点 • • • • • • • • • データの冗長性の除去 データの一致性の確保 データの共有化 データ構造の標準化 データの機密保護 データの一貫性の確保 各種の要求のバランス化 大量データの効率的管理 高機能言語によるアプリケーション作成の容易化 2006/04/24 データベース論(2回目) 11 データベースの問題点 • • • • • データベースの巨大化 設計の難しさ ソフトウェアの巨大化 データベース管理者 障害対応とセキュリティ 2006/04/24 データベース論(2回目) 12 データの独立性 (Data Independency) • アプリケーション間の独立性 – 異なったアプリケーションに対し、同一データ の異なった処理を可能とする • データとアプリケーション間の独立性 – 要求条件の変化に応じて、アプリケーション に影響を与えることなく、データの格納方法 などを変更できる 2006/04/24 データベース論(2回目) 13 ANSI/X3/SPARCの3層スキーマ 構造 • データベースの取り扱うスキーマを次の3 つに分けて考える – 外部(external)スキーマ:ユーザインターフェ イス – 概念(conceptual)スキーマ:データ構造の論 理的枠組み – 内部(internal)スキーマ:ファイルシステムと のインターフェイス →データの独立性実現のための枠組み 2006/04/24 データベース論(2回目) 14 3層スキーマ構造の概念図 アプリケーション アプリケーション データベーススキーマ 外部スキーマ 写像 実世界 表現 外部スキーマ 写像 概念スキーマ 写像 内部スキーマ 2006/04/24 データベース論(2回目) 15 データベース vs 情報検索システム • データベース:「組織的に集めたデータの 集まり」→DBMSが管理する • 情報検索システム:有益なデータを電子 化して、必要に応じて提供する→「情報検 索のためのデータベース」 • 2つは共通している部分が多い • 要求条件が異なるので、別の分野として 扱われることが多い 2006/04/24 データベース論(2回目) 16 情報検索のためのデータベース • 専用化(DBMSを用いないことが多い)=ファイ ルの集まり • 構造の独自性(データモデルを用いない) • 挿入頻度:多 更新頻度:少 • 共有性は重視されない 2006/04/24 データベース論(2回目) 17 データベースと周辺システム データベース 管理システム オンライン トランザクション 処理システム 2006/04/24 情報検索 システム データベース論(2回目) 18 基本概念 • • • • データモデル データ操作(含むトランザクション) DBMS 最新データベース事情 2006/04/24 データベース論(2回目) 19 データモデルリング • DBMS(後に詳述)を特徴付けるもの – スキーマ(論理構造) – データモデルリング(Data Modeling) • データモデルリング – 論理モデル • データ定義(Data Definition) • データ操作(Data Manipulation) • 一貫性制約(Integrity Constraint) – 概念モデル 2006/04/24 データベース論(2回目) 20 概念モデルと論理モデル 概念モデル 記述言語 実世界 アクセプタ 概念モデリング 記号系 概念 モデル データモデル 論理モデリング 記号系 論理 モデル データベース設計者 2006/04/24 データベース論(2回目) 21 概念モデル • 実世界のデータ構造に対するデーベース設計 者による記述形式 • 概念モデル記述言語 – – – – 実体-関連モデル(Entity-Relationship Model) 意味データモデル(SDM:Semantic Data Model) CADモデル(Computer Aided Design Model) 知識表現言語(Knowledge Representation Language) – オブジェクト指向モデル(Object-oriented Model) – 自然言語(Natural Language) 2006/04/24 データベース論(2回目) 22 実体-関連(E-R)モデル 営業所名 伝票番号 実体 属性 取引先名 日付 1 受注 関連 合計 1 伝票番号 内訳 値引 明細番号 N 受注明細 値引率 商品名 1 記載 1 N 商品 営業所名 商品名 定価 個数 単価 金額 商品カテゴリ 2006/04/24 データベース論(2回目) 23 論理モデル • 概念モデルを実際のデータベースへ実装可能 なようにする記述形式 • データモデル(Data Model) – 階層モデル(Hierarchical Model) – ネットワークモデル(Network Model) – 関係モデル(Relational Model) 2006/04/24 データベース論(2回目) 24 階層モデル • 1968年:IBMのIMS(Information Management System)において実装されたモデル • 親レコードと子レコードを木(Tree)状となるように ポインタで結合 G1 カラーテレビ 56,000 C1 C2 2006/04/24 S電気商会 Xマート 25 18 G2 DVDプレーヤ 83,000 C2 Xマート C3 Nネット販売 データベース論(2回目) 10 5 25 ネットワークモデル • 1963年:IDSで採用されたモデル、CODASYL が標準規格を提案(DBTGネットワークモデル) • レコード間を網状にポインタで結合 G1 カラーテレビ 56,000 25 C1 2006/04/24 S電気商会 G2 DVDプレーヤ 83,000 18 C2 10 Xマート データベース論(2回目) 5 C3 Nネット販売 26 関係モデル • 1970年:IBMのコッドにより提案されたモデル • 集合論に基づいて作成されたモデル( See:知識 情報数学資料 http://www.dsl.gr.jp/~okuyama/lecture/2001/tut/kim/) • 数学的なリレーションに対応して表で表現 2006/04/24 データベース論(2回目) 27 関係モデル(2) 商 品 顧 客 商品番号 商品名 価 格 顧客番号 顧客名 G1 カラーテレビ 56,000 C1 S電気商会 G2 DVDプレーヤ 38,000 C2 Xマート C3 Nネット販売 納 品 商品番号 顧客番号 数 量 G1 C1 25 G1 C2 18 G2 C2 10 G2 C3 5 2006/04/24 データベース論(2回目) 28 データ言語 • データ定義言語(Data Description Language: DDL):データ定義のための言語 • データ操作言語(Data Manipulation Language:DML):データ操作を記述する言語 – データの検索 – データの更新(ただし、検索してから更新) →問い合わせとも呼ぶ 2006/04/24 データベース論(2回目) 29 データ操作とトランザクション • データ操作の基本単位→トランザクション (Transaction):一連の関連する操作をまとめて処理す る • トランザクションの原始性(Atomization):トランザクショ ン内のすべての操作は有効(コミット)か無効(アボート) かの二者択一 • 同時実行制御(Concurrency Control):複数のトランザ クションを無矛盾に実行できるように制御する→トラン ザクションの直列化(Serialization) • 障害回復(Recovery):トランザクション実行中にエラー が起きた場合元に戻す必要がある→ロールバック(Roll Back) 2006/04/24 データベース論(2回目) 30 同時実行制御の必要性 • たとえ次の2つの処理を逐次実行する 1. 2. • データ100に対して – – • データに10を加える データを1.1倍する 上の順番で実行:100+10=110×1.1=121 逆転すると:100×1.1=110+10=120 データベースの更新:読み出してから書き込 むので平行して実行すると正しい結果となら ないときがある 2006/04/24 データベース論(2回目) 31 DBMS • ユーザとデータベースのインターフェイスシステ ム • DBMSの機能 – メタデータ(Metadata)管理 – 質問処理(Query Processing) – トランザクション管理 2006/04/24 データベース論(2回目) 32 これからのデータベース 関係モデル 実体-関連モデル 非正規関係モデル 意味データモデル 演繹データベース 複合オブジェクトモデル オブジェクト指向データベース 演繹オブジェクト指向データベース 2006/04/24 データベース論(2回目) 33 2006/04/24 データベース論(2回目) 34 2006/04/24 データベース論(2回目) 35 2006/04/24 データベース論(2回目) 36 2006/04/24 データベース論(2回目) 37 2006/04/24 データベース論(2回目) 38 2006/04/24 データベース論(2回目) 39 2006/04/24 データベース論(2回目) 40 2006/04/24 データベース論(2回目) 41 2006/04/24 データベース論(2回目) 42 2006/04/24 データベース論(2回目) 43 2006/04/24 データベース論(2回目) 44 2006/04/24 データベース論(2回目) 45 2006/04/24 データベース論(2回目) 46 2006/04/24 データベース論(2回目) 47 2006/04/24 データベース論(2回目) 48 2006/04/24 データベース論(2回目) 49 2006/04/24 データベース論(2回目) 50 まとめ • データベースに関する基礎概念の確認 • 実世界とデータベースの関係を考える – データモデリング – データベース管理システム • これからのデータベース像の要約 • リレーショナルモデルの概要 • レポート課題 – データベースを構築することで、具体的にどのようなメリットがあるか。 各自ポイントを絞って説明せよ – データモデリングの過程を説明せよ • 締め切り:5月9日タイムスタンプ有効にて電子メールで – メールアドレス:[email protected] – サブジェクト:データベース論第二回課題 – メール本文:必ず学籍番号、氏名を記入 2006/04/24 データベース論(2回目) 51