データベースC 第2回 - Oshita Laboratory (Language

Download Report

Transcript データベースC 第2回 - Oshita Laboratory (Language

データベースS
第2回 データベースシステム
システム創成情報工学科 尾下 真樹
今日の内容
• データベースシステム
– データベースの機能と役割
– データベースの各種基本概念
• データモデル
– 各種データモデル
– 実体・関連モデル
• データベースシステムの応用
– データベースが社会でどのように使われているか
教科書
• 「リレーショナルデータベース入門 」
増永良文 著、サイエンス社 (2,600円)
– 1章
• 「データベースシステム」
北川 博之 著、昭晃堂 出版 (3,200円)
– 1章・2章
データベースシステム
データベースシステム
• データベースシステム
– データベース
• データを組織的・永続的に管理
– データベース管理システム(DBMS)
• データベースを管理・利用するためのソフトウェア
※ DB, DBS,
DBMSの
区別をつける
教科書 図1.1
ファイルシステムとの比較
• 一般的なファイルシステムでも大量のデータ
を扱うことはできる
• ファイルシステムの問題点
– データとアプリケーションの相互依存
• データを作ったアプリケーションでないとデータの読
み出しや修正ができない
– データの整合性を一元管理できない
• アプリケーションにデータ管理がまかされている
• 複数のユーザの同時アクセスに対応できない
• 機密保持や障害回復などの機能が不足
データベースシステムの利点
• データをアプリケーションと分離して管理
– データをいろいろな目的に利用できるようになる
– 関連するデータをひとつのデータベースに統合
することで、重複や不整合を防げる
– データだけを独立に整理することで、データの意
味やその相互関連を把握することが容易になる
– データの表現方法や管理方法を標準化できる
データベースシステムの特徴
• 大量のデータを効率的に管理・処理するた
めのしくみを提供
– データを体系的・組織的に定義・管理するため
のデータ記述方法(データモデル)、管理方法
– 大量のデータを効率良く処理するための方法
• データを常に正しく保つためのしくみを提供
– 実際の運用では、とにかく正しいデータを保つこ
とが必須とされる
– 整合性の維持、機密保護、障害回復
データベースシステムの機能
• 基盤となるデータ記述・操作系
• 効率の良いデータアクセス機構
• 整合性の維持
• 機密保護
• 同時実行制御
• 障害回復
基盤となるデータ記述・操作系
• データモデルの提供
– データベースに格納するデータ構造を記述する
ための枠組み
– 実際にどのようにファイルやメモリにデータが格
納されるかといったことは気にせず、概念的な
データ構造を定義できる (詳しくは後述)
– 各DBMSはある特定のデータモデルをサポート
• リレーショナルモデルが代表的
• これまでにさまざまなデータモデルが開発されてきた
– データモデルに基づいた操作言語が存在
リレーショナルデータモデルの例
科目
科目番号
科目名
01
データベース
03
コンピュータグラフィックス
・・・
・・・
履修
学生
学籍番号
氏名
科目番号 学籍番号 成績
0123001 尾下真樹
01
0123001
60
0123002 下戸彩
03
0123002
80
0123003 本村拓哉
01
0123003
70
・・・
・・・
・・・
・・・
効率の良いデータアクセス機構
• 指示された検索などの処理を効率的に実行
– データモデル自体は、物理的なデータ構造につ
いて記述しない
– DBMSは最適な性能が得られるように実際の
データ構造などを工夫できる
• ハードディクスへの配置・制御方法の工夫
• ツリーやハッシュなどの補助的なデータの追加
• 並列に処理を行うための工夫
– データベースの利用者は、このような内部の構
造を意識しなくともデータベースを使える
その他の機能
• 整合性の維持
– データが常に正しい値を保つような制約を追加できる
• 機密保護
– ユーザごとに実行できる操作を細かく設定可能
• 同時実行制御
– 複数の処理を並列に処理できるような機能
• 障害回復
– 途中で処理が中断しても整合性を失わないような機能
– 故障が起きてもデータが失われないような工夫
トランザクション
• トランザクション
– 操作のひとつの単位
• 例:銀行の口座間の送金
– DBMSはトランザクション単位で処理を行う
– 複数のトランザクションは並列に処理可能
• トランザクション同士が同時に同じデータを操作する
ことでデータの整合性を崩さないような仕組みが必要
• 操作の前にはデータを「ロック」する
• 別のトランザクションによって処理が中断された場合
は、トランザクション実行前の状態に回復する
• DBの高性能化のためには、並列処理の工夫が必須
データベース関連の基本概念
• スキーマとインターフェース
• 抽象化のレベル
• データの独立性
• データベース言語
• データベースシステムの構成と各種利用者
スキーマとインスタンス
• スキーマ
– データベースに格納されるデータのデータ構造、
データの型、データ同士の関連、各種制約を記
述したもの
– メタデータ
• インスタンス
– スキーマにもとづいて格納されたデータ
• 基本的には、最初にスキーマをきちんと定義して、
そのスキーマに応じてインスタンスを追加・修正する
• 必要に応じてスキーマも修正されることがある
スキーマとインスタンスの例
• リレーショナルデータベースの例
– リレーション
• 複数の属性の組み合わせにより各インスタンスを表現
– スキーマ
• リレーションの項目の型、属性制約、キー制約など
– インスタンス
• それぞれのデータ、表の各行に相当
学生
学籍番号
履修
氏名
科目番号
学籍番号
成績
0123001
尾下真樹
01
0123001
60
0123002
下戸彩
03
0123002
80
0123003
本村拓哉
01
0123003
70
抽象化の3レベル
• DBMSの管理するスキーマの3階層
– 外部スキーマ、概念スキーマ、内部スキーマ
– ANSI/SPARCモデル[1975](下図)
教科書 図1.3
抽象化の3レベル
• DBMSの管理するスキーマの3階層
– 内部スキーマ
• 物理レベルのデータ構造
– 概念スキーマ
• データベースの定義言語で定義されるスキーマ
– 外部スキーマ
• 外部のアプリケーションから操作する時に、それぞれ
のプログラミング言語に見せるスキーマ
データの独立性
• データベースではデータはアプリケーション
とは独立して組織化される
– 論理的データ独立性
• 外部スキーマ・アプリケーションには影響を与えない
範囲で概念スキーマを変更可能
– 物理的データ独立性
• 概念データスキーマに
影響を与えない範囲で、
内部スキーマ・物理
データ構造を変更可能
教科書 図1.4
データベース言語
• データ定義・操作言語
• データ問い合わせ言語
– リレーショナルデータベースの場合は、SQLが
操作言語・問い合わせ言語を兼ねる
• プログラミング言語からデータベースを操作
– ODBC (Open Database Connectivity)や
JDBC(Java Database Connectivity)などの
標準インターフェース
– 各データベースシステムごとの専用言語
データベースシステムの構成と利
用
教科書 図1.5
データベースシステムの利用者
• データベース管理者
– データベースの定義・設定・チューニング・管理
• アプリケーションプログラマ
– データベースを直接操作するプログラムを開発
• ナイーブユーザ
– 定型的な問い合わせを発行(情報管理など)
• カジュアルユーザ
– 非定型的な問い合わせを発行(情報分析など)
データベースシステムの構成
• データ操作・定義言語処理系
– データベースを操作・構築するためのコマンドを
解析して操作を発行
• データマネージャ
– 与えられ指示に従って物理データ構造を操作す
る部分
• システムカタログ
– スキーマ情報などのメタデータを記録
データモデル
データモデル
• データベースに格納するデータの構造を記
述するための枠組み
– データ構造を記述するための規約
– データの検索・更新などの操作体系
– データの整合性を保つための制約を記述
• データモデルの役割
– DBMSが提供するインターフェースとしての役割
– 現実世界の情報をデータベースとしてモデル化
するためのツールとしての役割
データモデルの歴史
• 昔は、COBOLなどの手続き型プログラミン
グ言語を使ってファイルを直接操作していた
• より効率的に処理を行うためのシステムが
いろいろと研究
– ネットワークデータモデル、階層データモデル
• データモデルと物理構造の分離の考え方が
進む
– リレーショナルデータモデル
– オブジェクト指向データモデル
データモデルの種類
• リレーショナルデータモデル
• ネットワークデータモデル
• 階層データモデル
• オブジェクト指向モデル
リレーショナルデータモデル
• リレーショナルデータモデル
– 1970年にCoddによって提案される
– 従来のデータモデルと比べて、単純、データ独
立性が高い
• 複数の属性の組み合わせによってそれぞれのリレー
ションを定義
• リレーション同士の演算によりさまざまな処理を実現
– 可変長のデータやデータ構造が複雑なデータに
は不向き
• 可変長のデータの例:住所録のデータベースで、ひと
りの人物が複数の電話番号、住所を持つ、など
リレーショナルデータモデルの例
科目
科目番号
科目名
01
データベース
03
コンピュータグラフィックス
・・・
・・・
履修
学生
学籍番号
氏名
科目番号 学籍番号 成績
0123001 尾下真樹
01
0123001
60
0123002 下戸彩
03
0123002
80
0123003 本村拓哉
01
0123003
70
・・・
・・・
・・・
・・・
ネットワークデータモデル
• ネットワークデータモデル
– CODASYL(The Conference on Data Systems
Language)仕様[1973] が起源
– 各インスタンスはひとつのレコードで表される
– 親→全ての子を一連のリンクで繋ぐことによって
データを表現する
• 親→全ての子を順番にリンク→親に戻る
– リンクを順にたどっていくことで各種処理を実行
ネットワークデータモデルの例
教科書 図2.1
ネットワークデータモデルの例
教科書 図2.1
階層データモデル
• 階層データモデル
– IBMのIMS[1977] や MRIのSYSTEM2000[1985]
– レコードのツリー構造によってデータを表現
– 1対多の関係は表現しやすいが、多対多の関係
は表現しにくい
– 論理関連
• 複数のツリーでレコード間に親子のリンクを張ることが
可能
– 木をたどっていくことで各種処理を実行
階層データモデルの例
教科書 図2.3
教科書 図2.2
オブジェクト指向データモデル
• オブジェクト指向データモデル
– オブジェクト指向によりデータをモデル化
– スキーマとしてクラスを定義
• 可変長の属性も定義できる
• メソッドが定義できる
• 継承・多態などのオブジェクト指向の概念が使える
– Java や C++ などのオブジェクトに永続性を持た
せるようなイメージ
– プログラミング言語から直接操作可能
– 詳しくは後日の講義で説明する予定
データベースの概念設計
• DBMSを利用するためには、自
分の扱いたい自然界のデータを、
DBMSの提供するデータモデル
を使って記述する必要がある
– 概念設計
• 現実のデータの概念を整理
– 論理設計
• 具体的なスキーマの記述を決定
教科書 図2.4
実体関連モデル
• 概念設計を行うときのひとつの方法
– 実体関連モデルは、概念設計の考え方のひとつ
なので、どのデータモデルにも適用できる
• これまでに述べてきた各種データモデルとは別なの
で混乱しないこと
– 実体と関連
• 実体
– ひとつの実体をその属性によって表したもの
• 関連
– 複数の実体間の関連を表すもの
– 関連にも属性を持たせることが可能
実体関連モデル
• 実体関連図(ER図)
– 実体関連モデルを使ってモデル化した概念を図
に表したもの
• 実体は四角、関連はひし形、属性は丸、キー属性は
アンダーラインで表されている
教科書 図2.5
実体関連モデル
• 参加制約
–
–
–
–
関連の整合性を保つための制約
1対1、1対N、 N対Mなどの関連の種類
同一の実体・関連間で複数の関与もありうる
関連が全くなくてもいいか、最低ひとつはいるか
• キー制約
– その属性値によって実体を一意に特定できるよ
うな属性に対する制約
– キー制約を持つ属性が複数あっても良い
• 主キーと候補キー
実体関連モデル
• 複数の関与を表した実体関連図の例
教科書 図2.6
• 参加制約を明確にした実体関連図の例
教科書 図2.7
実体関連モデル
• 汎化階層
– 抽象的な実体から、具体的な実体に派生
– オブジェクト指向の考え方
– オブジェクト指向については後の講義でもう少し
詳しく説明する
教科書 図2.8
実体関連図の書き方
• 実体や関連を書き出していく
– 実体は四角、関連はひし形で
– 実体には適宜属性の情報を加える
– 関連と実体の対応関係(単数or複数など)に注意
教科書 図2.5
データベースシステムの応用
データベースの応用
• DBMSの主な応用
– 企業内部のデータ管理
– 人事、在庫、販売、生産、顧客情報など
• 就職との関係
– 情報系にシステムエンジニア(SE)などとして就
職する人の多くは実際にはデータベースを扱う
ことになる
– 情報系の会社に限らず、ほとんどの会社では自
社のデータをデータベース化する必要があるた
め、データベースを扱えることが期待される
データベースの応用
• DBMSシステムの実際の運用形態
– 会社や部署ごとに、DBMSの専門家がそこで管
理されるデータに合わせたデータベースを設計
– データベースを設計するためには、業務の内容
を熟知している必要がある
– 業務の専門家とDBMSの専門家の意思疎通が
必要
– ユーザのためのインターフェースも開発
• 現在使われているDBMSのほとんどは
リレーショナルデータベース
リレーショナルデータベースの利点
• 運用実績
– 企業ではとにかく信頼性が第一
– これまで長い間使われてきている
• しくみが単純
–
–
–
–
データが表形式で表せるので簡単
人間が出力を見たときに分かりやすい
それぞれの処理が明快
手動でバックアップなどもできる
データベース応用の現実
• データベースシステムを使わない、COBOL
などの言語で書かれたプログラムもまだ現
役で使われている
• リレーショナルデータベースがほとんど
– 実際には、かなり Oracleが使われている
– Oracleなどの商用システムは、SQLなどの操作
言語とは別に独自の言語を提供している
– 実際にはそれらシステム独自の使い方も勉強す
る必要がある
リレーショナルデータベース
• 商用のシステム
– Oracle
• 高速なコンピュータと大量のメモリ・ハードディスクの
組み合わせにより高性能を実現
– Microsoft SQL
• フリーのシステム
– PostgreSQL
– MySQL
• 大量のデータを処理するのでなければこれらのシス
テムでも十分に実用的に使える
データベースを使った応用
• デーマイニング
– データベースの中にあるデータから隠れた知識を見つけ
だす技術
• 例えば、コンビニの売り上げデータベースから、よく売れる商品
の組み合わせを発見して商品陳列に利用するなど
• OLAP(On-Line Analytical Processing)
– 数値データをさまざまな条件で対話的に集計
• 例えば、商品ごと部門ごと期間ごとなどのいろんな条件で売り
上げ結果を集計することで分析に役立てる
– キューブモデルなどの特殊な物理データ構造が用いら
れる
データベースの新しい応用分野
• エンジニアリングデータ(CAM: Computer
Aided Manufacturing)
– 工業製品のモデルデータ
– 機器のメンテナンス情報の管理など
• 科学技術分野での利用
– タンパク質データベース
– DNAデータベース
• 地理データベース
– 地図作成、カーナビなど
マルチメディアデータベース
• マルチメディアデータベース
– 前スライドで紹介した、3次元立体モデル、科学
技術計算データ、地理データ、動画、音楽など
– 従来のリレーショナルデータベースは、テキスト・
数値データなどしか扱えない
– 現在ではアプリケーションごとに特化したシステ
ムが開発されている
まとめ
• データベースシステム
– データベースの機能と役割
– データベースの各種基本概念
• データモデル
– 各種データモデル
– 実体・関連モデル
• データベースシステムの応用
– データベースが社会でどのように使われているか
次回予告
• リレーショナルデータベース設計
– リレーショナルデータベースの理論
– どうやってデータベースを設計したらいいか?
演習問題
• 各自、Moodleの演習問題に回答すること
– 回答締め切り 4/20(金) 20:00 (厳守)
– 最初の回答の点数を評価に考慮する
– 回答には制限時間があるので注意すること
• 今回は余裕を持って長めに設定している(30分)
– 回答後には、点数のみが表示される
• 正解はまだ表示されない
– 締め切り後には、正解や解説が表示される
– また、締め切り後に、復習用の演習問題を追加