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

SQLって変だよね?

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

って思う。
SQLを擁護したい人反論して、SQLの素晴らしさ
をオレを得心させられる?
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正伝
■ このスレッドは過去ログ倉庫に格納されています