内容紹介
DBMSを利用したWebアプリケーションの開発を基礎から学ぶ!
DBMSを活用したWebアプリケーションを作成するには、特定のプログラミング言語やデータベースエンジンの使い方だけでなく、SQLの基礎や、Web特有の技術などについて、基礎から理解する必要がある。本書では特定の実装に依存せず、DBMSをWebサイトに活用する方法を平易に解説。プログラミング言語としては、コードの可読性が高いRubyを使用する。
このような方におすすめ
・Webサイトで簡単なWebアプリケーションを作成したい方、開発者
・単純なCGIプログラミングに限界を感じつつある方
目次
主要目次
第1部 データベースとSQLの基礎
第1章 データベースとは
第2章 SQLの基礎
第3章 データベースの設計
第4章 正規化
第5章 表の作成とデータ型
第6章 整合性制約
第7章 問い合わせ
第8章 関数と演算子
第9章 グループ化と集計
第10章 データ操作
第11章 表の結合
第12章 ビュー
第2部 Webプログラミング入門
第13章 Rubyの概要
第14章 データベース操作
第15章 ページ生成とフォームデータの扱い
第16章 クッキーとセッション管理
第17章 Webアプリケーションのセキュリティ
第3部 実践的なアプリケーション例
第18章 顧客情報管理
第19章 コラボレーションツール
詳細目次
第1部 データベースとSQLの基礎
第1章 データベースとは
1.1 データベース、データベース管理システムとは
1.2 リレーショナルデータベースとは
1.2.1 表の構造
1.2.2 主なRDBMS
1.3 SQLとは
1.4 この章のまとめ
第2章 SQLの基礎
2.1 SQLの概要
2.2 対話式ターミナル
2.2.1 PostgreSQLの場合
2.2.2 MySQLの場合
2.3 表の作成
2.4 データの追加
2.5 検 索
2.6 データの更新
2.7 データの削除
2.8 この章のまとめ
第3章 データベースの設計
3.1 主キーと外部キー
3.1.1 主キーとは
3.1.2 主キーの選定
3.1.3 外部キーとは
3.1.4 複合キー(連結キー)
3.1.5 代理キー
3.2 ナル値(NULL)
3.3 モデリング記法
3.3.1 エンティティ
3.3.2 リレーションシップ
3.3.3 カーディナリティと多重度
3.4 多対多のリレーションシップの扱い
3.5 区分コード
3.6 集合演算・関係代数演算
3.6.1 和
3.6.2 差
3.6.3 積
3.6.4 直積
3.6.5 選択
3.6.6 射影
3.6.7 結合
3.7 この章のまとめ
第4章 正規化
4.1 表をフラットにする
4.2 繰り返し項目の排除 - 第一正規形
4.3 表を分解する
4.4 部分関数従属の排除 - 第二正規形
4.5 第三正規形
4.6 この章のまとめ
第5章 表の作成・変更・削除とデータ型
5.1 表の作成(CREATE TABLE)
5.2 データ型
5.2.1 数値型
5.2.2 文字列型
5.2.3 日時データ型
5.3 既定値の設定
5.4 表の削除(DROP TABLE)
5.5 表の変更
5.5.1 列の追加(ALTER TABLE ~ ADD COLUMN)
5.5.2 列の削除(ALTER TABLE ~ DROP COLUMN)
5.5.3 列の既定値の変更・削除(ALTER TABLE ~ ALTER COLUMN) 3
5.6 この章のまとめ
第6章 整合性制約
6.1 整合性制約とは
6.1.1 非ナル制約
6.1.2 一意性制約・主キー制約
6.1.3 参照制約
6.1.4 検査制約
6.2 制約の設定方法
6.2.1 列制約定義
6.2.2 表制約定義
6.3 この章のまとめ
第7章 問い合わせ
7.1 単純なSELECT文
7.2 選択リスト
7.2.1 整形と別名
7.2.2 表の明示
7.3 FROM句
7.4 WHERE句
7.5 重複の除去
7.6 整列(並び替え)
7.7 サブクエリ(副問い合わせ)
7.7.1 サブクエリの書き方
7.7.2 スカラーと表
7.7.3 相関サブクエリ
7.8 この章のまとめ
第8章 関数と演算子
8.1 関数・演算子とは
8.2 算術演算子
8.3 関数
8.4 条件式
8.4.1 真偽値とIS TRUE/FALSE/UNKNOWN
8.4.2 論理演算子(AND/OR/NOT)
8.4.3 比較演算子
8.4.4 BETWEEN
8.4.5 IN
8.4.6 LIKE
8.4.7 IS NULL
8.4.8 限定比較演算子(ALL/SOME/ANY)
8.4.9 EXISTS
8.5 この章のまとめ
第9章 集計とグループ化
9.1 集合関数
9.2 グループ化(GROUP BY)
9.3 グループごとの条件指定(HAVING)
9.4 この章のまとめ
第10章 データ操作
10.1 行の追加(INSERT)
10.1.1 定数行を挿入する
10.1.2 問い合わせ式の結果を挿入する
10.2 データの更新(UPDATE)
10.3 データの削除(DELETE)
10.4 この章のまとめ
第11章 表の結合
11.1 直積(CROSS JOIN)
11.2 結合(JOIN)
11.2.1 結合列の指定
11.2.2 内結合(INNER JOIN)
11.2.3 左外結合(LEFT OUTER JOIN)
11.2.4 右外結合(RIGHT OUTER JOIN)
11.2.5 完全外結合(FULL OUTER JOIN)
11.3 集合演算(和、差、積)
11.3.1 和(UNION)
11.3.2 差(EXCEPT)
11.3.3 積(INTERSECT)
11.4 自己結合
11.5 この章のまとめ
第12章 ビュー
12.1 ビュー表とは
12.2 ビュー表の生成・問い合わせ(CREATE VIEW)
12.3 ビュー表を通じた更新
12.4 ビューを削除する(DROP VIEW)
12.5 この章のまとめ
第2部 Webプログラミング入門
第13章 Rubyの概要
13.1 Rubyとは
13.2 スクリプトの文字コード
13.3 小さなRubyスクリプト
13.4 コメント
13.5 オブジェクト指向
13.5.1 オブジェクトとは
13.5.2 クラスとインスタンス
13.6 オブジェクトの生成
13.7 クラスとメソッド
13.7.1 クラス定義
13.7.2 インスタンスメソッドとクラスメソッド
13.7.3 メソッド定義
13.7.4 メソッド呼び出し
13.7.5 関数
13.8 変数
13.8.1 変数とオブジェクト
13.8.2 スコープ
13.9 基本的なデータ型
13.9.1 数値(Integer、Float)
13.9.2 文字列(String)
13.9.3 配列(Array)
13.9.4 ハッシュ(Hash)
13.9.5 時刻(Time)
13.9.6 日付(Date)
13.10 演算子
13.11 制御構造
13.11.1 条件分岐(if、case)
13.11.2 ループ(for、while)
13.11.3 ループからの脱出、やり直し
13.12 イテレータブロック
13.12.1 メソッドにブロックを渡す
13.12.2 ブロックからの脱出、やり直し
13.12.3 ブロックを呼び出す(yield)
13.13 パターンマッチング(正規表現)
13.14 例外機構
13.14.1 例外を受け取る(begin ~ rescue ~ end)
13.14.2 例外を発生させる(raise)
13.15 ファイル操作
13.15.1 ファイルを開いて読み書きする
13.15.2 アクセス許可(パーミッション)
13.15.3 ファイル共有・排他処理
13.16 この章のまとめ
第14章 データベース操作
14.1 Ruby/DBIとは
14.2 基本的な使用例
14.3 SQL文の実行
14.4 問い合わせ式の実行
14.5 エラーハンドリング
14.6 カーソル操作
14.7 列情報を得る
14.8 トランザクション
14.8.1 トランザクションとは
14.8.2 Ruby/DBIでのトランザクション処理
14.9 Ruby/DBIによる簡単なアプリケーション
14.10 この章のまとめ
第15章 ページ生成とフォームデータの扱い
15.1 ページとロジックとの分離
15.2 Amrita
15.2.1 内容の置換
15.2.2 属性値の置換
15.2.3 繰り返し・入れ子になった要素
15.2.4 条件分け
15.3 CGIライブラリ
15.3.1 HTMLのフォームデータ
15.3.2 プログラムでのフォームデータ受け入れ
15.3.3 ファイルのアップロード
15.3.4 HTTPヘッダの生成
15.4 この章のまとめ
第16章 クッキーとセッション管理
16.1 クッキー
16.1.1 クッキーとは
16.1.2 クッキーの生成・読み取り
16.2 セッション管理とは
16.3 データの生存期間
16.4 セッションの確立
16.5 セッション情報の取得・設定
16.6 セッションの明示的な終了
16.7 短い生存期間のデータ
16.8 この章のまとめ
第17章 Webアプリケーションのセキュリティ
17.1 情報セキュリティの概要
17.1.1 情報セキュリティの目的
17.1.2 資産、脅威、脆弱性
17.2 Webアプリケーションのセキュリティ
17.2.1 ファイル陳列
17.2.2 隠蔽コントロールの改ざん
17.2.3 未検証パラメータによるファイル漏洩
17.2.4 任意のコマンドの実行
17.2.5 クロスサイトスクリプティング
17.2.6 予測可能なセッションID
17.2.7 SQL注入
17.2.8 suExecされていないWebサーバ
17.3 Rubyのセキュリティモデル
17.4 この章のまとめ
第3部 実践的なアプリケーション例
第18章 顧客情報管理
18.1 この章で製作するもの
18.1.1 概要
18.1.2 ユースケース図
18.1.3 スクリーンショット
18.2 ファイル構成
18.3 共通のクラス、メソッド
18.3.1 ヘルパー関数
18.3.2 データベースユーザID、パスワードの取得
18.4 データベースの設計
18.5 表の作成、サンプルデータの登録
18.6 クラスの認識・構成
18.7 セッション管理と利用者の状態管理
18.7.1 ログオン処理
18.7.2 パスワードの確認処理
18.7.3 エラー画面の出力
18.8 商品の選択
18.9 商品の詳細
18.10 買い物かごに追加する
18.11 注文確定・おすすめ商品の提示
18.12 この章のまとめ
第19章 コラボレーションツール
19.1 この章で製作するもの
19.1.1 概要
19.1.2 ユースケース図
19.1.3 スクリーンショット
19.2 データベースの設計
19.3 ファイル構成
19.4 表の作成、利用者の登録
19.5 起動からログオンまで
19.5.1 ユーザ認証処理
19.5.2 ログオン画面、ログオン誘導画面の出力
19.6 プロジェクト一覧
19.7 新しいプロジェクトの追加と編集
19.8 プロジェクトの内容とタスクの一覧
19.9 タスクを追加する
19.10 タスクの表示
19.11 進捗の登録
19.12 この章のまとめ
参考文献
索 引
続きを見る