今、調べてるデータベースの話。
普通、教科書的にはデータベースは「正規化」して設計するはずなのだが、
そう理想通りにはいかなくて、正規化されていないデータベースはよくある話だろう。
それはそれで、設計がまずいが、正規化する努力の跡があればまあよい。
今回ぶち当たったのは、どうやらプログラムの機能別にデータベースが出来ているというものだ。
正規化などという概念は全く感じられない。
いや、微塵もない。
当然、重複するようなデータが散在している。
設計当時、なんとしても高速化を計ることが命題だったので、
プログラムの機能別にテーブルを作って、
そこにアクセスする・・・というような設計をしたのでは?と推測できる。
こういう設計ってありなのか?
普通、教科書的にはデータベースは「正規化」して設計するはずなのだが、
そう理想通りにはいかなくて、正規化されていないデータベースはよくある話だろう。
それはそれで、設計がまずいが、正規化する努力の跡があればまあよい。
今回ぶち当たったのは、どうやらプログラムの機能別にデータベースが出来ているというものだ。
正規化などという概念は全く感じられない。
いや、微塵もない。
当然、重複するようなデータが散在している。
設計当時、なんとしても高速化を計ることが命題だったので、
プログラムの機能別にテーブルを作って、
そこにアクセスする・・・というような設計をしたのでは?と推測できる。
こういう設計ってありなのか?