- ベストアンサー
既存システムのマスター管理についての疑問
- AS/400で基幹業務システムのマスター管理に課題があります。マスタテーブルの正規化がされておらず、追加項目の制限に問題があります。
- マスタテーブルの正規化を行うと、古いマスタを利用しているプログラムの修正に多くの工数がかかるため、移行を検討する声もあります。
- AS/400でのマスター管理の硬直性に疑問を抱き、オープンシステムへの移行を考える必要があるか悩んでいます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
正規化をすると、単純にテーブル数が増えます。で、テーブル間の構造が複雑になるだけでなく、物理的なアクセス回数も増えます。例えば、1レコードに5件の繰り返し項目を入れておけば単純にアクセス回数は1/5近くになります。 アクセス数の多いテーブルを正規化しているのではなく、正規化したからアクセス数が増えたという見方もできるのです。 で、DB開発においては正規化をしておいて性能向上のために非正規化を行う事もあります。ただし、これはシステムのアクセスの仕方などにもよりますので一概にどれだけやればよいかという事はわかりません。現物あわせになってしまいます。というか、作った人の感性による部分も多くなりますね。 最近のRDBではレコード長という概念はありません。項目数と項目長の制限はありますが、普通に使っているだけではほとんど気にしなくても良いぐらいです。昔はメモリも少なく1度に扱えるレコード長がきまっていたのでしょうが、現在のハード/OSでは検討しなくても良くなっています。
その他の回答 (1)
- 0KG00
- ベストアンサー率36% (334/913)
>オープンシステムでも、このような硬直的な事態になりうる可能性はあるのでしょうか? オープンシステムというものが具体的に何を指しているのか不明ですが。 オフコンではなくてUnix(linuxではない)であったとすれば、あり得ない話ではないです。例えばOracleなどでしたら制限そのものは新しいバージョンでは緩くなってきていますが、それでも自由にならない項目も存在します。 >AS/400をあきらめてオープンシステムに移行する お金と時間と人を自由に注ぎ込めるのでしたらよろしいかと。あとは掛かるコストとメリットの天秤ですよね。 オープンシステムはできる事も飛躍的に広がるのですが、コストもそれなりに掛かります。個人的には、オフコンよりはましだと思いますが。
お礼
ご意見ありがとうございます。 >具体的に何を指しているのか不明ですが。 外注ですが実績のあるSQLserver+ASPを想定して考えております。 以前、オフコン経験者の方からは、マスターテーブルを正規化することは後にテーブルの構造がわかりにくくなるため、あまり好ましくない、とのご意見を多数いただきましたが、以前携わったウェブシステムではむしろアクセスの頻繁なマスターテーブルの方が正規化されていたような印象を受けました。そのときは、そうすることによって後にDBの項目が追加される際の、プログラムの影響を少なくする配慮だとだけ思っておりましたが、レコード長の制限を緩和する理由もあったのでしょうか?
補足
>最近のRDBではレコード長という概念はありません... なるほど、少し分かってきました。 オフコンはメインメモリなどスペックの都合上、なるべく正規化しないほうが、正しかったのかもしれません。 >作った人の感性による部分も多く... 確かに実際はそうかも知れません。 ご意見ありがとうございます。