DBMS(データベース管理システム)におけるデータモデリングとは、複雑なソフトウェアシステムの設計を、データの流れ方を表す記号やテキストを使い、理解しやすい図として記録するプロセスです。
この図は、レガシーアプリケーションのリエンジニアリングや、新しいソフトウェアを作成するための設計として使用することができます。
通常、データモデルは、新しいアプリケーションの要件を完全に理解するために、プロジェクトの分析・設計段階で作成されます。
データモデリングは、データ間の関係を示すフローチャートと考えることができますが、データモデルに考えられるすべての関係を取り込むには時間がかかるため、このステップは急ぐべきではありません。
よく文書化された論理的、物理的、概念的データモデルにより、モデラーはプログラミングコードを書く前にエラーを検出し、修正を加えることができます。
データモデラーは定期的に様々なモデルを使用して同じデータを閲覧し、すべてのエンティティ、プロセス、データフロー、および関係が特定されていることを確認します。
データモデリングには、次のようないくつかのアプローチがあります。
i. i. 概念的データモデリング – 2つ以上の異なるエンティティ間の最高レベルの関係を特定する。
ii. エンタープライズ・データ・モデリング – 概念的データ・モデリングに類似。
ただし、特定のビジネス特有の必要性に対処する。
iii. 論理データモデリング – あらゆるビジネス機能に関わる特定の属性、関係、および実体を図示する。
物理データモデルを作成する際の単なる基礎となる。
iv. 物理データモデリング – 論理データモデルのデータベース固有の実装と適用を表す。
データベースモデル
データベースモデルは、データの論理的な設計を記述するものです。
データモデルは、異なるデータ部分間の関係を定義する。
データモデリングには、通常これらのモデルが使用される。
ネットワークモデル、リレーショナルモデル、階層的モデル、オブジェクト指向モデルなどです。
ネットワークモデル
このモデルでは、エンティティはグラフで表現され、いくつかのエンティティは多数のパスを通じて取得することができる。
ネットワークデータベースは、階層型データベースが抱えていた深刻な問題を解決するために設計された。
ネットワークデータベースは、関係を階層構造ではなく、集合として示すことにより、データの冗長性を修正する。
したがって、階層モデルはネットワークモデルのサブセットです。
このモデルは、多対多の関係をサポートする。
関係モデル
関係モデルでは、データは関係と呼ばれる2次元の表で組織化される。
テーブル/リレーションは互いに関連している。
このモデルは広く採用されており、効率的なデータ整理のための優れたモデルと考えられている。
現在、リレーショナルデータベースは、軽量なデスクトップアプリケーションから、高度に最適化された検索方法を備えた機能満載のサーバーシステムまで、幅広い製品が提供されている。
代表的なRDBMS(リレーショナルデータベース管理システム)には、Oracle、Microsoft SQL server、MySQL、IBM、Microsoft Accessなどがあります。
階層型モデル
階層モデルでは、各エンティティは単一の親を持つが、複数の子から構成されることができる。
ルートは階層の最上位にあり、1つのエンティティのみで構成される。
階層モデルは幅広い概念をカバーしている。
それは頻繁にデータまたは情報のさまざまなレベルがあるより大きい形態に関連している多層モデルのような多くのセットアップを参照する。
階層モデルは、レコードのグループを任意のグラフではなく、木で表示する点で、ネットワークモデルに匹敵する。
オブジェクト指向モデル
オブジェクトプログラミング言語でのデータベース機能を強化するために考案されたモデル。
オブジェクトモデルは、JavaやSmalltalkのオブジェクトプログラミング言語であるC++のセマンティクスの拡張を可能にするものである。
通常、自然言語との互換性を保ちつつ、完全な機能を持つデータベースプログラミング機能を提供するために使用される。
データベースモデルの種類 By Marcel Douwe Dekker – 自作, CC BY-SA 3.0, via Wikicommons