データモデリング入門1日目
はじめに
僕はデータベース関連をしっかりと勉強をしたことがなく(なんとなくで実装したり、フロント実装がほとんど)生きてきた人間で、これからフルスタックエンジニア(フルスタックエンジニアの定義も自分の中であいまいですがw)を目指してデータ側もやっていきたいと思い始めました。まとまりはないかもしれないですが、がんばっていく所存ですw。
また、ここで書かれていることは以下の本を参考にして書いています。 実践的データモデリング入門 (DB magazine selection) | 真野 正 |本 | 通販 | Amazon
なぜデータモデリングをするのか
データモデリングとはなにか
モデリングとは、現実の業界の世界を抽象化することである。言い換えると、「システムの対象を定まった記法で図式表現するもの」。文章によって、定義するものではないことを注意していた。ここで説明されるモデルは数学のように、誰が見ても同じ解釈になるようなものであり、つまり記法について読む側が理解している必要がある。
データモデルの種類
- 概念モデル システムのラフスケッチのようなもので、この段階ではデータ項目を全て決定しているわけではない。
- 論理モデル 概念モデルをより詳細にして、データ項目を全て決定している。
- 物理モデル RDBのテーブルと一対一に対応している。
対応範囲による分類
コーポレートデータモデル。 データモデリングはDOA(Data Oriented Application)に基づいた手法である。
データモデル≒ER図 ER図はトップダウン分析に基づい区データモデル図であると言える。(なんで?...)
モデリングの手順
以下の手順はウォーターフォール型の開発工程にしたがって書かれた手順である。 1. 概念CDMの作成 構築したい対象のビジネス構造からトップダウン分析によって、エンティティを抽出する。このモデルはシステム構築ために行うというより、情報戦略ドキュメントの一つとして現在不足しているエンティティを知るためのものである。 2. 概念PDMの作成 概念モデルを作成せずに、論理モデルを作成すると重複や不整合成が生じるらしいが明確な理由はわからない...
- 論理PDMの作成 論理モデルを作成するためには、新たな画面イメージや現行システムの画面、帳票などからデータ項目を収集していく。最後にDFDをもちいてCRUD分析をして、データの充足性を検証する。
- 論理PDMに属性を追加して、関係づける テーブル、カラム名、インデックスなどのDBMS固有情報を付加して物理 PDMを作成。
- 物理PDMからDBMS上に実装 ログデータを含めた物理的な配置や適切な容量計算などが主な作業である。
トップダウン分析 / ボトムアップ分析
データモデリングには、二つの手法がある。 これらはどちらか一方を選択して使うわけではなく、両方の使い分けをする。最初はトップダウン的にエンティティを切り出して、次にボトムアップ的に抽出した結果を付加していく。 既存のシステムに対して、モデリングするときはボトムアップ分析をする。
まとめ
- データベース実装だけが、データモデルの目的ではない。
- データモデルには、マクロで捉えるコーポレートデータモデルと対象システムにターゲットを絞ったプロジェクトデータモデルがある。
- モデリングは概念データモデル、論理モデル、物理モデルという手順を踏んで実施する。