
ソフトウェアエンジニアリングにおけるデータモデリングとは、特定の形式的手法を適用して情報システムのデータモデルを作成するプロセスです。より広範なモデル駆動型エンジニアリング(MDE)の概念の一部として適用される場合もあります。
データモデリングとは、組織内の対応する情報システムの範囲内で、ビジネスプロセスをサポートするために必要なデータ要件を 定義および分析するプロセスです。そのため、データモデリングのプロセスには、専門のデータモデラーが、ビジネスステークホルダーや情報システムの潜在的なユーザーと緊密に連携して取り組む必要があります。
要件から情報システムに使用される実際のデータベースに進む過程で作成されるデータモデルには、3 つの種類があります。[2] データ要件は、最初は概念データモデルとして記録されます。これは基本的に、データに関する技術に依存しない仕様のセットであり、ビジネス関係者と初期要件について話し合うために使用されます。次に、概念モデルは論理データモデルに変換されます。論理データモデルは、データベースに実装できるデータの構造を文書化します。 1 つの概念データモデルの実装には、複数の論理データモデルが必要になる場合があります。データモデリングの最後のステップは、論理データモデルを、データをテーブルに整理し、アクセス、パフォーマンス、およびストレージの詳細を考慮した物理データモデルに変換することです。データモデリングでは、データ要素だけでなく、その構造と要素間の関係も定義します。[3]
データモデリングの技術と方法論は、データをリソースとして管理するために、標準化され、一貫性があり、予測可能な方法でデータをモデル化するために使用されます。組織内でデータの定義と分析に標準的な手段を必要とするすべてのプロジェクト(例えば、データモデリングの使用)では、データモデリング標準の使用を強く推奨します。
データモデリングは、様々な種類のプロジェクトやプロジェクトの複数のフェーズで実施されます。データモデルは段階的に進化するものであり、ビジネスやアプリケーションにおける最終的なデータモデルというものは存在しません。むしろ、データモデルは変化するビジネスに応じて変化する生きた文書であると考えるべきです。理想的には、データモデルはリポジトリに保存し、時間の経過とともに取得、拡張、編集できるようにする必要があります。Whittenら (2004) は、2種類のデータモデリングを定義しました。[ 4]
データモデリングは、特定のデータベースに対するビジネス要件を詳細化する手法としても用いられます。データモデルは最終的にデータベースに実装されるため、データベースモデリングと呼ばれることもあります。 [4]

データモデルは、特定の定義と形式を提供することで、情報システム内で使用されるデータの枠組みを提供します。システム間でデータモデルが一貫して使用されることで、データの互換性が実現されます。同じデータ構造を使用してデータを保存およびアクセスすることで、異なるアプリケーション間でシームレスにデータを共有できます。この結果は図に示されています。しかし、システムとインターフェースの構築、運用、保守には多くの場合、費用がかかります。また、ビジネスを支援するのではなく、むしろ制約してしまうこともあります。これは、システムとインターフェースに実装されたデータモデルの品質が低い場合に発生する可能性があります。[1]
データ モデルでよく見られる問題は次のとおりです。

1975年にANSIは3種類のデータモデルインスタンスを定義した。[5]
ANSIによれば、このアプローチにより、3つの観点は互いに比較的独立していられます。ストレージ技術は、論理スキーマにも概念スキーマにも影響を与えることなく変更できます。テーブル/列構造は、概念スキーマに(必ずしも)影響を与えることなく変更できます。もちろん、いずれの場合も、構造は同じデータモデルのすべてのスキーマ間で一貫性を保つ必要があります。

ビジネスプロセス統合の文脈では(図を参照)、データモデリングはビジネスプロセスモデリングを補完し、最終的にはデータベースの生成につながります。[6]
データベース設計プロセスには、前述の3種類のスキーマ(概念スキーマ、論理スキーマ、物理スキーマ)の作成が含まれます。これらのスキーマに記述されたデータベース設計は、データ定義言語(DDL)を介して変換され、データベースを生成するために使用できます。完全に属性付けされたデータモデルには、その中のすべてのエンティティの詳細な属性(記述)が含まれます。「データベース設計」という用語は、データベースシステム全体の設計における様々な部分を指すことができます。主に、そして最も正確には、データの格納に使用される基本データ構造の論理設計と考えることができます。リレーショナルモデルでは、これらはテーブルとビューです。オブジェクトデータベースでは、エンティティとリレーションシップは、オブジェクトクラスと名前付きリレーションシップに直接マッピングされます。ただし、「データベース設計」という用語は、基本データ構造だけでなく、データベース管理システム(DBMS)内のデータベースアプリケーション全体の一部として使用されるフォームやクエリも含めた、設計プロセス全体を指す場合もあります。
このプロセスにおいて、システムインターフェースは現行システムの開発・サポートコストの25%から70%を占めています。このコストが発生する主な理由は、これらのシステムが共通のデータモデルを共有していないことです。システムごとにデータモデルを開発すると、重複する領域で同じ分析を繰り返すだけでなく、システム間のインターフェースを作成するためにさらなる分析を行う必要があります。組織内のほとんどのシステムは、特定の目的のために再開発された同じ基本データを含んでいます。したがって、効率的に設計された基本データモデルは、組織内の異なるシステムの目的に合わせた最小限の変更で、手戻りを最小限に抑えることができます[1] 。
データモデルは、関心のある情報領域を表します。データモデルの作成方法は数多くありますが、Len Silverston (1997) [7]によれば、トップダウンとボトムアップの2つのモデリング手法が際立っています。
モデルは、アプリケーションのデータニーズと構造を考慮した手法と、サブジェクトエリアモデルを一貫して参照する手法の2つの手法を組み合わせて作成されることがあります。多くの環境では、論理データモデルと物理データモデルの区別は曖昧です。さらに、一部のCASEツールでは、論理データモデルと物理データモデルが区別されていません。[7]

