トップページprog
215コメント85KB

SQLって変だよね?

■ このスレッドは過去ログ倉庫に格納されています
0001仕様書無しさんNGNG
なんであんな不自然で直交性のないものが
大手を振ってるんだ?

って思う。
SQLを擁護したい人反論して、SQLの素晴らしさ
をオレを得心させられる?
0002仕様書無しさんNGNG
直交性ってなんだ?
0003仕様書無しさんNGNG
>>1の言いたいことがわからず
反論のしようがないと思われ。
0004仕様書無しさんNGNG
正規化しちゃうの逆?
0005仕様書無しさんNGNG
うーむ、>>1は座標を使った
プログラミングしかしたことが無いんだと思われ。
0006仕様書無しさんNGNG
結合度の低いモジュール同士を
直行性が高いって言うんですよね 確か
うる覚えでマジレスごめん
0007仕様書無しさんNGNG
ああ、個別の処理が独立してて、スケジューリングしやすいってことか。
0008名無しさん@1周年NGNG
1950年代にIBMが企画したのだから(360時代)しょうがないかしら。
0009仕様書無しさんNGNG
言語の直交性ってそういうことじゃいんだけど…。
ともかく、SQLって直交性に乏しかったっけ?例キボン。
0010仕様書無しさんNGNG
SQLって、元々、
プログラマー向けのもんではなくて、
一般ユーザが、ダム端末から、
コマンドラインのりで、
RDBを問い合わせるために開発されたものだから、
プログラマ的な視点でみたら「変」だとは思いますが、
私にとっては、有用なので、よろこんで使ってます。


0011仕様書無しさんNGNG
SQLが入れ子になってて、DISTINCTやら、UNIONなんか使ってて、
テーブルが10数個使われてるやつでバグられると、うつー
作った本人は、一度にクエリーしたほうが速いつってるけど、
正常に動かなきゃ意味ねーよ。

ところで、テーブルを元にしたクラスを作るときの定石ってある?
フィールドの分だけ、プロパティを追加するのがめんどくさくて。
0012仕様書無しさんNGNG
結婚前に性交渉をするのはだめですか?
0013仕様書無しさんNGNG
SQL と似たような問い合わせ言語には他にどんなのがあるのですか?
>>12
おもしろくないです。
0014仕様書無しさんNGNG
別にSQLが好きとかではないが、耐障害性と排他制御が
便利ってだけだと思う。ので、その2点がSQLでなくとも
実現されていれば、SQLである必要なし。
単一APとかだったらSTLの方が便利とも思うし。
0015仕様書無しさんNGNG
>>10
そうだっけ?
元々アメリカの大学教授が提唱して、IBMが始めに
製品化したんじゃなかったかな?
0016仕様書無しさんNGNG
>>15
コッド博士のこと?コッド博士はIBMだよ。
0017仕様書無しさんNGNG
>>14
そいつはSQLではなくRDBMSの話ね。
0018仕様書無しさんNGNG
ひょっとして、>>2,4,5,6,7は「直交性」の意味を知らなかったのか…。恐ろしい。
0019仕様書無しさんNGNG
DBはある程度の規模のソフトを造るなら好き嫌いに関わらず
必須科目です。
特に大規模のソフトを造るとなればなるほど重要になります。
しかし、規模が小さいソフトを造るなら必要ありません。
ましてや、たかだか40〜50行くらいのコードを書くなら
まったく関係ありません。
まぁ、仕事で即必要なら、初心者がいきなりSQLをやることも
あるが、
大半は、ある程度のコードを書いていて、「これではものたりん、
もっとでかい奴を書きたい」と言う気持ちが起れば、DBの勉強しましょう。
というより、別に意識してやら無くても、
でかいコード書いてるうちにいつのまにかやってしまうものですな。
0020仕様書無しさんNGNG
>>18
えらい、びびりやね。
0021仕様書無しさんNGNG
1の言う「直交性」って何よ?
0022仕様書無しさんNGNG
>>1
つか、学生時代にちょこっとプログラムかじって、
就職したらSQLやれっていわれて鬱が入ってる奴とみた。

SQLを一つの言語としてとらえると、その生産性は高い。
使えない奴に言っても無駄か。
0023仕様書無しさんNGNG
>>22
使える使えないじゃなくて、直交性がなくて汚いって言ってるんでしょ。
副問合わせの中では group by が使えないだとか (だっけ? 違うかも
しれんが)、そんなとこ。

俺は from, where, group by などの順序が決められている
理由がわからん。

あと、where と having という2つのキーワードが本当に必要
なのかなって思う。where と having は、group by する前か
group by した後のどちらで条件を引っかけるか、でしょ?
構文を工夫すれば、having は不要にならなかったのかな。

ときにオレは「直交性」の意味を明確に説明できないのだけど、
誰か説明してください。
0024仕様書無しさんNGNG
>>23
SQLって、ドンドン拡張されてるでしょ?
そのうちきれいになるんじゃないかな。なんて。
0025仕様書無しさんNGNG
insert+updateみたいのが欲しいっす。
データがあればupdate、無ければinsertとか。
0026仕様書無しさんNGNG
>>23
DBは理論は後からついたものじゃなかった?
もともとは実用優先でやってたものが整理される過程の中にあるんだろうね。
0027仕様書無しさんNGNG
Google で「直行性 プログラミング」と入力して
検索にかけてみそ。
Unix に関係ありそうですな。
002827NGNG
>>27
間違った
直行性じゃなくて直交性ね。
おれ逝く。
002923NGNG
>>24
> SQLって、ドンドン拡張されてるでしょ?
> そのうちきれいになるんじゃないかな。なんて。
SQL-86、SQL-92、SQL-99 ときてるけど、きれいになってるの?
そんな気はしないけど。例えば order by でカラム名じゃなくて
1 とか 2 とかのようなカラム番号を指定できるのは、SQL-99 では
廃止予定だったっけな。でもその結果きれいになるとは思えないなぁ。


003023NGNG
直交…似たようなものが複数存在しないこと。

どう?
0031仕様書無しさんNGNG
おれはSQL以外データベースを操作する方法を知らん。
職場の他の連中はSQL文を組み立てるのにマウスで
テーブル名をドラッグなんてやってるが、
おれにはあんなとろいことできん。
SQL文はselectやinsertばかりではない。
関数を作ったりテーブルを作ったり
いろんなことができるのだ。
おれはSQLマンセーだな。
0032仕様書無しさんNGNG
>>25
オラクルだったらできるぞ。オラクルのみの昨日だけど。
0033仕様書無しさんNGNG
>>32
どうやるの? 教えてくだされ。

>>31
関数って、SQL の仕様に含まれてるの?
00343年生NGNG
>>33
PL/SQLでインサートした後、データあり例外が起きたら
アップデートってのが常套手段だと思ってるんだけど、
ほかにやり方ある?
0035仕様書無しさんNGNG
>>19
DBは星の数ほどあるソフトウェアの応用分野の中の
一つにすぎないでしょ。別にDBなんぞ不要な分野だって
イパーイあるよ。
0036仕様書無しさんNGNG
ストレージングの方法としてRDBMS「しか」しらない
アホコンサル・SEが増えてきていて鬱だ。

