データモデルのまとめ情報

データモデル』の解説

データ・モデルは、班・要員間の意思疎通のための事業データを文書化し、組織化し、そして特にどのようにデータを格納し利用するかの、応用ソフト設計のための計画として使うソフトウエア工学の一つの抽象モデルである。

Hoberman (2009)によれば、「データ・モデルは、組織内での意思疎通を改善し、それによってより柔軟で安定したアプリケーション環境に導く、真の情報の部分集合を正確に説明するシンボルとテキストの集合を使う、事業とIT専門家の両方のための、道筋を見つける道具である。」

データ・モデルは、データまたは構造化データの構造を明示的に決める。データモデルの代表的な応用は、データベース・モデル情報システム の設計、及びデータの交換を可能にすることを含む。通常データ・モデルは、データ・モデリング言語によって規定する。

コミュニケーション精度は、データ・モデルがデータを使い交換する応用へもたらす2つの主要な利益である。データ・モデルは、異なる背景と異なる経験水準からなる事業要員がお互い意思疎通する媒体である。

精度は、データ・モデルにおける用語と規則をただ1つの方法で解釈することができ、そして曖昧さが無いことを仮定する。]]

データ・モデルの主な目的は、データの定義とフォーマットを提供することによって、情報システムの開発を支援することである。West とFowler (1999)によれば、「もしこれがシステムを通して一貫して行われたら、そこでデータの互換性が達成されうる。もし同じデータ構造がデータの格納やアクセスに使われるなら、そこで異なるアプリケーションがデータを共有できる。これの結果は上で示される。しかしながら、システムとインタフェースは、しばしば、構築し、運用し、そして維持するため、それらがあるべきより多くのコストを費やす。それらは、事業を支援するよりむしろ制約するかもしれない。1つの大きな原因は、システムとインタフェースに実装されるデータ・モデルの品質が貧弱だったことである。」。

  • 概念スキーマ : モデルのスコープである、1つのドメインの意味を記述する。たとえば、それは1つの組織あるいは産業の関心領域のモデルかもしれない。これは、そのドメインにおける重要なものの種類を表現するエンティティ・クラスと、一対のエンティティ・クラス間の関連について関連からなる。概念スキーマは、そのモデルを使って表されうる、事実と命題の種類を特定する。そのセンスで、それは、そのモデルのスコープによって限定される1つのスコープの、1つの人工的'言語'で許される表現を定義する。概念スキーマの利用は、事業ユーザーと共に強力なコミュニケーション・ツールとなるよう進化する。しばしば、「主題領域モデル (SAM) 」または「ハイレベル・データ・モデル (HDM)」と呼ばれるこのモデルは、事業ユーザーが全体的アプリケーション開発または事業体イニシアティブの一部として、コア・データ概念、ルール、及び定義をコミュニケートするのに使われる。オブジェクトのいくつかは、少なくかつ主要な概念に焦点を当てるべきである。大変大きな組織や複雑なプロジェクトのため、モデルは2ページ以上にまたがるかもしれないが、1ページにこのモデルを限定しようと試みる必要がある。
  • 論理スキーマ : 特定のデータ操作技術によって表現されるような、意味論を記述する。これは、他のものの間の、テーブル及びカラム、オブジェクト指向クラス、及びXMLタグの解説からなる。
  • 物理スキーマ : データが格納される物理的手段を記述する。これは、パーティション、CPU、表空間、あるいはそのようなことに係わる。

ANSIによれば、このアプローチの重要性は、3つの観点がそれぞれ相対的に独立であることを可能にすることである。格納技術は、論理的あるいは概念モデルのいずれにも影響することなく変更できる。テーブル/カラム構造は、概念モデルに(必要なら)影響することなく変更できる。いずれの場合も、もちろん、その構造は他のモデルとの一貫性を残さなければならない。テーブル/カラム構造は、エンティティ・クラスや属性の直接変換からは異なるかもしれないが、しかし、それは究極的に概念エンティティ・クラス構造の目的の外で扱わなくてはならない。多くのソフトウエア開発プロジェクトの初期段階は、の設計を強調する。このような設計は、で詳細化される。その後段で、このモデルは、に変換されるかもしれない。しかしながら、概念モデルを直接実装することも可能である。

