• 検索結果がありません。

講義資料 DBMS講義

N/A
N/A
Protected

Academic year: 2018

シェア "講義資料 DBMS講義"

Copied!
24
0
0

読み込み中.... (全文を見る)

全文

(1)

データベース

第 1 回 データベースの歴史

鈴木幸市

(2)

本日の内容

自己紹介

講義の概要と進め方

データベースとは何か

 データベースの提供する機能

 データベースとデータモデル

データベースの歴史

 リレーショナルデータベースの超概要

 トランザクションと ACID 特性

(3)

自己紹介

NTT 研究所、 NTT データ、 NTT データ先端技術にてデータベース

等の開発等に従事

データベース

Oracle 5 の移植、日本語化

UniSQL オブジェクトリレーショナルデータベースの開発

PostgreSQL の検証と開発

64ビットサポート機能

性能安定化

性能向上

並列処理

PostgreSQL クラスタ

Postgrex-XC

サーバをたくさん並べて性能を上げる

その他

 多言語文字コードの標準化

Unicode

 平成明朝体、平成ゴチック体の開発プロモート

Linux 障害解析手法の開発

(4)

講義の概要と進め方 (1)

 講義の全体構成:シラバス参照

データベースの歴史

Why データベース?いろいろなデータベース、、、、

磁気ディスクの特徴とファイル編成

 ディスクの特性を意識したデータ処理

リレーショナルデータベース

 データモデルと SQL の基盤

 データの整理の仕方: ER モデル

 データベースを作る基本

トランザクション

 データベースアプリケーションの基本

データベース言語 SQL(1) 、 (2)

 データベースのデータを読み書きする方法

データベース管理システム (DBMS)

 たくさんのデータをたくさんのアプリケーションで同時に読み書き するプログラム

DBMS の事例

 商用からフリーなものまで

(5)

講義の概要と進め方 (2)

正規化

 リレーショナルデータベースの設計方法

RDB の実際

 データベースの設計からアプリケーション作成まで

 データベース構成とテスト

システム作りのために

可用性

バックアップとリカバリ

分散データベース、オブジェクトデータベース

 なぜ分散データベース?

地域分散

データベースクラスタ

 オブジェクトとリレーション

データベースと WWW の連携、データウェアハウス

Web 三層モデルによるサーバ構築

 大規模なデータの統計検索

(6)

講義の概要と進め方 (3)

講義のポイント

 データベースを「使う」上で必要な知識、考え方を中心に進める

 いろいろな技術要素の「背景」「なぜ」を理解してほしい

受講に当たって

 講義資料はサーバにアップします。事前に軽く読んでおいてほしい

 講義時間中に理解してもらえる内容に限定するつもり

しっかり出席することが理解の早道

あとで講義資料を読んで理解するより講義に出席した方が時間の節約

評価の方法

出席

とります。最重視します。

演習

随時。全体で 2 回程度

期末課題

MS-Accessを使ったデータベースの作成など

条件は別途提示します

質問

積極的に質問すればいいことあるかも

その他

理解を深めるために、希望者には補講をするかも ← 積極的に申し出てくだ さい

(7)

敗者復活

出席

 出席できなかった回の資料まとめを作ること

 内容を理解しているようであれば出席にします

 追加質問をするかもしれません

 講義に出席したほうが時間の節約です

演習

 出席できなかった演習を事後提出するも可

12 点満点で採点します。 3 点はペナルティ。

(8)

データベースとは何か

 大きく 2 つの意味がある

データそのもの

 遺伝子データベースなど

 データを蓄積して利用する仕組み

 リレーショナルデータベースなど

 「データベース」といわれたら

 まず上のどの意味かを注意すること

 多くは 2 つのミックスになっている

(9)

データベースはサーバにインストー

 ルする 通常専用のサーバで運転する

 基本的な作りは皆さんの PC と同じ

 壊れにくい、故障したら故障個所がすぐわかる

 信頼性が高い ( 値段も高い ) 部品

故障診断機能など

 高速 (3GHz 以上 ), マルチコア (16 コア、 32 コ

ア )

 大容量メモリ (16GB, 32GB あるいはそれ以上 )

サーバ用 OS

 Windows Server, Linux, Unix, …

 効率よくラックに搭載する

(10)

サーバ (1)

(11)

サーバ (2)

(12)

サーバ (3)

(13)

なぜデータベースが必要か (1)

 データとアプリケーションを分離したい

 複数のアプリケーションでデータを共用したい

銀行の預金、引き出し、送金、利息計算

 複数の処理を同時に実行させたい

他の人の預金が終わるまで自分が預金できないのは困る

データベース B さんの引き出し

C さんの送金

A さんの預金

データベース

データベース

(14)

なぜデータベースが必要か (2)

 データとアプリケーションを分離したい

データの方がはるかに寿命が長い

30 年以上にわたって運用されているデータベースがある

 アプリケーションは制度・ルールなどでどんどん変わる

データベースは手直ししながら使い続ける

データベースを分離して運用したい

データ量の増加

 アプリケーションを変更しないでデータの構造や配置を変更

データベース

アプリケーション

データベース

データベース

アプリケーションロジック変更

入出力フォーマット変更

•アプリケーション追加

ディスクの追加

構造変更 ( インデックス追加な ど )

(15)

なぜデータベースが必要か (3)

 データを安全確実に保存したい

 サーバが故障してもデータは保全する

 停電が起こっても、火事になっても、地震が

起こっても、津波がきても

(16)

データベースと DBMS

 アプリケーションがデータベースを使うために必要な機能を提供する