ファイルシステムそのまま使うとか、IPCのシェアドメモリ
使うとか、性能要求の事を考えればそれが当然であるはずの
選択肢の幾つかを「知らない」自称「最先端」Java技術者
とか見ると、殺してやりたくなる。

お前らみたいなのがいるから、お客さんが中小SI・コンサル
==詐欺師という認識が出来上がっちまうんだよ!!!
0037仕様書無しさんNGNG
全てのデータをメモリ上に展開するプログラムの
くせにそのデータをデータベースに保存する、
そんなシステムがときどき存在するね。

>ストレージングの方法としてRDBMS「しか」しらない

ということみたい。
0038仕様書無しさんNGNG
業務用アプリを作る時にクライアントをだまくらかしてSQL採用させた
ことあるけど(いや、DB使ったほうが便利だったんだけど)
普通のコンシューマー向けアプリのデータ保存にDBを使いましょうと
言われた時は萎えたな。
0039仕様書無しさんNGNG
Havingがいらんとか言ってる馬鹿が何言ってもねぇ
0040仕様書無しさんNGNG
>>38
> SQL採用させたことあるけど
> (いや、DB使ったほうが便利だったんだけど)

意味わからん。38 の言う SQL って何? DB って何?
004136NGNG
>>39
SQLの文法の話で生兵法ひけらかしてるアホと一緒にしないでくれ〜。
0042仕様書無しさんNGNG
>>40
SQL-Serverだったりして。
0043仕様書無しさんNGNG
>>42
MSのネーミングは嫌いだ。
004438NGNG
すいません、SQLServerです。鬱死
0045名無しさん@そうだ選挙にいこうNGNG
>>36
まったくだ。COBOLを知ってればデータの扱いを
SQLを通してしか考えられないことがいかに非効率か
明白なのに。
0046仕様書無しさんNGNG
>>45
なぜここでCOBOLがでてくるの?
0047仕様書無しさんNGNG
>>45
いやそれは、COBOLがどうのこうの話ではないと思うが…
004847NGNG
あぅ、かぶった
0049仕様書無しさんNGNG
>>45
煽ってるんでしょ? 
0050仕様書無しさんNGNG
なんか SQLの文法 は COBOL くさいような気がする.
to とか on とか.

0051仕様書無しさんNGNG
COBOLもSQLも、誰でも読めるように自然な英文に
近づけたって話を読んだ気がする
0052仕様書無しさんNGNG
>>41
だから、どうすればHavingが不要になるのか教えろよ。
0053SQL素人NGNG
insert into〜とupdate set〜の「〜」にあたる書式が違うのはどうして?
それとも、別の書き方とかで統一できるの?
0054仕様書無しさんNGNG
>>52
41は生兵法ひけらかしてるアホなんだよ

whereに含めたら混乱を招くし、結局group byの前か後かって認識
させなきゃいけないし、それだったら素直にhavingのほうがいいに決まってる。
言語仕様をわざわざ汚す必要なんてない。
また、それがネックにもなりかねない。41はバカなんだよ。
0055名無しさん@まいぺ〜すNGNG
オラクルますたー
0056仕様書無しさんNGNG
select sum(col) from tbl where col > 0;
select sum(col) from tbl having sum(col) > 100;
select sum(col) from tbl where col > 0 having sum(col) > 100;

select sum(col) from tbl where sum(col) > 0; ←意味不明だな。
select sum(col) from tbl having sum(col) > 100 where col > 0;
↑なんかしっくりこない。

where句ってselectで表示するものに条件付けするもんじゃなくって、
選択する表に掛かっていって、havingって選択した結果に掛かるんでしょ?

あと、having句ってgroup byの前でもOKじゃなかったっけ?
005756NGNG
だからwhere句とhaving句に分ける意味があるんだよって
言いたかった。
0058仕様書無しさんNGNG
>56
>group byの前でもOKじゃなかったっけ?
そんなことはみんな知ってるだろ
解釈的にgroup byが処理される前か後かってことだろよ
005956NGNG
あーhavingって選択した結果に掛かるってのは間違いで、
集約した結果にってことね。
0060仕様書無しさんNGNG
>>56
要するに表に対して抽出してくる条件と
その結果に対して指定する条件を一緒にしようとすれば
できるかもしれなけど、判別しないといけなくなるから
分かれてるほうが自然だよね
0061仕様書無しさんNGNG
41の人は
select sum(col) from tbl where col > 0 having sum(col) > 100;
に対して
select sum(col) from tbl where col > 0 and sum(col) > 0;
こんな風に書ければいいと言っているのかな?
これってわかりやすいのかな?

select(どれを)from(どこから)where(どんな)having(にもかかわらず)
のほうがわかりやすいと思うけど
whereにまとめる利点てなんなのかな?
0062仕様書無しさんNGNG
Havingって PostgreSQLの古いバージョンだと
なっかった気がするが気のせいだろうか。
ちなみに Pro*Cとか便利?
0063仕様書無しさんNGNG
>>62
>ちなみに Pro*Cとか便利?
PL/SQLだけではダメなときは使うけど
PL/SQLで大抵のことはできるんじゃない
0064仕様書無しさんNGNG
SQLを見た後VBのコードを見ると、VBが詩のように見える。
っていうのを去年のbitで読んだ。何月号かはわすれたけど。

0065仕様書無しさんNGNG
サブクエリを駆使すればHavingの代わりはできる
でもそれは掛け算を足し算の繰り返しで行うようなもの。
0066仕様書無しさんNGNG
悲惨な1スレと思われ
0067仕様書無しさんNGNG
>>36
> ストレージングの方法としてRDBMS「しか」しらない
> アホコンサル・SEが増えてきていて鬱だ。

ストレージングって何ですか?
永続化のこと?
0068仕様書無しさんNGNG
>>1
直交性のあるものって例えば何?
0069仕様書無しさんNGNG
SQL はパズルだと思って、頭の体操代わりに組んでる。