歴史

情報システムのモデリングにおける最も初期の業績の1つは、「情報を規定する正確で抽象的な方法とデータ処理問題の時間的特徴」を論じた、Young と Kent (1958) によって為された。彼らは、「ハードウエアのあらゆる部分を取り巻く問題のためのに可能となるべき1つの表記法」を作ることを望んだ。彼らの作業は最初、異なるハードウエア・コンポーネントを使う異なる代替的実装を設計するための、1つの抽象仕様と不変の基盤を作る努力であった。情報システム・モデリングにおける次のステップは、「データ処理のシステム・レベルで、マシン独立の問題定義言語の正しい構造」を開発すると言う、本質的にYoung と Kentと同じことを目指した、1959年に編成されたIT業界コンソーシアムである、CODASYLによって行われた。これが1つの特定な情報システムの情報代数学 (Information_algebra) の開発に導いた 1960年代の終わりに向けて、エドガー・F・コッドは、彼のデータ編成の理論を練り、一階述語論理に基づいたデータベース管理のためのリレーショナル・モデルを提案した。

1970年代に実体関連モデルが、1976年にピーター・チェンによって初めて提案され、概念データ・モデルの新しいタイプとして出現した。実体関連モデルは、データベースに格納される情報ニーズや情報のタイプを記述するための、 要求分析中の情報システム設計の最初のステージで使われた。この技術は、あらゆる概念体系 、すなわち、一定の関心の領域のための、概念の全貌と分類とそれらの関連、を記述できる。

1970年代、G.M. Nijssen は、「自然言語情報分析手法」(NIAM) を開発し、そして1980年代にそれを発展させたオブジェクト役割モデリング (ORM) を Terry Halpin と一緒に開発した。

Jan L. Harrington (2000)によれば、更に1980年代に、「オブジェクト指向パラダイムの開発が、我々がデータとデータに作用する手続きを見る方法に基本的な変化をもたらした。伝統的に、データと手続きは:データベースにデータとそれらの関連、アプリケーション・プログラムに手続きをと、別々に格納されていた。オブジェクト指向では、しかしながら、そのデータと共にエンティティの手続きを組み合わせた。」

データベース・モデル

データベース・モデル (database model)は、どのようにデータベースが構造化され、使われるかを記述する理論または仕様である。いくつかのそのようなモデルは提案されてきた。広く知られたモデルは以下を含む:

Image:FigFileConvert000a.svg|フラット・モデル

Image:Hierarchisches Datenbankmodell.svg|階層型データモデル

Image:Network DB model.svg|ネットワーク型データモデル

Image:Relational model concepts.png|リレーショナル・モデル

これは、厳密にはデータ・モデルとして認められないかもしれない。フラット(またはテーブル)モデルは、与えられたカラムの全要素が、同じような値であり、そして1つの行の全要素が互いに関連していると想定される、データ要素の単一の2次元配列で構成される。
  • 階層型データモデル: このモデルにおけるデータは、それぞれ同じレベルのリストに特定の順序でレコートを保持するネスト化と並び替えフィールドを記述するそれぞれのレコードへの単純な上昇リンクを暗示する、ツリー構造に組織化される。
  • ネットワーク型データモデル:このモデルは、レコードとセットと呼ばれる、2つの基本的概念を使うデータを組織化する。レコードはフィールドを含み、セットはレコード間の、1は所有者、多はメンバーである、1対多の関連を定義する。
  • リレーショナル・モデル: は、一階述語論理に基づくデータベース・モデルである。その中核アイデアは、とりうる値と値の組み合わせへの制約を記述する、有限の述語変数を超える述語の集合としてデータベースを記述することである。

Image:Company codm.gif|概念指向モデル (Concept-oriented model)