のがデータベース管理システム

 DBMS: Database Management System

 通常、オペレーティングシステムとアプリケーションの間に位置する

 ミドルウェア (Middleware) と呼ばれる

 カーネル空間ではなくユーザ空間で動作するのがほとんど

(17)

データベースの提供する機能 ( 1 )

データベース言語

 データベースにいろいろな指示をするための言語

 データの構造の定義 (DDL: Data Definition Language)

 データの読み書き (DML: Data Manipulation Language)

 トランザクションの制御など (DCL: Data Control Language)

 プログラム言語とは異なる

 リレーショナルデータベースなら SQL

 プログラム言語と組み合わせて使う

埋め込み SQL

 関数呼び出しのなかで SQL を書く

 データベース言語の指示内容は DBMS が OS の入出力などに翻

訳して実行する。このとき、もっとも効率がよくなるようにす

る (最適化)

物理的データ独立性

 データを記憶媒体の中でどのように格納するかはアプリケー

ションでは意識しない

(18)

データベースの提供する機能 ( 2 )

論理的データ独立性

 データの構造とは別な構造で読み書きできる

データの一部だけを読み書きする (ビュー )

データ完全性

 データ相互間の関係が矛盾のないように維持する

データの値の制約

データの相互関係の制約

トランザクション処理

 データの読み書きが中途半端に終わらないようにする

 完了した処理結果が決して失われないようにする

同時実効制御

 多くのアプリケーションからの処理要求を同時に受け付けてお互いに衝 突しないようにデータの読み書きを制御する

セキュリティ

 与えられた権限の範囲内でしかデータの読み書きができないようにする

バックアップと障害復旧 (リカバリ )

 故障に備えてデータベースの内容を安全な場所にコピーする

 サーバやストレージ(ディスク装置)が壊れてもデータを元に戻してシ ステムの運転が継続できるようにする

(19)

データベースとデータモデル

 何でもデータベースに入る訳ではない

 データの構造に「約束」を決めておかないと

データベースは動かない

 データモデルはこの「約束」のこと

具体例

階層型データモデル

CODASYL 型データモデル

 リレーショナルデータモデル

 オブジェクト指向データモデル

 オブジェクトリレーショナルデータモデル

最も重要な

モデル

(20)

データベースの歴史

1950 年代:黎明期

 データベースの考え方の研究

1960 年代:初期普及期

 初期の商用データベース

多くは階層型モデル

 今でも多くが運用中 !!

CODASYL がデータベースインタフェースの標準化

1970 年代:リレーショナルデータベース登場

Codd がリレーショナルデータベースの提案

 商用リレーショナルデータベースの登場

現在の主流

1980 年代:リレーショナルデータベースの発展

SQL 言語の登場

(21)

データベースの歴史

1990 年代:リレーショナルの普及、他のデータモデル

SQL の標準化 (SQL92, SQL99)

リレーショナルデータベースを用いたシステム開発があたりまえ

オブジェクト指向データベース、オブジェクトリレーショナル

データベースの登場

データベースを用いた Web アプリケーションの登場

2000 年代:インターネットとのつながりとオープンソースの流れ

Java, Perl, PHP などの Web アプリケーションとデータベースの

つながり強まる

オープンソースのデータベース、その他のプラットフォームが商

用サービスでも

Linux (OS)

 Tomcat, JBoss (Web アプリケーションサーバ )

 PostgreSQL, MySQL, Firebird ( データベース )

SQL がデータベースの中核

 データベースシステム間の違いは少ない

(22)

リレーショナルデータベースの超概要

 あらゆる情報は「表」で表す:テーブル、リレー

ションともいう

 表の中に表を入れたりしてはいけない

 数字や文字列などの「項目」を入れるだけ

データベースによっては「配列」や「レコード」を入れること

もできるが、許可された形式のデータしか入らない。

 表の作成、表のデータの読み書きは SQL 言語で行う

 これ以上の詳細は「リレーショナルデータベース」

の回で説明

学籍番号 氏名 学部 学科 入学年度

0001 相田翔子 環境情報学部 情報メディア学

2006

0002 赤坂泰彦 環境情報学部 情報メディア学

2006

0003 明石家さんま 環境情報学部 情報メディア学

2006

(23)

トランザクションとは

 アプリケーションの処理の単位

A さんの口座の残額を読む

振り込み額を A さんの口座から減額 B さんの口座の残額を読む

振込み額を B さんの口座に加える

トランザクションの

止まったら最初 に戻ってほしい

無事ここまで処理できたら後で消 えてもらっては困る

 データベースは上記ようにトランザクションの保護や取り消

しの機能を持っている

(24)

トランザクションの ACID 特性

 トランザクションの持つべき重要な 4 つの特性

 A (Atomicity)

 トランザクションは中途半端で完了しない

完了できない場合はキャンセルして元に戻る

 C (Consistency)

 データに矛盾が生じる書き込みをさせないこと

 データに矛盾がないようにデータを格納できること

 I (Isolation)

 他のトランザクションが実行中であることを意識しな

いで処理できること

 D (Durability)

 一旦完了したトランザクションの結果はいかなること

があっても失ってはならないこと

実際には程度問題あり。天変地異があってもデータを守る

場合などは、コスト問題もある

参照

関連したドキュメント

[r]

区分 授業科目の名称 講義等の内容 備考.. 文 化

授業科目の名称 講義等の内容 備考

社会学文献講読・文献研究(英) A・B 社会心理学文献講義/研究(英) A・B 文化人類学・民俗学文献講義/研究(英)

       資料11  廃  棄  物  の  定  義  に  つ  い  て  の  現  行  の  解  釈.