【ノウ】DBアプリ開発ノウハウ【ハウ】
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001デフォルトの名無しさん
NGNG・似たようなSQLがあっちこっちのプログラムで出て来るんだけど…
・Viewとかストアドとか、みんながポンポン作っちゃって収拾付かないよ〜。
・分かりやすく長すぎないテーブル項目名のつけかたは?
・見やすい帳票レイアウトって? 入力しやすい画面遷移って?
などなど、悩むところはみんな一緒。
DBアプリ開発のノウハウを語るスレッドです。
0002(^-^*
NGNG0003デフォルトの名無しさん
NGNG俺も、今からまさにDB連携作成に入るところ
0004デフォルトの名無しさん
NGNG>Viewとかストアドとか、みんながポンポン作っちゃって
ってのは、開発上の取り決めが無いのが問題なだけだと思われ。
0005デフォルトの名無しさん
NGNG「SQLをコード内に埋め込むと汚くなってしまう」の
実例をお願いします。いままで、Pro*CやVBで、DBを
使用したアプリケーションを開発してきたが、この例に
ぶち当たった経験がないものですから。
汚いテーブル設計はいやというほど目の当たりにしてきたが。
0006デフォルトの名無しさん
NGNGWebObjectsをやってみるとわかるかも
0007
NGNG0008デフォルトの名無しさん
NGNGhttp://doomo.org/cgi-bin/bbs1/za.cgi
0009デフォルトの名無しさん
NGNG全てがストアドプロシジャとして実装できればハッピーですが、
実際にはダイナミックにSQL文字列を作成しなければならない場合も
あったりして。
個人的には複雑な検索条件でWhere節(区)なんぞを動的生成したりする
事が多いですが、みなさんはどうしてます?
00105
NGNGもちろん、プログラムから動的にSQLを
生成するのが基本。select句にしても、
select 以降、すべて条件によって
変化する。
ストアドプロシージャを使う局面は
ごく限られる。
...と思っていたが、それって、醜い
のか?(汗)
0011デフォルトの名無しさん
NGNG0012デフォルトの名無しさん
NGNG基本的にはそれを使ってもいいと思うけど、
クエリーが少ない場合はベタの方がいいかも。
0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNG列名に型を表すprefixつけるとやり易い
って、基本か(w
0015データベース男
NGNGアクセルするにはODBCとかでやってるんですか?
0016デフォルトの名無しさん
NGNG0018デフォルトの名無しさん
NGNGやっている人はいないのかな?
0019デフォルトの名無しさん
NGNG普通はやらないと思われ。
というか、そういうレベルの話をするスレなのか?
0020デフォルトの名無しさん
NGNGストアド化する、って手法は普通でしょうか?
0021デフォルトの名無しさん
NGNGなんでもかんでもってのはやりすぎかも、でも多言語での開発を行う場合、例えば
入出力系はVB、DelphiなどのWindowsクライアントで、照会系はJava、PHPなどで
Webブラウザを使用ということになると、DB操作の一元化って事で、なんでもストアド
ってアプローチもいいんじゃないかな。
でも、その辺を突き詰めると、きちんとMVCに分けてAppServerを立てるって話に
なっちゃうね。
002220
NGNG多言語での開発ってのを考慮すると確かに有効ですね。
参考になります。
0023デフォルトの名無しさん
NGNGGUIレベルの機能として必要なところには使ってるな。
一覧から選択する画面のフィルタとかね。
0024デフォルトの名無しさん
NGNGいまのところ
・とりあえず英語表記
・テーブル名はカテゴリに合わせてプリフィクスを付ける(台帳:ADM、マスター:Mとか)
くらいでやってるけど、実際どーなんでせうか。
英語表記を使うとSQLの予約語とかぶる罠
0025デフォルトの名無しさん
NGNG英語で名前をつけると、1テーブルのフィールド数が500とかなるとキツイ。
500個すべて英語にするのも、辞書引いてもわからないのも多い。
仮にローマ字表記でも、500はちょっと.・・・。
そういう場合、24はどうしてるんだ?
0026デフォルトの名無しさん
NGNG1テーブルに500フィールドって一体…
0027デフォルトの名無しさん
NGNG002825
NGNGしたいのはやまやま。
しかし、人事データでの場合単なるデータの羅列で、それくらいの情報はある。
また、レガシーなシステムを捨てられない辛さもある。
002924
NGNGSヨが
「Accessだと256?以上フィールド増やせないからOracleにしる!」
とかいってOracleになりましたが、なにか?
正規化すればせいぜい1テーブル50フィールドくらいにしかならないがなー。
0030デフォルトの名無しさん
NGNG0031デフォルトの名無しさん
NGNG立場的につらいなぁ。過去のがからむと。
俺も人事やったことあるけど、やっぱり項目数が多かった。
しかも正規化できないやつ。
それより、論点ずれてきてるから戻さない?
テーブル、フィールド名の名前の付け方に。
項目数が多いのも考慮に入れて。
003231
NGNG0033デフォルトの名無しさん
NGNGやるんじゃなかった(T_T)
0034デフォルトの名無しさん
NGNG0035デフォルトの名無しさん
NGNGjavaとかでありがちなfirstNameとかとあわせづらい。
FIRST_NAMEとか、first_nameってつけた方が良い?
0036デフォルトの名無しさん
NGNGJavaなんかつかってるからだ。
003725
NGNG0038デフォルトの名無しさん
NGNG1か(w
0040デフォルトの名無しさん
NGNGつらいよねー。
結果、英語表記だとアンダーバー多用してしまうし・・・
0041デフォルトの名無しさん
NGNG使わずに、大文字小文字混合みたい。
FirstNameやfirstNameとか。
0042デフォルトの名無しさん
NGNG自分はとりあえずここで調べてるけど
ニュアンスあってるのか不安
ttp://member.nifty.ne.jp/eijiro/
0043デフォルトの名無しさん
NGNGADOのFilter使ったほうがトラフィック&速度的に
良さそうなんだけど、そういう目的では使わないの?
0044デフォルトの名無しさん
NGNG漏れはExcite
ttp://eiwa.excite.co.jp/
で、大文字小文字がないせいか、下手に省略するとわけわかんなくなる傾向が。
だいたい何文字くらいまでが適正なんだろ?
0045デフォルトの名無しさん
NGNG製造会社:Manufacturer
製造番号:Manufacturer_Serial_Number
-> Manu_No
とかってなんかいい書き方ない?
と書いてる最中にmakerにしたほうがいいのに気づく罠
0046デフォルトの名無しさん
NGNG列名に型を表すprefixつける
って基本なのか?
みんなそうなの?
違うと言ってくれ。
0047デフォルトの名無しさん
NGNG型が変わったときのことを考えると背筋が寒くなるのでやらない。
やったとしても、文字か数値か日付かってぐらい?
0048デフォルトの名無しさん
NGNGそうだよね。あるある。
結局英語ネイティブから見れば、こちらが苦労して辞書引きながら
やっても、おかしく見える場合って結構あると思う。
よって自分の場合はあきらめて、ローマ字表記で書いてる。
0049デフォルトの名無しさん
NGNG潔くTM0010,TM0020,TM0030...
005018
NGNGメモリ馬鹿食いするんで、多数のセッションをはるWEBアプリなんか
で使うと大変なことになります。
つーか、場にそぐわない話しなんでやめます。
>>48
ローマ時表記は個人的には嫌い。
「し」とか「おー」とかを表記するときに2通りあるんで結構困る。
0051デフォルトの名無しさん
NGNG>>48
ローマ字は英語表記のできない専門用語とかにしか使わないなー。
理由は>>50の通り。
つか、「日本語ふつーにつかうよ」つー人がでてこないのが珍しい。
>>49
メモリマップ見てる気分になってくるからイヤソ
0052デフォルトの名無しさん
NGNGわかりやすいし、見やすいし、コーヂングも仕様書作りも、すげー便利。
問題あると言う人もいるけど最近はもう大丈夫でしょう。
0053デフォルトの名無しさん
NGNG0054デフォルトの名無しさん
NGNGまだなんとも言えないけど。
0055デフォルトの名無しさん
NGNGそれを気にしないうちの上司、もう阿呆かと莫迦かと
0056デフォルトの名無しさん
NGNG文字コードの違うプラットフォームから叩こうとした場合に、寝ているバグを
起こしそうでちょっとコワイ。
0057デフォルトの名無しさん
NGNGキャッシュが効かなくて無駄だらけなんだけどもよ。
0058デフォルトの名無しさん
NGNGパラメータ付きクエリーってjavaのPreparedStatementのこと?
005952
NGNG確かになんらかのリスクがあるのはわかるのですが、
でるのかでないのかわからない不具合に備えるより
日本語を使うメリットのほうが大きいと勝手に
思ってそうしている。
さすがに機種依存文字は論外。
2バイト文字の記号も避けて
第一水準だけ使う。
文字コードが違う場合は列名どころの話では済まない
あらかじめ複数の文字コードに完全対応するのはあきらめ
ましょう。
ていうか俺はあきらめてる。
0060デフォルトの名無しさん
NGNG> あらかじめ複数の文字コードに完全対応するのはあきらめ
> ましょう。
で、のちのちシステムを拡張したり、
別のDBやOSに移行しようとして嵌る罠。
006157
NGNGjavaしらんけどたぶんそれ。
以前分業してやったWEBアプリ、WHERE句とかsprintfでべた書きされて手萎えたんでな。
あまりにもアクセスが閑散としてたWEBなんで黙ってたけどな。
0062デフォルトの名無しさん
NGNGエスケープされないからねぇ。
0063デフォルトの名無しさん
NGNG0064デフォルトの名無しさん
NGNGパスワードを ' OR 'a'='a
っていれられたら終わりってのもあるらしい。
0065デフォルトの名無しさん
NGNGああいうcgiつくる馬鹿も馬鹿だが
そんなものを検証せずに受け取っちゃう方も受け取っちゃう方だなあ
0066デフォルトの名無しさん
NGNGINSERT 文に ストアドプロシージャを使うメリットって何ですか?
普通にSQL文書く場合:
sql = "INSERT INTO TABLE_A VALUES('" + strA + "'," + int1 + ",'" + strB + ............."')";
ストアド使う場合:
sql = "Execute InsertTableA '" + strA + "'," + int1 + ",'" + strB + ....................."')";
コードはストアドにしてもあんまりすっきりしないような・・・。
直前にDELETE文走らせることができるくらい。
なんか俺間違ってます...よね?
0067デフォルトの名無しさん
NGNGINSERT INTO ... SELECT とかするときは、多分すっきりするよね
でもあんまり使う機会ないな・・・。
0068デフォルトの名無しさん
NGNG統一されたコーディングになるというメリットはあるかも。
0069デフォルトの名無しさん
NGNGすでに同一キーがないかどうかチェックしたり、各フィールドの妥当性検査したり
他のテーブル更新したり…いろいろあるじゃん。
なにより、すべてのInsertがストアドになってるほうが、プログラムのあちこちに
似たようなSQLが埋め込まれるより安心でしょ?
すっきりしないのはどうしようもない。ような気がする。
関数化すれば多少はすっきりすると思われ。
0070デフォルトの名無しさん
NGNG内容のストアドを各テーブル分吐いてくれるってツールもあるよ。
0071デフォルトの名無しさん
NGNGjdbcならprepardStatement、MSならadoやodbc等
普通パラメータを名前付きバインド変数として使いませんか?
(jdbcには名前付きパラメータってあったかな...)
仮想的な例ですが、
SPject sp = SPObject( "InsertTableA" );
sp.Prms["strA"] = "test";
sp.Prms["int1"] = 100;
sp.Prms["strB"] = "data";
sp.Execure() ...
0072デフォルトの名無しさん
NGNGもっと勉強してみます。
>>70
便利そうですね。探してみます。
でもうちのプロジェクトだと、フリーじゃないとだめそうっす。
>>71
JSP/Servletでやってます。
恥ずかしながらはじめて聞きました。
何も知らない新入社員として入社して、まもなく1年、
"普通"、"標準"という言葉に強い憧れを感じます。
Googleで Java バインド変数 でそれらしきものが
いくつかでてきたので、勉強してみます。
0073デフォルトの名無しさん
NGNGすべての項目について部分一致検索を行いたいのですが、
Oracleはこのような検索には弱いようで、検索結果が表示されるまで
数分以上掛かってしまいます。
ところが検索結果を待てる時間はせいぜい10秒程度という要求がなされています。
(Notesの旧システムはその位のパフォーマンスが出ていた)
Oracle InterMedia TEXTという全文検索エンジンを導入すると、劇的に
改善されるという情報もありましたが、これは金銭の問題により導入は困難です。
当面の代替策として、Oracleへのアクセスを行っているWEBサーバの中に、
件の巨大テーブルと同じ構造・データを保持したMDBを配置し、
全文検索はそちらから行うようにしているのですが、それでも
検索に1分程は掛かってしまいます。
なにか安上がりで現実的な、良い代替策をご存知の方はおられますか?
0074デフォルトの名無しさん
NGNGテーブルの更新をトリガーにしてテーブル各行の主キーをファイル名として
各フィールドの中身を丸々コピーしたテキストファイルを吐き出しておき
それを全文検索エンジン(Namazuとか)に喰わせるのはいかがですか?
ファイル名=主キーですから、そこからさらにテーブルをSELECTすることも可能です。
・検索用ファイルの件数、容量が丸々テーブルと同じだけの件数、容量が必要なこと
・検索エンジン用のインデックスを作るのがバッチ処理になってしまうこと
上記2点がクリア出来れば実用十分な検索速度が得られると思います。
0075デフォルトの名無しさん
NGNGKWIC検索みたいのを考えてみなさい。
インデックス用のテーブルを別に持つ以外手はないだろう。
0076デフォルトの名無しさん
NGNGケコーンしてるクセに随分偉そうだな。ガッコの先生にでもなったつもりか?
>>74の方がよっぽど的確で親切じゃねーか。
0077デフォルトの名無しさん
NGNGおまえらロックはどうやってますか?
参照・蓄積系はそんな問題にならないだろうけど、
更新系C/Sとかだと結構悩むところだと思うのだが、どーだろ?
漏れは来た仕様が悲観ロックばっかりなんで
そのまま実装しておしまいだが。
0078デフォルトの名無しさん
NGNGお祈り系。
(クライアントが極めて少数で且つ同時に参照している事が運用場無い)
0079デフォルトの名無しさん
NGNGこれ最強。
0080デフォルトの名無しさん
NGNG0081デフォルトの名無しさん
NGNGなんとか手綱が握れるだろう。
お祈りはダメ。
0082デフォルトの名無しさん
NGNG0083デフォルトの名無しさん
NGNG0084デフォルトの名無しさん
NGNG排他ロックのことだYO!
つまり、誰かがSelectしたら、読み取ることができない。
0085デフォルトの名無しさん
NGNGいわゆる排他(といわずともなんかしらの方法で同時更新させない)
ような*動作*をさせるときに行ロックとかを使わない方法ってある?
あるとすればどうやるんでしょ?
思いつくのは更新要求を非同期に扱うくらいだけど
それだと即時更新できなくなっちゃうし。
あとはワーク用テーブルとかも思いつきそうだけどデータの矛盾がおこりそうだし。
実務でバリバリやってる方多そうなんでノウハウぷりーず。
0086デフォルトの名無しさん
NGNGいまOracleでやってて仕様が排他的動作なんで
SELECT〜FOR UPDATE使ってやろうと思ってたんだが
うちのSヨから「行ロックなんて普通使いませんがなにか?」
っていわれたもんで悩んでおります。
(わりに解決方法は提示してこない)
結局ケース倍ケースなんだろうけど実際どーなの?
0088デフォルトの名無しさん
NGNGいや使う。
結構使う。
テーブルごとロックした方がいい場合もあるけど競合を抑えられそうなときは行ロックを使う。
使うんだが、そのSヨはよくしらんのか、たまたまその業務でつかわんでいいのか、
三回くらいリトライして交信中に矛盾が生じたためあきらめましたごめんメッセージが出るのか、
それともたまに謎のデッドロックするのかのどれかだろう。
行ロックの行数が増えると自動的にテーブルロックに格上げすんのってHiRDBだっけ?UDBだっけ?
008986
NGNGなるほろ。
やっぱロックしないとなると更新できないケースが出てしまうってことなのかな。
で、前にちょっとかじった情報によると、最新のSQLServerは
ロックの量?によって行 > ページ > テーブルロックとなるらしい?
だれかつっこみよろしく。
0090デフォルトの名無しさん
NGNG必ずしも使うわけではないと思うよ。
行ロックがないものもあるわけだし。
それでかなりクリティカルなものをやっているところもあるみたい。
DBが違えば、そこら辺の考え方はコロコロ変わってしまうしね。
今使っているDBの考え方から他のDBを評価するやつも多いしね。
0091デフォルトの名無しさん
NGNGそうそう、SQL Serverの機能だ。
行->ページテーブルでよいはず。
>>90
行ロックがないのはISAMから派生してきたやつじゃねえの?
普通の商用RDBだと、最近のバージョンのは大体持ってるけどな。(効率がよいか悪いかは別で)
必ずしも使うわけでないのは同意。
しないで済むならしないのが一番だ。
>>最後の二行
DBがちがうから考え方が違うんじゃない。
異なるコンセプトで設計されてるから、DBを選ぶべきなんだ。
前にも書いたがOracleしかしらんベンダは逝ってよし。
業務ごとにDBの向き、不向きを考えろ。
009286
NGNG> 異なるコンセプトで設計されてるから、DBを選ぶべきなんだ。
> 前にも書いたがOracleしかしらんベンダは逝ってよし。
> 業務ごとにDBの向き、不向きを考えろ。
なんかズシンときた!
印刷してSヨに見せてもよかですか?
と言ってみるてst
009390
NGNGありがとう。舌足らずだった。
その通り。
0094デフォルトの名無しさん
NGNGで、どうもMSは排他を捨てて共有ロックにしろって言ってるYO!
0095
NGNG0096デフォルトの名無しさん
NGNG>いわゆる排他(といわずともなんかしらの方法で同時更新させない)
>ような*動作*をさせるときに行ロックとかを使わない方法ってある?
俺がよくやるのは各行にカウンタを持たせるやり方。
最初は0で更新するたびにインクリメントする。
更新するときにSELECTしたときのカウンタの値とその時点での本当の値を
比べてもし違ってたらエラーにする。
これがちゃんと働くためにはC/S構造をきちんとして、更新を
一箇所だけに制限しないと駄目だからあまり役に立たないかも。
0097デフォルトの名無しさん
NGNG0098デフォルトの名無しさん
NGNG悲観的ロック、楽観的ロック、
行ロック、ページロック、テーブルロック
を整理した方がいいかも。
009973です
NGNGNamazu試してみました。ストアドプロシージャでCSV吐き出してる時に
原因不明のライトエラーを起こして4000ファイル位しか作れませんでしたが、
確かに検索は驚異的に早いですね。ありがとうございます。
問題なのは、やはり検索用ファイルの管理(テーブルに更新かかるたびに
毎回Namazuのインデックスも更新しなければならない等)、あと
あるカタカナの単語が含まれた文章が、その単語の最後の1文字が欠けた文字列で
検索かけてもヒットかった事があるのが厄介ですね。
こういうのは確実に回避する方法はあるのでしょうか?
>>75
全文検索エンジン導入がやはり最善かと思うのですが、まず金銭的な問題がありまして…
(Oracle8iなら無償で導入できるらしいのですが、8なんですよね。)
>KWIC検索みたいのを考えてみなさい。
>インデックス用のテーブルを別に持つ以外手はないだろう。
KWIC検索の実態がよくわからないのですが、興味深いので、もしよろしければ
もう少し詳しく教えて頂けないでしょうか?
0100デフォルトの名無しさん
NGNG中間一致・後方一致検索に強いインデックス作成法だ。
^^に対して
中間一致・中間・一致・後方一致検索・後方一致・後方・一致検索・一致・検索・強い・インデックス・作成法・作成でそれぞれインデックスを作る。
文中のどこを切って索引にするかは、作り次第。
どっかの国語辞書や専門用語辞典を取り込んで、それを元に索引を作ってもよい。
0101デフォルトの名無しさん
NGNGこのスレと直接関係ないかもしれんが
おまえらER図作るのにどんなソフト使ってますか?
ネームバリューからいくとVisioなのかな〜。
いまだったらUML関係(Rationalとか)使う手もあるな。
ちなみに漏れはExcel + Wordで手書きですがなにか?
0102デフォルトの名無しさん
NGNGうちの会社はまともなリレーションを張っていないのでER図が要りません(w
0103デフォルトの名無しさん
NGNG0104デフォルトの名無しさん
NGNGER図から、自動的にテーブルを作れるのは便利だよ。
0105デフォルトの名無しさん
NGNG漏れはテーブルからER図にするのがホスィ
どんなソフトがあるのか見当がつかん(鬱
0106デフォルトの名無しさん
NGNGVisioでできるよん。
0107デフォルトの名無しさん
NGNG0108デフォルトの名無しさん
NGNGヤパーリvisioだすか。
会社に買わせよーかなー。
0109デフォルトの名無しさん
NGNGEnterprise Architect買えば、UMLもかけるし一挙両得。
0110デフォルトの名無しさん
NGNGそれってVS.NETだすか。
そっちはいらないなー(w
0111デフォルトの名無しさん
NGNG0112デフォルトの名無しさん
NGNGERWin。
ERツールは絵が書けるだけじゃなく、DB管理の基礎なので。
リバース、差分検出できないと使い物にならない。
高いと思うけど、まじ、この手のもの一回使ってごらん。visioでDB作成、管理するなど考えられん。
0113デフォルトの名無しさん
NGNG0114__
NGNGERWin俺も使ってるよ。便利だよ。
知ってるやつは、TrialをDownloadして、割れから
尻をGetして、ただで使ってるよ。
その場合会社で使ったらだめだよ!
0115デフォルトの名無しさん
NGNG0116デフォルトの名無しさん
NGNGVisioでインポート/エクスポートがついてるところを見ると
ERWinが業界デファクトなのかな。ちょいとしらべてみよ〜。
しかしどこにも価格が書いてないな・・・むぅ
0117デフォルトの名無しさん
NGNG0118デフォルトの名無しさん
NGNGWebに価格載ってないところを見るとそれっぽいなw
導入した人情報ぷりーず
0119デフォルトの名無しさん
NGNGERWinも、単独なら70万ぐらいだったような記憶がある。グループで作業しようとすると、そのサーバみたいなのが500万ぐらいする。
単体でも、テーブル700以上、viewいれたら千数百ぐらいのプロジェクトで何とかいけた。visioでやってみな。
0120デフォルトの名無しさん
NGNG最初はとりあえずでVisio
満足できなくなった/売上が上がったらERWin
でよろしいか?
まあ稟議書通りそうなのはVisioだが(w
0121デフォルトの名無しさん
NGNG0122デフォルトの名無しさん
NGNG生産性が、50倍は上がったと思う(エクセルのDB定義書と、手書きの絵のときと比べて)。
0123デフォルトの名無しさん
NGNGだね〜。
この辺は実際やってる人からしか情報もらえないし。
本とかにも具体的な作業の仕方なんか載ってないもんな〜。
で、DBマガジンってどうよ?
0124デフォルトの名無しさん
NGNG生産性が50倍に上がった作業が、全作業に占める割合こそ、問題だと思われ
0125デフォルトの名無しさん
NGNG自動化出来る作業が自動化されたからこそ、自動化できない、最も
重要で開発者の経験と技術が必要な部分での無能さがあらわになった
だけの場合が多いと思うぞ。
要するに、今までは成果の完成にあまり影響のない、技術の要らない
単純作業ばかりをこなして仕事してる気になってたアホが、あぶれる
わけだ。
0126デフォルトの名無しさん
NGNG0127デフォルトの名無しさん
NGNG0128デフォルトの名無しさん
NGNG0129デフォルトの名無しさん
NGNG開発者はSQL書く必要無し、DBのテーブル構造をぶっこぬいてJavaのオブジェクトにマッピングできるわ、
WebのインターフェースとDB側データの接続は、ツール上のドラッグ&ドロップでできちまうわ、
負荷分散やある程度の障害対応、DBロックなんかはフレームワークがやってくれるし、
そもそも、一般的に開発者がコーディングしてるDBとロジック間のやりとりなんかは、
用意されてるメソッド使えばいいだけというお手軽さ。
ロジックにSQLは入らないし、もちろんユーザーインタフェースにSQLもロジックも入らない。
クソ製品だらけのアップル社製とは思えない(笑)
開発はWindowsでもできるし、運用はJava2環境があればOK。
ただし、JavaやRDB、Web一般なんかの知識に加えて、OOPが理解できてないとかなりツライ。
0130デフォルトの名無しさん
NGNGつかJava以外の言語も混在したら逆にロック管理とかどうする
んだ?その辺はEJBも一緒だが。前はWebだが後ろでVBとか使って
メンテとかしているシステムって結構あるよな?な?な?(泣
0131デフォルトの名無しさん
NGNG泣くな、そういうのは結構ある。
(オレの周りだけかもしれんが)
0132デフォルトの名無しさん
NGNG最初からアレで開発すると、今までやってた仕事はいったい何だったんだ?
っつーくれぇ天国をみることが出来る・・・マジで・・・
日々PerlでシコシコSQL埋め込んでると、本当に鬱になってくるよ・・・
今、1週間くらいかかってる作業、WOでやると1日か数時間で済んじゃうよ・・・(号泣)
0133デフォルトの名無しさん
NGNGまあDB関係全般のノウハウってことで
で、話聞くとWebObjectすごそーだな。
Appleなんか眼中になかったが(w)これってどんなソフトなんだろ?
MacromediaのUltraDeveloperみたいなやつなのかな?
0134デフォルトの名無しさん
NGNG0135デフォルトの名無しさん
NGNG確かに効率悪いSQL吐く場合も多いが、書式やクセが統一されているだけまだマシさ。
アホPGが書いたSQLなんてそりゃぁもう...
0136デフォルトの名無しさん
NGNGそれそれ、よくSQLは書く人で全然効率が違うって言うけど具体的に
どんなSQLだとクソなのか分からない。
何かいい例きぼん。
0137デフォルトの名無しさん
NGNG日本のソフトウェアでスミソニアン入りしてるのは、これ(WO自身じゃないよ)と、セガのバーチャファイターだけだそうな。
(どういう基準なんだか・・・)
で、この殿堂入りしてるソフトはたしか、NTTの社内ベンチャー1号の社長が指揮して作ってる。
この社長自身は、光ファイバの構造を発明した工学博士。
俺もひょんなことからデモ見たことあるんだけど、アプリ自体がオブジェクトになってそれが集合して
またアプリを作り、それがまたオブジェクトになって・・・という、まるでコンポーネントのフラクタル図形か
マンデルブロ曲線かみたいな、ものすごい展開に、気絶しそうになった。
俺たちがシコシコ数ヶ月かけて作るような、でもクソ品質の電子カルテなんかが、わずか数分で
できあがってしまう様は、すでに奇跡の領域。会場は一種、宗教のような雰囲気に(w
UltraDeveloperとは、比較にならんだろ。元々、DBハンドリング周りのフレームワークは
10年以上前からあるし。旧ネ糞ト製品。
ただ、WebObjects自体は習得が非常に難しいそうだ。
最近J2EEに対応したらしいが、そんなものを使ってる開発者はほとんどいないらしい。
0138デフォルトの名無しさん
NGNGたとえば
テーブル名TBL
キーA,B,C
として
select *
from TBL
where C = 'c'
and B = 'b'
and A = 1
とか
select *
from TBL
where str(A) = '1'
とか
ひっくり返せばなくせるようなnotを多用とか(ドモルガンの定理)
Select文だけならともかく他DMLも絡んでくるとひどいもんさ。
0139デフォルトの名無しさん
NGNGそれのサイトとかありませんか?
その神がかったソフトウェアの。
0140デフォルトの名無しさん
NGNGhttp://www.cyberlab.co.jp/
ここでしょう。サイバーラボ。製品のサイバーフレームワークが博物館入りしてるのかどうかは知らないけど。
ここのK社長ってのが、>>137の言ってる工学博士号持ってる人のはず。
たまーに、アップルのセミナーとかでプレゼンやってますよ。
ぜんぜん偉ぶらない、気さくな人でした。
前に見に行ったセミナーで、このK社長の印象的な発言があったんですけど、
「私はアップルやマックが好きでWebObjectを使ってる訳じゃない。様々な開発ツールを評価したが、
これしか目的を達成できそうなものは無かった。真のオブジェクト指向の開発環境を、きれいに
ユーザーに提供してくれるのは、現在はWebObjectだけだ。もちろんこれを凌ぐツールがあれば
すぐにでも乗り換えるだろうが、残念ながらまだ存在しない」
ってなことをおっしゃってました。そのときは、Win2Kの入ったパナソニックのレッツノートに、
WebObjectsとサイベース入れてデモやってましたよ。
0141デフォルトの名無しさん
NGNGODatabase.ExecuteSQLメソッドで処理した件数って調べることはできませんか?
0142デフォルトの名無しさん
NGNGヘルプ嫁
0144デフォルトの名無しさん
NGNGあんまりいい例じゃーないね。
それじゃー136にはいってることがサーパり??だよ。
てゆうかワシにもわからん?
なにがわるいの?
スピードがおそいわけ?
コードの見た目?
0145136
NGNGさぱーり。
インデックス順に評価した方が速いって事?
わざわざ文字列変換かけてるって事?
うーん、その辺の話だとDBMSに依存するんじゃないのかな…
解説きぼん。
>>143
それはダメなDB操作の例であってダメなSQLとは違うと思われ。
0146デフォルトの名無しさん
NGNG複合キーがうまく適用できない書き方のことを言いたかったんじゃないかと推測。
障害や不具合やうまくないコードについて、明確な説明ができないやつは
どこいってもダメなんだよなあ。
0147デフォルトの名無しさん
NGNGそんな気になれないから146のいうようなオタクにはなりたくないなあ。
0148144
NGNGインデックスとか知ってりゃ
わかってんじゃん。
実は知っててきいてる?
>DBMSに依存するんじゃないのかな…
DBMSの特性にあわせたないといいSQLはかけない
とおもったりする。
>それはダメなDB操作の例であってダメなSQLとは違うと思われ。
SQL(DML)はDB操作をするための言語です。
まそれはおいといて、この場合たしかに、
VBも一応OK。SQLも一応OKです。ただその組み合わせかたが最悪ってパタンでしょう。
0149デフォルトの名無しさん
NGNGサンクス
0150デフォルトの名無しさん
NGNGDBマガジンは結構読んでる。特集がたまに面白いし、便利と思う。
ただ、連載は個人的に役に立ってない。そーいや、最近ERWinの
特集だったね。
>124
50倍というのは、感覚値で、測定してないからその意味では申し訳ないな。
ただ、この工程と言うのはDBの設計部分で、ここでのエラーは後で大変
コスト高 & 品質低下になるからね。俺の場合、できれば顧客を教育して
ERを読めるようにして(これは結構簡単にできるからね)、これで議論する
用にしてる。このとき、ツールのある無しは決定的。
その後、即効でDBできるし。開発上でDB変更したらすぐモデルも変更して
配布、議論できるし。工程が全体に占める割合もくそもないと思うが。
全体として、有効。もっともDOAで開発してるからだけど。
で、顧客にER教えた感想だが、ER書くのは、文系の仕事というか、顧客の
ほうが適任ね。ようは技術じゃなく、実現したいシステムを現してんだから。
そういう意味では、可能な場合は、顧客とERで議論するのは重要なノウハウと思う。
0151デフォルトの名無しさん
NGNGいろいろ調べてみてるが、さぱーり・・・・・
ここに相談ってよし?(オラクルマスター他界から)
0152デフォルトの名無しさん
NGNGhttp://www.google.co.jp/search?q=ORA-12571&hl=ja&btnG=Google+%8C%9F%8D%F5&lr=lang_ja
0153デフォルトの名無しさん
NGNGテーブルTBLに1000万レコードあるとして
項目Aは 2通りの値を持ち
項目Bは100万通りの値を持つとき
(値はほぼ均等に分布しているとする)
select * from TBL where A=1 and B=1
と
select * from TBL where B=1 and A=1
では効率が全然ちがうでしょ
0154デフォルトの名無しさん
NGNG複数のテーブルを組み合わせるともっと極端になるね
0155デフォルトの名無しさん
NGNGそれぐらいならオプティマイザで勝手にしてくれない?
0156デフォルトの名無しさん
NGNGそっか・・・最近のはそうみたいだね
実装によっても違うし、一概にはなかなか難しいかな〜
0157デフォルトの名無しさん
NGNGそれを更にANDで括ってたりする奴もいた。
0158デフォルトの名無しさん
NGNGサンクス
逝ってきた。(というより、すでに逝っていた)
tp://www.blue.gr.jp/~munetika/mllog/o4l/msg00733.html 等
RECORDS_TOTAL < 65535
のばあい
control_file_record_keep_time=0
とせよとあるので複数のRedhat6.2のノードで対処済みだが、
65535の約半分の回数のインサートでクエリが止まり、しばらくすると
ORA12571が・・・
今試したが何の対策もしていないSolaris8では32000は上回る
と思われ。
うーん、数字だけ見てると単に自分がドキュソか。
スマソ。もっとよく逝ってくる。
0159デフォルトの名無しさん
NGNGおいらもしっかりWHARE句の最適化はやってるよ。
確かにオプティマイザが勝手にやってくれるDBが多いけど。
基本的に良い習慣だと思っている。
Cのif文は発生する確率が高い方からチェックするようにすれば高速化できるしね。
そういう地道な努力は高速化する上での重要な要素の1つとだと思う。
普段から注意していないと、なかなか身に付かないしね。
0160138
NGNGでは解説
RDBじゃインデックスを使うかどうかパフォーマンスに大きな影響が出るわけよ。
単純で簡単なことだけど、一番大事なことなわけ。
インデックスの基本理論からするとDBMSに依存する部分は少ないよ。
複合インデックスは順番に評価する
インデックス列に関数は使わない。
これは大原則です。
結合が多くなっても同じことが言えるわけで
分からないということはおそらくアクセスパスの解析をしたことが無いってことだろう。
まあ確かに端折りすぎた。
もっといい例きぼん。
>>159
良い習慣だと思う。
0161デフォルトの名無しさん
NGNGデータ量が少ないと主キーは別としても最近のRDBエンジンは
インデックスなんて使わないでしょ。
2値の列にハッシュインデックス貼ったりするのも激しく無意味だし。
やぱり最終的なチューニングは各DBのアクセスパス解析ツールを
使わないと、そのエンジンによっぽど精通してないと
人間の判断なんてあてにならないような気がするぞ。
0162デフォルトの名無しさん
NGNG最終的にはそらそーだ。
ただDBMS依存の最終的なチューニングによる効率UPよりも
非依存の基本的なチューニングの効率UPのほうがでかいって話では?
>2値の列にハッシュインデックス貼ったりするのも
これだって非依存だろ?
0163161
NGNG基本を押さえた上で、DBMS依存のチューニングをかけると。
ただ、インデックスのチューニングって結構むずかしいと個人的には思ってるのよ。
運用中に頻繁に更新があるならたくさんつくりゃいいってもんでもないし。
いろんな検索パターンがあるシステムだと、多数決とゆうか、重要度とか
人間的な判断で決めちゃったりして。>みんなはどーよ。
個人的に欲悩むのはJOINしたテーブル同士の検索条件は、
Where節で指定するか、JOINのONで指定するのがいいかって事かなー。
アクセスパス見るとまったく変わらなかったりするのだけれど。。。
0164デフォルトの名無しさん
NGNGSQL書く必要なかった。
(バックエンドで発行されてるSQLは見られる。)
1つのオブジェクトに、別々の鯖で動いてる別製品のRDBのテーブルをマップできるらしい。
なんか鬱。
0165デフォルトの名無しさん
NGNGふーん。すごそーだな。
これも会社に買わせようか・・・・
つかこのスレのせいで稟議書がふえてるな(w
Visioといい、ERWinといい、WebObjectといい・・・
0166デフォルトの名無しさん
NGNGWhere節で指定するか、JOINのONで指定するのがいいかって事かなー。
実際には同じ実行プランに落ちるはずなので、好みでいいんじゃない。
ノウハウというのもなんだけど、ある程度複雑なSQLを使うときは実行プランは
確認しようね。とんでもないプランで実行しているときがあるから。
0167デフォルトの名無しさん
NGNGそれを調べておけ。
で、まともなDBならインデックスが期待したとおりに使用されるかどうかの
実行プランがみれるから、それを使え。
オプティマイザにも色々種類や特性があって、少し柔軟にインデックスを
見に行ってくれるものや、明示的に統計情報を取得・更新しないと
まともな最適化をしてくれないものとかある。
SQLレベル以外にも、DBへのコネクション方法やテーブルレイアウトの設計、
インデックスの分散や隣接配置、テーブルスペースの配置、
ディスク装置の選択やRAIDの選択、使用メモリのチューニング、
ログの分散、管理、バックアップ・レプリケーション、
見るべきところはたくさんある。
一個だけつまんで見せて、「コレひどいよね」といっても、
木を見て森を見ず、の場合だって有るのだ。
0168デフォルトの名無しさん
NGNGタコSQLの被害低減ぐらいと思っている。
何より困るのは、開発、評価、実機で動作が変わるから。
また、アナライズもかけないで、オプティマイザを使っています
という、タコプロジェクトも見たことあるが、実データがない場合は
評価困難だしね。
個人的には重そうなsqlはかいたらすぐプランとって見るし、
少なくともチューンするときはヒントで、プランを
固定するようにしている。
Oracleもルールはなくして、コストベースにだけしますと
とずーと昔から言っているが、ずーとできそうになさそう。
ただ、コストベースでないと使えない機能があるので、
DB自体はコストベースにして、ヒント等で固定化してる。
知り合いのプロジェクトでは、外注に納品物件にプランの
提出を義務づけ、とりあえず(full)をチェックしてるみたい。
動的SQLはどーすんだと突っ込まれると思うが、量的には少ないし、
完全に読めないことはないので、インデックスあてといて、あとは
テスト、運用で発見個別対応になるね。なにより、できるやつに
その仕事をふること。
ただ、一度50人ぐらいのプロジェクトでは、動的SQLを作成する
ルーチンを書いて、表名、フィールド、条件とうの入力と、検索結果
をテーブル渡しにして、動的SQLの発行を一箇所でコントロールしたこと
もある。実際に発行されるSQLをログって監査する必要があったこともだが、
タコに動的SQL書かせて、後でデバッグ、チューンする恐怖より、
このルーチン作るほうを選んだ。
0169デフォルトの名無しさん
NGNGうちの会社なんでか使ってないんだよね。
テーブル設計書とかにはちゃんと初期値 = 0 とか、初期値 = システム日付 とか
書いてあるのに、デフォルト制約にしないで、入力プログラム(VB)で
発行するInsert文やUpdate文で明示的に 0 とかシステム日付セットしてる。
0とかの固定値はともかく、システム日付をVBで算出するとクライアントの
時計を使ってしまうので、困ると思うんだが…。
外部参照制約に関してもまったく設定してないんだよ。
仕様書には「商品マスタに該当レコードがあるかチェックする」とか書いてある。
外部参照制約作っといて、例外補足すればいいんじゃないの?
他の会社でもこんなもんなのか?
0170デフォルトの名無しさん
NGNGできればSQLなんて書かずに、ビジネスロジックの作り込みに専念すべきだ
そんな部分にパワーかけてどうする
0171デフォルトの名無しさん
NGNG性能で客から怒られたことのない素人が紛れ込んだ模様。
0172デフォルトの名無しさん
NGNGSQL作成とインデックスの追加申請くらいしかやらせてもらえない
駆け出しが紛れ込んだ模様。
0173デフォルトの名無しさん
NGNGなんだ、新卒ブビ厨?
SQLごときでパフォーマンスでないような作り方してんのか。まさにドキュソだね。
俺もWO使ってるけど、SQLなんか一度も書いたこと無いし、客から怒られたこともない。
元々金融系から始まって10年くれぇの実績のあるフレームワークと、
たいしたスキルも無い厨房が書くゴリゴリのSQLと、客はどちらを信用するのかねぇ(w
0174デフォルトの名無しさん
NGNGけっこう多いんだよね・・・
0175デフォルトの名無しさん
NGNG鼻高々としてるから可笑しいよね。運用上は必要だけど、DQN仕事だな。
俺はやりたくない。
DBを、単なるデータストアでなく、ソフトウェアコンポーネントの一つとして
見て欲しいんだがなあ。どうもデータが出たり入ったりするのを見て
エクスタシー感じてる連中が多いみたいだね、ここには。
0176デフォルトの名無しさん
NGNG0177デフォルトの名無しさん
NGNG0178デフォルトの名無しさん
NGNG0179デフォルトの名無しさん
NGNG同意。
外部参照制約のデメリットは、更新時のパフォーマンスなんだが、データが腐ることよりはずっとましと思う。
昔、あるシステムの改造をいらいされて、DBリバースしてみたところ、ただの表のあつまり。エクセルじゃないんだからってなかんじ。
案の定、データ腐りまくりで、開発より、データクリーング、移行のほうがはるかにコスト高。
ってことで、その案件はつぶれた。
デフォルト値は、場合によりけりだね。
追加開発で、新しいnotnullの属性を追加するときとかに、仕方なくデフォルト
入れることはあり。
0180デフォルトの名無しさん
NGNG金融やってたってひとで、自信あるやつ多いんだけどさ。
コンサルでは使いk物にならないこと多し。
金融の場合は、目的が明確なこともあると思うが、まったく
別種のビジネスでのコンサルに入ると分析能力無し。
技術てきにも、そのすばらしいフレームワークとやらのおかげで、
自分で一から構築したことがないんでまるで、提案できない。
0181デフォルトの名無しさん
NGNGでも、あまりWebObjectsは広まって欲しくない・・・
誰にも使わせたくないっていう感じ(藁
わかるだろ?この感覚。
0182デフォルトの名無しさん
NGNG日本語もまともに理解できないアフォドキュソですな(w
金融系やってた人間そのものの話しなんかだれがしてるんだよ。
WOの実績の例を出しただけだろ。
使い物にならないコンサルを、カバーするだけの力量がフレームワークにあるってことだ。
SQL以前に、小学校から国語をやりなおしてこい。
そもそも、一から構築したことのないヤツに、WOを使わせても無駄。
自前で実装した苦労や、他のツールで地獄を見た経験を持ったヤツだけが、その価値を理解できる。
0183デフォルトの名無しさん
NGNG広く使われるとボロが出るからな。
悪い評判が立つと客が嫌がるし。
0184デフォルトの名無しさん
NGNGうんそうだね。だから、君には必要なんだろう。
いつまでもSQLの作り込みに勤しんでくれたまえ。
自分で何もかも把握できた方が、効率よく作ることより重要だからな。
0185デフォルトの名無しさん
NGNG>だから、君には必要なんだろう。
は、
>だから、君には必要無いだろう。
に訂正。
0186デフォルトの名無しさん
NGNGうん。すごくわかる。
でも、広まってくれないとWebの案件をWebObjectsで提案しても蹴られる可能性あり。
0187デフォルトの名無しさん
NGNGこれが相反関係にあると言いたいのか?
すげーな。
0188デフォルトの名無しさん
NGNGまあ181はマカー根性丸出しってことで
sagesage
0189デフォルトの名無しさん
NGNGWebObjectsはWindows2000で開発してソラリスで運用するんだよ
0190デフォルトの名無しさん
NGNGつくづく厨房だな(w
お前、PGでもコーダーの部類だろ。
0191デフォルトの名無しさん
NGNG>>187
トレードオフという言葉を覚えましょう。
俺もそれらがトレードオフになるとは思わないけど(w
0193デフォルトの名無しさん
NGNG0194デフォルトの名無しさん
NGNG0195デフォルトの名無しさん
NGNG結局 【自慢話を語るスレでした】 って事だな
0196デフォルトの名無しさん
NGNGDBアプリを納品してからも仕様の変更・追加ってあるよね。
テーブル設計が変わっちゃったりした場合とか、被害を最小限にしたいよね。
そのためにやってることってある?
WebObjects、.NETなど、オブジェクトに自動マッピングされる環境では
仕様変更ってどうなるの?
0197デフォルトの名無しさん
NGNGDBが絡んだWebアプリでも、表示項目とUIが同時に変更になったとしても、
開発ツール上でデザイン変更できるし、DBとの接続もドラッグ&ドロップでほとんど完了。
他のJavaベースのツールみたいに、泣きながらゴリゴリ再コーディングっていう手間はあまり発生しないなぁ。
もちろん、純粋なビジネスロジックのコーディングし直しってのもあるけど、
かなりの部分がフレームワークが提供するメソッド利用するだけで目的が達せられるから
開発者としては、とても楽。
.NETって、どうなんだろうね?
0198デフォルトの名無しさん
NGNGありきたりだけど…
(1) Select項目は明示して * を使わない
(2) Insert項目も明示的に指定する
こうしておくと、仕様変更でテーブルにフィールドが追加されても
その追加フィールドにデフォルト制約を付けておけば、
既存のプログラム(参照、更新ともに)結構動くよ。
0199デフォルトの名無しさん
NGNG0200デフォルトの名無しさん
NGNGユーザーが使いやすいシステムを構築する上で
ストレスを感じさせないだけのパフォーマンスは必要
SQL云々もその一環だから使う側に立っていないとはいえないと思うよ
おっと、200ゲトー
0201デフォルトの名無しさん
NGNG確かにその観点はある意味間違っていない。
だが客にとっては、
SQLを直接書こうが書くまいが、WebObjectsだろうが、Javaだろうが.NETだろうが、
結果を出せるかと、最後まで責任をとれるか、が重要だと思う。
だいたいこの世界、欧米も含めてまだぜんぜんWebObjects一色ってわけじゃないでしょ?
WebObjectsがまだ知られていないというわけでもないだろうし。
欧米のメーリングリストなんかでもまだまだSQLネタって多いしね。
そこが現実ラインでしょ?
0202デフォルトの名無しさん
NGNG概ね同意だけど、ストレスを感じさせないだけのパフォーマンスを出せる実装を
できるだけのスキルのあるやつって、現場レベルでも最近少いような気がする。
パフォチューなんて思想無し。た〜だSQL書いてますみたいなやつ。
派遣や外注でやってくるヤツラで、「おお!こいつやるな!」みたいな人間にここ数年出会ってない。
なんていってるおれも、最近WebObjects始めた。
WinXPで開発、Linuxで運用。
なんつーか、目から鱗。
DB使うWebアプリが、ここまで効率化できるとは思ってなかったよ。
パフォーマンスも問題なし。
しかし、こんなツールが何故広まってないんだろうか。
アップル製だからかな?
Webオーサリングツールと勘違いされてるとかね(ワラ
0203デフォルトの名無しさん
NGNGWebObjectsは7万円だけど、他のツールは何百万ってするもんね。
そりゃ、高く売れるほうがいいよね。
0204デフォルトの名無しさん
NGNGバカじゃないの?
実装も意識して、かつユーザビリティも意識した開発するのが当たり前だろ。
それともお前の所ではそれがトレードオフになるのか?
>>1も
・見やすい帳票レイアウトって? 入力しやすい画面遷移って?
とスレの裾野が広がるような議題を持ってきているのにも関わらず、それを無視して
開発者よがりな話に持っていこうとしてるのはお前の方だろう。
0205デフォルトの名無しさん
NGNGおまえもわけわからん。。。。
0206デフォルトの名無しさん
NGNG同意。SQLしか意識していない技術オタは糞だが、
SQLを意識している技術者が、UIなどをないがしろにしているとは言えないからな。
>>205はもう一回読み直してみ?
とりあえず動くモノを作って次にチューニング、なんてのはSQL屋失格だし、
「正規化」とやらも初心者向けというか暗記型向けというか、
最適設計にはならない。
0208デフォルトの名無しさん
NGNGマジか。WebObjectやめた。
0209デフォルトの名無しさん
NGNG> 「チューニング」や「正規化」が変にもてはやされた
それが全てだとは言わないけど、それよりも大事なものって何なの?
一見するときれいな画面設計?
一見親切な操作方法?
画面設計や操作方法を考えるのももちろん大切だけど、
それよりも「システム」がしっかりしているが大事で、
しっかりした良いシステムを作るためには「正規化」が
大切だというのがいわば常識。
良いシステムを作るために「正規化」が
万能ではないという話ならばわかるけど、
207は良いシステムをつくるということを
考えていないように感じられる。システムが
ちゃんとしていないならば、本当の意味で
ユーザーにとって使いやすいアプリであるはずは
ない。
チューニングなんぞ「敵が城を囲んでから対応策を考えるようなもの」
正規化は「モノを考えられないアフォを訓練してあるレベルにまで持ってくる」
為の手法であって、マトモな設計者がやる事ではない。
0211209
NGNG全面的に同意。
> チューニングなんぞ「敵が城を囲んでから対応策を考えるようなもの」
確かに設計の段階でパフォーマンスも充分に意識すべき。
ただし神ならぬ人の身には、思いもかけず敵に城を囲まれる
こともあるし、その際には対応策を考えざるを得ない。
> 正規化は「モノを考えられないアフォを訓練してある
> レベルにまで持ってくる」為の手法であって、
> マトモな設計者がやる事ではない。
正規化よりまともな方法がわかるというのであれば、
設計者にしておくのはもったいない。世界的な研究者に
なれるんじゃないかな。現在のDB設計上、もっとも
マシな指針が正規化。それをまったく使わないのは
世界的研究者レベルの大天才か、ろくでもない設計者の
いずれかと思われる。
0212デフォルトの名無しさん
NGNGいや、正規化なんて誰に教えられるわけでもなく身に付くはずって事だろ。
手法と言うよりは理屈の話だしね。
それをわざわざ教えなければならないってのが
>「モノを考えられないアフォを訓練してあるレベルにまで持ってくる」
って意味じゃないの?
つーか、スレの方向と著しく違うのでこれで終了にするか、どこかよそでやってくれ。
0213デフォルトの名無しさん
NGNGでは速度が出ない。理屈からして当たり前。
普通プログラムの応答速度を上げる為にキャッシュとなるバッファを取る
のと同様に、DB内部に冗長な部分をどのように作るかが、RDBMS技術者と
しての本領になると思う。
0214デフォルトの名無しさん
NGNG例を挙げて冗長にした方がいい場合を説明しないとただの独り善がりだぞ。
技術者の本領だの禅問答じみた話はいいからノウハウを語れ。
0215デフォルトの名無しさん
NGNG俺の言いたいこと言ってくれてありがとう。
途中から飲み屋のオヤジ会話になってる。
0216デフォルトの名無しさん
NGNG合うようにテーブル設計すれば良いだけ。
こっちの方が正道の設計。
「正規化」はDBの構造を知らない素人でも70点のモノが作れるようにする
為の手法であって、正道ではない。
うんと単純化したケースで言えば、
冗長の方がアクセス回数が1回で済む場合は冗長にした方が良い。
0217デフォルトの名無しさん
NGNG群に毎回結合演算を要求するのは無駄なことがあるでしょ。
例えば、そういうときにビュー作ったり、ビューでは都合が悪い時に
クエリーが高速に行えるような単純なテーブルを別に作っておいて、
更新をトリガーにしてそこに結合演算の結果を別途書き込んでおく、
なんていうのも、よくやるでしょ。
0218デフォルトの名無しさん
NGNGよくわからないんですが、それって正規化された設計を
基本として、ビューとか高速化用のテーブルとかを追加
するという「チューニング」をやってるわけですよね。
それともそういうのはチューニングじゃないのかなあ。
0220デフォルトの名無しさん
NGNG全体の設計を変えないまま、糞設計をいくら手直ししても無駄。
性能出す為には全体設計ってのが一番効く。
0221デフォルトの名無しさん
NGNG禿同。
正規化云々ってのも、すごく理解はできるし、そこにパワーをガッツリと割けるだけのリソースがあればいいけど、
そんな恵まれた環境やDB屋がいる現場って、そうそう無い。
それに、もう今は現実として、実装のスピードとパフォーマンスが、従来の開発手法だと
釣り合わなくなってきてるしね。
0222デフォルトの名無しさん
NGNGさらにそこから性能改善ができるかどうかが真のチューニング技術だと思うんだ。
基幹システムを莫大な額を投入して、運用を開始して、
業務規模が拡大するに伴って当初予定した業務量を逸脱するようになってくると
思わぬボトルネックがでてきて性能ががくんと落ちることがある。
そういう部分を予測、検出して、なるべく少ないコストで改善するって、大変なことだよ。
web objectsって、その辺、どうなんだろうね。
厨だからよくしらんわ。
0223デフォルトの名無しさん
NGNGとりあえず、DBゴリゴリの更新系アプリ作っても、パフォーマンス的にはほとんど問題ないと
言い切っていいと思う。
WO自身は、リリースが95年あたり。他のどんなアプリ鯖よりも老舗といえるかな。
みんなDBアクセスする部分とビジネスロジック、UIとの接続などの部分のほとんどを
コーディングしてると思うけど、WOだといわゆる「当たり前」に実装してる部分、ほとんどを
フレームワークが提供してくれてるんで、効率いい。
WOの設計思想自体が、もはや開発者がゴリゴリSQL書くようなものを想定してない気がする。
アプ鯖が負荷上がってきてアップアップになったら、物理的な鯖と運用パッケージを買い足して、
作ったアプリにゃ手を加えずに運用ツール側で負荷分散先をしてやるだけ。
ともあれ、最近はSQL意識するような開発してないからなぁ、考え方ズレてるかも。。。
0224Disca ◆NAfP6znE
NGNG速度的に速いのでしょうか…。それとも、独自で探索木などを作ったほうが
高速になるのでしょうか…。
一応、データソース(リスト)が百万件あったと仮定します。
0225デフォルトの名無しさん
NGNG自前で書いた方が速くなる可能性は高い。
が、原子性の保証やバックアップ・リカバリの方法、
アクセス方法の標準化、ネットワーク対応、負荷分散、
複雑なクエリーやリレーションの解決など考えると
DBを使った方がお得だ。
ISAMの利用も検討してみるといい。
自分で作るより、おそらくそっちの方が早いし速い。
0226デフォルトの名無しさん
NGNGアゴ?
0228Disca ◆NAfP6znE
NGNGレスありがとうございます。只今考えているのがマルチスレッドでの検索サーバなのですが、
(複数のスレッドで同時データファイル読み込み可能、書きこみは一スレッドのみ^^)
ISAM、始めて知りました。(無知にも気付かされました)
これって、NAMAZUのようなもの(インデックスサーチ)でしょうか…。
0229デフォルトの名無しさん
NGNGRDBじゃないけどSQL文が使える。
マルチスレッドにも対応、そこそこ速い。
NAMAZUは検索エンジン。
ISAM/RDBはDBのアクセス法に対する設計の違い。
0230デフォルトの名無しさん
NGNG1)本当に分散が必要か?
実は1台で間に合うものを、分散したが為に6台も必要になってしまったとか。
2)意味の有る分散か?
サーバーの負荷分散のための分散のはずが、情報まで分散してしまって、
それを再構成するのに分散した以上の負荷が生じているケース。
3)狂ったか?集中処理。
意味の無い分散を繰り返した後、「管理が楽だから」と一部機能を集中処理
してしまう。(そして破綻へ)
もうね、アフォか馬鹿かと・・・。
0231デフォルトの名無しさん
NGNGDBに限ったことじゃないね。システムのプロセスも、技術者の
オナニーで無駄に分散するのが流行ってる昨今。
0232デフォルトの名無しさん
NGNG今の流行なんだろうね。
Servletで十分なのをEJB使ってみたりとか。
おまえEJB使いたいだけちゃうんかと小一時間(以下略
同じようなことがOracleにもいえるがなー
>>230
分散をOracleにしても似たような感じ
0233デフォルトの名無しさん
NGNG>Servletで十分なのをEJB使ってみたりとか。
>おまえEJB使いたいだけちゃうんかと小一時間(以下略
JDBCで十分、つー表現が適切かと(w
揚げ足取りスマソ
0234デフォルトの名無しさん
NGNG偉そうなこと言いたいだけのガキはマ板逝け。邪魔。
0235デフォルトの名無しさん
NGNG0236デフォルトの名無しさん
NGNG忘れさすフレームワークってどうなんでしょうか?
個人的には大容量のデータ処理には向かないし、
クライアントキャッシュされたデータは
業務的にロックしないといけないし、
なーんかしっくりこないんですけども。
0237デフォルトの名無しさん
NGNG.NETは厨が集まる事わかってんのかいな?
0238デフォルトの名無しさん
NGNGFreeBSDだったってな。
禿シクワラタ
0239デフォルトの名無しさん
NGNG新しい考え方が受け入れられないとCOBOLERみたくなっちゃうよ
ADO.NETはすばらしい
0240デフォルトの名無しさん
NGNGあ、あのー…
SQLが使えるのにRDBじゃないんでしょうか。いやマジレス希望。
0241デフォルトの名無しさん
NGNG5〜6年分(日次単位)持っている会社があるんですが、
やっぱりこれってテーブルを分割したほうが良いんですよね?
「全部一度に見たい」っていうんでビューにしる! って言ったんですが
理由もなく却下されました。こんな企業はDQNですか? 辞めどき?
0242デフォルトの名無しさん
NGNG俺は同じ意味を持つデータは一つのテーブルにおいておくのが好み。
パフォーマンスに影響がでるならしょうがないけどさ。
そんな俺はDQNなんだろうか。
0243デフォルトの名無しさん
NGNG1000人以上くらいですか?
0244デフォルトの名無しさん
NGNGマシンスペックが低い可能性も考慮せよ
0245デフォルトの名無しさん
NGNGパフォーマンス、ディスク容量、バックアップ等の管理考えて問題
なければいいんじゃない。
oracleなら別表にしないで、パーティションにするけど。
オプションは高いが。
0246デフォルトの名無しさん
NGNGなんで社員数かけてんの?
勤怠かなんかのトランザクションなのか?
社員数少なくても業務によっては膨大なトランザクションデータを
日々発生させているんだよ。Web受注システムとかな。
0247デフォルトの名無しさん
NGNG設計が重要で、影響でかいのは決まってるけど、実際はチューンも必要に決まってるジャン。
多人数でやってりゃタコもいるしミスもあるし、遅くてもとりあえず動かす必要
があれば動かして、稼動後にチューンだよな。でなきゃ会社つぶれるしね。
設計よかったとしても、だいたい、ウォーターフォール開発の時代じゃ無し、設計要件が固定のまま
のはず無いし、いくらデータモデルが安定っていっても追加、変更はあるしね。
「私の辞書に、やってみなければ分からないという言葉はない」ってマジこのとうり
言ったコンサルもいるけど、結果は...。神様でもなきゃ完全に
見切れるわけない。世の中動いてんだから。
以上、設計いいかげんでいいという話ではない。が、スケジュールにチューン期間
を考えないのも、非現実的。
0248デフォルトの名無しさん
NGNG> 実務では過去1年のデータがあれば十分なのに、
これが本当ならば、5〜6年分持っておくこと自体がムダ。
使いもしないようなデータを後生大事に取っておく会社多いよね。
しかし全部見たいというニーズがある以上、そのデータになんらかの活用方法が
あるわけだから、分割などは避けるべき。
データは人間が使ってこそ意味がある。コンピュータよりの都合であまり不自然な
形にするべきじゃない。
だいたい>>241にしたってコッチから見れば
過去5〜6年分のデータを「分割しる!ビューで見れ!」理由もなくって言ってるんですが
こいつはDQNですか? 辞めさせどき?
だぞ。そもそもなんで分割したいんだ?
0249デフォルトの名無しさん
NGNGなんかもうツッコミ所満載なんで途中までレス書いてたけどヤメタ。
あくまでノウハウを語るスレだし。
もう1度コンサルに教えを請うた方がいい。
>「私の辞書に、やってみなければ分からないという言葉はない」
この意味が分かるようになるまでね。
0250デフォルトの名無しさん
NGNGキャッシュ可能容量の概算。
0251デフォルトの名無しさん
NGNGものについて質問があります。
リレーションシップの役割や概念は分かってきたのですが、
自分が、「売上テーブルと売上明細にはリレーションシップを
設定して」と頼まれた時、具体的に何と何をすればいいのか不安です。
具体的な作業として、「リレーションシップを設定する」とは
どういう作業をさすのでしょうか?教えてください。
簡単に売上テーブル(売上No)と売上明細テーブルをつくる
作業を仮定させて頂いたとして、
「リレーションシップを設定する」というのは下記の、どちらでしょうか?
1.具体的な命令句ではなく、売上明細テーブルの中に売上No(売上テーブル)を
含めた、段階でリレーションシップが設定された、と判定される(設計段階?)。
2.PostgreSQLのCreate Tableの命令で具体的に参照整合性を
設定をすることが、リレーションシップの設定である。
たぶん、まだ理解が足らないかと思われますので、
上記の例に含まれていない場合、可能なら具体的な作業を
例示してご教授いただけないでしょうか?
もし、この本に全部書いてあるよというような
参考書がございましたら、そちらをご紹介頂いても
結構です。よろしくお願い申し上げます。
あと、ここではなく、他で聞け、という場合もご指摘ください。
0252デフォルトの名無しさん
NGNGこっちこっち
http://pc.2ch.net/test/read.cgi/tech/1001351439/
0253デフォルトの名無しさん
NGNG書き直しました.
0254241
NGNGうむー。そうですか。辞めさせられどき? 辞めさせられる前に辞めとくか・・・。
あと、PGが設計に口挿むのはマズーなのですかね?
(SEはExcelのセルの中身を参照式にするか値にするかって聞いたら「?」が出る程度です。)
テーブルの状態はカラムが300くらいあって、完全にパフォーマンスの足を引っ張ってます。
管理するチームがないので、テーブルスペースもほとんど分割せずごった煮状態。
(これらの分割も却下されてる。テーブルスペースの数=HDの数=5)
普段の業務で使用するのは夜間で集計した結果だけで、明細の履歴はほとんど見ない。
(というか、かなり上のほうの人間しか見てはいけないもの。あ、でも参照権の設定はしてなかったような・・・。)
過去からの推移が見たい、というのは解るですが、
集計の履歴はちゃんと持っているし、再計算はほとんどしないのです。
(データが確定した過去データの再計算が頻繁だとそれはそれで問題のような気も。)
しかも、集計した履歴は1年しかもってませんし、それ以上は遡って計算できません。
(アプリが対応していないから。)
ちなみにDBMSはSybase。
Sybaseにパーティションテーブルかそれに類似するものってあります?
0255デフォルトの名無しさん
NGNG>>241の段階ではそんなに詳しくかいてなかったじゃん。
おれは248じゃないよ
0256241
NGNGスマソ。あんまり書くとバレそうだったので。
もう開きナオテ書きました。それでもかなり端折って書いてます。
でも、テーブルを分けること自体はあまりオススメできないのですね。
0257デフォルトの名無しさん
NGNGというかテーブル分ける云々以前にやることが山盛りだと思われ
0258デフォルトの名無しさん
NGNGこいつか。
0259デフォルトの名無しさん
NGNGSQLはデータストアにアクセスするための記述言語で、
RDB専用というわけではない。
0260デフォルトの名無しさん
NGNGオマエか。
0261デフォルトの名無しさん
NGNGなんだなんだ? お前等ホモか?
0262デフォルトの名無しさん
NGNG>>259
どもども。そっか。そうなんだ。
…で、俺の定義ではいわゆる選択、射影、結合が
SQL等の操作言語でできれば、それRDBなんじゃん?って思うのです。
MySQL、マニュアル見た限りでは全部できそうなんだけど。
>>254
列が300…正規化、されてます?
0263デフォルトの名無しさん
NGNG確かに設計も何も無さそうだけど、それを年単位に分割するという発想も変。
0264デフォルトの名無しさん
NGNG年単位かどうかは書いてないけど、そうなの?
管理がたいへんじゃん。列数も300だっていうし。
0265デフォルトの名無しさん
NGNGそれじゃまとめとしては、WO最強。ってことで。
0266デフォルトの名無しさん
NGNG同意。
よって
==========終了==========
0267質問させてください
NGNG技術的な興味もあって、データベースを使ってみようと思っています。
PostgreSQLを準備してJDBCでアクセスできる環境は整っています。
簡単なサンプルなどをみると、データベースに直接SQLを書いたり、返ってきたデータ
(java.sql.ResultSet)を直接使ったりしていますが、規模が大きくなってくると管理が
困難になりそうな予感が禿げしくします。
理想的にはjava上のインスタンスひとつをデータベース上の1行に対応させて、インスタンスを
操作するとその内容がデータベースにも反映されるような仕組みがあれば、データの操作
ロジックとデータベースのアクセスロジックが分離できて良さそうな雰囲気がします。
しかし、トランザクションなどを考えるとjavaインスタンスとの同期を真面目に実装するのは
たいそうメンドウな仕事になりそうです。
おそらく多くの人が考えることなので、すでに多くの成功設計例があるかと思うのですが、
キーワードが思い当たらずうまく探せないでいます。
このような問題を考えるのに適した参考サイト,書籍,キーワード,ライブラリなどご紹介
いただけないでしょうか。よろしくおねがいします。
0268デフォルトの名無しさん
NGNGアフォらしくて泣けてくる・・・
早く仕事でEOF使いた ぃ ょ ぅ ・・・
0269デフォルトの名無しさん
NGNGそれってCMPなエンティティBeanではないの?
0270デフォルトの名無しさん
NGNG0271デフォルトの名無しさん
NGNG0272デフォルトの名無しさん
NGNGポーリングするしかないですかね。
それとも直アクセスは禁止したほうがいいのかな。
0273デフォルトの名無しさん
NGNGしとけ。
0274デフォルトの名無しさん
NGNG機能があるが。その他のDBにもあるはず。場合によっては、インステッドトリガ
といって、更新DML全体をフックすることもできたと思う。
ただ、トリガーをあまり使うと、ブラックボックスが多くなってシステム
全体の見通しは悪くなると思う。ちなみに私はトリガーあまり使わない。
トランザクション的に非同期でよいのなら、DBトリガーで外部にメッセージ
を発信するだけにして、実際の処理はそのメッセージを受けたプロセスが
実行するようにするといいと思う。
0277デフォルトの名無しさん
NGNGたとえば、、、
作成したアプリの実行環境はWin限定
DBはORACLEが基本だが、場合によってはSQL Serverもあり
なーんていわれたら、どんなコンパイラ選びます?
あ、あくまでもクライアントPC上で動作するexeファイルを作成する
目的であり、Web系のアプリ作るわけじゃないですが。
0278デフォルトの名無しさん
NGNGVB
0279デフォルトの名無しさん
NGNG俺は慣れてるからBCB使うけど。
0280デフォルトの名無しさん
NGNGJavaでWebObjects。
Oracleで作ってたシステムを、アプリ側はコード変えずにSQL Server用に
できちゃったりなんかしちゃったりする。
0281デフォルトの名無しさん
NGNGODBC, JDBC かませとけば WebOjects じゃなくても みんなそーなんじゃない?
つーか、システムの内容にもよるけどふつーはバックエンドの処理を
DB依存のストアドで記述するから、ODBCとか使っていてもDBを交換できない罠。
0282デフォルトの名無しさん
NGNGじゃあ280のいう「コード変えずに」というのはどの部分の話?
ODBCやJDBC経由すればアプリ側のコードが変わらないのは当たり前だと
思うんだけど・・・
0283デフォルトの名無しさん
NGNG要求仕様が...
> DBはORACLEが基本だが、場合によってはSQL Serverもあり
なのに...
> DB依存のストアドで記述する
あなたは、ヴァカですか ?
0284デフォルトの名無しさん
NGNG0285デフォルトの名無しさん
NGNGその基本って考え方がド素人。
プーか?
0286281
NGNGオレが「ふつーはDB依存のストアドで〜」って言ったのは、
280のWebObjectsのDB非依存性に対しての現実的回答ね。
決して、277のクライアントアプリケーション作るのにうんぬん、
に対するコメントではないよ。
0288デフォルトの名無しさん
NGNG0289デフォルトの名無しさん
NGNG0290デフォルトの名無しさん
NGNGセッション管理とかConnection Poolとか一切無し。
こんな製品作ってる会社からは、一刻も早く抜け出したい今日この頃。
0291デフォルトの名無しさん
NGNG0292デフォルトの名無しさん
NGNG0293デフォルトの名無しさん
NGNGcreate table header(id serial,text hoge);
create table detail(id serial,header_id,text foo);
みたいなテーブルで、headerで採番されたidをそのままdetailに使いたいと思うんだけど、
insert into header (hoge) values('abc')
としたときのidを取得するにはどうしたらいいの?
PostgreSQL 7.2.1(on Linux)
0294デフォルトの名無しさん
NGNGSELECTした値でinser into detailしる。
その際detailのIDは自動採番にせずに普通の整数型にしる。
それがいやなら
headerとdetailのidを関連づけするためのリンクテーブルを作成しる。
0295デフォルトの名無しさん
NGNG0296Delフサギコ ◆zE1iiRdQ
NGNG/...... .. .../
||::: ∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|: ̄\ ミ,, ゚Д゚ミ< SQLの日付教えて!
|: :|: ̄U U ̄:|\_________
|: :|: .:|
DATEフィールドに日付が入っているときに
WHERE
("2002/05/22" <= DATE)
AND (DATE <= "2002/05/24")
こんなSQLを流してるんだけど、
このSQL文ってDBに依存している気がするです。
どのDBでも使える、SQL文によるDate型の比較方法って
なんかあるんでしょうか?
氏ってたら教えてくださいませ。
0297デフォルトの名無しさん
NGNGないと思われ。
日付型はDB依存になるのであまり好きでない。
0298デフォルトの名無しさん
NGNG実際は2002/05/24 00:00:00と評価されると悲惨ですな。
0299デフォルトの名無しさん
NGNGやっぱ日付は文字型だろ。
0300デフォルトの名無しさん
NGNGだな
0301デフォルトの名無しさん
NGNG期間を指定した検索するときは?
0302デフォルトの名無しさん
NGNG2000年問題も過ぎ去ったとまた日付をYYMMDDでフィールド
設計やっているうちの会社は厨房ですか?
0303デフォルトの名無しさん
NGNG0304デフォルトの名無しさん
NGNG0305デフォルトの名無しさん
NGNG0306Delフサギコ ◆zE1iiRdQ
NGNGミ*゚Д゚彡
ヤパないのね。
0307ぽっくり
NGNG同じサーバー内にデータベースの数を増やせば
増やすほどパフォーマンスは低下するものなのか?
なぜ、低下するのか等の理由も教えて!
分かるやつ、教えろ。
0308デフォルトの名無しさん
NGNGいっぱい動いているからじゃない?
03090うぇん
NGNG--------------------------
1 |ギコ |test... |1 |
2 | モナー | 逝ってよし| 2 |
3 | シー |ウトゥ |2 |
3 | 肉 |ゴルァ |2 |
こういうテーブルで
part | count
----------
1 | 1
2 | 3
こういうviewってストアドとか使わないでsql文で出すには
どーやったらいいんすか?
0310デフォルトの名無しさん
NGNGselect part, count(part) from ... group by part ってな感じで。
0311デフォルトの名無しさん
NGNG?
0312309
NGNG0313デフォルトの名無しさん
NGNG0314逝って良しの1
NGNGデータベース間での情報の整合性取るのは台数増やせば増やすほど
増える。
0315デフォルトの名無しさん
NGNGOracleは大文字の方が早いって聞いたことがある(眉唾)
0316デフォルトの名無しさん
NGNGC/Java のコードは小文字が多いので見分けを付けやすいように (外部
ファイルに定義することも多いが)。
0317デフォルトの名無しさん
NGNGとか、命令は大文字でやっとる。
0318デフォルトの名無しさん
NGNG>241 >248
みたいな場合は継承つかったらどうかな?
0319デフォルトの名無しさん
NGNGSelect 名前 From テーブル Order By コード
テーブル名、列名は日本語。これ定説。
0320デフォルトの名無しさん
NGNG0321デフォルトの名無しさん
NGNG全ての文字情報はDBに存在するってアプリってどう思う?
0322デフォルトの名無しさん
NGNGPL/SQLでインサート文を作ってDBにインサートしたい。と考えてます。(1500万レコード)
である列は乱数を発生させて(DBMS_RANDOM)それを0埋めで15桁に加工したい。それで他のレコードは1〜10
までの数をランダムにインサートの文に埋め込みたいと思います。
可能なのでしょうか?もし可能であればヒントを教えて頂きたく思います。
(カーソルを用意して処理をするのだと思いますが、1〜10のレコードをランダムに埋め込むというのが考えつきません。)
0323デフォルトの名無しさん
NGNG極度に高い応答性を要求するアプリでそれは酷いけど
べつにいいんでない?
windowsでいうところの文字列リソースだってダイアログリソースだって、
あるいみDBみたいなもんだし。
0324デフォルトの名無しさん
NGNGふつうにCかperlかVBかrubyか手書きでもいいから
挿入文を150万レコード分作りなさい。
途中にcommit文を入れとくと、たぶん吉。
0325デフォルトの名無しさん
NGNG(15桁に)
別にTO_CHARで編集するだけでいいだろ。ただし、DBMS_RANDOMでは
BINARY_INTEGER=signed longという罠はあるが。
(1〜10まで)
意味がよくわからないんだが、特定のカラムに1〜10の数をランダムに入れるのか、
カラムが1〜10まであって、どれか1つに何かの値を入れたいのか、1個から10個の
レコードをランダムにINSERTしたいのか。
1番目なら乱数を9で割った余りに1を足すとか。
2番目なら動的SQLを使うしかない。DBMS_SQLパッケージ参照。
3番目なら乱数とってFOR〜LOOPだろ。
0326デフォルトの名無しさん
NGNG1つ目の要件は、LPADでいけないかな?
俺は使ったこと無いんだけど・・・・
いろんな人の意見を聞きたいのでageておく。
こーいうとき、Perl使えれば楽だろうなぁとは思う。
0327326
NGNGまず、
> ある列は乱数を発生させて(DBMS_RANDOM)それを0埋めで15桁に加工したい
これは、326で書いたとおりLPADでいける。
> 他のレコードは1〜10までの数をランダムに
これも、DBMS_RANDOMを使えば可能。
手元の「Oracle8i PL/SQL パッケージ・プロシージャ リファレンス リリース8.1」に
よれば、DBMS_RANDOMは
このジェネレータは8 桁の整数を生成します。
ということなので、この結果を1000000で割ると、
必ず絶対値が10未満になる。
さらに、ABSあたりで正の整数になおし、
ROUNDで小数点を丸める。で、0だったら1を足すと。
値のばらけ具合はわからんが、とりあえず欲しい結果は出るでしょう。
でも、マジでPerlかC使った方が楽そう・・・・
PerlならDBIで直接Insert出来るし、Cで直接が難しくても
SQL*Loader使えば良いし・・・
0328デフォルトの名無しさん
NGNGことがありますよね。この時の 0..1なのか 1..1なのかってテーブル見て
わかりますか?
[学生]テーブルと、[サークル]テーブルがあって、
学生テーブルにサークルIDの参照キーがあったとして、
[学生]
学生ID PRIMARY
サークルID FOREIGN KEY
[サークル]
サークルID PRIMARY
この学生.サークルIDがNOT UNIQUEならばサークル:学生は1:N、
UNIQUEならば(そんなケースはないだろうけど)サークル:学生は1:1だなって
のはわかるんですが、(1..1)なのか(0..1)なのかがわからないような気がして。
0329デフォルトの名無しさん
NGNG学生.サークルIDがUNIQUE可で、かつNULL可ならば、
サークル:学生は (0..1):N はわかるような…。
でも、サークル側から見たときに、学生が「1以上」なのか「0以上」なのか
がわからないんでないかなと思ったのです。
ああ自分で書いててわけわからん…
0330デフォルトの名無しさん
NGNGSQL-92のEntryだと無理
テーブル間の制約をかかにゃならんでしょ。SQLパズルにそういう例なかった?
0331デフォルトの名無しさん
NGNGほとんど同じような内容のテーブルが複数あるのですが、
区分フィールドを作ってひとつのテーブルにまとめた場合と
別のテーブルのままと、どちらが検索時間が早いですか?
0332デフォルトの名無しさん
NGNG0333デフォルトの名無しさん
NGNG条件も書かずに断定すなっ!!
>>331
検索結果が1レコードだけ、または複数に分かれている
テーブルのどれか1つのテーブルの内容のみであれば
分かれていた方がよい。
検索結果が複数のテーブルのあっちこっちから
レコードを引っ張ってくるようならば、場合によって
1つにまとまっていた方が良いこともある(JOINのコストが減るので)
しかし、最終的にはケースバイケースという罠(w
きちんとコストを計測しよう!!
0334デフォルトの名無しさん
NGNG別々のテーブルに入れて管理することにします。
ありがとうございました。
0335デフォルトの名無しさん
NGNG0336デフォルトの名無しさん
NGNGYes
0337デフォルトの名無しさん
NGNG0338_
NGNGVBでDataEnvironmentを使って、
フォームにデータを表示させたのですが、
テキストボックスに値を入力するだけで
Updateを呼んでいないのに値が更新されてしまうみたいなんです。
これはなぜでしょうか・・・。
0339デフォルトの名無しさん
NGNG0340デフォルトの名無しさん
NGNG0341デフォルトの名無しさん
NGNG結果を待たずにキャンセルするようにするには、どのような方法があるでしょうか?
どなたか教えていただけないでしょうか?
クライアントはVB6 + ADO、鯖はSQL鯖っす。
0342デフォルトの名無しさん
NGNGバンっ
カチャ
;y=ー( ´ー`)・∵. ‐
\/|341|) ・∵.
0343デフォルトの名無しさん
NGNGそんなことは絶対できません。
0344デフォルトの名無しさん
NGNGそーなんですか?厨でスマソでし。
したら、例えば検索条件はユーザが指定できるような仕様で
えいや!で検索しにいったら返ってこなぁ〜い....ってな場合は、
クライアントはひたすら待つしかないってことですか?....
0345デフォルトの名無しさん
NGNGタイムアウトなら設定できるんでないの?
0346デフォルトの名無しさん
NGNGクエリのキャンセルできるんじゃなかったっけ?
0347デフォルトの名無しさん
NGNG全然人こないや
0348341,344
NGNGなんか非同期クエリできそうなんでしが、簡単なプログラム
書いてみてもうまくできないっす...
ADO.Recordset のOpen メソッドをadAsyncExecuteで呼び出して、
とりあえず、FetchCompleteイベントでキャッチしようとしてるですが
だめぽんです。
Connectは、SQL鯖のOLEDBなんでげす。
そもそも非同期クエリの考え方が違ってるんでしょうか?...
サンピルあったら禿げしくキボンヌでやんす〜( ´Д`)
0349346
NGNGイベントリスナを WithEvents 宣言してないとか?
Private WithEvents Cn As ADODB.Connection
Private Sub Form_Load()
Set Cn = New ADODB.Connection
Cn.Open "Provider=SQLOLEDB.1;Initial Catalog=pubs;Data Source=localhost", "sa", ""
Cn.Execute "SELECT fname FROM employee", , ADODB.adAsyncExecute
Debug.Print "非同期だから、クエリ実行中にこれが表示される"
End Sub
Private Sub Cn_ExecuteComplete( _
ByVal RecordsAffected As Long, ByVal pError As ADODB.Error, _
adStatus As ADODB.EventStatusEnum, ByVal pCommand As ADODB.Command, _
ByVal pRecordset As ADODB.Recordset, ByVal pConnection As ADODB.Connection)
Debug.Print "非同期クエリが完了したら、これが表示される"
End Sub
0350341,344
NGNGレスありがとございます。
えとですね、RecordsetのOpenメソッドを adAsyncExecute or adAsyncFetchで
コールしても、FetchCompleteイベントや、FetchProgressイベントが
発生していないのか、イベントをハンドリングできないみたいなんす...
で、349さんの通り、ConnectionオブジェクトのExecute メソッドを
非同期にした場合は、ちゃんとイベントをハンドリングできるみたいですね。
...なんで?
--
Private WithEvents RS As ADODB.Recordset
Private Sub Form_Load()
Set CN = New ADODB.Connection
CN.Open "File Name=ADOSAMPLE.udl"
Set RS = New ADODB.Recordset
RS.Open "SELECT * FROM sysobjects", CN, adOpenStatic, adLockReadOnly, ADODB.adAsyncFetch
Debug.Print "非同期だから、クエリ実行中にこれが表示される"
End Sub
Private Sub RS_FetchComplete(ByVal pError As ADODB.Error_
, adStatus As ADODB.EventStatusEnum _
, ByVal pRecordset As ADODB.Recordset)
Debug.Print "非同期クエリが完了したら、これが表示される?だめぽ.. ;; ´Д`)"
End Sub
Private Sub RS_FetchProgress(ByVal Progress As Long _
, ByVal MaxProgress As Long _
, adStatus As ADODB.EventStatusEnum _
, ByVal pRecordset As ADODB.Recordset)
Debug.Print "非同期クエリのフェッチ中、これが表示される?だめぽ.. ;; ´Д`) "
End Sub
0351デフォルトの名無しさん
NGNG0352デフォルトの名無しさん
NGNG0353349
NGNG:
Set RS = New ADODB.Recordset
RS.CursorLocation = ADODB.adUseClient
:
で、どうだろうか?
0354デフォルトの名無しさん
NGNG何か良い方法ありませんか?
RecordSetを地道にコピーするしか思いつかない・・・
0355デフォルトの名無しさん
NGNGDB自体にリンクなんかの機能があるならそっち使ったほうが楽。
0356デフォルトの名無しさん
NGNG0357デフォルトの名無しさん
NGNGどうも、Transact-SQLが使いづらくてしかたない。
C++とかのかみ合わせも良くないし。
なにかイカシタDBエンジン知らない?
0358デフォルトの名無しさん
NGNG...嘘
0359357
NGNG問題解消。
0360デフォルトの名無しさん
NGNGソフトウェア板で見つけた。
実際はオランダの会社が開発元でその日本語版みたい。
結構よさそうだけどどう?
http://www2.noritz.co.jp/anchor/ashp/plsqldev/plsqlindex.html
0361デフォルトの名無しさん
NGNGPL/SQL はやめときなよ・・・
0362デフォルトの名無しさん
NGNG0363デフォルトの名無しさん
NGNG値段がいくらか知らんがObject Browserで十分でねーの
0364デフォルトの名無しさん
NGNG0365デフォルトの名無しさん
NGNG2chにリークしてみるか?って奴ですか?
昨日たまたまサイトみたら来月とか書いてあったけど、、、
ソフトウェア板にそんな紹介ないだろうが!
0366デフォルトの名無しさん
NGNG0367360
NGNGまあ、最近はOracleばかりってわけでもないんで、
使えればObject Browserでもどっちでもいいんだけど。
0368デフォルトの名無しさん
NGNG1個づつデータセットつくって更新するのは短期間に何回も接続しすぎでよくないですし.
50個のデータセットを求めるのは問い合わせ文が長くなりすぎるし
0369デフォルトの名無しさん
NGNG単純にUPDATEを投げるだけでOKな場合もあるだろうし、ある条件で
絞り込んでレコードセットを取得した上で更新しなきゃyダメなケースもある。
まずは要件をハッキリさせたほうがヨイ。
0370341,344,350
NGNG遅くなりますた...ありがとうございます。
やりたいことできそうす...感謝感激〜!!!
0371デフォルトの名無しさん
NGNG0372デフォルトの名無しさん
NGNG理想をいえば VC+Pro*C互換Tool+.mdb の組み合わせで使えるとうれしいんだけど
#DB依存するようなSQL文は書いていない、の前提でも可
0373デフォルトの名無しさん
NGNGOracleの評価版ひろってくれば?
0374デフォルトの名無しさん
NGNG0375デフォルトの名無しさん
NGNG(DBへはADOで接続してます。)
ローカルDBへは接続できるのですが、ネットワーク経由だと
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Sybase][ODBC Driver]Unable to connect to database server: specified database not found
とソンナノネーヨと怒られてしまいます。ネットワーク経由でなにかコツがあるのでしょうか?
サンプルソースは
Dim Conn, SQL, oraDs
Set Conn = Server.CreateObject("ADODB.Connection")
→Conn.Open "DSN=データソース名"
SQL = "SELECT * FROM テーブル名"
Set oraDs = Conn.Execute (SQL)
矢印の所でエラーになりまふ。
0376デフォルトの名無しさん
NGNG【テーブルAのフィールド】と【テーブル名】とで
テーブル間の関係を持たせているのですが、こういう設計ってありえるのでしょうか?
テーブルAのフィールドには参照するテーブル名が格納されます。
もちろんレコードを識別するキーは双方にあります。
テーブルAの参照するテーブル名を格納するフィールドが無駄に思える。
DB設計者は「こうしておけば関係のないテーブルまで見に行かなくて済む」との見解。
DB設計者のスキルに疑問。
0377デフォルトの名無しさん
NGNGまったくありえない設計です。
0378デフォルトの名無しさん
NGNGやはりそうですよね。
「外部キーと主キーで関係を持たせるのが理に適っている設計では?」と
懸案事項として挙げたら頑固だとか杓子定規だとか罵声を浴びせられました。
ほかの現場も実際こんな感じでしょうか?
立場上強い人間に左右される?
0379デフォルトの名無しさん
NGNGジサクジエンダロ
理由:376の説明で理解出来る香具師は
いない。
0380デフォルトの名無しさん
NGNG根本的に「関係のないテーブルまで見に行く」設計をしているなら
ただの莫迦
0381デフォルトの名無しさん
NGNG社員情報を主として各種アプリ登録情報テーブルが幾つか用意されている。
利用申請を出すと該当するアプリ登録情報テーブルにかかれる。
バッチ処理でアプリ登録情報テーブルからシステムに反映させる。
0382デフォルトの名無しさん
NGNG0383デフォルトの名無しさん
NGNGDBを、巨大なグローバル変数と考えているなら、
ロールバック無しで開発するのも有意義です。
0384デフォルトの名無しさん
NGNG意義はありすぎ。
プログラムで処理中にエラーが発生して、今までに行ってきた変更を
すべてを元に戻すことができるのは便利だよね?
価値は現実世界に過去にいけるタイムマシンが存在するのと同じぐらい。
トランザクショナルなシステムは何度でも人生をやり直せるわけだ。
0385デフォルトの名無しさん
NGNGもしロールバックできなかったらどうなる?
DBに限らず、メリット・デメリットに関しては逆説的に考えてみるとよくわかるぞ。
0386デフォルトの名無しさん
NGNG多分そのプロジェクトもうだめだね。
少なくともその設計した人レベル低すぎ。エンジニアと呼べない。
あなたもなるべく早くその会社辞めて、もうちっとましな上司のいる会社に移りなさい。
脳みそ腐るよ。
0387デフォルトの名無しさん
NGNGプログラムに エラーが なければ ロールバックする必要は ないということでしょうか?
デバッグ完の状態ならば、必要なさそうですが・・・。
0388デフォルトの名無しさん
NGNGできなかったらどうなる? というのが わからなかったから きいているんです。
アクセスのMDBを使った場合、排他的処理をMDB側でしていると思うのですが・・・。
この場合、ロールバックは いらないような感じがするんです。
0389デフォルトの名無しさん
NGNGバグが満載だから(w
0390デフォルトの名無しさん
NGNGはぁ・・・
おもしろいね君
0391デフォルトの名無しさん
NGNG汎用機だろうがPCだろうが携帯だろうが、あらゆるシステムはいつかは必ず壊れる。
それが明日か50年後かなんてことはどうでもいい。
もしものとき、DBが即座に復旧できなかったら、客はどうなる?
ロールバックがないDBシステムなんて。。。ガクガクブルブル
0392デフォルトの名無しさん
NGNGまぁまぁ。
これだからACCESSでアプリもどき作ってる香具師は、、、
本人はDB開発者と思ってるのかもしれないけど。
0393デフォルトの名無しさん
NGNGロールバックなんて知らないよ。
SELECTして返ってくるデータを使い回す。
トランザクションなんて関係なく更新する。
ヤシラにとって、DBなんてのは、でっかくて便利なグローバル変数。
って、マジで漏れの会社でこういう使い方してるよ。
言ってやっても聞く耳無し。「こう使うって勉強したんだもん」だと。
DBも、リレーションなんか張らねぇな。
ちょっとしたフラグなんかも、全部DBにつっこむ。
0394デフォルトの名無しさん
NGNG0395デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1034088067/972
から続いているんだと思うのだけど。
ACCESSなんだよねぇ・・・
担当者ロールバックして欲しいって言ってるんだ。
その担当者ってSE?
(((((((( ;゚Д゚)))))))ガクガクブルブル
0396デフォルトの名無しさん
NGNGロールバックって一連の処理でデータに不具合が発生した場合には
役立つだろうけど
システムが壊れたんじゃ
バックアップがなきゃどうしようもないんじゃないのけ
0397デフォルトの名無しさん
NGNGバグSQLでも つくっとく?
0398デフォルトの名無しさん
NGNGシステムクラッシュとか、
プログラム処理エラーなんて 抽象的なことは ダメね。
0399デフォルトの名無しさん
NGNGそれで、エラー対応してんじゃねぇのか?
0400デフォルトの名無しさん
NGNG自分で具体的な例をあげてるじゃないの(藁
それが絶対発生しないシステムなんてないしね。
0401デフォルトの名無しさん
NGNGつーか>396(=398?)はトランザクションとかをもうちょっと勉強してみなさいよ。
仮にデータが100ギガあるDBがあったとする。数秒おきにガンガンデータの入力があるとする。
要件として、障害が発生したとしても10分前までに入力されたデータは全て保護されなければならないとする。
そんな時、オマヘは100ギガを常にバックアップ取れというんか?
0402デフォルトの名無しさん
NGNGまあタイマーで毎分ファイルコピーでもしてがんばれや(ワラ
0403デフォルトの名無しさん
NGNGそういう似非DB開発者はたいてい
「DBにはACCESSを使用してます。」
とか言うんだよね。
※※※※ 重 要 ※※※※
Jetはファイル共有型DBMSです!
ローカルなファイルサーバにMDBおいてるからってクラサバじゃねーっつ
ーの。
VB厨やデル厨ってよく聞くけど、そいつらって、その言語に傾倒してるけど
それなりに使えてるからましだよね。
0404デフォルトの名無しさん
NGNGじゃあACCESSを使用するときDBには何を使用するといえばいいんだよ?
0405デフォルトの名無しさん
NGNG男ならアイサム!!
(ハズシタカ....)
0406デフォルトの名無しさん
NGNGJet
0407デフォルトの名無しさん
NGNG>Jetはファイル共有型DBMSです
と揚げ足とってみるテスト
0408デフォルトの名無しさん
NGNG開発規模が違いすぎるからだと思うな
小規模なLANの世界と大規模なネットワークでは
「システム」の意味そのものが違うし・・・
0409デフォルトの名無しさん
NGNG何回言えばわかるんだろうね。
JetはDBMS、ACCESSはフロントエンド。
君には理解できないか。言うだけ無駄か。
釣れた!とか言われる前に氏ねば?
0411デフォルトの名無しさん
NGNG407はDBMSの意味さえわからない罠
0412デフォルトの名無しさん
NGNG一理あるといえばあるが、スタンドアロンでもきちんと設計され
てるものもあれば、大規模クラサバでも信じられないテーブル設
計のものもある。
スレの趣旨としては、よりよいDB設計についてのスレなので、今
は厨でもやる気のあるやつや人のアドバイスを真摯に受け止める
やつとは話す価値がある。
0413デフォルトの名無しさん
NGNG○○○○○○じゃそんなことできないよ。
0414デフォルトの名無しさん
NGNGトランザクションは基本すべて Auto Commit ですが何か?
0415デフォルトの名無しさん
NGNG厨房ですまん。たまにAuto Commit対応という言葉聞くけど、
A処理(完了)
B処理(完了)
C処理(ネットワーク障害により異常終了)
の場合、C処理の異常終了をトランザクションサーバ(若しくは
データベース)が感知しただけでロールバックしてくれるのか。
それとも、C処理で異常終了したら、やっぱりプログラム側で
ロールバック命令を発行しないといけないのか。気が向いたら
教えてくれ。
0416デフォルトの名無しさん
NGNGAuto CommitはSQL文が発行(終了)されるたびに、トランザクションをCommitする機構です。
>>412さんの例だと実際には
1.A処理(完了)
2.コミット
3.B処理(完了)
4.コミット
5.C処理(ネットワーク障害により異常終了)
6.ロールバック
7.5の前に戻る
ってことになります。
0417デフォルトの名無しさん
NGNGそうそう!バグが無くてエラーが発生しない100%完璧なプログラムならロールバックする必要は無い!
でもそんな業務システム存在するか?
少なくとも君のプログラムはOSとか言うバグだらけのプログラムの上で動いているし、
誰かが処理の最中にケーブル抜くかもしれないしね。
何億回に一回発生するかしないかのわからないエラーのためにトランザクションを利用するわけです。
0418デフォルトの名無しさん
NGNGうそーん
0419デフォルトの名無しさん
NGNGうそじゃねぇ。
0420デフォルトの名無しさん
NGNG何億回のエラーの前に ハードが 故障しそうだ(w
0421デフォルトの名無しさん
NGNGゲートウェイが停止してたとか、別サーバへの接続が瞬断にあったとか、ディスクのパーティ
ションがいっぱいになってたとか、手作業で入れておくべきレコードが入っていなかったとか、
君のシステムではそういった運用上の問題は考慮しないのかね?
0422421
NGNG0423デフォルトの名無しさん
NGNGということは Auto Commit で連続して SELECT した場合、トランザクション
分離レベルの Repeatable Read 以上は意味がないということ?
0424デフォルトの名無しさん
NGNGというかAutoCommit Onにしてトランザクションも糞もないもんだ、といってみるテスト。
0425デフォルトの名無しさん
NGNG*どんな処理のどんな単位で*何億回に一回エラーが発生するんだ?
0426デフォルトの名無しさん
NGNGデータベースとの接続が きれたら、ロールバックしようにも できないじゃん!
0427デフォルトの名無しさん
NGNGデータベースをオープンする(MDB)
テーブルをオープンする。
SQLを実行する。
テーブルをクローズする。
データベースをクローズする。
こういったやり方の場合は、ロールバックは 不要か?
0428デフォルトの名無しさん
NGNG0429デフォルトの名無しさん
NGNG藁)。何でもありうる。
宇宙線の影響で、メモリの内容が1ビット書き換わるというのはどうよ。
CPUのバグとかもいいね。
0430デフォルトの名無しさん
NGNGそもそもMDBってロールバックできるかな?
ログとってないんじゃないの。
0431デフォルトの名無しさん
NGNGせめて最新50ぐらい過去ログよもうね。
複数の人がロールバック出来ないっていってる。
若干一名、人の話を聞こうとしない香具師がいるけど。
0432デフォルトの名無しさん
NGNG0433デフォルトの名無しさん
NGNG俺が書いたのと、俺が書いた覚えが無いのと
0434デフォルトの名無しさん
NGNGじゃあ、
ADOやDAOの
BeginTrans
CommitTrans
RollbackTrans
メソッドはは何なのだ?
MDBに対してできないのか?
0435デフォルトの名無しさん
NGNGそういうのは RDBMS 側でロールバックしている。
0437デフォルトの名無しさん
NGNGだな。
一人かもしれんし・・・(w
0438デフォルトの名無しさん
NGNGできない
0439デフォルトの名無しさん
NGNG0440デフォルトの名無しさん
NGNGだれも大騒ぎなんかしてない(藁
0441デフォルトの名無しさん
NGNGできるぞ!この知ったか野郎!
0442デフォルトの名無しさん
NGNG0443デフォルトの名無しさん
NGNGマヂ?ログたどって過去の状態に戻る事できるの?
0444デフォルトの名無しさん
NGNGover 2kだが
Sub test()
Dim cn As ADODB.Connection
Set cn = CurrentProject.Connection
cn.BeginTrans
cn.Execute "update テーブル set b = '値'"
cn.RollbackTrans
End Sub
これでテーブルが更新されているかどうか
確かめられるだろ。
0445デフォルトの名無しさん
NGNGRollbackTransの行で「RollbackTransを実行するためにはBeginTransを使用してください」
とエラーが出るのですが、何故でしょう?
0446デフォルトの名無しさん
NGNGアクセスぐらい使えるようになろうな
0447デフォルトの名無しさん
NGNGおめーさ、自分のコードのバグ探して
もらえなかったからといって煽るなヨ。
見苦しいぞ。
Executeの前に
BeginTransメソッド呼ぶのを
忘れてるだけだろ。
0448デフォルトの名無しさん
NGNGおっ、できる。
Access侮りがたし。
ちなみに複数のトランザクションを同時に実行した場合ってどうよ。
Transaction Isolation Levelって有効なの?
0449445
NGNG単純に興味があったから貼り付けて実行したらエラーが出たから
聞いただけなのにぃ
まぁ、もういいや。それほど興味があったわけでもないし。
0450デフォルトの名無しさん
NGNG誤認識したのはワルイが
コイツらマジでDAOやADOをまともに
使ったことがないのに、MDBファイルの
論議してたのか?
Accessだけの技術じゃないのに...
0451デフォルトの名無しさん
NGNGBeginTransでカイル君にきいてみれ。
まOraみたいにSAVEPOINTまでは指定
できないけどな。
0452デフォルトの名無しさん
NGNG0453デフォルトの名無しさん
NGNGAccessのブビエディタのカイル君に
きいてみれ。
0454デフォルトの名無しさん
NGNG0455443
NGNG障害前の状態に復帰できるのか、って事だったんだが・・・
0456デフォルトの名無しさん
NGNGもう一度トランザクションと
リカバリを勉強してこい。
0457デフォルトの名無しさん
NGNG>障害発生後にトランザクションログ辿って
>障害前の状態に復帰
そのためのトランザクション処理じゃないのか?
障害前の状態に戻すって、
オマエんとこのDBは障害があっても
コミットされてしまうのか?
0458デフォルトの名無しさん
NGNGAccessであるのかと言っているんだと思うが、そんな物はねー。
トランザクションとトランザクションログは別物だ。
0459デフォルトの名無しさん
NGNG0460デフォルトの名無しさん
NGNG0461デフォルトの名無しさん
NGNGMDBでは 無理に ロールバックを使う必要ないってことだな(w
0462455
NGNGそそ、それ。
0463デフォルトの名無しさん
NGNGもうちょっと455の厨っぷり
を晒そうと思ったのに。
(まぁ>>462で自ら晒したわけだが)
漏れは、トランザクション処理
ができる、できないに対しコード例を書いたまでだ。
>>461まだ和姦ねぇのか(真性厨だな)
プログラム内で関連性のある
複数のSQLを発行してその途中に
クライアント側で瞬断なり、
テスト時に予期できなかった不整合データが
入ってきたらどうする?
おまえんとこはわざわざ調査して手で直すのか(フラ
0465デフォルトの名無しさん
NGNGこいつはまた久々にイタイ奴が登場したもんだな。これくらいの話題は5秒で解決してやれよ。
0466デフォルトの名無しさん
NGNGなるほどデスマーチがなくならない訳だ。
0467デフォルトの名無しさん
NGNGアフォだという事を例えたネタだって事は誰の目にもあきらかだろうに。
0468デフォルトの名無しさん
NGNGイタタタ。学生さん?
0469デフォルトの名無しさん
NGNGほんとイタイな。
ここで話しているのはデータファイルが
MDBだろうが、SQLサハデーダ、Oraデータだろうが
関係ないの。分かる?
トランザクション処理対応しているDBMSなら
プログラムできちんと、ロールバック、
コミットのタイミングを障害時のビジネスロジック
に合わせなければいけないんダヨ。
>>463でもいってるだろ。
頼むからリカバリとごっちゃにしないでくれるか。
MDBはシビアな管理(リカバリ・セキュリティ・最適化等)
について向いていないだけだ。
0470デフォルトの名無しさん
NGNG同時接続ユーザー数を真っ先に挙げて欲しかった。
0471デフォルトの名無しさん
NGNG0472厨房
NGNG厨房だからな(w
0473デフォルトの名無しさん
NGNG不毛な論争スレだが、ちょっと勉強にナタヨ。
ttp://www.microsoft.com/japan/sql/evaluation/compare/prk/vsOracle4_4.asp
0474デフォルトの名無しさん
NGNGなんでageるんだか。
0475デフォルトの名無しさん
NGNGオレモナー
0476デフォルトの名無しさん
NGNGキミはもうちょっと日本語読解力をつけたほうがいいな。
かなりイタイ事言ってる自分に気づけ
0477デフォルトの名無しさん
NGNG0478デフォルトの名無しさん
NGNGそうか?
スコープを理解して適切に使えばよろし
0479デフォルトの名無しさん
NGNG>477
スタンドアロンで予算30マソの仕事にもOracle使うヤシ発見?
0480デフォルトの名無しさん
NGNG原チャリ感覚で使うと結構便利。
0481デフォルトの名無しさん
NGNG「そもそもロールバックなんかイラネーじゃん」
から始まってるのか・・・
そりゃ荒れる訳だ(w
0482デフォルトの名無しさん
NGNG0483デフォルトの名無しさん
NGNGプロジェクトに貴賤無し。
予算30マソでも、それを月3本こなせば結構利益率良いぞ。
0484デフォルトの名無しさん
NGNG0485デフォルトの名無しさん
NGNG0486デフォルトの名無しさん
NGNG単発短期でAccessとかExcelの仕事なら妥当な線だと思うけど。
0487デフォルトの名無しさん
NGNG0488デフォルトの名無しさん
NGNGAccessではロールバックできない
という知ったかが蔓延し、
可能なことを証明し、必要性を説明したが、
関係もないことを盾に反論した
ことが原因だな。
>>476
あのさ、トランザクションの操作というのは
設計者、プログラマによる人為的なもの。
漏れは別にAcessマンセーではないし、
Accessは糞といっても構わない。
だがな、それは管理面では糞だ
ということだ。
Accessがシビアなトランザクションに不向き
または、トランザクション自体が不要
という考えを持つようじゃ他のDBMSでもきちんと
使えてないヨーダナ。
0489デフォルトの名無しさん
NGNGいやこれは間違ってないっしょ
複数ユーザがガンガントランザクション張るような業務には使うなというのは定説だと思ってたけど。
0490デフォルトの名無しさん
NGNG低脳>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>精薄
0491デフォルトの名無しさん
NGNG共和国の方ですか?
0492デフォルトの名無しさん
NGNG0493デフォルトの名無しさん
NGNGだ か ら 同時接続ユーザー数でしょ、そ れ は。
0494デフォルトの名無しさん
NGNG0495デフォルトの名無しさん
NGNGハァ?
月500ですが何か?
やっぱり最下層は発想も貧乏だな。
0496382
NGNG0497デフォルトの名無しさん
NGNG0498デフォルトの名無しさん
NGNG0499デフォルトの名無しさん
NGNG0500デフォルトの名無しさん
NGNGほんとおめーアフォだな
ロックの仕組みを勉強してこい。
(さらにAccessではどのレベルまで
対応しているかまでだ。)
これに反論して、厨房ぶりをさらせ。(フラ
0501デフォルトの名無しさん
NGNGAccessで行ロック使って痛い目見たこと無いの?
0502デフォルトの名無しさん
NGNGだ か ら それは同時接続(以下略
0503デフォルトの名無しさん
NGNG数人のユーザでもロックは起こるし、
人数とは関係ないだろ。
0504デフォルトの名無しさん
NGNG数人ではまったんなら実装に問題があったんだろ。
0505デフォルトの名無しさん
NGNG0506デフォルトの名無しさん
NGNG「設計によっては」が抜けてたダケダ
だから、人数とは関係ない。
0507デフォルトの名無しさん
NGNG必要ならば使うべき」
でいいの?
0508デフォルトの名無しさん
NGNG30万円
0509デフォルトの名無しさん
NGNG昨年の所得税いくらでしたか? それともリーマンで月500の貧乏プロジェクトの
自慢ですか?
0510デフォルトの名無しさん
NGNG「Jetをバカにする割に、トランザクション使える事すら知らない奴多すぎ。」
でよいかと。
0511デフォルトの名無しさん
NGNG0512デフォルトの名無しさん
NGNGJetでTransaction使える事は知らなかったが、振り返って考えてみても
別にJetでTransanctionが使える事を知らなくてもいいや、っと。
0513デフォルトの名無しさん
NGNG0514デフォルトの名無しさん
NGNG0515デフォルトの名無しさん
NGNG厨が次々とわいてくる。
0516デフォルトの名無しさん
NGNG・DAO・ADO+MDBでトランザクション処理ができないと思ってたヤシ
・トランザクション処理とリカバリをごっちゃにし、さらに
Jet(orADO)+MDBだとリカバリが弱いといって、
トランザクション処理は必要なしと騒ぐ厨房
・Accessしか知らないくせにそれで自慢知ったかする厨房
(pin'sとかいうサイトの常連ども・・・ここにも来てるだろ山神)
そして、こんなことを書いている漏れ
0517デフォルトの名無しさん
NGNG俺、最初からここだったら泣いてたよ。
0518デフォルトの名無しさん
NGNGいいかどうかは、人によりけりだが、
漏れもちょっと前みたことある。
確かに、厨、知ったかの巣窟だったな。
まともなのは、SQLサバのK.Ogi...
とかいう氏ぐらいだった。
だが、2ちゃんでバトられながら
覚えた方がその分頭に焼き付くというのも
あるぞ。
0519デフォルトの名無しさん
NGNGそりゃ2chのほうがミになるのは解るけどね。
最初からココで、ココが普通だって事になると人生踏み外しちまうよ。
0520デフォルトの名無しさん
NGNG0521デフォルトの名無しさん
NGNG0522デフォルトの名無しさん
NGNG0523デフォルトの名無しさん
NGNGそれで、一生やっていけるなら 特に問題はない。
0524デフォルトの名無しさん
NGNGDBシステムとは、とか、
果てにはプログラミングとは
いう蛙は多いな。
アクセスのイヤなとこは
テーブルとかDB情報を例えリモートでも
ローカルのワークテーブルに
取り込まないとフォームやコンボBOX
に反映できないとこだ。
(リンクテーブルはリモート
データを全て取り込むしな。)
0525デフォルトの名無しさん
NGNG0526デフォルトの名無しさん
NGNGACCESSをDBだと思って、耐障害性についてレポート出せとか言う上司は氏んで欲しいね。
0527デフォルトの名無しさん
NGNG0528デフォルトの名無しさん
NGNG意外と、それでも仕事はこなせることが証明されました(w
自分の仕事の範囲だけ分かってりゃなんとかなるものよ
0529デフォルトの名無しさん
NGNGhttp://support.microsoft.com/default.aspx?scid=kb;ja;JP209137
0530デフォルトの名無しさん
NGNGMDBのサイズとしての限界は どれぐらいなんでしょうか?
一つのテーブルにおけるレコード数の実用的な限界って 何件ぐらいで考えて
設計されてますでしょうか?
0531デフォルトの名無しさん
NGNGMDBサイズ=2GB
テーブルサイズ=1GB
レコードは1GB以内であれば何行でもいいらしい。
0532デフォルトの名無しさん
NGNG0533デフォルトの名無しさん
NGNGなんかの入門書
プログラマのためのSQL
SQLパズル
Excel VBA
大村 あつし
Access VBA
谷尻 かおり
でいいんですか?
0534デフォルトの名無しさん
NGNGどーでもいいけどな(w
0535デフォルトの名無しさん
NGNG結構良い感じ〜♪
0536デフォルトの名無しさん
NGNG0537デフォルトの名無しさん
NGNGいかげん本星に帰れ、
0538デフォルトの名無しさん
NGNG昔は使い物にならなかった。今はメモリが安いから使えるのかな?
0539デフォルトの名無しさん
NGNGとりあえず使えてるよ。
0540デフォルトの名無しさん
NGNGそりゃー、そのDBのサイズ次第っしょ
0541デフォルトの名無しさん
NGNG0542デフォルトの名無しさん
NGNGテーブル1
ID 機種名
1 2ch
2 ふたば
テーブル2
ID 枝番 台数
1 1 10
1 2 20
2 1 10
2 2 30
2 3 40
このとき、
ID 機種名 台数1 台数2 台数3
1 2ch 10 20 0
2 ふたば 10 30 30 というデータを一度で取り出せるSQL文ってありますか?
0543デフォルトの名無しさん
NGNG0544デフォルトの名無しさん
NGNGとりあえず無難なのはアロンアルファ(ゼリー状)かな。
0545デフォルトの名無しさん
NGNGとりあえずODBCで繋げば?
0546デフォルトの名無しさん
NGNG>2 ふたば 10 30 30
は
2 ふたば 10 30 40
じゃないのかと、小一時間(略
というか、縦横変換はちょっと探せばゴロゴロしてるぞー。
というか、さらに、ここよりも
SQL教えて〜!! <2>
http://pc3.2ch.net/test/read.cgi/tech/1028653822/l50
の方がより正しいスレのような気がする。
DBがなんなのかわからんが、CASEとUNIONで
どうにか出来るだろうが。
0548デフォルトの名無しさん
NGNG条件は色々付くが、一応出来る。
ORA R8.1.7で確認済み
まぁ、向こうで聞いたみたいなのでこっちはもう見ないと思うがね。
SELECT ID,機種名, SUM(台数1) 台数1, SUM(台数2) 台数2, SUM(台数3) 台数3
FROM(
SELECT TBL1.ID ID, TBL1.機種名 機種名, TBL2.台数 台数1, 0 台数2, 0 台数3
FROM TBL1, TBL2 WHERE TBL1.ID = TBL2.ID AND TBL2.ID = 1 AND TBL2.枝番 = 1
UNION
SELECT TBL1.ID ID, TBL1.機種名 機種名, 0 台数1, TBL2.台数 台数2, 0 台数3
FROM TBL1, TBL2 WHERE TBL1.ID = TBL2.ID AND TBL2.ID = 1 AND TBL2.枝番 = 2
UNION
SELECT TBL1.ID ID, TBL1.機種名 機種名, TBL2.台数 台数1, 0 台数2, 0 台数3
FROM TBL1, TBL2 WHERE TBL1.ID = TBL2.ID AND TBL2.ID = 2 AND TBL2.枝番 = 1
UNION
SELECT TBL1.ID ID, TBL1.機種名 機種名, 0 台数1, TBL2.台数 台数2, 0 台数3
FROM TBL1, TBL2 WHERE TBL1.ID = TBL2.ID AND TBL2.ID = 2 AND TBL2.枝番 = 2
UNION
SELECT TBL1.ID ID, TBL1.機種名 機種名, 0 台数1, 0 台数2, TBL2.台数 台数3
FROM TBL1, TBL2 WHERE TBL1.ID = TBL2.ID AND TBL2.ID = 2 AND TBL2.枝番 = 3
)
GROUP BY ID,機種名
0549デフォルトの名無しさん
NGNGUPDATEする時に、更新する行がちゃんとあるかなんてのは
SELECT文なんかでいちいち調べてますか?
それとも、調べずに実行して例外や帰ってきた更新行数から正常に行われたかを
調べてますか?
SELECT文で調べるのはロックとかめんどくさいけど、
例外や更新行数で調べるのは何で失敗したか調べにくいんですよね。
たとえば、現在PostgreSQL+javaで開発しているんですが
INSERTしたときに主キーが重複していればSQLExceptionが起こるので
キャッチしてメッセージを受け取って主キー制約に違反していたときにでる
メッセージだったら主キーが重複してたんだなってわかるんですけど、
メッセージが変わったらどうするんだろとか、RDB変わると当然メッセージも変わるよな
とか考えるとこの方法ではちょっと不安です。
普通どうするもんなんでしょうか。
0550デフォルトの名無しさん
NGNG主キー管理するテーブルを別に持つのでわ。
調べずにやるってどうゆことよ?
0551デフォルトの名無しさん
NGNG各DBMSのエラーコードに依存するが、
JDBC(やODBC)はその基準を用いて
各ベンダーがドライバを開発している
ので問題ない。
>>550 プッ
0552デフォルトの名無しさん
NGNGどういった管理をするのですか?
まさか、主キーが連番になってるとかってオチはないですよね
0553デフォルトの名無しさん
NGNG違いの方が重要になる。
0554デフォルトの名無しさん
NGNG値の取得のタイミング等を決めておき、そもそも重複が起こらないように設計するのが筋だと思う。
主キーの値が単なる連番であったりするならまた別の話だけど。
ちなみにエラー処理はメッセージそのものじゃなくコードを使うのが普通でわ。
0555549
NGNGPostgreSQLの本見てもJDBCドライバが返すエラーコードについて説明がないし
PostgreSQLのJDBCドライバで主キー重複による例外が起こったときに
返されるエラーコードが0だったので、メッセージで判断するしかないのかと思ったんですが。
(メッセージはリファレンスに記述があるんです)
今、JavaのAPIよく見てたら、"SQLstate" 文字列なんてのがありますね。
これを使えばいいんでしょうか。
ちなみに、主キーはユーザーに入力してもらうんですが
連番とかにしたほうがいいですかね。
でもそのときには、新たにUNIQUEキー制約が別のカラムに
つくので結局同じだと思うんですが。
0556デフォルトの名無しさん
NGNG受注テーブルと受注明細テーブルをメイン/サブフォームから一括登録する際に、
追加する時と削除するときは単純に受注テーブルも受注明細テーブルもそれぞれ
INSERTまたはDELETEすればよいのですが、更新の場合がいまいちよく分かりません。
最初は、そのキーになる受注番号の明細データを全てDELETEし、その後にワークテーブルの
明細データを全てINSERTするというやり方をしてたのですがトランザクションを
使うとたまにうまくいきません。
明細データをともなった場合更新は皆さんどうしてるんでしょうか?
0557デフォルトの名無しさん
NGNGまずは「うまくいきません」という状況報告をやめましょう。
0558デフォルトの名無しさん
NGNGすみません、一番最初に登録かけたときだけDELETEしないうちにINSERTするようで
接続エラーになりました。やり直すとうまくいきます。
0559デフォルトの名無しさん
NGNG0560デフォルトの名無しさん
NGNGなあ、>556では「更新が上手くいかない」って書いておいて、>558では
「一番最初に登録かけたとき」ってあるよな。
あんた自身が現象をよく理解できていないものを、他人がわかると思うか?
0561デフォルトの名無しさん
NGNG自分の今の現象についてをどうこうしたいんじゃなくて、
VBAのコードやSQLの書き方で皆さんどういう方法を使っているか知りたかったんです。
0562デフォルトの名無しさん
NGNGじゃあスキーマを書いてください。
受注と明細っていう情報だけじゃ考える気にならないよ。
MSDEはあんま知らんが、ロックされた二つのテーブルをUPDATEするだけでないの?
0563デフォルトの名無しさん
NGNG0564デフォルトの名無しさん
NGNGいいんでない?対応付けがややこしくなりそうだけど・・・
0565デフォルトの名無しさん
NGNG確かにごちゃごちゃしそうですね・・・。
この辺のスマートな実装方法がわからず、試行錯誤状態です。
何か参考になる本などないでしょうか。
0566デフォルトの名無しさん
NGNG何故そういう実装にしたいのか理由を書いてくれればアドバイスのしようもあるが。
0567デフォルトの名無しさん
NGNG自前で仕組みを作るのも良いけど、そうとう腰を据えてやらないと
対処療法的になってしまって結局工数がかさむというオチになりそう。
DBとのインタフェースはビューやストアドを使う等してラップしちゃうとか、
それ系のフレームワークを使うとかするほうが現実的だと思うが。
規約でどうにかなる部分でもあるけどね。
0568デフォルトの名無しさん
NGNGDBのスーパーユーザのパスワードってユーザに公開しますか?
0569デフォルトの名無しさん
NGNG別鯖で動いてる別DBを、1つのオブジェクトにマッピングしちまうとか。
0570デフォルトの名無しさん
NGNGするでしょ
しないでおくメリットは?
0571568
NGNGユーザには、運用に必要な権限だけを付与する方が安心かな、と思ったんです。
今回、DBがSQL鯖2kなんですが、クライアントツールがAccessライクなので、
ちょっと知ってる一般人ならすぐ中身を触れてしまうんですよね・・・
0572デフォルトの名無しさん
NGNGユーザ側の管理者にだけ教えるでしょ、普通
0573568
NGNG0574デフォルトの名無しさん
NGNG管理者が信用できないんじゃどうしようもないけど・・・
パスワードをその管理者の上司(社長でも可)に教えて
それとなく(管理者が信用できないことを)匂わすくらいでしょうか
0575デフォルトの名無しさん
NGNGとにかくできるだけ確実な人に教えて
「あとはよろしくお願いします」
というのが無難かと
0576デフォルトの名無しさん
NGNG情報漏洩の多くは、クラッカーではなく
アクセス権限を持っている担当者によって行われています。
0577デフォルトの名無しさん
NGNG0578デフォルトの名無しさん
NGNGテーブル、更新用のビューそれぞれに登録用のストアド組んじゃえば?
ストアドの方でエラーコードを自前で返してやれば面倒なこともないじゃん。
今のご時世、いろんな言語から叩くことが当たり前だし。
DBMS内部でラップできる部分はどんどん放り込んで置いた方が楽かと。
0579578
NGNG((((;゚Д゚)))ガクガクブルブル
0580デフォルトの名無しさん
NGNGINDEXを作成する事によるSELECT文のパフォーマンスアップを
INSERT文が遅くなる事よりも重要視しても良いでしょうか?
とあるSQL文のパフォーマンスが悪いのですが
(検索に使用しているカラムに索引が無い事が原因だと思われる)、
どの程度までならINSERT処理が遅くなる事を無視しても良いのか
わかりかねています。
0581デフォルトの名無しさん
NGNGそれこそ、システムの要件によって千差万別。
使用頻度やレスポンスの要件をしっかり調べた結果決めるべし。
っていうか君の文章めちゃくちゃ回りくどいなw
0582DB屋150円で〜す
NGNGどういう使われ方してるのかによるけど。。。
Oraclならば、索引付けして
PCTFREEとかの値を大きくする・・・とか。
0583580
NGNG社内向けWebシステムのバックエンドで使われているOra817です。
総ユーザーは20弱、同時はあっても2・3ユーザー。
最近このシステムを任されたんですが、どうやら詳細な
レスポンス等の要件は無いようです。
#感覚的に遅いところは「どうにかならない?」と相談されています。
>>582
PCTFREEを大きくすると、領域を新たに取得する為の時間は
少なくなると思うけど、INSERT処理も速くなるもんなのでしょうか?
この場合は、テーブルに対するPCTFREEですよね?
>>581
文章が回りくどいのはよく言われます。要点を押さえながら
簡潔に文章を書く事が出来ないので、要点が足りなくて
何度もやり取りするよりはマシかと思ってこうしてます。
#あぁ、2chでも指摘されるとは・・・
0584581
NGNGその使い方だと、更新が遅くなるってのは殆ど気にならないんじゃね?
Indexをつければ検索パフォーマンスは劇的に改善するだろうし、
プラス面の方が圧倒的に大きいと思う。
>何度もやり取りするよりはマシ
まあね。知りたいことが書いてないよりかはいい。
2chで煽り煽られる中で、要点を絞る方法も身についてくるかもしれん。
がんがれ。
0585デフォルトの名無しさん
NGNG> 何度もやり取りするよりはマシかと思ってこうしてます。
でも、相手によっては正しく理解されない可能性もあるよね。
まず箇条書きしてみるとか、論旨を整理するステップを入れていくようにしてみては。
0586580
NGNG>>584
ありがとうさんです、INDEX作成の方向でガンガリます。
そんな場所が2・3あるんですが、そのうち1つはFunctionIndexになりそう。。。
>>585
箇条書きは良い案かもしれませぬ。
文章が長いというだけで、読む気をなくす方も
いらっしゃるようですし、もうちょい努力します。
0587DB屋150円で〜す
NGNG>>583
>PCTFREEを大きくすると、領域を新たに取得する為の時間は
>少なくなると思うけど、INSERT処理も速くなるもんなのでしょうか?
>この場合は、テーブルに対するPCTFREEですよね?
いえ。>>582で言っていたのはテーブルではなく
インデックスに対してのPCTFREEです。
(テーブルに対してのPCTFREEは更新時のためのものです)
この値を大きくしておくことで、挿入時におけるインデックスの
リーフブロック分割によるパフォーマンス低下を抑えられます。
・・・と論理的な事を書きましたが、実際、目に見えるような
効果があるかは不明です。ハイ。ご参考までに。
0588IP記録実験
NGNGhttp://qb.2ch.net/test/read.cgi/accuse/1042013605/
1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。
27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?
38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。
73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
0589デフォルトの名無しさん
NGNG(略
これにて一件落着。
0590デフォルトの名無しさん
NGNG0591デフォルトの名無しさん
NGNG持ってるからイラネ
「通報しますた」と言って欲しいのか?
0592デフォルトの名無しさん
NGNGつまらん道徳論に回収しようとしたのはアンタだろうに。
>225
でかい掲示板じゃなきゃ多少はリスク下がるよ。
0593デフォルトの名無しさん
NGNGんじゃ今からお前をヌー速管理人に任命しる。
0594デフォルトの名無しさん
NGNG2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 138720人 発行日:2003/1/9
年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。
そんなわけで、年末に予告したIP記録ですが実験を開始しています。
「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0595デフォルトの名無しさん
NGNG貴方の仰ることもよくわかりますが、いまの2ちゃんねるが
その役割を果たせているとは到底思えません。
あまりにも低レベルすぎて、お話になりません。
いつの日かまともな議論できるような掲示板になるよう
心から願っている次第です。
0596デフォルトの名無しさん
NGNG0597デフォルトの名無しさん
NGNG【危機】レスの真実性・相当性の立証責任がひろゆきにある【判決】
http://news.2ch.net/newsplus/kako/1026/10261/1026145775.html
0598デフォルトの名無しさん
NGNG0599デフォルトの名無しさん
NGNG3板とも 作り直してみた。
情報は salami 時代のを持ってた。
331 名前:心得をよく読みましょう[sage] 投稿日:02/12/31 07:37 ID:OcGVwWya
datはどうなってますか?
モナーの一部以外は全部あぼーん?
332 名前:夜勤 ★[] 投稿日:02/12/31 07:38 ID:???
そのようです。
残念。
0600デフォルトの名無しさん
NGNG0601デフォルトの名無しさん
NGNGしてる
0602デフォルトの名無しさん
NGNGかぶきゅーししょーと呼んであげよう(ワラ
0603デフォルトの名無しさん
NGNGスレ立てて予告しないなら。
今でもスレ立てしたらIP取られるから、スレ立て予告はしないのが吉。
0604デフォルトの名無しさん
NGNG0605デフォルトの名無しさん
NGNGマジ?(w
0606デフォルトの名無しさん
NGNG0607デフォルトの名無しさん
NGNGあったということなんだ。
知らなかった・・・
0608デフォルトの名無しさん
NGNG>荒らしとか犯罪のためなの?
そす。
246 名前:心得をよく読みましょう[] 投稿日:03/01/08 17:52 ID:BH998yxV
>ひろゆき
俺のお気に入りのスレとか荒されてるんだがそういうのにも有効?
257 名前:ひろゆき ◆3SHRUNYAXA [] 投稿日:03/01/08 17:53 ID:rLfxQ17l
いずれは。
0609デフォルトの名無しさん
NGNG2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 139038人 発行日:2003/1/10
なにやら、連日メルマガだしてるひろゆきです。
そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。
重くなって落ちたりしてもご愛嬌ってことで。。。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0610デフォルトの名無しさん
NGNGつまり、『実験台となる患者』に、どれだけ被害が出たかで判明するとこと事。
要は「知らない病院には、なるべく行くな」という、今までのセオリーが
繰り返されるだけ。
0611デフォルトの名無しさん
NGNG0612デフォルトの名無しさん
NGNG0613デフォルトの名無しさん
NGNG400レス以上演技は続かないかな・・・
0614デフォルトの名無しさん
NGNG遊び方の解らない馬鹿が増えたから、しかたないのかもしれません。
もう転載しませんので、以後は該当のスレ追っかけてください
27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?
38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
鋭いです。
73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
こんなところでしょうか。
0615デフォルトの名無しさん
NGNG0616デフォルトの名無しさん
NGNG0617デフォルトの名無しさん
NGNGタイ━━━||Φ|(|゚|∀|゚|)|Φ||━━━ホ!!!!! だな
0618デフォルトの名無しさん
NGNG政治経済学部に比べて著しい低学歴、特に、ひろゆきの卒業した中央大学文学部
のようなヘボい大学に共通しているのは、文化水準が低いという事です。18歳から22歳を
ヘボい大学で過ごすということは、致命傷と言えます。2ちゃんねらーの大半は
岡田克彦氏に比べて、著しい低学歴ですから、取り返しはつかないのです。
せめて、http://www.geocities.co.jp/MusicHall-Horn/1091/で、氏の作品に触れましょう。
0619デフォルトの名無しさん
NGNG顧客情報の開示を行うことを明らかにするだけだ。
責任は書き込んだ奴が取るだけ。
0620デフォルトの名無しさん
NGNG0621デフォルトの名無しさん
NGNG0622山崎渉
NGNG0623デフォルトの名無しさん
NGNG実質的には上告はもう無理らしい。
うれしいなぁ。
0624山崎渉
NGNG0625山崎渉
NGNG0626デフォルトの名無しさん
NGNG0627デフォルトの名無しさん
NGNGなくしたら知らないって言えば済むし
0628デフォルトの名無しさん
NGNG入力系のアプリでの入力内容のエラーチェックですが、作り出すたびに
入力フィールドがフォーカスを失った都度でエラーチェックをかけるべき
なのか、それとも最終確認(OKボタン等)でかけるべきなのか迷います。
GUIの流儀から行けば最終確認時のみエラーチェックなのでしょうが…
旧態依然のオフコン画面が頭に染みついているせいなのかな?
0629デフォルトの名無しさん
NGNGっつーか何が聞きたいのかよくわからん。
0630デフォルトの名無しさん
NGNG間違っていたら入力を受け付けずに、警告音と共に値を元に戻すのが普通。
しかしもちろん、複雑な条件が絡むエラーチェックは最終確認時にまとめてチェックするよ。
つーか、VBとかでフォーム作ってるのか?それともWEBなのか?
もういい年なんだから、もっとうまく状況を説明できるようにならんと駄目だぞ。
0631デフォルトの名無しさん
NGNGWEBなら基本はボタン押したときだが。
フォーカス失ったときに出るのは、画面閉じれなくなってうざくない?
発狂する人が出るかと。
0632デフォルトの名無しさん
NGNGお許しを。
SQL Serverのbcpユーリティについて質問です。
bcpコマンドでを使って固定長データをSQL Serverにインポートしようと考えているのですが、インポートコマンドを実行すると、
>SQLState=37000,NativeError=170
>Error = [Microsoft]{ODBC SQL Server Driver][SQL Server]行1:'('の近くに不正な構文があります。
というエラーが多発しインポートできません。
コマンドは
>bcp DB1..Table1 in c:\import_txt.dat -f c:\format.fmt -S Sev -U sa
というコマンドを用いており、import_txt.datのフォーマットファイルも
7.0
198
1SQLNCHAR11 ""1Rec-ID
2SQLNCHAR18 ""2Data-ID
3SQLNCHAR18 ""3Date
4SQLNCHAR133 ""4Filler
5SQLNCHAR13 ""5C-CODE
6SQLNCHAR19 ""6K-CODE
・
・
198SQLNCHAR18 ""198UpdateDate
という感じで仕様どおりに作成しました。
SQLServerは7.0でサービスパック等は何も当てていません。(初期インストールのまま)
ServerOSはNT4.0SP5、bcpコマンドを実行しているクライアントはWin2000です。
何か同じような現象を知っているという方、アドバイスなどお願い致します。
0633デフォルトの名無しさん
NGNG現在A、Bの2つのデータベース(Microsoft SQL Server 7/Windows2000 Server)がありまして、
このうちAにあるデータベースの1つをBにそのまま複製したいのですが、
どのような手段を取ればいいでしょうか?
ちなみにAとBは別の場所にあって、どちらもグローバルには出ていません。
イメージとしては以下の通り。
>>データベースA
[コンソール ルート]
└[Microsoft SQL Server]
└[SQL Server グループ]
└[SQLSERVER_A(Windows NT)]
└[データベース]
├master
├model
├northwind
├pubs
├GIKO ※
└tempdb
※SQLSERVER_A内の「GIKO」データベースを、Bにそっくりそのまま複製。
Aはそのままにしておく。
インポート・エクスポート・復元などを試してみたのですが、
どうにもそれらしき機能が見当たらなかったので質問させて頂きました。
宜しくお願い致します。
0634デフォルトの名無しさん
NGNGBに空の新規データベースを作って、バックアップデータをそこへ復元
じゃダメっすか?
0635デフォルトの名無しさん
NGNG返信ありがとうございます。
早速試してみたのですが、どうやら自分自身が取ったバックアップでないと
復元してくれないようですヽ(;´Д`)ノ
0636634
NGNGただ、バックアップから復元する際、各種ファイルのパスにはそのバックアップを
取った鯖のファイルのパスが表示されてるはずなので、取り込む鯖でファイル名や
パスが違う場合はちゃんとあわせてやらなければダメれす。
0637デフォルトの名無しさん
NGNGA側マシンの[GIKO]データベースに関連するファイルが
C:\Itteyoshi\GIKO_Data.MDF
C:\Itteyoshi\GIKO_Log.LDF
C:\Itteyoshi\GIKO_Backup.bak ※バックアップファイル
のように配置されているとする。
A側マシンの[GIKO]データベースで生成したGIKO_Backup.bakを
B側マシンのデータベースとして復元するには、
新しく生成するGIKOデータベースのファイル配置も
C:\Itteyoshi\GIKO_Data.MDF
C:\Itteyoshi\GIKO_Log.LDF
C:\Itteyoshi\GIKO_Backup.bak
とする必要がある(同じパスを指定する)。
0638デフォルトの名無しさん
NGNGで、B側マシンの C:\Itteyoshi\GIKO_Backup.bak に
A側マシンのバックアップファイル C:\Itteyoshi\GIKO_Backup.bak を上書きする。
あとはB側で復元処理。
0639634
NGNGでも両者のファイル位置は必ずしも一致させる必要は無くて、
「データベースの復元」窓の「オプション」タブで、「復元先」っていう
部分がBのGIKOデータベースのファイルを正しく指していればOKかと。
仮に、BのファイルがD:\Omaemona\〜にあったとしても、この「復元先」には
バックアップを取ったA鯖のC:\Itteyoshi\〜が表示されてるはずです。
0640634
NGNGやってみたらできちゃった♪っていうだけなので・・・
これだけ書いてから言うのもアレですがw
0641633
NGNGダミーデータで試してみたら、見事復元されましたヽ(´∀`)ノヤター
詳細な解説ありがとうございました。
「復元先」は、要はバックアップファイルの展開先といった意味合いですね。
マジでありがとうございました!(゚д゚ ゞ)
0642634
NGNG私の中途半端な経験談でしたがお役に立てて何よりです。
>「復元先」は、要はバックアップファイルの展開先といった意味合いですね。
そうそう。
あのテの画面って言葉がわかりにくいんですよね・・・
「データベースとして復元」ってなんじゃそら、みたいな。
0643デフォルトの名無しさん
NGNG0644デフォルトの名無しさん
NGNGなってしまう場合、皆さんならどうしますか?
使用するRDBMSはPostgreSQLやMySQLクラスを想定して下さい。
1、何かのフィールドを元にテーブルを分割する。
2、インデックスや何らかの対策をして一つのテーブルで
3、そもそもそんなデータはRDBMSでは扱わない。
参考までにお聞かせ下さい。
0645デフォルトの名無しさん
NGNGPostgreとかMySQLってレコード数の上限あるの?
0646デフォルトの名無しさん
NGNGそのテーブルの用途は?
1.オンラインでの検索・挿入・削除・更新
2.オンラインでの検索のみ(更新処理はインポート)
3.オンラインでの検索のみ(更新処理はバッチで)
4.バッチ使用のみ
等々、いろいろ考えられるけど...
用途によって答は変わると思うけど。
0647デフォルトの名無しさん
NGNG>用途によって答は変わると思うけど。
結局「3」って答える罠。
0648デフォルトの名無しさん
NGNG0649644
NGNG3です。
0650デフォルトの名無しさん
NGNG本当に知りたいなら、それぞれのメーリングリストで聞いてみたら?
0651644
NGNGテーブルを分割するというのは有効な方法でしょうか?
0652デフォルトの名無しさん
NGNG他のデータベースから持ってくるとは限らないよ。
バッチ処理でインポートデータ作っといて
業務止めれるときにでもインポートしとこうか。
って、感じかな。
今、そういう処理やってます。
インポートデータ作るのに2日。
テーブルの切捨て・インポートに半日。
0653デフォルトの名無しさん
NGNG(たしか、過去30数年くらい上場・非上場
企業dailyデータだったかな)
インデックスさえきちんと使えばユーザも
満足するレスポンスで使えた。
たまに行うインデックス再構成には
半日くらいかかったけどね。
基本は
・対象テーブルの物理ファイル(デバイス)
を別ディスク、RAWデバイスつかえるならRAWデバイスを使用。
・インデックスをきちんと使う。
でほとんど大丈夫。
別テーブルや別パーティションは
データ保守の面を考えると、最後の手段だな。
0655デフォルトの名無しさん
NGNG参照系DBだと、Oracleのパーティション表を使うと運用が楽になる場合もあるね。
今PostgreSQLで1テーブル3億レコードくらいのDBがあるんだけど、過去データの削除と
それに伴うインデクス再構成でかなりの時間停止しないとならないのが...。
一度パーティションビューみたいなものを作って試してみたんだけど、PostgreSQLの
プランナはあまり良い実行計画を出してくれなかったんでやめた。
0656デフォルトの名無しさん
NGNGM$は想定外みたいだけど
一応言っとく。
絶対に、SQL鯖はつかうなよ。
つーか、絶対にWindow$は使うなよ。
一生後悔するぞ。(体験者談)
0657デフォルトの名無しさん
NGNG4000万件くらいのテーブルは日常的に扱ってます。
一番注意しているのがインデックス。それだけ。
性能はまったく問題ないです。
Postgres 7.2.3です。
0658648
NGNGほー。そういうやり方もあるの。でも俺んとこじゃできんなあ。それは。
俺はインポートって本当に復旧作業でしかやったことない。
ところでインポートって時々失敗しない?
おれは今まで2回そういうことがあった(両方ともオラクル8.1.6)。エクスポートは警告なしで終了したのに、だ。
もちろん失敗率は問題ないぐらい低いとは思うんだが。
0659デフォルトの名無しさん
NGNGまだ俺はBeginnerだから、用のNothingなThreadだな。
0660デフォルトの名無しさん
NGNGお前にとってこのスレッドが用無しなのではない。
このスレッドにとってお前が用無しなのだ。
鮭の骨が歯ぐきに刺さったじゃねーかよ!
0661デフォルトの名無しさん
NGNG後学の為に、その理由をキボンヌ。
0662デフォルトの名無しさん
NGNGどう後悔するか聞いてみたいが...
0663デフォルトの名無しさん
NGNG誰かが「ちゃんとデータが入ってないとエラーになる」テストをしていて、
他の誰かが「データを入力する」部分のテストをしていると、
無いはずのデータが存在したり、あるはずのデータが消えたりして、面倒です。
開発メンバーで細かく声を掛け合う以外に、うまい方法はないでしょうか。
0664デフォルトの名無しさん
NGNGMSだからに決まってるだろ?
他のDBサーバーさわってない奴のセリフさ。
0665デフォルトの名無しさん
NGNGローカルWeb鯖で動かすとか。
>664
良スレなんで燃料はいりませんよ
0666デフォルトの名無しさん
NGNGローカルにサーバを持つように作るべき。
共有サーバなんてやっちゃだめ。
0667デフォルトの名無しさん
NGNG毎月のようにOS、IIS、DBのパッチが
出てきてそのたびにアプリの全打鍵。
再起動がかかるパッチが多いから
業務止めれる休日にやるしかない。
ここ1年でパッチ適用のために休日出勤したの20回。
SQL ServerのServicePack適用したらなぜか
OSの挙動がおかしくなってシステムバックアップからリストア。
調べたが問題わからず翌月再適用。
先月のも適用した直後にプロダクトによっては
ブルーバックで起動しなくなると不具合があるという情報が...
運良く不具合のあるプロダクトじゃなかった。
平日はオンライン処理での過負荷でDBサーバがハングアップ。
休む暇なし。
俺のこの1年の恋人はM$サーバ10台。
0668デフォルトの名無しさん
NGNGDBを持ち込んで、無駄にハードウェアリソースを食わせようとする
バカがいるんですが、
このバカにそれを理解させるにはどうすればいいでしょうか?
0669デフォルトの名無しさん
NGNG金がかかるってことで。
0670デフォルトの名無しさん
NGNGバックアップ/リストアがめんどくさいってことで。
0671デフォルトの名無しさん
NGNGどんなDBなんだろ
0672デフォルトの名無しさん
NGNG接続時のユーザを変えてスキーマーというものをうまく使おう。
0673デフォルトの名無しさん
NGNGっていうか日本の雇用率に貢献してる良い人じゃん。売れるもんは売っとけ。
0674デフォルトの名無しさん
NGNG4CPUのサーバに
Windows 2000 Advanced Serverのプロセッサライセンス
Oracle 9i のインターネットライセンス(ってまだあったっけ?)か
プロセッサライセンスかで
見積もりだせばいいじゃん。
考え直すと思うよ。
0675デフォルトの名無しさん
NGNGLinux&Postgresでとか言われる罠
そういう無駄な知識は持ち合わせている罠
0676デフォルトの名無しさん
NGNGMyBase(Delphiとかに付いてるやつ)でも教えてやれば
ファイルベース(通常はXML)のDBだから軽くて邪魔にならないよ
0677デフォルトの名無しさん
NGNG0678デフォルトの名無しさん
NGNGpostgresにあるわけない。
0679デフォルトの名無しさん
NGNGCREATE TEMP TABLE でぐぐれ。
>>678
君は煽りがうまい。
0680デフォルトの名無しさん
NGNGもしかして釣られたか?
0681679
NGNG俺 postgres しか使ったことないのね。
で、いつかは Oracle 使いたいなー、と思ってる。
そんな俺の心の隙間を突く巧みな煽りを入れて、
情報を引き出そうとする >>678 は煽りがうまい、ってことで。
0682デフォルトの名無しさん
NGNG8iにもあったよ〜
8i Platinum MASTERより
0683デフォルトの名無しさん
NGNGSQL Serverはもっと早く実装していたぞ。
0685682
NGNGそうなんだ〜
つーか、8iしかしらねえよ。
8にあったのかどうかは
昔からシステムやってるおっさんに聞いてくれ。
しかし、SQL鯖は読み取り一貫性すら保障できてないくせに
その辺は一応実装してんだね。
0686デフォルトの名無しさん
NGNGOracleに対する要望の上位だった。
8でようやく実装。あるのが当たり前だけに
Oracleに無いことに気付いたときにはビクーリですた。
0687デフォルトの名無しさん
NGNG0688デフォルトの名無しさん
NGNG> しかし、SQL鯖は読み取り一貫性すら保障できてないくせに
あんたの書いたSQLが悪いだけ。
0689デフォルトの名無しさん
NGNG読み取り一貫性以前の問題で、
更新中の未コミットのレコードを読むことは出来ないじゃん(藁
(ダーティリードかコミット/ロールバックを待つかすれば出来るけど)
どっちにしても、使えねえのには変わりねえけどな!
0690デフォルトの名無しさん
NGNG出来るってかいてるじゃん(藁
0691デフォルトの名無しさん
NGNGゴミデータを読めちゃうって事だね。Oracleできちゃうの? 信頼性ねーな。
0692デフォルトの名無しさん
NGNGOracleはREAD UNCOMMITEDはできない。
他のDBMSには、あえてできるものもあるらしい。
単なるREAD COMMITEDでもロックが発生してしまう
ようなDBMSの場合らしいが。
0693685
NGNG> (ダーティリードかコミット/ロールバックを待つかすれば出来るけど)
すんまそん。
そのこと言いたかったのだ。
更新中のレコードはダーティリードじゃないと読めないじゃん。
そうすると読むタイミングと更新のタイミングによって読み込まれる結果が
変わってくるから一貫性は保証されてないんじゃないの?
言葉の意味取り違えてるのかな?(ちょっと弱気)
0694689
NGNGボラクルは未コミットのレコードについて
・データ変更中のユーザーは変更中のデータを読むことが出来る
・それ以外のユーザーは変更前のデータを読むことが出来る。
SQL鯖はゴミを集めるしか読む方法は無い
0695デフォルトの名無しさん
NGNGつーか、こういうシステムにはこのDBMSが向いてて
このDBMSが向いてないってまとめたサイトとかないの?
DBMSの長所・短所の一覧だけでもいいんだけど。
0696デフォルトの名無しさん
NGNGオマエSQL鯖使ったことないだろ。
0697694
NGNGあるよ。
読む方法あるの?
0698デフォルトの名無しさん
NGNGローカルだとスキーマ変更の反映漏れが怖いんだよなぁ…
チームごとにインスタンス分けて、個人ごとにユーザ分けるとか。。。
それでも反映漏れはある、か…。
話は全然変わるんだけど、SYBASEのSQLAnywhereってまだあるの?
0699デフォルトの名無しさん
NGNGDBアプリはDB(SQL)でデータ操作する方がコーディングがラクだからじゃないの?
一般ファイルだとWinAPIゴリゴリ書かないとダメだし、
そもそもそれじゃデータ操作面倒くさいじゃん
0700デフォルトの名無しさん
NGNGここ読め。
ttp://www.microsoft.com/japan/sql/evaluation/compare/fororacle/SQLserver_02_Chap5_01.asp
【2ページ目】
>Oracle では、ロールバックセグメントにより読み取り一貫性が保証されているため、
>データの読み取り時(SELECT)にロックが(基本的には)発生しません。
>一方、SQL Server にはロールバックセグメントに当たるものはなく、
>読み取り一貫性の保証はロックメカニズムを使用します。
>つまり、Oracle ではロールバックセグメントの管理とチューニングが重要であり、
>SQL Server ではロックメカニズムを理解したSQL ステートメントの記述が重要になることが
>わかります(図5-1)。
Oracle −> 馬鹿な開発者でもつかえるが管理が面倒
SQL鯖 −> 馬鹿な管理者でも管理できるが開発が面倒
ってことか。
つか、このネタはすれ違いじゃねえのか?
0701デフォルトの名無しさん
NGNGXMLを記述したテキストファイルをつかって
RecordSet使うってのは反則?
実際はコーディングが結構面倒だけど(藁
0702デフォルトの名無しさん
NGNG方法もなにも>>694の仕様と同じだろ。
table_a
カラムa b
データ1 x
で
ユーザAが
begin tran
go
update table_a set b = 'z' where a= 1
とトランザクション使用の更新をかける。
ユーザAがcommitするまで
ユーザBが以下のSELECT文を発行すると
select b from table_a where a = 1
は
b
x
ユーザAは上記のSELECT文を発行すると
b
Z
だけど。
オマエはどんなSQL鯖を使った夢をみたんだ?
使ってないと同じくらいの知識とか思えないが。
0703デフォルトの名無しさん
NGNGしかし、使うとやばいデータを引っ張ってくるのには何の変わりもないわけで、
for update が今日も元気に働いている。
>>695
Oracle使いのためのSQL Server入門みたいなムックが出ていた。
とりあえずの比較用に立ち読みでもしてみたら?
>>699
ファイルで済む規模なら、XMLでいきゃいいじゃん。
ロジックは書きやすいし、XPathも併用すれば普通に使える。
0704デフォルトの名無しさん
NGNGそりゃ単にその案件が「リピータブルリードが保証されないとやばい」
設計になっていたというだけだろう?
パフォーマンスやデッドロックの事を考えれば、むやみに高い分離
レベルを使わずにすむよう考えるものだがな。
0705デフォルトの名無しさん
NGNGロックだトランザクションだと難しい事を考えるから複雑になるんだよ。
瞬間的には1人の人間しかアクセスしていないんだからそんな事気に
せず作ればいいじゃないか。
mdb共有でC/Sだと言い張るうちのバカSヨなら絶対こう言う。
0706デフォルトの名無しさん
NGNG> mdb共有でC/Sだと言い張るうちのバカSヨなら絶対こう言う。
Consultant/Slave?
0707デフォルトの名無しさん
NGNG瞬間的に1人の人間しかアクセスしないような
軽いシステムしか作ったこと無いなんてうらやましいね。
今のシステム瞬間的に最大10人はDBにアクセスしてるよ。
WEBのセッションなんて同時に500ぐらい張られてるし。
0708デフォルトの名無しさん
NGNG馬鹿な管理者でも管理でき(半年に一回くらい馬鹿じゃない管理者がメンテできれば良い)
できるだけ金をかけず、なおかつWindowsで動かすには
どんなDBを使えば良いだろうか?
0709デフォルトの名無しさん
NGNGMySQL
0710デフォルトの名無しさん
NGNGFirebird
0711デフォルトの名無しさん
NGNGExcel
0712デフォルトの名無しさん
NGNG0713デフォルトの名無しさん
NGNGアクセスでいいじゃん。
バックアップも簡単だし。
アプリでアクセスするのも簡単。
厨房プログラマにはもってこいだよ。
0714デフォルトの名無しさん
NGNG0715デフォルトの名無しさん
NGNG0716デフォルトの名無しさん
NGNGテキスト形式で公開して gooooooooooooooooooooooooooooooooooooooogle 検索
最強
0717デフォルトの名無しさん
NGNG0718山崎渉
NGNG0719デフォルトの名無しさん
NGNGその辺綺麗に解決(管理不要、ロック不要)してるのが実はInterbase/Firebird
だったりする。でも何故かこの特徴についてはあまり語られない(´・ω・`)
http://www.borland.co.jp/interbase/ib4/KINOU/kinou_4.html
0720デフォルトの名無しさん
NGNGを受け付けなくなるのか?
0721山崎渉
NGNG( ^^ )< ぬるぽ(^^)
0722山崎渉
NGNG( ^^ )< ぬるぽ(^^)
0723デフォルトの名無しさん
NGNG現在W2kでASPとCOM+とSQL Server2000を使ってWEB系のシステム作っています。
(ASPとCOM+が動くサーバは複数(ロードバランサ使用)でDBサーバは1台です)
この場合DBサーバのMS DTCを使用しないとまずいのでしょうか?
また、ロックの制御はCOM+のトランザクション設定だけで大丈夫なのでしょうか?
COM+のプロパティでトランザクションを未サポートにした場合でも
with(nolock)などのヒント句を使用しないとselect文で共有ロックが使用されているようですが、トランザクションとロックは別にして考えないといけないのですか?
SQL Serverの場合SQL文のヒント句でロックの制御を行っているようですが...
0724質問
NGNGsql = "CREATE TABLE HOGE("
sql = sql & "Year CHAR(2),"
sql = sql & "Time CHAR(36)"
sql = sql & ")"
vCom.CommandText = sql
vCom.Execute
などとすると、"フィールド定義の構文エラーです。"(-2147217900)が発生します
Year とか Time がそのまま使えないキーワードの用ですが
どうやってエスケープしたらよいのでしょうか
シングルクオートで囲むと、そのままシングルクオートを含んだフィールドが生成されてしまいました。
0725デフォルトの名無しさん
NGNG素直に他の名前にすれば?
0726デフォルトの名無しさん
NGNGAccessからは、その名前で作れるんですよ
0727デフォルトの名無しさん
NGNG妥協策を検討せざるを得ませんが・・・
0728デフォルトの名無しさん
NGNGおまえにゃ無理だ
0729デフォルトの名無しさん
NGNG0730723
NGNG0731デフォルトの名無しさん
NGNG0732デフォルトの名無しさん
NGNGそれってPostgreSQLと同じアーキテクチャだったりするよ。
0733デフォルトの名無しさん
NGNGつーか MVCC (多版型同時実行制御) 実装してない DB の方が少なく感じる。
0734デフォルトの名無しさん
NGNG0735デフォルトの名無しさん
NGNG主キーってのはユニークじゃないと駄目なのよね?
皆さんはどうやって動的な主キーを決めてるのでしょうか?
(例えばそのレコードが作製された日付+時間とか?)
また、ユーザーがレコードを編集するとき、主キーは
編集できないようにしたほうがいいよね?
ほんとにごめん、、、
0736デフォルトの名無しさん
NGNG主キーは編集も更新もしない
0737デフォルトの名無しさん
NGNG0000 は 1 秒間に採番される最大想定数より余裕を持たせたシーケンス番号。
0738735
NGNGやはり連番か時間がいいみたいですね
連番だとSELECT MAX(主キー) FROM list
とSQLを発行して最大値+1くらいで続けていこうと
思ったのですが、仮に20レコードあってその中の
15レコードがユーザによって削除された場合
(・・・12、13、14、16、17、18、19、20)
となり15が無駄に空きますよね?
こういうときの15が空きという情報の取得方法を
教えていただきたいのですが、お願いできないでしょうか?
0739デフォルトの名無しさん
NGNG・番号は詰めない(削除後は再利用しない)
・レコード生成するたびにそんなクエリは行わない (737 の方法とかで済ます)
主キーを「抜けの無い連番」という別のものと混同・代用しない方がよいよ。
初歩的すぎるけど一応スレの趣旨にそって突っ込んどく。
0740735
NGNG日付+時間だと030422205460256と数字で
認識させるとものすごい数になるのでやめようと
思ったのですが、文字列で試してみようと思います
>>主キーを「抜けの無い連番」という別のものと混同・代用しない方がよいよ。
>>初歩的すぎるけど一応スレの趣旨にそって突っ込んどく。
どうもやりはじめたばかりでいろいろ考えてしまい
変な方向に行きそうでした
ご忠告いただき有難うございます。
0741デフォルトの名無しさん
NGNGだよねー、これやっちゃうと
外部キーとして引っ張って来れなかったりする
なんていう寒いバグと友達になれるんだよね
0743735
NGNG本当にやり始めたばかりなので自分が何のRDBMS
をしようしているのか(RDBMSとは何を表すのか)
わからず申し訳ございません
私はDelphiでParadox7というものを使用
しているのですが...
明日SequenceとIdentityが使えるのかどうか
早速調べてきます。有難うございます
0744デフォルトの名無しさん
NGNG0745デフォルトの名無しさん
NGNGあれあれ?
Paradox7ならカウンタ型が使えるでしょ?
0746デフォルトの名無しさん
NGNG>>745さんの言うとおりParadoxならカウンタ型があるので使用す
るとよいでしょう。
ただ、カウンタ型等の無意味なユニーク値をプライマリキーとしなければな
らないテーブル定義に問題はないでしょうか?
今まで手作業で行っていた業務の移行でしたら
「請求書の束から人間はどうやって一意の請求書を見つけていたか」
請求書番号ですか?
「受注の際、何を基準に新規顧客と得意先かを判断していたか。」
名前や名前と住所・電話番号等の組み合わせ?
そういうものがプライマリキーとなりえます。
当然Sequence値をプライマリキーとする場合も多々ありますが、文面よ
り入門者と見受けましたので、テーブルの見直しもありかなと思いあえ
て書かせていただきました。
0747735
NGNG早速カウンタ型を調べたところ、主キーにぴったりだと思い
利用しようと思います。
>>746さん
>>今まで手作業で行っていた業務の移行でしたら
>>「請求書の束から人間はどうやって一意の請求書を見つけていたか」
>>請求書番号ですか?
>>「受注の際、何を基準に新規顧客と得意先かを判断していたか。」
>>名前や名前と住所・電話番号等の組み合わせ?
>>そういうものがプライマリキーとなりえます。
私も最初そう思ってましたので入力するコード番号+入力日付を主キー
として作成してたのですが、コード番号、入力日付はやはり人が入力する
ので、のちのち入力ミス等があった場合、コード番号が修正され
そうなると主キーとコード番号の関連性がなくなり主キーの変更が
起こってしまうと思ったので、まったく関係ない番号をとろうと思ったのです。
ご指摘有難うございます。
0748デフォルトの名無しさん
NGNG> コード番号、入力日付はやはり人が入力するので
業務アプリを設計するならここを改善しようよ(^^;
0749デフォルトの名無しさん
NGNGまず業務分析からはじめよう。
コンピュータに向かうのはその後だよ。
コードの採番変更が各自自由に出来るということは、コードの同じ伝票が
複数存在しうるということ?そして、誰もそれを知ることも無く管理もされて
ないの?
それはDB以前に業務としてかなり深刻な問題だよ。
ちなみにプライマリキーは更新可能ですよ。
更新しようとする値が重複していないかのチェックはDBでしてくれるのだから
コードが最適だと思うけど。
現在はどういう基準でコード振ってるの?
0750735
NGNGコードは1年間は絶対同じものがこないんです
コードの採番変更が自由にできるというのではなく
コードは伝票ごと既に決まっているのですが、そのコードを伝票から
DBに入力する際、間違って入力してしまい、その後入力ミス
を修正するときに、最初に誤って登録したコードから生成された
主キーだと、修正したコードとの関連がなくなるのでは?
と思ったのです。
入力ミスしたコードを修正する際に主キーも修正すれば、
と最初は思っていたのですが、736さんから主キーは変更しない
と教えていただいたので、まったく関係ないユニークなものに
しようと思ってるのですが、、
0751デフォルトの名無しさん
NGNG(´-`).oO(伝票にバーコードを印刷しておけばいいのに)
0752デフォルトの名無しさん
NGNGバーコードリーダをシステムに組み込むのかえ?
高くなりそうだけどいかほどでできるん?
0753デフォルトの名無しさん
NGNGもう一歩踏み込もうや。
伝票ありきで、それをDBに突っ込むんではなくて
DBで採番した伝票を作成するようにはできんかね?
0754デフォルトの名無しさん
NGNG伝票発行はシステム化しないの?
0755デフォルトの名無しさん
NGNGバーコードリーダなら1万円ほどから揃ってますよ。
業務で使うなら耐久性も考えてもう少し上のグレードが欲しいところですが。
0756デフォルトの名無しさん
NGNG0757デフォルトの名無しさん
NGNGいや、場合によってはそれもありだが。
0758デフォルトの名無しさん
NGNG>それもありだが
1)より良いものを提案する場合
2)実現できないから妥協する場合
この話の流れでは後者のにおいがぷんぷん。
>>756の意見は基本姿勢として当然持つべき考え方。
0759735
NGNGバーコード化とか私は思いもしなかった発想が聞けて、実現できるかは
置いといて良かったです。
今回DBを作成することになったのは、私自身の仕事がらみではなく、
知り合いが伝票管理をしていて、客先から送られてくる伝票を
バインダでとじ、何かあるたびにそれを開いて目で探してるので
どうにかならないか?ということで作成することになったのです。
それまでDBを作成したことがなく、(本職はPGではありません)、覚えながら
の作業になっており、大掛かりなものでもなく、その知人の個人管理
でしか使用しないようなものです。なので、良い案なのですが、
バーコードとかはちょっと無理そうな話で、申し訳ないです。
今日、カウンタ型を試してみました。が、どうもParadoxのカウンタ型は
トランザクション中にエラーがあった場合カウンタが戻らず
新しいカウンタがつけられる?などの不具合があるということを
Webで知りまして、それとカウンタ型にINSERT命令が使えないと
Delphiにいわれたこともありカウンタ型を使用するのは諦めました
それで主キー作成の為の連番作成方法なのですが、最初に書いたように
ダミークエリーにMax(CodeNo)で最大値を求めて+1する方法しか
思いつかず、今日はそのやり方で進めてみましたが、>>739さんが
おっしゃるとおり番号を知るためだけにクエリーを使うのも駄目そうだし、
いずれリストが大きくなったとき時間がかかったりしそうで、
どうしたものか考えてます。
0760デフォルトの名無しさん
NGNGカウンタ型(シリアル型、オートナンバー型)のINSERT文は
id dataとあるなら
INSERT INTO db(data) VALUES('oh,yes...')で出来るような気がする・・・
てかACCESSならそうだし
0761デフォルトの名無しさん
NGNG本当に「連」番である必要があるの?そうでなければ単純にシーケンスを使えば
良い話だが。
で、もし本当に必要あるのなら、採番処理の常套で、特定のテーブルで
次発行コードを管理するという方法がよく使われる。
コードを発行するトランザクションは最初にそのテーブルをロックして、
処理が成功したら+1更新する。uniquenessをDBMSが保証してくれる
わけじゃないから、めんどくさいけどね。
0762デフォルトの名無しさん
NGNGカウンタ型のINSERTは>>760の通り。
客先から送られてる伝票ならすでに伝票番号はついてるんじゃないの?
あと、何故抜けのない連番が必要なの?教えて。
0763デフォルトの名無しさん
NGNG伝票番号の件は>>750に書いてあるのでは?
あと、抜けのない連番が必要とはどこにも書いてないような。
必ずしも連番にはならないことをWebで発見したってだけじゃないの?
0764デフォルトの名無しさん
NGNG>>738の文面からは「連番がほしい」と受け取れる。
>>759を読んでも「諦めた」理由に「カウンタが戻らない」ことをあげている。
(メインの理由は「INSERTができない」だが)
やっぱり「連番がほしい」と受け取れる。
0765735
NGNGなんか、皆さんを混乱させてしまったようで、申し訳ないです。
伝えたいことが文章にできなく、ご迷惑おかけします。
>>762,764さん
特に抜けのない連番である必要なんてないんです。
最初は連番にしていて、そのレコードが削除されたとき、主キーが
歯抜けになり、感じ的になんとなく嫌だなと思っただけでして、、
また736さんが書かれた”悩むくらいなら連番”というが
あったので連番で行こうと思っただけなんです。
最初は伝票コード+日付でいってたのですが、登録する際の入力ミス
→訂正で主キーとの関連がなくなり、そのとき主キーも変更しよう
と思ったのですが、これもなんとなく、まずそうな感じがして
735で主キーの変更〜を質問させてもらったのです。
その後の736さんの書き込みの”主キーは編集も更新もしない ”で
DB登録時の入力ミスの恐れがある以上伝票コード+日付を
主キーとするのはまずいと思ったのです。
でカウンタ型を諦めた理由なのですが
ttp://www.users.gr.jp/ml/archive/delphi/47178.aspで
Paradoxにおけるカウンタ型の不具合が記載されていたからです。
アドレス書くのはまずいかと思ったのですが、文章で書けるほど
理解してないので、本当にすみませんがURL記載させてもらいます。
0766デフォルトの名無しさん
NGNGDelphiでの開発ならFirebirdへの移行も検討してみるといいかもね〜
0767U ◆CZtFsGiu0c
NGNGそれだけじゃ不具合かどうかもわからない。Paradoxのカウンタ型ってのがどんな
仕様か知らないけど、連番生成用の仕組みは普通インクリメントされていくだけ
で空番を使う事はしないし、トランザクションをロールバックしてもインクリメントされて
しまう場合もある。それがいやなら自分でなんらかの連番取得用の仕組みを作る
必要があるけど、その程度の用途ならおすすめしない。
0768デフォルトの名無しさん
NGNGでも、deleteしたものをrollbackしただけで値が変わってしまうのが
不具合じゃなくて仕様だったらすごくやだなぁ。
0769デフォルトの名無しさん
NGNGParadoxは所詮デスクトップDB
トランザクションを気にするのならまともなRDBを使うべき
0770デフォルトの名無しさん
NGNG前から思ってたけど、DBMSにあるまじき名前だよね。
0771U ◆CZtFsGiu0c
NGNG記事を読むと、「レコードを削除して空いた番号を使ってくれない、任意の値も
設定できないので使いづらい」という意味のようですが。
普通そういうもんでしょう。それだけ見ると不具合ではないと思います。
0772デフォルトの名無しさん
NGNGDELETE後のROLLBACKでプライマリキーが更新されるのは不
具合ではないですか?
0773デフォルトの名無しさん
NGNGDELETE を ROLLBACK して更新される?
なんか意味不明だな。
INSERT を ROLLBACK しても、振り出されたシーケンスが元に戻らない、
というのならわかるが・・・。
0774U ◆CZtFsGiu0c
NGNGその元の記事
ttp://www.users.gr.jp/ml/archive/delphi/47161.asp
を読みましたが、結局なんだかわからないですね。
ttp://www.users.gr.jp/ml/archive/delphi/46941.asp
を読むとそもそも現象が再現されないらしいし。
不具合の存在からして怪しいんじゃないか、と思うんですが。
0775デフォルトの名無しさん
NGNGんにゃ、>>765が書いているのは
ttp://www.users.gr.jp/ml/archive/delphi/47178.asp
だよ。
真偽のほどは知らんけど、その2つの記事で取り上げられて
いる問題とは別物。
0776デフォルトの名無しさん
NGNGBCBもしくはDELの場合Firebird+IBX(IBO)が最強だと思うけど。
既存のParadoxやACCESS+JETで作られてるものは、すべて乗り換え
るべきとまで思ってるけど。
0777デフォルトの名無しさん
NGNG「何故」DelphiならFirebirdが最強なのか。
「何故」ParadoxやAccess+JETではダメなのか。
そこを説明しないとただの最強厨だよ。
0778デフォルトの名無しさん
NGNGん? 現に最強だよ。
0779デフォルトの名無しさん
NGNGIBXはFirebird非対応だよ。
IBOは日本語の情報皆無だよ。
Firebirdはマニュアルないよ。Interbase6のマニュアルを流用するしかないよ。
まだ完全なODBCドライバもOLE DB Providerもないよ。
Interbaseならまだしも、FirebirdはDelphi使ってるからと言って無条件に
薦められる物ではないよ。
0780デフォルトの名無しさん
NGNGParadoxやJetがなぜだめなのか解説しないとわからないか?
>>779
どういう使い方をするとFB1.0+IBXで不具合が出るのか教えて
もらえますか?
英語は読めませんか?
0781デフォルトの名無しさん
NGNGParadoxやJETなんて使った事無いから知らないよ。
FirebirdにIBX使って不具合が出るかどうかなんて知らないよ。
不具合の有無は関係ないよ、IBXはFirebird非対応で今後対応することもないと
作者が明言している事が全てだよ。
英語が読めない人もいるよ。
自分もすらすらとは読めないから翻訳ソフト併用でがんがってるよ。
それに、英語も含めてちゃんとしたマニュアルが存在しないことは事実だよ。
0782デフォルトの名無しさん
NGNG0783デフォルトの名無しさん
NGNG1トランザクション開始
2一つ目のテーブルにカウンタ型でレコード追加
3二つ目のテーブルに1で追加したレコードのカウンタ番号を使用しレコード追加
4トランザクション終了
で2で自動振り当てされたカウンタ番号は3で取得するにはどうすればいいの?
0784デフォルトの名無しさん
NGNGせっかくテーブル分けてるんだから
UPDATE TBL SET ID = ID + 1
ってやって常に1レコードだけにしとけよ。
てゆーか2つ目のテーブルのカラムをカウンタ型にしろよ。
で、質問の答えだけどSELECTで普通にとれるけどINSERT+副選択つかえよ。
0785デフォルトの名無しさん
NGNG0786デフォルトの名無しさん
NGNGSELECTは使えないのでは?
一つ目のカウンタを主キーで二つ目のテーブルとリンクさせたいんだが
0788デフォルトの名無しさん
NGNGカウンタ型なんてものを使わずに、素直にSEQUENCEを
使ったほうがすっきりすると思うよ。
0789デフォルトの名無しさん
NGNG0790デフォルトの名無しさん
NGNGSEQUENCEって使えないDBMSもあるでしょ。
カウンタ型も然り。
つーか、カウンタ型とSEQUENCEを両方実装してる
DBMSってどんな奴がありますか?
0791デフォルトの名無しさん
NGNGカウンタ型やオートナンバーの類はともかく、シーケンスはたいがいの
DBMSにあったと思ったが。まぁ俺もOracleとDB2とSybaseとPostgres
しか使っていないんで、Paradoxとかでどうなのかは知らないが。
0792デフォルトの名無しさん
NGNGまともなRDBと同等のことができると思うのは期待しすぎというもの
某自身もはやParadoxでの開発は推薦していない
(でもローカルで使うと案外便利なのでOracleあたりと併用する手はある)
0793U ◆CZtFsGiu0c
NGNG>真偽のほどは知らんけど、その2つの記事で取り上げられて
いる問題とは別物。
まあそれはそうなんですが、そのスレッドの元々の話題は先の二つの記事でしょ?
で、「ありうるかもしれない」l根拠がその記事の、
>なにせ Paradox ではトランザクション内で削除されたレコードを Rollbackした
>としても、元のカウンタ値には戻りません (新たな値になってしまいました。す
>っごく不便です)。
これでしょ? これ意味わかりますか? 不具合だとするとどういう不具合だと思います?
私は元々不具合なんてなかったんじゃないかと思うんですが。
#というか、735さんはどう思っているのだろう
0794デフォルトの名無しさん
NGNGそりゃどう見ても不具合だよ。(某が仕様だって言えば仕様なんだろうけど)
ロールバックの意味分かってるのかえ?
0795デフォルトの名無しさん
NGNGどこら辺が不具合なの?
DELETE を ROLLBACK って言ってるが、
そもそも DELETE ならシーケンスが進むことはあり得ないんじゃないか?
私は postgres のシーケンス型・シリアル型しか知らないし、
pradox のカウンタ型がどういう機能と使用上の制限を持つかをわからないので、
何ともいえないけど・・・。
0796デフォルトの名無しさん
NGNGドラゴンボールのゲームですか?
発売はいつですか?
ハードは何ですか?
0797デフォルトの名無しさん
NGNG> そもそも DELETE ならシーケンスが進むことはあり得ないんじゃないか?
進むはずのないカウンタ値が進んじゃうって事じゃん。
不具合でしょ?
0798デフォルトの名無しさん
NGNGINSERT じゃなくて、DELETE 発行したときも シーケンスが進むという話か。
じゃあ、ROLLBACK の有無は関係ないの?
0799デフォルトの名無しさん
NGNGわかんない人だなぁ。
ロールバックすると削除されたレコードは復活するけどカウンタ値のフィールド
は以前の値じゃなく進んじゃってるって事じゃんか。
0800U ◆CZtFsGiu0c
NGNGそういうことか…それは想像の範囲外でした:-)
それじゃACID属性も満たしていないことになりますね。間違っても主キーには
使えないですね。
で、これほんとうなんでしょうか…ちょっと信じられないんですが。
# Paradoxを使うことはないと思うので、単なる興味です
0802デフォルトの名無しさん
NGNG固有ID生成専用のテーブルに使うのがいいのかな
(主要テーブルへInsertするたびにID生成テーブルへInsertし
そのIDを使用したらすぐに削除してしまうとか)
これなら主要テーブルでDeleteをRollbackしても問題ないはず
0803633
NGNGクライアントにAccess2000、鯖側にSQLServer7.0でシステムを組んでいるんですが、
クライアントから複数のテーブルを参照するクエリを組んだりすると、
ODBCでテーブルをリンクしているものだからコネクションの上限に
すぐ達してしまうようなんです。
で、コネクションの上限を増やしたいのですが、これは
どこのメニューから行えばよいのでしょうか?
それともメニューでは無く、インストール時に出るあの接続アカウントの和を設定する部分でしか
設定できないのでしょうか…(ライセンスなんちゃらの部分)。
大雑把な質問ですが、ご教授頂ければ幸いです。
0804633
NGNG0805633
NGNG意味不明だった…。
SQL Serverのインストール時に「クライアント アクセス ライセンス モード」において
「同時使用ユーザ数」を「5」にして選択したとします。
で、この設定で使ってみて後から足りなかったとなった場合、インストール後も
追加可能なのかどうか?と言う事なのですが…どうでしょう。
もしくは新しいユーザ数で再インストールするしかないのでしょうか?
0806デフォルトの名無しさん
NGNG素敵な お相手が 貴方を待っています!
もちろん 女性は完全無料です!
http://www.sweet.st
0807デフォルトの名無しさん
NGNGいまどきAccess?
0808デフォルトの名無しさん
NGNG( ´,_ゝ`)プッ
0809デフォルトの名無しさん
NGNGメンテの時にテーブルを再作成して何気なく放り込んだりすると
カウントアップされてしまう。 これが主キーだと参照がはずれる。
と、3日まえにやらかしたミスを自慢げに語ってみるテスト。
モウレンバンツカワネー プンプン!
0810デフォルトの名無しさん
NGNG何万人でも追加可能です。コンパネのランセンスマネージャ使います。
ただしライセンスは購入するように!
0811デフォルトの名無しさん
NGNG二度と発注しないからそのままでもいいよ
0812デフォルトの名無しさん
NGNG0813デフォルトの名無しさん
NGNG0814山崎渉
NGNGピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
0815デフォルトの名無しさん
NGNGやらせてもらえる機会がないので、ちっとも身に付かない。
独学で身につけた人っている?
0816川 ・8・川
NGNG(DB設計を身に付けるのは) 難しい
0817デフォルトの名無しさん
NGNGとりあえず身の回りにある業務を自分でモデリングしてみ。
モデリング技法は本が出てるから研究してください。
0818デフォルトの名無しさん
NGNG「生産管理・原価管理システムのためのデータモデリング」
「実践的データモデリング入門」
このあたりの本はどうなんだろね。データモデリングって奥が深そう。
0819デフォルトの名無しさん
NGNGDBの設計が糞な時は、ビューとプログラムで吸収するしかないな。
OODB使えば変わってくるのだろうか。
0820デフォルトの名無しさん
NGNG0821貧乏脱出!これであなたはお金持ち
NGNG本当にお金持ちになるにはやはり「副収入」が必要!
一日30分 おうちでコピペ、コピペ!
嘘だと思うんならランキング見てみてくださいよ↓↓
(直リン不可)
http://www.adultshoping.com/addclickport.cgi?pid=1053353765(直リン不可)
/// /// /// /// ///
0822デフォルトの名無しさん
NGNG0823デフォルトの名無しさん
NGNG追加・更新・検索を毎日のように行うシステム。
普段使う検索範囲は過去2ヶ月分ぐらいが多い。
更新した場合その履歴を管理したい。
今後の分析に使うのでデータは残しておく。
テーブルの行数が1ヶ月に数万件程度増える。
こういったシステムだと
数年後には検索スピードが増大することになると思います。
皆さんはこういったシステムをどうやって設計しますか?
(ロードバランサやハード系の変更以外で)
2ヵ月分のテーブルと、それ以外のテーブルの二つに分ける?
(過去2ヵ月以外に検索範囲が及ぶ場合UNION ALLする)
2ヶ月分のテーブルと、全件のテーブルの二つに分ける?
(定刻起動で別テーブルのデータ削除)
数ヶ月ごとに別テーブルにする?
0824デフォルトの名無しさん
NGNG過去2ヶ月以降のデータの粒度は落としちゃダメなのかよ?
0825デフォルトの名無しさん
NGNG粒度を落すとは具体的にどういう処理をするということですか?
[間違い]
(定刻起動で別テーブルのデータ削除)
↓
(定刻起動で2ヶ月分テーブルの範囲外データ削除)
0826デフォルトの名無しさん
NGNGサマリーデータを作ってしまう
or
データを間引く(毎分のデータを10分ごとのデータのみ残すなど)
つーことだと思われる。
0827デフォルトの名無しさん
NGNGなるほどそんな方法もあるんですね。
ところで検索用の別テーブルを持つって方法は一般的ですか?
0828デフォルトの名無しさん
NGNGサマリーデータって何ですか?
0829827
NGNG間違い
>>824
↓
>>826
>>828
集計されたデータですね。
http://www.atmarkit.co.jp/aig/04biz/summarydata.html
0830山崎 渉
NGNG__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0831デフォルトの名無しさん
NGNG「LIKE を使って 部分一致で検索かけても秒速」とか言ってました。
先頭部分だけなら、該当カラムにインデックスを張ればいいのですが、
先頭以外の部分一致だと、どうやって「秒速」が実現できるか分かりません。
どーしてると思います? すみません、どなたか教えてください。
0832デフォルトの名無しさん
NGNGわかちかき?・・・んなあほな
0833デフォルトの名無しさん
NGNG秒速何メートル?
0834_
NGNG0835デフォルトの名無しさん
NGNGSISがフレームワークとセットで押してる手法だっけ?
実際のとこどんなもんなんですか?
0836デフォルトの名無しさん
NGNG>SISがフレームワークとセットで押してる手法だっけ?
そうですね、楽々フレームワークだったかな。
>実際のとこどんなもんなんですか?
いやぁ、書籍を中心に勉強しているのですが、
よく分からないのですよ。
本当の所は、セミナーやコンサルを受けたりしないと
わからないのかなぁという気がします。
0837デフォルトの名無しさん
NGNGそれは前方一致(または後方一致)の場合のみ。
本を読んでも書いてある。Indexの特性を活かした場合のみ
というのはT字形に限らず、RDBなら当然。
%キーワード%のような曖昧検索では遅くなる。
ちなみにT字形は漏れも10年ほどやってきてるが
実装周りははっきり言って内容が古いと思われ。
0838デフォルトの名無しさん
NGNG>それは前方一致(または後方一致)の場合のみ。
ここでいう後方一致とは、具体的には??
%キーワード
なるパターンですか?
これでもIndexって使われるんですか?
>ちなみにT字形は漏れも10年ほどやってきてるが
>実装周りははっきり言って内容が古いと思われ。
そうですか。
私は、書籍「T字形ERデータベース設計技法」と「論理データベース論考」を読み始めたところです。
リソースとイベントなる考え方は、役に立ったかなぁ・・・。
0839デフォルトの名無しさん
NGNGインデックスが使われるかどうかは最初っから決まっていて,
LIKE演算子なら先頭にワイルドカードを指定している検索の場合は使われない。
言い換えると,LIKE演算子の場合は,前方一致検索のみインデックスが使用される。
WHERE NAME LIKE 'hoge%'ならインデックスは使われる。'%hoge'なら使われない。
0840デフォルトの名無しさん
NGNG後方一致でもインデックスが使われるRDBMSってある?
0841デフォルトの名無しさん
NGNG聞いたことがない。
0842デフォルトの名無しさん
NGNG勉強が足りません。
0843デフォルトの名無しさん
NGNGどっかで聞いたことはあるが、詳しいことは忘れたんで
知ってるなら俺に教えてくれ。
0845デフォルトの名無しさん
NGNG0846デフォルトの名無しさん
NGNG0847デフォルトの名無しさん
NGNG教えて。それはすごく革命的かと。
0848デフォルトの名無しさん
NGNGMySQL
0849デフォルトの名無しさん
NGNGC言語関連の書籍に話題が集中してたからか。
---
データベースに関する書籍を漁っているのですが、開発を始めるにあたってのRDBMSの選択から
仕様書の書き方、開発方法の選定、スケジュール組み、
更には運用方法、障害からの復旧、データ移行…など、
「自社で開発し、運用する」システムに特化した内容の書籍などございますでしょうか?
開発要員が私一人なので、何か参考になる書籍があればと思っているのですが…。
Oracle、SQL Serverなどの例が載っていればなお良いです。
どなたかご存知でいらっしゃいましたらお教え下さい。
0850デフォルトの名無しさん
NGNG>運用方法、障害からの復旧、データ移行…
であれば、そのRDBMSのヘルプ及び専門書籍でカバーできると思う。
が、
>仕様書の書き方、開発方法の選定、スケジュール組み
になるとものすごく広い範囲の話になるので、全てをカバーできるような書籍は無いと思われ。
ノウハウとして蓄積されて中々表に出てくるような物ではないから。
0851デフォルトの名無しさん
NGNG0852デフォルトの名無しさん
NGNG準備中が多いけど気にスンナ
ttp://www.st.rim.or.jp/~k-kazuma/DN/DN.html
0853849
NGNG確かに運用に関する事であれば、それぞれのRDBMSに関する書籍で大丈夫ですね。
どうしても1冊で完結させようとしていました。
>>ノウハウとして蓄積されて中々表に出てくるような物ではないから。
確かにその通りで。>>851さんの意見と被るのですが、
それらのいわゆる「DB関連開発者のノウハウ」が載っているような
書籍があればと思っていたんですが、流石に無いですかね。
パブリックなものでなく、どこかの誰かが「俺はこうして作っている」みたいな感じの
内容であれば良いのですが…
>>852さん
リンクどもです。参考にしてみたいと思います。
これはなんだか本にして読みたい感じであります。
0854デフォルトの名無しさん
NGNGしかし見にくいページだな
0855山崎 渉
NGNG0856デフォルトの名無しさん
NGNG−−−−−−−−−−−−−
| ID | 状態 | 子 |
−−−−−−−−−−−−−
| 10 | 元気 | A |
−−−−−−−−−−−−−
| 20 | 病気 | B |
−−−−−−−−−−−−−
| 10 | 元気 | C |
−−−−−−−−−−−−−
■Bというビュー
−−−−−−−−−−−−−
| ID | 親 | 所在 |
−−−−−−−−−−−−−
| 10 | A' | 東京 |
−−−−−−−−−−−−−
| 20 | B' | 埼玉 |
−−−−−−−−−−−−−
から
−−−−−−−−−−−−−−−−−−−−−−−−−−−
| ID | 親 | 所在 | A | B | C |
−−−−−−−−−−−−−−−−−−−−−−−−−−−
| 10 | A' | 東京 | 元気 | | 元気 |
−−−−−−−−−−−−−−−−−−−−−−−−−−−
| 20 | B' | 埼玉 | |病気 | |
−−−−−−−−−−−−−−−−−−−−−−−−−−−
を作りたいんだが、あと一歩のところでできん。親A'の行が2行になって子の状態がわかれちゃうんよね。
どうすれば良い?
0857デフォルトの名無しさん
NGNGSQLではムリポ
なんつーかテーブル設計が・・・
0858デフォルトの名無しさん
NGNG回答ありがとうございます。
私が勉強不足なのかなぁ・・・。そこまでが限界か?
あとはビューから結果を持ってきて言語レベルで編集するしかないのか・・・。はぁ・・・。
0859デフォルトの名無しさん
NGNG項目の数が固定の場合は可能なんでしょうか?
後学の為にご教授ください。
0860856
NGNGA、B、Cという列は可変ではなく固定です。
外部結合でやってたのですが、列が増えたら処理が遅く使い物にならなくなったので
列別名とかDECODEとか使って思考錯誤いるんですが、上記まで行って手詰まりになったので
ここで質問しました。
0861デフォルトの名無しさん
NGNGできたところまででいいのでSQLをしめしてください。
0862デフォルトの名無しさん
NGNGselect A.ID, B.親, B.所在, A.状態, A.子 from A, B where A.ID = B.ID;
までじゃねーの?
>>860
固定になるわけがないと思うのだが
0863856
NGNG>>861
今日解決できなかったら示しますね。
>>862
上記例だとA、B、Cの3項目固定なんですよ。A、B、Cは必ず固定で表示します。
誰も病気でも元気でもなければ何も入らないです。
親、子っていう例が悪かったかな?
親をパソコン、子をパソコンのパーツ(CPU、メモリ、CDROM)としたら、
Aのビューは「パソコンのID、パーツの状態、そのパーツは何か」を示し、
Bのビューは「パソコンのID、パソコン名、パソコンの製作会社」を示していて、
AとBをまとめて見やすくしたいというのが目的ですね。
いづれにせよわかりにくい説明で申し訳ないです。
0864デフォルトの名無しさん
NGNG必要な結果を得る方法がわからないのか、できたけど遅くて
使い物にならなかったのか、どっちなのかはっきりさせよう。
0865856
NGNG本日頑張って完成させました。
ちゃんと検索処理も充分な早さでできました。
外部結合でやっていた時とは比べ物にならないくらい速くなりました。
いろいろ意見をして頂きありがとうございました。
というわけで下記の式でA、B2つのビューから欲しいビューを作りました。
なんか希望の物できたけどMAXとかはせこい気がするなぁ・・・。
まぁ、仕事速く進んだからいいか。
>>864さん
あえて表現するなら
「できたけど遅くて使い物にならなかったので、新しい方法を考えていたけどなかなか必要な結果が得られなかった」ですかね。
0866856
NGNGCREATE VIEW 欲しいビュー名
(
ID,
親,
所在,
Aの状態,
Bの状態,
Cの状態
)
AS
SELECT
VB.ID,
VB.親,
VB.所在,
MAX( DECODE( VA.子, 'A', VA.状態 ) ),
MAX( DECODE( VA.子, 'B', VA.状態 ) ),
MAX( DECODE( VA.子, 'C', VA.状態 ) )
FROM
A VA,
B VB
WHERE
VA.ID=VB.ID
GROUP BY
VB.ID,
VB.親,
VB.所在;
0867856
NGNG式を投稿したのにはじかれてる?
明日載せてみますね・・・。
0868856
NGNG連カキコすいません。
0869デフォルトの名無しさん
NGNG書籍とかサイトとかないですか?
同一業種でも、パターン化は難しいのだろうか?
でもベテラン設計者って、あるていどパターン化していると思うのだが・・・
メシの種だから、なかなか公開されないモノ?
0870デフォルトの名無しさん
NGNG0871デフォルトの名無しさん
NGNGなかなか公開されないんじゃない?
すくなくとも、複雑になるようなケースではそれで客に信用してもらうことになるわけだし。
0872山崎 渉
NGNG│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
0873デフォルトの名無しさん
NGNG知り合いの事業会社が自社で基幹系のシステムを作ることになりました。
販売管理等でユーザー数は100、同時アクセス数は20程度。社内に専用線による
ネットワークは整備済。開発要員は自社でトレーニングして充当するとのことです。
トランザクション量が多めなので、サーバーとRDBはいいものを、ということでUNIX
サーバーにOracleというところまでは仮決まりですがまだ未定。
問題は、アプリの開発ツールをどうするかということなんですが、社内で意見が割れてます。
一人はC/C++/C#のRADツール、もう一人はJAVAのRADツール、あと、Delphiもいます。
決定の最優先事項は、
・RDBとの親和性の高さ(ODBCじゃなくてネイティブで接続可なこと)
です。個人的にはDelphiしかないような気がしてるんですが、ちょっと他の詳しい人の意見も
伺いたく質問させていただきました。みなさんだったらこういう状況で、どのツールを選びますか?
理由も添えて教えていただけないでしょうか。よろしくです。
0874デフォルトの名無しさん
NGNG>C/C++/C#のRADツール
ほう、俺の知らない間に世の中は進歩してるなぁ。ちなみに製品名はなんての?
0875デフォルトの名無しさん
NGNGネイティブの意味がわからんな。
ローカルのDLL触る気か?oo4oにしたいってことか?
転送データ量や、RDBの負荷はちゃんと見積もったのか?
見積もったなら、アーキテクチャの設計に頭使った
ほうがいいんじゃないのか?戦略ミスを戦術でフォローしよう
なんてトーシロな考えはやめろよ。だいたいトーシロがoraの
DLL触ってどうしようっていうんだ?
0876デフォルトの名無しさん
NGNGアプリの詳細くらい書けよ。
Windowsクライアントなのか、Webなのか、サーバーサービスなのか。サーバーOSも。
多分Windowsクライアントなシステムだろうから、オレの推薦はC#。
あと、ORACLE使うならRDBとの親和性なんてどこも同じ。
トランザクションが多いってどれくらいかわからんし、ネイティブで接続って意味もわからん。
アプリとDB間のインタフェースが簡潔なほうがいいというなら.NET+SQLSERVERだと思うけど。
親和性も問題なし。
それからDelphiはどう考えてもなしだろw
そもそもそんなに意見が分かれてる状況で、どれかに絞って開発できるスキルあるのか?w
0877U ◆CZtFsGiu0c
NGNG>決定の最優先事項は、
・RDBとの親和性の高さ(ODBCじゃなくてネイティブで接続可なこと)
少なくともこれだけの条件から、
>個人的にはDelphiしかないような気がしてるんですが、ちょっと他の詳しい人の意見も
伺いたく質問させていただきました。
この結論が出ることはないように思えますが。他に条件はないんですか?
ODBC使わずに接続できる、というのならC/C++/C#/Javaどれでもいいと思います。
おそらくクライアント/サーバ型のアプリケーションということは決まっているようなので、
・アプリケーションの配布方法
・データベース以外の制約
・その言語/ツールに習熟している開発者の数
など問題になってくると思うのですが。
0878デフォルトの名無しさん
NGNG使ったこと無いからしらんが。
たしか、DBが更新されたらクライアントにイベントを送るとか言う特許使ってる
やつだよね。C#のデータセットクラスも、ホントはそれをつけたかったんだろうけど、
やっぱりついてないしな。DelphiはそもそもOracle向けで開発された言語だし
やっぱり良いのかもな。
0879デフォルトの名無しさん
NGNGまぁ、C/C++/C# を全部同一視して提案しているような奴の意見を真に受けないことだ。
C# は重いからやめておけ。.NETは次期Windowでネイティブ実装されてから使うのが吉。
Java も重いけど、Windowsクライアントも unixサーバ上の夜間バッチ処理も
同じ言語でかけるというメリットはあるな。
あと、JWS によるアプリケーション配布、更新。
どーせ、クライアントのUIなんて大したもんじゃないんだろ?
開発要員は自社でトレーニングして充当するって言ってるくらいだし。
であれば、Delphi か VB6 でちょいちょいと開発してしまうのが吉。
まぁ、VB6 を提案する人間が社内にいない、C/C++/C# を同一視してる…
その程度の連中で開発したら、どう考えたってデスマーチだがな。
0880デフォルトの名無しさん
NGNGはっきり言ってバカにしてたけど、帳票なんかも含むばあいだと、
あれほど簡単にDBアプリを開発できるツールは無いと思う。
ただし、下手に作ると保守はたいへん。
0881デフォルトの名無しさん
NGNG重すぎて現場から文句でるだよ。
0882デフォルトの名無しさん
NGNGどれ利用しても要件は満たせるような気がするけど。
結局のところプロジェクトのメンバがどの言語に精通しているかによるかな。
C/SのRADだったらJavaはあんまり生産性がよくないからやめておいたほうがいいかもね。
0883デフォルトの名無しさん
NGNG「二層C/SならJavaやめろ」ってどういう意味?
単純に「GUIクライアントにはJavaやめろ」ということじゃなくて?
キミの書き方だと、C/SのS(サーバサイド)でもJavaが遅いようなニュアンスがあるし、
また、一層モデル(単一プロセスで全処理をこなすJavaアプリケーション)や
三層モデル(たとえばプレゼンテーション層にWebブラウザ+JavaApplet)の場合は
Javaでも遅くない、という意味に取れないこともない。
Javaの大きな問題点は、起動の遅さと、GUIの緩慢さ だね。
これは、GUIクライアントにとっては致命的な問題だ。
0884デフォルトの名無しさん
NGNG同意
0885デフォルトの名無しさん
NGNGコンポーネントもある。ADOでも、oracleドライバ(プロバイダ)
でネイティブ接続は可能。もちDelphiからoo4o、ADOを呼ぶことは可能。
>C/C++ のRADなんてあるのか?
DelphiがRADというなら、
C++ BuilderがC/C++RADツール、これならOracleのlibもincludeできる。
(が、多分やらない、Delと同じコンポが使えるから。)。
>たしか、DBが更新されたらクライアントにイベント
>を送るとか言う特許使ってる やつだよね
それはInterBaseというBorlandのDB製品のこと。Delphiじゃない。
>DelphiはそもそもOracle向けで開発された言語だし
おぃおぃ...そんなガセネタ書いたら、
Delphiスレに晒しちゃうぞ。
>Javaの大きな問題点は、起動の遅さと、GUIの緩慢さ だね。
>これは、GUIクライアントにとっては致命的な問題だ。
Win限定なら(前レスの情報よりクライアント環境はWin以外ないと思うが。)
JavaにはSWTがある。
>2階層のC/SならPowerBuilderが絶対おすすめ。
そうね、さくっとつくるなら、PBがいいね。
VB+TrueGridもいい。もちDelphi+サードパーティGridもいい。
ということで、>>882じゃないけど、何でもイイ!ってわけだ。
プロジェクトメンバによりけりということ。
0886デフォルトの名無しさん
NGNGつか、販売管理ごときであればパッケージを使ったほうが・・・
0887デフォルトの名無しさん
NGNG0888デフォルトの名無しさん
NGNGフルオーダー=車輪の再開発
になるんじゃ。
販売管理で独自性出してどうする、と。
0889デフォルトの名無しさん
NGNG販売を知らない奴の典型。まあ、再発明と再開発を混同してる時点で終わってるが…。
0890デフォルトの名無しさん
NGNGま、顧客自身が独自につくりたがるんだからしょうがないけど。
作り直しの効かない基幹システムをローカルルールで縛りまくって自分の
首締めてるユーザ、結構多いと思うんだけど。
「再開発」については、あえてそう言った。
0891デフォルトの名無しさん
NGNGコボラーの発想。そんな脅しがいつまでも通用すると思ったら大間違い。
>ローカルルールで縛りまくって自分の首締めてるユーザ
システム屋の詭弁。ユーザーが自分の首を締めてるように見えて、実は
設計段階でローカルルールの取り入れ方を誤ってる。
0892デフォルトの名無しさん
NGNG「販売管理ごとき」などと書いたのは悪かったよ。
君が、他人の言葉尻捕まえて文句つけるのが得意なのも十分わかったから、
そろそろ本題に戻ろうよ。
0893デフォルトの名無しさん
NGNGいや、あの、書き方云々ではなくて、パッケージのお話をしてるんだが…。
0894デフォルトの名無しさん
NGNG逃げ出した奴に追い討ちかけんでもえぇやんw
0895デフォルトの名無しさん
NGNG0896デフォルトの名無しさん
NGNGそれ正解
0897デフォルトの名無しさん
NGNG中規模以上のユーザーではパッケージなんて使ってちゃだめだよ。
そもそも販売管理ってのは基幹業務なわけで、そこに特色を出せない企業は
生き残れないよ。(販売管理システムの良し悪しによって、エンドユーザーへの
サービスの質まで左右されるような時代になったからね。)
いまは多様化していて、販売管理の範疇であっても
業種特有のロジックがあれこれと必要になっている。
基幹系システムと情報系システムの境なんて今後どんどんなくなっていくんだから、
パッケージなんて使ってたら、企業の独自性が出せなくて死亡。
販売管理と言ったって、お金と物品の動きだけで済む時代じゃないよ。
0898デフォルトの名無しさん
NGNG>JavaにはSWTがある。
おまえ、SWT使ったことないだろ? Swingに比べればロードされるクラスが少ないけど、
それでも起動は非常に遅い。それと、独自描画を行わない SWT は Swing に比べて
高速だと思われているけど、必ずしもそうではない。
JNI に依存している SWT は、テーブル表示など JNIコールが多発する状況では
Swing よりも遅くなる。
0899デフォルトの名無しさん
NGNGがんばれよ
0900デフォルトの名無しさん
NGNGSWTがWin限定じゃないところじゃなかろうか
0901デフォルトの名無しさん
NGNGもっとがんばりましょう。
0902デフォルトの名無しさん
NGNGはいはい。他人の文章の抜粋はいいから勉強しろ。
0903デフォルトの名無しさん
NGNGあ〜だこ〜だと、ウンチク語る奴がまだいたのか・・・
Javaやってる奴にもいるんだよな・・・内部にアレ使ってるから処理が遅いの早いのとウダウダ・・
0904デフォルトの名無しさん
NGNGパッケージ使ったこと無いだろ。
使えばシステム屋がパッケージ薦めない理由や、少し目端の聞く顧客がフルオーダー
したがる理由がわかるよ。
0905デフォルトの名無しさん
NGNG書き方がひじょーに悪かった。
>(前レスの情報よりクライアント環境はWin以外ないと思うが。)
でも書いてあるように、クライント環境がWinだけでなく、Unix系でX使用等
複数のOSが混在していないということ。
それだと、SWTで使用した場合、複数のクラスモジュール
管理しなくてはいけないから(Javaの利点がなくなってしまう)ね。
(まぁ、クロスコンパイル可能な製品だと同じことがいえるけど。)
>>898
がんばれ(w
0906898
NGNGおっかしいなー。
レス数が900を超えています。1000を超えると表示できなくなるよ。