著作一覧 |
サヌールさんのDomain LogicとSQLに新しいリンクが増えている。
とても(僕には)わかりやすい注釈になっていると思う。勉強になった。
で、思い出したのだが、RDBMSの中にロジックを入れる(OracleだとJava。SQL*Serverだと.NET。どちらもVMがRDBMSの中に入っていてプログラムを入れられるようになっている)のと、プログラムの中にSQLを入れる(さすがにPro*Cとかは別として、次の.NETでMSがやろうとしているやつのこと)のと何が違うか、についてちょっぴり考えてみる。
表面的には入れ替えはどっちが大変だ、とかテストはどっちが大変だ、とか(もちろん、どっちも答えはVMがRDBMSの中に入っているほうだ)。
内部的には、プログラミングの質(高品質とかの質じゃないのだけど)。
SQLは状態を持たない(よね? 自信が持てないのはSQLが得意とは到底言えないからだ)。
状態を持つプログラムの中に状態を持たないものを入れるのか、それとも状態を持たないプログラムの中に状態を持たないものを入れるのか。というか、状態を入れるためのRDBMSかも。
というあたりから、やっぱり関数型プログラミングって方向になるのかな、とか考えてみたり。
なんか、全然外しているかもしれないかもしれないけど。
みっともないみっともないにとをおうものいっとをもえない
みっともないみっともないせいじかじいさんばかりでおうべいにくらべてみっともない
みっともないみっともないばんせいいっけいのこうていへいかがいてべいこくにくらべてみっともない
みっともないみっともないよっぱらいがおおくておうべいにくらべてみっともない
みっともないみっともないよきんりつがおうべいにくらべてたかくてみっともない、よいごしのかねなんかもたないのがこらいそうていのry
みっともないみっともないへいきんじゅみょうがおうべいにくらべてたかくてみっともないなんていわれないといいね
みっともないみっともないしゃかいほしょうがおうしゅうにくらべてひくくてみっともない
何が欧米だ。
ジェズイットを見習え |
リンクありがとうございました.<br><br>SQLは内部状態を持ちません.つまり前回のSQL実行結果は次のSQL実行結果に影響を及ぼしません.(当然ですがUpdate等は除きます)<br>さらにいえば,結果として示されているリレーションについて前の行と次の行に対するアクセスもできません.つまり,ある列について前の行と同じ値であれば出力しない,などということは(SQLだけでは)できません.<br>あと,有名な制限として再帰的な処理ができないというのがありました.しかしSQL99では可能になっていますし,Oracleでは昔から独自にサポートしています.
こんにちは。<br>ご教示ありがとうございます。再帰処理はできる処理系もある(普通/これまではできない)というのはおもしろいです。関数型プログラミング言語だと再帰処理は自明の前提のように見えるから、状態を利用できない言語には必須な機能なのかと思っていたけどそうとも言えないということですね。