データベースのモデルとは?
システムを構築する上でデータベースを作成するにはモデル化という作業を行います。モデル化することを設計と置き換えても良いかと思います。
このモデル化の前段階の要件定義(どんなシステムを作るか検討する)の中で何を作るか明確になっているので、この情報をベースに設計(モデル化)を進めることで、3つのモデルが出来上がります。
今回はこの3つのモデルと設計手法に関して学習していきましょう!
3つのモデル化
3つのモデルは「概念設計、論理設計、物理設計」で作り上げます。
①概念設計
概念設計は業務分析を行って現実の世界をそのままモデル化することです。
現実の世界からデータ構造を抽出してい、それをER図やUMLクラス図などに表現することです。
②論理設計
論理設計はデータをどのように管理するかをモデル化することです。
データベースの種類には階層型データベースやネットワーク型データベース、関係データベース(RDB)、オブジェクト指向データベース(OODB)の4種類がありますが、どのデータベースを使うか決めたりします。現在の主流は関係データベースなので、基本的には関係モデルを使うことになります。
また、各テーブルの項目や属性をまとめたテーブル定義書も論理設計で作成したりします(実はテーブル定義書の作成タイミングは概念設計と述べているサイトもあります)。
システムの利用者や他のプログラム、いわゆる外部に向けたモデルなので、外部モデルと呼んだりもするようです。
③物理設計
物理設計はハードウェアを含むデータベースの実装方法をモデル化することです。
MySQLやPostgreSQL、SQL Server、Oracleなど、どのデータベース製品を使うかやデータファイルの格納場所などを決めるための設計をします。
コンピュータやハードウェア、いわゆる内部に向けたモデルなので、内部モデルと呼んだりもするようです。
以下に図でまとめてみました。
設計(モデル化)の手法
データベース設計の手法には大きく分けてトップダウンアプローチとボトムアップアプローチの2種類があります。
トップダウンアプローチ
全体から部分に落とし込むアプローチです。新しい要件や機能を追加する場合に使用します。
1.エンティティを洗い出し、リレーションシップを考えてER図を作成します
2.エンティティの属性を洗い出し、主キーを決定します
3.正規化を行い、多対多のリレーションシップを排除します
ボトムアップアプローチ
トップダウンとは逆に部分から全体にまとめていくアプローチです。元の帳票やシステムが存在する場合に使用します。
1.帳票や仕様から属性の洗い出しを行います
2.主キーを見つけ、テーブルの正規化を行います
3.テーブル構造からE-R図を作成します。
どちらも最終的にはER図やテーブル定義書が出来上がりますが、個人的にはボトムアップアプローチの方が実際のイメージから作っていけるのでやり易いかなと思います。
正規化に関しては以下の記事でも紹介しているのでご参考にしてみてください!
ER図やテーブル定義書などの完成品の品質が、システムの出来栄えに大きく関係していくるので、このデータベース設計工程をしっかり行うことは重要なんですね!
まとめ
今回はデータベースのモデルと設計の流れに関して学習してみました。設計の順番は色々なパターンがあるので、システムによってやり易いやり方を選んでいくのが良いかと思います。
ER図やテーブル定義書などの完成品の品質が、システムの出来栄えに大きく関係してくるので、このデータベース設計工程をしっかり行うことは重要なことですね!
以上です!