たまに解の無いパズルもあるけど(鬱
0070仕様書無しさんNGNG
おらくるすまたー
0071仕様書無しさんNGNG
このスレ、「群盲 象をなでる」を具現化してますな
0072デフォルトのやる気なしNGNG
>>71

仏典でそんな比喩がありましたね。
えーと、『群盲批象経』でしたっけか?
(スレ違い気味・・・(-_-;)
0073仕様書無しさんNGNG
>>71
何をさしてそーいってるのかわからん。
なんで?
0074仕様書無しさんNGNG
>71
そうだとしても説明無しにそういうスレ付けるの最低。中身が薄くなるだけ。
007571NGNG
RDBMS SQL 直交性 ストレージング 等、
それぞれの概念や用語や前提条件が微妙にずれているままスレが続いているから

というか、最初からずれてるんだが。
SQLって擁護するとかそういうものじゃないだろ
007671NGNG
言い換えれば、「バカば〜っか」って事

>>62,63
別に便利とも不便ともいう事はない、Cで作るモジュールから Oracle
にアクセスしなきゃならんときに使うだけ。
ただ、DB 内で完結できるところは極力 ストアドプロシージャ−にして実装するのが吉
0077仕様書無しさんNGNG
>>76
>ただ、DB 内で完結できるところは極力 ストアドプロシージャ−にして実装するのが吉
くらいの認識の奴がエラソーなこと抜かすな(ワラ

>RDBMS SQL 直交性 ストレージング 等、
>それぞれの概念や用語や前提条件が微妙にずれている
テメーの言葉で説明してみろってんだ、クソが。
0078仕様書無しさんNGNG
>>76
>言い換えれば、「バカば〜っか」って事

ろくな説明もできずに、わかってるような口ぶりで、
「おまえら間違ってると」しか言えない馬鹿も2ちゃんには多い。
0079仕様書無しさんNGNG
>>78
オマエモナー
008076NGNG
>>77
すまんね、最近 'select * from ....' だけを使って
何から何まで C で実装する頭の悪いやつと
話してたので、つい書いてしまったよ

とりあえず、論外なのが、RDBMS と SQL を
ごっちゃにしているやつ。sすまんが、逝ってくれ.
もう指摘されたけど、対障害性と一貫性は SQL が保障しているわけじゃないぞ
処理系と言語をごっちゃにするやつは逝ってくれ
0081仕様書無しさんNGNG
>76
おまえこそ異様に頭悪く見えるぞ。
76のカキコは辞めたほうがよかったのでは。
0082仕様書無しさんNGNG
>>81

>>78を10回言え。そして逝け。
0083仕様書無しさんNGNG
>>80
>もう指摘されたけど
んじゃ、何回も同じ事を指摘するんじゃねーよ、クソボケが。

>とりあえず、論外なのが、
とりあえず、論外なのは、おまえだ、マヌケ。

>すまんね、最近 'select * from ....' だけを使って
>何から何まで C で実装する頭の悪いやつと
>話してたので
一言も話題にしていない、おまえの脳内に住む人間の事まで
他人がわかると思うか?
何、言い訳してるんだ、ヘタレ。
0084仕様書無しさんNGNG
>別に便利とも不便ともいう事はない、Cで作るモジュールから Oracle
>ただ、DB 内で完結できるところは極力 ストアドプロシージャ−にして実装するのが吉

こりゃどしよーもない。こいつの発言は無視しよう。
Oracleのストアドプロシージャってjavaに丸ごと変わったんだろ。吉じゃなく悪。
0085仕様書無しさんNGNG
76=82
悲しい奴だ
0086仕様書無しさんNGNG
>>84
双方ともでむぱ入ってきたものとおもわれ
0087仕様書無しさんNGNG
PL/SQLに限らずJavaでもストアドプロシージャが書けるようになったんだろ?
0088仕様書無しさんNGNG
>PL/SQLに限らずJavaでもストアドプロシージャが書けるようになったんだろ?

oracleはアプリよりのもの作っては消してる。PL/SQLも消えるのは時間の問題。
0089仕様書無しさんNGNG
>>88
おいおい、下位互換性がなくなるでしょ
0090仕様書無しさんNGNG
×:ストアドプロシージャってJavaに
○:PL/SQLってJavaに

言語と実装形態の区別がつかない方がいらっしゃいます。
0091仕様書無しさんNGNG
SQL ServerだとT-SQL、PostgreSQLだとPL/pgSQLだよね。
0092仕様書無しさんNGNG
>87-91
ストアドプロシージャの話題は一旦終わり。(上の害基地の会話を終わらせるため)
0093出来そうで出来ないNGNG
俺も >>1 と同じことを思っている。
SQL の文法に直交性はないように思う。
過去レスにもあるが lNSERT 文と UPDATE 文の違いが直交性のなさの現れだ。

議論求む
0094仕様書なしNGNG
>lNSERT 文と UPDATE 文の違いが直交性のなさの現れだ。

SQL覚えたての頃は、そんな事も考えたが・・・
そもそもINSERTとUPDATEは、目的が違うからねえ。

特別、擁護するつもりもないが、直交性が増して
似た文法になった時にバカなSEにINSERTツモリ文で
正常データ(しかも顧客のデータ)を
全件UPDATEされたりするんだぜ。そんなのは嫌だろ。

ORACLEにODBCドライバ経由で入ってくるACCESS初心者
(ミス多し)なんて皆さんの周りにいません?
0095仕様書無しさんNGNG
>>94
そういう連中は SQL なんて書かないで GUI からポチポチっと削除しちゃうの。
つうかアホ避けってダメな文法の言い訳にならんだろ。
自分に言い聞かせるには良いけど(w
0096仕様書無しさんNGNG
なんだかんだいってもSQLは好き。
0097仕様書無しさんNGNG
>過去レスにもあるが lNSERT 文と UPDATE 文の違いが直交性のなさの現れだ。

insertは集合演算になりえないので元々不可能。sqlの問題でない。
問題は、select(は自由に書ける)とupdateの直交性のなさでは。
009893NGNG
>>94
うむ。目的が違うと言われればそれまでなんだけど、やっぱり釈然としない。
コマンドラインで INSERT 発行直後に後に間違いに気づき、
UPDATE 文にちょちょいと直すことができん。

INSERT .... SELECT .... ってのあるが、これも UPDATE 文にはないよね。
この辺はどう考えても、初期の DB の実装による制限だと感じてしまう。

これも先に出た話題(>>23)だが WHERE と HAVING 句もなんで別のキーワードなのか?
ってのが発言者の主題。
両者の目的や動作の違いでなく、どちらも 条件記述句(?)なのに
なんでキーワードが別(しかも、単語としても対照性がない)なのか?

HAVING というキーワードを導入した設計者のセンスを疑っていまいます。

# SQL は必要です。はい。便利です。判っております。
# 議論は 文法上の直交性 ってことです。はい。
009993=98NGNG
>>97
>insertは集合演算になりえないので元々不可能。sqlの問題でない。
ふむ。 ご指摘ありがとうございます。

# 今日はじめてこのスレ来たけど、為になります。ペコリ
0100非決定性名無しさんNGNG
SQLって、多分数学者が考えたモノだと思う。
(まぁ、アメリカのなんとかいう学者さんが考えたもんなんで、
 調べりゃわかるけど、メンドウだからどうでもいいや)
数学者って、プログラムでも1行でなんでもかんでも記述しよう
として、うんと読みにくくなるよね。
Σ記号とか積分の式とか、学生のころはあれがイヤでしかたなかった。
なんでプログラムのfor文みたいに一行づつ書いてくれないのか、
中間変数を用意したりしてわかりやすくしてくれないのか不思議で
ならなかった。
SQL文も同じノリなんで、あんまり好きではないけど、FETCHは好きだ。

ま、今と違って限られたメモリとディスク容量でリレーショナルDB
を作るためにはSQLより良い方法がなかったんでしょうねぇ。

1行処理してその結果によって次の行の処理を変えるようなSQLも
組めなくはないけど、ひどく難しいよね。
(ま、そこあたりは他の言語でやるのが普通だろうけど)
0101仕様書無しさんNGNG
盛り上がってる所をアレなんですが、「直交性」って何か説明してくれませんか?

『達人プログラマ』に「直交性」という項があって、そこで言われてるのは、
直交性がある(高い)というのは、「独立性が高い」というものです。

・直交性の高いモジュールを作ろう
・UNIXのコマンド群は直交性が高い

などと使うようです。

>>93
>SQL の文法に直交性はないように思う
などという文脈で使われてるのは、上記の意味じゃ無いですよね?

>>94
>直交性が増して似た文法になった時に
「直交性が増す」というのと、「似た文法になる」というのがどういう関連が
あるのか良くわかりません。

もし、「直交性のある文法」とか「直交性のある言語」とかいう使い方を
するのであれば、例えばどういうものなのか教えてくれませんか?
0102仕様書無しさんNGNG
>>101
数学でいうところの「直交」の意味が分かっていない奴には
何をいってもわからんだろ。
0103101NGNG
>>102
『達人プログラマ』では、幾何学の「直交」から「直交性」という言葉が
出来たと書いてました。
幾何学の「直交」は文字通り垂直に交わるものです。y=0とx=0とか。
一方の変化が他方に影響を及ぼさないということです。

>数学でいうところの「直交」
その「直交」はどういう直交ですか?何学?
010421NGNG
俺もまだ判らんのだけど…
http://www.mogami-wire.co.jp/unix/unix-bg.html
↑これの「コマンドの直交性」が近い?

数学で言うところの直交とは内積=0のことです。
102が何を言いたいのかは、まったく不明。
説明もせずにエラぶってるあたり、たぶんバカでしょう。
0105101NGNG
>>104
さんきう。リンク先から引用。

> すべてのコマンドは、分かりやすく、単純で基本的なもので、それぞ
> れ別な働きをします。機能に関して、重複がありません。そして、そ
> れら少数のコマンドの組合せにより、すべての仕事空間、つまり現実
> の問題がカバーできるようにします。

「独立性」ということに加え、対象となる問題を空間に例え、

> 仕事に必要なツールの空間で、直交性を有するコマンド、すなわち座標を見いだす問題

としているのが、『達人プログラマ』とは違うところです。

ちなみに、達人プログラマでは、「直交性のないもの」の説明として、
「ヘリコプタの操縦」があげられていました。

うーん、やっぱりこのスレ言われてる「直交性」が分からないなぁ。
0106仕様書無しさんNGNG
直積というのは数学的には内積=0ということですが、考えとしては
線形独立の方がしっくりくるように思います。
もし、2つのベクトルが線形独立でないとすると一方のベクトルの値が
決定すると、もう片方のベクトルの値も決まってしまいます。
コマンドが直交しているとは、概念的に組み合わせることができる
コマンドがきちんと制限なく組み合わせることができることでしょうね。

SQLでは、SELECT文が返すものはリレーションです。
1行、1列を返すと見た目はスカラー値と変わらないが、
概念的にはリレーションです。
SQLが直交性がないというのは、例えばリレーションが返せる個所に
任意のSELECT文が書けるのか?ということが考えらますが、
これはSQL92でかなり改善されたはずです。
FROM句(だけじゃないですが)にSELECT文が書けるのは普通ですから。
上のほうでWHERE句とHAVING句のことが言われていますが、
もし、変えるとしたら、グループ化した結果のリレーションに対して
WHERE句を指定することになると思います。
あくまでグループ化する前と後ろは区別すべきなのは変わらないです。
しかし、現実には(現場においては?)、HAVINGでまとめて書いた方が
速いので一種の略記法と考えてもいいかも。
実表→絞込み→グループ化→絞込み→検索結果
という流れで、最初の絞込みがWHERE句、後ろの絞込みがHAVING句
ということになります。

更新系SQLについては、どのように直交性とかかわってくるのか
私もよくわかりません。
概念的に更新系SQLはRDBMSの理論になじむのでしょうか?
0107102NGNG
>>104
下手な煽りは放置しててもいいんだけど・・・

まず、「線形空間」の概念を理解しているか?
大丈夫なら、それを「コンピュータが行うべき作業すべて(の空間)」に
写像したものをイメージしてみろ。

これでも、まだわからんのか?
0108101NGNG
>>106
解説どうもです。

>SQLが直交性がないというのは、例えばリレーションが返せる個所に
>任意のSELECT文が書けるのか?

うーん、言いかえると
「リレーションが返せる個所に任意のSELECT文が書けるのは直交性がある」
ということですね。分かったような、分からないような・・・。

あ、それと、Webを見ていて分かったんですけど、
リレーショナルモデルは1970年にIBM研究所のE.F.Codd博士によって発表された
もので、SQLは1974年、IBMのサンノゼの研究所の人々によって開発されたもの
だということです。もともとは、SEQUELという名前だったのですが、この名前が
登録商標で問題になりSQLと改名されたそうです(このスレとはあまり関係ない
けど)。
0109仕様書無しさんNGNG
>>107 バカ再登場
0110101NGNG
>>107
えっと104じゃないんですけど・・・。

>まず、「線形空間」の概念を理解しているか?

ちょっと調べたんですけど「線形代数」の話ですね。

>大丈夫なら、それを「コンピュータが行うべき作業すべて(の空間)」に
>写像したものをイメージしてみろ。

うーん、うーん、それって「SQLは直交性があるかないか」ということと
関係あるのでしょうか?数学的な知識無しには「SQLの直交性」は
議論できないということですか?
0111101NGNG
ちなみにWebでひっかかったのはこんなものでした。

1 線形空間(1) ベクトルの演算
2 線形空間(2) 一次独立性
3 線形空間(3) 線形部分空間
4 線形空間(4) 低次元空間での内積
5 線形空間(5) 高次元空間での内積
6 線形空間(6) 直交化
7 線形空間(7) 体積・面積
8 線形空間(8) 高次元空間での体積

こんなことをやった記憶はあるけど、どうしても「言語の直交性」とは
結びつきません・・・。
0112102NGNG
プログラム言語を設計するって事は
それらの空間に対する座標系を設定するって事と
似ているだろ。
また、個々のプログラムを作成するって事は
その座標系を使って個々の点をあらわすって事と
似ているだろ。

これでどう?
0113仕様書無しさんNGNG
アセンブリの命令セットのデザインで、
「直交性のある/ない命令体系」
という言い方はするな
0114仕様書無しさんNGNG
>>1の言わんとしてることって、単純に「SQLって文法の冗長性が
低くねえか、おい?」ぐらいの意味じゃないの?
「Cは直交性が高いけど、比べてPerlはそれが低い」とか。
言わない?言わないか、そか
0115仕様書無しさんNGNG
偽:低くねえか
真:高くねえか

大した話じゃないから、どっちでもいいけどな
0116仕様書無しさんNGNG
>>1の直交性は、
>>114,115の説明の意味だと思う。

where,havingが別キーワードな点は俺も納得いかん。

実表→絞込み→グループ化→絞込み→検索結果
で、
1回目の絞込み = where
2回目の絞込み = having
って、キーワードが異なるのはおかしくない?

その機能に実用性があるかは疑問だけど、
3回目、4回目...の絞込みが実装された場合、
どういうキーワードにすりゃいいの?
0117仕様書無しさんNGNG
>>113,114,116
が正解だろ。
命令(言語)の直交性は数学の線形うんぬんとは全く関係無い。

単純に命令が対象的とかパラメータが共通な場合、直交性がある/高い などと表現する。逆に同じようなパラメータなのに、命令毎に表現が異なる場合は、直交性がない/低い という。
0118仕様書無しさんNGNG
>>117
初めてまともな「直交性」の定義が出ましたね。
で、疑問。

「117の定義する"直交性"の無いものは悪なのか?」

>>116
>1回目の絞込み = where
>2回目の絞込み = having
>って、キーワードが異なるのはおかしくない?

何故に、おかしいと感じるんでしょう。
SELECT a, count(*)
FROM table
WHERE a > 10
AND count(*) > 3
と書けなければ「おかしい」ということですか?
0119仕様書無しさんNGNG
はぁ?
なんで集合演算のcount(*) と 項目 a が同列に書けるわけ?
素人丸出しだから読んでるだけにしな。

InsetrとUpdate
0120仕様書無しさんNGNG
↑途中で押してしまった。

集合と各レコードの違いを理解してない>>100みたいのが多いようですが

>1行処理してその結果によって次の行の処理を変えるようなSQLも
>組めなくはないけど、ひどく難しいよね。

みたいな「次のレコード」という記述からして、数学全然だめだったんだね

0121118NGNG
>>119
>なんで集合演算のcount(*) と 項目 a が同列に書けるわけ?

誰も同列に書けるなんて書いてませんけど。

>みたいな「次のレコード」という記述からして、数学全然だめだったんだね

あなたの発言って、微妙に痛いんですケド。
黙っててくれます?
0122仕様書無しさんNGNG
ほおおおう?
0123仕様書無しさんNGNG
>>118 = >>100
0124118NGNG
119=120=122=123なんでしょうね。

「集合と各レコード」なんて書くあたりに厨房臭さが滲み出ていて泣かせるね。
どうせ、先週学校で「データベース概論」でも受けて、わかった気になったんだろうね。

わかんないなら、無理に発言しなくていいからさ、黙ってなよ。
0125118NGNG
Updateが気に食わないとか、HAVINGがおかしいとか言う奴は、
まともだと思う、あるいは、直交性のあるBNFでも書いてさらしてみたら?

餓鬼じゃないんだから、「駄目だ駄目だ」じゃ議論は進まないよ。
0126仕様書無しさんNGNG
>>124 あたりまえだ馬鹿

>>118

ま〜だHavingがおかしいとか世迷言いってんのか?
おまえはFETCHで足し算ループでもやっとけ

おまえが糞の役にもたたんSQL例文載せるからだ。
0127118NGNG
>>126

あのさ、>>118>>116に対するコメントなんだけど解ってる?

>おまえはFETCHで足し算ループでもやっとけ

一体何のことだか。何かのトラウマ?

>おまえが糞の役にもたたんSQL例文載せるからだ。

>>118のSQLモドキはもちろん文法的にもおかしくて、何の役にも立たないけど、
>>125で書いてるみたいに、「おかしい」とか「気に食わない」とか言うのだったら、
>>118のように例を揚げて主張しろってことなんだけど、それもわからんのか。
0128仕様書無しさんNGNG
>>118
キティはほっとけ。
0129仕様書無しさんNGNG
「直交性」の意味をわかっている…と思って書き込んでいるヤツは
まずそれがどんなものか簡潔に説明してくれ。
他人に説明も出来ないようでは「わかっていない」よ。それ。
0130102NGNG
>>117
>単純に命令が対象的とかパラメータが共通な場合、直交性がある/高い などと表現する。

君は、

「なぜ、そのような場合に対して"直交性がある"という表現をするのか?」

って事について、今まで一度も考えた事が無いの?
幸せな人だね。

>>118
>初めてまともな「直交性」の定義が出ましたね。

これは"定義"などではなく"隠喩"だろ。
こんな事だから、分からん奴には絶対分からんというのだよ。

>>129

>>102は分かっていないバカ」って解釈してもらっても結構だよ。
バカ呼ばわりされてまで懇切丁寧に説明する義理はない。
0131仕様書無しさんNGNG
>>129
というか「直交性」という言葉を使わずに議論して欲しいよね。
みんな微妙に違う意味で「直交性」を使ってるみたいだし。
>>118の言うように、自分が理想とするものをSQLでもBNFでもいいから、
まず示して欲しいね。
0132仕様書無しさんNGNG
>>130
>>>118
>>初めてまともな「直交性」の定義が出ましたね。
>
>これは"定義"などではなく"隠喩"だろ。
>こんな事だから、分からん奴には絶対分からんというのだよ。

じゃさ、100字程度で「直交性」を定義してみなよ。
>分からん奴には絶対分からん
じゃなくて、あなたが「説明できない」だけなんでしょ。

御託はいいから、早く「定義」してくれよ。
君の「定義」で、以降議論するから。
0133102NGNG
ほっとこうと思ったけど、この文を読み返してちょっと気が変わった。

>じゃさ、100字程度で「直交性」を定義してみなよ。

私が何を言ったのか>>132は「ぜんぜん分かっていない」と言う事に
気づいたから。(また、これについては多少私にも責任があるから)

>これは"定義"などではなく"隠喩"だろ。

上の文でいう「これ」っていうのは、

>初めてまともな「直交性」の定義が出ましたね。

を指しているのではなくて、

>なんであんな不自然で直交性のないものが

といった場合に使われる「直交性」という言葉を指しているんだよ。
0134102NGNG
つまり、コンピュータの世界で言う「直交性」とは隠喩的表現だってこと。
0135仕様書無しさんNGNG
>>102
「隠喩だから」何がどうなのか説明求む。
0136仕様書無しさんNGNG
いんゆ 【隠喩】
言葉の上では、たとえの形式をとらない比喩。
「…の如し」「…のようだ」などの語を用いていない比喩。
「雪の肌」「ばらの微笑」の類。メタファー。暗喩。

どうやら俺には君のすてきなポエムを理解できないらしい…
板違いだろう。
こっち行け >>1
http://mentai.2ch.net/poem/index2.html
0137仕様書無しさんNGNG
>>135
ポエマーに説明を求めるのは野暮というものです。
我々俗人は、俗な世界で我慢しておきましょう ┐(´ー`)┌
0138仕様書無しさんNGNG
今の話題と全く関係なく、申し訳ないんですが、
東工大卒だが英語が苦手な私の同僚はSQLが大嫌いです。
文系で英語ペラペラの上司はSQL大好きです。

ちなみにSQLは好きでも嫌いでもありません。私は。

1>>
が書いた「直交性」という言葉の意味はもうこの際どーでも
いいのでは。
ただ、私の同僚の言葉に耳を傾けると、SQLが「まとも」な
「言語」といえるかどうかは少し疑問です。

某大手シンクタンクに協力会社として一緒に仕事している
協力会社のプログラマーより
0139仕様書無しさんNGNG
>>138
痛いなー。
「東工大だが…同僚」「英語ペラペラの…上司」「某大手シンクタンクの協力会社のプログラマー」
で、論旨はぜんぜん関連がないと思うのだが

これって「直交性」の実例ですか
0140仕様書無しさんNGNG
>>138
要約すると
・私はSQLが「まとも」な「言語」といえるかどうかは少し疑問です。
> 今の話題と全く関係なく、申し訳ないんですが、
うん、申し訳ないと思ったら2度と発言しないでね。
# 堕レスはお腹一杯なので
0141仕様書無しさんNGNG
直接交わる性?ハアハア
0142仕様書無しさんNGNG

ヤッチャッタネ・・・
0143仕様書無しさんNGNG
SQLはそれほど詳しくなくてすみません。
CPUで直交性といったら、演算と演算対象の、二次元(演算xレジスタ)
あるいは三次元(演算xレジスタxビット長)のマトリックスがあり、
マトリクス上の全てのセルを埋める命令が存在するということですよね。

CPUの場合マトリクスは命令xレジスタだけど、
SQLの場合、直交性が求められる対象は何を想定しているのか、教え
ていただければ幸いです。
>ここで直交性について語っている方
0144仕様書無しさんNGNG
って117さんで直交性の対象の解釈は出ているのか。厨房でスマソ。
しかし、直交性に劣ると具体例で出ているのはhaving程度で、
それだけでSQLが劣ると語っているの?
insertとupdateの件は解答が出ているし。
0145仕様書無しさんNGNG
例えば <左辺式> <op> <右辺式> とあって
<左辺式> や <右辺式> の中で使える <関数> とか <述語> とかがある訳だけど
この「使える<関数>や<述語>」が <op> によって全然違う…
っていう意味か?
任意の<関数>や<述語>が、任意の <op> に使えれば
「直交性が高い」と言うのかにゃ?
0146仕様書無しさんNGNG
>>138は真意をついてると思う
SQLが嫌いな人は、みな理系か?
0147仕様書無しさんNGNG
>>146
「自論に都合の悪いことを言う人間は理系」というのは文系の典型だな
それで何か完結したような気になるのもな。

「直交性」に対しての議論は確かに理系っぽい話だが、
それがどーした。

理系 vs 文系 スレではないので、 sage
0148仕様書無しさんNGNG
「直交性」という言葉の使い方は、数学の基底ベクトルから
きていると思えます。
基底ベクトルはn次元線形空間を張るのに必要十分なベクトルの
集合です。
ですから、あるコマンド群が直交しているとは、そのコマンド群を
組み合わせることによって、処理系で期待される操作全体が
ちょうど過不足なく表現できることだと思います。
上記のSQLにおけるWHEREとHAVINGのことは、WHEREが
あればHAVINGは要らないのではないの?という意味で直交性が
かける(つまり冗長)と言いたいのですよね?
しかし、C.J.DATEなども言っているのですが、直交性を持つ
データ操作言語が必ずしも使いやすいとは限らないです。
私はHAVINGについては、このような実用的な観点から特に
問題にするようなものでもないと思っています。
それ以外は、SQLはそう直交性に欠ける言語ではないと思います。
つまりリレーショナルモデルで期待されるデータ操作は(たぶん)
過不足なく表現できるものだと・・・。

上のほうにも似た意見があるので、繰り返しになってすみませんが。
0149仕様書無しさんNGNG
ごめん、C.J.Dateって、だれ?
0150仕様書無しさんNGNG
>>149
データベースの偉いヒト。データベースのバイブルとも言える書籍

An Introduction to database systems

の著者。
0151仕様書無しさんNGNG
>>143
> CPUの場合マトリクスは命令xレジスタだけど、

普通addressing modeも、一つの次元だわな。
これが直行しているCPUは極めて少ないけど。

しかし、102は不憫だな。何も間違ってないのに。
0152仕様書無しさんNGNG
>>151
例え正しいことのみを言ったとしても、受け入れられない場合がある。
102のような、なにやら特権意識をふりかざした、他人を見下すような奴は
これにあたるね。
0153仕様書無しさんNGNG
「直交性」スレだぜヨロシクッ!
01541NGNG
なんか「直交性」なんて言葉使わなきゃよかった。
0155102NGNG
結局、「直交性の"定義"」って奴は決まったの?(w
0156仕様書無しさんNGNG
>>155
機械語の命令セットの直交性の話を、
高水準言語に当てはめてみたんでしょ
0157仕様書無しさんNGNG
http://www.google.com/search?q=%96%BD%97%DF%81%40%92%BC%8C%F0%90%AB&hl=ja&lr=lang_ja

ほい。これが昔から使われてる「命令の直交性」のオハナシ達
0158仕様書無しさんNGNG
まぁ、遊び半分で反論、
DBに数学てそんなに関係あるのか?
コンピューターは大まかにわけて、データー、演算、出力の
3つにわけることがでる、
そして数学的な要素は「演算」の部分だろう。
技術的にはDBはDBとしてそんざいするわけだし、
まぁRAMばかりいじってROMをいじったことが無い人には
あんまりDBは関係ないだろうけど。
けど、俺もそこらのレベルはできないんだけどな。
0159仕様書無しさんNGNG
>>158

何に対する反論なんだ?
0160仕様書無しさんNGNG
RAMばかりいじってROMをいじったことが無い人
ってのもなんだかよくわからんね
0161仕様書無しさんNGNG
氷魚っぽい
0162仕様書無しさんNGNG
>>161
氷魚にしては、日本語がまともすぎだと思われ。内容は比較できる
程度に壊れてるが。
0163仕様書無しさんNGNG
>>102はコンピュータの世界で耳にした「直交性」という
言葉を、自分が知っていた数学の直交基底云々から
想像力を働かせることで、独自にその意味を発見して
吹聴したと。
こんな言葉が大昔から定義され、使われ続けていることも
知らずに。てとこか(藁
0164仕様書無しさんNGNG
>>158
「関係データベースの正規化」ってわかる?
0165仕様書無しさんNGNG
DBができなくてもアクセス使えばいいんだよ。
アクセスでできないことは、DBの会社に「頼む!」
で終わり。
0166仕様書無しさんNGNG
>>165
「AccessなどDBとは呼べないシロモノ」という皮肉なのか
DBが何かをよく解ってないのか...

ほぼ確実なのは >>158=>>165ということだけ、か
0167非決定性名無しさんNGNG
SQLってスキュルって呼ぶの?某第一種通信事業者(N●T東日本)勤務の人がいってたんだけど。
0168仕様書無しさんNGNG
クライアント側からみれば何を使おうと、
きちんとやってくれればそれで良いという事。
0169仕様書無しさんNGNG
だからその「昔から使われてる「命令の直交性」」を説明してくれって
何度も書いてるじゃん。
ここまで引っ張られると、説明できないの?と思うぞ。
0170仕様書無しさんNGNG
SQLまできちんと理解してコード書ける人はすくないだろう。
そら、できる人はとてつもなくできるけど、
それに、今?は、小さくてもきちんとしたアプリ書ける人が
不足してるのに。
VBなんかできなくても良い、オフィスが使えたらそれでいいんだ!
と言う会社も多いということを知っておいた方が良いよ。
まぁ、!IT会社ではやたら高度なことを言うけど、オフィス使える人
意外と少なくて困る!と言う人もいるし。
そこそこできる人は、オフィス、VBそんなもんやってられるか!
と言うしな。
まぁ、メインシステムで完成度の高いのを造れる人なら別だけど。
0171仕様書無しさんNGNG
>>169は学校を卒業したらそういう態度を改めたほうが
よいと思われ。ないとは思うが、ソフト会社なんか入ったら
一番血祭りにあげられるタイプ→URLまで示されているのに
教えて教えてを連発する新人クン
0172仕様書無しさんNGNG
ふ〜、まっいっか。
俺は、「命令の直行性」なんか知らないよ。
知らなくても、俺はやっていける。
知る必要があれば勉強して覚える、それだけのこと
0173仕様書無しさんNGNG
>>171
外に出ていかなくてもこのスレの(藁>>143あたりに
説明されているが
これが理解できないor発見できないとしたら...
0174仕様書無しさんNGNG
>>167
たぶんそいつは DQN と書いてドキュンと読む2ちゃんねらーでせう。
0175仕様書無しさんNGNG
>>171
説明できない悔しさと苛立ちを、相手を煽ることによってしか昇華できないんだね(藁
0176仕様書無しさんNGNG
>>174
英語圏ではシーケルと発音する、と読んだような気が。
その類じゃないかな。
日本人はエス・キュー・エル
0177仕様書無しさんNGNG
>>175
技術のことを言ってるんじゃないんだよ。
どんな簡単な仕事でも採って来て、そこからユーザーとの
関係を繋げろ!ていってるんだと。
0178仕様書無しさんNGNG
>>173
>>143あたりで説明されている?「命令の直交性」と、このスレで今まで
言われてきた「直交性」は明らかに違うでしょ。
0179仕様書無しさんNGNG
>>178
それは命令の直交性という世にすでにある概念を
知らなかった人たちがいろいろと独自の解釈を
披露したために違ってしまったと思われ。
0180仕様書無しさんNGNG
>>179
独自の解釈では無い意味を書いてた人もいるでしょ。
『達人プログラマー』の直交性の話とか、UNIXのコマンド群の直交性の話とか。
それと「命令セットの直交性」を加えたとしても、まだこのスレで言われた「直交性」
は網羅できてないと思うんだよね。

だから、説明しろ、って言ってる。
解らない言葉を聞くのは怠惰でもなんでもないよ。むしろ曖昧なまま話を進めようと
する方が問題ありだと思うけど。
0181仕様書無しさんNGNG
>>180
> むしろ曖昧なまま話を進めようとする方が問題ありだと思うけど。
この話、まだ先に進めるつもりなの? もう終わってると思うんだが。
0182仕様書無しさんNGNG
102は続けたいみたいだよ。
俺はどうでもいいけど。
でも、「直交性も知らんの?」とか「君たちには理解できないだろう」みたいな
ことを言う奴はむかつくね。
0183仕様書無しさんNGNG
>>148
の説明でダメなのか? 数学のように最小限の言葉で定義しないとダメか?

本当に「直交性」が理解できない人は、例えば
- テーブル名には日本語を使えるが、項目名は日本語を使えない。
- テーブルは「SELECT * FROM テーブル名 WHERE 条件」と書けるが、
  ビューだと「SELECT * FROM テーブル名 WHEREVIEW 条件」と書かないといけない。
- 複数の条件を指定するときは「WHERE a='A' AND b='B'」などと AND を使うが、
  LIKE 演算子のときだけは「WHERE a LIKE 'A%' ANDLIKE b LIKE 'B%'」と
  ANDLIKEとしなければいけない。
という似非 SQL 言語があるとしよう。こういうのを「直交性がない」と
表現すると思うが、どうよ?
0184仕様書無しさんNGNG
>>183
全然違うと思うよ。
それにこのスレでいままで出てきたのは、「現状のSQLは直交性が無いので駄目」という主張。
直交性の無いSQLの話じゃない。
0185184NGNG
>>183
ああ、ごめん。言いたいことわかった。

でもそれを「直交性がない」と言うなら、現状のSQLは直交性があるということだよね?

だとすると、このスレで「直交性が無い」と言ってたのは一体何?ということに
なるんだけど・・・。
0186183NGNG
>>185
直交性って、ある/なしで表現できるもんじゃないでしょう?
 「似非 SQL は SQL に比べて直交性がない」
 「SQL は X に比べて直交性がない」
X というのは今のこの世では使えないけど、DB を
操作できる便利な言語。それが本当に存在するのか、
あるいは使いやすいかどうかは想像でしか語れないけれど。
0187仕様書無しさんNGNG
SQLの問題点ってSQL文自体が言語とフィットしないことだと思う。
例えば、JavaでSQLをコールするときもSELECT、UPDATE、INSERT、DELETEで別々のBeanを作る必要があり、うまくきれいに一つのモジュールにできない。
SQLって糞だと思う瞬間。なんで、こんな前近代的なものがいまだに残っているの?
0188仕様書無しさんNGNG
「SQLって糞だと思う瞬間」を無くそう>187
お前のスキルが向上しないぜ。
0189184NGNG
>>184
> 直交性って、ある/なしで表現できるもんじゃないでしょう?
うーん、何を言いたいのかわかりません。ある、なしでないとすると何でしょう?

俺はただ、このスレで「SQLは直交性がない」といってる人が、その直交性の意味を
明らかにして、SQLどこが直交性がないのか明らかにし、また出来るなら理想の
カタチを語って欲しいだけなんだけど。
0190184NGNG
上は>>186へのコメントの間違い。
0191184NGNG
>>187
それって永続化処理には付き物なのでは?

>別々のBeanを作る必要がある

別々にしようとするから、別々に作ることになるんじゃないのかなぁ?
0192仕様書無しさんNGNG
「直交性」の意味はよくわからんが、
とにかく、>>1が言ってる「SQLの素晴らしさ 」を誰か
教えてくれ!
0193仕様書無しさんNGNG
とりたてて素晴らしいとも思わないが、駄目とも思わない。
だから、「駄目だ」という人が、どこを駄目だと言ってるのか知りたい。
今まで出てきたのは、WHEREとHAVINGくらいでしょ。
0194仕様書無しさんNGNG
結局、SQLマンセーな人はいないってことでいいの?
0195仕様書無しさんNGNG
自前でそこそこセキュアなDBをつくるのが面倒だから
適当なSQLサーバをつかうんでしょ。それだけだよ。
0196仕様書無しさんNGNG
>>189
>> 直交性って、ある/なしで表現できるもんじゃないでしょう?
> うーん、何を言いたいのかわかりません。ある、なしでないとすると何でしょう?

なんでわかってもらえないかがわからないのだけれど、世の中の言語は「美しい言語」
「美しくない言語」という二元論では分類できないでしょ。「最高に美しいのが 100
としたら、これこれの美しさは 20 くらい」てな感じにならない? 「言語が直交性を
持つかどうか」も同じだと思うよ。

# 数学的な直交は、直交か否かで分類できるけど。

> その直交性の意味を明らかにして
した (つもり)。もっと辞書のように簡潔に定義しろ、と言われたら俺にはできない。

> SQLどこが直交性がないのか明らかにし
それが having とか update だと思うんだけど、ダメ?

> また出来るなら理想のカタチを語って欲しいだけなんだけど。
これは難しいねぇ。それが簡単にポッと出せるほどの
才能があるなら、2ch にいない…。

>>193
> 今まで出てきたのは、WHEREとHAVINGくらいでしょ。
元々 SQL 自体がキーワード少ないから、そんなたくさんは出ないよ。

>>195
> 前でそこそこセキュアなDBをつくるのが面倒だから
> 適当なSQLサーバをつかうんでしょ。それだけだよ。
問合わせ言語としての SQL は直交性があるか、って話をしてるんだってば。
DB サーバがどうこうとかは関係ないの。
# XML からデータを検索するのに SQL を使ってもいいでしょ?
0197仕様書無しさんNGNG
>>196
直行性があるかないかの話だったのか・・・?
大手を振って歩いているのは何故だ、という
話かと思ってた。すまんね。
直行性があろうと無かろうと関係ないじゃん
とか俺的に思ってた。すまんね。
0198仕様書無しさんNGNG
開発目的以外で素人がSQLなんて叩くのか?
そんなシステム作ったらすぐにクレームがくる。
どうせかぶせもの作るんだから中身なんてたいした問題じゃなかろうに。
あほらし。
0199仕様書無しさんNGNG
>>196
直交性がある/なしに関しては、
>>183
> こういうのを「直交性がない」と表現すると思うが
>>186
> 直交性って、ある/なしで表現できるもんじゃないでしょう?
と来たので、どういうこっちゃ?となっただけです。

HAVINGもUPDATEも、どこが不満なのかがよく解りません。
例えば>>118にあるように、

SELECT a, count(*)
FROM table
WHERE a > 10
AND count(*) > 3
と書けなきゃ駄目だとか、

SELECT
(SELECT a, count(*)
FROM table
WHERE a > 10)
AS (a, cnt)
WHERE cnt > 3
と書けなきゃ駄目だとか、
そういう理想とまではいかなくても、何らかの例を挙げてくれれば
解りやすいんですけど・・・。
0200183NGNG
>>197
> 大手を振って歩いているのは何故だ、という話かと思ってた。

そういうことなら、現時点で最も簡単に DB を操作できるのが
SQL 言語だから、ということでその点は異論はないです。

>>199
> と来たので、どういうこっちゃ?となっただけです。

それはスマソ。書き方が悪かった。

>>199
> そういう理想とまではいかなくても、何らかの例を挙げてくれれば
> 解りやすいんですけど・・・。 わかったよー。例を考えておくよ…。ちと時間をおくれ。
0201仕様書無しさんNGNG
話はちょっとずれるけど、
リレーショナルデータベースとそれを
操作するSQLってのがOOPには馴染みにくいって
感じない?
0202仕様書無しさんNGNG
まぁそうだけど、だから oo4o や ADO なんかがあるんだろうね。
0203仕様書無しさんNGNG
>>201
OOP に限らず、プログラミング言語の制御やデータの構文と馴染まない
(同じようなことをやってるのに SQL を使って書かないといけない)のが、
ちょっとね。

その点、ADO の Recordset とかは良い線行ってると思うよ。
0204VineマンセーNGNG
>>201
リレーショナルだろうが単なる2次元データベースだから、現実世界を表現する
ために必要なビュー(n次元)を表現するためにべらぼうに長いSQLを書かなきゃいかんし。
店別&週別&取引先別・・のグループ化がウザイ。
オブジェクト型データを高速に処理できるDBエンジンってやっぱSQLなのか?
0205201NGNG
>その点、ADO の Recordset とかは良い線行ってると思うよ。

オレもRecordsetはプログラムを書く上で使いやすいと
思う。
だけど全部Recordsetで書けばいいやと思っていたら
Recordsetでごりごりデータを更新するコードを書くよりも
UPDATE文1発のほうがはるかに速かったりするからなあ。

昔、informix-esqlなんて、C言語でSQLを使える
トランスレータを使ってたときから、DBを操作するのに
なんでsprintfなんかで文字列操作のコード書かなきゃ
いけないんだ?って疑問をもってた。

かといってObjectStoreみたいなのも、なんだか嫌だしなあ。
0206DBスペシャリストの立場でNGNG
whereは表(あるいは複数の表の積)に対して射影演算をかける、
havingはgroup byによる集約演算結果に対して射影演算をかける、

と内部動作が違うのでSQL文解析の都合上キーワードを分けたのでは?
0207仕様書無しさんNGNG
>>204
Viewは架空の表てだけで、実存の表と同じく2次元ナンジャナイノ?
0208仕様書無しさんNGNG
SQLが現在広く使われているその理由は、それが別段素晴らしい言語だから
というわけではないよ。>>1だってそれくらい、ホントは分かるだろう?
分かってて他人に言わせるのは、それは怠惰であり甘えだぞ。

SQLがDMLとして使用に耐えないクソったれであると思うならば
ある程度時間をかけても良いから、それに変わるモノを提案しろ。
それがホントに素晴らしく他を差し置いてでも使う価値のあるものであれば、
例え時間がかかってでもそれはSQLを駆逐していくだろう。
そうでないのなら、つべこべ言わず今普及しているものを使え。
少しは歴史を見ろ。
0209仕様書無しさんNGNG
場をしらけさせる文章>>208
提案前の問題点洗い出しだろ。208も素晴らしくない=問題有りと認めてるし。
歴史は知ってるが関係無いだろオオボケ。
2ちゃんの提案なんか意味無いって言うなよ。そういうなら出てけ。
0210仕様書無しさんNGNG
ビュー使わないでだめだめなコード手書きしてる先輩にここ見せてあげたい。プ
0211仕様書無しさんNGNG
>>210
おれSUN上で手書きのPro*Cしか経験ないんだけど、
ビューって、View表以外の別の何かもあるの?
GUIで作ったりする?
0212仕様書無しさんNGNG
SQLも変だけど
阿Q正伝も変ですYO!
阿Qって・・・
0213仕様書無しさんNGNG
「阿Q」の「阿」は日本語で言えば「〜ちゃん」というような親愛感を表す語に当たるが、「Q」の方は
魯迅によって曖昧にされている。辮髪の象形であるとか、文字を知らない阿Qが処刑に際して残した署名(あの書き損じの「〇」)かとも考えられる。それを本
書では、「Quei(クェイ)」すなわち「鬼」の中国語音の略であると解釈する 。
中国の「鬼(キ)」は日本のあの「おに」ではない。「亡霊」、「お化け」の意味である。とすると、魯迅は阿Qという亡霊の伝記を『阿Q正伝』というかたちで記したことが分かる。
0214仕様書無しさんNGNG
>>213
つまり、「おばけのQちゃん」という解釈でよろしいか。
0215仕様書無しさんNGNG
怒Q正伝
■ このスレッドは過去ログ倉庫に格納されています