モデリング

データ項目名が生産性の上限を規定する、の法則

データベースフィールド名にしろ、DTOのプロパティ名にしろ、フォームが送信するクエリパラメータ名にしろ、 同じものに違う名前をつけない 違うものに同じ名前をつけない の原則を破ると、プログラマが混乱してシステム開発の生産性が下がる。 同じ意味のク…

ボイス・コッド正規形への分解は、結局どうすればいいのか(2)

2ヶ月前に書いた1回目の続き。 http://d.hatena.ne.jp/tgk/20060507 「第3正規形だが非ボイスコッド正規形」の表の正規化のしかた。 前回書いたことは 「第3正規形だが非ボイスコッド正規形」の表を教科書的に正規化すると、現実世界に存在する制約をデータ…

ドメインモデリング <<< データモデリング

私はOO言語しか書けないけど中身はDOA派なので、データモデリングは徹底的にやるけどドメインモデリングは一切やらない。 オブジェクト指向のモデリング理論はまったく勉強していない。 本はいろいろ買ったけど、あまりにも面白くないのでぜんぜん読み通せな…

ボイス・コッド正規形への分解は、結局どうすればいいのか(1)

正規化理論の教科書では、「第3正規形だが非ボイス・コッド正規形」のデータ構造*1をボイス・コッド正規形に分解すると関数従属性が消滅する、とよく説明される。 このようなデータ構造に実務で出会ったら、どうすればいいのか。 増永良文 リレーショナルデ…

サービス/データ分離派ということ

ちょっと前のエントリで、私はサービス/データ分離派である、と宣言してみたのだが、この「サービス/データ分離派」とは、浅海智晴氏が作られた言葉。 Java World の連載「Javaデザイン・ノート」第36回「ビジネス・アプリケーションのアーキテクチャ」(2…

周延とは?(1)

周延という重要概念を整理しておきたい。 分かったようなわからないような感じが拭えない。外堀から埋めていこう。 「周延している」とは、単に「モレ・ダブリがない」こととは違う。 サブセット間に AND が起こるなら、セットは周延していない。 とか、 そ…

技法にはリファレンスモデルが必要

渡辺幸三氏のCONCEPTWARE/財務管理をダウンロードして眺めている。 すごい分量。これだけのものを公開するとは正に英断。 技法について語る人が同時にリファレンスモデルを提供する例は、あまり多くない。 本家によるサンプルのない技法はいいように誤用され…

"1 Fact in 2 Place"はダメ、"2 Fact in 1 Place"もダメ

会社の研究会の課題図書である、Web+DB Press vol.28の羽生章洋氏の記事「EJB3時代のデータベース設計」を読む。 正規化の方針でよく言われる"One Fact in One Place" は 「1つのデータを2箇所にしまうな」 という意味だと思っていたが、この記事を読んで逆…

データベースがビジネスの限界を規定する

「データベースがビジネスの限界を規定する」と、この研修 で教わった。 データベースに入っていない情報を使ったビジネスは、やりたくてもできないから。 例えば、 顧客名や住所が注文テーブルだけに入っていて、顧客マスタテーブルが存在していなかったら.…

教科書的な正規化ではstableなデータ構造は得られない

データベースの設計指針として我々に与えられている兵器は「正規化」しかない。 しかし教科書的な正規化だけでは兵力不足だ。 正規化すればデータの整合性は保証されるが、データ構造の安定性までは保証されないのだ。ある部門が名前を変えることになったと…

O/Rマッピングレイヤのありがたさ

データベース設計を担当して実感したことだが。 RDBとオブジェクト指向言語のインピーダンスミスマッチは、データベース設計やオブジェクトモデリングの拙さを隠してくれるありがたいものだ。 理論的な支柱のない素人くさいデータ設計であっても、O/Rマッピ…