データベースと動的コンテンツ
グループ2
1130293 相川 由樹
1130305 岩本 祥平
1130319 小笠原 一聡
1130322 尾崎 遼太
1130390 松田 佳介
1データ
• データとは、オブジェクト(物体や事象)を表す値の集合である。 • コンピュータ上では、データはファイルとしてファイルシステム上に記憶し ていくものである • ファイルシステム • OSによるツリー上のディレクトリに個別に格納 問題点 • データの独立性 データに変更が生じた時にそれを利用するプログラムも 変更が必要 • 検索の容易性 先頭からの比較照合を行いながらデータを探す • データの重複 複数ユーザが一つのファイルに同時操作を行うと起こる • 障害対策 誤ったデータ入力を認識できない、物理的な障害(例:停電) に無防備など 2データベースシステムのメリット
• データベースシステム • 定義したデータ形式のファイルをデータベースにまとめる形 改良点 • データの独立性 仕様変更に対応 • データの非重複 冗長なデータベースにしない • 同時処理 複数ユーザに対応 • 障害復旧 バックアップ 3データベースの基本的な構成要素
–フィールド データを分割して値とした形 –レコード 数種類のフィールドをまとめた形 –キー 検索する際に用いるフィールド –主キー ユニークな値を入れるフィールド 学籍番号 氏名 年齢 性別 1130XYZ 矢倍実見 10万21歳 ニューハーフ レコード フィールド (主キー) (キー) 4データベースシステム
データベースシステムとは データベースとデータベース管理システム (DBMS) をまとめたもの 5 ユーザ データベースサーバ DBMS (データベース 管理システム) データ ベース 操作 データベースシステム 5データベースとは
•広義では、特定のデータをまとめた集合体
–例 電話帳、住所録など
•由来
情報(Data)の基地(Base)から
•システムとしてのデータベース
構造を与えたデータをひとつの場所に蓄積してまとめたもの
6DBMS(Data Base Management
System)
DBMS とは、データベース中のデータを管理し、利用するた めのソフトウェアである。 •基盤となるデータ記述、操作 •データモデル、SQL(データベース言語)の利用 •データ処理の効率化 •木構造などの格納方式を利用 •データの一元管理 •整合性の維持 DBMSによるチェックが行われる •機密保護 •各ユーザの操作権限の規定を行う •同時実行の制御 •ロックなどの機構を用いて排他アクセスを提供 •障害回復 •バックアップ・リカバリ 7 8データモデル
どのような構造でデータを管理するか
データを管理するために用いる構造
•
必要となる理由
データにアクセスする
不正なデータへのアクセスからデータベースを守る
データモデルの例
階層型データモデル
ネットワークデータモデル
関係モデル(リレーショナルモデル)
8 9階層型データモデル
メリット
データを木構造で表している
→ 少ない時間で探索可能
デメリット
木構造に沿わないデータの管理には向かない
代表的な階層的データモデルの使用例
IBM社のIMS
9ネットワーク型データモデル
•
子が複数の親を持つことが可能
•
複雑なデータ構造になってしまう=データの整理・一元化
が困難
1 0リレーショナルデータモデル
の台頭
•
階層型にもネットワーク型にも問題点
•
E.F.Coddによって提唱
•
構造が表形式で単純
•
データ操作は数学的に行う
•
現在のデータベースモデルの中で最も普及
テーブル
リレーショナルモデル1
データを二次元の表形式で表したもの 表のことをテーブルと呼ぶ テーブルは複数の属性(アトリビュート)より構成 個々の値の組をタプルと呼ぶ 学籍番号 名前 専攻所属 研究室 1130305 岩本祥平CC
1130322 尾崎遼太CS
属性 組リレーショナルモデル2
ドメイン(定義域) ある属性の値として取りうる値の集合 例 性別 男と女 情報学群の専攻 iH , iM , CC , CS 外部キー リレーションの属性値が常に別のリレーションの主キーのどれか の値 主キー 外部キー 主キー 受験番号 出身高校 住所 4649 布賀高校 ◎◎県◎◎市 18782 三菜頃市立高校 △△県△△市 学籍番号 名前 受験番号 1130xxx 単井暮 4649 1130www 貫井徹夜 18782 受験生の情報 学生の情報 13SQL
•
リレーショナルデータベース管理システムとやり取りを行う
ためのデータベース言語
•
データの作成、操作、取得させるための言語
•
SQL実装の代表的オープンソースDBMS
•
MySQL
•
PostgerSQL
14SQLの機能
制御機能
詳細
データベース定義
データを格納すべき表の定義
複数の表を関連づけるための規約や制約
データベースに必要な機密保護の宣言
データベース操作
表に対するデータの登録・修正・削除
複数の表の結合、ビュー表の作成などの集
合操作
表中のデータを検索
データベース制御
データベース利用者に対する権限の譲渡と
剥奪をします
15静的SQLと動的SQL
•
静的SQL
•
プログラムソースコード内に直接SQL文を記述
•
埋め込みSQLとも呼ばれる
•
動的SQL
•
プログラムで動的にSQL文を生成し発行
•
静的 SQLと比べるとパフォーマンスは劣るが柔軟性が
高い
16MySQL
•
Monty Wideniusが独自開発した、リレーショナルデータベ
ース管理システム
•
オープンソースのデータベース管理システムの中でシェア
NO.1
•
歴史
•1996年 自力で開発,6月には 公式リリース •2000年 MySQL AB 社設立 •2008年 サンマイクロシステムズが買収 •2010年 Oracleが買収 •2010年 最新版の MySQL ver.5.5.12 をリリース 17MySQL
•
MySQLの特徴=ストレージエンジンの自由度
•
アプリケーションに合して複数のストレージエンジンを選択
•
ストレージエンジンとは
•
データを挿入・抽出・更新・削除などをするための基礎と
なるソフトウェア部品
18データベースと
Webシステムの関係
1 9Webシステムとは
•動的コンテンツを生成するプログラム
頻繁にデータの更新をWebシステムで行う
→
データベースを通すことが多い
理由
•データベースへのアクセスがSQLを通して行える
•データの一貫性や同時アクセスを委ねれる
Web上で扱われるコンテンツ
静的コンテンツと動的コンテンツに分類
20静的コンテンツ
静的コンテンツとは
・HTMLファイルの内容の変更に合わせて、コンテンツも変更
・HTMLファイルを変更しないとコンテンツも変更されない
いつも同じもの
21動的コンテンツ
・URLが同じでもリクエストに応じて内容の変更
検索エンジンサイト、掲示板、アクセスカウンタ など
動的コンテンツとは
22動的コンテンツ
2種類のプログラム実行方法
・Webサーバ側でのプログラムの実行
・クライアント側でのプログラムの実行
CGIを介するもの SSIを利用するものSSI
〜Server Side Include〜
・NCSA HTTPDが最初に取り入れた
SSIを利用しての実行
Webサーバへの要求
WebサーバはSSI命令
の
検索と処理を行う
処理結果に置換して、
クライアントへ渡す
25SSI
~Server Side Include~
・動的なコンテンツの生成に、コーディングが必要ない
・SSI用のコマンドを使うだけでよい
・さまざまな情報を柔軟な形で取り込める
・サーバの負担が大きくなる
・処理時間がかかるため、返されるのが遅い
メリット
デメリット
26SSIコマンド記述例
SSIの書式はすべてHTMLのコメントの形式
<!--#command option=″…″-->
#config 以降の出力形式の指定
#include
他のファイルを取り込む#echo
ファイル名、現在時刻などを表示#fsize ファイルサイズ、最終更新日の表示
#flastmod ファイルサイズ、最終更新日の表示
#exec シェルコマンド、CGIを実行
27CGI
~Common Gateway Interface~
28
・Webブラウザからの要求に応じてプログラムを起動する仕組み
・要求から新規プロセスを作成する
CGIを介しての実行
Webサーバへの要求
CGIがプログラムを実行
実行結果を渡す
クライアントで表示
29CGI
・どのブラウザでも表示できる
・Webサーバにデータを保存するためデータ共有が可能
掲示板、チャットなど
・webサーバの負担が大きい
・常に変化し続けるページの作成ができない
アクションゲームなど
メリット
デメリット
30クライアント側での実行
Webサーバへの要求
クライアントがプログラムを実行
クライアントで表示
(例:ダイナミックHTML(DHTML)、Javaアップレット)
Webページにアクセスすると自動でダウンロード
31クライアント側で実行
何故?
・DHTMLはクライアント側のスクリプトのみ使用可能
(CSS、JavaScript等)
・Javaアップレットは、実行する際にWebブラウザが必要
32• 何人ものユーザーがWebサーバ側でのプログラムの実行
→数が少なく大勢に共有されているサーバーに負荷をかける
利用例
その他、関連技術的用語
PHP
ECMAScript
-HTMLの作成を主観として作成された言語 -多くのブラウザに実装されているクライアント側のスクリプト言語
33PHP
HTMLの作成を目的として作成された言語 特徴 データベースと組合わせた動的なコンテンツを含むページが作成可能 主要なデータベースシステムをサポート HTML以外の XMLドキュメント、グラフィックス、Flashアニメーション、PDFファイル などの生成も可能 利用例 Yahooや 楽天などのショッピングサイトで採用 34PHP
HTMLページの中にPHPのコマンドを埋め込んだ形式 WebサーバがPHPのコマンドを処理→その出力内容をブラウザへ PHP利用の利点 CGI:プログラム呼び出しの度にプロセスを起動しなくてはならない →このデメリットを克服 →CGIと比較すると、実行速度が断然早い。 充実したエラー解析・出力の機能 これまでの動的Webページ作成過程に比べて、デバッグ性が大きく向上まとめ(1)
データベース
データベースシステム
DBMS
データモデル
SQL
まとめ(2)
3 7Webコンテンツ
静的コンテンツと動的コンテンツの2種類
Webサーバで実行とクライアントで実行 SSIとCGI それぞれのメリットデメリットあり サーバの負担を減らすため課題
ApacheにてSSI、CGIが実行できる環境の設定
PHPの動作環境をサーバに作成
それぞれの技術で時間表示するプログラムを作成
また、技術的違いを考えよ
(SSI、CGI、PHP、ECMAScript)
CGIでカウンタプログラムの作成
CGIで動作する簡易掲示板をインストール
PHPで動作するpukiwikiをサーバへインストール
38参考文献(1)
CGIプログラミング 第2版 Scott Guelich、Shishir Gundavaram、Gunther Biznieks 著 オライリー・ジャパン 2001/06/27 発行 オブジェクト指向データベース入門 宇田川佳久 著
株式会社ソフト・リサーチ・センター 1992/08/25 発行 データベースおもしろ講座 飯沢篤志、白田由香利 著
共立出版株式会社 1993/4/30 発行 Java&XMLデータアクセスガイド Dan Chang、Dan Harkey 著
株式会社翔泳社 2000/1/30 発行 データベースシステム 北川博之 著 株式会社昭晃堂 1996/7/10 発行 39
参考文献(2)
新・HTML&CGI入門 笹木望、太田晶宏、藤崎真美 共著 エーアイ出版株式会社 1996/12/6 発行 SQLプログラミング R.K.Stephens、R.R.Plew、B.Morgan、J.Perkins 共著 ソフトバンクパブリッシング株式会社 1998/10/28 発行プログラミングPHP Rasmus Lerdorf、Kevin Tatroe、Peter MacIntyre 共著
オライリージャパン 2007/10/19 発行
40
すぐわかるSQL 朝井淳 著
株式会社技術評論社 2001/03/09 発行 続・HTML入門 第2版 Laura Lemay、Arman Danesh 共著
株式会社プレンティスホール出版 1998/08/20 発行