Ognacの雑感

木漏れ日々

目次

Blog 利用状況

書庫

ギャラリ

標準規約って

代表的なRDB(MsSQL/Oracle/DB2...)はSQL92準拠といわれてます。ここの方言を省けばSQL92で記述すれば可搬性は高いようです。しかし、不便を強いられる局面もあります。
一方、SQLの規約では SQL99というISO/ANSI標準がありますが、実装さてれているDBを知りません。
個々の製品の方言が強く固まった現状ではSQL99準拠にするのは無理が生じる気がします。だとしたら何のための標準規約だったのかと思ってしまいます。
Object_DBも期待したほどは開花していないようです。
 業務システムは個々製品の方言を前提にしたシステム設計を行っているケースが多く、システムを異なるRDBに移植するとなったら結構なコストが嵩むことがあります。
(例)・ 伝票番号の採番に Oracleにならば、シーケンスを用い、SqlServerならIndentityを用いる
    ・楽観的排他ロックの制御キーにOracleなら更新日などの項目を用いるし、SqlServerならTimeStampを用いる
など特有の機能を前提としてます。

 固有企業特有のアプリであれば、RDBを変えることは無いのかもしれません。
しかし作成したアプリを同種の仕様要求のシステムに横展開するとき、先様のDBがことなっていたら、固有の部分の再作成になりますし、仕組みの見直しの必要が出るかもしれません。
 メーカーの販売戦略で統一化は難しいのかもしれません。
   ・SSのTimeStamp的な更新情報の保障された項目
   ・SSのIdentity のautonumber項目
   ・Oracleの Where句の 正規表現検索
その他
   ・差集合や Xor集合, and 集合 が 1文で書けたり,複問い合わせが必要だったりする
   ・Top n個の抽出が 1文で書けたり,複問い合わせが必要だったりする

業務アプリでは必然項目が、RDBによって違うというのも理不尽で冗長な作業を強いられている気がするのです。
MSも独自拡張が好きなので困ることがあります。
 正規表現なども POSIX表記[:lower:] が怪しかったり,  逆に [1-9]-[2-3] で[1-9]から'(2,3)を除く など引き算を可能にした部分はGOODだと思います。

なんだかんだと言っても、業界全体のメリットより企業メリットが優先されるんでしょうかね。

投稿日時 : 2007年10月22日 11:40

Feedback

# re: 標準規約って 2007/10/22 12:42 かずくん

オープンソース系のDBだと、完全準拠ではないけどSQL99を取り込んでない?
PostgreSQLとか、Firebirdとか。
ってゆうか、boolをサポートしているの、PostGreSQLしか知らない。

モノによっては、SQL200Xの一部をとりこんでたような。

# re: 標準規約って 2007/10/22 16:35 Ognac

>オープンソース系のDBだと、完全準拠ではないけどSQL99を取り込んでない
オープン系の実情に疎いので失礼しました。結構反映されているようですね。商用DBが遅れているのか、準拠する気がないのか..後者の気がしますね。
SQL200xは知りませんでした。

# re: 標準規約って 2007/10/23 10:05 かずくん

既に見られてるかもしれませんが、念のため貼っときます。
http://ja.wikipedia.org/wiki/SQL#.E6.A8.99.E6.BA.96SQL.E8.A6.8F.E6.A0.BC

SQL2003を取り込んでいるDBが存在するかどうか、自信がなくなってきた。

# re: 標準規約って 2007/10/23 21:52 Ognac

Page情報ありがとうございます。参考にさせて頂きます
SQL:2003は知っている範囲では無いですね。

タイトル
名前
Url
コメント