本書の目的
本書の構成
対象とする読者
動作確認したシステム
表記法について
謝辞
ライセンスについて
第1部 データベースとSQLの基礎
第1章 データベースとは
データベース、データベース管理システムとは
リレーショナルデータベースとは
表の構造
主なRDBMS
SQLとは
この章のまとめ
第2章 SQLの基礎
SQLの概要
対話式ターミナル
PostgreSQLの場合
MySQLの場合
表の作成
データの追加
検索
データの更新
データの削除
この章のまとめ
第3章 データベースの設計
主キーと外部キー
主キーとは
主キーの選定
外部キーとは
複合キー(連結キー)
代理キー
ナル値(NULL)
モデリング記法
エンティティ
リレーションシップ
カーディナリティと多重度
多対多のリレーションシップの扱い
区分コード
集合演算・関係代数演算
和
差
積
直積
選択
射影
結合
この章のまとめ
第4章 正規化
表をフラットにする
繰り返し項目の排除 -- 第一正規形
表を分解する
部分関数従属の排除 -- 第二正規形
第三正規形
この章のまとめ
第5章 表の作成・変更・削除とデータ型
表の作成(CREATE TABLE)
データ型
数値型
文字列型
日時データ型
既定値の設定
表の削除(DROP TABLE)
表の変更
列の追加(ALTER TABLE 〜 ADD COLUMN)
列の削除(ALTER TABLE 〜 DROP COLUMN)
列の既定値の変更・削除(ALTER TABLE 〜 ALTER COLUMN)
この章のまとめ
第6章 整合性制約
整合性制約とは
非ナル制約
一意性制約・主キー制約
参照制約
検査制約
制約の設定方法
列制約定義
表制約定義
この章のまとめ
第7章 問い合わせ
単純なSELECT文
選択リスト
整形と別名
表の明示
FROM句
WHERE句
重複の除去
整列(並び替え)
サブクエリ(副問い合わせ)
サブクエリの書き方
スカラーと表
相関サブクエリ
この章のまとめ
第8章 関数と演算子
関数・演算子とは
算術演算子
関数
条件式
真偽値とIS TRUE/FALSE/UNKNOWN
論理演算子(AND/OR/NOT)
比較演算子
BETWEEN
IN
LIKE
IS NULL
限定比較演算子(ALL/SOME/ANY)
EXISTS
この章のまとめ
第9章 集計とグループ化
集合関数
グループ化(GROUP BY)
グループごとの条件指定(HAVING)
この章のまとめ
第10章 データ操作
行の追加(INSERT)
定数行を挿入する
問い合わせ式の結果を挿入する
データの更新(UPDATE)
データの削除(DELETE)
この章のまとめ
第11章 表の結合
直積(CROSS JOIN)
結合(JOIN)
結合列の指定
内結合(INNER JOIN)
左外結合(LEFT OUTER JOIN)
右外結合(RIGHT OUTER JOIN)
完全外結合(FULL OUTER JOIN)
集合演算(和、差、積)
和(UNION)
差(EXCEPT)
積(INTERSECT)
自己結合
この章のまとめ
第12章 ビュー
ビュー表とは
ビュー表の生成・問い合わせ(CREATE VIEW)
ビュー表を通じた更新
ビューを削除する(DROP VIEW)
この章のまとめ
第2部 Webプログラミング入門
第13章 Rubyの概要
Rubyとは
スクリプトの文字コード
小さなRubyスクリプト
コメント
オブジェクト指向
オブジェクトとは
クラスとインスタンス
オブジェクトの生成
クラスとメソッド
クラス定義
インスタンスメソッドとクラスメソッド
メソッド定義
メソッド呼び出し
関数
変数
変数とオブジェクト
スコープ
基本的なデータ型
数値(Integer、Float)
文字列(String)
配列(Array)
ハッシュ(Hash)
時刻(Time)
日付(Date)
演算子
制御構造
条件分岐(if、case)
ループ(for、while)
ループからの脱出、やり直し
イテレータブロック
メソッドにブロックを渡す
ブロックからの脱出、やり直し
ブロックを呼び出す(yield)
パターンマッチング(正規表現)
例外機構
例外を受け取る(begin 〜 rescue 〜 end)
例外を発生させる(raise)
ファイル操作
ファイルを開いて読み書きする
アクセス許可(パーミッション)
ファイル共有・排他処理
この章のまとめ
第14章 データベース操作
Ruby/DBIとは
基本的な使用例
SQL文の実行
問い合わせ式の実行
エラーハンドリング
カーソル操作
列情報を得る
トランザクション
トランザクションとは
Ruby/DBIでのトランザクション処理
Ruby/DBIによる簡単なアプリケーション
この章のまとめ
第15章 ページ生成とフォームデータの扱い
ページとロジックとの分離
Amrita
内容の置換
属性値の置換
繰り返し・入れ子になった要素
条件分け
CGIライブラリ
HTMLのフォームデータ
プログラムでのフォームデータ受け入れ
ファイルのアップロード
HTTPヘッダの生成
この章のまとめ
第16章 クッキーとセッション管理
クッキー
クッキーとは
クッキーの生成・読み取り
セッション管理とは
データの生存期間
セッションの確立
セッション情報の取得・設定
セッションの明示的な終了
短い生存期間のデータ
この章のまとめ
第17章 Webアプリケーションのセキュリティ
情報セキュリティの概要
情報セキュリティの目的
資産、脅威、脆弱性
Webアプリケーションのセキュリティ
ファイル陳列
隠蔽コントロールの改ざん
未検証パタメータによるファイル漏洩
任意のコマンドの実行
クロスサイトスクリプティング
予測可能なセッションID
SQL注入
suExecされていないWebサーバ
Rubyのセキュリティモデル
この章のまとめ
第3部 実践的なアプリケーション例
第18章 顧客情報管理
この章で製作するもの
概要
ユースケース図
スクリーンショット
ファイル構成
共通のクラス、メソッド
ヘルパー関数
データベースユーザID、パスワードの取得
データベースの設計
表の作成、サンプルデータの登録
クラスの認識・構成
セッション管理と利用者の状態管理
ログオン処理
パスワードの確認処理
エラー画面の出力
商品の選択
商品の詳細
買い物かごに追加する
注文確定・おすすめ商品の提示
この章のまとめ
第19章 コラボレーションツール
この章で製作するもの
概要
ユースケース図
スクリーンショット
データベースの設計
ファイル構成
表の作成、利用者の登録
起動からログオンまで
ユーザ認証処理
ログオン画面、ログオン誘導画面の出力
プロジェクト一覧
新しいプロジェクトの追加と編集
プロジェクトの内容とタスクの一覧
タスクを追加する
タスクの表示
進捗の登録
この章のまとめ
参考文献
索引