はじめてでもわかるSQLとデータ設計
1 SQLとは ( 2)
- DBMSの役割 ( 3)
- データベース操作機能 ( 4)
- 同時実行制御 ( 5)
- トランザクション管理 ( 6)
- 機密保護 ( 7)
- 障害回復 ( 7)
- なぜSQLが必要か? ( 7)
- さまざまなSQL ( 10)
- SQL86/87/89 ( 11)
- SQL92(SQL2) ( 12)
- SQL99(SQL3) ( 12)
- SQLを使うには ( 14)
- SQL文の実行 ( 15)
- 埋め込み型SQL ( 16)
- 動的SQL ( 17)
- ビジュアル開発でのSQL ( 17)
2 SQLの基本 ( 19)
- テーブルの作成と削除 ( 20)
- テーブルの作成 ( 20)
- テーブルの削除 ( 21)
- データの追加 ( 22)
- データの選択 ( 23)
- 条件をつけて表示する(1) ( 24)
- 条件をつけて表示する(2) ( 25)
- データの集計 ( 25)
- データの更新と削除 ( 25)
- データの更新 ( 26)
- データの削除 ( 27)
- 複数テーブルを使った選択 ( 27)
- テーブルの結合(1) ( 28)
- テーブルの結合(2) ( 29)
- 副問い合わせ(サブクエリー) ( 29)
- 参照制約 ( 31)
- 参照制約の設定 ( 32)
- データの登録 ( 33)
- データの削除 ( 33)
- データの更新時 ( 34)
- ビューの操作 ( 34)
- ビューの作成 ( 35)
- ビューの削除 ( 36)
- ビューの表示 ( 36)
- バッカス記法(BNF)の読み方 ( 36)
- コラム
1 SQLによるデータ設計 ( 40)
- SQLの表 ( 41)
- 列(カラム) ( 44)
- データ型の指定 ( 45)
- データ型の種類 ( 45)
- 初期値 ( 46)
- ドメイン ( 47)
- キー ( 50)
- 主キーと候補キー ( 51)
- 外部キー(参照キー) ( 52)
- NULL(空値) ( 55)
- 一貫性制約 ( 58)
- ドメイン制約 ( 60)
- キー制約 ( 61)
- 参照制約(外部キー制約) ( 62)
- 空値制約 ( 62)
- データモデルと正規化 ( 62)
- ERモデル(実体関連モデル) ( 63)
- 正規化 ( 64)
- ストアドプロシージャとトリガー ( 65)
- ストアドプロシージャ ( 66)
- トリガー ( 67)
- テーブル定義の変更 ( 67)
- インデックス ( 68)
- インデックスの削除 ( 69)
- インデックスと更新速度 ( 69)
2 データモデリング ( 71)
- 3つの視点 ( 71)
- 外部スキーマ(external schema) ( 72)
- 概念スキーマ(conceptual schema) ( 73)
- 内部スキーマ(internal schema) ( 73)
- データ中心アプローチ(DOA) ( 73)
- POAの問題点 ( 75)
- DOAとリレーショナルデータベース ( 77)
- ERモデル ( 77)
- エンティティ(entity) ( 78)
- アトリビュート(attribute) ( 78)
- リレーションシップ(relationship) ( 78)
- ERモデルと関係モデル ( 79)
- データベースへの写像 ( 79)
- エンティティの注意点 ( 81)
- リレーションシップの注意点 ( 81)
- ER図(ERダイアグラム) ( 83)
- キーの表記 ( 85)
- 基数制約の表記 ( 85)
- ケースツール ( 86)
- 1対多のリレーションシップ ( 87)
- 1対多の参照キー ( 89)
- 親子と参照 ( 89)
- 多対多、多対1のリレーションシップ ( 92)
- 1対1のリレーションシップ ( 95)
- 1対1の意味 ( 96)
- 1対1の参照キー ( 96)
- 識別子(キー) ( 98)
- 埋もれている識別子がないか ( 99)
- 存在しない識別子を使っていないか ( 99)
- 識別子は“アトミック”か (100)
- 区分コード (101)
- 特化と汎化 (103)
- is-aの関係になっているか (103)
- orの関係になっているか (104)
- どちらでテーブルを作るか (105)
3 データの正規化 (106)
- 第1正規形と繰り返し項目の排除 (107)
- 関数従属に基づく正規形(第2、第3正規形、BC正規形) (110)
- 部分関数従属と完全関数従属 (111)
- 推移的関数従属 (112)
- ボイスコッド正規形(BCNF) (113)
- ボイスコッド正規形までのまとめ (115)
- 多値従属性と結合従属性(第4、第5正規形) (118)
- ドメインキー正規形(DKNF) (123)
- 第4正規形からの正規化 (124)
- 第2正規形からの正規化 (125)
- ドメインキー正規形とER図 (127)
- コラム
1 SQLによる問い合わせ (132)
- SELECT文の基本(1)−列の指定 (133)
- 重複の除去 (134)
- 列の計算と整形 (134)
- 列の別名 (135)
- テーブルの明示 (135)
- SELECT文の基本(2)−FROM句 (136)
- SELECT文の基本(3)−WHERE句 (138)
- 大小の比較 (139)
- NULL値を調べる (139)
- 範囲の指定 (139)
- 文字列の比較 (140)
- 条件を組み合わせる (141)
- 複数の値を調べる (141)
- NULLとUNKNOWN (143)
- 関数と演算子 (146)
- 数値 (146)
- 文字列 (147)
- 日付時刻 (147)
- 型の変換 (147)
- NULL (147)
- データのグループ化と集計 (149)
- 集約関数 (150)
- グループの条件 (151)
- 複数の列でグループ化する (152)
- GROUP BYを使ったときのSELECT句 (152)
- 行の並び替え(ソート) (153)
- 並び順を変える (154)
- 複数項目での並び替え (154)
- 件数を指定する (154)
- テーブルの結合(JOIN) (156)
- クロス結合(cross join) (156)
- 内部結合(inner join) (156)
- 外部結合(outer join) (157)
- 自己結合 (159)
- テーブルの連結(UNION) (163)
- 重複の除去 (164)
- 並び替え (166)
- レイアウトが異なる場合 (166)
- 共通(INTERSECT) (167)
- 差(EXCEPT) (168)
- 副問い合わせ(サブクエリー) (169)
- 相関副問い合わせ (172)
- 相関副問い合わせの動き (173)
- EXISTS (174)
- 副問い合わせとNULL (175)
2 データの更新 (177)
- INSERT(デ−タの追加) (177)
- 初期値 (178)
- 列名を省略した場合 (179)
- SELECT文の結果を登録する (180)
- UPDATE(データの修正) (182)
- 複数のデータを一度に更新する (182)
- ほかのテーブルを参照するには (183)
- SET句で副問い合わせ (183)
- DELETE(データの削除) (184)
- 更新と権限 (185)
3 SQLと関係演算 (187)
- 集合演算と関係演算 (188)
- 関係演算(1)−和(union) (190)
- 和両立 (191)
- SQLによる和の演算 (192)
- 関係演算(2)−差(difference) (192)
- 関係演算(3)−共通(intersection) (194)
- 関係演算(4)−直積(direct product) (197)
- 関係演算(5)−選択(selection) (198)
- 関係演算(6)−射影(projection) (199)
- 関係演算(7)−結合(join) (201)
- 関係演算(8)−商(division) (202)
- コラム
おわりに(+参考書籍) (208)
索引 (214)
構文索引 (222)
- 第1章
- SQLって何の略? 2
- DBMSのいろいろ 6
- SQLを解釈するのは誰か? 8
- 新しいデータベースとSQL 13
- SQL拡張言語 17
- 第2章
- データディクショナリ 43
- 新しいデータ型 46
- 新しい規格をチェックする 49
- キーの変更と参照制約 54
- 制約の名前 60
- 表明(assersion) 66
- 効果的なインデックス 70
- オブジェクト指向 76
- リレーションとリレーションシップ 80
- リレーションシップの次数 82
- 2種類のエンティティ 91
- 新しいエンティティの意味 94
- 新しい識別子 101
- スーパータイプとサブタイプの表記 105
- 更新不整合 109
- ボイスコッド正規形と決定項 114
- 超キー(スーパーキー)と候補キー 117
- 第3章
- SQL92/99のFROM句 137
- SELECT文による“検索” 142
- IF文を論理演算で表現する 145
- WHERE句と演算 148
- 並び替え(ソート)とパフォーマンス 155
- JOINのコスト 162
- 限定述語(ALL、ANY)を使わない表現 171
- 副問い合わせか、結合か? 174
- テーブルから新しいテーブルを作る 180
- データベース言語 186
- 射影と直積と差から商を求める 205