【勉強2】達人に学ぶDB設計徹底指南書 前半

勉強で「達人に学ぶDB設計徹底指南書」を読んだので、個人的に要点をまとめています。表現が正確でない点もあるかと思いますが、あくまで個人的な整理ですのでその点ご理解いただければ幸いです。

前半 DB概要

第1章 データベースを制する者はシステムを制する

キーワード

メモ

  • DBMS(Database Management System)とはデータベースを活用するあらゆるシステム(Amazonの購入履歴データ、Facebookの投稿データなど)で、DBをいつでも簡単に利用可能にできるようにするためにある。
    • 代表的なDBMSPostgreSQL, MySQLなどがある。 
    • データとは一定の形式(フォーマット)に揃えられた事実のことであり、一番イメージしやすいのは二次元の表形式。
  • データベースの代表的モデル
    • RDB(リレーショナルデータベース)では二次元表の形式で管理する
    • OODBオブジェクト指向データベース)では、オブジェクト(データと操作をまとめたもの)をそのままDBに保存する。オブジェクト指向言語Java, C++)で使用される
    • その他にはXMLデータベース、キーバリュー型ストア、階層型データベースなどがある。
  • ITのシステムの設計、またはシステム開発では以下の工程が必要である。
    • 1.要件定義:システムが満たすべき機能やサービスの水準を決める。
    • 2.設計:要件を満たすために必要なシステムの設計・デザインを行う。より詳細には以下の設計が必要である。
      • アプリケーション(AP)設計:ソフトウェアの提供する機能を決める。
      • ユーザーインターフェース設計:ユーザーが使用する画面の設計
      • データ設計
    • 3.開発(実装):プログラマによるコーディング以外にも、サーバーやネットワーク機器のハードウェアの環境構築も含む
    • 4.テスト:システムが要件を満たす品質があるかと試験する。大きく分けると、機能的な品質のテストと非機能品質(性能や信頼性)のテストに大別される
    • 本書は設計に焦点を当てる。
  • データ設計、特にデータベースに保持するデータの設計(データベース設計)はITの設計の中で最も重要である。
    • 理由は、ソフトウェアは「データの流通機構」であり、どんなプログラムが必要になるかが、どのようなデータをどういう形式で設計するかに左右されるため。
    • このようにプログラムより前にデータ設計をする方法論をDOA(Data Oriented Approach, データ中心アプローチ)という
      • 一方プログラムから設計するのをPOAというが、業務のプロセスは変わりやすいので非効率的で非推奨。
  • 3層スキーマはDB設計の段階を示す
    • 外部スキーマ:テーブルやビューの画面など、ユーザーに何を見せるかの構図。
    • 概念スキーマ:テーブル定義、データの要素やデータ同士の関係。開発者の視点。
      • 正規化(3章)、ER図(4章)に関連。
    • 内部スキーマ:データのテーブルやインデックスなど物理的な配置。DBMSの視点。
      • 物理設計(2章)やパフォーマンス(6章)に関連。
    • 概念スキーマは見え方(外部スキーマ)とデータ格納方式(内部スキーマ)の結合を租にし、データ独立性を高めるために必要。
      • 概念スキーマがないと、例えばユーザーへの見え方を変えたい時に外部スキーマだけでなく内部スキーマまで変えないといけなくなる。
    •  

第2章 論理設計と物理設計

追記中...