データモデルとは
データモデルは、アプリケーション設計のための計画として使われる、
ソフトウェア工学における抽象モデルの一つです。これは、関係者間での事業データの文書化、整理、特にデータの格納と利用方法を明確にするために用いられます。
Hoberman(2009)は、「データモデルは、組織内での
コミュニケーションを改善し、より柔軟で安定したアプリケーション環境を構築するための、事業とIT専門家のための羅針盤である」と述べています。データモデルは、データや構造化データの構造を明確に定義し、
データベースモデルや
情報システム設計、データ交換など、多岐にわたる応用を可能にします。
データモデルの主な利点
データモデルは、
コミュニケーションと
精度の向上という二つの主要な利点をもたらします。異なる背景や経験を持つ人々が、共通の理解を持つための媒体となり、あいまいさを排除し、データの解釈を統一することができます。
データモデルは、
プログラミング言語の文脈においては
データ構造と呼ばれることもあります。エンタープライズモデルの文脈では、
機能モデルを補完するものとして機能します。
概要
情報システムにおける主要な機能の一つは、大量の構造化データと非構造化データの管理です。データモデルは、リレーショナル
データベースのようなデータ管理システムにおいて、構造化データを記述するために使われます。一方、
ワードプロセッサ文書、
電子メール、画像、音声、ビデオなどの非構造化データは、通常データモデルでは記述されません。
データモデルの役割
データモデルの主な目的は、データの定義と形式を提供することで、
情報システムの開発を支援することです。一貫したデータモデルを使用することで、データの互換性が向上し、異なるアプリケーション間でのデータ共有が容易になります。
しかし、質の低いデータモデルは、システムの開発、運用、保守コストを増大させ、ビジネスを制約する可能性もあります。特に、ビジネスルールがデータモデルの構造に固定化されている場合、ビジネスの変化に伴いシステムの大幅な変更が必要となることがあります。また、エンティティタイプの誤った識別は、データや機能の重複を引き起こし、データモデルが異なるシステム間で任意に異なる場合、複雑なインタフェースが必要となり、コストが増大します。
これらの問題を解決するためには、データモデルがビジネスニーズと一貫性を保つための標準が必要です。
3つの観点
1975年のANSI規格に基づき、データモデルは以下の3つの観点から捉えられます。
1.
概念スキーマ: モデルのスコープであるドメインの意味を記述します。ビジネスユーザーがコアデータ概念、ルール、定義を伝達するために使われ、多くの場合、「主題領域モデル(SAM)」または「ハイレベルデータモデル(HDM)」と呼ばれます。
2.
論理スキーマ: 特定のデータ操作技術によって表現される意味論を記述します。テーブルやカラム、
オブジェクト指向クラス、XMLタグなどを含みます。
3.
物理スキーマ: データの格納方法を記述します。パーティション、CPU、表空間などが該当します。
ANSIによれば、これらの3つの観点は相対的に独立していることが重要です。格納技術やテーブル/カラム構造は、他のモデルに影響を与えることなく変更できます。ただし、構造は他のモデルとの一貫性を維持する必要があります。多くの
ソフトウェア開発プロジェクトでは、初期段階で概念データモデルの設計を重視し、論理データモデルで詳細化し、物理データモデルに変換します。
データモデルの歴史
情報システムモデリングの初期の業績の一つは、YoungとKent(1958)によるもので、「
情報を規定する正確で抽象的な方法と
データ処理問題の時間的特徴」について論じました。彼らは、異なるハードウェアコンポーネントを使用する代替実装を設計するための抽象仕様と不変の基盤を作成することを目指しました。
1960年代には、経営
情報システム(MIS)の概念の導入とともに、
データモデリングの重要性が増しました。GEの
チャールズ・バックマンによって設計されたIntegrated Data Store(IDS)のような第一世代の
データベースシステムが登場しました。この時期には、
ネットワーク型データモデルや
階層型データモデルが提案されました。
1960年代後半には、
エドガー・F・コッドが
データベース管理のためのリレーショナルモデルを提案しました。
1970年代には、
ピーター・チェンによって
実体関連モデル(ERM)が初めて提案され、概念データモデルの新しいタイプとして登場しました。また、G.M. Nijssenは「自然言語
情報分析手法」(NIAM)を開発し、1980年代にはTerry Halpinと共にオブジェクト役割モデリング(ORM)を開発しました。
1980年代には、
オブジェクト指向パラダイムの開発がデータと手続きの捉え方に大きな変化をもたらしました。従来、データと手続きは別々に格納されていましたが、
オブジェクト指向では、データと共に手続きを組み合わせるようになりました。
データモデルのタイプ
データベースモデルは、
データベースの構造と使用方法を記述する理論または仕様です。いくつかのモデルが提案されており、広く知られているものには以下があります。
フラットモデル: データ要素の二次元配列で構成されます。
階層型データモデル: データがツリー構造に組織化されます。
ネットワーク型データモデル: レコードとセットを使用してデータを組織化します。
リレーショナルモデル: 一階述語論理に基づく
データベースモデルです。
スタースキーマ: データウェアハウススキーマの最もシンプルなスタイルです。
データ構造ダイアグラム(DSD)は、エンティティとそれらの関連、および制約を文書化する図式表記法を提供することで、概念データモデルを記述するために使用される
ダイアグラムです。DSDの基本要素は、エンティティを表すボックスと、関連を表す
矢印です。DSDは、複雑なデータエンティティを文書化するのに役立ちます。
実体関連モデル(ERモデル)は、構造化データを表現するために
ソフトウェア工学で使用される抽象概念スキーマです。ERモデルにはいくつかの表記法が存在します。
地理的データモデル
地理情報システム(GIS)におけるデータモデルは、地理的オブジェクトや地表をデータとして表現するための数学的概念です。例えば、以下のようなモデルがあります。
ベクターデータモデル: 地形を点、線、多角形の集合として表現します。
ラスターデータモデル: 地形を数値を格納するセルマトリックスとして表現します。
不規則三角網(TIN)データモデル: 地形を連続した三角形のセットとして表現します。
汎用データモデル
汎用データモデルは、通常のデータモデルを一般化したものです。標準化された一般的な関係タイプを定義し、モデル間の差異を減少させることを目的としています。
意味的データモデル(セマンティック・データモデル)
意味的データモデルは、他のデータとの相互関係性の中でデータの意味を定義する技法です。格納されるシンボルと実世界の関係を定義する抽象概念であり、概念データモデルと呼ばれることもあります。
データモデルのトピックス
データアーキテクチャ
データアーキテクチャは、目標状態を定義するために使用されるデータの設計であり、目標状態に合致させるために必要な計画です。
データ構造やデータの流れを記述し、
データ処理の基準を提供します。
データモデリングは、データモデルを作成するプロセスであり、
データベースのビジネス要求を定義するための手法です。
データ特性
要求に合致するデータの重要な特性には、関連性、明快さ、一貫性、適時性、正確さ、完全性、アクセス性、コストなどがあります。
データ組織化
データモデルは、
データベース管理システムや他のデータ管理技術を使ってデータを組織化する方法を記述します。リレーショナルテーブルやカラム、
オブジェクト指向クラスと
属性などを記述します。データ分析とモデリングは、データの冗長性を排除し、
データ構造を関連付けることで、データの構造を明確にするための重要な作業です。
データ構造は、データを効率的に使用するためにコンピュータに格納する方法です。数学的かつ論理的な概念の組織であり、適切な
データ構造を選択することで、
アルゴリズムの効率を向上させることができます。データモデルは、ドメイン内のデータの構造を記述し、その構造を規定する役割を担います。
データモデル理論
データモデルという用語は、データがどのように構造化されアクセスされるかの形式的な記述である「データモデル理論」と、特定アプリケーションのためのデータモデルインスタンスを生成する「データモデルインスタンス」の二つの意味を持ちます。
データモデル理論は、構造部分、完全性部分、操作部分という3つの主要なコンポーネントから構成されます。
構造部分: データベースを生成するために使用される
データ構造の集合です。
完全性部分: データ構造に課せられる制約を統治するルールです。
操作部分: データ構造に適用され、データの更新やクエリを行う操作の集合です。
データモデルインスタンスは、データモデル理論を適用して生成され、事業要求を解決します。
パターン
パターンは、多くのデータモデルに現れる共通の
データモデリング構造です。
関連モデル
データフロー
ダイアグラム(DFD)は、
情報システムを通過するデータの流れを示す図式表現です。
データ処理の
可視化に使われ、システムをより小さな部分に分割する方法を示すために設計されます。
情報モデルは、データモデルの一つのタイプではなく、代替モデルとして捉えられます。エンティティの特性、関連、操作を記述する抽象表現であり、制約されたドメインをモデル化するために使用されます。
情報モデルは、データ意味論を規定する概念、関連、制約、ルール、演算子の表現であり、共有性、安定性、
情報の整理された構造を提供します。また、個々の施設やプロセスをモデル化するためにも使われ、ファシリティ
情報モデルやビルディング
情報モデルなどの名称で呼ばれます。
オブジェクトモデル
オブジェクトモデルは、プログラムが特定の領域のオブジェクトやクラスを試行し操作するための集合です。
オブジェクト指向インタフェースとして機能し、例えば、
Document Object Modelや
Microsoft Excelオブジェクトモデルなどがあります。オブジェクトモデルは、クラス、メッセージ、継承、多態性、
情報隠蔽などの概念を使用して定義されます。
オブジェクト役割モデル
オブジェクト役割モデリング(ORM)は、概念モデリングのための手法であり、
情報の分析に使用されるツールです。システム分析のための事実指向の手法であり、
データベースアプリケーションの品質向上を支援します。
統一
モデリング言語(UML)は、
ソフトウェア工学の標準的な
モデリング言語であり、システム設計を
可視化、規定、構築、文書化するための図式言語です。
機能モデル、データモデル、
データベースモデルの混合を提供します。
関連項目
データベース設計
ビジネスプロセスモデリング
Core Architecture Data Model
データベースシステム
データ辞書
ダイアグラム
エンタープライズモデリング
実体関連モデル
機能モデル
IDEF1X
情報モデル
情報システム
JC3IEDM
オントロジー
プロセスモデリング
XMLスキーマ
データフォーマット記述言語(DFDL)
脚注
文献案内
David C. Hay(1996). Data Model Patterns: Conventions of Thought. New York: Dorset House Publishers, Inc.
Matthew West and Julian Fowler(1999). Developing High Quality Data Models. The European Process Industries STEP Technical Liaison Executive(EPISTLE).
Len Silverston(2001). The Data Model Resource Book Volume 1/2. John Wiley & Sons.
RFC 3444 - On the Difference between Information Models and Data Models
Len Silverston & Paul Agnew(2008). The Data Model Resource Book: Universal Patterns for data Modeling Volume 3. John Wiley & Sons.
Steve Hoberman, Donna Burbank, & Chris Bradley(2009). Data Modeling for the Business. Technics Publications, LLC
* Andy Graham(2010), The Enterprise Data Model: a framework for enterprise data architecture