Webデータベースの構築技術

Webデータベースの構築技術

Apache,MySQL,PHPを利用してWebデータベースプログラミングを基礎から学ぶ。画像処理やセッション管理など高度な内容も扱い,マルチメディアデータを扱うWebデータベースの設計・開発スキルが身につけられる。

ジャンル
発行年月日
2009/10/08
判型
B5
ページ数
198ページ
ISBN
978-4-339-02440-1
Webデータベースの構築技術
品切

定価

3,300(本体3,000円+税)

電子版を購入

購入案内

  • 内容紹介
  • まえがき
  • 目次
  • 著者紹介

Apache,MySQL,PHPを利用してWebデータベースプログラミングを基礎から学ぶ。画像処理やセッション管理など高度な内容も扱い,マルチメディアデータを扱うWebデータベースの設計・開発スキルが身につけられる。

本書は,Webデータベースの構築技術をはじめて学ぶ人の入門書として書かれている. 大学の学部レベルの情報系学生向けの教科書として,またWebデータベースを構築しようとしている企業の技術者向けの参考書として読まれることを想定している.

大学では各章を2コマ(3時間)で学ぶことを想定している. 全8章を8週間で学ぶことができる. これに加えてガイダンスと学生による独自のWebデータベースを企画・設計・構築することを含めて半期の実験(演習)科目用の教科書として使用できる.

まず. Webデータベースとは何かを理解した後Windows環境でオープンソースのApache,MySQL,PHPを使用して画像などのマルチメディアデータをWebブラウザから登録したり検索したりするWebデータベースを実際に構築しながら,そのために必要な技術を学んでいくことができる. ApacheはWebサーバソフトウェア,MySQLはリレーショナルデータベース管理システム,PHPはWebサーバ上で実行されるスクリプト言語である. これらおよびWindowsの頭文字をつなげてWAMPと称し,実用のWebデータベース構築によく使用されている

類書にない特徴として,最初(第1部(1~3章)と第2部(4~6章)で)はセキュリティなどの高度な機能を入れないで(つまり悪意のユーザやいたずらがないことを前提とした)正常系の基本的な機能のみでシステムを構築することを学ぶ. 類書ではセキュリティなどの機能が最初からプログラム例中に散在しているので,初心者はどこが実現したい機能の本質的な部分かを理解しにくい. 本書では,本質的なプログラムを理解した後,第3部(7~8章)の技法編で高度な機能を学ぶ. しかも,そこではこのような機能を入れないとどのような不都合があるかを示し,その対策としての機能を学ぶので理解しやすくなっている

第1部では,本書で使用するオープンソースのApache,MySQL,PHPを自分のPCにインストールしそれぞれの使用方法を学ぶ.

第2部では,Webデータベースの基本的な構築技術を学ぶ. また,画像を取り扱う技術も学ぶ.

第3部では,セキュリティやセッションといった高度な技術を学ぶ.
前見返しによく使用するPHP書式の簡便一覧を,後ろ見返しにはSQL書式の簡便一覧を示しているので,一通り学習した後に書式を思い出すときに参照すると便利である.

リレーショナルデータベースの基本を学ぶには,姉妹編の「リレーショナルデータベースの実践的基礎」が用意されている.

なお,本書の特徴として,教科書としてご採用の先生方に対して,コロナ社を通じてプログラムリストのファイル演習問題解答や使用ソフトウェアのインストール手順書などの教材をご提供する仕組みを備えている.

2009年8月
速水治夫


本書姉妹編の内容梗概と特徴

『リレーショナルデータベースの実践的基礎』
データベースがなぜ必要なのかを理解し,リレーシヨナルデータベースを実践的に使用できる実力が備わる内容になっている. 特に,リレーショナルモデルの論理設計およびSQLを具体例で学ぶことができるSQLの実行例はオープンソースのデータベース管理システムであるMySQLを使用して示している。

『データベースの実装とシステム運用管理』(2010年9月発行予定)
データベースシステム開発において,論理設計以降で重要となる「データベースの実装・テスト」および「データベースシステムの運用管理」を重点的に学ぶことができる. 高度な内容であるが,具体例を交えてわかりやすく記述しているので,初心者でも十分理解することができる.

[特徴]
両著書をあわせて学ぶことによって「情報処理技術者試験」の「データベーススペシャリスト試験(DB)」の出題範囲を理解することができる.

また,両著書の特徴として,教科書としてご採用の先生方に対して,コロナ社を通じて講義を進めるためのPowerPointの資料などの教材をご提供する仕組みを備えている.

0.準備
0.1 この本で学習する内容
0.2 この本の学習で使用する機器とソフトウェア
0.3 この本の学習の構成
0.4 各章の確認事項と演習問題
 0.4.1 確認事項
 0.4.2 演習問題