Image:Star-schema.png|スタースキーマ

  • 概念指向モデル (Concept-oriented model) : リレーショナル・データベース・モデルと類似するが、オブジェクト、クラス、及び継承が、データベース・スキーマと問い合わせ言語で直接サポートされる。
  • スタースキーマは、データ・ウエアハウス・スキーマの最もシンプルなスタイルである。スタースキーマは、いくつかの「事実テーブル」(おそらく1つのみであり、その名前を正当化する)がどんな数の「次元テーブル」を参照する。 スタースキーマは、重要な雪形スキーマの特別なケースと考えられる。

データ構造ダイアグラム

thumb

データ構造ダイアグラム (DSD) は、エンティティとそれらの関連、及びそれらを拘束する制約 (constraints) を文書化する図式表記法を提供するよって、概念データモデルを記述するため使われる1つのダイアグラムでありデータ・モデルである。DSDの基本的図形要素は、エンティティを表すボックスと、関連を表すである。データ構造ダイアグラムは、複雑なデータ・エンティティを文書化するため最も有用である。

データ構造ダイアグラムは、実体関連モデルの1つの拡張である。DSDで、関連が、エンティティ群を束ねる制約を規定する属性から構成されるボックスとして描かれる一方で、属性は、エンティティの、外側でなく、内側で規定される。実体関連モデルは、堅牢である一方で、関連同士の制約を規定する方法を提供せず、そして、いくつかの属性を持つエンティティを表現するとき視覚的に扱い難くなる。DSDは、DSDが1つのエンティティ内での要素の関連に焦点を当て、そしてユーザーに各エンティティ間のリンクと関連を完全に見せることができるのに対して、実体関連モデルでは異なるエンティティ間の関連に焦点を当てる点で、異なる。

データ構造ダイアグラムを表現するため、多重度 (cardinality) を定義する方法に顕著な違いを伴う、いくつかのスタイルがある。選択は、鏃 、逆向き鏃 (鳥足) 、あるいは多重度の数値表現の間に存在する。

thumb

実体関連モデル (ERM)

実体関連モデルは、構造化されたデータを表現するためソフトウエア工学で使われる、1つの抽象概念スキーマ(または、意味的データモデル (semantic data model) )である。実体関連モデルのため使われるいくつもの表記法が存在する。

地理的データ・モデル

地理情報システムにおけるデータモデル (data model) は、データとして地理的オブジェクトまたは地表を表現するための数学的概念である。たとえば、

  • ベクターデータ・モデルは、点、線、及び多角形の集合として地形を表現する;
  • ラスターデータ・モデルは、数値を格納するセル・マトリックスとして地形を表現する;
  • そして不規則三角網 (TIN) データ・モデルは、連続、非重複の三角形のセットとして地形を表現する。

Image:Groups relate to the process of making a map.jpg|地図作成プロセスに関係するグループ

Image:NGMDB data model application.jpg|NGMDB データ・モデル・アプリケーション。

図は、今日のデータ・モデルが開発され、そして使われる方法を描いている。概念データモデル (conceptual data model) は、開発されているアプリケーションのためのデータ要求に基づき、おそらくアクティビティ・モデルの文脈で開発される。そのデータモデルは通常、エンティティ・タイプ、属性、関連、完全性ルール、及びそれらのオブジェクトの定義から成る。これは、そこでインタフェースまたはデータベース設計のためのスタート・ポイントとして使われる

  1. データ・モデル理論、すなわち、どのようにデータが構造化されそしてアクセスされるかの形式的な記述。
  2. データ・モデルインスタンス、すなわち、ある特定なアプリケーションのための特定なデータ・モデルインスタンスを生成するためにデータ・モデル理論を適用すること。

データ・モデル理論は、3つの主要なコンポーネントを持つ:。

データ・フロー・ダイアグラム (DFD)

thumb

