[pgsql-jp: 29922] Re: ORACLEでいう DUAL 表は?
Satoshi Nagayasu
snaga @ snaga.org
2003年 5月 16日 (金) 15:20:19 JST
永安です。
Oracle知らないのに横からすみません。この話はときどき聞くので便乗です。
# 「仕様に沿っていれば正しい」というのは、正しさの「一面」であって、
# 意味的な正しさとは一致しない、しかし意味的な正しさが常に要求される
# わけでもない、というのが私のスタンスです。
池田 秀一 <hikeda @ miraclelinux.com> wrote:
> > そういう表を取り入れるのがとても汚く、そう考えようとする事自体が間違いと思え
> > ます。それよりも FROM を不用なように独自拡張する方がよい方法です。
>
> 『どっちもどっち』でしょうねぇ。どちらも「よい方法」とは
> 言いきれないでしょう。言いきれるのが疑問です。
>
> データベース製品ごとの方言で、どちらが良いとは一概に言え
> ませんよ。『慣れ』の問題がほとんどだと考えますね。
「慣れの問題」と言ってしまえば、それは間違いなくその通りだと思うのですが、
まぁそれは置いておくとして、聞く限りにおいて、
- なぜ DUAL という名前なのか?
- そもそも、なぜ必要なのか
がよく分かりません。
つまり、どういう必然性があってそうなっているのかが、理解しづらいんだと思
います。PostgreSQLでは存在していないわけですし、私自身も DUAL なるものが
存在している必然性がよく理解できてません。
# 「脈絡のないオブジェクト」という指摘は、それはそれで正しいと感じています(私は)。
- 意味が先にあって、意味に文法を合わせるのか(FROM DUALが不要)
- 文法が先にあって、文法に意味を合わせるのか(常にFROM句が必要)
の違いじゃないでしょうか。
「SQLの仕様に忠実だから正しい」というのは、そのレイヤーを見ればその通り
かもしれませんが、「そもそもSQLがなぜそういう仕様になっているのか」とい
うSQLの仕様自体が意味的に正しいかどうかとは別でしょう。
だからこそ、
> FROM句を常に必要とするOracleの方がANSI/ISO SQLに忠実
という指摘に対して、杉田さんの
> 言語的には、SQL 自体が出鱈目
という話になるんじゃないでしょうか。
「SQL仕様に沿っているから正しい」という主張と「SQL仕様自体が間違っている」
という議論が噛み合うわけがないと思うのですが(論理的に)。どのレイヤーに
フォーカスして「正しい」と言うのかによって、認識は変わってくると思います。
エンジニア的には、「別に使えりゃいいじゃん」ということなのかもしれません
し、確かにそういう結論でも構わないとは思いますが。
ちなみに「仕様にバグなんてものはありません」ということはありません。
論理的なバグが入り込む余地はいくらでもあります。
--
NAGAYASU Satoshi <snaga @ snaga.org>
pgsql-jp メーリングリストの案内