Presentation is loading. Please wait.

Presentation is loading. Please wait.

第8章 データベースシステムの発展 8.1 オブジェクトリレーショナルデータベース 8.2 分散データベース 8.3 インターネットとデータベース.

Similar presentations


Presentation on theme: "第8章 データベースシステムの発展 8.1 オブジェクトリレーショナルデータベース 8.2 分散データベース 8.3 インターネットとデータベース."— Presentation transcript:

1 第8章 データベースシステムの発展 8.1 オブジェクトリレーショナルデータベース 8.2 分散データベース 8.3 インターネットとデータベース

2 8.3 インターネットとデータベース 1.Webとデータベース (a) Webの普及とデータベース
1991年、商用に使用できない制限(AUP : Acceptable Use Policy)が外されてから、研究者・技術者以外の一般の人の利用が普及してきた。 今や、個人ユーザやビジネスに欠かせない存在 世界中の情報間を行き来することが可能(Webの利用) 企業内ネットワークとしてのイントラネット ビジネスへのインターネットの応用

3 データベースとの関連 Webの情報そのものもデータベースの一種と考えることができる。
検索エンジンは情報検索のツールであるが、データベースの検索とはかなり異なっている。 インターネット上の機密保持機能は不十分なので、信頼性確保はDBMSで行い、Webサーバとのインターフェースをとる機能が開発されている。

4 (b)Webを用いたアプリケーション Webのシステム構成
クライアント側 サーバ側 Web サーバ (IIS, Apacheなど) Web ブラウザ Web ページ

5 サーバ側でプログラムを実行させる方法(その1)
CGIを用いてWebサーバと別のプロセスを起動して プログラム実行 クライアント側 サーバ側 要求により起動 Web ブラウザ Web サーバ CGI Program HTML

6 サーバ側でプログラムを実行させる方法(その2)
Webサーバに組み込まれたモジュールとして同一プロセスとして実行する、 クライアント側 サーバ側 要求により起動 Web サーバ内 モジュール Web ブラウザ Web サーバ

7 サーバ側でプログラムを実行させる方法(その3)
Webサーバとは別のプロセスを起動しておき、Webサーバから要求を受けてプログラムを実行 クライアント側 サーバ側 要求 Web ブラウザ Web サーバ Program HTML

8 CGIを用いる方法 CGIはどのWebサーバでも使用できる。 Perlなどのスクリプト言語やC言語など、一般のプログラミング言語を使用できる。 要求ごとにプロセスが起動されるのでオーバヘッドが大きいので大規模なアプリケーションには向いていない。

9 Webサーバのモジュールとして実行する方法
スクリプト言語PHPやRubyなどが使える。 CGIに比べて高速な処理が可能である。 PerlをWebサーバのモジュールとして組み込むこともできる。

10 Webサーバと別のモジュールを常駐させる方法
Java Servlet, JSP, ASP.NET等がある。 どのWebサーバでも利用できるとは限らない。 効率が良いとともに大規模アプリケーションプログラム開発も可能である。

11 (c) プログラムとHTMLの記述方法 <html> <head><title>CGIの呼び出し</title></head> <body> <form method="GET" action="cgiprog.cgi"> <p>入力データ <input type="text" size=20 name="indata"></p> <p><input type="submit" VALUE="OK"></p> </form> </body> </html> 2番目のOKボタンをクリックすると、actionで指定されたプログラムが起動され、indataという変数名の値としてテキストボックスのデータが渡される)

12 実行結果をWebに表示させる方法 ①プログラムのprint文等にHTML を埋込み、それを表示する。(CやPerlの方法) ②HTML文書の中にプログラムを記述する。(PHPやRubyの方法) Webを記述するほうが簡単なのでPHPがよく使われる。 Web-データベース連携など特定目的のプログラムの場合、HTMLタグを拡張し、HTML内に直接処理を記述する方法がある。

13 MTMLとプログラムを混在させる方法 Webデザインとプログラムの混在によって、 大規模プログラムの場合は複雑になってしまう。
混在したプログラムから通常のプログラムを呼び出して実行する。 JSPのページからJavaBeansのプログラムを利用する。

14 (d) Web-データベース連携 【最も単純な方法】 入力画面と出力画面を用意し、入力画面で入力したテキストをSQLの問合せとする。
一般ユーザにとって使いやすいとは言えない。 ①グラフィカルな入力画面を用意する ②動作指示のためのボタンを用意する。 etc.

15 形態上は、サーバ上でのアプリケーションの起動と同じ
通常の利用方法 ① ユーザがWeb画面から何らかの指定を行うことでアプリケーションが起動される。 ② アプリケーションからDBMSにアクセスする。 形態上は、サーバ上でのアプリケーションの起動と同じ

16 アプリケーションとDBMSのインターフェース
標準化されたインターフェース(例:ODBC)

17 ODBC( Open Database Connectivity)
① 同一コンピュータ内だけでなくネットワーク経由でも利用可能。 ② Javaでは各所のDBMSの利用を可能とするためJDBCが標準として用意されている。 Application 1 Application 2 Application n ・・・ ODBC API ODBCドライバ・マネージャ(ODBC.DLL) DBMSドライバ DLL(SQL Server) DBMSドライバ DLL(Oracle) DBMSドライバ DLL(Sybase) ・・・ (SQL Server) (Oracle) (Sybase)

