ER
アーキテクチャジャーナルの8号「データ統合の柔軟なモデル」で良い記事があったのでメモがてら紹介。*1複数のシステムでばらばらにもっているデータを1つに統合するというアイデアは昔からよく言われているが実際の構築は非常に難しい。これは、個々のシ…
リソースなんだけれども日付をもったりイベントから導出された結果を持っているようなモデルを作成していろいろ考えてみます。 シナリオ 顧客に対して、会員契約、過去取引実績による割引率を管理するようなマスタを利用するシナリオで、顧客・注文・商品の…
モデリングのスタイル:意味論と統辞論について 上記でERモデルを作成する方法として、『関数従属性』を利用する方法と『リソース・イベントを区別』する方法について言及されています。いくつか気になる点があり、その中でも「関数従属性」が「統辞論的な枠…
値に有効期間を持つマスタデータの設計パターンを整理してみました。FowlerのTemporal Patternsであげられているものを参考にしました。設計パターンとしては大きく3つの方法を考えました。 有効期間ごとにマスタデータを保持している(Temporal Object) …
今回作成したモデルについて、ビューを使うか導出のテーブルを使うかなどは、実装のシンプルさやパフォーマンスの観点で選択すればよいと思います。これらの選択は、論理レベルの設計にもあまり影響しませんが、(現在)マスタや履歴データをどの様にどのデ…
マスタメンテナンスで未来のデータを入力したいんですけどのモデルをみたらおかしな点に気付いたので改訂します。 商品IDマスタと商品CDマスタの関連には2つ別々の意味があり別にしなといけなかったのを1つで扱っていたためにおかしなモデルになっていまし…
考えてみました。 題材は商品マスタのシナリオで商品名が変化し、未来のデータを入力できる構造を考えてみます。まずは識別子の抽出をします。 業務的には、現在の商品体系を現す商品CDと過去・未来を含めた商品IDの2つのコード体系を利用していると仮定し…
リアルなドメインモデルのサンプルって少ないな思っていたけど、リアルなERのモデルのサンプルも案外少ないですね。また、あっても単純化(手抜き)されているんだよな。説明用に単純化しているのはわかるけど、その除外しているところが知りたいんだよな。 …
ダイアグラムを描いてみた。一時取引先IN購買がIDが999の取引先になる。 ついでに論理ERも描いてみた。冗長(JOINコストが影響する)と感じた場合は物理ERでサブタイプをまとめるなどすることになるが、購買と取引先の関係は元の論理ERのほうが分かり易いと…
ジェームスマーチンの古い本ですが、非常に良い本ですね。OOADはもちろんDOAの開発者でより深くデータの意味論を含めて考えたい方にお勧めです。 たとえば、イベントについては イベントとは状態の注目に値する変化であると定義して、以下のようなに分類して…
ERを書くとき僕はサブタイプ表現は当たり前のように使っているのだが、一般的にはあまり使わないのかな?T字はサブタイプをきっちり分析するが、他はどううなんだろう。ERとサブタイプで検索するとTHも引っかかったからTHもあるのかな。それ以外の正規化・関…
サロゲートキーやIDなどは自動的に生成することを考える。これには、データベースの機能を利用してシーケンシャルなIDを生成させることが多い。でもこの方式では、複数のテーブルやDB間で保障はされない。 自動生成されたキーであれば変更されることはないと…
これはサブタイプの実装をどうするかで変わるではと考えている。 多くの場合、区分はサブタイプを表している。サブタイプの実装をテーブルごとにするようにした場合、必然的に区分がテーブルになる。逆に、サブタイプを1つのテーブルで実装した場合、区分が…
アーキテクチャ設計を行う時にいろいろな方針を決めるようにしているのですが、データベースについても論理から物理に変換する基準を決定します。 僕らのチームではアプリケーションごとに以下の点について考えます。 非正規化をおこなってもよい基準 可変長…
一般のERではイベントの中に関連するリソースのIDを含めますよね。リソースの中に他のリソースのIDを含めるかは、いろいろあるようで、T字の場合はリソース間では含めないで対照表を作成しますね。 この基準って案外あいまいになっているように感じています…