0.5 本書の学習のための基礎知識
 0.5.1 Webサーバによる情報提供方法の分類
 0.5.2 Webアプリケーション
 0.5.3 Webデータベース
 0.5.4 まとめ

第1部
1.MySQL入門・その1
1.1 本章について
1.2 MySQLのインストール
1.3 簡単なデータベース
 1.3.1 作成する製品データベースの仕様
 1.3.2 自分のユーザアカウントの準備
 1.3.3 製品データベースの作成
 1.3.4 自分のユーザアカウントによるログイン
 1.3.5 製品テーブルへのデータ入力と検索
 1.3.6 製品データベースの消去
1.4 バッチ処理によるデータベースの作成
 1.4.1 本節の作業を行う前に
 1.4.2 バッチ処理によるデータベースの作成
 1.4.3 バッチ処理によるデータベースの消去
1.5 CSVファイルからデータベースへの入力
 1.5.1 CSVファイルの作成
 1.5.2 CSVファイルからテーブルへの取込み
 1.5.3 テーブルからCSVファイルへの取出し
1.6 MySQL 5.0の管理
 1.6.1 コマンドおよびステートメント
 1.6.2 PHP 4との互換性について
1.7 演習問題
 
2.MySQL入門・その2
2.1 本章について
2.2 リレーショナルデータベースの設計
 2.2.1 テーブルの正規化
 2.2.2 主キーと外部キー
 2.2.3 主キーとしてのID番号
2.3 データベースの作成
 2.3.1 CREATE DATABASE文によるデータベースの作成
 2.3.2 CREATE TABLE文によるテーブルの作成
 2.3.3 CREATE TABLE文の詳細
2.4 データの入力
 2.4.1 INSERT文によるデータの挿入
 2.4.2 LOAD DATA INFILE文によるCSVファイルからのインポート
2.5 データの検索
 2.5.1 SELECT文による検索の基本
 2.5.2 WHERE句による検索条件の指定
 2.5.3 ORDER BY句による並び順の指定
 2.5.4 テーブルの結合
2.6 データの変更・削除
 2.6.1 UPDATE文によるデータの変更
 2.6.2 DELETE文によるデータの削除
2.7 演習問題
 
3.Apache HTTP ServerとPHP
3.1 本章について
3.2 Apache HTTP ServerとPHPのインストール
3.3 PHPによるWebアプリケーション入門
 3.3.1 Webアプリケーション
 3.3.2 例題Webアプリケーション「福岡名物をどうにかしよう」
 3.3.3 実装
3.4 PHPによるWebアプリケーションの実行の仕組み
 3.4.1 システム構成
 3.4.2 動作
 3.4.3 特徴
3.5 HTMLフォーム
 3.5.1 フォームとWebアプリケーション
 3.5.2 FORMタグ
 3.5.3 ラジオボタン
 3.5.4 テキストフィールド
 3.5.5 送信ボタンとリセットボタン
3.6 PHPスクリプトによるフォーム処理
 3.6.1 PHPコード
 3.6.2 変数
 3.6.3 リクエストパラメータの取得
 3.6.4 条件分岐(if文)
3.7 演習問題

第2部
4.データベース接続
4.1 本章について
4.2 Apache・PHP・MySQLによるWebデータベース入門
 4.2.1 Webデータベース
 4.2.2 例題Webデータベース「Web製品データベース」
 4.2.3 製品データ表示機能の実装
4.3 Apache・PHP・MySQLによるWebデータベースの実行の仕組み
 4.3.1 システム構成
 4.3.2 動作
4.4 PHPスクリプトからのMySQLアクセス
 4.4.1 MySQLアクセスのためのPHP関数
 4.4.2 繰り返し(while文)
 4.4.3 MySQLアクセスのエラー処理
4.5 検索
 4.5.1 製品データ検索機能
 4.5.2 製品データ検索機能の実装
 4.5.3 製品データ検索機能の動作
 4.5.4 文字列の結合
4.6 テーブルの結合
4.7 演習問題
 
5.データベース更新
5.1 本章について
5.2 データ追加
 5.2.1 製品データ追加機能
 5.2.2 製品データ追加機能の実装
 5.2.3 製品データ追加機能の動作
 5.2.4 フォーム送信のためのPOSTメソッド
 5.2.5 自動的なページ遷移
 5.2.6 フォーム記入のエラー処理
5.3 データ編集
 5.3.1 製品データ編集機能
 5.3.2 製品データ編集機能の実装
 5.3.3 製品データ編集機能の動作
 5.3.4 記入欄のデフォルト値の表示
5.4 外部キー値の追加・編集
 5.4.1 外部キーの整合性の確認
 5.4.2 配列の生成と検索(配列関数とforeach文)
