データベースモデル(DB)は、データの格納やアクセス方法を決定する関係や制約を含めたデータベースの論理構造を示します。設計者が採用する、より上位のデータモデルのルールや概念に基づき、個々のデータベースモデルが設計されます。データモデルの大半は、付属するデータベース図により表現することができます。
この記事を読むのに必要な時間 : 4 分
Lucidchartなら、データベースや専門的な図 を簡単に設計することができます。
データベース(DB)の種類
データモデルにはさまざまな種類があります。最も一般的なモデルには以下のようなものがあります。
- 階層型データベースモデル
- 関係モデル
- ネットワークモデル
- オブジェクト指向データベースのモデル
- 実体関連モデル
- ドキュメント型モデル
- エンティティ-アトリビュート-バリューモデル
- スタースキーマ
- オブジェクトと関係を組み合わせたオブジェクト関係モデル
データベースを記述するモデルの選択は、いくつかの要因に基づき行います。最大の要因は、使用しているデータベース管理システムが特定のモデルに対応しているかどうかです。複数のモデルに対応するものもありますが、データベース管理システムの大半は特定のデータモデルを念頭に設計されており、この場合はその特定のモデルを使用する必要があります。
これに加えて、データベース設計プロセスの各段階に応じて、それぞれ別のモデルを使用する必要があります。ユーザーがデータを知覚する方法でデータ間の関連を図式化するには、高次的な概念データモデルが最適です。他方で、履歴に基づく論理モデルでは、サーバーにデータを格納する方法をより正確に記述することができます。
また、データモデルを選択する上では、速度、コスト削減や利便性など、データベースに求める優先順位と特定のモデルの強みとをすり合わせることも重要です。
最も一般的なデータベースモデルのいくつかを詳しく見てみましょう。
関係モデル
最も一般的なモデル、関係モデルでは、データを行と列で構成される表 (関連) に並べ替えます。各列には、価格、郵便番号、生年月日など、対象の実体の属性が示されます。ある関連内の属性をまとめてドメインと呼びます。特定の属性や属性の組み合わせを主キーとして選択します。主キーは、外部キーと呼ばれる他の表の参照先となります。
各行 (組) には、特定の従業員など、対象の実体の特定のインスタンスに関するデータが含まれます。
このモデルは、一対一、一対多、多対多の関連など、これらの表の間の関連の型も表します。以下に例を示します。
データベース内では、表を正規化したり、データベースの柔軟性、適応性とスケーラビリティを担保する正規化ルールを遵守させるようにすることができます。表を正規化すると、データの各部分が不可分となり、利用可能な最小単位に分解されます。
関連データベースは一般に構造化照会言語 (SQL) で記述されます。このモデルは、エドガー・F・コッドが1970年に発表したものです。
階層モデル
階層モデルでは、各履歴が1つの親 (根) をもつ木のような構造にデータを整理します。兄弟履歴は特定の順序でソートされます。この順序は、データベース格納の物理的順序として用いられます。実世界の多数の関連を記述するのに適したモデルです。
このモデルは、IBM の情報管理システムで1960年代から1970年代に主に使われていましたが、運用面で非効率的なため、現在ではほとんど見かけません。
ネットワークモデル
ネットワークモデルは、親となる複数の履歴を伴うリンクされた履歴間の多対多の関連を示すことにより、階層型モデルの形をとります。数学の集合論に基づき、関連する履歴の集合で構成されるモデルです。集合はそれぞれ、1つのオーナーまたは親履歴と1つ以上のメンバーまたは子履歴から構成されます。ある履歴が複数の集合のメン バーや子となることもでき、複雑な関連を表現することが可能なモデルです。
データシステム言語協議会 (CODASYL) により正式に定義されて以降、1970年代に最も人気を博したモデルです。
オブジェクト指向データベースのモデル
このモデルでは、データベースを、関連する機能やメソッドをもつオブジェクトまたは再利用可能なソフトウェア要素の集合として定義します。オブジェクト指向データベースには以下の数種類があります。
マルチメディアデータベースには、関係データベースには格納できない画像などのメディアが含まれます。
ハイパーテキストデータベースでは、任意のオブジェクトを他の任意のオブジェクトにリンクすることができます。まったく性質の異なる多量のデータを整理する上で役立ちますが、数値解析にはあまり適していません。
表を組み込んだオブジェクト指向データベースモデルは、ポスト関係データベースモデルとして最も知名度の高いものですが、組み込む対象は表に限定されません。こうしたモデルはハイブリッドデータベースモデルとも呼ばれます。
Lucidchart を使えば、素早く、簡単に図を作成することができます。今すぐ無料のトライアルを開始して、作図と共同編集を始めましょう。
データベース図を設計するオブジェクト関係モデル
ハイブリッドデータベースモデルは、関係モデルの簡潔さにオブジェクト指向データベースモデルの高度な機能性を組み合わせたものです。設計者が使い慣れた表構造にオブジェクトを組み込める点が特長です。
言語とコールインターフェイスには SQL3、ベンダーの言語、ODBC、JDBC、加えて関係モデルで用いられる言語とインターフェイスの延長線上にある独自のコールインターフェイスなどがあります。
実体関連モデル
このモデルでは、実世界の実体間の関連を示しています。その点ではネットワークモデルによく似ていますが、ネットワークモデルはデータベースの物理構造に直接紐付けられているという点で異なります。オブジェクト関係モデルは、データベースの概念的な設計によく用いられます。
この図では、格納されたデータポイントに関連する人、場所や事物が実体として参照されます。この実体はそれぞれ、独自のドメインを構成する特定の属性をもちます。濃度、つまり実体間の関連もまた図示されています。
人気のある ER 図の一種にスタースキーマがあります。中央のファクト表が多次元の表に接続する図です。
その他のデータベースモデル
この他にもさまざまなデータベースモデルがあり、現在でも使われています。
転置ファイルモデル
転置ファイル構造で構 築されたデータベースで、高速の全文検索を支援するために設計されたものです。このモデルでは、データコンテンツが、値が関連ファイルの場所を指す lookup 表内の一連のキーとしてインデックス化されます。こうした構造により、ビッグデータや分析におけるほぼ瞬時のレポーティングが可能となります。
1970年から Software AG の ADABAS データベース管理システムで使われてきたモデルで、現在でもサポートされています。
フラットモデル
ごく初期に登場した最も単純なデータモデルがフラットモデルで、データを行と列で構成される1つの表に列挙するものです。データのアクセスや操作を行う場合には、コンピューターがフラットファイル全体をメモリに読み込む必要があるため、データセットがごく小さい場合を除いては非効率的なモデルです。
多次元モデル
関係モデルの変種で、分析処理の改善を促進するために設計されたものです。関係モデルがオンライン取引処理 (OLTP) に最適化されているのに対し、このモデルは、オンライン分析処理 (OLAP) のために設計されています。
多次元データベースの各セルには、データベースが追跡するディメンションに関するデータが含まれ、2次元の表ではなく立方体の集まりのように見えます。
半構造モデル
このモデルでは、データベーススキーマに通常含まれる構造化データがデータ自体に埋め込まれています。データとスキーマの境界が不明瞭なモデルで、データベースとして扱うもののスキーマで制約を指定できない特定のウェブベースのデータソースなどのシステムの記述や、同一のスキーマに準拠しない データベース間の相互作用の記述に役立ちます。
コンテキストモデル
このモデルでは、必要に応じて他のデータベースモデルから要素を組み入れることができます。オブジェクト指向モデル、半構造モデル、ネットワークモデルの要素を集めたものです。
連想モデル
このモデルは、記述内容が実体であるか、関連であるかに基づき、すべてのデータポイントを分割します。このモデルにおいては、実体とは独立して存在するあらゆるものを指し、関連とは他の事物との関連においてのみ存在するものを指します。
連想モデルでは、以下の2つのセットにデータを構造化します。
- それぞれ一意の識別子、名前と型をもつ項目のセット
- それぞれ一意の識別子をもつリンクのセットとソース、動詞、ターゲットをもつ一意の識別子。格納されたファクトはソースに関連し、一意の識別子3つはリンクまたは項目を参照先とすることができます。
この他にも、あまり知られていないデータベースモデルが存在します。
- 格納されたデータと実世界との関連を示す情報を含むセマンティックモデル
- データを指定し、XML 形式での格納もできる XML データベース
- 名前付きグラフ
- トリプルストア
NoSQL データベースモデル
オブジェクトデータベースモデルの他にも、関係モデルとは対照的な以下の非 SQL モデルがい くつか登場してきました。
グラフデータベースモデル - ネットワークモデルよりもさらに柔軟で、あらゆるノードの相互接続が可能です。
複数値モデル - 属性が単一のデータポイントでなく、データリストを含めることができる点で関係モデルと異なります。
ドキュメントモデル - 不可分なデータではなく、文書や半構造化データの格納や管理のために設計されたモデルです。
ウェブ上のデータベース
ウェブサイトの大半は、データを整理し、ユーザーに提供する上で何らかのデータベースを利用しています。こうしたサイトで検索機能が使用されるたびに、入力された検索用語がデータベースサーバーが処理するクエリへと変換されます。通常は、ミドルウェアがウェブサーバーとデータベースを接続しています。
データベースは広く普及しており、オンラインショッピングから政治活動における投票者のマイクロターゲティングまで、ありとあらゆる分野で利用されています。空輸から自動車製造まで、データベース設計については業界ごとに独自の規範が設けられてきました。