データモデリングにはいくつかの表記法があります。実際のモデルは、データ内に記述されたエンティティとリレーションシップの観点からデータを描写するため、「エンティティ・リレーションシップ・モデル」と呼ばれることがよくあります。[4]エンティティ・リレーションシップ・モデル(ERM)は、構造化データの抽象的な概念表現です。エンティティ・リレーションシップ・モデリングは、リレーショナル・スキーマ・データベース・モデリング手法であり、ソフトウェアエンジニアリングにおいて、システム(多くの場合、リレーショナル・データベース)とその要件の概念データモデル(またはセマンティック・データモデル)をトップダウン方式で作成するために使用されます。
これらのモデルは、情報システム設計の第一段階である要件分析において、情報ニーズやデータベースに保存される情報の種類を記述するために使用されます。データモデリング技術は、特定の論説領域、すなわち関心領域におけるあらゆるオントロジー(使用される用語とその関係性の概要と分類)を記述するために使用できます。
データモデルの設計には、いくつかの手法が開発されています。これらの方法論はデータモデラーの作業の指針となる一方で、同じ方法論を用いても、異なる人が全く異なる結果を出すことがよくあります。特に注目すべきものは以下のとおりです。

汎用データモデルは、従来のデータモデルを一般化したものです。汎用データモデルは、標準化された一般的な関係型と、そのような関係型によって関連付けられる可能性のあるものの種類を定義します。汎用データモデルの定義は、自然言語の定義に似ています。例えば、汎用データモデルは、「分類関係」(個々のものとその種類(クラス)との間の二項関係)や、「部分全体関係」(関連するものの種類に関係なく、一方が部分の役割を持ち、もう一方が全体の役割を果たす2つのものの間の二項関係)などの関係型を定義します。
拡張可能なクラスのリストが与えられれば、あらゆる個々の事物を分類し、あらゆる個々のオブジェクト間の部分と全体の関係を規定することが可能になります。拡張可能な関係タイプのリストを標準化することで、汎用データモデルは無制限の数の事実の種類を表現できるようになり、自然言語の能力に近づきます。一方、従来のデータモデルは、モデルのインスタンス化(使用)において、モデル内で事前に定義された事実の種類しか表現できないため、ドメインスコープが固定され、限定されています。
DBMSの論理データ構造は、階層型、ネットワーク型、リレーショナル型を問わず、データの概念的定義の要件を完全に満たすことはできません。なぜなら、その範囲は限定的であり、DBMSが採用する実装戦略に偏っているからです。これは、データベースに意図的にセマンティックデータモデルを実装しない限り当てはまります。セマンティックデータモデルを実装することで、パフォーマンスに若干の影響が出る可能性はありますが、一般的には生産性が大幅に向上します。

したがって、データを概念的な観点から定義する必要性から、セマンティックデータモデリング技術が開発されました。これは、他のデータとの相互関係という文脈の中でデータの意味を定義する技術です。図に示されているように、リソース、アイデア、イベントなどといった実世界は、物理的なデータストア内の記述によって象徴的に定義されます。セマンティックデータモデルは、格納されたシンボルが実世界とどのように関連するかを定義する抽象化です。したがって、モデルは実世界の真の表現でなければなりません。[8]
セマンティックデータモデリングの目的は、「談話空間」と呼ばれる現実世界の一部の構造モデルを作成することです。そのために、3つの基本的な構造関係が考慮されます。
セマンティックデータモデルは、次のような多くの目的に使用できます。[8]
セマンティックデータモデルの全体的な目標は、関係概念と人工知能分野で知られるより強力な抽象概念を統合することで、データの意味をより深く捉えることです。その考え方は、現実世界の状況の表現を容易にするために、データモデルの不可欠な要素として高水準のモデリングプリミティブを提供することです。[10]