トップページ⇒tech
906コメント323KB

【ノウ】DBアプリ開発ノウハウ【ハウ】

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001デフォルトの名無しさんNGNG
・SQL文をコード内に埋め込むとコードが汚くなっちゃう。うまく分ける方法無い?
・似たようなSQLがあっちこっちのプログラムで出て来るんだけど…
・Viewとかストアドとか、みんながポンポン作っちゃって収拾付かないよ〜。
・分かりやすく長すぎないテーブル項目名のつけかたは?
・見やすい帳票レイアウトって? 入力しやすい画面遷移って?

などなど、悩むところはみんな一緒。
DBアプリ開発のノウハウを語るスレッドです。
0002(^-^*NGNG
良スレの予感
0003デフォルトの名無しさんNGNG
応援するYO!
俺も、今からまさにDB連携作成に入るところ
0004デフォルトの名無しさんNGNG
>1
>Viewとかストアドとか、みんながポンポン作っちゃって

ってのは、開発上の取り決めが無いのが問題なだけだと思われ。
0005デフォルトの名無しさんNGNG
>>1
「SQLをコード内に埋め込むと汚くなってしまう」の
実例をお願いします。いままで、Pro*CやVBで、DBを
使用したアプリケーションを開発してきたが、この例に
ぶち当たった経験がないものですから。

汚いテーブル設計はいやというほど目の当たりにしてきたが。
0006デフォルトの名無しさんNGNG
>>5
WebObjectsをやってみるとわかるかも
0007 NGNG
C#でストアドが作れるらしい。次のSQLサーバでは。
0008デフォルトの名無しさんNGNG
(・∀・) こういった話題は、こっちの板でどうぞ。
http://doomo.org/cgi-bin/bbs1/za.cgi
0009デフォルトの名無しさんNGNG
>>5
全てがストアドプロシジャとして実装できればハッピーですが、
実際にはダイナミックにSQL文字列を作成しなければならない場合も
あったりして。
個人的には複雑な検索条件でWhere節(区)なんぞを動的生成したりする
事が多いですが、みなさんはどうしてます?
00105NGNG
>>9
もちろん、プログラムから動的にSQLを
生成するのが基本。select句にしても、
select 以降、すべて条件によって
変化する。

ストアドプロシージャを使う局面は
ごく限られる。

...と思っていたが、それって、醜い
のか?(汗)
0011デフォルトの名無しさんNGNG
難しいよね
0012デフォルトの名無しさんNGNG
>>10
基本的にはそれを使ってもいいと思うけど、
クエリーが少ない場合はベタの方がいいかも。
0013デフォルトの名無しさんNGNG
SQL文自動生成の良いクラスってないの?
0014デフォルトの名無しさんNGNG
まぁ、なんでも使いようです。

列名に型を表すprefixつけるとやり易い
って、基本か(w
0015データベース男NGNG
DBアプリって何言語で作ってますの?
アクセルするにはODBCとかでやってるんですか?
0016デフォルトの名無しさんNGNG
ストアド内で動的SQLを駆使してコーディングすれば良いのでは?
0017_NGNG
>>16
そのトウリデス。
パーフォーマンすをかんがえたら、
ストアド以外使用するべからず。
0018デフォルトの名無しさんNGNG
ADOのレコードセットでフィルターをかますって事を
やっている人はいないのかな?
0019デフォルトの名無しさんNGNG
>>18
普通はやらないと思われ。

というか、そういうレベルの話をするスレなのか?
0020デフォルトの名無しさんNGNG
基本的なDBとのやりとり(SELECT/INSERT/UPDATE/DELETE)は
ストアド化する、って手法は普通でしょうか?
0021デフォルトの名無しさんNGNG
>>20
なんでもかんでもってのはやりすぎかも、でも多言語での開発を行う場合、例えば
入出力系はVB、DelphiなどのWindowsクライアントで、照会系はJava、PHPなどで
Webブラウザを使用ということになると、DB操作の一元化って事で、なんでもストアド
ってアプローチもいいんじゃないかな。
でも、その辺を突き詰めると、きちんとMVCに分けてAppServerを立てるって話に
なっちゃうね。
002220NGNG
>21
多言語での開発ってのを考慮すると確かに有効ですね。
参考になります。
0023デフォルトの名無しさんNGNG
>>18
GUIレベルの機能として必要なところには使ってるな。
一覧から選択する画面のフィルタとかね。
0024デフォルトの名無しさんNGNG
いいテーブル、フィールド名の付け方ってどんなの?
いまのところ
 ・とりあえず英語表記
 ・テーブル名はカテゴリに合わせてプリフィクスを付ける(台帳:ADM、マスター:Mとか)
くらいでやってるけど、実際どーなんでせうか。


英語表記を使うとSQLの予約語とかぶる罠
0025デフォルトの名無しさんNGNG
>>24

英語で名前をつけると、1テーブルのフィールド数が500とかなるとキツイ。
500個すべて英語にするのも、辞書引いてもわからないのも多い。
仮にローマ字表記でも、500はちょっと.・・・。

そういう場合、24はどうしてるんだ?
0026デフォルトの名無しさんNGNG
>>25
1テーブルに500フィールドって一体…
0027デフォルトの名無しさんNGNG
テーブルの正規化しろよ
002825NGNG
>>27

したいのはやまやま。
しかし、人事データでの場合単なるデータの羅列で、それくらいの情報はある。
また、レガシーなシステムを捨てられない辛さもある。



002924NGNG
今作ってるアプリもともとAccessだったが
Sヨが
「Accessだと256?以上フィールド増やせないからOracleにしる!」
とかいってOracleになりましたが、なにか?

正規化すればせいぜい1テーブル50フィールドくらいにしかならないがなー。
0030デフォルトの名無しさんNGNG
お約束かもしらんけど、テーブル名は「T01」とか頭につけるなぁ。
0031デフォルトの名無しさんNGNG
>>25
立場的につらいなぁ。過去のがからむと。
俺も人事やったことあるけど、やっぱり項目数が多かった。
しかも正規化できないやつ。

それより、論点ずれてきてるから戻さない?
テーブル、フィールド名の名前の付け方に。
項目数が多いのも考慮に入れて。
003231NGNG
戻ってた。ごめん。
0033デフォルトの名無しさんNGNG
VBでリソース使ってSQLは全部そっちに記述するようにしてみたが...
やるんじゃなかった(T_T)
0034デフォルトの名無しさんNGNG
フィールド名は頭に'_'をつける。
0035デフォルトの名無しさんNGNG
SQLって大文字小文字を区別しないからつらくない?
javaとかでありがちなfirstNameとかとあわせづらい。
FIRST_NAMEとか、first_nameってつけた方が良い?
0036デフォルトの名無しさんNGNG
>>35
Javaなんかつかってるからだ。
003725NGNG
Javaだけの問題でないと思われ・・・
0038デフォルトの名無しさんNGNG
粘着がいるね。
1か(w
00391NGNG
>>38
おいら>>21しか書いてない。
そういうノリやめよ。だれも粘着なんかしてないしさ。
0040デフォルトの名無しさんNGNG
>>35
つらいよねー。
結果、英語表記だとアンダーバー多用してしまうし・・・
0041デフォルトの名無しさんNGNG
ちょっと調べてみたけど、.NET、Relaxerなどのサンプルは、アンダーバーを
使わずに、大文字小文字混合みたい。
FirstNameやfirstNameとか。
0042デフォルトの名無しさんNGNG
みんな英語のカラム名どうやって付けてる?
自分はとりあえずここで調べてるけど
ニュアンスあってるのか不安
ttp://member.nifty.ne.jp/eijiro/
0043デフォルトの名無しさんNGNG
>>18
ADOのFilter使ったほうがトラフィック&速度的に
良さそうなんだけど、そういう目的では使わないの?
0044デフォルトの名無しさんNGNG
>>42
漏れはExcite
ttp://eiwa.excite.co.jp/

で、大文字小文字がないせいか、下手に省略するとわけわかんなくなる傾向が。
だいたい何文字くらいまでが適正なんだろ?
0045デフォルトの名無しさんNGNG
たとえば

製造会社:Manufacturer
製造番号:Manufacturer_Serial_Number
  -> Manu_No
とかってなんかいい書き方ない?


と書いてる最中にmakerにしたほうがいいのに気づく罠
0046デフォルトの名無しさんNGNG
>>14
列名に型を表すprefixつける
って基本なのか?
みんなそうなの?
違うと言ってくれ。
0047デフォルトの名無しさんNGNG
>>46
型が変わったときのことを考えると背筋が寒くなるのでやらない。
やったとしても、文字か数値か日付かってぐらい?
0048デフォルトの名無しさんNGNG
>>45
そうだよね。あるある。
結局英語ネイティブから見れば、こちらが苦労して辞書引きながら
やっても、おかしく見える場合って結構あると思う。
よって自分の場合はあきらめて、ローマ字表記で書いてる。
0049デフォルトの名無しさんNGNG
>>48
潔くTM0010,TM0020,TM0030...
005018NGNG
>>43
メモリ馬鹿食いするんで、多数のセッションをはるWEBアプリなんか
で使うと大変なことになります。
つーか、場にそぐわない話しなんでやめます。

>>48
ローマ時表記は個人的には嫌い。
「し」とか「おー」とかを表記するときに2通りあるんで結構困る。
0051デフォルトの名無しさんNGNG
あんまりもりあがらないスレだな(w

>>48
ローマ字は英語表記のできない専門用語とかにしか使わないなー。
理由は>>50の通り。
つか、「日本語ふつーにつかうよ」つー人がでてこないのが珍しい。

>>49
メモリマップ見てる気分になってくるからイヤソ
0052デフォルトの名無しさんNGNG
日本語ふつーにつかうよ。プレフィックス英字+日本語列名
わかりやすいし、見やすいし、コーヂングも仕様書作りも、すげー便利。
問題あると言う人もいるけど最近はもう大丈夫でしょう。

0053デフォルトの名無しさんNGNG
最初はくそスレけていと思ったけど、よくなってんじゃん。
0054デフォルトの名無しさんNGNG
なんかSQL鯖2kで日本語フィールド名絡みと思われる不具合が...
まだなんとも言えないけど。
0055デフォルトの名無しさんNGNG
機種依存文字使うと強制[ ]になるね
それを気にしないうちの上司、もう阿呆かと莫迦かと
0056デフォルトの名無しさんNGNG
>>52
文字コードの違うプラットフォームから叩こうとした場合に、寝ているバグを
起こしそうでちょっとコワイ。
0057デフォルトの名無しさんNGNG
お前らきちんとパラメータ付きクエリー使ってっか?
キャッシュが効かなくて無駄だらけなんだけどもよ。
0058デフォルトの名無しさんNGNG
>>57
パラメータ付きクエリーってjavaのPreparedStatementのこと?
005952NGNG

確かになんらかのリスクがあるのはわかるのですが、
でるのかでないのかわからない不具合に備えるより
日本語を使うメリットのほうが大きいと勝手に
思ってそうしている。

さすがに機種依存文字は論外。
2バイト文字の記号も避けて
第一水準だけ使う。
文字コードが違う場合は列名どころの話では済まない
あらかじめ複数の文字コードに完全対応するのはあきらめ
ましょう。
ていうか俺はあきらめてる。
0060デフォルトの名無しさんNGNG
> 文字コードが違う場合は列名どころの話では済まない
> あらかじめ複数の文字コードに完全対応するのはあきらめ
> ましょう。

で、のちのちシステムを拡張したり、
別のDBやOSに移行しようとして嵌る罠。

006157NGNG
>>58
javaしらんけどたぶんそれ。

以前分業してやったWEBアプリ、WHERE句とかsprintfでべた書きされて手萎えたんでな。
あまりにもアクセスが閑散としてたWEBなんで黙ってたけどな。
0062デフォルトの名無しさんNGNG
sql文を単純にsprintfでやるとエスケープされるべき文字列が
エスケープされないからねぇ。
0063デフォルトの名無しさんNGNG
cgiに'を食わせると狂うサイトのいかに多いことか..
0064デフォルトの名無しさんNGNG
IDとパスワードを要求するフォームで
パスワードを ' OR 'a'='a
っていれられたら終わりってのもあるらしい。
0065デフォルトの名無しさんNGNG
ありがちだのお。

ああいうcgiつくる馬鹿も馬鹿だが
そんなものを検証せずに受け取っちゃう方も受け取っちゃう方だなあ
0066デフォルトの名無しさんNGNG
ヘタヘタレです。教えてください。

INSERT 文に ストアドプロシージャを使うメリットって何ですか?

普通にSQL文書く場合:
sql = "INSERT INTO TABLE_A VALUES('" + strA + "'," + int1 + ",'" + strB + ............."')";

ストアド使う場合:
sql = "Execute InsertTableA '" + strA + "'," + int1 + ",'" + strB + ....................."')";


コードはストアドにしてもあんまりすっきりしないような・・・。
直前にDELETE文走らせることができるくらい。
なんか俺間違ってます...よね?
0067デフォルトの名無しさんNGNG
あああ、なんかバカまるだしだ・・・。鬱。

INSERT INTO ... SELECT とかするときは、多分すっきりするよね
でもあんまり使う機会ないな・・・。
0068デフォルトの名無しさんNGNG
「INSERT時はこれを使う」と決めることで、
統一されたコーディングになるというメリットはあるかも。
0069デフォルトの名無しさんNGNG
>>66
すでに同一キーがないかどうかチェックしたり、各フィールドの妥当性検査したり
他のテーブル更新したり…いろいろあるじゃん。
なにより、すべてのInsertがストアドになってるほうが、プログラムのあちこちに
似たようなSQLが埋め込まれるより安心でしょ?

すっきりしないのはどうしようもない。ような気がする。
関数化すれば多少はすっきりすると思われ。
0070デフォルトの名無しさんNGNG
データベースの定義を入力すると、>69が書いているような
内容のストアドを各テーブル分吐いてくれるってツールもあるよ。
0071デフォルトの名無しさんNGNG
>>66 クライアントはCやC++ですか?
jdbcなら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
VARCHAR2(4000)などという項目が20列近く、レコードが数万件あるテーブルから
すべての項目について部分一致検索を行いたいのですが、
Oracleはこのような検索には弱いようで、検索結果が表示されるまで
数分以上掛かってしまいます。
ところが検索結果を待てる時間はせいぜい10秒程度という要求がなされています。
(Notesの旧システムはその位のパフォーマンスが出ていた)
Oracle InterMedia TEXTという全文検索エンジンを導入すると、劇的に
改善されるという情報もありましたが、これは金銭の問題により導入は困難です。

当面の代替策として、Oracleへのアクセスを行っているWEBサーバの中に、
件の巨大テーブルと同じ構造・データを保持したMDBを配置し、
全文検索はそちらから行うようにしているのですが、それでも
検索に1分程は掛かってしまいます。

なにか安上がりで現実的な、良い代替策をご存知の方はおられますか?
0074デフォルトの名無しさんNGNG
>>73
テーブルの更新をトリガーにしてテーブル各行の主キーをファイル名として
各フィールドの中身を丸々コピーしたテキストファイルを吐き出しておき
それを全文検索エンジン(Namazuとか)に喰わせるのはいかがですか?
ファイル名=主キーですから、そこからさらにテーブルをSELECTすることも可能です。

・検索用ファイルの件数、容量が丸々テーブルと同じだけの件数、容量が必要なこと
・検索エンジン用のインデックスを作るのがバッチ処理になってしまうこと
上記2点がクリア出来れば実用十分な検索速度が得られると思います。
0075デフォルトの名無しさんNGNG
全文検索エンジンをつかうか
KWIC検索みたいのを考えてみなさい。

インデックス用のテーブルを別に持つ以外手はないだろう。
0076デフォルトの名無しさんNGNG
>>75
ケコーンしてるクセに随分偉そうだな。ガッコの先生にでもなったつもりか?
>>74の方がよっぽど的確で親切じゃねーか。
0077デフォルトの名無しさんNGNG
他スレで思いついたのだが
おまえらロックはどうやってますか?

参照・蓄積系はそんな問題にならないだろうけど、
更新系C/Sとかだと結構悩むところだと思うのだが、どーだろ?

漏れは来た仕様が悲観ロックばっかりなんで
そのまま実装しておしまいだが。
0078デフォルトの名無しさんNGNG
>>77
お祈り系。
(クライアントが極めて少数で且つ同時に参照している事が運用場無い)
0079デフォルトの名無しさんNGNG
更新は夜間バッチ。
これ最強。
0080デフォルトの名無しさんNGNG
更新系でも建家が違ったりした場合に、悲観で死んだ。
0081デフォルトの名無しさんNGNG
クライアントからはストアドしかみせないようにしとけば、
なんとか手綱が握れるだろう。
お祈りはダメ。

0082デフォルトの名無しさんNGNG
悲観ロックって何?
0083デフォルトの名無しさんNGNG
やばそうな床とりあえずロック?
0084デフォルトの名無しさんNGNG
>>82
排他ロックのことだYO!

つまり、誰かがSelectしたら、読み取ることができない。
0085デフォルトの名無しさんNGNG
漏れRDBMSの経験あんまないんで聞きたいのだが
いわゆる排他(といわずともなんかしらの方法で同時更新させない)
ような*動作*をさせるときに行ロックとかを使わない方法ってある?
あるとすればどうやるんでしょ?

思いつくのは更新要求を非同期に扱うくらいだけど
それだと即時更新できなくなっちゃうし。
あとはワーク用テーブルとかも思いつきそうだけどデータの矛盾がおこりそうだし。

実務でバリバリやってる方多そうなんでノウハウぷりーず。
0086デフォルトの名無しさんNGNG
追記。
いまOracleでやってて仕様が排他的動作なんで
SELECT〜FOR UPDATE使ってやろうと思ってたんだが
うちのSヨから「行ロックなんて普通使いませんがなにか?」
っていわれたもんで悩んでおります。
(わりに解決方法は提示してこない)

結局ケース倍ケースなんだろうけど実際どーなの?
008782NGNG
>>83
>>84
ありがとっす。
そうゆうのやったことないっす。
0088デフォルトの名無しさんNGNG
>>86
いや使う。
結構使う。
テーブルごとロックした方がいい場合もあるけど競合を抑えられそうなときは行ロックを使う。

使うんだが、そのSヨはよくしらんのか、たまたまその業務でつかわんでいいのか、
三回くらいリトライして交信中に矛盾が生じたためあきらめましたごめんメッセージが出るのか、
それともたまに謎のデッドロックするのかのどれかだろう。

行ロックの行数が増えると自動的にテーブルロックに格上げすんのってHiRDBだっけ?UDBだっけ?
008986NGNG
>>88
なるほろ。
やっぱロックしないとなると更新できないケースが出てしまうってことなのかな。

で、前にちょっとかじった情報によると、最新のSQLServerは
ロックの量?によって行 > ページ > テーブルロックとなるらしい?


だれかつっこみよろしく。
0090デフォルトの名無しさんNGNG
>>88
必ずしも使うわけではないと思うよ。
行ロックがないものもあるわけだし。
それでかなりクリティカルなものをやっているところもあるみたい。

DBが違えば、そこら辺の考え方はコロコロ変わってしまうしね。
今使っているDBの考え方から他のDBを評価するやつも多いしね。
0091デフォルトの名無しさんNGNG
>>89
そうそう、SQL Serverの機能だ。
行->ページテーブルでよいはず。

>>90
行ロックがないのはISAMから派生してきたやつじゃねえの?
普通の商用RDBだと、最近のバージョンのは大体持ってるけどな。(効率がよいか悪いかは別で)

必ずしも使うわけでないのは同意。
しないで済むならしないのが一番だ。

>>最後の二行
DBがちがうから考え方が違うんじゃない。
異なるコンセプトで設計されてるから、DBを選ぶべきなんだ。
前にも書いたがOracleしかしらんベンダは逝ってよし。
業務ごとにDBの向き、不向きを考えろ。
009286NGNG
>>91
> 異なるコンセプトで設計されてるから、DBを選ぶべきなんだ。
> 前にも書いたがOracleしかしらんベンダは逝ってよし。
> 業務ごとにDBの向き、不向きを考えろ。
なんかズシンときた!
印刷してSヨに見せてもよかですか?

と言ってみるてst
009390NGNG
>>92
ありがとう。舌足らずだった。
その通り。
0094デフォルトの名無しさんNGNG
SQL Serverには行ロックはあるけど排他+行ロックはないYO!
で、どうもMSは排他を捨てて共有ロックにしろって言ってるYO!
0095  NGNG
ADOとoo4oってどっち使ってまふか
0096デフォルトの名無しさんNGNG
>>85
>いわゆる排他(といわずともなんかしらの方法で同時更新させない)
>ような*動作*をさせるときに行ロックとかを使わない方法ってある?
俺がよくやるのは各行にカウンタを持たせるやり方。
最初は0で更新するたびにインクリメントする。
更新するときにSELECTしたときのカウンタの値とその時点での本当の値を
比べてもし違ってたらエラーにする。

これがちゃんと働くためにはC/S構造をきちんとして、更新を
一箇所だけに制限しないと駄目だからあまり役に立たないかも。
0097デフォルトの名無しさんNGNG
(´д`;;)
0098デフォルトの名無しさんNGNG
共有ロック、排他ロック、
悲観的ロック、楽観的ロック、
行ロック、ページロック、テーブルロック
を整理した方がいいかも。
009973ですNGNG
>>74
Namazu試してみました。ストアドプロシージャでCSV吐き出してる時に
原因不明のライトエラーを起こして4000ファイル位しか作れませんでしたが、
確かに検索は驚異的に早いですね。ありがとうございます。
問題なのは、やはり検索用ファイルの管理(テーブルに更新かかるたびに
毎回Namazuのインデックスも更新しなければならない等)、あと
あるカタカナの単語が含まれた文章が、その単語の最後の1文字が欠けた文字列で
検索かけてもヒットかった事があるのが厄介ですね。
こういうのは確実に回避する方法はあるのでしょうか?

>>75
全文検索エンジン導入がやはり最善かと思うのですが、まず金銭的な問題がありまして…
(Oracle8iなら無償で導入できるらしいのですが、8なんですよね。)
>KWIC検索みたいのを考えてみなさい。
>インデックス用のテーブルを別に持つ以外手はないだろう。
KWIC検索の実態がよくわからないのですが、興味深いので、もしよろしければ
もう少し詳しく教えて頂けないでしょうか?
0100デフォルトの名無しさんNGNG
ググれ。ばかもの。

中間一致・後方一致検索に強いインデックス作成法だ。

^^に対して
中間一致・中間・一致・後方一致検索・後方一致・後方・一致検索・一致・検索・強い・インデックス・作成法・作成でそれぞれインデックスを作る。
文中のどこを切って索引にするかは、作り次第。
どっかの国語辞書や専門用語辞典を取り込んで、それを元に索引を作ってもよい。
0101デフォルトの名無しさんNGNG
収束してない話題が多いがどんどん議題提供しる!

このスレと直接関係ないかもしれんが
おまえらER図作るのにどんなソフト使ってますか?

ネームバリューからいくとVisioなのかな〜。
いまだったらUML関係(Rationalとか)使う手もあるな。


ちなみに漏れはExcel + Wordで手書きですがなにか?
0102デフォルトの名無しさんNGNG
>101
うちの会社はまともなリレーションを張っていないのでER図が要りません(w
0103デフォルトの名無しさんNGNG
age
0104デフォルトの名無しさんNGNG
>>102
ER図から、自動的にテーブルを作れるのは便利だよ。
0105デフォルトの名無しさんNGNG
>>104
漏れはテーブルからER図にするのがホスィ
どんなソフトがあるのか見当がつかん(鬱
0106デフォルトの名無しさんNGNG
>>105
Visioでできるよん。
0107デフォルトの名無しさんNGNG
ところでその自動生成って、パーティションの管理も出来るの?
0108デフォルトの名無しさんNGNG
>>106
ヤパーリvisioだすか。
会社に買わせよーかなー。
0109デフォルトの名無しさんNGNG
>>108
Enterprise Architect買えば、UMLもかけるし一挙両得。
0110デフォルトの名無しさんNGNG
>>109
それってVS.NETだすか。
そっちはいらないなー(w
0111デフォルトの名無しさんNGNG
テクニカルエンジニアデータベース受ける人います?
0112デフォルトの名無しさんNGNG
>101
ERWin。
ERツールは絵が書けるだけじゃなく、DB管理の基礎なので。
リバース、差分検出できないと使い物にならない。

高いと思うけど、まじ、この手のもの一回使ってごらん。visioでDB作成、管理するなど考えられん。
0113デフォルトの名無しさんNGNG
Visioで満足。
0114__NGNG
>>112
ERWin俺も使ってるよ。便利だよ。
知ってるやつは、TrialをDownloadして、割れから
尻をGetして、ただで使ってるよ。
その場合会社で使ったらだめだよ!
0115デフォルトの名無しさんNGNG
会社じゃなくてもダメだボケ
0116デフォルトの名無しさんNGNG
>>112
Visioでインポート/エクスポートがついてるところを見ると
ERWinが業界デファクトなのかな。ちょいとしらべてみよ〜。

しかしどこにも価格が書いてないな・・・むぅ
0117デフォルトの名無しさんNGNG
ERWinのレジストに100万単位の金がかかると聞いたけど本当?
0118デフォルトの名無しさんNGNG
>>117
Webに価格載ってないところを見るとそれっぽいなw

導入した人情報ぷりーず
0119デフォルトの名無しさんNGNG
ERwin 日揮情報から売ってたが、あんまり高いためか、ER studioというのが安く出た。使ったことないけど大体同じ機能みたい。

ERWinも、単独なら70万ぐらいだったような記憶がある。グループで作業しようとすると、そのサーバみたいなのが500万ぐらいする。

単体でも、テーブル700以上、viewいれたら千数百ぐらいのプロジェクトで何とかいけた。visioでやってみな。
0120デフォルトの名無しさんNGNG
ということは

最初はとりあえずでVisio
満足できなくなった/売上が上がったらERWin

でよろしいか?

まあ稟議書通りそうなのはVisioだが(w
0121デフォルトの名無しさんNGNG
DBアプリ開発 ノ ウハウハ?
0122デフォルトの名無しさんNGNG
ERWin、もしくは似たようなツールを使うのはノウハウの一部よ。
生産性が、50倍は上がったと思う(エクセルのDB定義書と、手書きの絵のときと比べて)。
0123デフォルトの名無しさんNGNG
>>122
だね〜。

この辺は実際やってる人からしか情報もらえないし。
本とかにも具体的な作業の仕方なんか載ってないもんな〜。


で、DBマガジンってどうよ?
0124デフォルトの名無しさんNGNG
>>122 どっかの広告みたいなセリフ♥
   生産性が50倍に上がった作業が、全作業に占める割合こそ、問題だと思われ
0125デフォルトの名無しさんNGNG
>>124
自動化出来る作業が自動化されたからこそ、自動化できない、最も
重要で開発者の経験と技術が必要な部分での無能さがあらわになった
だけの場合が多いと思うぞ。

要するに、今までは成果の完成にあまり影響のない、技術の要らない
単純作業ばかりをこなして仕事してる気になってたアホが、あぶれる
わけだ。
0126デフォルトの名無しさんNGNG
それは良いことだ
0127デフォルトの名無しさんNGNG
>>125 は実務経験なしの空想家
0128デフォルトの名無しさんNGNG
って事はないだろ
0129デフォルトの名無しさんNGNG
DBと連携したWebアプリ作るなら、WebObjectsがおそらく最も効率いいよ。
開発者はSQL書く必要無し、DBのテーブル構造をぶっこぬいてJavaのオブジェクトにマッピングできるわ、
WebのインターフェースとDB側データの接続は、ツール上のドラッグ&ドロップでできちまうわ、
負荷分散やある程度の障害対応、DBロックなんかはフレームワークがやってくれるし、
そもそも、一般的に開発者がコーディングしてるDBとロジック間のやりとりなんかは、
用意されてるメソッド使えばいいだけというお手軽さ。
ロジックにSQLは入らないし、もちろんユーザーインタフェースにSQLもロジックも入らない。
クソ製品だらけのアップル社製とは思えない(笑)
開発はWindowsでもできるし、運用はJava2環境があればOK。

ただし、JavaやRDB、Web一般なんかの知識に加えて、OOPが理解できてないとかなりツライ。
0130デフォルトの名無しさんNGNG
129って何かスレの趣旨と違う気がするのは漏れの気のせいか?
つかJava以外の言語も混在したら逆にロック管理とかどうする
んだ?その辺はEJBも一緒だが。前はWebだが後ろでVBとか使って
メンテとかしているシステムって結構あるよな?な?な?(泣
0131デフォルトの名無しさんNGNG
>>130
泣くな、そういうのは結構ある。
(オレの周りだけかもしれんが)
0132デフォルトの名無しさんNGNG
漏れもWOは知ってる。
最初からアレで開発すると、今までやってた仕事はいったい何だったんだ?
っつーくれぇ天国をみることが出来る・・・マジで・・・
日々PerlでシコシコSQL埋め込んでると、本当に鬱になってくるよ・・・
今、1週間くらいかかってる作業、WOでやると1日か数時間で済んじゃうよ・・・(号泣)
0133デフォルトの名無しさんNGNG
>>130
まあDB関係全般のノウハウってことで

で、話聞くとWebObjectすごそーだな。
Appleなんか眼中になかったが(w)これってどんなソフトなんだろ?
MacromediaのUltraDeveloperみたいなやつなのかな?
0134デフォルトの名無しさんNGNG
この手のツールが実際投げてるSQL見たら気絶しそうだな…
0135デフォルトの名無しさんNGNG
>134
確かに効率悪いSQL吐く場合も多いが、書式やクセが統一されているだけまだマシさ。
アホPGが書いたSQLなんてそりゃぁもう...
0136デフォルトの名無しさんNGNG
>>135
それそれ、よくSQLは書く人で全然効率が違うって言うけど具体的に
どんなSQLだとクソなのか分からない。

何かいい例きぼん。
0137デフォルトの名無しさんNGNG
WebObjectsって確か、これで作ったソフトウェアが、スミソニアン博物館に永久保存されてるらしい。
日本のソフトウェアでスミソニアン入りしてるのは、これ(WO自身じゃないよ)と、セガのバーチャファイターだけだそうな。
(どういう基準なんだか・・・)

で、この殿堂入りしてるソフトはたしか、NTTの社内ベンチャー1号の社長が指揮して作ってる。
この社長自身は、光ファイバの構造を発明した工学博士。

俺もひょんなことからデモ見たことあるんだけど、アプリ自体がオブジェクトになってそれが集合して
またアプリを作り、それがまたオブジェクトになって・・・という、まるでコンポーネントのフラクタル図形か
マンデルブロ曲線かみたいな、ものすごい展開に、気絶しそうになった。
俺たちがシコシコ数ヶ月かけて作るような、でもクソ品質の電子カルテなんかが、わずか数分で
できあがってしまう様は、すでに奇跡の領域。会場は一種、宗教のような雰囲気に(w

UltraDeveloperとは、比較にならんだろ。元々、DBハンドリング周りのフレームワークは
10年以上前からあるし。旧ネ糞ト製品。

ただ、WebObjects自体は習得が非常に難しいそうだ。
最近J2EEに対応したらしいが、そんなものを使ってる開発者はほとんどいないらしい。
0138デフォルトの名無しさんNGNG
>>136
たとえば
テーブル名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
>>137
それのサイトとかありませんか?
その神がかったソフトウェアの。
0140デフォルトの名無しさんNGNG
>>139
http://www.cyberlab.co.jp/
ここでしょう。サイバーラボ。製品のサイバーフレームワークが博物館入りしてるのかどうかは知らないけど。
ここのK社長ってのが、>>137の言ってる工学博士号持ってる人のはず。
たまーに、アップルのセミナーとかでプレゼンやってますよ。
ぜんぜん偉ぶらない、気さくな人でした。
前に見に行ったセミナーで、このK社長の印象的な発言があったんですけど、

「私はアップルやマックが好きでWebObjectを使ってる訳じゃない。様々な開発ツールを評価したが、
これしか目的を達成できそうなものは無かった。真のオブジェクト指向の開発環境を、きれいに
ユーザーに提供してくれるのは、現在はWebObjectだけだ。もちろんこれを凌ぐツールがあれば
すぐにでも乗り換えるだろうが、残念ながらまだ存在しない」

ってなことをおっしゃってました。そのときは、Win2Kの入ったパナソニックのレッツノートに、
WebObjectsとサイベース入れてデモやってましたよ。
0141デフォルトの名無しさんNGNG
VC++でoo4oつかってるんだけど
ODatabase.ExecuteSQLメソッドで処理した件数って調べることはできませんか?
0142デフォルトの名無しさんNGNG
>>141
ヘルプ嫁
0143デフォルトの名無しさんNGNG
>>136
http://pc.2ch.net/test/read.cgi/prog/1015861447/295
0144デフォルトの名無しさんNGNG
>>138
あんまりいい例じゃーないね。
それじゃー136にはいってることがサーパり??だよ。
てゆうかワシにもわからん?
なにがわるいの?
スピードがおそいわけ?
コードの見た目?
0145136NGNG
>>138
さぱーり。
インデックス順に評価した方が速いって事?
わざわざ文字列変換かけてるって事?
うーん、その辺の話だとDBMSに依存するんじゃないのかな…
解説きぼん。

>>143
それはダメなDB操作の例であってダメなSQLとは違うと思われ。
0146デフォルトの名無しさんNGNG
>>145
複合キーがうまく適用できない書き方のことを言いたかったんじゃないかと推測。

障害や不具合やうまくないコードについて、明確な説明ができないやつは
どこいってもダメなんだよなあ。
0147デフォルトの名無しさんNGNG
そのDBと心中する気があるならいいけど、
そんな気になれないから146のいうようなオタクにはなりたくないなあ。
0148144NGNG
>>136
インデックスとか知ってりゃ
わかってんじゃん。
実は知っててきいてる?

>DBMSに依存するんじゃないのかな…
DBMSの特性にあわせたないといいSQLはかけない
とおもったりする。

>それはダメなDB操作の例であってダメなSQLとは違うと思われ。
SQL(DML)はDB操作をするための言語です。
まそれはおいといて、この場合たしかに、
VBも一応OK。SQLも一応OKです。ただその組み合わせかたが最悪ってパタンでしょう。
0149デフォルトの名無しさんNGNG
>>140
サンクス
0150デフォルトの名無しさんNGNG
>123
DBマガジンは結構読んでる。特集がたまに面白いし、便利と思う。
ただ、連載は個人的に役に立ってない。そーいや、最近ERWinの
特集だったね。

>124
50倍というのは、感覚値で、測定してないからその意味では申し訳ないな。
ただ、この工程と言うのはDBの設計部分で、ここでのエラーは後で大変
コスト高 & 品質低下になるからね。俺の場合、できれば顧客を教育して
ERを読めるようにして(これは結構簡単にできるからね)、これで議論する
用にしてる。このとき、ツールのある無しは決定的。

その後、即効でDBできるし。開発上でDB変更したらすぐモデルも変更して
配布、議論できるし。工程が全体に占める割合もくそもないと思うが。
全体として、有効。もっともDOAで開発してるからだけど。

で、顧客にER教えた感想だが、ER書くのは、文系の仕事というか、顧客の
ほうが適任ね。ようは技術じゃなく、実現したいシステムを現してんだから。

そういう意味では、可能な場合は、顧客とERで議論するのは重要なノウハウと思う。
0151デフォルトの名無しさんNGNG
ORA-12571 ってエラーに苦しんでる。
いろいろ調べてみてるが、さぱーり・・・・・
ここに相談ってよし?(オラクルマスター他界から)
0152デフォルトの名無しさんNGNG
行ってよし!!
http://www.google.co.jp/search?q=ORA-12571&hl=ja&btnG=Google+%8C%9F%8D%F5&lr=lang_ja
0153デフォルトの名無しさんNGNG
>>145
テーブル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
>>153 自己レス
複数のテーブルを組み合わせるともっと極端になるね
0155デフォルトの名無しさんNGNG
>>153
それぐらいならオプティマイザで勝手にしてくれない?
0156デフォルトの名無しさんNGNG
>>155
そっか・・・最近のはそうみたいだね
実装によっても違うし、一概にはなかなか難しいかな〜
0157デフォルトの名無しさんNGNG
そんな高度な奴じゃなくて、Like条件を無意味にORで繋いでたり
それを更にANDで括ってたりする奴もいた。
0158デフォルトの名無しさんNGNG
>>152
サンクス
逝ってきた。(というより、すでに逝っていた)
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
>>156
おいらもしっかりWHARE句の最適化はやってるよ。
確かにオプティマイザが勝手にやってくれるDBが多いけど。
基本的に良い習慣だと思っている。

Cのif文は発生する確率が高い方からチェックするようにすれば高速化できるしね。
そういう地道な努力は高速化する上での重要な要素の1つとだと思う。

普段から注意していないと、なかなか身に付かないしね。
0160138NGNG
>>136
では解説
RDBじゃインデックスを使うかどうかパフォーマンスに大きな影響が出るわけよ。
単純で簡単なことだけど、一番大事なことなわけ。

インデックスの基本理論からするとDBMSに依存する部分は少ないよ。
複合インデックスは順番に評価する
インデックス列に関数は使わない。
これは大原則です。

結合が多くなっても同じことが言えるわけで
分からないということはおそらくアクセスパスの解析をしたことが無いってことだろう。

まあ確かに端折りすぎた。
もっといい例きぼん。

>>159
良い習慣だと思う。
0161デフォルトの名無しさんNGNG
データ量やインデックスの種類も重要だと思われ。

データ量が少ないと主キーは別としても最近のRDBエンジンは
インデックスなんて使わないでしょ。

2値の列にハッシュインデックス貼ったりするのも激しく無意味だし。

やぱり最終的なチューニングは各DBのアクセスパス解析ツールを
使わないと、そのエンジンによっぽど精通してないと
人間の判断なんてあてにならないような気がするぞ。
0162デフォルトの名無しさんNGNG
>>161
最終的にはそらそーだ。
ただDBMS依存の最終的なチューニングによる効率UPよりも
非依存の基本的なチューニングの効率UPのほうがでかいって話では?

>2値の列にハッシュインデックス貼ったりするのも
これだって非依存だろ?

0163161NGNG
なるほど、そうだーね。基本がひどいとまずいやね。そりゃ。
基本を押さえた上で、DBMS依存のチューニングをかけると。

ただ、インデックスのチューニングって結構むずかしいと個人的には思ってるのよ。
運用中に頻繁に更新があるならたくさんつくりゃいいってもんでもないし。

いろんな検索パターンがあるシステムだと、多数決とゆうか、重要度とか
人間的な判断で決めちゃったりして。>みんなはどーよ。

個人的に欲悩むのはJOINしたテーブル同士の検索条件は、
Where節で指定するか、JOINのONで指定するのがいいかって事かなー。
アクセスパス見るとまったく変わらなかったりするのだけれど。。。
0164デフォルトの名無しさんNGNG
WO使ってみた。
SQL書く必要なかった。
(バックエンドで発行されてるSQLは見られる。)
1つのオブジェクトに、別々の鯖で動いてる別製品のRDBのテーブルをマップできるらしい。
なんか鬱。
0165デフォルトの名無しさんNGNG
>>164
ふーん。すごそーだな。
これも会社に買わせようか・・・・


つかこのスレのせいで稟議書がふえてるな(w
Visioといい、ERWinといい、WebObjectといい・・・
0166デフォルトの名無しさんNGNG
>個人的に欲悩むのはJOINしたテーブル同士の検索条件は、
Where節で指定するか、JOINのONで指定するのがいいかって事かなー。

実際には同じ実行プランに落ちるはずなので、好みでいいんじゃない。
ノウハウというのもなんだけど、ある程度複雑なSQLを使うときは実行プランは
確認しようね。とんでもないプランで実行しているときがあるから。
0167デフォルトの名無しさんNGNG
SQLはDBやバージョンごとにチューニングのポイントがあるから
それを調べておけ。

で、まともなDBならインデックスが期待したとおりに使用されるかどうかの
実行プランがみれるから、それを使え。

オプティマイザにも色々種類や特性があって、少し柔軟にインデックスを
見に行ってくれるものや、明示的に統計情報を取得・更新しないと
まともな最適化をしてくれないものとかある。

SQLレベル以外にも、DBへのコネクション方法やテーブルレイアウトの設計、
インデックスの分散や隣接配置、テーブルスペースの配置、
ディスク装置の選択やRAIDの選択、使用メモリのチューニング、
ログの分散、管理、バックアップ・レプリケーション、
見るべきところはたくさんある。

一個だけつまんで見せて、「コレひどいよね」といっても、
木を見て森を見ず、の場合だって有るのだ。
0168デフォルトの名無しさんNGNG
私はオプティマイザは使わないほう(以下Oracleの話ね)。
タコSQLの被害低減ぐらいと思っている。

何より困るのは、開発、評価、実機で動作が変わるから。

また、アナライズもかけないで、オプティマイザを使っています
という、タコプロジェクトも見たことあるが、実データがない場合は
評価困難だしね。

個人的には重そうなsqlはかいたらすぐプランとって見るし、
少なくともチューンするときはヒントで、プランを
固定するようにしている。

Oracleもルールはなくして、コストベースにだけしますと
とずーと昔から言っているが、ずーとできそうになさそう。
ただ、コストベースでないと使えない機能があるので、
DB自体はコストベースにして、ヒント等で固定化してる。

知り合いのプロジェクトでは、外注に納品物件にプランの
提出を義務づけ、とりあえず(full)をチェックしてるみたい。

動的SQLはどーすんだと突っ込まれると思うが、量的には少ないし、
完全に読めないことはないので、インデックスあてといて、あとは
テスト、運用で発見個別対応になるね。なにより、できるやつに
その仕事をふること。

ただ、一度50人ぐらいのプロジェクトでは、動的SQLを作成する
ルーチンを書いて、表名、フィールド、条件とうの入力と、検索結果
をテーブル渡しにして、動的SQLの発行を一箇所でコントロールしたこと
もある。実際に発行されるSQLをログって監査する必要があったこともだが、
タコに動的SQL書かせて、後でデバッグ、チューンする恐怖より、
このルーチン作るほうを選んだ。
0169デフォルトの名無しさんNGNG
あのさぁ、外部参照制約とかデフォルト制約って使ってる?
うちの会社なんでか使ってないんだよね。
テーブル設計書とかにはちゃんと初期値 = 0 とか、初期値 = システム日付 とか
書いてあるのに、デフォルト制約にしないで、入力プログラム(VB)で
発行するInsert文やUpdate文で明示的に 0 とかシステム日付セットしてる。
0とかの固定値はともかく、システム日付をVBで算出するとクライアントの
時計を使ってしまうので、困ると思うんだが…。

外部参照制約に関してもまったく設定してないんだよ。
仕様書には「商品マスタに該当レコードがあるかチェックする」とか書いてある。
外部参照制約作っといて、例外補足すればいいんじゃないの?

他の会社でもこんなもんなのか?
0170デフォルトの名無しさんNGNG
DBアプリ作るのに、SQL最適化なんて本質の話しじゃないね
できればSQLなんて書かずに、ビジネスロジックの作り込みに専念すべきだ
そんな部分にパワーかけてどうする
0171デフォルトの名無しさんNGNG
>>170
性能で客から怒られたことのない素人が紛れ込んだ模様。
0172デフォルトの名無しさんNGNG
>>171
SQL作成とインデックスの追加申請くらいしかやらせてもらえない
駆け出しが紛れ込んだ模様。
0173デフォルトの名無しさんNGNG
>>171
なんだ、新卒ブビ厨?
SQLごときでパフォーマンスでないような作り方してんのか。まさにドキュソだね。

俺もWO使ってるけど、SQLなんか一度も書いたこと無いし、客から怒られたこともない。
元々金融系から始まって10年くれぇの実績のあるフレームワークと、
たいしたスキルも無い厨房が書くゴリゴリのSQLと、客はどちらを信用するのかねぇ(w
0174デフォルトの名無しさんNGNG
SQL作成に血道をあげるのはいいんだけど、ちゃんとロッキングとかやってないSQL厨って
けっこう多いんだよね・・・
0175デフォルトの名無しさんNGNG
一部のDB屋って特定DBのチューニングテクニックを知ってるだけで
鼻高々としてるから可笑しいよね。運用上は必要だけど、DQN仕事だな。
俺はやりたくない。

DBを、単なるデータストアでなく、ソフトウェアコンポーネントの一つとして
見て欲しいんだがなあ。どうもデータが出たり入ったりするのを見て
エクスタシー感じてる連中が多いみたいだね、ここには。
0176デフォルトの名無しさんNGNG
そりゃ、出たり入ったり入れたり出したりってのは、気持ちがいいからなぁ(w
0177デフォルトの名無しさんNGNG
イン・アウトがキモチイイ(・∀・)のは世界共通語だYO!
0178デフォルトの名無しさんNGNG
とりあえず、今のところWebObjectsが最高なのはゆるぎない事実だ。
0179デフォルトの名無しさんNGNG
>169
同意。
外部参照制約のデメリットは、更新時のパフォーマンスなんだが、データが腐ることよりはずっとましと思う。
昔、あるシステムの改造をいらいされて、DBリバースしてみたところ、ただの表のあつまり。エクセルじゃないんだからってなかんじ。
案の定、データ腐りまくりで、開発より、データクリーング、移行のほうがはるかにコスト高。
ってことで、その案件はつぶれた。

デフォルト値は、場合によりけりだね。
追加開発で、新しいnotnullの属性を追加するときとかに、仕方なくデフォルト
入れることはあり。
0180デフォルトの名無しさんNGNG
>173
金融やってたってひとで、自信あるやつ多いんだけどさ。
コンサルでは使いk物にならないこと多し。
金融の場合は、目的が明確なこともあると思うが、まったく
別種のビジネスでのコンサルに入ると分析能力無し。

技術てきにも、そのすばらしいフレームワークとやらのおかげで、
自分で一から構築したことがないんでまるで、提案できない。
0181デフォルトの名無しさんNGNG
>>178
でも、あまりWebObjectsは広まって欲しくない・・・
誰にも使わせたくないっていう感じ(藁
わかるだろ?この感覚。
0182デフォルトの名無しさんNGNG
>>180
日本語もまともに理解できないアフォドキュソですな(w

金融系やってた人間そのものの話しなんかだれがしてるんだよ。
WOの実績の例を出しただけだろ。
使い物にならないコンサルを、カバーするだけの力量がフレームワークにあるってことだ。
SQL以前に、小学校から国語をやりなおしてこい。

そもそも、一から構築したことのないヤツに、WOを使わせても無駄。
自前で実装した苦労や、他のツールで地獄を見た経験を持ったヤツだけが、その価値を理解できる。
0183デフォルトの名無しさんNGNG
>>181
広く使われるとボロが出るからな。
悪い評判が立つと客が嫌がるし。
0184デフォルトの名無しさんNGNG
>>183
うんそうだね。だから、君には必要なんだろう。
いつまでもSQLの作り込みに勤しんでくれたまえ。
自分で何もかも把握できた方が、効率よく作ることより重要だからな。
0185デフォルトの名無しさんNGNG
失敬、

>だから、君には必要なんだろう。

は、

>だから、君には必要無いだろう。

に訂正。
0186デフォルトの名無しさんNGNG
>>181
うん。すごくわかる。
でも、広まってくれないとWebの案件をWebObjectsで提案しても蹴られる可能性あり。
0187デフォルトの名無しさんNGNG
>自分で何もかも把握できた方が、効率よく作ることより重要だからな。

これが相反関係にあると言いたいのか?
すげーな。
0188デフォルトの名無しさんNGNG
>>183
まあ181はマカー根性丸出しってことで
sagesage
0189デフォルトの名無しさんNGNG
マックは触ったことないですけど
WebObjectsはWindows2000で開発してソラリスで運用するんだよ
0190デフォルトの名無しさんNGNG
>>187
つくづく厨房だな(w
お前、PGでもコーダーの部類だろ。
0191デフォルトの名無しさんNGNG
184は効率という言葉を使いたかっただけだろうね。

>>187
トレードオフという言葉を覚えましょう。
俺もそれらがトレードオフになるとは思わないけど(w
0192デフォルトの名無しさんNGNG
>>170と>>180およびその周辺。

>>1もろくに読めない馬鹿が雁首そろえて偉そうなこと言うな。
0193デフォルトの名無しさんNGNG
せっかくの良スレがぁ...
0194デフォルトの名無しさんNGNG
良スレだったのか
0195デフォルトの名無しさんNGNG
いや、最初から糞スレだったような…
結局 【自慢話を語るスレでした】 って事だな
0196デフォルトの名無しさんNGNG
グチってても仕方ないから次いきましょう。

DBアプリを納品してからも仕様の変更・追加ってあるよね。
テーブル設計が変わっちゃったりした場合とか、被害を最小限にしたいよね。
そのためにやってることってある?

WebObjects、.NETなど、オブジェクトに自動マッピングされる環境では
仕様変更ってどうなるの?
0197デフォルトの名無しさんNGNG
WebObjectsでは、仕様変更も他に比べて柔軟に対応できるよ。
DBが絡んだWebアプリでも、表示項目とUIが同時に変更になったとしても、
開発ツール上でデザイン変更できるし、DBとの接続もドラッグ&ドロップでほとんど完了。
他のJavaベースのツールみたいに、泣きながらゴリゴリ再コーディングっていう手間はあまり発生しないなぁ。
もちろん、純粋なビジネスロジックのコーディングし直しってのもあるけど、
かなりの部分がフレームワークが提供するメソッド利用するだけで目的が達せられるから
開発者としては、とても楽。

.NETって、どうなんだろうね?
0198デフォルトの名無しさんNGNG
>>196
ありきたりだけど…
(1) Select項目は明示して * を使わない
(2) Insert項目も明示的に指定する
こうしておくと、仕様変更でテーブルにフィールドが追加されても
その追加フィールドにデフォルト制約を付けておけば、
既存のプログラム(参照、更新ともに)結構動くよ。
0199デフォルトの名無しさんNGNG
SQL意識してる時点で、使う側に立った開発よりも開発者よがりの開発になるな。
0200デフォルトの名無しさんNGNG
>>199
ユーザーが使いやすいシステムを構築する上で
ストレスを感じさせないだけのパフォーマンスは必要

SQL云々もその一環だから使う側に立っていないとはいえないと思うよ

おっと、200ゲトー
0201デフォルトの名無しさんNGNG
>>199
確かにその観点はある意味間違っていない。

だが客にとっては、
SQLを直接書こうが書くまいが、WebObjectsだろうが、Javaだろうが.NETだろうが、
結果を出せるかと、最後まで責任をとれるか、が重要だと思う。

だいたいこの世界、欧米も含めてまだぜんぜんWebObjects一色ってわけじゃないでしょ?
WebObjectsがまだ知られていないというわけでもないだろうし。

欧米のメーリングリストなんかでもまだまだSQLネタって多いしね。
そこが現実ラインでしょ?
0202デフォルトの名無しさんNGNG
>>200
概ね同意だけど、ストレスを感じさせないだけのパフォーマンスを出せる実装を
できるだけのスキルのあるやつって、現場レベルでも最近少いような気がする。
パフォチューなんて思想無し。た〜だSQL書いてますみたいなやつ。
派遣や外注でやってくるヤツラで、「おお!こいつやるな!」みたいな人間にここ数年出会ってない。

なんていってるおれも、最近WebObjects始めた。
WinXPで開発、Linuxで運用。
なんつーか、目から鱗。
DB使うWebアプリが、ここまで効率化できるとは思ってなかったよ。
パフォーマンスも問題なし。

しかし、こんなツールが何故広まってないんだろうか。
アップル製だからかな?
Webオーサリングツールと勘違いされてるとかね(ワラ
0203デフォルトの名無しさんNGNG
WebObjectsが流行らないのは、元請が売ってるツールを使わされるからでしょ
WebObjectsは7万円だけど、他のツールは何百万ってするもんね。
そりゃ、高く売れるほうがいいよね。
0204デフォルトの名無しさんNGNG
>>199
バカじゃないの?
実装も意識して、かつユーザビリティも意識した開発するのが当たり前だろ。
それともお前の所ではそれがトレードオフになるのか?

>>1も
・見やすい帳票レイアウトって? 入力しやすい画面遷移って?

とスレの裾野が広がるような議題を持ってきているのにも関わらず、それを無視して
開発者よがりな話に持っていこうとしてるのはお前の方だろう。
0205デフォルトの名無しさんNGNG
>>204
おまえもわけわからん。。。。
0206デフォルトの名無しさんNGNG
>>204
同意。SQLしか意識していない技術オタは糞だが、
SQLを意識している技術者が、UIなどをないがしろにしているとは言えないからな。
>>205はもう一回読み直してみ?
0207 NGNG
「チューニング」や「正規化」が変にもてはやされたからね。

とりあえず動くモノを作って次にチューニング、なんてのはSQL屋失格だし、
「正規化」とやらも初心者向けというか暗記型向けというか、
最適設計にはならない。
0208デフォルトの名無しさんNGNG
>>203
マジか。WebObjectやめた。
0209デフォルトの名無しさんNGNG
>> 207
> 「チューニング」や「正規化」が変にもてはやされた

それが全てだとは言わないけど、それよりも大事なものって何なの?

一見するときれいな画面設計?
一見親切な操作方法?

画面設計や操作方法を考えるのももちろん大切だけど、
それよりも「システム」がしっかりしているが大事で、
しっかりした良いシステムを作るためには「正規化」が
大切だというのがいわば常識。

良いシステムを作るために「正規化」が
万能ではないという話ならばわかるけど、
207は良いシステムをつくるということを
考えていないように感じられる。システムが
ちゃんとしていないならば、本当の意味で
ユーザーにとって使いやすいアプリであるはずは
ない。
0210 NGNG
最初に設計ありき。
チューニングなんぞ「敵が城を囲んでから対応策を考えるようなもの」
正規化は「モノを考えられないアフォを訓練してあるレベルにまで持ってくる」
為の手法であって、マトモな設計者がやる事ではない。
0211209NGNG
> 最初に設計ありき。

全面的に同意。

> チューニングなんぞ「敵が城を囲んでから対応策を考えるようなもの」

確かに設計の段階でパフォーマンスも充分に意識すべき。
ただし神ならぬ人の身には、思いもかけず敵に城を囲まれる
こともあるし、その際には対応策を考えざるを得ない。

> 正規化は「モノを考えられないアフォを訓練してある
> レベルにまで持ってくる」為の手法であって、
> マトモな設計者がやる事ではない。

正規化よりまともな方法がわかるというのであれば、
設計者にしておくのはもったいない。世界的な研究者に
なれるんじゃないかな。現在のDB設計上、もっとも
マシな指針が正規化。それをまったく使わないのは
世界的研究者レベルの大天才か、ろくでもない設計者の
いずれかと思われる。
0212デフォルトの名無しさんNGNG
>>211
いや、正規化なんて誰に教えられるわけでもなく身に付くはずって事だろ。
手法と言うよりは理屈の話だしね。
それをわざわざ教えなければならないってのが
>「モノを考えられないアフォを訓練してあるレベルにまで持ってくる」
って意味じゃないの?

つーか、スレの方向と著しく違うのでこれで終了にするか、どこかよそでやってくれ。
0213デフォルトの名無しさんNGNG
正規化をきちんとやると、更新系と参照系を同時にやるようなシステム
では速度が出ない。理屈からして当たり前。

普通プログラムの応答速度を上げる為にキャッシュとなるバッファを取る
のと同様に、DB内部に冗長な部分をどのように作るかが、RDBMS技術者と
しての本領になると思う。
0214デフォルトの名無しさんNGNG
>>213
例を挙げて冗長にした方がいい場合を説明しないとただの独り善がりだぞ。
技術者の本領だの禅問答じみた話はいいからノウハウを語れ。
0215デフォルトの名無しさんNGNG
>>214
俺の言いたいこと言ってくれてありがとう。
途中から飲み屋のオヤジ会話になってる。
0216デフォルトの名無しさんNGNG
要は、レスポンスとDBの負荷が最小になるモデルを作って、そのモデルに
合うようにテーブル設計すれば良いだけ。
こっちの方が正道の設計。
「正規化」はDBの構造を知らない素人でも70点のモノが作れるようにする
為の手法であって、正道ではない。

うんと単純化したケースで言えば、
冗長の方がアクセス回数が1回で済む場合は冗長にした方が良い。
0217デフォルトの名無しさんNGNG
結合演算を伴うクエリーが頻繁に行われる時に、正規化されたテーブル
群に毎回結合演算を要求するのは無駄なことがあるでしょ。

例えば、そういうときにビュー作ったり、ビューでは都合が悪い時に
クエリーが高速に行えるような単純なテーブルを別に作っておいて、
更新をトリガーにしてそこに結合演算の結果を別途書き込んでおく、
なんていうのも、よくやるでしょ。
0218デフォルトの名無しさんNGNG
>>217
よくわからないんですが、それって正規化された設計を
基本として、ビューとか高速化用のテーブルとかを追加
するという「チューニング」をやってるわけですよね。
それともそういうのはチューニングじゃないのかなあ。
0219名無しさんNGNG
>>218
そういうのを前もって設計段階で考慮しておくってことじゃないの?

後で、「遅いからチューニングしよう」とかじゃなくて。
0220デフォルトの名無しさんNGNG
「チューニング」で出来るのは一部の手直しでしょ。
全体の設計を変えないまま、糞設計をいくら手直ししても無駄。
性能出す為には全体設計ってのが一番効く。
0221デフォルトの名無しさんNGNG
>>220
禿同。
正規化云々ってのも、すごく理解はできるし、そこにパワーをガッツリと割けるだけのリソースがあればいいけど、
そんな恵まれた環境やDB屋がいる現場って、そうそう無い。

それに、もう今は現実として、実装のスピードとパフォーマンスが、従来の開発手法だと
釣り合わなくなってきてるしね。
0222デフォルトの名無しさんNGNG
パフォーマンスの悪さに悩まされ、設計やSQLレベルのチューニングが行き着いたときに、
さらにそこから性能改善ができるかどうかが真のチューニング技術だと思うんだ。

基幹システムを莫大な額を投入して、運用を開始して、
業務規模が拡大するに伴って当初予定した業務量を逸脱するようになってくると
思わぬボトルネックがでてきて性能ががくんと落ちることがある。

そういう部分を予測、検出して、なるべく少ないコストで改善するって、大変なことだよ。

web objectsって、その辺、どうなんだろうね。

厨だからよくしらんわ。
0223デフォルトの名無しさんNGNG
WOにも欠点は多数あるけど・・・それを補ってお釣りが来ると思われ。

とりあえず、DBゴリゴリの更新系アプリ作っても、パフォーマンス的にはほとんど問題ないと
言い切っていいと思う。
WO自身は、リリースが95年あたり。他のどんなアプリ鯖よりも老舗といえるかな。
みんなDBアクセスする部分とビジネスロジック、UIとの接続などの部分のほとんどを
コーディングしてると思うけど、WOだといわゆる「当たり前」に実装してる部分、ほとんどを
フレームワークが提供してくれてるんで、効率いい。
WOの設計思想自体が、もはや開発者がゴリゴリSQL書くようなものを想定してない気がする。

アプ鯖が負荷上がってきてアップアップになったら、物理的な鯖と運用パッケージを買い足して、
作ったアプリにゃ手を加えずに運用ツール側で負荷分散先をしてやるだけ。

ともあれ、最近はSQL意識するような開発してないからなぁ、考え方ズレてるかも。。。
0224Disca ◆NAfP6znE NGNG
少し質問ですが、SQLなどで提供されているのデータベースは、
速度的に速いのでしょうか…。それとも、独自で探索木などを作ったほうが
高速になるのでしょうか…。
一応、データソース(リスト)が百万件あったと仮定します。
0225デフォルトの名無しさんNGNG
単一のプロセスでしか読み書きしないなら、
自前で書いた方が速くなる可能性は高い。

が、原子性の保証やバックアップ・リカバリの方法、
アクセス方法の標準化、ネットワーク対応、負荷分散、
複雑なクエリーやリレーションの解決など考えると
DBを使った方がお得だ。

ISAMの利用も検討してみるといい。
自分で作るより、おそらくそっちの方が早いし速い。
0226デフォルトの名無しさんNGNG
ISAMって何?
アゴ?
0227デフォルトの名無しさんNGNG
http://yougo.ascii24.com/gh/13/001361.html
0228Disca ◆NAfP6znE NGNG
>>225 >>226 >>227
レスありがとうございます。只今考えているのがマルチスレッドでの検索サーバなのですが、
(複数のスレッドで同時データファイル読み込み可能、書きこみは一スレッドのみ^^)

ISAM、始めて知りました。(無知にも気付かされました)
これって、NAMAZUのようなもの(インデックスサーチ)でしょうか…。
0229デフォルトの名無しさんNGNG
OPEN系でよく使われるのISAMがMySQLとかだね。
RDBじゃないけどSQL文が使える。
マルチスレッドにも対応、そこそこ速い。

NAMAZUは検索エンジン。
ISAM/RDBはDBのアクセス法に対する設計の違い。
0230デフォルトの名無しさんNGNG
全体設計でよく出会うケース。

1)本当に分散が必要か?
実は1台で間に合うものを、分散したが為に6台も必要になってしまったとか。

2)意味の有る分散か?
サーバーの負荷分散のための分散のはずが、情報まで分散してしまって、
それを再構成するのに分散した以上の負荷が生じているケース。

3)狂ったか?集中処理。
意味の無い分散を繰り返した後、「管理が楽だから」と一部機能を集中処理
してしまう。(そして破綻へ)
もうね、アフォか馬鹿かと・・・。
0231デフォルトの名無しさんNGNG
>>230
DBに限ったことじゃないね。システムのプロセスも、技術者の
オナニーで無駄に分散するのが流行ってる昨今。
0232デフォルトの名無しさんNGNG
>>231
今の流行なんだろうね。
Servletで十分なのをEJB使ってみたりとか。
おまえEJB使いたいだけちゃうんかと小一時間(以下略

同じようなことがOracleにもいえるがなー
>>230
分散をOracleにしても似たような感じ
0233デフォルトの名無しさんNGNG
>>232
>Servletで十分なのをEJB使ってみたりとか。
>おまえEJB使いたいだけちゃうんかと小一時間(以下略

JDBCで十分、つー表現が適切かと(w
揚げ足取りスマソ
0234デフォルトの名無しさんNGNG
>>230-233
偉そうなこと言いたいだけのガキはマ板逝け。邪魔。
0235デフォルトの名無しさんNGNG
234はオナニ勢力ですな
0236デフォルトの名無しさんNGNG
クライアントの話題ですが、.Netみたいにサーバカーソルを
忘れさすフレームワークってどうなんでしょうか?

個人的には大容量のデータ処理には向かないし、
クライアントキャッシュされたデータは
業務的にロックしないといけないし、
なーんかしっくりこないんですけども。
0237デフォルトの名無しさんNGNG
さすがMS。そんな危険な機能搭載とはね・・・。
.NETは厨が集まる事わかってんのかいな?
0238デフォルトの名無しさんNGNG
DBとはカンケーないんだけどさ、MSのUNIX捨てろキャンペーンが提供されてるサーバって
FreeBSDだったってな。
禿シクワラタ
0239デフォルトの名無しさんNGNG
>>236
新しい考え方が受け入れられないとCOBOLERみたくなっちゃうよ
ADO.NETはすばらしい
0240デフォルトの名無しさんNGNG
>>229
あ、あのー…
SQLが使えるのにRDBじゃないんでしょうか。いやマジレス希望。
0241デフォルトの名無しさんNGNG
実務では過去1年のデータがあれば十分なのに、
5〜6年分(日次単位)持っている会社があるんですが、
やっぱりこれってテーブルを分割したほうが良いんですよね?

「全部一度に見たい」っていうんでビューにしる! って言ったんですが
理由もなく却下されました。こんな企業はDQNですか? 辞めどき?
0242デフォルトの名無しさんNGNG
>>241
俺は同じ意味を持つデータは一つのテーブルにおいておくのが好み。
パフォーマンスに影響がでるならしょうがないけどさ。
そんな俺はDQNなんだろうか。
0243デフォルトの名無しさんNGNG
365(日)x5-6(年)x社員数でパフォーマンスに影響する会社って
1000人以上くらいですか?
0244デフォルトの名無しさんNGNG
>>243
マシンスペックが低い可能性も考慮せよ
0245デフォルトの名無しさんNGNG
>241
パフォーマンス、ディスク容量、バックアップ等の管理考えて問題
なければいいんじゃない。
oracleなら別表にしないで、パーティションにするけど。
オプションは高いが。
0246デフォルトの名無しさんNGNG
>>243
なんで社員数かけてんの?
勤怠かなんかのトランザクションなのか?

社員数少なくても業務によっては膨大なトランザクションデータを
日々発生させているんだよ。Web受注システムとかな。
0247デフォルトの名無しさんNGNG
ちょっと前の、設計か、チューンかの話しなんだけどさ。
設計が重要で、影響でかいのは決まってるけど、実際はチューンも必要に決まってるジャン。

多人数でやってりゃタコもいるしミスもあるし、遅くてもとりあえず動かす必要
があれば動かして、稼動後にチューンだよな。でなきゃ会社つぶれるしね。

設計よかったとしても、だいたい、ウォーターフォール開発の時代じゃ無し、設計要件が固定のまま
のはず無いし、いくらデータモデルが安定っていっても追加、変更はあるしね。

「私の辞書に、やってみなければ分からないという言葉はない」ってマジこのとうり
言ったコンサルもいるけど、結果は...。神様でもなきゃ完全に
見切れるわけない。世の中動いてんだから。

以上、設計いいかげんでいいという話ではない。が、スケジュールにチューン期間
を考えないのも、非現実的。
0248デフォルトの名無しさんNGNG
>>241
> 実務では過去1年のデータがあれば十分なのに、
これが本当ならば、5〜6年分持っておくこと自体がムダ。
使いもしないようなデータを後生大事に取っておく会社多いよね。

しかし全部見たいというニーズがある以上、そのデータになんらかの活用方法が
あるわけだから、分割などは避けるべき。
データは人間が使ってこそ意味がある。コンピュータよりの都合であまり不自然な
形にするべきじゃない。

だいたい>>241にしたってコッチから見れば
過去5〜6年分のデータを「分割しる!ビューで見れ!」理由もなくって言ってるんですが
こいつはDQNですか? 辞めさせどき?

だぞ。そもそもなんで分割したいんだ?
0249デフォルトの名無しさんNGNG
>>247
なんかもうツッコミ所満載なんで途中までレス書いてたけどヤメタ。
あくまでノウハウを語るスレだし。

もう1度コンサルに教えを請うた方がいい。
>「私の辞書に、やってみなければ分からないという言葉はない」
この意味が分かるようになるまでね。
0250デフォルトの名無しさんNGNG
>>246
キャッシュ可能容量の概算。
0251デフォルトの名無しさんNGNG
 PostgreSQLとPHP初心者です。「リレーションシップ」という
ものについて質問があります。

 リレーションシップの役割や概念は分かってきたのですが、
自分が、「売上テーブルと売上明細にはリレーションシップを
設定して」と頼まれた時、具体的に何と何をすればいいのか不安です。

 具体的な作業として、「リレーションシップを設定する」とは
どういう作業をさすのでしょうか?教えてください。

 簡単に売上テーブル(売上No)と売上明細テーブルをつくる
作業を仮定させて頂いたとして、
「リレーションシップを設定する」というのは下記の、どちらでしょうか?

1.具体的な命令句ではなく、売上明細テーブルの中に売上No(売上テーブル)を
  含めた、段階でリレーションシップが設定された、と判定される(設計段階?)。
2.PostgreSQLのCreate Tableの命令で具体的に参照整合性を
  設定をすることが、リレーションシップの設定である。

 たぶん、まだ理解が足らないかと思われますので、
上記の例に含まれていない場合、可能なら具体的な作業を
例示してご教授いただけないでしょうか?

 もし、この本に全部書いてあるよというような
参考書がございましたら、そちらをご紹介頂いても
結構です。よろしくお願い申し上げます。

 あと、ここではなく、他で聞け、という場合もご指摘ください。
0252デフォルトの名無しさんNGNG
>>251
こっちこっち
http://pc.2ch.net/test/read.cgi/tech/1001351439/
0253デフォルトの名無しさんNGNG
252さん、ありがとうございます。
書き直しました.
0254241NGNG
>248
うむー。そうですか。辞めさせられどき? 辞めさせられる前に辞めとくか・・・。
あと、PGが設計に口挿むのはマズーなのですかね?
(SEはExcelのセルの中身を参照式にするか値にするかって聞いたら「?」が出る程度です。)


テーブルの状態はカラムが300くらいあって、完全にパフォーマンスの足を引っ張ってます。
管理するチームがないので、テーブルスペースもほとんど分割せずごった煮状態。
(これらの分割も却下されてる。テーブルスペースの数=HDの数=5)

普段の業務で使用するのは夜間で集計した結果だけで、明細の履歴はほとんど見ない。
(というか、かなり上のほうの人間しか見てはいけないもの。あ、でも参照権の設定はしてなかったような・・・。)

過去からの推移が見たい、というのは解るですが、
集計の履歴はちゃんと持っているし、再計算はほとんどしないのです。
(データが確定した過去データの再計算が頻繁だとそれはそれで問題のような気も。)

しかも、集計した履歴は1年しかもってませんし、それ以上は遡って計算できません。
(アプリが対応していないから。)

ちなみにDBMSはSybase。
Sybaseにパーティションテーブルかそれに類似するものってあります?
0255デフォルトの名無しさんNGNG
>>254
>>241の段階ではそんなに詳しくかいてなかったじゃん。
おれは248じゃないよ
0256241NGNG
>255
スマソ。あんまり書くとバレそうだったので。
もう開きナオテ書きました。それでもかなり端折って書いてます。

でも、テーブルを分けること自体はあまりオススメできないのですね。
0257デフォルトの名無しさんNGNG
>>256
というかテーブル分ける云々以前にやることが山盛りだと思われ
0258デフォルトの名無しさんNGNG
>>254
こいつか。
0259デフォルトの名無しさんNGNG
>>240
SQLはデータストアにアクセスするための記述言語で、
RDB専用というわけではない。
0260デフォルトの名無しさんNGNG
>258
オマエか。
0261デフォルトの名無しさんNGNG
>258,260
なんだなんだ? お前等ホモか?
0262デフォルトの名無しさんNGNG
240っす
>>259
どもども。そっか。そうなんだ。

…で、俺の定義ではいわゆる選択、射影、結合が
SQL等の操作言語でできれば、それRDBなんじゃん?って思うのです。
MySQL、マニュアル見た限りでは全部できそうなんだけど。

>>254
列が300…正規化、されてます?
0263デフォルトの名無しさんNGNG
列数300ね・・・。
確かに設計も何も無さそうだけど、それを年単位に分割するという発想も変。
0264デフォルトの名無しさんNGNG
>263
年単位かどうかは書いてないけど、そうなの?
管理がたいへんじゃん。列数も300だっていうし。
0265デフォルトの名無しさんNGNG
そろそろ打ち止めかな。
それじゃまとめとしては、WO最強。ってことで。
0266デフォルトの名無しさんNGNG
>>265
同意。
よって

==========終了==========
0267質問させてくださいNGNG
本職ゲーム系プログラマですが、趣味でTomcatを使ってウェブアプリを書いています。
技術的な興味もあって、データベースを使ってみようと思っています。
PostgreSQLを準備してJDBCでアクセスできる環境は整っています。

簡単なサンプルなどをみると、データベースに直接SQLを書いたり、返ってきたデータ
(java.sql.ResultSet)を直接使ったりしていますが、規模が大きくなってくると管理が
困難になりそうな予感が禿げしくします。

理想的にはjava上のインスタンスひとつをデータベース上の1行に対応させて、インスタンスを
操作するとその内容がデータベースにも反映されるような仕組みがあれば、データの操作
ロジックとデータベースのアクセスロジックが分離できて良さそうな雰囲気がします。

しかし、トランザクションなどを考えるとjavaインスタンスとの同期を真面目に実装するのは
たいそうメンドウな仕事になりそうです。

おそらく多くの人が考えることなので、すでに多くの成功設計例があるかと思うのですが、
キーワードが思い当たらずうまく探せないでいます。

このような問題を考えるのに適した参考サイト,書籍,キーワード,ライブラリなどご紹介
いただけないでしょうか。よろしくおねがいします。
0268デフォルトの名無しさんNGNG
EOF使うと、JDBCゴルゴルとか、J2EEとか、SQLゴルゴルとか、
アフォらしくて泣けてくる・・・
早く仕事でEOF使いた ぃ ょ ぅ ・・・
0269デフォルトの名無しさんNGNG
>>267
それってCMPなエンティティBeanではないの?
0270デフォルトの名無しさんNGNG
結局SQLゴリゴリになっちゃうに256カノッサ。
0271デフォルトの名無しさんNGNG
==========終了==========

0272デフォルトの名無しさんNGNG
データベース上のあるデータが更新されたことをトリガにしてあれこれやりたいんですが
ポーリングするしかないですかね。
それとも直アクセスは禁止したほうがいいのかな。
0273デフォルトの名無しさんNGNG
トリガに「更新したよ」ってメールかSNMPのアラームかSSTPで電波送るように
しとけ。
0274デフォルトの名無しさんNGNG
状況がよくわからないが、oracleなら更新DMLでPL/SQLを起動できるトリガという
機能があるが。その他のDBにもあるはず。場合によっては、インステッドトリガ
といって、更新DML全体をフックすることもできたと思う。

ただ、トリガーをあまり使うと、ブラックボックスが多くなってシステム
全体の見通しは悪くなると思う。ちなみに私はトリガーあまり使わない。

トランザクション的に非同期でよいのなら、DBトリガーで外部にメッセージ
を発信するだけにして、実際の処理はそのメッセージを受けたプロセスが
実行するようにするといいと思う。
0275272NGNG
>>274
すんごい曖昧な質問にも関わらず答えていただいて申し訳ないです
非同期でOKかどうかで全然違いますね。まずはそこをハッキリさせます。
ありがとう。
0276 NGNG
0277デフォルトの名無しさんNGNG
実際問題、みんなDBアプリを作る際にどんなコンパイラ使ってるんでしょ?

たとえば、、、

作成したアプリの実行環境はWin限定
DBはORACLEが基本だが、場合によってはSQL Serverもあり

なーんていわれたら、どんなコンパイラ選びます?
あ、あくまでもクライアントPC上で動作するexeファイルを作成する
目的であり、Web系のアプリ作るわけじゃないですが。

0278デフォルトの名無しさんNGNG
>>277
VB
0279デフォルトの名無しさんNGNG
ADOでも使っておけば、言語なんてなんでもいいんじゃない?
俺は慣れてるからBCB使うけど。
0280デフォルトの名無しさんNGNG
>>277
JavaでWebObjects。
Oracleで作ってたシステムを、アプリ側はコード変えずにSQL Server用に
できちゃったりなんかしちゃったりする。
0281デフォルトの名無しさんNGNG
>>280
ODBC, JDBC かませとけば WebOjects じゃなくても みんなそーなんじゃない?
つーか、システムの内容にもよるけどふつーはバックエンドの処理を
DB依存のストアドで記述するから、ODBCとか使っていてもDBを交換できない罠。
0282デフォルトの名無しさんNGNG
>>281
じゃあ280のいう「コード変えずに」というのはどの部分の話?
ODBCやJDBC経由すればアプリ側のコードが変わらないのは当たり前だと
思うんだけど・・・
0283デフォルトの名無しさんNGNG
>>281

要求仕様が...

> DBはORACLEが基本だが、場合によってはSQL Serverもあり

なのに...

> DB依存のストアドで記述する

あなたは、ヴァカですか ?
0284デフォルトの名無しさんNGNG
280=283がヴァカに見える
0285デフォルトの名無しさんNGNG
>DBはORACLEが基本
その基本って考え方がド素人。
プーか?
0286281NGNG
>>283
オレが「ふつーはDB依存のストアドで〜」って言ったのは、
280のWebObjectsのDB非依存性に対しての現実的回答ね。
決して、277のクライアントアプリケーション作るのにうんぬん、
に対するコメントではないよ。
0287281NGNG
>>282
意味不明だよ。アプリ側って何? クライアント側のこと言ってるの?
言いたいことがあるなら、もうちょっとちゃんと説明しる!
0288デフォルトの名無しさんNGNG
EOF知らないやつは、シコシコいつまでもSQL書いててください。
0289デフォルトの名無しさんNGNG
>>288 場末の落ちこぼれなんでそうします。
0290デフォルトの名無しさんNGNG
漏れの会社のWeb製品、ボタンクリックすると直でSQL発行しやがる。
セッション管理とかConnection Poolとか一切無し。
こんな製品作ってる会社からは、一刻も早く抜け出したい今日この頃。
0291デフォルトの名無しさんNGNG
耐久テストに使えるんじゃないか?
0292デフォルトの名無しさんNGNG
まあDB非依存なんてのは夢物語ってこった。
0293デフォルトの名無しさんNGNG
SQL厨です。教えてください。

create 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デフォルトの名無しさんNGNG
INSERTしてCOMMITするまえにSELECTしる。
SELECTした値でinser into detailしる。

その際detailのIDは自動採番にせずに普通の整数型にしる。

それがいやなら
headerとdetailのidを関連づけするためのリンクテーブルを作成しる。
0295デフォルトの名無しさんNGNG
age
0296Delフサギコ ◆zE1iiRdQ NGNG
  ____
 /......  .. .../
 ||:::   ∧,,∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 |: ̄\ ミ,, ゚Д゚ミ<  SQLの日付教えて!
 |:   :|: ̄U U ̄:|\_________
 |:   :|:     .:|
DATEフィールドに日付が入っているときに

WHERE
("2002/05/22" <= DATE)
AND (DATE <= "2002/05/24")

こんなSQLを流してるんだけど、
このSQL文ってDBに依存している気がするです。

どのDBでも使える、SQL文によるDate型の比較方法って
なんかあるんでしょうか?

氏ってたら教えてくださいませ。
0297デフォルトの名無しさんNGNG
>>296
ないと思われ。
日付型はDB依存になるのであまり好きでない。
0298デフォルトの名無しさんNGNG
見た目2002/05/24という値が、
実際は2002/05/24 00:00:00と評価されると悲惨ですな。
0299デフォルトの名無しさんNGNG
>>297
やっぱ日付は文字型だろ。
0300デフォルトの名無しさんNGNG
>>297
だな
0301デフォルトの名無しさんNGNG
>>299
期間を指定した検索するときは?
0302デフォルトの名無しさんNGNG
>>やっぱ日付は文字型だろ。
2000年問題も過ぎ去ったとまた日付をYYMMDDでフィールド
設計やっているうちの会社は厨房ですか?
0303デフォルトの名無しさんNGNG
たぶん2037年末あたりで倒産するんでそのままでも全く問題ないです。
0304デフォルトの名無しさんNGNG
JDBC しか知らんが日付は ? 付き SQL 使えば互換性保てるような。
0305デフォルトの名無しさんNGNG
変なデータアクセス層を自作するならJDO使いな。
0306Delフサギコ ◆zE1iiRdQ NGNG
  ∧,,∧  アリガトンン
 ミ*゚Д゚彡
        ヤパないのね。
0307ぽっくりNGNG
DB2 7.2 FP4を使用。

同じサーバー内にデータベースの数を増やせば
増やすほどパフォーマンスは低下するものなのか?
なぜ、低下するのか等の理由も教えて!

分かるやつ、教えろ。
0308デフォルトの名無しさんNGNG
>>307
いっぱい動いているからじゃない?
03090うぇんNGNG
id|subject|message|part |
--------------------------
1 |ギコ |test... |1 |
2 | モナー | 逝ってよし| 2 |
3 | シー  |ウトゥ  |2 |
3 | 肉   |ゴルァ  |2 |

こういうテーブルで
part | count
----------
1 | 1
2 | 3

こういうviewってストアドとか使わないでsql文で出すには
どーやったらいいんすか?
0310デフォルトの名無しさんNGNG
>>309
select part, count(part) from ... group by part ってな感じで。
0311デフォルトの名無しさんNGNG
SELECT PART, COUNT(PART) AS COUNT FROM XYZ GROUP BY PART
?
0312309NGNG
さんくす〜!>310
0313デフォルトの名無しさんNGNG
おまいら SQL は大文字派? 小文字派?
0314逝って良しの1NGNG
>>307
データベース間での情報の整合性取るのは台数増やせば増やすほど
増える。
0315デフォルトの名無しさんNGNG
大文字
Oracleは大文字の方が早いって聞いたことがある(眉唾)
0316デフォルトの名無しさんNGNG
大文字
C/Java のコードは小文字が多いので見分けを付けやすいように (外部
ファイルに定義することも多いが)。
0317デフォルトの名無しさんNGNG
SELECT name FROM tmp ORDER BY id DESC;

とか、命令は大文字でやっとる。
0318デフォルトの名無しさんNGNG
ObjectRelational DB(DB2/Postgres/Oracleなど)だったら
>241 >248
みたいな場合は継承つかったらどうかな?
0319デフォルトの名無しさんNGNG
混在(各トークンの先頭だけ大文字)
Select 名前 From テーブル Order By コード

テーブル名、列名は日本語。これ定説。
0320デフォルトの名無しさんNGNG
もっといろんな事聞きたいぞ、あげ
0321デフォルトの名無しさんNGNG
Winのアプリで、ボタンの文字から何から何まで、
全ての文字情報はDBに存在するってアプリってどう思う?
0322デフォルトの名無しさんNGNG
ちょいと相談に乗って下さい。

PL/SQLでインサート文を作ってDBにインサートしたい。と考えてます。(1500万レコード)
である列は乱数を発生させて(DBMS_RANDOM)それを0埋めで15桁に加工したい。それで他のレコードは1〜10
までの数をランダムにインサートの文に埋め込みたいと思います。
可能なのでしょうか?もし可能であればヒントを教えて頂きたく思います。
(カーソルを用意して処理をするのだと思いますが、1〜10のレコードをランダムに埋め込むというのが考えつきません。)
0323デフォルトの名無しさんNGNG
>>321
極度に高い応答性を要求するアプリでそれは酷いけど
べつにいいんでない?

windowsでいうところの文字列リソースだってダイアログリソースだって、
あるいみDBみたいなもんだし。
0324デフォルトの名無しさんNGNG
>>322
ふつうにCかperlかVBかrubyか手書きでもいいから
挿入文を150万レコード分作りなさい。

途中にcommit文を入れとくと、たぶん吉。
0325デフォルトの名無しさんNGNG
>>322
(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デフォルトの名無しさんNGNG
>>322
1つ目の要件は、LPADでいけないかな?
俺は使ったこと無いんだけど・・・・

いろんな人の意見を聞きたいのでageておく。
こーいうとき、Perl使えれば楽だろうなぁとは思う。
0327326NGNG
風呂入ってきたが、気になったのでちょっと調べてみた。

まず、

> ある列は乱数を発生させて(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
ER図をかくときに、1:Nとかをもっと詳しく(0..1):(0..N)のように書く
ことがありますよね。この時の 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
>>328続きです

学生.サークルIDがUNIQUE可で、かつNULL可ならば、
サークル:学生は (0..1):N はわかるような…。

でも、サークル側から見たときに、学生が「1以上」なのか「0以上」なのか
がわからないんでないかなと思ったのです。

ああ自分で書いててわけわからん…
0330デフォルトの名無しさんNGNG
>>329
SQL-92のEntryだと無理
テーブル間の制約をかかにゃならんでしょ。SQLパズルにそういう例なかった?
0331デフォルトの名無しさんNGNG
パフォーマンスについての質問です。
ほとんど同じような内容のテーブルが複数あるのですが、
区分フィールドを作ってひとつのテーブルにまとめた場合と
別のテーブルのままと、どちらが検索時間が早いですか?
0332デフォルトの名無しさんNGNG
別テーブルの方が早い
0333デフォルトの名無しさんNGNG
>>332
条件も書かずに断定すなっ!!

>>331
検索結果が1レコードだけ、または複数に分かれている
テーブルのどれか1つのテーブルの内容のみであれば
分かれていた方がよい。

検索結果が複数のテーブルのあっちこっちから
レコードを引っ張ってくるようならば、場合によって
1つにまとまっていた方が良いこともある(JOINのコストが減るので)

しかし、最終的にはケースバイケースという罠(w
きちんとコストを計測しよう!!
0334デフォルトの名無しさんNGNG
>>332->>333
別々のテーブルに入れて管理することにします。
ありがとうございました。
0335デフォルトの名無しさんNGNG
ノウハウって Know How だっけ?
0336デフォルトの名無しさんNGNG
>>335
Yes
0337デフォルトの名無しさんNGNG
「No House」Death。
0338_NGNG
初心者な質問ですいません。
VBでDataEnvironmentを使って、
フォームにデータを表示させたのですが、
テキストボックスに値を入力するだけで
Updateを呼んでいないのに値が更新されてしまうみたいなんです。
これはなぜでしょうか・・・。
0339デフォルトの名無しさんNGNG
バグ
0340デフォルトの名無しさんNGNG
そんなもん
0341デフォルトの名無しさんNGNG
SQL鯖のクエリアナライザで実現しているように、ある重いクエリーなんかを実行中に、
結果を待たずにキャンセルするようにするには、どのような方法があるでしょうか?
どなたか教えていただけないでしょうか?

クライアントはVB6 + ADO、鯖はSQL鯖っす。
0342デフォルトの名無しさんNGNG
名前:デフォルトの名無しさん :02/08/08 04:26
      バンっ
カチャ      
;y=ー( ´ー`)・∵.  ‐
\/|341|)  ・∵.

0343デフォルトの名無しさんNGNG
>>341
そんなことは絶対できません。
0344デフォルトの名無しさんNGNG
>>343
そーなんですか?厨でスマソでし。

したら、例えば検索条件はユーザが指定できるような仕様で
えいや!で検索しにいったら返ってこなぁ〜い....ってな場合は、
クライアントはひたすら待つしかないってことですか?....
0345デフォルトの名無しさんNGNG
>>344
タイムアウトなら設定できるんでないの?
0346デフォルトの名無しさんNGNG
VBでもADOで非同期クエリ投げてれば、
クエリのキャンセルできるんじゃなかったっけ?
0347デフォルトの名無しさんNGNG
お盆だなぁ。
全然人こないや
0348341,344NGNG
>>346
なんか非同期クエリできそうなんでしが、簡単なプログラム
書いてみてもうまくできないっす...

ADO.Recordset のOpen メソッドをadAsyncExecuteで呼び出して、
とりあえず、FetchCompleteイベントでキャッチしようとしてるですが
だめぽんです。
Connectは、SQL鯖のOLEDBなんでげす。
そもそも非同期クエリの考え方が違ってるんでしょうか?...

サンピルあったら禿げしくキボンヌでやんす〜( ´Д`)

0349346NGNG
何がダメなのか書いてくれないと分からんけど…
イベントリスナを 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
>>349
レスありがとございます。

えとですね、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デフォルトの名無しさんNGNG
もーかってまっか?
0352デフォルトの名無しさんNGNG
墓地墓地でんなー
0353349NGNG
あー、おぺんの時はクライアントカーソル使ってちょ。

 :
Set RS = New ADODB.Recordset
RS.CursorLocation = ADODB.adUseClient
 :

で、どうだろうか?
0354デフォルトの名無しさんNGNG
ADOとかJDBCで別コネクションのテーブルをコピーするために
何か良い方法ありませんか?
RecordSetを地道にコピーするしか思いつかない・・・
0355デフォルトの名無しさんNGNG
>354
DB自体にリンクなんかの機能があるならそっち使ったほうが楽。
0356デフォルトの名無しさんNGNG
住民背番号制に反対してる場所に住んでる人は主キーの使用を禁止して背番号制があったほうがよいと実感しなさい
0357デフォルトの名無しさんNGNG
SQL Server使って開発やることが多いんだけど
どうも、Transact-SQLが使いづらくてしかたない。
C++とかのかみ合わせも良くないし。

なにかイカシタDBエンジン知らない?
0358デフォルトの名無しさんNGNG
.NET+SQLXML最強






...嘘
0359357NGNG
次の仕事はOracleを使うことになりました。
問題解消。
0360デフォルトの名無しさんNGNG
PeggyのアンカーシステムズがPL/SQL統合開発環境リリースだってよ。
ソフトウェア板で見つけた。
実際はオランダの会社が開発元でその日本語版みたい。
結構よさそうだけどどう?

http://www2.noritz.co.jp/anchor/ashp/plsqldev/plsqlindex.html
0361デフォルトの名無しさんNGNG
>>360

PL/SQL はやめときなよ・・・
0362デフォルトの名無しさんNGNG
ORACLE使う以上、避けようが無いだろうが・・・
0363デフォルトの名無しさんNGNG
>>360
値段がいくらか知らんがObject Browserで十分でねーの
0364デフォルトの名無しさんNGNG
オブジェクトブラウザは微妙に使いにくい。
0365デフォルトの名無しさんNGNG
>360

2chにリークしてみるか?って奴ですか?
昨日たまたまサイトみたら来月とか書いてあったけど、、、
ソフトウェア板にそんな紹介ないだろうが!
0366デフォルトの名無しさんNGNG
Peggyスレの事じゃないの?
0367360NGNG
そう。Peggyスレがたまたまあがってたんで・・・
まあ、最近はOracleばかりってわけでもないんで、
使えればObject Browserでもどっちでもいいんだけど。
0368デフォルトの名無しさんNGNG
50個ぐらいのデータをまとめて更新する場合、ADOとかではどうやるのがいいんでしょうか。、
1個づつデータセットつくって更新するのは短期間に何回も接続しすぎでよくないですし.
50個のデータセットを求めるのは問い合わせ文が長くなりすぎるし
0369デフォルトの名無しさんNGNG
どういうデータをどういう風に更新したいのかによって大きく変わるっしょ。
単純にUPDATEを投げるだけでOKな場合もあるだろうし、ある条件で
絞り込んでレコードセットを取得した上で更新しなきゃyダメなケースもある。

まずは要件をハッキリさせたほうがヨイ。

0370341,344,350NGNG
>>353
遅くなりますた...ありがとうございます。
やりたいことできそうす...感謝感激〜!!!
0371デフォルトの名無しさんNGNG
ageておく
0372デフォルトの名無しさんNGNG
家でPro*Cのテストしたいんだけど、互換なプリコンパイラ誰かしらない?

理想をいえば VC+Pro*C互換Tool+.mdb の組み合わせで使えるとうれしいんだけど
#DB依存するようなSQL文は書いていない、の前提でも可
0373デフォルトの名無しさんNGNG
>>372
Oracleの評価版ひろってくれば?
0374デフォルトの名無しさんNGNG
もーかってまっか?
0375デフォルトの名無しさんNGNG
ASP + SQLanywhere で開発してまふ。
(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とテーブルBとを関係付けるとき
【テーブルAのフィールド】と【テーブル名】とで
テーブル間の関係を持たせているのですが、こういう設計ってありえるのでしょうか?
テーブルAのフィールドには参照するテーブル名が格納されます。

もちろんレコードを識別するキーは双方にあります。
テーブルAの参照するテーブル名を格納するフィールドが無駄に思える。

DB設計者は「こうしておけば関係のないテーブルまで見に行かなくて済む」との見解。

DB設計者のスキルに疑問。
0377デフォルトの名無しさんNGNG
>>376
まったくありえない設計です。
0378デフォルトの名無しさんNGNG
>>377さん >>376です
やはりそうですよね。
「外部キーと主キーで関係を持たせるのが理に適っている設計では?」と
懸案事項として挙げたら頑固だとか杓子定規だとか罵声を浴びせられました。
ほかの現場も実際こんな感じでしょうか?
立場上強い人間に左右される?
0379デフォルトの名無しさんNGNG
376-378
ジサクジエンダロ
理由:376の説明で理解出来る香具師は
いない。
0380デフォルトの名無しさんNGNG
>>376
根本的に「関係のないテーブルまで見に行く」設計をしているなら
ただの莫迦
0381デフォルトの名無しさんNGNG
>>376です。
社員情報を主として各種アプリ登録情報テーブルが幾つか用意されている。
利用申請を出すと該当するアプリ登録情報テーブルにかかれる。
バッチ処理でアプリ登録情報テーブルからシステムに反映させる。
0382デフォルトの名無しさんNGNG
ほかのスレで きいてたんですけど、ロールバックする意義と価値を教えてください。

0383デフォルトの名無しさんNGNG
>>382
DBを、巨大なグローバル変数と考えているなら、
ロールバック無しで開発するのも有意義です。
0384デフォルトの名無しさんNGNG
>>382
意義はありすぎ。

プログラムで処理中にエラーが発生して、今までに行ってきた変更を
すべてを元に戻すことができるのは便利だよね?

価値は現実世界に過去にいけるタイムマシンが存在するのと同じぐらい。
トランザクショナルなシステムは何度でも人生をやり直せるわけだ。
0385デフォルトの名無しさんNGNG
>382
もしロールバックできなかったらどうなる?
DBに限らず、メリット・デメリットに関しては逆説的に考えてみるとよくわかるぞ。
0386デフォルトの名無しさんNGNG
>>376
多分そのプロジェクトもうだめだね。
少なくともその設計した人レベル低すぎ。エンジニアと呼べない。
あなたもなるべく早くその会社辞めて、もうちっとましな上司のいる会社に移りなさい。
脳みそ腐るよ。
0387デフォルトの名無しさんNGNG
>>384
プログラムに エラーが なければ ロールバックする必要は ないということでしょうか?

デバッグ完の状態ならば、必要なさそうですが・・・。
0388デフォルトの名無しさんNGNG
>>385
できなかったらどうなる? というのが わからなかったから きいているんです。

アクセスのMDBを使った場合、排他的処理をMDB側でしていると思うのですが・・・。

この場合、ロールバックは いらないような感じがするんです。
0389デフォルトの名無しさんNGNG
なぜ、プログラムで処理中にエラーが発生するのか・・・?

バグが満載だから(w
0390デフォルトの名無しさんNGNG
>>387=388
はぁ・・・
おもしろいね君
0391デフォルトの名無しさんNGNG
>>388
汎用機だろうがPCだろうが携帯だろうが、あらゆるシステムはいつかは必ず壊れる。
それが明日か50年後かなんてことはどうでもいい。
もしものとき、DBが即座に復旧できなかったら、客はどうなる?

ロールバックがないDBシステムなんて。。。ガクガクブルブル
0392デフォルトの名無しさんNGNG
>>391
まぁまぁ。

これだからACCESSでアプリもどき作ってる香具師は、、、
本人はDB開発者と思ってるのかもしれないけど。
0393デフォルトの名無しさんNGNG
VBで開発してる連中なんて、こんなやつらがほとんどだよ。
ロールバックなんて知らないよ。
SELECTして返ってくるデータを使い回す。
トランザクションなんて関係なく更新する。
ヤシラにとって、DBなんてのは、でっかくて便利なグローバル変数。

って、マジで漏れの会社でこういう使い方してるよ。
言ってやっても聞く耳無し。「こう使うって勉強したんだもん」だと。
DBも、リレーションなんか張らねぇな。
ちょっとしたフラグなんかも、全部DBにつっこむ。
0394デフォルトの名無しさんNGNG
どうせアクセスがラッシュしたりしないし〜
0395デフォルトの名無しさんNGNG
>>388って
http://pc3.2ch.net/test/read.cgi/tech/1034088067/972
から続いているんだと思うのだけど。

ACCESSなんだよねぇ・・・
担当者ロールバックして欲しいって言ってるんだ。

その担当者ってSE?
(((((((( ;゚Д゚)))))))ガクガクブルブル
0396デフォルトの名無しさんNGNG
>>391
ロールバックって一連の処理でデータに不具合が発生した場合には
役立つだろうけど

システムが壊れたんじゃ
バックアップがなきゃどうしようもないんじゃないのけ
0397デフォルトの名無しさんNGNG
みんな、ロールバックの確認は どうする?

バグSQLでも つくっとく?
0398デフォルトの名無しさんNGNG
ロールバックが 必要な要因を 具体的に あげてみて。

システムクラッシュとか、
プログラム処理エラーなんて 抽象的なことは ダメね。
0399デフォルトの名無しさんNGNG
Accessってさ、使用している時に、ワークを自分自身で作るよな。
それで、エラー対応してんじゃねぇのか?
0400デフォルトの名無しさんNGNG
>>398
自分で具体的な例をあげてるじゃないの(藁
それが絶対発生しないシステムなんてないしね。
0401デフォルトの名無しさんNGNG
システムクラッシュとかプログラムエラーのどこが抽象的なんだか。
つーか>396(=398?)はトランザクションとかをもうちょっと勉強してみなさいよ。

仮にデータが100ギガあるDBがあったとする。数秒おきにガンガンデータの入力があるとする。
要件として、障害が発生したとしても10分前までに入力されたデータは全て保護されなければならないとする。

そんな時、オマヘは100ギガを常にバックアップ取れというんか?
0402デフォルトの名無しさんNGNG
あ、Accessの事か・・・mdbってMAX2Gだっけ?
まあタイマーで毎分ファイルコピーでもしてがんばれや(ワラ
0403デフォルトの名無しさんNGNG
ACCESSをDBMSだと思っている厨っていつになったらいなくなるんだろう。
そういう似非DB開発者はたいてい
「DBにはACCESSを使用してます。」
とか言うんだよね。

※※※※ 重 要 ※※※※
Jetはファイル共有型DBMSです!
ローカルなファイルサーバにMDBおいてるからってクラサバじゃねーっつ
ーの。


VB厨やデル厨ってよく聞くけど、そいつらって、その言語に傾倒してるけど
それなりに使えてるからましだよね。
0404デフォルトの名無しさんNGNG
>>403
じゃあACCESSを使用するときDBには何を使用するといえばいいんだよ?
0405デフォルトの名無しさんNGNG
>>404
男ならアイサム!!



(ハズシタカ....)
0406デフォルトの名無しさんNGNG
>>404
Jet
0407デフォルトの名無しさんNGNG
>ACCESSをDBMSだと思っている厨って
>Jetはファイル共有型DBMSです

と揚げ足とってみるテスト
0408デフォルトの名無しさんNGNG
結局、話が噛み合ってないのは
開発規模が違いすぎるからだと思うな

小規模なLANの世界と大規模なネットワークでは
「システム」の意味そのものが違うし・・・
0409デフォルトの名無しさんNGNG
>>407
何回言えばわかるんだろうね。
JetはDBMS、ACCESSはフロントエンド。
君には理解できないか。言うだけ無駄か。
釣れた!とか言われる前に氏ねば?
0410デフォルトの名無しさんNGNG
http://www.atmarkit.co.jp/fnetwork/rensai/sql25/sql1.html
0411デフォルトの名無しさんNGNG
>>409
407はDBMSの意味さえわからない罠
0412デフォルトの名無しさんNGNG
>>408
一理あるといえばあるが、スタンドアロンでもきちんと設計され
てるものもあれば、大規模クラサバでも信じられないテーブル設
計のものもある。

スレの趣旨としては、よりよいDB設計についてのスレなので、今
は厨でもやる気のあるやつや人のアドバイスを真摯に受け止める
やつとは話す価値がある。
0413デフォルトの名無しさんNGNG
きちんとしたDBなら、バックアップにトランザクションログを適用すれば、ほぼ回復できるけど、
○○○○○○じゃそんなことできないよ。
0414デフォルトの名無しさんNGNG
某都銀の某取引システムではロールバックなんかしてませんが何か?
トランザクションは基本すべて Auto Commit ですが何か?
0415デフォルトの名無しさんNGNG
>>414
厨房ですまん。たまにAuto Commit対応という言葉聞くけど、
 A処理(完了)
 B処理(完了)
 C処理(ネットワーク障害により異常終了)
の場合、C処理の異常終了をトランザクションサーバ(若しくは
データベース)が感知しただけでロールバックしてくれるのか。
それとも、C処理で異常終了したら、やっぱりプログラム側で
ロールバック命令を発行しないといけないのか。気が向いたら
教えてくれ。
0416デフォルトの名無しさんNGNG
>>415
Auto CommitはSQL文が発行(終了)されるたびに、トランザクションをCommitする機構です。
>>412さんの例だと実際には

1.A処理(完了)
2.コミット
3.B処理(完了)
4.コミット
5.C処理(ネットワーク障害により異常終了)
6.ロールバック
7.5の前に戻る

ってことになります。
0417デフォルトの名無しさんNGNG
>>387
そうそう!バグが無くてエラーが発生しない100%完璧なプログラムならロールバックする必要は無い!
でもそんな業務システム存在するか?

少なくとも君のプログラムはOSとか言うバグだらけのプログラムの上で動いているし、
誰かが処理の最中にケーブル抜くかもしれないしね。

何億回に一回発生するかしないかのわからないエラーのためにトランザクションを利用するわけです。
0418デフォルトの名無しさんNGNG
> 何億回に一回発生するかしないかのわからないエラーのために

うそーん
0419デフォルトの名無しさんNGNG
>>418
うそじゃねぇ。
0420デフォルトの名無しさんNGNG
>>417
何億回のエラーの前に ハードが 故障しそうだ(w
0421デフォルトの名無しさんNGNG
> バグが無くてエラーが発生しない100%完璧なプログラムならロールバックする必要は無い!

ゲートウェイが停止してたとか、別サーバへの接続が瞬断にあったとか、ディスクのパーティ
ションがいっぱいになってたとか、手作業で入れておくべきレコードが入っていなかったとか、
君のシステムではそういった運用上の問題は考慮しないのかね?
0422421NGNG
と、脊椎反射で書き込んでみたがよく読むとアレな罠。
0423デフォルトの名無しさんNGNG
>>416
ということは Auto Commit で連続して SELECT した場合、トランザクション
分離レベルの Repeatable Read 以上は意味がないということ?
0424デフォルトの名無しさんNGNG
>>423
というかAutoCommit Onにしてトランザクションも糞もないもんだ、といってみるテスト。
0425デフォルトの名無しさんNGNG
>417
*どんな処理のどんな単位で*何億回に一回エラーが発生するんだ?

0426デフォルトの名無しさんNGNG
>>421
データベースとの接続が きれたら、ロールバックしようにも できないじゃん!
0427デフォルトの名無しさんNGNG
データベースの取り扱い手順

データベースをオープンする(MDB)
テーブルをオープンする。
SQLを実行する。
テーブルをクローズする。
データベースをクローズする。

こういったやり方の場合は、ロールバックは 不要か?
0428デフォルトの名無しさんNGNG
2-phase-commitしようとしたら必須にならんかえ?
0429デフォルトの名無しさんNGNG
>>425
藁)。何でもありうる。
宇宙線の影響で、メモリの内容が1ビット書き換わるというのはどうよ。
CPUのバグとかもいいね。
0430デフォルトの名無しさんNGNG
>>427
そもそもMDBってロールバックできるかな?
ログとってないんじゃないの。
0431デフォルトの名無しさんNGNG
>>430
せめて最新50ぐらい過去ログよもうね。
複数の人がロールバック出来ないっていってる。
若干一名、人の話を聞こうとしない香具師がいるけど。
0432デフォルトの名無しさんNGNG
2ちゃんねるで複数、ねえ・・・
0433デフォルトの名無しさんNGNG
>>432
俺が書いたのと、俺が書いた覚えが無いのと
0434デフォルトの名無しさんNGNG
>>431
じゃあ、
ADOやDAOの
BeginTrans
CommitTrans
RollbackTrans
メソッドはは何なのだ?
MDBに対してできないのか?
0435デフォルトの名無しさんNGNG
>>426
そういうのは RDBMS 側でロールバックしている。
0436415NGNG
>>416
どうも、どうも。情報どうも。
TP1とかのトランザクションサーバー使ってばっかりの
人間には難しそうな機能ですな。
0437デフォルトの名無しさんNGNG
>>432
だな。
一人かもしれんし・・・(w
0438デフォルトの名無しさんNGNG
>>434
できない
0439デフォルトの名無しさんNGNG
ここで大騒ぎしてるヤシって、SQLスレのカグシ発言人と同一人物じゃねえの?
0440デフォルトの名無しさんNGNG
>>439
だれも大騒ぎなんかしてない(藁
0441デフォルトの名無しさんNGNG
>>438
できるぞ!この知ったか野郎!
0442デフォルトの名無しさんNGNG
大騒ぎというか、空騒ぎ。
0443デフォルトの名無しさんNGNG
>441
マヂ?ログたどって過去の状態に戻る事できるの?
0444デフォルトの名無しさんNGNG
アクセスぐらい使えるようになろうな
over 2kだが
Sub test()
Dim cn As ADODB.Connection
Set cn = CurrentProject.Connection
cn.BeginTrans
cn.Execute "update テーブル set b = '値'"
cn.RollbackTrans
End Sub
これでテーブルが更新されているかどうか
確かめられるだろ。
0445デフォルトの名無しさんNGNG
>>444
RollbackTransの行で「RollbackTransを実行するためにはBeginTransを使用してください」
とエラーが出るのですが、何故でしょう?
0446デフォルトの名無しさんNGNG
>>444
アクセスぐらい使えるようになろうな
0447デフォルトの名無しさんNGNG
445=446
おめーさ、自分のコードのバグ探して
もらえなかったからといって煽るなヨ。
見苦しいぞ。

Executeの前に
BeginTransメソッド呼ぶのを
忘れてるだけだろ。
0448デフォルトの名無しさんNGNG
>>444
おっ、できる。
Access侮りがたし。
ちなみに複数のトランザクションを同時に実行した場合ってどうよ。
Transaction Isolation Levelって有効なの?
0449445NGNG
漏れは煽ってないよぉ。
単純に興味があったから貼り付けて実行したらエラーが出たから
聞いただけなのにぃ

まぁ、もういいや。それほど興味があったわけでもないし。
0450デフォルトの名無しさんNGNG
>>449
誤認識したのはワルイが
コイツらマジでDAOやADOをまともに
使ったことがないのに、MDBファイルの
論議してたのか?
Accessだけの技術じゃないのに...
0451デフォルトの名無しさんNGNG
>>448
BeginTransでカイル君にきいてみれ。
まOraみたいにSAVEPOINTまでは指定
できないけどな。
0452デフォルトの名無しさんNGNG
エクセルのヘルプって いまいちなんだよなぁ
0453デフォルトの名無しさんNGNG
>>452
Accessのブビエディタのカイル君に
きいてみれ。
0454デフォルトの名無しさんNGNG
厨がいないと盛り上がらない罠
0455443NGNG
ワシが聞きたかったのは障害発生後にトランザクションログ辿って
障害前の状態に復帰できるのか、って事だったんだが・・・
0456デフォルトの名無しさんNGNG
455=443
もう一度トランザクションと
リカバリを勉強してこい。
0457デフォルトの名無しさんNGNG
>>455
>障害発生後にトランザクションログ辿って
>障害前の状態に復帰
そのためのトランザクション処理じゃないのか?
障害前の状態に戻すって、
オマエんとこのDBは障害があっても
コミットされてしまうのか?
0458デフォルトの名無しさんNGNG
>>455はオラクルでいう、アーカイブログのような物が
Accessであるのかと言っているんだと思うが、そんな物はねー。
トランザクションとトランザクションログは別物だ。
0459デフォルトの名無しさんNGNG
ん、DB2 のロールフォーワードの事か?
0460デフォルトの名無しさんNGNG
DB自体があぼーんした時に、バックアップのDBとアボーンしたDBのトランザクションログファイルでDBを回復できるかってことか? >455
0461デフォルトの名無しさんNGNG
結論
MDBでは 無理に ロールバックを使う必要ないってことだな(w
0462455NGNG
>458 >460
そそ、それ。

0463デフォルトの名無しさんNGNG
>>456あ〜あ、答えかいちゃった。
もうちょっと455の厨っぷり
を晒そうと思ったのに。
(まぁ>>462で自ら晒したわけだが)
漏れは、トランザクション処理
ができる、できないに対しコード例を書いたまでだ。

>>461まだ和姦ねぇのか(真性厨だな)
プログラム内で関連性のある
複数のSQLを発行してその途中に
クライアント側で瞬断なり、
テスト時に予期できなかった不整合データが
入ってきたらどうする?
おまえんとこはわざわざ調査して手で直すのか(フラ
0464456NGNG
s/>>456/>>458
0465デフォルトの名無しさんNGNG
>>463
こいつはまた久々にイタイ奴が登場したもんだな。これくらいの話題は5秒で解決してやれよ。
0466デフォルトの名無しさんNGNG
個々のレベルがちょっと違うだけで、ここまで話が噛み合わないんだな。
なるほどデスマーチがなくならない訳だ。
0467デフォルトの名無しさんNGNG
 つか>461はシビアなトランザクション処理が必要な業務にMDB使う事自体が
アフォだという事を例えたネタだって事は誰の目にもあきらかだろうに。
0468デフォルトの名無しさんNGNG
>>467
イタタタ。学生さん?
0469デフォルトの名無しさんNGNG
>>467
ほんとイタイな。
ここで話しているのはデータファイルが
MDBだろうが、SQLサハデーダ、Oraデータだろうが
関係ないの。分かる?

トランザクション処理対応しているDBMSなら
プログラムできちんと、ロールバック、
コミットのタイミングを障害時のビジネスロジック
に合わせなければいけないんダヨ。
>>463でもいってるだろ。

頼むからリカバリとごっちゃにしないでくれるか。
MDBはシビアな管理(リカバリ・セキュリティ・最適化等)
について向いていないだけだ。
0470デフォルトの名無しさんNGNG
>>469
同時接続ユーザー数を真っ先に挙げて欲しかった。
0471デフォルトの名無しさんNGNG
オレ>467だけど、リカバリの話してんのは別の人だよ。

0472厨房NGNG
ああ おれは MDBだけに ついて 話してる。
厨房だからな(w
0473デフォルトの名無しさんNGNG
「リカバリ」の意味合いもSQL鯖とオラクルで違うんだな。知らんかった。
不毛な論争スレだが、ちょっと勉強にナタヨ。
ttp://www.microsoft.com/japan/sql/evaluation/compare/prk/vsOracle4_4.asp
0474デフォルトの名無しさんNGNG
>472
なんでageるんだか。
0475デフォルトの名無しさんNGNG
っつーかオマエら仕事しろよw


オレモナー
0476デフォルトの名無しさんNGNG
>>469
キミはもうちょっと日本語読解力をつけたほうがいいな。
かなりイタイ事言ってる自分に気づけ
0477デフォルトの名無しさんNGNG
なんかしらんけどAccessなんか使ってる香具師は低脳
0478デフォルトの名無しさんNGNG
>>477
そうか?
スコープを理解して適切に使えばよろし
0479デフォルトの名無しさんNGNG
そもそもの本題は何よ?過去読むのダリーから誰か教えて。

>477
スタンドアロンで予算30マソの仕事にもOracle使うヤシ発見?
0480デフォルトの名無しさんNGNG
>>477
原チャリ感覚で使うと結構便利。
0481デフォルトの名無しさんNGNG
>>382の
「そもそもロールバックなんかイラネーじゃん」
から始まってるのか・・・
そりゃ荒れる訳だ(w
0482デフォルトの名無しさんNGNG
予算30万の仕事なんかあるのかよ。やっぱり低脳だな。
0483デフォルトの名無しさんNGNG
>>482
プロジェクトに貴賤無し。
予算30マソでも、それを月3本こなせば結構利益率良いぞ。
0484デフォルトの名無しさんNGNG
リアル厨房にしてやられたって感じだな。いかにもム板らしい。
0485デフォルトの名無しさんNGNG
予算30万円で オラクル買ったら 釣りは いくらだ?
0486デフォルトの名無しさんNGNG
>482
単発短期でAccessとかExcelの仕事なら妥当な線だと思うけど。
0487デフォルトの名無しさんNGNG
俺は500万からしか受けないよ。やっぱり低脳は貧乏だな(w
0488デフォルトの名無しさんNGNG
>>481
Accessではロールバックできない
という知ったかが蔓延し、
可能なことを証明し、必要性を説明したが、
関係もないことを盾に反論した
ことが原因だな。

>>476
あのさ、トランザクションの操作というのは
設計者、プログラマによる人為的なもの。

漏れは別にAcessマンセーではないし、
Accessは糞といっても構わない。
だがな、それは管理面では糞だ
ということだ。

Accessがシビアなトランザクションに不向き
または、トランザクション自体が不要
という考えを持つようじゃ他のDBMSでもきちんと
使えてないヨーダナ。
0489デフォルトの名無しさんNGNG
>Accessがシビアなトランザクションに不向き
いやこれは間違ってないっしょ
複数ユーザがガンガントランザクション張るような業務には使うなというのは定説だと思ってたけど。
0490デフォルトの名無しさんNGNG
>>487

低脳>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>精薄
0491デフォルトの名無しさんNGNG
>>488
共和国の方ですか?
0492デフォルトの名無しさんNGNG
>487は1年で500マソの仕事を受けてるくせに鼻高々ってホント?
0493デフォルトの名無しさんNGNG
>>489
だ か ら 同時接続ユーザー数でしょ、そ れ は。
0494デフォルトの名無しさんNGNG
同時接続ユーザ数とトランザクションのシビアさが無関係だと?
0495デフォルトの名無しさんNGNG
>>492
ハァ?
月500ですが何か?
やっぱり最下層は発想も貧乏だな。
0496382NGNG
やっぱりロールバックする事に意義も価値も無いんですね。
0497デフォルトの名無しさんNGNG
だから仕事すれってオマエらw
0498デフォルトの名無しさんNGNG
>495は利益率10%満たないくせに鼻高々ってホント?
0499デフォルトの名無しさんNGNG
>495はサラリーマンのくせに鼻高々ってホント?
0500デフォルトの名無しさんNGNG
>>494
ほんとおめーアフォだな
ロックの仕組みを勉強してこい。
(さらにAccessではどのレベルまで
対応しているかまでだ。)
これに反論して、厨房ぶりをさらせ。(フラ
0501デフォルトの名無しさんNGNG
>500
Accessで行ロック使って痛い目見たこと無いの?
0502デフォルトの名無しさんNGNG
>>501
だ か ら それは同時接続(以下略
0503デフォルトの名無しさんNGNG
>>501
数人のユーザでもロックは起こるし、
人数とは関係ないだろ。
0504デフォルトの名無しさんNGNG
>>503
数人ではまったんなら実装に問題があったんだろ。
0505デフォルトの名無しさんNGNG
で、本題はなんだっけ?
0506デフォルトの名無しさんNGNG
>>504
「設計によっては」が抜けてたダケダ
だから、人数とは関係ない。
0507デフォルトの名無しさんNGNG
「MDBでもトランザクションが使用でき、
必要ならば使うべき」
でいいの?
0508デフォルトの名無しさんNGNG
>>485
30万円
0509デフォルトの名無しさんNGNG
> 月500ですが何か?
昨年の所得税いくらでしたか? それともリーマンで月500の貧乏プロジェクトの
自慢ですか?
0510デフォルトの名無しさんNGNG
>507
「Jetをバカにする割に、トランザクション使える事すら知らない奴多すぎ。」
でよいかと。
0511デフォルトの名無しさんNGNG
Jetはバカだよ
0512デフォルトの名無しさんNGNG
>>510
JetでTransaction使える事は知らなかったが、振り返って考えてみても
別にJetでTransanctionが使える事を知らなくてもいいや、っと。
0513デフォルトの名無しさんNGNG
バカと天才は 紙一重・・・
0514デフォルトの名無しさんNGNG
いや、バカは何をやってもバカ。
0515デフォルトの名無しさんNGNG
だからDB関連のスレでACCESSの話するの嫌なんだよな。
厨が次々とわいてくる。
0516デフォルトの名無しさんNGNG
ここまでの厨
・DAO・ADO+MDBでトランザクション処理ができないと思ってたヤシ
・トランザクション処理とリカバリをごっちゃにし、さらに
 Jet(orADO)+MDBだとリカバリが弱いといって、
 トランザクション処理は必要なしと騒ぐ厨房
・Accessしか知らないくせにそれで自慢知ったかする厨房
 (pin'sとかいうサイトの常連ども・・・ここにも来てるだろ山神)

そして、こんなことを書いている漏れ
0517デフォルトの名無しさんNGNG
pin'sはいいサイトじゃんか。
俺、最初からここだったら泣いてたよ。
0518デフォルトの名無しさんNGNG
>>517
いいかどうかは、人によりけりだが、
漏れもちょっと前みたことある。
確かに、厨、知ったかの巣窟だったな。
まともなのは、SQLサバのK.Ogi...
とかいう氏ぐらいだった。
だが、2ちゃんでバトられながら
覚えた方がその分頭に焼き付くというのも
あるぞ。
0519デフォルトの名無しさんNGNG
>518
そりゃ2chのほうがミになるのは解るけどね。
最初からココで、ココが普通だって事になると人生踏み外しちまうよ。
0520デフォルトの名無しさんNGNG
そかそか
0521デフォルトの名無しさんNGNG
この業界入って、何の資格も取らずに40歳までいっちゃうとリストラ対象になるってホントですか?
0522デフォルトの名無しさんNGNG
アクセスしか知りませんがなにか?
0523デフォルトの名無しさんNGNG
>>522
それで、一生やっていけるなら 特に問題はない。
0524デフォルトの名無しさんNGNG
アクセスしか知らないのに、
DBシステムとは、とか、
果てにはプログラミングとは
いう蛙は多いな。

アクセスのイヤなとこは
テーブルとかDB情報を例えリモートでも
ローカルのワークテーブルに
取り込まないとフォームやコンボBOX
に反映できないとこだ。
(リンクテーブルはリモート
データを全て取り込むしな。)
0525デフォルトの名無しさんNGNG
まぁ、アクセスも知らないのにアクセス語るやつも多かったから、どっちもどっちだ。
0526デフォルトの名無しさんNGNG
まあ、なんだ。
ACCESSをDBだと思って、耐障害性についてレポート出せとか言う上司は氏んで欲しいね。
0527デフォルトの名無しさんNGNG
意外と、みんな分かってないことが証明されました(w
0528デフォルトの名無しさんNGNG
>>527
意外と、それでも仕事はこなせることが証明されました(w

自分の仕事の範囲だけ分かってりゃなんとかなるものよ
0529デフォルトの名無しさんNGNG
破損したMDBの修復法
http://support.microsoft.com/default.aspx?scid=kb;ja;JP209137
0530デフォルトの名無しさんNGNG
Access2kを使っている方に おききします。
MDBのサイズとしての限界は どれぐらいなんでしょうか?
一つのテーブルにおけるレコード数の実用的な限界って 何件ぐらいで考えて
設計されてますでしょうか?
0531デフォルトの名無しさんNGNG
>>530
MDBサイズ=2GB
テーブルサイズ=1GB
レコードは1GB以内であれば何行でもいいらしい。
0532デフォルトの名無しさんNGNG
フィールド内の文字数 256バイト
0533デフォルトの名無しさんNGNG
SQL
なんかの入門書
プログラマのためのSQL
SQLパズル

Excel VBA
大村 あつし
Access VBA
谷尻 かおり

でいいんですか?
0534デフォルトの名無しさんNGNG
なにがいいのか、さっぱりわからん。
どーでもいいけどな(w
0535デフォルトの名無しさんNGNG
いまさらだが、MDBでDAO使ってみた。
結構良い感じ〜♪
0536デフォルトの名無しさんNGNG
(・ロ・)ホ,('ロ')ホ--ッッ!!!
0537デフォルトの名無しさんNGNG
このpin's厨ども
いかげん本星に帰れ、
0538デフォルトの名無しさんNGNG
ACCESSは(っていうかJetは)常にインデックスを全てメインメモリに展開するという仕様だったんで
昔は使い物にならなかった。今はメモリが安いから使えるのかな?
0539デフォルトの名無しさんNGNG
>>538
とりあえず使えてるよ。
0540デフォルトの名無しさんNGNG
>>538
そりゃー、そのDBのサイズ次第っしょ
0541デフォルトの名無しさんNGNG
ところでその自動生成って、パーティションの管理も出来るの?
0542デフォルトの名無しさん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デフォルトの名無しさんNGNG
oracleとapacheとphpのつなぎ方教えてください(Windows2000)m(_ _)m
0544デフォルトの名無しさんNGNG
>543
とりあえず無難なのはアロンアルファ(ゼリー状)かな。
0545デフォルトの名無しさんNGNG
>>543
とりあえずODBCで繋げば?
0546デフォルトの名無しさんNGNG
>>542
>2 ふたば 10 30 30
は
2 ふたば 10 30 40
じゃないのかと、小一時間(略
というか、縦横変換はちょっと探せばゴロゴロしてるぞー。
というか、さらに、ここよりも

SQL教えて〜!! <2>
http://pc3.2ch.net/test/read.cgi/tech/1028653822/l50

の方がより正しいスレのような気がする。
DBがなんなのかわからんが、CASEとUNIONで
どうにか出来るだろうが。
0547542NGNG
>>546 レスありがとうございました!
縦横変換についてググッてみます〜。

0548デフォルトの名無しさんNGNG
>>547
条件は色々付くが、一応出来る。
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デフォルトの名無しさんNGNG
 SQLでINSERTする時に主キーがすでに使われていないかとか
UPDATEする時に、更新する行がちゃんとあるかなんてのは
SELECT文なんかでいちいち調べてますか?
 それとも、調べずに実行して例外や帰ってきた更新行数から正常に行われたかを
調べてますか?
 SELECT文で調べるのはロックとかめんどくさいけど、
例外や更新行数で調べるのは何で失敗したか調べにくいんですよね。

 たとえば、現在PostgreSQL+javaで開発しているんですが
INSERTしたときに主キーが重複していればSQLExceptionが起こるので
キャッチしてメッセージを受け取って主キー制約に違反していたときにでる
メッセージだったら主キーが重複してたんだなってわかるんですけど、
メッセージが変わったらどうするんだろとか、RDB変わると当然メッセージも変わるよな
とか考えるとこの方法ではちょっと不安です。

 普通どうするもんなんでしょうか。
 
0550デフォルトの名無しさんNGNG
>>549
主キー管理するテーブルを別に持つのでわ。

調べずにやるってどうゆことよ?
0551デフォルトの名無しさんNGNG
DBMSにネイティブで接続するなら
各DBMSのエラーコードに依存するが、
JDBC(やODBC)はその基準を用いて
各ベンダーがドライバを開発している
ので問題ない。

>>550 プッ
0552デフォルトの名無しさんNGNG
>>550
どういった管理をするのですか?
まさか、主キーが連番になってるとかってオチはないですよね
0553デフォルトの名無しさんNGNG
DBMS変わったら、関数とかの
違いの方が重要になる。
0554デフォルトの名無しさんNGNG
>549
値の取得のタイミング等を決めておき、そもそも重複が起こらないように設計するのが筋だと思う。
主キーの値が単なる連番であったりするならまた別の話だけど。
ちなみにエラー処理はメッセージそのものじゃなくコードを使うのが普通でわ。
0555549NGNG
 レスありがとうございます。自分もはじめはエラーコードを使おうと思ってたんですが
PostgreSQLの本見てもJDBCドライバが返すエラーコードについて説明がないし
PostgreSQLのJDBCドライバで主キー重複による例外が起こったときに
返されるエラーコードが0だったので、メッセージで判断するしかないのかと思ったんですが。
(メッセージはリファレンスに記述があるんです)
今、JavaのAPIよく見てたら、"SQLstate" 文字列なんてのがありますね。
これを使えばいいんでしょうか。

 ちなみに、主キーはユーザーに入力してもらうんですが
連番とかにしたほうがいいですかね。
でもそのときには、新たにUNIQUEキー制約が別のカラムに
つくので結局同じだと思うんですが。
0556デフォルトの名無しさんNGNG
現在フロントエンドにACCESS、DBにMSDE使ってるんですが受注管理システムを作っています。
受注テーブルと受注明細テーブルをメイン/サブフォームから一括登録する際に、
追加する時と削除するときは単純に受注テーブルも受注明細テーブルもそれぞれ
INSERTまたはDELETEすればよいのですが、更新の場合がいまいちよく分かりません。
最初は、そのキーになる受注番号の明細データを全てDELETEし、その後にワークテーブルの
明細データを全てINSERTするというやり方をしてたのですがトランザクションを
使うとたまにうまくいきません。
明細データをともなった場合更新は皆さんどうしてるんでしょうか?
0557デフォルトの名無しさんNGNG
>>556
まずは「うまくいきません」という状況報告をやめましょう。
0558デフォルトの名無しさんNGNG
>>557
すみません、一番最初に登録かけたときだけDELETEしないうちにINSERTするようで
接続エラーになりました。やり直すとうまくいきます。
0559デフォルトの名無しさんNGNG
http://24honlinecasino.fc2web.com/
0560デフォルトの名無しさんNGNG
>558
なあ、>556では「更新が上手くいかない」って書いておいて、>558では
「一番最初に登録かけたとき」ってあるよな。
あんた自身が現象をよく理解できていないものを、他人がわかると思うか?
0561デフォルトの名無しさんNGNG
>>560
自分の今の現象についてをどうこうしたいんじゃなくて、
VBAのコードやSQLの書き方で皆さんどういう方法を使っているか知りたかったんです。
0562デフォルトの名無しさんNGNG
>>561
じゃあスキーマを書いてください。
受注と明細っていう情報だけじゃ考える気にならないよ。

MSDEはあんま知らんが、ロックされた二つのテーブルをUPDATEするだけでないの?
0563デフォルトの名無しさんNGNG
SQLだけテキストファイルに保存しておいて、それを読み込んで使うというのは邪道なのでしょうか?
0564デフォルトの名無しさんNGNG
>>563
いいんでない?対応付けがややこしくなりそうだけど・・・
0565デフォルトの名無しさんNGNG
>>564
確かにごちゃごちゃしそうですね・・・。
この辺のスマートな実装方法がわからず、試行錯誤状態です。
何か参考になる本などないでしょうか。
0566デフォルトの名無しさんNGNG
>>565
何故そういう実装にしたいのか理由を書いてくれればアドバイスのしようもあるが。
0567デフォルトの名無しさんNGNG
人によってSQLの書き方が違ってアレだから、って所じゃないの?
自前で仕組みを作るのも良いけど、そうとう腰を据えてやらないと
対処療法的になってしまって結局工数がかさむというオチになりそう。

DBとのインタフェースはビューやストアドを使う等してラップしちゃうとか、
それ系のフレームワークを使うとかするほうが現実的だと思うが。
規約でどうにかなる部分でもあるけどね。
0568デフォルトの名無しさんNGNG
業務システムを開発した後、ユーザ自身が運用する場合
DBのスーパーユーザのパスワードってユーザに公開しますか?
0569デフォルトの名無しさんNGNG
DBとのインタフェースは、オブジェクトにマッピングするほうがいいな。
別鯖で動いてる別DBを、1つのオブジェクトにマッピングしちまうとか。
0570デフォルトの名無しさんNGNG
>>568
するでしょ
しないでおくメリットは?
0571568NGNG
>570
ユーザには、運用に必要な権限だけを付与する方が安心かな、と思ったんです。
今回、DBがSQL鯖2kなんですが、クライアントツールがAccessライクなので、
ちょっと知ってる一般人ならすぐ中身を触れてしまうんですよね・・・
0572デフォルトの名無しさんNGNG
>>571
ユーザ側の管理者にだけ教えるでしょ、普通
0573568NGNG
その管理者がちょっとアレなんで・・・
0574デフォルトの名無しさんNGNG
>>573
管理者が信用できないんじゃどうしようもないけど・・・
パスワードをその管理者の上司(社長でも可)に教えて
それとなく(管理者が信用できないことを)匂わすくらいでしょうか
0575デフォルトの名無しさんNGNG
あ、やっぱ匂わすのもまずいですね
とにかくできるだけ確実な人に教えて
「あとはよろしくお願いします」
というのが無難かと
0576デフォルトの名無しさんNGNG
ふつーは担当者・管理者を信じてはいけません。
情報漏洩の多くは、クラッカーではなく
アクセス権限を持っている担当者によって行われています。
0577デフォルトの名無しさんNGNG
SELECT TOP 10 FROM 【ノウ】DBアプリ開発ノウハウ【ハウ】ORDER BY No;
0578デフォルトの名無しさんNGNG
>>549
テーブル、更新用のビューそれぞれに登録用のストアド組んじゃえば?
ストアドの方でエラーコードを自前で返してやれば面倒なこともないじゃん。

今のご時世、いろんな言語から叩くことが当たり前だし。
DBMS内部でラップできる部分はどんどん放り込んで置いた方が楽かと。
0579578NGNG
こんなこと過去にどっかで書いたような気がしたと思ったら、ここの>>21だった。
((((;゚Д゚)))ガクガクブルブル
0580デフォルトの名無しさんNGNG
毎分数百レコードがINSERTされるようなテーブルでなければ
INDEXを作成する事によるSELECT文のパフォーマンスアップを
INSERT文が遅くなる事よりも重要視しても良いでしょうか?

とあるSQL文のパフォーマンスが悪いのですが
(検索に使用しているカラムに索引が無い事が原因だと思われる)、
どの程度までならINSERT処理が遅くなる事を無視しても良いのか
わかりかねています。
0581デフォルトの名無しさんNGNG
どの程度までって・・・
それこそ、システムの要件によって千差万別。
使用頻度やレスポンスの要件をしっかり調べた結果決めるべし。

っていうか君の文章めちゃくちゃ回りくどいなw
0582DB屋150円で〜すNGNG
>>580
どういう使われ方してるのかによるけど。。。
Oraclならば、索引付けして
PCTFREEとかの値を大きくする・・・とか。
0583580NGNG
>>581,582
社内向けWebシステムのバックエンドで使われているOra817です。
総ユーザーは20弱、同時はあっても2・3ユーザー。
最近このシステムを任されたんですが、どうやら詳細な
レスポンス等の要件は無いようです。
#感覚的に遅いところは「どうにかならない?」と相談されています。

>>582
PCTFREEを大きくすると、領域を新たに取得する為の時間は
少なくなると思うけど、INSERT処理も速くなるもんなのでしょうか?
この場合は、テーブルに対するPCTFREEですよね?

>>581
文章が回りくどいのはよく言われます。要点を押さえながら
簡潔に文章を書く事が出来ないので、要点が足りなくて
何度もやり取りするよりはマシかと思ってこうしてます。
#あぁ、2chでも指摘されるとは・・・
0584581NGNG
>583
その使い方だと、更新が遅くなるってのは殆ど気にならないんじゃね?
Indexをつければ検索パフォーマンスは劇的に改善するだろうし、
プラス面の方が圧倒的に大きいと思う。


>何度もやり取りするよりはマシ
まあね。知りたいことが書いてないよりかはいい。
2chで煽り煽られる中で、要点を絞る方法も身についてくるかもしれん。
がんがれ。
0585デフォルトの名無しさんNGNG
>>583
> 何度もやり取りするよりはマシかと思ってこうしてます。
でも、相手によっては正しく理解されない可能性もあるよね。
まず箇条書きしてみるとか、論旨を整理するステップを入れていくようにしてみては。
0586580NGNG
みなさま、あけましたおめでとう。

>>584
ありがとうさんです、INDEX作成の方向でガンガリます。
そんな場所が2・3あるんですが、そのうち1つはFunctionIndexになりそう。。。

>>585
箇条書きは良い案かもしれませぬ。
文章が長いというだけで、読む気をなくす方も
いらっしゃるようですし、もうちょい努力します。
0587DB屋150円で〜すNGNG
新年明けましておめでとう御座います。

>>583
>PCTFREEを大きくすると、領域を新たに取得する為の時間は
>少なくなると思うけど、INSERT処理も速くなるもんなのでしょうか?
>この場合は、テーブルに対するPCTFREEですよね?

いえ。>>582で言っていたのはテーブルではなく
インデックスに対してのPCTFREEです。
(テーブルに対してのPCTFREEは更新時のためのものです)

この値を大きくしておくことで、挿入時におけるインデックスの
リーフブロック分割によるパフォーマンス低下を抑えられます。

・・・と論理的な事を書きましたが、実際、目に見えるような
効果があるかは不明です。ハイ。ご参考までに。

0588IP記録実験NGNG
IP記録実験
http://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デフォルトの名無しさんNGNG
これでスクリプト嵐には賠償金でホクホクだね
0591デフォルトの名無しさんNGNG
>>203
持ってるからイラネ

「通報しますた」と言って欲しいのか?
0592デフォルトの名無しさんNGNG
>234
つまらん道徳論に回収しようとしたのはアンタだろうに。

>225
でかい掲示板じゃなきゃ多少はリスク下がるよ。
0593デフォルトの名無しさんNGNG
>>240
んじゃ今からお前をヌー速管理人に任命しる。
0594デフォルトの名無しさんNGNG
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 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
>>473
貴方の仰ることもよくわかりますが、いまの2ちゃんねるが
その役割を果たせているとは到底思えません。
あまりにも低レベルすぎて、お話になりません。

いつの日かまともな議論できるような掲示板になるよう
心から願っている次第です。
0596デフォルトの名無しさんNGNG
今まで悪ふざけで出来たものがあったような気がするけど、そういうのが出来なくなるような?
0597デフォルトの名無しさんNGNG
この↓判決をうけての措置だと考えられます。

【危機】レスの真実性・相当性の立証責任がひろゆきにある【判決】
http://news.2ch.net/newsplus/kako/1026/10261/1026145775.html
0598デフォルトの名無しさんNGNG
誰かがあらすじとやらを書き込む気配は全くない訳だが。
0599デフォルトの名無しさんNGNG
330 名前:夜勤 ★[] 投稿日:02/12/31 07:34 ID:???
3板とも 作り直してみた。
情報は salami 時代のを持ってた。


331 名前:心得をよく読みましょう[sage] 投稿日:02/12/31 07:37 ID:OcGVwWya
datはどうなってますか?
モナーの一部以外は全部あぼーん?

332 名前:夜勤 ★[] 投稿日:02/12/31 07:38 ID:???
そのようです。

残念。
0600デフォルトの名無しさんNGNG
言いたいこともいえないこんな2ちゃんねるじゃ
0601デフォルトの名無しさんNGNG
>>709
してる
0602デフォルトの名無しさんNGNG

かぶきゅーししょーと呼んであげよう(ワラ
0603デフォルトの名無しさんNGNG

スレ立てて予告しないなら。

今でもスレ立てしたらIP取られるから、スレ立て予告はしないのが吉。
0604デフォルトの名無しさんNGNG
削除や警告なしにアクセスログが第三者に渡ることになるの?
0605デフォルトの名無しさんNGNG
>>699
マジ?(w
0606デフォルトの名無しさんNGNG
OSレベルで相手からIPデータ取得の要求があった時にそれに応じるか拒否するか選択できるようにすべきだな
0607デフォルトの名無しさんNGNG
メール欄に文字を入れてIDを出させない方法が
あったということなんだ。
知らなかった・・・
0608デフォルトの名無しさんNGNG
249 名前:ひろゆき ◆3SHRUNYAXA [] 投稿日:03/01/08 17:52 ID:rLfxQ17l
   >荒らしとか犯罪のためなの?
   そす。

246 名前:心得をよく読みましょう[] 投稿日:03/01/08 17:52 ID:BH998yxV
   >ひろゆき
   俺のお気に入りのスレとか荒されてるんだがそういうのにも有効?

257 名前:ひろゆき ◆3SHRUNYAXA [] 投稿日:03/01/08 17:53 ID:rLfxQ17l
      いずれは。


 
0609デフォルトの名無しさんNGNG
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 139038人 発行日:2003/1/10

なにやら、連日メルマガだしてるひろゆきです。

そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。

重くなって落ちたりしてもご愛嬌ってことで。。。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0610デフォルトの名無しさんNGNG
誤診かどうかは、症例経過がどれだけ良好か不良かによるから。
つまり、『実験台となる患者』に、どれだけ被害が出たかで判明するとこと事。

要は「知らない病院には、なるべく行くな」という、今までのセオリーが
繰り返されるだけ。
0611デフォルトの名無しさんNGNG
ひろゆきがこないと盛り上がらないね
0612デフォルトの名無しさんNGNG
嫌嫌韓厨が自棄に元気だねぇ
0613デフォルトの名無しさんNGNG
電波を演じてるのか、ほんものの電波なのか・・・
400レス以上演技は続かないかな・・・
0614デフォルトの名無しさんNGNG
2chが2chでは無くなるときが来ましたね。
遊び方の解らない馬鹿が増えたから、しかたないのかもしれません。
もう転載しませんので、以後は該当のスレ追っかけてください



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デフォルトの名無しさんNGNG
おっ俺の泉ピン子がっああっんっ
0616デフォルトの名無しさんNGNG
メロンパン=ソンゴクウということで民事訴訟されるわけか?ただアク禁ではたりんな!!
0617デフォルトの名無しさんNGNG
載ったのか(w
タイ━━━||Φ|(|゚|∀|゚|)|Φ||━━━ホ!!!!! だな
0618デフォルトの名無しさんNGNG
岡田克彦ファンクラブからのご案内です。岡田克彦氏の卒業した早稲田大学
政治経済学部に比べて著しい低学歴、特に、ひろゆきの卒業した中央大学文学部
のようなヘボい大学に共通しているのは、文化水準が低いという事です。18歳から22歳を
ヘボい大学で過ごすということは、致命傷と言えます。2ちゃんねらーの大半は
岡田克彦氏に比べて、著しい低学歴ですから、取り返しはつかないのです。
せめて、http://www.geocities.co.jp/MusicHall-Horn/1091/で、氏の作品に触れましょう。
0619デフォルトの名無しさんNGNG
Internet Service Providerが契約者に対し
顧客情報の開示を行うことを明らかにするだけだ。
責任は書き込んだ奴が取るだけ。
0620デフォルトの名無しさんNGNG
最近カール★さん見ない・・・
0621デフォルトの名無しさんNGNG
良スレだったのか
0622山崎渉NGNG
(^^)
0623デフォルトの名無しさんNGNG

実質的には上告はもう無理らしい。

うれしいなぁ。


0624山崎渉NGNG
(^^)
0625山崎渉NGNG
(^^)
0626デフォルトの名無しさんNGNG
くそすれさらしあべ
0627デフォルトの名無しさんNGNG
やっぱ紙に書くのが一番だな
なくしたら知らないって言えば済むし
0628デフォルトの名無しさんNGNG
このスレまだ生きてるのかな?

入力系のアプリでの入力内容のエラーチェックですが、作り出すたびに
入力フィールドがフォーカスを失った都度でエラーチェックをかけるべき
なのか、それとも最終確認(OKボタン等)でかけるべきなのか迷います。

GUIの流儀から行けば最終確認時のみエラーチェックなのでしょうが…
旧態依然のオフコン画面が頭に染みついているせいなのかな?
0629デフォルトの名無しさんNGNG
どっちがいい悪いじゃなく、、設計段階で決めておけばいいだけの話。
っつーか何が聞きたいのかよくわからん。
0630デフォルトの名無しさんNGNG
WindowsGUIの流儀では、単純な上限・下限チェック入力時に行う。
間違っていたら入力を受け付けずに、警告音と共に値を元に戻すのが普通。
しかしもちろん、複雑な条件が絡むエラーチェックは最終確認時にまとめてチェックするよ。
つーか、VBとかでフォーム作ってるのか?それともWEBなのか?
もういい年なんだから、もっとうまく状況を説明できるようにならんと駄目だぞ。
0631デフォルトの名無しさんNGNG
>>628
WEBなら基本はボタン押したときだが。
フォーカス失ったときに出るのは、画面閉じれなくなってうざくない?
発狂する人が出るかと。
0632デフォルトの名無しさんNGNG
マルチポストですが、DB関係のスレがあったのでこちらにも書き込みます。
お許しを。

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
632さんとは別の者です。質問続きですんません。

現在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デフォルトの名無しさんNGNG
AでGIKOデータベースをバックアップ
Bに空の新規データベースを作って、バックアップデータをそこへ復元
じゃダメっすか?
0635デフォルトの名無しさんNGNG
>>634さ
返信ありがとうございます。

早速試してみたのですが、どうやら自分自身が取ったバックアップでないと
復元してくれないようですヽ(;´Д`)ノ
0636634NGNG
私ゃSQL鯖2K同士でしかやったことありませんが、他鯖への復元もできますたよ。
ただ、バックアップから復元する際、各種ファイルのパスにはそのバックアップを
取った鯖のファイルのパスが表示されてるはずなので、取り込む鯖でファイル名や
パスが違う場合はちゃんとあわせてやらなければダメれす。
0637デフォルトの名無しさんNGNG
つまり、こう言う事でしょうか?↓

 A側マシンの[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側で復元処理。
0639634NGNG
イメージとしてはそんな感じです。
でも両者のファイル位置は必ずしも一致させる必要は無くて、
「データベースの復元」窓の「オプション」タブで、「復元先」っていう
部分がBのGIKOデータベースのファイルを正しく指していればOKかと。

仮に、BのファイルがD:\Omaemona\〜にあったとしても、この「復元先」には
バックアップを取ったA鯖のC:\Itteyoshi\〜が表示されてるはずです。
0640634NGNG
ちなみに、これが正しい手順なのか私にもわかりませぬ。
やってみたらできちゃった♪っていうだけなので・・・

これだけ書いてから言うのもアレですがw
0641633NGNG
>>634さ
ダミーデータで試してみたら、見事復元されましたヽ(´∀`)ノヤター
詳細な解説ありがとうございました。
「復元先」は、要はバックアップファイルの展開先といった意味合いですね。

マジでありがとうございました!(゚д゚ ゞ)
0642634NGNG
おー、できましたか。
私の中途半端な経験談でしたがお役に立てて何よりです。

>「復元先」は、要はバックアップファイルの展開先といった意味合いですね。
そうそう。
あのテの画面って言葉がわかりにくいんですよね・・・
「データベースとして復元」ってなんじゃそら、みたいな。
0643デフォルトの名無しさんNGNG
MS-SQL鯖ってすげぇ楽なんだね。
0644デフォルトの名無しさんNGNG
テーブルのレコード数が例えば1億とかとんでもない数に
なってしまう場合、皆さんならどうしますか?
使用するRDBMSはPostgreSQLやMySQLクラスを想定して下さい。

1、何かのフィールドを元にテーブルを分割する。
2、インデックスや何らかの対策をして一つのテーブルで
3、そもそもそんなデータはRDBMSでは扱わない。

参考までにお聞かせ下さい。
0645デフォルトの名無しさんNGNG
データサイズの上限ってならよく聞くけど・・・
PostgreとかMySQLってレコード数の上限あるの?


0646デフォルトの名無しさんNGNG
>>644
そのテーブルの用途は?

1.オンラインでの検索・挿入・削除・更新
2.オンラインでの検索のみ(更新処理はインポート)
3.オンラインでの検索のみ(更新処理はバッチで)
4.バッチ使用のみ
等々、いろいろ考えられるけど...

用途によって答は変わると思うけど。
0647デフォルトの名無しさんNGNG
>>646
>用途によって答は変わると思うけど。
結局「3」って答える罠。
0648デフォルトの名無しさんNGNG
更新処理をインポートってどうやんの?他のDBからエクスポートしたのをごっそりもって来るってこと?豪快だな。
0649644NGNG
>>646
3です。
0650デフォルトの名無しさんNGNG
>>644
本当に知りたいなら、それぞれのメーリングリストで聞いてみたら?
0651644NGNG
では質問を変えて>>644のような場合、
テーブルを分割するというのは有効な方法でしょうか?
0652デフォルトの名無しさんNGNG
>>648
他のデータベースから持ってくるとは限らないよ。
バッチ処理でインポートデータ作っといて
業務止めれるときにでもインポートしとこうか。
って、感じかな。

今、そういう処理やってます。
インポートデータ作るのに2日。
テーブルの切捨て・インポートに半日。
0653デフォルトの名無しさんNGNG
億単位のレコード数扱ったことあるけど、
(たしか、過去30数年くらい上場・非上場
企業dailyデータだったかな)
インデックスさえきちんと使えばユーザも
満足するレスポンスで使えた。
たまに行うインデックス再構成には
半日くらいかかったけどね。
基本は
・対象テーブルの物理ファイル(デバイス)
 を別ディスク、RAWデバイスつかえるならRAWデバイスを使用。
・インデックスをきちんと使う。
でほとんど大丈夫。
別テーブルや別パーティションは
データ保守の面を考えると、最後の手段だな。
0654644NGNG
>>653
なるほど〜、ありがとうございます。
インデックスってすごいですね。
ちなみにDBは何をお使いだったのでしょうか?
0655デフォルトの名無しさんNGNG
>>653
参照系DBだと、Oracleのパーティション表を使うと運用が楽になる場合もあるね。
今PostgreSQLで1テーブル3億レコードくらいのDBがあるんだけど、過去データの削除と
それに伴うインデクス再構成でかなりの時間停止しないとならないのが...。
一度パーティションビューみたいなものを作って試してみたんだけど、PostgreSQLの
プランナはあまり良い実行計画を出してくれなかったんでやめた。
0656デフォルトの名無しさんNGNG
>>654
M$は想定外みたいだけど
一応言っとく。

絶対に、SQL鯖はつかうなよ。
つーか、絶対にWindow$は使うなよ。
一生後悔するぞ。(体験者談)
0657デフォルトの名無しさんNGNG
他の皆さんに比べたらかなり小規模ですが・・・。

4000万件くらいのテーブルは日常的に扱ってます。
一番注意しているのがインデックス。それだけ。
性能はまったく問題ないです。

Postgres 7.2.3です。
0658648NGNG
>652

ほー。そういうやり方もあるの。でも俺んとこじゃできんなあ。それは。
俺はインポートって本当に復旧作業でしかやったことない。
ところでインポートって時々失敗しない?
おれは今まで2回そういうことがあった(両方ともオラクル8.1.6)。エクスポートは警告なしで終了したのに、だ。
もちろん失敗率は問題ないぐらい低いとは思うんだが。
0659デフォルトの名無しさんNGNG
ここはKnow-HowについてDebateするThreadか。
まだ俺はBeginnerだから、用のNothingなThreadだな。
0660デフォルトの名無しさんNGNG
>>659
お前にとってこのスレッドが用無しなのではない。
このスレッドにとってお前が用無しなのだ。
鮭の骨が歯ぐきに刺さったじゃねーかよ!
0661デフォルトの名無しさんNGNG
>656
後学の為に、その理由をキボンヌ。
0662デフォルトの名無しさんNGNG
>>656
どう後悔するか聞いてみたいが...
0663デフォルトの名無しさんNGNG
Web-DBなシステムを、複数人数で開発しているときの話なのですが、
誰かが「ちゃんとデータが入ってないとエラーになる」テストをしていて、
他の誰かが「データを入力する」部分のテストをしていると、
無いはずのデータが存在したり、あるはずのデータが消えたりして、面倒です。

開発メンバーで細かく声を掛け合う以外に、うまい方法はないでしょうか。
0664デフォルトの名無しさんNGNG
>>661
MSだからに決まってるだろ?
他のDBサーバーさわってない奴のセリフさ。
0665デフォルトの名無しさんNGNG
>663
ローカルWeb鯖で動かすとか。

>664
良スレなんで燃料はいりませんよ
0666デフォルトの名無しさんNGNG
>>663

ローカルにサーバを持つように作るべき。
共有サーバなんてやっちゃだめ。
0667デフォルトの名無しさんNGNG
>>661-662
毎月のようにOS、IIS、DBのパッチが
出てきてそのたびにアプリの全打鍵。

再起動がかかるパッチが多いから
業務止めれる休日にやるしかない。
ここ1年でパッチ適用のために休日出勤したの20回。

SQL ServerのServicePack適用したらなぜか
OSの挙動がおかしくなってシステムバックアップからリストア。
調べたが問題わからず翌月再適用。

先月のも適用した直後にプロダクトによっては
ブルーバックで起動しなくなると不具合があるという情報が...
運良く不具合のあるプロダクトじゃなかった。

平日はオンライン処理での過負荷でDBサーバがハングアップ。
休む暇なし。
俺のこの1年の恋人はM$サーバ10台。
0668デフォルトの名無しさんNGNG
ファイルですむようなシステムに
DBを持ち込んで、無駄にハードウェアリソースを食わせようとする
バカがいるんですが、
このバカにそれを理解させるにはどうすればいいでしょうか?
0669デフォルトの名無しさんNGNG
>>668
金がかかるってことで。
0670デフォルトの名無しさんNGNG
>>668
バックアップ/リストアがめんどくさいってことで。
0671デフォルトの名無しさんNGNG
>>668
どんなDBなんだろ
0672デフォルトの名無しさんNGNG
>>663
接続時のユーザを変えてスキーマーというものをうまく使おう。
0673デフォルトの名無しさんNGNG
>>668
っていうか日本の雇用率に貢献してる良い人じゃん。売れるもんは売っとけ。
0674デフォルトの名無しさんNGNG
>>668
4CPUのサーバに
Windows 2000 Advanced Serverのプロセッサライセンス
Oracle 9i のインターネットライセンス(ってまだあったっけ?)か
プロセッサライセンスかで
見積もりだせばいいじゃん。

考え直すと思うよ。
0675デフォルトの名無しさんNGNG
>>674
Linux&Postgresでとか言われる罠
そういう無駄な知識は持ち合わせている罠
0676デフォルトの名無しさんNGNG
>>675
MyBase(Delphiとかに付いてるやつ)でも教えてやれば
ファイルベース(通常はXML)のDBだから軽くて邪魔にならないよ
0677デフォルトの名無しさんNGNG
PostgreSQLって一時テーブルみたいなのはありますか?
0678デフォルトの名無しさんNGNG
Oracleでさえ9になってから出来たようなものが
postgresにあるわけない。
0679デフォルトの名無しさんNGNG
>>677
CREATE TEMP TABLE でぐぐれ。

>>678
君は煽りがうまい。
0680デフォルトの名無しさんNGNG
一時表はOra8iにもあったような気がするけど…?
もしかして釣られたか?
0681679NGNG
>>680
俺 postgres しか使ったことないのね。
で、いつかは Oracle 使いたいなー、と思ってる。

そんな俺の心の隙間を突く巧みな煽りを入れて、
情報を引き出そうとする >>678 は煽りがうまい、ってことで。
0682デフォルトの名無しさんNGNG
>>680
8iにもあったよ〜

8i Platinum MASTERより
0683デフォルトの名無しさんNGNG
8iってことは8までなかったのか?
SQL Serverはもっと早く実装していたぞ。
0684677NGNG
>>679
ありがとうございます。
0685682NGNG
>>683
そうなんだ〜
つーか、8iしかしらねえよ。
8にあったのかどうかは
昔からシステムやってるおっさんに聞いてくれ。

しかし、SQL鯖は読み取り一貫性すら保障できてないくせに
その辺は一応実装してんだね。
0686デフォルトの名無しさんNGNG
大抵のRDBMSには昔からアターヨ>TEMP表
Oracleに対する要望の上位だった。
8でようやく実装。あるのが当たり前だけに
Oracleに無いことに気付いたときにはビクーリですた。
0687デフォルトの名無しさんNGNG
8にはないでしょ。なんかi付けた良く分からんバージョンから。
0688デフォルトの名無しさんNGNG
>>685
> しかし、SQL鯖は読み取り一貫性すら保障できてないくせに
あんたの書いたSQLが悪いだけ。
0689デフォルトの名無しさんNGNG
>>685
読み取り一貫性以前の問題で、
更新中の未コミットのレコードを読むことは出来ないじゃん(藁
(ダーティリードかコミット/ロールバックを待つかすれば出来るけど)


どっちにしても、使えねえのには変わりねえけどな!
0690デフォルトの名無しさんNGNG
>>689
出来るってかいてるじゃん(藁
0691デフォルトの名無しさんNGNG
> 更新中の未コミットのレコードを読む
ゴミデータを読めちゃうって事だね。Oracleできちゃうの? 信頼性ねーな。
0692デフォルトの名無しさんNGNG
>>691
OracleはREAD UNCOMMITEDはできない。
他のDBMSには、あえてできるものもあるらしい。
単なるREAD COMMITEDでもロックが発生してしまう
ようなDBMSの場合らしいが。
0693685NGNG
>>689
> (ダーティリードかコミット/ロールバックを待つかすれば出来るけど)
すんまそん。
そのこと言いたかったのだ。
更新中のレコードはダーティリードじゃないと読めないじゃん。
そうすると読むタイミングと更新のタイミングによって読み込まれる結果が
変わってくるから一貫性は保証されてないんじゃないの?
言葉の意味取り違えてるのかな?(ちょっと弱気)
0694689NGNG
>>691
ボラクルは未コミットのレコードについて
・データ変更中のユーザーは変更中のデータを読むことが出来る
・それ以外のユーザーは変更前のデータを読むことが出来る。

SQL鯖はゴミを集めるしか読む方法は無い
0695デフォルトの名無しさんNGNG
結局どのDBMSもつかえねえのか?

つーか、こういうシステムにはこのDBMSが向いてて
このDBMSが向いてないってまとめたサイトとかないの?
DBMSの長所・短所の一覧だけでもいいんだけど。
0696デフォルトの名無しさんNGNG
>>694
オマエSQL鯖使ったことないだろ。
0697694NGNG
>>696
あるよ。

読む方法あるの?
0698デフォルトの名無しさんNGNG
>>663
ローカルだとスキーマ変更の反映漏れが怖いんだよなぁ…
チームごとにインスタンス分けて、個人ごとにユーザ分けるとか。。。
それでも反映漏れはある、か…。

話は全然変わるんだけど、SYBASEのSQLAnywhereってまだあるの?
0699デフォルトの名無しさんNGNG
>>668
DBアプリはDB(SQL)でデータ操作する方がコーディングがラクだからじゃないの?
一般ファイルだとWinAPIゴリゴリ書かないとダメだし、
そもそもそれじゃデータ操作面倒くさいじゃん
0700デフォルトの名無しさんNGNG
>>694 ついでに >>695 も
ここ読め。
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デフォルトの名無しさんNGNG
>>699
XMLを記述したテキストファイルをつかって
RecordSet使うってのは反則?
実際はコーディングが結構面倒だけど(藁
0702デフォルトの名無しさんNGNG
>>697(694)
方法もなにも>>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
Oracleが読み取り一貫性を実現しているのはそれはそれで立派だとは思うが。
しかし、使うとやばいデータを引っ張ってくるのには何の変わりもないわけで、
for update が今日も元気に働いている。

>>695
Oracle使いのためのSQL Server入門みたいなムックが出ていた。
とりあえずの比較用に立ち読みでもしてみたら?

>>699
ファイルで済む規模なら、XMLでいきゃいいじゃん。
ロジックは書きやすいし、XPathも併用すれば普通に使える。
0704デフォルトの名無しさんNGNG
>>703
そりゃ単にその案件が「リピータブルリードが保証されないとやばい」
設計になっていたというだけだろう?
パフォーマンスやデッドロックの事を考えれば、むやみに高い分離
レベルを使わずにすむよう考えるものだがな。
0705デフォルトの名無しさんNGNG
あーっはっはっは。
ロックだトランザクションだと難しい事を考えるから複雑になるんだよ。
瞬間的には1人の人間しかアクセスしていないんだからそんな事気に
せず作ればいいじゃないか。

mdb共有でC/Sだと言い張るうちのバカSヨなら絶対こう言う。
0706デフォルトの名無しさんNGNG
>>705
> mdb共有でC/Sだと言い張るうちのバカSヨなら絶対こう言う。
Consultant/Slave?
0707デフォルトの名無しさんNGNG
>>705
瞬間的に1人の人間しかアクセスしないような
軽いシステムしか作ったこと無いなんてうらやましいね。

今のシステム瞬間的に最大10人はDBにアクセスしてるよ。
WEBのセッションなんて同時に500ぐらい張られてるし。
0708デフォルトの名無しさんNGNG
瞬間的に1人の人間しかアクセスしないような軽いシステムだが、

馬鹿な管理者でも管理でき(半年に一回くらい馬鹿じゃない管理者がメンテできれば良い)
できるだけ金をかけず、なおかつWindowsで動かすには
どんなDBを使えば良いだろうか?
0709デフォルトの名無しさんNGNG
>>708
MySQL
0710デフォルトの名無しさんNGNG
>>708
Firebird
0711デフォルトの名無しさんNGNG
>708
Excel
0712デフォルトの名無しさんNGNG
Firebirdなら管理者そのものが不要だろ
0713デフォルトの名無しさんNGNG
>>708
アクセスでいいじゃん。
バックアップも簡単だし。
アプリでアクセスするのも簡単。
厨房プログラマにはもってこいだよ。
0714デフォルトの名無しさんNGNG
どう考えてもCSV
0715デフォルトの名無しさんNGNG
Windowsのレジストリを活用するという手も!!
0716デフォルトの名無しさんNGNG
>>708
テキスト形式で公開して gooooooooooooooooooooooooooooooooooooooogle 検索
最強
0717デフォルトの名無しさんNGNG
namazuがいいかもね。
0718山崎渉NGNG
(^^)
0719デフォルトの名無しさんNGNG
>>700
その辺綺麗に解決(管理不要、ロック不要)してるのが実はInterbase/Firebird
だったりする。でも何故かこの特徴についてはあまり語られない(´・ω・`)

http://www.borland.co.jp/interbase/ib4/KINOU/kinou_4.html
0720デフォルトの名無しさんNGNG
Access で NOT NULL 宣言したカラムって、ある日突然ブランク (長さ 0 の文字列)
を受け付けなくなるのか?
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質問NGNG
VB6.0 + JetDB + ADO で
sql = "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
>>724
素直に他の名前にすれば?
0726デフォルトの名無しさんNGNG
>>725
Accessからは、その名前で作れるんですよ
0727デフォルトの名無しさんNGNG
いや、もちろん、不可能であることが明確になれば
妥協策を検討せざるを得ませんが・・・
0728デフォルトの名無しさんNGNG
>>724
おまえにゃ無理だ
0729デフォルトの名無しさんNGNG
予約語を使うやつはアフォ
0730723NGNG
なんか、>>724に話題を持っていかれてしまったようですね。
0731デフォルトの名無しさんNGNG
[year]
0732デフォルトの名無しさんNGNG
>>719
それってPostgreSQLと同じアーキテクチャだったりするよ。
0733デフォルトの名無しさんNGNG
>>732
つーか MVCC (多版型同時実行制御) 実装してない DB の方が少なく感じる。
0734デフォルトの名無しさんNGNG
たまーに ODBC 経由で Access 叩くツールとか作ると、楽だねぇこの DB。
0735デフォルトの名無しさんNGNG
ごめん、ほんとにごめん
主キーってのはユニークじゃないと駄目なのよね?
皆さんはどうやって動的な主キーを決めてるのでしょうか?
(例えばそのレコードが作製された日付+時間とか?)
また、ユーザーがレコードを編集するとき、主キーは
編集できないようにしたほうがいいよね?
ほんとにごめん、、、
0736デフォルトの名無しさんNGNG
謙虚杉。悩むくらいなら連番
主キーは編集も更新もしない
0737デフォルトの名無しさんNGNG
YYYYMMDDHHMMSS0000

0000 は 1 秒間に採番される最大想定数より余裕を持たせたシーケンス番号。
0738735NGNG
ありがとうございます
やはり連番か時間がいいみたいですね
連番だとSELECT MAX(主キー) FROM list
とSQLを発行して最大値+1くらいで続けていこうと
思ったのですが、仮に20レコードあってその中の
15レコードがユーザによって削除された場合
(・・・12、13、14、16、17、18、19、20)
となり15が無駄に空きますよね?
こういうときの15が空きという情報の取得方法を
教えていただきたいのですが、お願いできないでしょうか?
0739デフォルトの名無しさんNGNG
>>738

・番号は詰めない(削除後は再利用しない)
・レコード生成するたびにそんなクエリは行わない (737 の方法とかで済ます)

主キーを「抜けの無い連番」という別のものと混同・代用しない方がよいよ。
初歩的すぎるけど一応スレの趣旨にそって突っ込んどく。
0740735NGNG
ほんとうに有難うございます。
日付+時間だと030422205460256と数字で
認識させるとものすごい数になるのでやめようと
思ったのですが、文字列で試してみようと思います

>>主キーを「抜けの無い連番」という別のものと混同・代用しない方がよいよ。
>>初歩的すぎるけど一応スレの趣旨にそって突っ込んどく。
どうもやりはじめたばかりでいろいろ考えてしまい
変な方向に行きそうでした
ご忠告いただき有難うございます。
0741デフォルトの名無しさんNGNG
>>739
だよねー、これやっちゃうと
外部キーとして引っ張って来れなかったりする
なんていう寒いバグと友達になれるんだよね
0742U ◆CZtFsGiu0c NGNG
>>735
RDBMSによるが、SEQUENCEやらIDENTITYやらが使えるのなら使ったほうが
楽だよ。
0743735NGNG
よさそうな情報有難うございます
本当にやり始めたばかりなので自分が何のRDBMS
をしようしているのか(RDBMSとは何を表すのか)
わからず申し訳ございません
私はDelphiでParadox7というものを使用
しているのですが...
明日SequenceとIdentityが使えるのかどうか
早速調べてきます。有難うございます
0744デフォルトの名無しさんNGNG
パラ毒巣って久しぶりに聞いたがまだ売ってるんだ。
0745デフォルトの名無しさんNGNG
>>743
あれあれ?
Paradox7ならカウンタ型が使えるでしょ?
0746デフォルトの名無しさんNGNG
>>735
>>745さんの言うとおりParadoxならカウンタ型があるので使用す
るとよいでしょう。
ただ、カウンタ型等の無意味なユニーク値をプライマリキーとしなければな
らないテーブル定義に問題はないでしょうか?

今まで手作業で行っていた業務の移行でしたら
「請求書の束から人間はどうやって一意の請求書を見つけていたか」
請求書番号ですか?
「受注の際、何を基準に新規顧客と得意先かを判断していたか。」
名前や名前と住所・電話番号等の組み合わせ?

そういうものがプライマリキーとなりえます。
当然Sequence値をプライマリキーとする場合も多々ありますが、文面よ
り入門者と見受けましたので、テーブルの見直しもありかなと思いあえ
て書かせていただきました。

0747735NGNG
またもや良い情報を教えていただき有難うございます
早速カウンタ型を調べたところ、主キーにぴったりだと思い
利用しようと思います。

>>746さん
>>今まで手作業で行っていた業務の移行でしたら
>>「請求書の束から人間はどうやって一意の請求書を見つけていたか」
>>請求書番号ですか?
>>「受注の際、何を基準に新規顧客と得意先かを判断していたか。」
>>名前や名前と住所・電話番号等の組み合わせ?
>>そういうものがプライマリキーとなりえます。

私も最初そう思ってましたので入力するコード番号+入力日付を主キー
として作成してたのですが、コード番号、入力日付はやはり人が入力する
ので、のちのち入力ミス等があった場合、コード番号が修正され
そうなると主キーとコード番号の関連性がなくなり主キーの変更が
起こってしまうと思ったので、まったく関係ない番号をとろうと思ったのです。
ご指摘有難うございます。
0748デフォルトの名無しさんNGNG
>>747
> コード番号、入力日付はやはり人が入力するので
業務アプリを設計するならここを改善しようよ(^^;
0749デフォルトの名無しさんNGNG
>>735
まず業務分析からはじめよう。
コンピュータに向かうのはその後だよ。

コードの採番変更が各自自由に出来るということは、コードの同じ伝票が
複数存在しうるということ?そして、誰もそれを知ることも無く管理もされて
ないの?
それはDB以前に業務としてかなり深刻な問題だよ。
ちなみにプライマリキーは更新可能ですよ。
更新しようとする値が重複していないかのチェックはDBでしてくれるのだから
コードが最適だと思うけど。
現在はどういう基準でコード振ってるの?
0750735NGNG
>>749さん
コードは1年間は絶対同じものがこないんです
コードの採番変更が自由にできるというのではなく
コードは伝票ごと既に決まっているのですが、そのコードを伝票から
DBに入力する際、間違って入力してしまい、その後入力ミス
を修正するときに、最初に誤って登録したコードから生成された
主キーだと、修正したコードとの関連がなくなるのでは?
と思ったのです。

入力ミスしたコードを修正する際に主キーも修正すれば、
と最初は思っていたのですが、736さんから主キーは変更しない
と教えていただいたので、まったく関係ないユニークなものに
しようと思ってるのですが、、
0751デフォルトの名無しさんNGNG
>>750
(´-`).oO(伝票にバーコードを印刷しておけばいいのに)
0752デフォルトの名無しさんNGNG
>>751
バーコードリーダをシステムに組み込むのかえ?
高くなりそうだけどいかほどでできるん?
0753デフォルトの名無しさんNGNG
>>750
もう一歩踏み込もうや。
伝票ありきで、それをDBに突っ込むんではなくて
DBで採番した伝票を作成するようにはできんかね?
0754デフォルトの名無しさんNGNG
>>753に同意。
伝票発行はシステム化しないの?
0755デフォルトの名無しさんNGNG
>752
バーコードリーダなら1万円ほどから揃ってますよ。
業務で使うなら耐久性も考えてもう少し上のグレードが欲しいところですが。
0756デフォルトの名無しさんNGNG
おまいら、客先業務を勝手に定義すな
0757デフォルトの名無しさんNGNG
>>756
いや、場合によってはそれもありだが。
0758デフォルトの名無しさんNGNG
>>757
>それもありだが
1)より良いものを提案する場合
2)実現できないから妥協する場合
この話の流れでは後者のにおいがぷんぷん。
>>756の意見は基本姿勢として当然持つべき考え方。
0759735NGNG
なんか私の話にいろいろ意見していただき有難うございます。
バーコード化とか私は思いもしなかった発想が聞けて、実現できるかは
置いといて良かったです。

今回DBを作成することになったのは、私自身の仕事がらみではなく、
知り合いが伝票管理をしていて、客先から送られてくる伝票を
バインダでとじ、何かあるたびにそれを開いて目で探してるので
どうにかならないか?ということで作成することになったのです。

それまでDBを作成したことがなく、(本職はPGではありません)、覚えながら
の作業になっており、大掛かりなものでもなく、その知人の個人管理
でしか使用しないようなものです。なので、良い案なのですが、
バーコードとかはちょっと無理そうな話で、申し訳ないです。

今日、カウンタ型を試してみました。が、どうもParadoxのカウンタ型は
トランザクション中にエラーがあった場合カウンタが戻らず
新しいカウンタがつけられる?などの不具合があるということを
Webで知りまして、それとカウンタ型にINSERT命令が使えないと
Delphiにいわれたこともありカウンタ型を使用するのは諦めました

それで主キー作成の為の連番作成方法なのですが、最初に書いたように
ダミークエリーにMax(CodeNo)で最大値を求めて+1する方法しか
思いつかず、今日はそのやり方で進めてみましたが、>>739さんが
おっしゃるとおり番号を知るためだけにクエリーを使うのも駄目そうだし、
いずれリストが大きくなったとき時間がかかったりしそうで、
どうしたものか考えてます。
0760デフォルトの名無しさんNGNG
>>759
カウンタ型(シリアル型、オートナンバー型)のINSERT文は
id dataとあるなら
INSERT INTO db(data) VALUES('oh,yes...')で出来るような気がする・・・

てかACCESSならそうだし
0761デフォルトの名無しさんNGNG
>>759
本当に「連」番である必要があるの?そうでなければ単純にシーケンスを使えば
良い話だが。

で、もし本当に必要あるのなら、採番処理の常套で、特定のテーブルで
次発行コードを管理するという方法がよく使われる。
コードを発行するトランザクションは最初にそのテーブルをロックして、
処理が成功したら+1更新する。uniquenessをDBMSが保証してくれる
わけじゃないから、めんどくさいけどね。
0762デフォルトの名無しさんNGNG
>>735
カウンタ型のINSERTは>>760の通り。
客先から送られてる伝票ならすでに伝票番号はついてるんじゃないの?
あと、何故抜けのない連番が必要なの?教えて。
0763デフォルトの名無しさんNGNG
>>762
伝票番号の件は>>750に書いてあるのでは?
あと、抜けのない連番が必要とはどこにも書いてないような。
必ずしも連番にはならないことをWebで発見したってだけじゃないの?
0764デフォルトの名無しさんNGNG
>>763
>>738の文面からは「連番がほしい」と受け取れる。
>>759を読んでも「諦めた」理由に「カウンタが戻らない」ことをあげている。
(メインの理由は「INSERTができない」だが)
やっぱり「連番がほしい」と受け取れる。
0765735NGNG
こんばんは
なんか、皆さんを混乱させてしまったようで、申し訳ないです。
伝えたいことが文章にできなく、ご迷惑おかけします。

>>762,764さん
特に抜けのない連番である必要なんてないんです。
最初は連番にしていて、そのレコードが削除されたとき、主キーが
歯抜けになり、感じ的になんとなく嫌だなと思っただけでして、、

また736さんが書かれた”悩むくらいなら連番”というが
あったので連番で行こうと思っただけなんです。

最初は伝票コード+日付でいってたのですが、登録する際の入力ミス
→訂正で主キーとの関連がなくなり、そのとき主キーも変更しよう
と思ったのですが、これもなんとなく、まずそうな感じがして
735で主キーの変更〜を質問させてもらったのです。
その後の736さんの書き込みの”主キーは編集も更新もしない ”で
DB登録時の入力ミスの恐れがある以上伝票コード+日付を
主キーとするのはまずいと思ったのです。

でカウンタ型を諦めた理由なのですが
ttp://www.users.gr.jp/ml/archive/delphi/47178.aspで
Paradoxにおけるカウンタ型の不具合が記載されていたからです。
アドレス書くのはまずいかと思ったのですが、文章で書けるほど
理解してないので、本当にすみませんがURL記載させてもらいます。

0766デフォルトの名無しさんNGNG
>>765
Delphiでの開発ならFirebirdへの移行も検討してみるといいかもね〜
0767U ◆CZtFsGiu0c NGNG
>>765
それだけじゃ不具合かどうかもわからない。Paradoxのカウンタ型ってのがどんな
仕様か知らないけど、連番生成用の仕組みは普通インクリメントされていくだけ
で空番を使う事はしないし、トランザクションをロールバックしてもインクリメントされて
しまう場合もある。それがいやなら自分でなんらかの連番取得用の仕組みを作る
必要があるけど、その程度の用途ならおすすめしない。
0768デフォルトの名無しさんNGNG
>>767
でも、deleteしたものをrollbackしただけで値が変わってしまうのが
不具合じゃなくて仕様だったらすごくやだなぁ。
0769デフォルトの名無しさんNGNG
>>768
Paradoxは所詮デスクトップDB
トランザクションを気にするのならまともなRDBを使うべき
0770デフォルトの名無しさんNGNG
>>769
前から思ってたけど、DBMSにあるまじき名前だよね。
0771U ◆CZtFsGiu0c NGNG
>>768
記事を読むと、「レコードを削除して空いた番号を使ってくれない、任意の値も
設定できないので使いづらい」という意味のようですが。

普通そういうもんでしょう。それだけ見ると不具合ではないと思います。
0772デフォルトの名無しさんNGNG
>>771
DELETE後のROLLBACKでプライマリキーが更新されるのは不
具合ではないですか?
0773デフォルトの名無しさんNGNG
>>772
DELETE を ROLLBACK して更新される?

なんか意味不明だな。
INSERT を ROLLBACK しても、振り出されたシーケンスが元に戻らない、
というのならわかるが・・・。
0774U ◆CZtFsGiu0c NGNG
>>772
その元の記事
ttp://www.users.gr.jp/ml/archive/delphi/47161.asp
を読みましたが、結局なんだかわからないですね。
ttp://www.users.gr.jp/ml/archive/delphi/46941.asp
を読むとそもそも現象が再現されないらしいし。

不具合の存在からして怪しいんじゃないか、と思うんですが。
0775デフォルトの名無しさんNGNG
>>774
んにゃ、>>765が書いているのは
ttp://www.users.gr.jp/ml/archive/delphi/47178.asp
だよ。

真偽のほどは知らんけど、その2つの記事で取り上げられて
いる問題とは別物。
0776デフォルトの名無しさんNGNG
>>766が言ってるとおり、
BCBもしくはDELの場合Firebird+IBX(IBO)が最強だと思うけど。
既存のParadoxやACCESS+JETで作られてるものは、すべて乗り換え
るべきとまで思ってるけど。
0777デフォルトの名無しさんNGNG
>>776
「何故」DelphiならFirebirdが最強なのか。
「何故」ParadoxやAccess+JETではダメなのか。

そこを説明しないとただの最強厨だよ。
0778デフォルトの名無しさんNGNG
>>777
ん? 現に最強だよ。
0779デフォルトの名無しさんNGNG
>>776,778
IBXはFirebird非対応だよ。
IBOは日本語の情報皆無だよ。
Firebirdはマニュアルないよ。Interbase6のマニュアルを流用するしかないよ。
まだ完全なODBCドライバもOLE DB Providerもないよ。

Interbaseならまだしも、FirebirdはDelphi使ってるからと言って無条件に
薦められる物ではないよ。
0780デフォルトの名無しさんNGNG
>>777
ParadoxやJetがなぜだめなのか解説しないとわからないか?

>>779
どういう使い方をするとFB1.0+IBXで不具合が出るのか教えて
もらえますか?
英語は読めませんか?
0781デフォルトの名無しさんNGNG
>>780
ParadoxやJETなんて使った事無いから知らないよ。

FirebirdにIBX使って不具合が出るかどうかなんて知らないよ。
不具合の有無は関係ないよ、IBXはFirebird非対応で今後対応することもないと
作者が明言している事が全てだよ。

英語が読めない人もいるよ。
自分もすらすらとは読めないから翻訳ソフト併用でがんがってるよ。
それに、英語も含めてちゃんとしたマニュアルが存在しないことは事実だよ。
0782デフォルトの名無しさんNGNG
ごめん、本職だと思いこんでたから聞いただけ。
0783デフォルトの名無しさんNGNG
便乗なのですが
1トランザクション開始
2一つ目のテーブルにカウンタ型でレコード追加
3二つ目のテーブルに1で追加したレコードのカウンタ番号を使用しレコード追加
4トランザクション終了

で2で自動振り当てされたカウンタ番号は3で取得するにはどうすればいいの?
0784デフォルトの名無しさんNGNG
>>783
せっかくテーブル分けてるんだから
UPDATE TBL SET ID = ID + 1
ってやって常に1レコードだけにしとけよ。
てゆーか2つ目のテーブルのカラムをカウンタ型にしろよ。
で、質問の答えだけどSELECTで普通にとれるけどINSERT+副選択つかえよ。
0785デフォルトの名無しさんNGNG
DBMS側で生成したカウンタ型なら、MAXじゃだめ?
0786デフォルトの名無しさんNGNG
いや、3の状態だと一つ目のテーブルのコミットが終わってないから
SELECTは使えないのでは?
一つ目のカウンタを主キーで二つ目のテーブルとリンクさせたいんだが
0787784NGNG
>>786
同一トランザクションでしょ?
>SELECTは使えないのでは?
憶測?試した?
0788デフォルトの名無しさんNGNG
MAXで取得するならSERIALIZABLEが必要だと思うなぁ。
カウンタ型なんてものを使わずに、素直にSEQUENCEを
使ったほうがすっきりすると思うよ。
0789デフォルトの名無しさんNGNG
まずDBMSを書けよヴォケ
0790デフォルトの名無しさんNGNG
>>788
SEQUENCEって使えないDBMSもあるでしょ。
カウンタ型も然り。

つーか、カウンタ型とSEQUENCEを両方実装してる
DBMSってどんな奴がありますか?
0791デフォルトの名無しさんNGNG
>>790
カウンタ型やオートナンバーの類はともかく、シーケンスはたいがいの
DBMSにあったと思ったが。まぁ俺もOracleとDB2とSybaseとPostgres
しか使っていないんで、Paradoxとかでどうなのかは知らないが。
0792デフォルトの名無しさんNGNG
Paradoxの比較対象といえた(過去形、Paradoxの方がね)のはAccess
まともなRDBと同等のことができると思うのは期待しすぎというもの

某自身もはやParadoxでの開発は推薦していない
(でもローカルで使うと案外便利なのでOracleあたりと併用する手はある)
0793U ◆CZtFsGiu0c NGNG
>>774
>真偽のほどは知らんけど、その2つの記事で取り上げられて
いる問題とは別物。

まあそれはそうなんですが、そのスレッドの元々の話題は先の二つの記事でしょ?
で、「ありうるかもしれない」l根拠がその記事の、

>なにせ Paradox ではトランザクション内で削除されたレコードを Rollbackした
>としても、元のカウンタ値には戻りません (新たな値になってしまいました。す
>っごく不便です)。

これでしょ? これ意味わかりますか? 不具合だとするとどういう不具合だと思います?
私は元々不具合なんてなかったんじゃないかと思うんですが。

#というか、735さんはどう思っているのだろう
0794デフォルトの名無しさんNGNG
>>793
そりゃどう見ても不具合だよ。(某が仕様だって言えば仕様なんだろうけど)
ロールバックの意味分かってるのかえ?
0795デフォルトの名無しさんNGNG
>>794
どこら辺が不具合なの?
DELETE を ROLLBACK って言ってるが、
そもそも DELETE ならシーケンスが進むことはあり得ないんじゃないか?

私は postgres のシーケンス型・シリアル型しか知らないし、
pradox のカウンタ型がどういう機能と使用上の制限を持つかをわからないので、
何ともいえないけど・・・。
0796デフォルトの名無しさんNGNG
DBアプリ?
ドラゴンボールのゲームですか?
発売はいつですか?
ハードは何ですか?
0797デフォルトの名無しさんNGNG
>>795
> そもそも DELETE ならシーケンスが進むことはあり得ないんじゃないか?

進むはずのないカウンタ値が進んじゃうって事じゃん。
不具合でしょ?
0798デフォルトの名無しさんNGNG
>>797
INSERT じゃなくて、DELETE 発行したときも シーケンスが進むという話か。
じゃあ、ROLLBACK の有無は関係ないの?
0799デフォルトの名無しさんNGNG
>>798
わかんない人だなぁ。
ロールバックすると削除されたレコードは復活するけどカウンタ値のフィールド
は以前の値じゃなく進んじゃってるって事じゃんか。
0800U ◆CZtFsGiu0c NGNG
>>799
そういうことか…それは想像の範囲外でした:-)
それじゃACID属性も満たしていないことになりますね。間違っても主キーには
使えないですね。

で、これほんとうなんでしょうか…ちょっと信じられないんですが。
# Paradoxを使うことはないと思うので、単なる興味です
0801798NGNG
>>799
やっとわかったよ。ありがと。

>>800
ホントなら不具合以外の何者でもないな。
0802デフォルトの名無しさんNGNG
Paradoxのカウンタ型は主要なテーブルに直接使うのではなく
固有ID生成専用のテーブルに使うのがいいのかな
(主要テーブルへInsertするたびにID生成テーブルへInsertし
 そのIDを使用したらすぐに削除してしまうとか)
これなら主要テーブルでDeleteをRollbackしても問題ないはず
0803633NGNG
すいません、質問させて下さい。

クライアントにAccess2000、鯖側にSQLServer7.0でシステムを組んでいるんですが、
クライアントから複数のテーブルを参照するクエリを組んだりすると、
ODBCでテーブルをリンクしているものだからコネクションの上限に
すぐ達してしまうようなんです。

で、コネクションの上限を増やしたいのですが、これは
どこのメニューから行えばよいのでしょうか?
それともメニューでは無く、インストール時に出るあの接続アカウントの和を設定する部分でしか
設定できないのでしょうか…(ライセンスなんちゃらの部分)。

大雑把な質問ですが、ご教授頂ければ幸いです。
0804633NGNG
すんませんageます。
0805633NGNG
文章を変えて、再度質問させて頂きます。
意味不明だった…。

SQL Serverのインストール時に「クライアント アクセス ライセンス モード」において
「同時使用ユーザ数」を「5」にして選択したとします。
で、この設定で使ってみて後から足りなかったとなった場合、インストール後も
追加可能なのかどうか?と言う事なのですが…どうでしょう。
もしくは新しいユーザ数で再インストールするしかないのでしょうか?
0806デフォルトの名無しさんNGNG
大人の出逢いから ピュアな出逢いまで・・・。
素敵な お相手が 貴方を待っています!
もちろん 女性は完全無料です!
http://www.sweet.st
0807デフォルトの名無しさんNGNG
いまどきODBC?
いまどきAccess?
0808デフォルトの名無しさんNGNG
>いまどき
( ´,_ゝ`)プッ
0809デフォルトの名無しさんNGNG
自動連番型は扱い難いよね。
メンテの時にテーブルを再作成して何気なく放り込んだりすると
カウントアップされてしまう。 これが主キーだと参照がはずれる。

と、3日まえにやらかしたミスを自慢げに語ってみるテスト。
モウレンバンツカワネー プンプン!
0810デフォルトの名無しさんNGNG
>>805
何万人でも追加可能です。コンパネのランセンスマネージャ使います。
ただしライセンスは購入するように!
0811デフォルトの名無しさんNGNG
無計画に何気なくテーブルの再作成をしたりする業者には
二度と発注しないからそのままでもいいよ
0812デフォルトの名無しさんNGNG
とりあえず、ノウハウをまとめた書籍とかosiete
0813デフォルトの名無しさんNGNG
oioi
0814山崎渉NGNG
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
0815デフォルトの名無しさんNGNG
DB設計できるようになりたいんだけど、なかなか実務で
やらせてもらえる機会がないので、ちっとも身に付かない。
独学で身につけた人っている?
0816川 ・8・川NGNG
実務でやらせてもらえる機会がある人でないと
(DB設計を身に付けるのは) 難しい
0817デフォルトの名無しさんNGNG
>>815
とりあえず身の回りにある業務を自分でモデリングしてみ。
モデリング技法は本が出てるから研究してください。
0818デフォルトの名無しさんNGNG
「業務別データベース設計のためのデータモデリング入門」
「生産管理・原価管理システムのためのデータモデリング」
「実践的データモデリング入門」

このあたりの本はどうなんだろね。データモデリングって奥が深そう。
0819デフォルトの名無しさんNGNG
プログラムはリファクタリングできても、DBはリファクタリングできないからなあ。
DBの設計が糞な時は、ビューとプログラムで吸収するしかないな。
OODB使えば変わってくるのだろうか。
0820デフォルトの名無しさんNGNG
age
0821貧乏脱出!これであなたはお金持ちNGNG
普通に働いてお金持ちになれるのは全体の1%のみって本当!?
本当にお金持ちになるにはやはり「副収入」が必要!
一日30分 おうちでコピペ、コピペ!
嘘だと思うんならランキング見てみてくださいよ↓↓
(直リン不可)
http://www.adultshoping.com/addclickport.cgi?pid=1053353765(直リン不可)

/// /// /// /// ///
0822デフォルトの名無しさんNGNG
保守
0823デフォルトの名無しさんNGNG
ノウハウを授けてください。

追加・更新・検索を毎日のように行うシステム。
普段使う検索範囲は過去2ヶ月分ぐらいが多い。
更新した場合その履歴を管理したい。
今後の分析に使うのでデータは残しておく。
テーブルの行数が1ヶ月に数万件程度増える。

こういったシステムだと
数年後には検索スピードが増大することになると思います。

皆さんはこういったシステムをどうやって設計しますか?
(ロードバランサやハード系の変更以外で)

2ヵ月分のテーブルと、それ以外のテーブルの二つに分ける?
(過去2ヵ月以外に検索範囲が及ぶ場合UNION ALLする)
2ヶ月分のテーブルと、全件のテーブルの二つに分ける?
(定刻起動で別テーブルのデータ削除)
数ヶ月ごとに別テーブルにする?
0824デフォルトの名無しさんNGNG
>>823
過去2ヶ月以降のデータの粒度は落としちゃダメなのかよ?
0825デフォルトの名無しさんNGNG
>>824
粒度を落すとは具体的にどういう処理をするということですか?

[間違い]
(定刻起動で別テーブルのデータ削除)
↓
(定刻起動で2ヶ月分テーブルの範囲外データ削除)
0826デフォルトの名無しさんNGNG
824ではないが。。。。

サマリーデータを作ってしまう
or
データを間引く(毎分のデータを10分ごとのデータのみ残すなど)

つーことだと思われる。
0827デフォルトの名無しさんNGNG
>>824
なるほどそんな方法もあるんですね。

ところで検索用の別テーブルを持つって方法は一般的ですか?
0828デフォルトの名無しさんNGNG
>>826
サマリーデータって何ですか?
0829827NGNG
失礼しました。

間違い
>>824
↓
>>826

>>828
集計されたデータですね。
http://www.atmarkit.co.jp/aig/04biz/summarydata.html
0830山崎 渉NGNG

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
0831デフォルトの名無しさんNGNG
T字型ER技法の作者さまのセミナー(無料)を受けたのですが、
「LIKE を使って 部分一致で検索かけても秒速」とか言ってました。

先頭部分だけなら、該当カラムにインデックスを張ればいいのですが、
先頭以外の部分一致だと、どうやって「秒速」が実現できるか分かりません。

どーしてると思います? すみません、どなたか教えてください。
0832デフォルトの名無しさんNGNG
>>31
わかちかき?・・・んなあほな
0833デフォルトの名無しさんNGNG
>>831
秒速何メートル?
0834_NGNG
http://homepage.mac.com/hiroyuki44/
0835デフォルトの名無しさんNGNG
>>831

SISがフレームワークとセットで押してる手法だっけ?
実際のとこどんなもんなんですか?
0836デフォルトの名無しさんNGNG
>835

>SISがフレームワークとセットで押してる手法だっけ?
そうですね、楽々フレームワークだったかな。

>実際のとこどんなもんなんですか?
いやぁ、書籍を中心に勉強しているのですが、
よく分からないのですよ。

本当の所は、セミナーやコンサルを受けたりしないと
わからないのかなぁという気がします。
0837デフォルトの名無しさんNGNG
>>831
それは前方一致(または後方一致)の場合のみ。
本を読んでも書いてある。Indexの特性を活かした場合のみ
というのはT字形に限らず、RDBなら当然。
%キーワード%のような曖昧検索では遅くなる。
ちなみにT字形は漏れも10年ほどやってきてるが
実装周りははっきり言って内容が古いと思われ。
0838デフォルトの名無しさんNGNG
ありがとうございます。
>それは前方一致(または後方一致)の場合のみ。
ここでいう後方一致とは、具体的には??
 %キーワード
なるパターンですか?
これでもIndexって使われるんですか?

>ちなみにT字形は漏れも10年ほどやってきてるが
>実装周りははっきり言って内容が古いと思われ。
そうですか。
私は、書籍「T字形ERデータベース設計技法」と「論理データベース論考」を読み始めたところです。
リソースとイベントなる考え方は、役に立ったかなぁ・・・。

0839デフォルトの名無しさんNGNG
>>838

インデックスが使われるかどうかは最初っから決まっていて,
LIKE演算子なら先頭にワイルドカードを指定している検索の場合は使われない。
言い換えると,LIKE演算子の場合は,前方一致検索のみインデックスが使用される。
WHERE NAME LIKE 'hoge%'ならインデックスは使われる。'%hoge'なら使われない。

0840デフォルトの名無しさんNGNG
>>837

後方一致でもインデックスが使われるRDBMSってある?
0841デフォルトの名無しさんNGNG
>>840
聞いたことがない。
0842デフォルトの名無しさんNGNG
>>841
勉強が足りません。
0843デフォルトの名無しさんNGNG
>>842
どっかで聞いたことはあるが、詳しいことは忘れたんで
知ってるなら俺に教えてくれ。
0844_NGNG
http://homepage.mac.com/hiroyuki44/jaz09.html
0845デフォルトの名無しさんNGNG
俺にも・・・。
0846デフォルトの名無しさんNGNG
もしかして、Oracleの逆キー索引の勘違い?
0847デフォルトの名無しさんNGNG
>>842
教えて。それはすごく革命的かと。
0848デフォルトの名無しさんNGNG
>>847
MySQL
0849デフォルトの名無しさんNGNG
推薦図書スレに書いたらスルーされてしまったのでこちらで。
C言語関連の書籍に話題が集中してたからか。

---

データベースに関する書籍を漁っているのですが、開発を始めるにあたってのRDBMSの選択から
仕様書の書き方、開発方法の選定、スケジュール組み、
更には運用方法、障害からの復旧、データ移行…など、
「自社で開発し、運用する」システムに特化した内容の書籍などございますでしょうか?
開発要員が私一人なので、何か参考になる書籍があればと思っているのですが…。

Oracle、SQL Serverなどの例が載っていればなお良いです。
どなたかご存知でいらっしゃいましたらお教え下さい。
0850デフォルトの名無しさんNGNG
>849
>運用方法、障害からの復旧、データ移行…
であれば、そのRDBMSのヘルプ及び専門書籍でカバーできると思う。

が、
>仕様書の書き方、開発方法の選定、スケジュール組み
になるとものすごく広い範囲の話になるので、全てをカバーできるような書籍は無いと思われ。
ノウハウとして蓄積されて中々表に出てくるような物ではないから。
0851デフォルトの名無しさんNGNG
そのノウハウを出してほしいな。
0852デフォルトの名無しさんNGNG
設計に関する事。
準備中が多いけど気にスンナ
ttp://www.st.rim.or.jp/~k-kazuma/DN/DN.html
0853849NGNG
>>850さん
確かに運用に関する事であれば、それぞれのRDBMSに関する書籍で大丈夫ですね。
どうしても1冊で完結させようとしていました。

>>ノウハウとして蓄積されて中々表に出てくるような物ではないから。
確かにその通りで。>>851さんの意見と被るのですが、
それらのいわゆる「DB関連開発者のノウハウ」が載っているような
書籍があればと思っていたんですが、流石に無いですかね。
パブリックなものでなく、どこかの誰かが「俺はこうして作っている」みたいな感じの
内容であれば良いのですが…

>>852さん
リンクどもです。参考にしてみたいと思います。
これはなんだか本にして読みたい感じであります。
0854デフォルトの名無しさんNGNG
>>852
しかし見にくいページだな
0855山崎 渉NGNG
(^^)
0856デフォルトの名無しさんNGNG
■Aというビュー
−−−−−−−−−−−−−
| ID | 状態 | 子 |
−−−−−−−−−−−−−
| 10 | 元気 | A |
−−−−−−−−−−−−−
| 20 | 病気 | B |
−−−−−−−−−−−−−
| 10 | 元気 | C |
−−−−−−−−−−−−−

■Bというビュー
−−−−−−−−−−−−−
| ID | 親 | 所在 |
−−−−−−−−−−−−−
| 10 | A' | 東京 |
−−−−−−−−−−−−−
| 20 | B' | 埼玉 |
−−−−−−−−−−−−−
から
−−−−−−−−−−−−−−−−−−−−−−−−−−−
| ID | 親 | 所在 | A   | B | C   |
−−−−−−−−−−−−−−−−−−−−−−−−−−−
| 10 | A' | 東京 | 元気 |   | 元気 |
−−−−−−−−−−−−−−−−−−−−−−−−−−−
| 20 | B' | 埼玉 |    |病気 |    |
−−−−−−−−−−−−−−−−−−−−−−−−−−−
を作りたいんだが、あと一歩のところでできん。親A'の行が2行になって子の状態がわかれちゃうんよね。
どうすれば良い?
0857デフォルトの名無しさんNGNG
項目の数が動的なのか
SQLではムリポ

なんつーかテーブル設計が・・・
0858デフォルトの名無しさんNGNG
>857
回答ありがとうございます。
私が勉強不足なのかなぁ・・・。そこまでが限界か?
あとはビューから結果を持ってきて言語レベルで編集するしかないのか・・・。はぁ・・・。
0859デフォルトの名無しさんNGNG
856じゃないのですが、
項目の数が固定の場合は可能なんでしょうか?
後学の為にご教授ください。
0860856NGNG
すいません、補足。
A、B、Cという列は可変ではなく固定です。
外部結合でやってたのですが、列が増えたら処理が遅く使い物にならなくなったので
列別名とかDECODEとか使って思考錯誤いるんですが、上記まで行って手詰まりになったので
ここで質問しました。
0861デフォルトの名無しさんNGNG
>>856
できたところまででいいのでSQLをしめしてください。
0862デフォルトの名無しさんNGNG
sqlじゃ
select A.ID, B.親, B.所在, A.状態, A.子 from A, B where A.ID = B.ID;
までじゃねーの?

>>860
固定になるわけがないと思うのだが
0863856NGNG
おはようございます。

>>861
今日解決できなかったら示しますね。

>>862
上記例だとA、B、Cの3項目固定なんですよ。A、B、Cは必ず固定で表示します。
誰も病気でも元気でもなければ何も入らないです。

親、子っていう例が悪かったかな?
親をパソコン、子をパソコンのパーツ(CPU、メモリ、CDROM)としたら、
Aのビューは「パソコンのID、パーツの状態、そのパーツは何か」を示し、
Bのビューは「パソコンのID、パソコン名、パソコンの製作会社」を示していて、
AとBをまとめて見やすくしたいというのが目的ですね。

いづれにせよわかりにくい説明で申し訳ないです。
0864デフォルトの名無しさんNGNG
>>860
必要な結果を得る方法がわからないのか、できたけど遅くて
使い物にならなかったのか、どっちなのかはっきりさせよう。
0865856NGNG
こんばんは。
本日頑張って完成させました。
ちゃんと検索処理も充分な早さでできました。
外部結合でやっていた時とは比べ物にならないくらい速くなりました。
いろいろ意見をして頂きありがとうございました。
というわけで下記の式でA、B2つのビューから欲しいビューを作りました。
なんか希望の物できたけどMAXとかはせこい気がするなぁ・・・。
まぁ、仕事速く進んだからいいか。

>>864さん
あえて表現するなら
「できたけど遅くて使い物にならなかったので、新しい方法を考えていたけどなかなか必要な結果が得られなかった」ですかね。
0866856NGNG

CREATE 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.所在;
0867856NGNG
あれ・・・?
式を投稿したのにはじかれてる?
明日載せてみますね・・・。
0868856NGNG
のってた!(汗
連カキコすいません。
0869デフォルトの名無しさんNGNG
オブジェクト指向で言うデザインパターンのDOA版みたいのって、
書籍とかサイトとかないですか?
同一業種でも、パターン化は難しいのだろうか?
でもベテラン設計者って、あるていどパターン化していると思うのだが・・・
メシの種だから、なかなか公開されないモノ?
0870デフォルトの名無しさんNGNG
どっかそういう感じのページ作ってオープンに作るしかないな。
0871デフォルトの名無しさんNGNG
>>869
なかなか公開されないんじゃない?
すくなくとも、複雑になるようなケースではそれで客に信用してもらうことになるわけだし。
0872山崎 渉NGNG
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
0873デフォルトの名無しさんNGNG
すみません、質問させてください。

知り合いの事業会社が自社で基幹系のシステムを作ることになりました。
販売管理等でユーザー数は100、同時アクセス数は20程度。社内に専用線による
ネットワークは整備済。開発要員は自社でトレーニングして充当するとのことです。
トランザクション量が多めなので、サーバーとRDBはいいものを、ということでUNIX
サーバーにOracleというところまでは仮決まりですがまだ未定。

問題は、アプリの開発ツールをどうするかということなんですが、社内で意見が割れてます。
一人はC/C++/C#のRADツール、もう一人はJAVAのRADツール、あと、Delphiもいます。
決定の最優先事項は、

・RDBとの親和性の高さ(ODBCじゃなくてネイティブで接続可なこと)

です。個人的にはDelphiしかないような気がしてるんですが、ちょっと他の詳しい人の意見も
伺いたく質問させていただきました。みなさんだったらこういう状況で、どのツールを選びますか?
理由も添えて教えていただけないでしょうか。よろしくです。
0874デフォルトの名無しさんNGNG
>>873
>C/C++/C#のRADツール
ほう、俺の知らない間に世の中は進歩してるなぁ。ちなみに製品名はなんての?
0875デフォルトの名無しさんNGNG
>>873
ネイティブの意味がわからんな。
ローカルのDLL触る気か?oo4oにしたいってことか?

転送データ量や、RDBの負荷はちゃんと見積もったのか?
見積もったなら、アーキテクチャの設計に頭使った
ほうがいいんじゃないのか?戦略ミスを戦術でフォローしよう
なんてトーシロな考えはやめろよ。だいたいトーシロがoraの
DLL触ってどうしようっていうんだ?
0876デフォルトの名無しさんNGNG
>>873
アプリの詳細くらい書けよ。
Windowsクライアントなのか、Webなのか、サーバーサービスなのか。サーバーOSも。
多分Windowsクライアントなシステムだろうから、オレの推薦はC#。
あと、ORACLE使うならRDBとの親和性なんてどこも同じ。
トランザクションが多いってどれくらいかわからんし、ネイティブで接続って意味もわからん。
アプリとDB間のインタフェースが簡潔なほうがいいというなら.NET+SQLSERVERだと思うけど。
親和性も問題なし。
それからDelphiはどう考えてもなしだろw
そもそもそんなに意見が分かれてる状況で、どれかに絞って開発できるスキルあるのか?w





0877U ◆CZtFsGiu0c NGNG
>>873
>決定の最優先事項は、
・RDBとの親和性の高さ(ODBCじゃなくてネイティブで接続可なこと)

少なくともこれだけの条件から、

>個人的にはDelphiしかないような気がしてるんですが、ちょっと他の詳しい人の意見も
伺いたく質問させていただきました。

この結論が出ることはないように思えますが。他に条件はないんですか?
ODBC使わずに接続できる、というのならC/C++/C#/Javaどれでもいいと思います。

おそらくクライアント/サーバ型のアプリケーションということは決まっているようなので、
・アプリケーションの配布方法
・データベース以外の制約
・その言語/ツールに習熟している開発者の数

など問題になってくると思うのですが。
0878デフォルトの名無しさんNGNG
Delphiも良いらしいよ。でもDBサポートのパッケージは結構高くなかったかな?
使ったこと無いからしらんが。

たしか、DBが更新されたらクライアントにイベントを送るとか言う特許使ってる
やつだよね。C#のデータセットクラスも、ホントはそれをつけたかったんだろうけど、
やっぱりついてないしな。DelphiはそもそもOracle向けで開発された言語だし
やっぱり良いのかもな。
0879デフォルトの名無しさんNGNG
C/C++ のRADなんてあるのか?
まぁ、C/C++/C# を全部同一視して提案しているような奴の意見を真に受けないことだ。

C# は重いからやめておけ。.NETは次期Windowでネイティブ実装されてから使うのが吉。

Java も重いけど、Windowsクライアントも unixサーバ上の夜間バッチ処理も
同じ言語でかけるというメリットはあるな。
あと、JWS によるアプリケーション配布、更新。

どーせ、クライアントのUIなんて大したもんじゃないんだろ?
開発要員は自社でトレーニングして充当するって言ってるくらいだし。
であれば、Delphi か VB6 でちょいちょいと開発してしまうのが吉。

まぁ、VB6 を提案する人間が社内にいない、C/C++/C# を同一視してる…
その程度の連中で開発したら、どう考えたってデスマーチだがな。
0880デフォルトの名無しさんNGNG
2階層のC/SならPowerBuilderが絶対おすすめ。
はっきり言ってバカにしてたけど、帳票なんかも含むばあいだと、
あれほど簡単にDBアプリを開発できるツールは無いと思う。
ただし、下手に作ると保守はたいへん。

0881デフォルトの名無しさんNGNG
2層クラサバならJavaはやめるべし。
重すぎて現場から文句でるだよ。
0882デフォルトの名無しさんNGNG
>>873
どれ利用しても要件は満たせるような気がするけど。
結局のところプロジェクトのメンバがどの言語に精通しているかによるかな。
C/SのRADだったらJavaはあんまり生産性がよくないからやめておいたほうがいいかもね。
0883デフォルトの名無しさんNGNG
>>881
「二層C/SならJavaやめろ」ってどういう意味?
単純に「GUIクライアントにはJavaやめろ」ということじゃなくて?

キミの書き方だと、C/SのS(サーバサイド)でもJavaが遅いようなニュアンスがあるし、
また、一層モデル(単一プロセスで全処理をこなすJavaアプリケーション)や
三層モデル(たとえばプレゼンテーション層にWebブラウザ+JavaApplet)の場合は
Javaでも遅くない、という意味に取れないこともない。

Javaの大きな問題点は、起動の遅さと、GUIの緩慢さ だね。
これは、GUIクライアントにとっては致命的な問題だ。
0884デフォルトの名無しさんNGNG
>>883
同意
0885デフォルトの名無しさんNGNG
DelphiにはOracle Expressという、ネイティブで接続できる
コンポーネントもある。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デフォルトの名無しさんNGNG
パッケージ=帯に短し襷に長し
0888デフォルトの名無しさんNGNG
それを言っちゃうと
フルオーダー=車輪の再開発
になるんじゃ。
販売管理で独自性出してどうする、と。
0889デフォルトの名無しさんNGNG
>販売管理で独自性出してどうする
販売を知らない奴の典型。まあ、再発明と再開発を混同してる時点で終わってるが…。
0890デフォルトの名無しさんNGNG
パッケージ否定派は皆そう言うわな。
ま、顧客自身が独自につくりたがるんだからしょうがないけど。
作り直しの効かない基幹システムをローカルルールで縛りまくって自分の
首締めてるユーザ、結構多いと思うんだけど。

「再開発」については、あえてそう言った。
0891デフォルトの名無しさんNGNG
>作り直しの効かない基幹システム
コボラーの発想。そんな脅しがいつまでも通用すると思ったら大間違い。

>ローカルルールで縛りまくって自分の首締めてるユーザ
システム屋の詭弁。ユーザーが自分の首を締めてるように見えて、実は
設計段階でローカルルールの取り入れ方を誤ってる。
0892デフォルトの名無しさんNGNG
わかったわかった。
「販売管理ごとき」などと書いたのは悪かったよ。
君が、他人の言葉尻捕まえて文句つけるのが得意なのも十分わかったから、
そろそろ本題に戻ろうよ。
0893デフォルトの名無しさんNGNG
>>892
いや、あの、書き方云々ではなくて、パッケージのお話をしてるんだが…。
0894デフォルトの名無しさんNGNG
>>893
逃げ出した奴に追い討ちかけんでもえぇやんw
0895デフォルトの名無しさんNGNG
つまり、DBアプリ開発の極意はとっとと逃げ出す事である。
0896デフォルトの名無しさんNGNG
>>895
それ正解
0897デフォルトの名無しさんNGNG
中小企業、いや個人商店程度ならパッケージでもいいのかもしれないけど、
中規模以上のユーザーではパッケージなんて使ってちゃだめだよ。
そもそも販売管理ってのは基幹業務なわけで、そこに特色を出せない企業は
生き残れないよ。(販売管理システムの良し悪しによって、エンドユーザーへの
サービスの質まで左右されるような時代になったからね。)

いまは多様化していて、販売管理の範疇であっても
業種特有のロジックがあれこれと必要になっている。
基幹系システムと情報系システムの境なんて今後どんどんなくなっていくんだから、
パッケージなんて使ってたら、企業の独自性が出せなくて死亡。
販売管理と言ったって、お金と物品の動きだけで済む時代じゃないよ。
0898デフォルトの名無しさんNGNG
>Win限定なら(前レスの情報よりクライアント環境はWin以外ないと思うが。)
>JavaにはSWTがある。

おまえ、SWT使ったことないだろ? Swingに比べればロードされるクラスが少ないけど、
それでも起動は非常に遅い。それと、独自描画を行わない SWT は Swing に比べて
高速だと思われているけど、必ずしもそうではない。
JNI に依存している SWT は、テーブル表示など JNIコールが多発する状況では
Swing よりも遅くなる。
0899デフォルトの名無しさんNGNG
>>898
がんばれよ
0900デフォルトの名無しさんNGNG
つっこみどころはそこじゃなくて
SWTがWin限定じゃないところじゃなかろうか
0901デフォルトの名無しさんNGNG
>>898
もっとがんばりましょう。
0902デフォルトの名無しさんNGNG
>>898
はいはい。他人の文章の抜粋はいいから勉強しろ。
0903デフォルトの名無しさんNGNG

あ〜だこ〜だと、ウンチク語る奴がまだいたのか・・・
Javaやってる奴にもいるんだよな・・・内部にアレ使ってるから処理が遅いの早いのとウダウダ・・
0904デフォルトの名無しさんNGNG
>>890
パッケージ使ったこと無いだろ。
使えばシステム屋がパッケージ薦めない理由や、少し目端の聞く顧客がフルオーダー
したがる理由がわかるよ。
0905デフォルトの名無しさんNGNG
>>900
書き方がひじょーに悪かった。
>(前レスの情報よりクライアント環境はWin以外ないと思うが。)
でも書いてあるように、クライント環境がWinだけでなく、Unix系でX使用等
複数のOSが混在していないということ。

それだと、SWTで使用した場合、複数のクラスモジュール
管理しなくてはいけないから(Javaの利点がなくなってしまう)ね。
(まぁ、クロスコンパイル可能な製品だと同じことがいえるけど。)

>>898
がんばれ(w
0906898NGNG
え? なに、みんな SWT でパフォーマンスに全然不満ないわけ?
おっかしいなー。
レス数が900を超えています。1000を超えると表示できなくなるよ。