データ・フロー・ダイアグラムは、プログラムのコントロールの流れを示すフローチャートとは違い、情報システムを通してのデータの「流れ」を示す、図式表現である。データ・フロー・ダイアグラムはまた、データ処理 (構造化設計) の可視化 (visualization) のため使われうる。データ・フロー・ダイアグラムは、Martin と Estrin の コンピュータの「データ・フロー・グラフ」に基づいた構造化設計のオリジナル開発者である、Larry Constantine (Larry Constantine) によって考案された。

それは、システムと外側のエンティティ間の相互作用を最初に示す、文脈レベル・データ・フロー・ダイアグラム (context-level Data flow diagram) を描く共通の実践である。DFDは、どのようにシステムが、分割された部分間のデータの流れに着目してより小さな部分に分割するかを示すため設計される。この文脈レベル・データ・フロー・ダイアグラムは、そこでモデル化されているシステムをより詳細に示すため「激増」される。

情報モデル

) 情報モデルの例。]]

情報モデルは、データ・モデルの一つのタイプではないが、一つの代替モデルより多いかまたは少ない。ソフトウエア工学の分野でのデータ・モデルと情報モデルの両方は、特性、関連、及びそれらで実行され得る操作を含め、エンティティ・タイプの抽象であり、公式表現である。モデル内のエンティティ・タイプは、ネットワーク内の機器のような、実世界のオブジェクトの種類かもしれないし、またそれらは、勘定システム内で使われるエンティティのような、抽象化されたそれら自身かもしれない。典型的に、それらは、エンティティ・タイプ、特性、関連、及び操作の閉じたセットによって記述される、制約されたドメインをモデル化するのに使われる。

Lee (1999)によれば。一般的用語情報モデルはさらに、施設、ビルディング、プロセス・プラントなどのような、個々のもののモデルのため使われる。このような場合、概念は、ファシリティ情報モデル (Facility Information Model) 、ビルディング情報モデル (Building Information Model) 、プラント情報モデルなどと特定される。そのような情報モデルは、施設についてのデータと文書を伴う施設のモデルの統合である。

情報モデルは、どのようにその記述がソフトウエアにおいて実際の実装にマップされたかの記述を制約することなく、問題ドメイン記述の形式主義を提供する。情報モデリングのマッピングには多くもものが存在する。そのようなマッピングは、それらが(UMLを使った)オブジェクトモデル (object model) 、実体関連モデル、または XMLのスキーマ (XML schema) であるかどうかにかかわらず、データ・モデルと呼ばれる。

) 標準、Document Object Model]]

オブジェクト・モデル

コンピュータ科学におけるオブジェクト・モデル (object model) は、プログラムがその世界のある特定な部分を試しそして操作できるオブジェクトあるいはクラスの集合である。言い換えるなら、ある種のサービスまたはシステムへのオブジェクト指向インタフェースである。そのようなインタフェースは、表現されたサービスまたはシステムのオブジェクト・モデルであると言える。たとえば、Document Object Modelは、ページを調べて動的変化をプログラムするスクリプトを使う、ウェブブラウザにおけるページ表現の集合である。Microsoft Excelを他のプログラムからコントロールするための、Microsoft Excelオブジェクト・モデルが存在するし、またASCOM (AStronomy Common Object Model)Telescope Driver は、天体望遠鏡をコントロールするための1つのオブジェクト・モデルである。

コンピューティングにおける用語オブジェクト・モデルは、プログラミング言語技術、表記法、または 方法論を使うある特定なコンピュータにおけるオブジェクトの一般的特性とは別の2番目の意味をもつ。例は: Javaオブジェクト・モデルComponent Object Model、あるいは、 オブジェクトモデル化技法 (OMT) 。このようなオブジェクト・モデルは通常、 クラスメッセージ継承多態性情報隠蔽のような概念を使って定義される。プログラミング言語の形式意味論 のサブセットとして形式化されたオブジェクト・モデルに関する膨大な文献が存在する。

オブジェクト役割モデル

オブジェクト役割モデリング (ORM) は、概念的モデリング (conceptual modeling) のための1つの手法であり、情報やルールの分析のための1つのツールとして利用できる。

