こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

既存システムのマスターの管理についての疑問

以前、同じような質問を以下でさせてもらいましたが、少し別な角度からさせていただきたいと思います。
http://okwave.jp/qa2776979.html

現在AS/400で基幹業務システムを社内開発で管理しております。
得意先のマスタの項目を何項目か追加するよう社内の情報システム部に依頼を出したところ
マスタテーブルの正規化がされておらず、すでにレコードの桁数の
制限ぎりぎりに達している為、何をやるにもすんなりと受け入れてもら
えない状況となっております。また、正規化をするとなると、古いマス
タのため、それを利用しているプログラムの修正に膨大な工数がかかっ
てしまうためやむをえないとのご意見も多数いただきました。

過去に、ウェブシステム(SQLserver+ASP)で開発は外注で運用してき
た事があるのですがこのような事態は経験がありません。プログラムも
結構な本数でしたが、フィールドの追加もすんなり対応してもらいました。

AS/400が使用しているDBはDB2ですが同じRDBには違いありません。
情シスの言い分やご回答いただいたご意見ももっとですが、本当にこん
なことでいいのかという苛立ちも正直感じます。

オープンシステムでも、このような硬直的な事態になりうる可能性はあるのでしょうか?

一部2重管理になりますが得意先のマスタ等、情報系のデータに関して
はいっその事、AS/400をあきらめてオープンシステムに移行するぐらい
腹をくくったほうが良いような気がしてきているのですが、いかがなものでしょうか?

投稿日時 - 2007-02-25 10:47:10

QNo.2782305

すぐに回答ほしいです

質問者が選んだベストアンサー

正規化をすると、単純にテーブル数が増えます。で、テーブル間の構造が複雑になるだけでなく、物理的なアクセス回数も増えます。例えば、1レコードに5件の繰り返し項目を入れておけば単純にアクセス回数は1/5近くになります。
アクセス数の多いテーブルを正規化しているのではなく、正規化したからアクセス数が増えたという見方もできるのです。
で、DB開発においては正規化をしておいて性能向上のために非正規化を行う事もあります。ただし、これはシステムのアクセスの仕方などにもよりますので一概にどれだけやればよいかという事はわかりません。現物あわせになってしまいます。というか、作った人の感性による部分も多くなりますね。

最近のRDBではレコード長という概念はありません。項目数と項目長の制限はありますが、普通に使っているだけではほとんど気にしなくても良いぐらいです。昔はメモリも少なく1度に扱えるレコード長がきまっていたのでしょうが、現在のハード/OSでは検討しなくても良くなっています。

投稿日時 - 2007-02-25 15:17:20

補足

>最近のRDBではレコード長という概念はありません...

なるほど、少し分かってきました。
オフコンはメインメモリなどスペックの都合上、なるべく正規化しないほうが、正しかったのかもしれません。

>作った人の感性による部分も多く...
確かに実際はそうかも知れません。
ご意見ありがとうございます。

投稿日時 - 2007-02-26 09:21:16

ANo.2

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

>オープンシステムでも、このような硬直的な事態になりうる可能性はあるのでしょうか?
オープンシステムというものが具体的に何を指しているのか不明ですが。
オフコンではなくてUnix(linuxではない)であったとすれば、あり得ない話ではないです。例えばOracleなどでしたら制限そのものは新しいバージョンでは緩くなってきていますが、それでも自由にならない項目も存在します。

>AS/400をあきらめてオープンシステムに移行する
お金と時間と人を自由に注ぎ込めるのでしたらよろしいかと。あとは掛かるコストとメリットの天秤ですよね。
オープンシステムはできる事も飛躍的に広がるのですが、コストもそれなりに掛かります。個人的には、オフコンよりはましだと思いますが。

投稿日時 - 2007-02-25 11:10:43

お礼

ご意見ありがとうございます。
>具体的に何を指しているのか不明ですが。
外注ですが実績のあるSQLserver+ASPを想定して考えております。
以前、オフコン経験者の方からは、マスターテーブルを正規化することは後にテーブルの構造がわかりにくくなるため、あまり好ましくない、とのご意見を多数いただきましたが、以前携わったウェブシステムではむしろアクセスの頻繁なマスターテーブルの方が正規化されていたような印象を受けました。そのときは、そうすることによって後にDBの項目が追加される際の、プログラムの影響を少なくする配慮だとだけ思っておりましたが、レコード長の制限を緩和する理由もあったのでしょうか?

投稿日時 - 2007-02-25 11:44:06

あなたにオススメの質問