
アンカー モデリングは、構造と内容の両方が時間の経過とともに変化する情報に適したアジャイル データベース モデリング手法です。エンティティ リレーションシップ モデリングに似た概念モデリングに使用されるグラフィカル表記法を提供し、時間的データを操作するための拡張機能を備えています。モデリング手法には、アンカー、属性、タイ、ノットの 4 つのモデリング構成要素が含まれ、それぞれがモデル化対象のドメインのさまざまな側面を捉えます。[1]結果として得られるモデルは、形式化されたルールを使用して物理的なデータベース設計に変換できます。このような変換が行われると、リレーショナル データベースのテーブルはほとんどが第 6 正規形になります。
スタースキーマ(ディメンションモデリング)や従来のリレーショナルモデル(3NF)とは異なり、データボールトとアンカーモデリングは、ソースシステムの変更や追加時に発生する変更をキャプチャするのに適していますが、経験豊富なデータアーキテクトを必要とする高度な手法と見なされています。[2]データボールトとアンカーモデルはどちらもエンティティベースのモデルですが、[3]アンカーモデルはより標準化されたアプローチを採用しています。[引用が必要]
哲学
アンカー モデリングは、高度な正規化の利点を活用しながら、人間の可読性に関する高正規形の欠点を回避するために作成されました。モデルを非破壊的に進化させ、null 値を避け、情報を冗長化から解放できるなどの利点が得られます。余分な結合によるパフォーマンスの問題は、結合除去またはテーブル除去と呼ばれる最新のデータベース エンジンの機能のおかげで、ほぼ回避されます。情報コンテンツの変更を処理するために、アンカー モデリングは、結果として得られるリレーショナル データベーススキーマ で、一時データベースの側面をエミュレートします。
歴史
アンカー モデリングを使用した最も初期の導入は、2004 年にスウェーデンで行われ、この技術を使用して保険会社の データ ウェアハウスが構築されました。
2007年、この手法はいくつかのデータ ウェアハウスと 1 つのオンライン トランザクション処理(OLTP) システムで使用されており、アムステルダムで開催された 2007 Transforming Data with Intelligence (TDWI) カンファレンスで Lars Rönnbäck 氏によって国際的に発表されました。[4]これにより、この手法に対する関心が高まり、より正式な説明が必要になりました。それ以来、アンカー モデリングに関する研究は、作成者の Olle Regardt 氏と Lars Rönnbäck 氏、およびストックホルム大学コンピューターおよびシステム科学部のチームとの共同作業で行われています。
アンカーモデリングを形式化した最初の論文は、2008年に第28回国際概念モデリング会議で発表され、最優秀論文賞を受賞した。[5]
アンカーモデリングに関する資料は、クリエイティブ・コモンズ・ライセンスの下で無料で利用できる商用ウェブサイトで提供されています。また、無料で使用できるオープンソースのオンラインモデリングツールも提供されています。[6]
基本的な概念
アンカー モデリングには、アンカー、属性、タイ、ノットという 4 つの基本的なモデリング概念があります。アンカーはエンティティとイベントをモデル化するために使用され、属性はアンカーのプロパティをモデル化するために使用され、タイはアンカー間の関係をモデル化するために使用され、ノットは状態などの共有プロパティをモデル化するために使用されます。モデル化する情報の変更を保持する必要がある場合は、属性とタイを履歴化できます。
すべての概念の異なるグラフィカル シンボルを示すサンプル モデルを以下に示します。シンボルは、エンティティ リレーションシップ モデリングで使用されるシンボルに似ていますが、いくつかの拡張機能があります。属性またはタイの二重アウトラインは、変更履歴が保持されていることを示します。ノット シンボル (角が丸いアウトライン付きの四角形) も使用できますが、ノットは履歴化できません。アンカー シンボルは実線の四角形です。
時間的側面
アンカー モデリングは、構造変更とコンテンツ変更という 2 種類の情報進化を処理します。情報構造の変更は、拡張機能によって表されます。高度な正規化により、変更をキャプチャするために必要なモデリング概念を非破壊的に追加することができ、以前のすべてのスキーマは常に現在のスキーマのサブセットとして残ります。既存のスキーマは変更されないため、ダウンタイムを発生させることなく、非常に反復的な方法でデータベースを進化させることができるという利点があります。
情報の内容の変更は、リレーショナル データベースで時系列データベースの同様の機能をエミュレートすることによって行われます。アンカー モデリングでは、情報を時点または時間間隔 (オープンとクローズの両方) に結び付けることができます。イベントが発生する時点は、属性 (人の誕生日や購入時間など) を使用してモデル化されます。値が有効な時間間隔は、属性とつながり (人の髪の色の変化や結婚期間など) の履歴化によって取得されます。リレーショナル データベースでは、履歴化された属性またはつながりに対応するテーブルに、変化の速度を取得できるほど細かいデータ タイプを持つ単一の列を追加することによってこれを実現します。これにより、間隔が閉じているかどうかを知るためにテーブル内の複数の行を調べる必要がある ため、若干の複雑さが増します。
モデル化されているドメインに直接関連しないポイントまたは時間間隔 (データベースに入力された時間情報など) は、上記の構成要素ではなく、アンカー モデリングのメタデータを使用して処理されます。データベースへのこのような変更に関する情報を保持する必要がある場合は、更新に加えて削除ステートメントも非破壊的になるバイテンポラル アンカー モデリングを使用できます。
リレーショナル表現
アンカー モデリングでは、概念モデルで使用されるシンボルとリレーショナル データベースのテーブルの間に 1 対 1 のマッピングがあります。すべてのアンカー、属性、結び目、結び目には、明確に定義された構造を持つ対応するテーブルがデータベース内にあります。したがって、概念モデルは、単純な自動化ルールを使用してリレーショナル データベース スキーマに変換でき、その逆も可能です。これは、概念レベル、論理レベル、物理レベルの間で複雑で、時には主観的な変換手順がある他の多くのモデリング手法とは異なります。
アンカー テーブルには、ID が格納される単一の列が含まれます。ID は、常に存在し、不変であるエンティティの唯一のプロパティであると想定されます。モデル化されているドメインから ID が取得されることはほとんどないため、代わりに、たとえば増分する番号シーケンスから技術的に生成されます。
ドナルド ダックの甥のアイデンティティのアンカーの例は、1 タプルのセットです。
{⟨#42⟩, ⟨#43⟩, ⟨#44⟩}
ノットは、アンカーと単一の属性の組み合わせと考えることができます。ノット テーブルには、ID 用と値用の 2 つの列が含まれます。ID と値を一緒に保存するため、ノットは履歴化できません。ノットを参照するテーブルは長い文字列ではなく短い値を保存できるため、ストレージ要件を削減し、パフォーマンスを向上できることが、ノットの有用性です。
性別の結び目の例としては、2 組のセットが挙げられます。
{⟨#1, 'Male'⟩, ⟨#2, 'Female'⟩}
静的属性テーブルには 2 つの列が含まれます。1 つは値が属するエンティティの ID 用、もう 1 つは実際のプロパティ値用です。履歴化された属性テーブルには、時間間隔の開始点を格納するための追加の列があります。ノット属性テーブルでは、値列はノット テーブルを参照する ID です。
名前の静的属性の例は、2 つのタプルのセットです。
{⟨#42, 'Huey'⟩, ⟨#43, 'Dewey'⟩, ⟨#44, 'Louie'⟩}
性別の結び付けられた静的属性の例は、2 つのタプルのセットです。
{⟨#42, #1⟩, ⟨#43, #1⟩, ⟨#44, #1⟩}
服装の(変化する)色の履歴化された属性の例は、3 つのタプルのセットです。
{⟨#44, 'Orange', 1938-04-15⟩, ⟨#44, 'Green', 1939-04-28⟩, ⟨#44, 'Blue', 1940-12-13⟩}
静的タイ テーブルは、2 つ以上のアンカーを相互に関連付け、ID を保存するための 2 つ以上の列を含みます。履歴化されたタイ テーブルには、時間間隔の開始点を保存するための追加の列があります。結び目のあるタイ テーブルには、参照される結び目ごとに追加の列があります。
兄弟関係の静的な結びつきの例は、2 つのタプルのセットです。
{⟨#42, #43⟩, ⟨#42, #44⟩, ⟨#43, #42⟩, ⟨#43, #44⟩, ⟨#44, #42⟩, ⟨#44, #43⟩}
結果のテーブルは、すべての列が主キーの一部ではない場合を除き、 すべて第 6 正規形になります。
他のアプローチと比較して
2000年代には、アジャイルデータウェアハウスを実現することを目標に、アンカーモデリング、データボールトモデリング、フォーカルポイントモデリングなどのアンサンブルモデリング形式を含むいくつかのデータウェアハウスデータモデリングパターンが導入されました。[7]
データ保管庫の比較
2013年にオランダで開催されたデータモデリングカンファレンスBI Podiumで、Lars Rönnbäckはアンカーモデリングとデータボールトモデリングの比較を発表しました。[8]
参考文献
- ^ L. Rönnbäck; O. Regardt; M. Bergholtz; P. Johannesson; P. Wohed (2010). 「アンカーモデリング - 進化するデータ環境におけるアジャイル情報モデリング」.データ&ナレッジエンジニアリング. 69 (12): 1229–1253. doi :10.1016/j.datak.2010.10.002. ISSN 0169-023X.(プレプリントはこちらから入手可能)
- ^ ポースビー、ヨハン。 「Rålager istället for ett strukturerat datalager」。www.agero.se (スウェーデン語) 。2023 年 2 月 22 日に取得。
- ^ ポースビー、ヨハン。 「データウェアハウスのためのデータモデラー」。www.agero.se (スウェーデン語) 。2023 年 2 月 22 日に取得。
- ^ 第 6 回 TDWI ヨーロッパ会議 - TDWI ホームページ 2011 年 7 月 20 日にアーカイブされたWayback Machineで
- ^ よろしく、オーレ;レンベック、ラース。マリア・バーグホルツ。ヨハネソン、ポール。ウォヘド、ペティア (2009)。 「アンカーモデリング」。第 28 回概念モデリングに関する国際会議の議事録。 ER'09。グラマド、ブラジル: Springer-Verlag: 234–250。ISBN 978-3-642-04839-5。
- ^ Lars Rönnbäck. 「Anchor Modeling Academy」.プロモーションウェブサイト. 2017年5月20日閲覧。
- ^ 「アンカーモデリング」。The Hans Blog 。 2023年3月15日閲覧。
- ^ ラース・レンベック;ハンス・ハルトグレン (2013)。 「アンカー モデリングと Data Vault モデリングの比較」(PDF)。
外部リンク
- アンカーモデリングブログ、ビデオチュートリアルと研究情報
- オンラインアンカーモデリングツール