オブジェクト役割モデリングは、概念レベルでのシステム分析のための1つの事実指向の手法である。データベース・アプリケーションの品質は、その設計に重大に依存する。正しさ、明確さ、適合性、及び生産性を確かにするのを助けるため、情報システムは、人々が容易に理解できる概念と言語を使って概念レベルで最初に規定されることがベストである。

概念的設計は、データ、プロセス、及び振る舞い的観点を含むかもしれないし、その設計を実装のため使われた実際のDBMSは、(リレーショナル、階層型、ネットワーク型、オブジェクト指向等の)多くの論理的データ・モデルの1つに基づいたかもしれない。

統一モデリング言語モデル

統一モデリング言語 (UML) は、ソフトウエア工学分野での、1つの標準汎用モデリング言語である。それは、ソフトウエア集約システムの成果物 (ソフトウエア開発) (artifacts) を、可視化し、規定し、構築し、そして文書化するための1つの図式言語 (graphical language) である。統一モデリング言語は、以下を含む、システムの青写真を描く標準方法を提供する。

UML は、機能モデル、データ・モデル、及びデータベースモデル (database model) の1つのミックスを提供する。

文献案内

  • 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

Category:データモデリング

Category:データベース

データモデル』に 関連する人気アイテム

生産管理・原価管理システムのためのデータモデリング

読めば読むほどにうなずける

(参考になった人 13/15 人)

私は10年から15年も前に作られたIBMのAS400で稼動する生産管理を保守しております。この本を読んで自分の目の前に在るシステムと比べると、うなずける部分がこの本にはいっぱいありました。本が提唱するDB設計になっている部分は、なんら問題なく今も動いています。(あまりにもDB設計が似ているのでビックリです)未来在庫の予測などは勉強になりました。トリガー機能やジャーナル機能の存在をこの本で知りました(無知で恥ずかしいです)受注と出荷の関係や発注と仕入れの関係も良く理解できました。DBの正規化のプロセスが存在するなんて知りませんでした。今までの経験でなんとなくDBを追加していましたが、正規化を知っていればもっとマシなDBが追加できたのにと悔やみます。このような有益な本を出版して頂いてありがとうございました。

教科書として精読すべし

(参考になった人 20/21 人)

システム設計屋からみて、初めて実践に役立つ本に 出会った思いです。現場を知ってる方が書かれた生産 管理手法の説明です。「本物」の迫力があります。 部品表の展開やバケット管理などDB構造を前提に しないと説明出来ないのですが、今までの本はそこが おろそかにされていたため学術書の域を越えませんで した。この本はシステム屋にとっての実用書です。 初級~中級のシステム屋さんは是非これで勉強して 欲しいと思います。

業務系システム設計に役に立ちます

(参考になった人 5/5 人)

業務系、特に生産管理のシステム設計についての本が少ない中で実務で役に立ちます。「渡辺式ER図」は手書きでは書きやすいのですが、仕様書をEXCELやVISIOで書くときに困ります。著者はモデルリング用のフリーツールも作っているので一度、参考までに見てみたら?あくまでモデリング(概略設計)用で、DBの詳細設計には別のツールが必要ですが。

ひと目でわかるMicrosoft Visual C# 2010 アプリケーション開発入門

Windows Application 開発の仕事でこれまで C++ を使ってきており、急きょ C# を使うことになったため購入しました。 C# 自体の文法解説には良書がいくつもありますが、VisualStudio (.NET Framework) を活用したコーディングの"感覚"を掴みたくてこれを選びました。本書を通して、1つの小さいけれども実用的なソフトウェアをコーディングするようになっており、開発の流れを感じられます。●以下はいいと思ったところです。 - 解説はかなり丁寧なので、書かれている通りに作業していればまず躓くことはないかと思われます。

