May 14, 2008

プロとしてのデータモデリング入門


プロとしてのデータモデリング入門 (Oracle現場主義)

キーワード:
  林優子、データベース、データモデリング、設計、入門書
データベースのデータモデリングが分かりやすく解説されている本。以下のような目次になっている。
  1. INTRODUCTION データベース設計の重要性
  2. 基礎編 はじめてのデータモデリング―データ中心アプローチによる概念設計
    1. データモデリングとは
    2. エンティティの種類と定義方法
    3. パターンでおぼえるリレーションシップ
    4. 正規化
  3. 実践編 現場で使えるデータモデリング―パフォーマンスを考慮した論理設計
    1. 論理設計とは
    2. 索引の基礎知識
    3. 索引の設計
    4. 導出項目と重複項目
    5. 非正規化
    6. 制約―ビジネスルール
  4. APPENDIX 主要ER図表記法対照表
基礎編と実践編があり、基礎編でデータモデリングの概要とE-R図の作成手順や作成時に気をつけなければならないこと、さらにテーブルの正規化なが示されている。実践編ではパフォーマンスに考慮して索引の基本から索引をどこに設定すべきか、さらにはSQL文レベルで索引の活かし方、また非正規化を行うことでパフォーマンスを上げることも出来るなどといったことが示されている。

以下、自分が特に勉強になった部分を示していく。

そもそもデータモデリングとは何か?という部分が示されているところがあるので、その部分を抜粋。
 データモデリングとは、現実の世界をモデル化し、データを考えるための安定した基盤を作る手法のことです。企業の全情報を共有するために、データを一元管理し、ハードウェア、ソフトウェア、アプリケーションから独立した、変化に絶え得るモデルを作ります。一般的には概念設計のフェーズを主にデータモデリングと呼びます。
(pp.23)
ポイントは変化に絶え得るということろ。データベースというのは、一度構築されれば途中の仕様変更や拡張を行われながらも長く使われていくものなので、現在の情報システムの問題点として、既存システムの変更要求に対応することに時間がかかり、新しいシステム開発に時間を費やせないということがある。そのため、変化に絶え得るモデルが必要になる。

また、プロセス中心アプローチの設計により、業務単位で作業を進めてきてしまい、システム全体を眺めると同じようなデータが存在してしまっているという問題もあるようだ。そうなるとデータの一元管理ができないので、プロセス中心アプローチの設計からデータ中心のアプローチで設計しなければならないようだ。データ中心アプローチというのは、データを先に考え、1つの自称を1箇所で管理する方法ということらしい。なるほどと思った。

データ中心アプローチのデータモデリングの手順は以下のようになる。
手順概要
1モデリングの方針決定トップダウンかボトプアップかなど、データモデル作成の方針を決める
2概念データモデルの仮説の作成方針にしたがいデータモデルのたたき台を作成し、疑問点や不明点を洗い出す
3概念データモデルの詳細化手順2で作成した仮説モデル(たたき台)のレビューを行い、必要な情報を得て、詳細化していく
4概念データモデルの検証機能面などからデータの過不足について検証する
(pp.24)

また、トップダウンアプローチでE-R図を作成する手順は以下のようになる。
  1. エンティティを洗い出す
  2. リレーションを洗い出す
  3. 属性を洗い出す
  4. オカレンスを識別する属性または属性の組合せを見つける
しっかりこの手順を守ることがよい概念モデルを作るコツらしい。この手順は具体例をもとに丁寧に解説されているのでかなり分かりやすい。今まで感覚的に設計をしていたことを反省した。

他にも3章でE-R図のカーディナリの設定の仕方もとても勉強になる。多対多のリレーションシップがある場合は、設計からもれているエンティティが存在するといことらしい。これは知らなかったな。

実践編のほうはよりDB設計に深く関わる人向けだと思う。しかし、プログラマレベルでは、SQL文ではHAVING句よりもWHERE句の方がパフォーマンスがあがる、索引が定義されている列で計算をしたり関数を使用すると索引が使用されないといったことなどは知っておくべきだと思う。今までパフォーマンスを考慮したSQL文を書いてこなかったので、少し反省。

データモデリングは、データを分析するスキルが必要で、これは業務スキルがないとできないと示されていて、なるほどなぁと思った。業務が分かっていないとよい設計なんかできないなと改めて思った。データモデリングはかなり上流よりだなと思った。

全体的に図も多く、メリハリがついた内容でかなり分かりやすい。何よりも何度も開きたくなるような紙質がいい。技術本は内容も大事だけど、物理的な紙質も重要な気がする。

入門者からそれなりに精通した人まで対象範囲は広いと思う。ただ、さすがにデータベースの基本事項が分かっていないと示されていることの設計のポイントなどは分かりにくいと思う。

この『プロとしての〜』シリーズはかなり分かりやすいものが多いと思う。『プロとしてのOracle PL/SQL入門』も分かりやすくて何度も読み返している。こっちもお薦め。

今回は無駄にtableタグを使用してみた。体裁を整えるのに時間がかかった・・・。テンプレ化して使いまわそう。

読むべき人:
  • テーブル設計の仕方が分からない人
  • E-R図が思うようにかけない人
  • パフォーマンスを考慮した論理設計が必要な人
Amazon.co.jpで『データモデリング』の関連書籍を見る

にほんブログ村 本ブログへ bana1 ランキングへ



トラックバックURL

コメントする

名前:
URL:
  情報を記憶: 評価:  顔   星