5.5 設定情報の共通ファイル化
5.6 データ削除
5.7 タブ表示
5.8 追加・編集機能の実装における留意点のまとめ
5.9 演習問題
 
6.画像処理
6.1 本章について
6.2 ファイルアップロードの処理
 6.2.1 例題Webアプリケーション「Webファイラ」
 6.2.2 Webファイラの実装
 6.2.3 Webファイラの動作
 6.2.4 フォームによるファイル送信
 6.2.5 PHPスクリプトによるファイル受信
 6.2.6 設定ファイルphp.iniによる制限
 6.2.7 MIMEタイプ
6.3 サムネイル画像の生成
 6.3.1 PHPによるサムネイルの生成
 6.3.2 受信した画像ファイルをサムネイルへ変換し保存する機能
 6.3.3 保存済み画像ファイルのサムネイル表示機能
6.4 PHPとMySQLによるファイルデータベース
 6.4.1 Webファイルデータベース
 6.4.2 設計
 6.4.3 MySQLデータベースの実装
 6.4.4 PHPスクリプトの実装
6.5 演習問題

第3部
7.セキュリティ
7.1 本章について
7.2 セキュリティ上危険なWebデータベース
 7.2.1 ダメなWebデータベース「DAME」
 7.2.2 フォームの改変
7.3 Webデータベースに対する攻撃と対策方法
 7.3.1 大切な前置き
 7.3.2 強制ブラウジング
 7.3.3 フォームの改ざんと偽装
 7.3.4 SQLインジェクション
 7.3.5 クロスサイトスクリプティング
 7.3.6 クロスサイトリクエストフォージェリ
 7.3.7 ディレクトリさかのぼり攻撃
 7.3.8 NULLバイト攻撃
7.4 パラメータ値の変換処理
 7.4.1 PHPによる自動変換
 7.4.2 シフトJIS(Shift JIS)コードと変換処理の問題
 7.4.3 エスケープ用関数の作成
7.5 その他の留意点:手がかりを隠すこと
7.6 演習問題
 
8.セッション
8.1 本章について
8.2 セッションを利用するWebアプリケーション
 8.2.1 セッションのテスト
 8.2.2 ログインのテスト
 8.2.3 ワンタイムチケットのテスト
8.3 セッション
 8.3.1 HTTPとセッション管理
 8.3.2 PHPのセッション処理関数
8.4 セッションとセキュリティ
 8.4.1 ワンタイムチケット
 8.4.2 セッション固定化攻撃
 8.4.3 ログイン
8.5 演習問題

参考文献 
あとがき 

付録 
 PHP関数・MySQL関数の説明
 インストール時の注意事項

索引

速水 治夫

速水 治夫(ハヤミ ハルオ)

 大学院修士課程を修了後,電電公社(その後NTT)の研究所に26年間勤めました.この間,電電公社がサービスを開始したデータ通信に使用するコンピュータや,そこで必要となるデータベース処理の高速化を狙ったデータベース処理専用プロセッサの実用化研究に従事しました.中でも,全国銀行協会の全国銀行データ通信システムなどのナショナルプロジェクトに参加できたのは良い思い出です.その後,データベースを応用したグループウェア,ワークフローシステムの研究に従事しました.この間,一貫して注力したことはユーザの要求・要望をしっかり汲み取ってシステムに反映することでした.
 その傍らデータベース処理の高速化に関する博士論文を纏めて工学博士となり大学教授への準備もできました.
 そして50歳で大学教授に転職しました.大学では前職の経験を活かして,論理回路,データベース,グループウェアなどの講義を担当しました.これらに活用するため,12冊の教科書・解説書を複数の出版社から上梓することもできました.
 データベース,グループウェア,Webシステムなどに関する卒業研究・修士研究・博士研究の指導を行いました.その研究スタイルは,学生自身が実世界(普段の生活)で不便に感じていること,あったら良いなと感じることを問題点として整理し,その問題解決に情報処理技術を駆使したシステムを構築し,実際に動作させて問題点を解決できたかを評価するという「問題発見・解決型の研究」でした.研究ゼミで学生が発見した問題点を発表するとき,当初は適切に言語化できない場合が多々ありました.著者は企業時代にユーザの適切に言語化されていない要望をくみ取った経験を活かして,学生自身が自分の発見した問題点を適切に言語化できるように指導しました.これによって,システム開発の狙いが明確となっていきました.中には情報処理学会の有力な研究会で発表し表彰を受けるほどの成果に結びついた研究も幾つかありました.
 また,前職の後半より続けた研究活動により情報処理学会フェローに選定頂いております.

服部 哲(ハットリ アキラ)

教科書採用者向け 関連資料申込
プログラムリストのファイル
演習問題解答
使用ソフトウエアのインストール手順書