
データベース設計の基本的なプロセスと論理設計・物理設計の進め方
業務システムやWebサービスに広く活用されているデータベースは、整理・管理されたデータの集まりです。
データベース製品を社内に導入したとしても、単純にデータを蓄積しただけではデータベースとして効率的に運用することは難しいといえます。データのなかから必要な情報を円滑に抽出できるようにするための、“データベース設計”が必要です。
この記事では、データベース設計の基本的なプロセスと進め方、ポイントについて解説します。
データベースの効率的な運用についてはこちらの資料をご確認ください。
目次[非表示]
- 1.データベース設計の基本的なプロセス
- 2.データベース設計の進め方と押さえておくポイント
- 2.1.論理設計
- 2.1.1.①要件の定義
- 2.1.2.②エンティティの抽出・定義
- 2.1.3.③ER図の作成
- 2.1.4.④正規化
- 2.2.物理設計
- 2.2.1.①テーブル・インデックスの決定
- 2.2.2.②ハードウェアのサイジング
- 2.2.3.③ハードウェア構成の決定
- 2.2.4.④ファイルの格納領域の決定
- 3.まとめ
データベース設計の基本的なプロセス
データベース設計のプロセスは、大きく分けて論理設計と物理設計に分かれ、この順で進行します。
▼データベース設計のプロセス
設計段階 | 概要 |
1.論理設計 | データベース上で管理するデータを整理して概念モデルを作成したうえで、論理モデルに変換してテーブル構成を設計するプロセス |
2.物理設計 | 論理設計を基に、パフォーマンスも考慮しながら実際のデータベース環境に落とし込んで最適化を図るプロセス。ハードウェア面の選定も含まれる |
なお、データの整理から概念モデル作成までの工程を概念設計と呼ぶ場合もあります。
データベース設計の進め方と押さえておくポイント
論理設計と物理設計のプロセスは、さらにいくつかの工程に分けられます。工程ごとのポイントを押さえて設計を進めることが重要です。
論理設計
論理設計は、要件の定義からエンティティの抽出・定義、ER図の作成、正規化までの流れで進めます。
①要件の定義
設計するデータベースの要件を定義します。要件定義が十分に行えていない場合、あとから再定義が必要になったり、データベースを業務に活用しきれなくなったりする可能性があります。
要件を定義する際は、データベースの設計目的を明確にすることがポイントです。データベースを活用する業務の内容や活用方法などを洗い出すことで、データベースでどのようなデータを管理する必要があるのかを明らかにできます。
②エンティティの抽出・定義
定義した要件に沿って、エンティティの抽出・定義を行います。
エンティティとは、設計したデータベースを使用する業務内で管理対象となる情報のことです。データベースにおいてはテーブルとして保存されます。
▼エンティティの例
業務の例 | エンティティの例 |
販売管理 |
|
顧客管理 |
|
エンティティを抽出する際は、粒度の大きいものから列挙していくと効率的です。エンティティを抽出できたら、それぞれがどのようなデータを保持する必要があるかを定義します。
③ER図の作成
データベースに必要となる情報を洗い出したあとは、ER図の作成に移ります。
ER図とは、複数のエンティティ間の関連を図にしたものです。ERは、エンティティ(Entity)とリレーションシップ(Relationship)を指します。
ER図を作成することで、データの処理構造を概念モデルとして設計できます。
④正規化
ER図によって概念モデルを設計したら、リレーショナルデータベースとしての形式を持った論理モデルに変換します。この際、データを適切な形に整理する“正規化”を行う必要があります。
正規化を実施することで、データの冗長性を取り除いて不整合の発生を防げます。
物理設計
物理設計においては、テーブル・インデックスの決定やハードウェアのサイジングのほか、ストレージ構成およびファイル格納領域の決定も必要です。
①テーブル・インデックスの決定
論理設計に基づいてテーブルを構築します。データベースを管理するシステムのDBMS上に必要なエンティティを落とし込む必要があります。
この際、インデックスを作成することがポイントです。インデックスとはデータベース上の情報を検索するための索引を指します。インデックスを作成することで、データベース上の情報量が膨大になっても必要なデータを円滑に抽出できるようになります。
②ハードウェアのサイジング
データベースに用いるストレージを選定します。この際、ハードウェアのキャパシティとパフォーマンスの2つの観点でサイジングを行うことが重要です。
▼ハードウェアのサイジング
観点 | 概要 |
キャパシティ | システムで使用するデータ量やデータ増加率の想定に基づいてストレージの容量を選定する |
パフォーマンス | 処理時間やスループットなどに基づいて、想定するパフォーマンスが出るようにCPUやMemory、ストレージなどハードウェアを選定する |
なお、パフォーマンスは、一般的にデータベースの正規化の度合いとトレード・オフの関係にあるとされます。ハードウェアのサイジングにおいては、正規化とパフォーマンスの均衡点を探ることが欠かせません。
③ハードウェア構成の決定
ハードウェア構成を決定します。ハードウェア的に障害が発生した場合に備えて冗長性を持たせられる構成にすることがポイントです。CPUやMemory、ストレージなど各ハードウェア構成要素で障害が発生することを想定し、多重化の検討をしていきます。
ハードウェア自体を多重化し、1つのハードウェアが故障しても運用を継続できるようにすることで、データベースの可用性が確保できます。
④ファイルの格納領域の決定
データベースで管理する情報を格納する領域をストレージ上に確保します。
データベースは運用を継続するうちに格納するデータ量が膨らむため、将来的に必要になる容量を想定したうえで、領域に余裕を持たせておくことが重要です。
領域を確保したら、ハードウェア上におけるファイルの配置を決定します。
まとめ
この記事では、データベース設計について以下の内容を解説しました。
- データベース設計の基本的なプロセス
- データベース設計の進め方とポイント
データベースを効率的に運用するには、構築段階で十分なデータベース設計を行っておくことが欠かせません。
データベース設計のプロセスにおいては、論理設計で業務に使用するデータベースに求める内容を具体化したうえで、それを実現できる物理設計を行うことが求められます。
『日本エクセム』では、データベースの設計から構築、移行に至るまでのプロセスを一貫してサポートしています。データベースを活用する業務内容に応じて、最適なデータベースの設計と運用を支援します。
データベースの効率的な運用については、こちらの資料からご確認いただけます。