書籍概要

これだけは知っておきたい データベースの常識

著者
発売日
更新日

概要

データベースは,知らないうちに皆が利用しているものですが,リレーショナルデータベースとは何かとか,SQLって何?など,知っておかなければならない知識が多くあります。本書では,それぞれのデータベースの歴史から,どのような技術が使われているか,何のための技術なのかなど,系列立てて解説します。Webアプリケーションからデータベースを呼ぶようなアプリケーションを作る人までの,学習や知識の整理のために役立ちます。

こんな方におすすめ

  • データベースを初めて学習する学生の教材として
  • SEやデータベース管理に携わる人の全般的な知識の向上
  • データベースを利用する人の一般的な知識として

目次

第1章 データベースの第一歩

1.1 データベースとは何か

  • データとデータベース
  • コンピュータ化されたデータベース

1.2 データベースとデータモデル

  • データモデルとは
  • 階層型データモデル
  • ネットワーク型データモデル
  • リレーショナルデータモデル

1.3 データベースの設計

  • データベースの設計図「スキーマ」
  • 3つのスキーマ
  • スキーマを3階層にするメリット

1.4 最近のデータベースの流れ

  • オブジェクト指向データベース
  • XMLデータベース
  • ORM

1.5 データベースの主なソフト

  • 商用のリレーショナルデータベース
  • オープンソースのリレーショナルデータベース
  • 一般向けのリレーショナルデータベース
  • 各種のデータベース

第2章 リレーショナルデータベースの考え方 

2.1 「表」や「集合演算」が基本

  • データを表形式で表す
  • 集合演算でテーブルを組み合わせる
  • リレーショナルデータベースに独自な「選択」「射影」「結合」
  • null(ナル)について
  • 様々な処理を組み合わせる
  • リレーショナルデータベースとSQL

2.2 ER図(Entity-ralationship Diagram)でテーブルの関係を図示する

  • ER図の必要性
  • 実体(Entity)とは?
  • 関連とは?
  • 3種類の関連

2.3 テーブルの正規化

  • 正規化するテーブルの例
  • 1つの行/列に1つの値を入れる───第1正規形
  • 主キーに部分関数従属する列を別テーブルに分ける───第2正規形
  • 推移的に関数従属する列を別のテーブルに分ける───第3正規形
  • その他の正規形
  • 意図的に正規形を崩すこともある

2.4 結合のパターン

  • 1対多結合
  • 多対多結合
  • 1対1結合

第3章 リレーショナルデータベースをコントロールする「SQL」 

3.1 SQLの概要

  • SQLの概要
  • SQLの生い立ち
  • DML/DDL/DCL

3.2 行を取り出す

  • select命令でテーブルの行をすべて取り出す
  • 射影を行う(テーブルから一部の列を取り出す)
  • 選択を行う(一部の行を取り出す)
  • 複数の条件を組み合わせて選択する
  • 行の並べ替え
  • 値が重複する行を除外する

3.3 テーブル内での計算や集計

  • 列同士の計算
  • 集計を行う
  • グループ化して集計する
  • 集計結果に条件を指定する
  • 集計結果を並べ替える

3.4 テーブルを結合する

  • 内部結合
  • 外部結合
  • 自己結合
  • 結合のselect文の様々な書き方

3.5 副問い合わせと相関副問い合わせ

  • 副問い合わせの概要
  • where句の条件に副問い合わせを使う
  • 副問い合わせの結果をテーブルのように扱う
  • 相関副問い合わせの概要

3.6 テーブルの作成と行の挿入等の操作

  • テーブルの作成───create table命令
  • 行の作成───insert命令
  • 行の内容の変更───update命令
  • 行の削除───delete命令

第4章 より高度なデータベース処理 

4.1 ユーザ/権限/ロールの設定

  • ユーザとは?
  • ユーザ操作関係のSQL
  • ユーザに権限を与える
  • 権限操作関係のSQL
  • 複数の権限を「ロール」にまとめる

4.2 ビューの作成

  • ビュー(View)とは?
  • ビューに関するSQL
  • ビューの使い道

4.3 テーブルや列に制約を設定する

  • 制約の概要
  • 一意性制約
  • 非null制約
  • 主キー制約
  • 検査制約
  • 参照制約
  • テーブル作成後の制約の追加と削除

4.4 インデックスで検索を高速化する

  • インデックスとは?
  • インデックスとB木
  • 適切なインデックス付けが必要
  • インデックスに関するSQL

4.5 データベース側で各種の処理を実行する───ストアドプロシージャ

  • ストアドプロシージャの仕組み
  • ストアドプロシージャのメリットとデメリット
  • ストアドプロシージャの作成や実行

4.6 各種のタイミングで処理を自動的に行う───トリガ

  • トリガの仕組み
  • 文単位のトリガと行単位のトリガ
  • トリガの連鎖(カスケード)
  • トリガの作成や実行

4.7 トランザクションと障害対策

  • 一連の処理が途中で失敗するとどうなる?
  • トランザクションで処理を確実に行う
  • ACID特性
  • トランザクションの処理
  • データベースの障害
  • バックアップ/チェックポイント/ログ
  • システム障害からの復旧

4.8 同時に多数のユーザがデータベースにアクセスできるようにする(同時実行制御)

  • 2つの処理が同時にテーブルを更新するとどうなる?
  • 「ロック」で問題を解決する
  • ロック中にさらにロックをかけようとした場合(ロックの競合)
  • ロックの細かさ(粒度)
  • 二相(Two Phase)ロック
  • デッドロック
  • トランザクション分離レベルの指定
  • 同時実行制御に関するSQL

4.9 複数のサーバにデータベースを分散する

  • 分散データベース
  • 分散データベースの要件
  • サーバの分散形式
  • テーブルの分割
  • 分散問い合わせ処理とその効率化
  • 分散トランザクション
  • レプリケーション(複製)

4.10 インターネットとデータベース

  • Webアプリケーションと3層クライアント・サーバシステム
  • セキュリティの問題

第5章 データベース主要用語集

サポート

現在サポート情報はありません。

商品一覧