(例えば Professional と Express で手順が異なるところはほぼすべて注釈があります。) - サンプルで作成するソフトウェアは非常にシンプルですが、割としっかり設計してから始めており、エラー処理もやります。(製品レベルかというとそこまでではありませんが) - サンプルコードも DL してきてそのままビルドできるものなので、うっかりミスでビルドが通らなかったときの参考になります。 - サンプルの開発を通して、SQL Server 2008 と LINQ の基本も触れます。●以下はいまいちと思ったところです。 - 説明の順序として、「これからやることの概要」「コード」「コードの解説」という流れなのですが、 概要の時点ではこれから実装したいことの目的レベルの理屈が並べられているだけで、設計的な理由が述べられていません。 たとえばクラスの property に関する error ハンドリングを実装する際、抽象クラスに property に依らない実装を行い 派生させた実装クラスで具体的な型ごとの実装を行うのですが、クラス図などの解説がないままコードが出てくるので その章の実装と解説をすべて理解した段階でやりたかったことがわかる、という具合です。 このような「まず手を動かして、理屈は後から」という説明が苦手な方にとっては多少フラストレーションを感じるかもしれません。●その他雑感 - C# の文法にはほぼ触れられていませんが、Visual C++ での開発を経験したことがある方であれば、なんとなくわかると思います。 (逆に言うとほかにプログラミングをした経験がない方にとっては、「動くものはできたけど理解不能」な状態になってしまうと思われます。) - あくまでも「Visual C# 2010 を使った、.NET Framework の便利機能を活用した典型的な開発手順」を体験できる本であり、それ以上の高度な技術的背景や知識を学べるものではありません。 読後に MSDN やより高度な実装 TIPS 集などを読んでステップアップしていくための 1st Step に良い本かと思います。 - コードで使われる C# のバージョンは 4.0 の仕様まで含んだものになっています。(4.0 の新機能にフォーカスしているわけではありません。)

コンセプトが素晴らしいです

(参考になった人 36/39 人)

本書はVisual C# 2010を使用したアプリケーション開発の入門書です。 本のタイトルに「わかる〜」とか「できる〜」と書いてあるようなものは、 何となく敬遠してきたのですが、本屋さんでパラパラと見ていたら、良さそうな 感じがしたので購入してみました。本書の一番の特徴は「一冊を通して1つのアプリケーションを完成させる」 というスタイルにあります。これが素晴らしいと思いました。つまり、読み終わる頃には「タスク管理ソフト」というアプリケーションが 完成しています。ソフトを作ったという充実感が味わえます。

最後の章では、完成したアプリをWPF形式のアプリにリメイクします。 WPFアプリの基本的な操作も理解できます。1日6時間くらいで、約5〜6日で読み終わる分量です。 もちろん、ソースコードはすべて自分で入力しました。なお、C#言語の文法についての詳しい解説はほとんどありませんので、 C#についての基本を勉強した後で、じゃあ、Visual C#を使って実際にWindowsの アプリを作るにはどうすればいいの? という段階で読むのが最適だと思います。私は普段、Visual C++を使用して開発を行っているのですが、.NET Frameworkを 利用した開発環境の方が格段に洗練されていると感じました。ところで、本書では実際のソースコードをネットからダウンロードできるように なっていますが、これに頼ってはダメですよ。 ソースコードはすべて自分の手で入力しなければ、身に付きません。

「猫でもわかるC#プログラミング」では、文法から学んだのに対して、本書はコーディングを実際にしながらアプリケーション開発の手順の初歩を学んでいく本です。C#はオブジェクト指向プログラミングのための言語です。この本は、C#の簡易操作マニュアルとしても使用できます。(もちろん、足りない部分も多々ありますが・・・。でも、それは、オライリー・ジャパンの本その他で補うしかありません。)C#では、全部を自分ですべて打ち込む必要はありません。コーディングをしていると、コードが勝手に出てきます。出来た空白に必要とされるコードを打ち込めばいいのです。さあ、ぜひC#の世界を冒険してください。

データモデル』by Google Search

This page is provided by Matome Project.
Contact information.