ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

DBにおけるデータの取得方法

2007-03-21 22:54:58 | 開発ネタ

 以前、佐藤正美氏のDBの設計方法を書いたけど、その際、はじめの段階、データの認知において、どのようにデータを持ってくるのか?それは、正規化理論や要求仕様におけう帳票分析とどう違うのか、同じなのかについて、書きたいと思います。




■佐藤氏の理論における2つのデータ収集方法

 佐藤氏の理論において、データの収集は、命題論理方式と、コード 体系方式によって行われる(くわしくは、こちら

  これらの方法については、命題論理方式は、論理データベース論考の177ページ、コード 体系方式は179ページに書かれている。

 佐藤氏の流派の人には、「お前ぜんぜんわかってねーよ」と批判されそうだが、ちょー簡単にそのやり方をまとめてしまうと、

<<命題論理方式の手順>>
帳票が出てきたら、T字型ER図の
  エンティティを書くところ(上の部分)に帳票名、
  左の部分(キーを書くところ)に、NOとかコードってついていることばを
  右の部分(属性を書くところ)に、そのほかの項目をかく。

なお、T字型というのは、エンティティが上、下の部分が左右(キーと属性)にわかれてT字型になるので、T字型ER図というみたい。

で、このとき、帳票は、ふつうNoとか、コードが複数入る。
そこで、そのNOとかコード1つぶんを、1つのT字型ER図として、
  そのNOの前の部分(受注NOなら、受注)をエンティティとし、
 (1つ分の)なんとかNO、なんとかコードを左側のキーにかき、
 右の部分に、上記の(帳票の)項目からエンティティ名のついている項目を入れる

ってな感じにする方法である。

<<コード体系方法>>
 命題論理方式はめんどっちいので、
・項目が出てきたら、いままでウィリアムのいたずらがやってたように
 エンティティに分けてしまい、

・エンティティがすでにあれば、そのエンティティにいれる

・エンティティがなかったら、新しくエンティティを作成し、
 主キー(左側のなんとかNO)をつくる

って言う方法。

 つまり、この手法は、いままでの帳票分析を、ちゃんとだれでもできる手法にまで高めたものであり、ウィリアムのいたずらが説明してきたのは、コード体系方式になるけど、こっちより、命題論理方式のほうが、めんどっちいけど、厳密である。




■正規化を使う、一般的な手法のとき、データの抽出は?

 で、一方、正規化手法をつかうとき、じゃあ、その正規化をやる対象となるデータは、どっから発生するの?ていう話になる。

 この集め方には、2つあるといわれる。
 むかしCAITで出していたデータベーススペシャリストテキスト(ISBN 4-89078-458-6)の258ページ、データの抽出に出ているけど、トップダウンアプローチと、ボトムアップアプローチである。

<<トップダウンアプローチによるデータ抽出>>

 はじめに、エンティティを出してくる。
 どうして、エンティティが出せるかというと、エンティティはモノや概念なので、モノとして、そこの登場人物や、やり取りするモノは、エンティティとなる。このような感じで、エンティティは出せる。

 そして、エンティティが出てきたら、あとは、そこに、属性を帳票などから埋めていくという手法である。

 この場合、登場人物と出てくるモノを使って、あらかじめ、シナリオをつくり、つじつまが合うようになっていると、そこからエンティティを切り出して、あとは属性追加していく形になるので、話のつながりが見えやすい。

<<ボトムアップアプローチによるデータ抽出>>
 帳票か、画面からデータ項目を取り出す。
 ただし、帳票を見ても出てこない、画面はこれから作るのでない(>_<!)っていうことがある。この場合、DFDのデータストアからデータを取り出すこともできる。

 しかし、この手法は、すべての帳票を集めてくれば、できるんだけど、もし、あつまらなかったら、抜けてしまう。。(>_<!)
 っていうか、そもそも、帳票も画面も、これから作るシステムで、要求分析でER図を作りたい場合、どーすんのよ(^^;)っていう問題がある。




■佐藤氏の方法と一般的手法との比較

 佐藤氏の命題論理方式と、コード 体系方式は、どちらも、帳票からやっているという点では、ボトムアップアプローチに相当する。一般的な、帳票分析も、ボトムアップアプローチが中心である。

 しかし、トップダウンアプローチを使って、帳票分析を行いたい場合、コード体系方式で、エンティティに属性を追加していくことになる。




 で、いままで、トップダウンアプローチについて、あんまり書いてこなかったけど、こっちのほうが実は重要で、それが、業務知識の重要性に関係し、さらに、現在のシステム開発の大きな問題に関連し、問題解決への重要な第一歩になるはずなんです。。

 けど、あらしろべにの番組がはじまる数分間で、その問題を書くには、余りにも時間が無いので、別のときに書きます。

この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« MS WordやExcelをただでPD... | トップ | XMLの帳票分析 »
最新の画像もっと見る

開発ネタ」カテゴリの最新記事