18 2.XMLとデータベース (a) XMLの概要 Extensible Markup Language and Data Base
<?xml version="1.0" encoding="Shift-Jis" ?> <!DOCTYPE 学生データ[ <!ELEMENT 学生データ(学生)> <!ELEMENT 学生(氏名, 性別, 体格データ)> <!ELEMENT 氏名(#PCDATA)> <!ELEMENT 性別(#PCDATA)> <!ELEMENT 体格データ(身長, 体重)> <!ELEMENT 身長(#PCDATA)> <!ELEMENT 体重(#PCDATA)> ]> <学生データ> <学生><氏名>加藤哲哉</氏名><性別>男</性別> <体格データ><身長>172</身長><体重>63</体重></体格データ> </学生データ> XML宣言 DTD 本文

19 もうひとつの例 DTD <?xml version="1.0" encoding="Shift-Jis" ?> <!DOCTYPE 書籍データ[ <!ELEMENT 書籍データ(書籍)> <!ELEMENT 書籍(書名, 著者 +, 出版社)> <!ELEMENT 書名(#PCDATA)> <!ELEMENT 著者(氏名, 所属)> <!ELEMENT 氏名(#PCDATA)> <!ELEMENT 所属(#PCDATA)> <!ELEMENT 出版社(#PCDATA)> <!ATTLIST 書籍 種類 CDATA #REQUIRED)> ]>

20 もうひとつの例 本文 <書籍データ> <書籍 種類="教科書"> <書名>電気通信技術入門</書名> <著者><氏名>山田豊</氏名> <所属>○○工業大学</所属></著者> <著者><氏名>林昭三</氏名> <所属>○×大学</所属></著者> <出版社>ゆたか創造舎</出版社> </書籍> </書籍データ>

21 スタイルの記述 ①HTMLにおけるCSSでもスタイルを記述可能。 ②XSLで書式情報付き文書に変換できる。 (ここではデータベース的側面に関する話題が中心なので詳細については省略)

22 XML文書の検索 ① XML文書は木構造になっているので、文書の一部を探したり、特定の場所を指示するためにXPathを用いてルートから該当ノードまで検索できる。 ② タグ名でデータ種類を指定できるので、SQLに類似したXQueryという言語が用意される。

23 XMLに関する傾向 特定業界や特定商品に関する情報のXMLによる標準化を行う動きが盛んになってきている。
XMLを用いたB2B商取引環境が整備されつつある。 定型的なデータベースと非定型的なドキュメントデータベースをXMLで統合化できる可能性も秘められている。

24 (b)XMLとデータベース XMLとRDBとの比較 RDB XML スキーマ DTDやXMLスキーマ データ本体 XML文書 問合せ言語
XQuery データ構造は表形式なので、複雑なデータを表現するには複数の表が必要。 もともと文書記述に適した形式を目指しているので、自由度の大きい木構造である。 構造化データを扱う。 半構造化データを持つ。 データ型の宣言やデータの制約条件などの機能がある(オブジェクト指向の導入) データ型の宣言機能が不十分である。 データベース管理機能を持つ。 通常のファイルに格納される。

25 XMLをRDB格納する方法 ①非構造化格納法 XML全体を1つのデータ項目としてテキストとして格納。 ②構造化格納法 XML文書のスキーマに応じて、関係に対応させ、データを意味のある単位に分解して格納。 ③ハイブリッド方式 非構造化格納法と構造化格納法を併用する。 ④木構造格納法 XML文書は木構造なので木のノードや枝に着目して関係を作成し、文書を分割して格納する。

26 格納方法の選択条件 ①通常の文書に近いXML文書は、非構造化格納法かハイブリッド方式が適している。 ②内容がデータ中心の場合、可能であれば構造化格納法が適している。

27 XMLのRDBへの格納例 ISDN 書名 種類 出版社 9784904551XYZ 電気通信技術入門 教科書 △○出版 著者ID 氏名 所属
<書籍データ> <書籍 種類="教科書"> <書名>電気通信技術入門</書名> <著者><氏名>山田豊</氏名> <所属>○○大学</所属></著者> <著者><氏名>林昭三</氏名> <所属>○×大学</所属></著者> <出版社>△○出版</出版社> </書籍> </書籍データ> XMLのRDBへの格納例 <書籍> ISDN 書名 種類 出版社 XYZ 電気通信技術入門 教科書 △○出版 <著者> <書籍の著者> 著者ID 氏名 所属 000001 山田豊 ○○大学 000002 林昭三 ○×大学 ISDN 著者ID XYZ 000001

28 (XMLとRDBのまとめ) ①Web-データベース連携によるXML利用が重要。 ②XMLを中間言語とすることで、データベースを扱うアプリケーション作成が容易になる。 ③業界や商品ごとに共通化したXML形式を使うことでアプリケーションを連携させることが容易になる可能性が高い。


Download ppt "第8章 データベースシステムの発展 8.1 オブジェクトリレーショナルデータベース 8.2 分散データベース 8.3 インターネットとデータベース."

Similar presentations


Ads by Google