データベース
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
NGNG0002デフォルトの名無しさん
NGNG何年か前に聞いたんだけど、最近のバージョンはどうです?
使ってる人いますか?
0003デフォルトの名無しさん
NGNGUNIX板にいいスレがあった。
0004デフォルトの名無しさん
NGNGWin9x で Access2000 使うと
立ち上げるだけでみるみるうちにリソースがなくなってフリーズする。
という現象に出会ったことがある。
何気にどうしようもない。
0005デフォルトの名無しさん
NGNG200MB〜400MB のMDBを一年以上使っているが、不安定ってことはないみたい。
社内100人以上が個々のPCに持って、ローカルで利用している。
0006デフォルトの名無しさん
NGNGAccessって使えますか?
(スタンドアロンでしか使えない?)
0007デフォルトの名無しさん
NGNGデータ格納部 => MSDE
Form & Report => Access
ってな感じが良さげ。
0008デフォルトの名無しさん
NGNGSQL構文使わないでテーブルにアクセスできるの?
なにやら簡単らしいが・・・・・・
0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNGサーバー側にMDBを置いて、クライアント側で起動したときにつなげにいけばいい。
クライアントはMDEのほうがでいいかもしれない。
>>8
アクセスはマイクロソフトが出してるオフィス製品のひとつ。
確かに、クエリーはSQLをGUIで作れるので便利。
ただ、結構癖が強い。集計関数が更新でつかえないとかあるよ。
クロス集計クエリーも便利だけど、SQLではつかえないし。
10人くらいでデータが数万くらいなら、これ以上のものはないと思う。
0011デフォルトの名無しさん
NGNG0012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNGMDB使ってC/S組むとパフォーマンスが凄く落ちない?
Jetエンジンでやってるからしょうがないんだけど。
2000ならMSDE使って、クライアントをMDEにすると便利。
プロジェクトってローカルクエリーがないから不便だよね。
アクセスのクエリー、集計関数に「先頭」「最後」が使えるのがいいよね。
SQLだとダイレクトには呼び出せないもん。
あれ、どういうSQL発行してんだろ。フェッチ使ってんのかなあ。
>>12
ORACLEって、クライアント作成用のデベロッパーがあるよ。
見た目はVBぽかった気がする。
0014デフォルトの名無しさん
NGNG0015デフォルトの名無しさん
NGNGライセンスフリーな環境としては何気に良さげ。
Access97とBorlandのBDE5.2は表面的に問題なさそう。
(いや、あるかもしれんが)
0016デフォルトの名無しさん
NGNGdbExpressのコンポーネントに頼りすぎたのがいけなかったのか
結局、生SQLで対処して事なきを得たが・・・
0017デフォルトの名無しさん
NGNGADO+MDB+VCでプログラム作っているけど、
1つのテーブルに連続でUPDATEするとロックでエラーになる〜。
データ比較しながら必要な項目に更新かけて、エラーがおこったら
まとめてキャンセルってやつなんだけど・・・。
トランザクション使えばキャンセルの方はなんとかなるけど、
ロックが・・・。
上手い方法教えてくださいな〜。
0018デフォルトの名無しさん
NGNG0019デフォルトの名無しさん
NGNG>1つのテーブルに連続でUPDATEするとロックでエラーになる〜。
具体的なエラーコードとエラーメッセージを引用すべし。
>トランザクション使えばキャンセルの方はなんとかなるけど、
>ロックが・・・。
ロックが、何ですか?
002017
NGNGそれかも知れないですねぇ。
でも、SQL−Server使用しているときに2Kロックは知ってましたけど、
MDBでも同じなんですかぁ・・・。
連続クエリーは不可なんでしょうか? (悩
>>19
エラーコードとメッセージですかぁ。
コードっていうか、メッセージは
「現在ロックされているので、更新できませんでした。」
ってやつです。
>ロックが、何ですか?
いや、↑のようなエラーになるって事です。
0021デフォルトの名無しさん
NGNGDAOは?
0022デフォルトの名無しさん
NGNG今、oracle+ColdFusionで開発してるのですが、
ローマ数字の混じった値(例えば"データ�U")をSelectしようとしたとき、
SQL*Plusでは抽出されるのに、ColdFusionのクエリーで抽出されないんです。
もし、同じような現象が出て解決できた方は教えていただけないでしょうか?
お願いします。
0023デフォルトの名無しさん
NGNG感覚はVBと同じ。
0024デフォルトの名無しさん
NGNG> 連続クエリーは不可なんでしょうか? (悩
んなわけない
0025デフォルトの名無しさん
NGNG0026デフォルトの名無しさん
NGNG運用しないんだし。発表の時のデモで触るくらい。
0027デフォルトの名無しさん
NGNG>運用しないんだし。発表の時のデモで触るくらい。
DB選定も課題の一つだろうが・・・ヴォケ
0028デフォルトの名無しさん
NGNG誰が?多分 >5 のことだと思うけど。
>5 よ。そんなでかいMDBを社内で100人がローカルに
使用している状況は良いのか?貴方が開発者なら設計
診なおした方が良いよ。
0029デフォルトの名無しさん
NGNG>卒業研究でwebアプリの開発
せっかくやるんならWEBサービス作ってみ。
今一番おもしろい分野だし将来性も期待できる。
ダカラAccessハヤメトケ
0030みちゅ ◆zzfy/JR2
NGNGデータベースにどれ使ってる?
http://pc.2ch.net/test/read.cgi/prog/1003005568/l50
0031デフォルトの名無しさん
NGNGfileコマンドってあるよね?/usr/share/magic見ると凄い量の
マジックナンバーがあるけど、どうしてあんなに一瞬で検索
できるの?
マジックナンバーってどんなファイルにもある訳じゃないのに
どうやって判断してるのか知りたいんだけど・・・
0032デフォルトの名無しさん
NGNG>>29
お薦め構成もあげたほうがいいんじゃない?
MySQL + Apache + PHP4なんてどうだろ。
OSがWindows、Unixどちらでも同じ構成で構築できるし。
あとPHP4をPerl or java(JSP?)に変えても良さげ。
0033デフォルトの名無しさん
NGNG>>29
環境整えるための予算がつかない場合は
IIS(PWS)+ASP+Accessも有りだと思うのだが駄目か?
0034デフォルトの名無しさん
NGNGやっぱ 3-tier モデル?
0036デフォルトの名無しさん
NGNGWindowsのライセンスは問題ない?
003726
NGNG自分ひとりしか居ないんで、出来ればaccessが良いです。。
学校のPCで使えるのは2〜4台です。3層は無理です。それ程意味も無いし。
IIS、ASPを触ったこと無い状態から始めてるので、他のメンバーに
SQL教えて、DBの使い方教えて〜ってやってると時間的に厳しいです。
自分のスキルはC、C++、java、VB、VC
DBはaccessが触ったことがある。oracleはチューニングとかは出来ない
けどテーブル作るくらいなら出来る。SQL、PL/SQLは使える。
サーバ関係は触ったこと無い。今ちょこちょこ触ってる段階。
C以外は込み入ったことやると怪しいです。動けば良いってレベルなら
なんとかなりますけど。
他のメンバーは3人居てC、VB、accessが使える程度です。
access以外は自分の方が知識があります。
ライセンス的に使えるのはwin98、ofiice2k、VS6。
win2k pro、oracleも使えるはず。oracleは怪しいかも。
MSDEはVS関連が無いと使えないですよね?この場合はOKですけど。
MSDEをあんま良く知らないんですけど、SQL serverのサブセットと
考えれば良いのですか?
0038デフォルトの名無しさん
NGNG>ライセンス的に使えるのはwin98、ofiice2k、VS6。
>win2k pro、oracleも使えるはず。oracleは怪しいかも。
>MSDEはVS関連が無いと使えないですよね?この場合はOKですけど。
>MSDEをあんま良く知らないんですけど、SQL serverのサブセットと
>考えれば良いのですか?
つーか、そういうことを調査するのも研究のうちだろーが。
結果じゃなくて、「調査すること」に意義がある。
0039デフォルトの名無しさん
NGNGふと思ったが、まさかWebアプリを「作る」のが目的だったりしないよね。
0040デフォルトの名無しさん
NGNGs/目的/研究目的/
0041デフォルトの名無しさん
NGNG>学校のPCで使えるのは2〜4台です。3層は無理です。それ程意味も無いし。
ぉぃぉぃ、n層と台数は関係ないぞ。
3層だから3台必要なんて思ってたりするのか?
0042デフォルトの名無しさん
NGNGftp://ftp.iij.ad.jp/pub/FreeBSD/branches/4.0-stable/src/contrib/file/
でも見てみたら。俺はどういう実装か知らんけど。
004331
NGNGcygwinのソース見てみました。どうやらリニアサーチっぽいです。
file-3.33/softmagic.c
今のマシンだとこんなに速いの??
0044デフォルトの名無しさん
NGNG2.shared_pool_sizeを50Mにする。
3.REDOログファイルを50Mにする。
4.もっと早くしたければRAID化する。
こんな感じでしょうか?
まだOracleの設定でパフォーマンスを上げる方法があれば教えてください。
0045デフォルトの名無しさん
NGNGなにかの罠?
とりあえずマジレスすると、そんな断片的な情報を集めるより、
パフォーマンスチューニングの本を買って読んだほうがいいよ。
0046デフォルトの名無しさん
NGNG0047デフォルトの名無しさん
NGNG誤爆でしょ。
マ板
http://pc.2ch.net/test/read.cgi/prog/1003005568/335
0048デフォルトの名無しさん
NGNG今「日付を入力すると、その月のカレンダーが出来上がる」という物を
作ろうと四苦八苦しています。
具体的には、日曜から土曜までを5行という一般的な形の
枠と曜日だけ書かれたカレンダーのテンプレートに、
その月の曜日に対応した日付がきれいに並ぶようにしたいと
考えています。
その方法がわかれば、その次の段階として考えている
「シフト表一発作成」ができそう、と思っています。
「その月の1日が何曜日か」を数字で返すところまでは出来たのですが、
そこからが全くお手上げになってしまいました。
日 月 火 水 木 金 土
↑ ↑ ↑
このカレンダーのどこに「1日」がくるのか、
そして「2日」や「15日」はどうやって導いたらいいのか、
スマートな方法ご存じの方、よろしく教えて頂けないでしょうか?
マック野郎でファイルメーカープロ5.5使ってます。
あんまり先進的な関数とかないと思うんですが、よろしくお願いします。
0049デフォルトの名無しさん
NGNG0050デフォルトの名無しさん
NGNG私にレスくださったのでしょうか?
そうだったら嬉しいです。
とりあえず今考えてるのはカレンダーの一行目の部分、
例えば今月なら
日 月 火 水 木 金 土
1 2 3
こんな感じのとこはifをいっぱい並べてなんとか
するくらいしか思いつかないのですが、
そういう風に組み立てると後で発展させるときにすごく
やっかいになりそうなんで、立ち止まってしまっています。
もっといい方法ないでしょうか?
0051>>48
NGNG0052デフォルトの名無しさん
NGNG48です。最終的には、カレンダー上にデータベースのデータが
どかんと乗る物をつくりたいのです。
1日から31日までタテに並んだカレンダーなら簡単なんですけど、
「ふつうのカレンダー」みたいなレイアウトの方が今回は
都合がいいので、それをどうにかして作れないものかな、
と思って質問させていただきました。
今のところ日付をなんとか並べることは出来るのですが、
どうしても無理矢理っぽい感じになってしまい、
データベース的な発展が望めそうにない構造なんです。
データベースのプロが作ったデータベースってホントに
スマートな作りになっているなあと感じるのですが、
いまわたしが作ってるものはホントにダッサダサだなあと
思うんです。
エクセルなんかと連動させて作った方が早いのかもしれないので
51さんのその気持ちはすごくまっとうだと思うんですが、
逆にエクセルだけで何でもやっちゃう人もいるわけで。
ウイルスまで!
そういうわけで、ファイルメーカーをつかいこなしたい!
というこのメンドウな向上心につきあって頂けたら嬉しいです。
よろしくお願いします。
0053デフォルトの名無しさん
NGNGもっと基本的ななんかが48には欠落しとるとは思うけど、まぁ、方針だけ示したるわ。
その月の1日が何曜日かわかっとるんなら、(0:日 ~ 6:土)
「月月火水木金金」を表示したあとで、
曜日のインデックス分の長さだけ空白を表示させて、そのあとで、1,2,3などの
日付の表示を行うルーチンに移ればよろしい。(もちろん、日付表示する
ルーチンには、その事を伝えて善処してもらうこと。)
個人的には、空白にはせずに、前月の分の日付を表示させて、
フラットなカレンダーにしたほうが何かと便利ではないかと思うのだが、
それは置く。
月 月 火 水 木 金 金
29 30 1 2 3 4 5
0054デフォルトの名無しさん
NGNG>曜日のインデックス分の長さだけ空白を表示させて、
>「そのあとで」
っていうところ、すごく参考になりました。
私の考えの中に順序が抜けてたから
ぐしゃぐしゃになってるんだとおもいました。
これでスッキリとしたものが作れそうな気がしてきました。
本当にありがとうございます。助かります。
「データベースって、住所録のことでしょ?」
くらいのレベルの私なので、
>基本的ななんかが48には欠落しとる
ってほんとそうだと思います。
なんでもちゃんと基礎から勉強しないと結局、
わけなかんなくなって「あがいて」しまいますよね。
教則本のはじめの方に書いてある「データベースとはなにか?」
みたいな章をきちんと読もうと思いました。
0055デフォルトの名無しさん
NGNG何されると増えるの?
表領域は4つしかないのにこのレコードが増えたり減ったりするんだよね。
ちょっと気になった。
使用可能領域ってのはわかったが何で表領域が4つしかないのに
50件もデータがあるのかなと思って。
0056デフォルトの名無しさん
NGNGあんまり速度が変わらないんだよね。
皆はいくつくらいにしてるの?
他のパラメータも教えて。
0057デフォルトの名無しさん
NGNGその数字はちゃんと計算して出したのかい?
0058デフォルトの名無しさん
NGNG多すぎてもだめなの?
計算方法があるなら教えてください。
005957
NGNG「キャッシュ ヒット率」とかで検索すればいくらでも情報は出てくるはずだYO!
速度に関しては、多くの要素が絡むからあえて書かない。
SQLをちょっと書き直すだけで劇的に早くなったりするし。
0060デフォルトの名無しさん
NGNGSELECT (SUM(gets - getmisses - usage - fixed))
/ SUM(gets) "row cache"
FROM v$rowcache;
row cache
------------
.95738914
この値を共有プールのサイズにしたらいいのですか?
0061デフォルトの名無しさん
NGNG個別の数字を提示して、断片的な情報を収集してもしょうがないでしょ。
現状は「共有プール」というものが何なのかさえもわからない状況なんでしょ?
知識を付けたいのだったら、パフォーマンスチューニングの本を買って
読むのが早い。
その手の本には、大抵、状況を把握するためのSQLスクリプトが載っていて、
その数字が何を意味し、どれくらいだったら駄目なのか、また、どうチューニング
すれば良いのか具体的に書いている。
本当に9M -> 100Mと変更しても変化が無いのだったら、それはチューニング
する必要が無かったということ。
また本当に9Mで十分かどうかは、データ量と運用形態によるので(あるいは
アプリケーションの実装にもよる)、誰にもそれで十分かどうかは判断出来ない。
なお、>>60の数字は問題無いが、「キャッシュヒット率」というものは、事前に
予測できるものではないので、運用しながら、あるいはそれを想定したテスト
を行わなければ、本当に十分なのかどうかは分からない。
また、例えその数字が悪かったとしても、現状、満足できるパフォーマンスなら
チューニングする必要はない。
0062デフォルトの名無しさん
NGNG↓
遅い原因はキャッシュじゃない?
↓
あっ、インデックス張ってなかった!
↓
張ってみよ
↓
ウマー
っぽい気がするのは俺だけか?
0063デフォルトの名無しさん
NGNG0064デフォルトの名無しさん
NGNGあるらしい。
これは、オブジェクト指向DBらしいのだが、
使えそうだろうか?
誰か知っている人教えて。
0065デフォルトの名無しさん
NGNG日本産DBなんだけどさ。
0066デフォルトの名無しさん
NGNGだね。翔泳社のやつはどうも・・・。つーか、翔泳社の本は
全部俺の性に合わん。
>>65
ネタかと思ったぞ(藁
検索したら本当にあった。
でもHPがちょっとヤバメだったけどな(藁
0067オラクルマスター(ブロンズ)
NGNG削除じゃなくてさ。
100列以上あるテーブルに更新や追加をすると処理が
むちゃくちゃ重くてインデックスを削除したら処理がむちゃくちゃ速くなった。
でも仕様でインデックスは削除してはだめなので
更新処理等の時はインデックスを使用不可にしたいのです。
こんな事出来ますか?
0068デフォルトの名無しさん
NGNGOracleの話だとすると、8iから出来るかもしれない(マニュアルが
ないのでわからん)。
alter index unusable
ま、マニュアル読むことだね。
# つーか、本当にインデックスの問題なのか?という疑問が。
# 行連鎖とか、PCTの問題じゃないかと思ったり。
# あと、インデックスをリビルドしてみそ、とかも思ったり。
0069デフォルトの名無しさん
NGNG・画面入力する。
・Transactionを開始する。
・DBを更新する。
・ユーザに「更新してよいかどうか」を尋ねる(ここで入力待ち)
・YESならCommit、NOならRollbackする
で、「TransactionってRollbackできるところがスバラシイ」だってさ。
0070業務でBorlandを使おう
NGNG一緒に仕事してる(自称)上級SEが
「RDBは信用できないからトランザクションなんて使ってられない」
と逝ってましたがなにか?
0071業務でBorlandを使おう
NGNGVBのアプリ(oracle+oo4o)は一時テーブル使うために
Access+ADO使ってました(泣
0072デフォルトの名無しさん
NGNGなだけマシ(泣
0073デフォルトの名無しさん
NGNGほんとうなんです。
インデックスを削除してから更新処理を行うと速くて
インデックスをつけた状態での更新処理はむちゃくちゃ遅い。
0074デフォルトの名無しさん
NGNG業界では普通なんですか?
だから行ロックマンセーなんですか?
0075デフォルトの名無しさん
NGNG「それ」じゃなくて
>ソンナニ長時間トランザクション掴みっぱなし
が問題なんだろ
0076デフォルトの名無しさん
NGNGちょいと想像してみな。インデックスを使用不可にした
後、追加や更新処理を流すよな。そしたら、新しく追加
したやつのインデックスはいつ張られるの?
100行位で遅くなっているなら、インデックスの数が
多い等の問題がある筈なんで調査してみな。
0077デフォルトの名無しさん
NGNGそれは当然だよ。
テーブルにレコードを更新すると同時にインデックスも自動更新する。
だから インデックス付けていると更新時には遅くなる。
だけど、テーブルからセレクトする時はインデックスからレコードの位置を
特定するから速くなる。
だから、インデックスをつける時は、更新処理と読み込み処理と天秤にかけて
どちらを優先するかを決めて付けないと駄目だよ。
レスを読んでると oracle8iからインデックスのenableを変更できるなら
バッチで大量にデータを書き込む時にインデックスを無効にしておけば速くなるよね。
それで、更新が終わったらenableを有効に戻す。
有効にした段階で、RDBが再びインデックスを再構築する。
大量データを更新しながらインデックスも 同時に更新するよりこの方法の方がパフォーマンスは上がるよ。
レコード情報を書き込むディスクドライブとインデックスを書き込むディスクドライブは
基本的に別にしておかないと駄目だよ。
インデックスも種類があって b-treeインデックスからbitmapインデックス等
そのデータの性格に合わせて付けてあげると効果があるね。
0078デフォルトの名無しさん
NGNGゴメン。
100行程度で遅くなるんだね。
>>76の言っている可能性が非常に高いな。
0079デフォルトの名無しさん
NGNG実はその筆者に「同時更新がかかるテーブルのTransactionは、
常に最短をめざすのが吉」という内容のメールを送ったんだが、
「RDBってスバラシイ。
Transactionの中でユーザ入力待ち出来ることがスバラシイ。
だって、Rollback出来るんだから」
と言う内容の、頓珍漢なメールが帰ってきたよ。トホホ・・・。
0080デフォルトの名無しさん
NGNG行じゃなくて列ね。
0081デフォルトの名無しさん
NGNG俺はそういう場合、
更新処理を行う前にDrop Indexして、
処理終了後にCreate Indexしているyo。
IndexのDrop&Createに要する時間より
Indexによる更新時間の劣化が激しい場合ね。
0082Error401
NGNG1. Indexがあると1sで、無いと0.1s
2. Indexがあると100sで、無いと1s
3. Indexがあると10sで、無いと5s
確かにIndexがあると、更新時間は増えるが、「むちゃくちゃ重い」というのが
Indexだけのせいなのかどうかわからないでしょ。
他に原因があるかもしれないし。
なお、Oracleの場合、SQL*Plusで
set timing on
とやると、Queryの時間が計測できる。
0083オラクルマスター(ブロンズ)
NGNG色々ありがとうございます。
勉強になります。
>>81
そういう手もあるのですね。
>>82
ストップウォッチで計測したところ
インデックス有りの更新処理は約38秒
インデックス無しの更新処理は約0.5秒
という結果が出ました。
0084Error401
NGNGそんなに差があるんですか。
ちなみに、その表の
・行の長さ(バイト数)
・全行数
・更新対象となる行数
・その表に張られているインデックスの数
を、およそでいいので書けませんか?
0085オラクルマスター(ブロンズ)
NGNGすみませんです。
私はこのプロジェクトに入った(途中から)のが
この前の水曜日なので詳しくわからないのですが
その表はTEMPテーブルとして使ってます。
Oracle8iですとSybaseのように一時表が作れるらしいのですが
Oracle7を使ってるので大きなテーブルを作りそこに
一時的に保存したいデータを入れるという仕様にしてます。
テーブルのサイズなのですが
殆どの型を10個ずつくらい持っております。
例えば
VARRCHAR(255)
CHAR(255)
等の型がそれぞれ10以上ずつあります。
数字型も同じよう10以上ずつあります。
DATE型は2つくらいです。
このテーブルは一時表のような感じで使っているので
処理が終われば、この処理で使われた行を削除します。
更新対象は1000件前後です。
インデックスは1つ作成しております。
インデックスを削除したら劇的に早くなったので
リーダーにこういう状況なので削除してもいいですか?
と聞いたのですが「ダメ」との答えが返ってきて
何かよい方法がないかなぁと皆さんの知恵を借りさせて頂たいです。
よろしくお願いします。
0086Error401
NGNGそれじゃあ、追試も出来ないね(汗
データベースの接続ごと、あるいは、トランザクションごとの一時表が
使えないから、全員で(全トランザクションで)その表を共有している、
ってことですね。
うーん。
表の構造を変えるか、処理方法を変えるしかないかも。
あるいは、そのリーダーをコロヌか(笑
残るは、資源が足りているかどうかを調べて、足りないものを増やす
(あるいは変更する)しかないけど、一言じゃ説明できないなぁ。
とりあえず、Create Index文をマニュアルで調べて、物理パラメータ
(初期サイズとかね)を余裕のあるものに変更するとかかなぁ。
お仕事中に書き込みする人は今日はいないだろうから、誰かがいい案を
書き込んでくれるのを月曜日まで待ってみるか、OTN Japanにでも質問
するかかな。
0087からから
NGNG何でリーダーは「ダメ」って言っているの?
削除しっ放しじゃまずいだろうけど、
更新が終わったら再作成するなら問題ないと思うが。
インデックスの削除&生成はORACLEのシステムテーブル
(USER_VIEWSなど)を読んでDROP文やCREATE文を逆生成
すれば漏れもないし。
更新時にインデックスを削除するなんて一般的に多用されている
テクだと思うけどな。
もしかして、そのリーダーってメインフレーム系の古典的技術者?
0088業務でBorlandを使おう
NGNGみんなはなに使って開発してんの?
やっぱりVB(Javaも?)が多いのでせうか?
自分は今のところVBでやってるのだが、あまりにも
開発&配布がしにくいのでDelphi or BCBに移行したいYO!
BDE(SQLLink)とかdbExpressのパフォーマンスが問題になりそーだが
ODBCとかADOに負けることは無いと思うし。
0089Error401
NGNG知識はあるのではないか?
という気もしたりするが、気のせいか?
OMを知らずにカキコ・・・。
0090からから
NGNG同じ表を複数のセションで共有して使うことに
何か意味があるの?
各セションがそれぞれ必要な表をCREATEして、
処理が終わったらDROPすればいいんじゃないの?
0093からから
NGNG最近はめっきりJAVAが増えましたね。
つーか、ほとんどJAVA。
去年くらいまではDelphiとかVBとかPBとか
使っていたんだけど、いまや客に提案することも
珍しくなった。
0094業務でBorlandを使おう
NGNGみんな制約の多い中で開発してるんだなー。
今の仕事で設計やってる(自称)上級SEに小一時間問い詰めたことがあったが、
元汎用機とかやってたSEは知識が少な目、で妄想が多めに入ってる。これ最強。
で話が全然通じなかった。
へたに雑誌とかで覚えたVBしかしらんのにVBマンセーだし。
そんな彼の設計したDBにはIndexが存在しません。
愚痴スマソ
0095デフォルトの名無しさん
NGNG爆笑!
0096業務でBorlandを使おう
NGNG(個人的には)そう思う。
まだ使ってないがDel6が出てdbExpressが入ったおかげで
OracleやMySQLとかにnativeに接続出来るようになったみたいだし。
>>93
GUIの使い勝手とかはどうなんですか?
あと、今やってる仕事だと配布のことも考えないといけないので
どんな環境(WinOS上)でも動いて、かつインストールが簡単っつー
制約があるんで、VMやJDBCの設定とかも気になるところだが。
0097デフォルトの名無しさん
NGNGイントラネットだと、JavaAppletというソリューションも結構あるみたい。
東京三菱の営業店システムもこれだったし。
0098デフォルトの名無しさん
NGNGただし、データベースは使ってないけど(汗
ちなみに、僕の隣のチームはNetscape+Applet+Swing+Oracleで
システム作ってます。
0099業務でBorlandを使おう
NGNGJavaAppletだったら敷居が低めでよさげだな。
(また愚痴だが)うちのSEはActiveX使えって逝ってます(泣
0100からから
NGNG>>99 大変だな。同情....
0101業務でBorlandを使おう
NGNGスレ違いっぽいが、DBといえば帳票も作んないといけないと思うが
その辺どうやってる?
Reportの類は表形式の帳票つくりにくいし、
今のところExcel使ってるけど、こっちも環境に依存しそうだし・・・
0102デフォルトの名無しさん
NGNG俺のところは、もっぱらPDF(アクロバット)だな。
0103デフォルトの名無しさん
NGNG0104業務でBorlandを使おう
NGNG環境はUnix?libPDF(だっけ?)か使ってるのか?
Winで簡単にPDF操作できるライブラリとかあるんだったら考えるんだが。
0105デフォルトの名無しさん
NGNGWinでも「つばさシステム」とか「キャノン」とかが出していなかったっけ?
0106デフォルトの名無しさん
NGNGいわゆる「Web帳票システム」は馬鹿高いです。
数百万するのもザラ。
つーか、Webで価格公表しとけっつーの。
0107デフォルトの名無しさん
NGNG帳票出力するだけ?
0108デフォルトの名無しさん
NGNG帳票部分だけAccessで作ることが多い
クリスタルレポートを使うこともあるけど、
データを帳票印刷時にコーディングで加工できるので楽。
エクセルに出力することもあるけど、
本格的にエクセルを操作すると、バージョンとか考えないといけないので、
指定がある場合のみってことにしている
使ってる言語に影響してると思われ
仕事ではVB,VB,Delphiを使ってます。
0109オラクルマスター(ブロンズ)
NGNG>>87
ダメという理由は他の処理でインデックスがないと
重くなるという事でした。
>>90
セッション毎にテーブルを作る方法がわからないのです。
因みにOracle7.3です。
8iでは一時表があるようですが・・・
更新処理前にインデックス削除して
更新処理後にインデックス作成というパターンが
一番簡単そうですね。
ありがとうございました。
0110デフォルトの名無しさん
NGNG一時表じゃなくても、普通の表領域に作る表でいいんじゃないの?
テンポラリ表領域でもかまわないけどね。
動的SQLでCREATE TABLE文を発行すればいいじゃん。
そんで、処理の終了時にDROP TABLE文で後始末すれば問題ない。
表領域のフラグメンテーションが気になるなら、各表のINITIALサイズ
とEXTENTサイズを同じサイズにそろえておけばいい。
0111業務でBorlandを使おう
NGNG>>108
クリスタルレポートは使ったことがないが、
DelとBCBについてるQuickReportはかなり使いにくかったな。
QuickReportやAccessは表形式の帳票(線帳票っていうんだっけ?)
出力するのにかなり苦労して断念してしもうた。
他のアプリの印刷機能使うにしても環境に依存しそーで悩ましい。
DBがらみではないが、以前作ったアプリの印刷は
さんざん試行錯誤した結果emfで吐き出すようにしてしまった。
Winで扱いやすいベクタ画像のライブラリがあれば解決しそうな問題だが、
なんかいいもんないかなー。
0112オラクルマスター(ブロンズ)
NGNGそっかあ。
普通に表を作って処理後に削除してしまえばいいのですね。
その場合はやはりセッション毎に違う名前の表でないと
ダメなのですよね?
0113デフォルトの名無しさん
NGNG>その場合はやはりセッション毎に違う名前の表でないとダメなのですよね?
です。
一時表なんていっても、セション完了時に自動で表の後始末をしてくれるに過ぎない。
もっとも、そのリーダーさんが了解してくれればの話だけどね。
メインフレーム系の人って新しく表を作るって大変なことだと思っているからね。
ネットワークデータベースなんかだと結構大変だから。
0114デフォルトの名無しさん
NGNG感覚的にきしょいね。
VBで作ったほうがまだマシのような気がするよ。
0115デフォルトの名無しさん
NGNG俺も自分で作って使っている。
SQLの実行ツール、セッション管理ツール、スキーマ管理ツールなどなど
0116デフォルトの名無しさん
NGNGVBも文字列ベースだから検証が面倒臭すぎる。
こんどの仕事では
OO4O---VB---他のスクリプトなどの言語
という経路を試してみるつもり。
VBはただのインタフェース
0117デフォルトの名無しさん
NGNGあれなら自分でデータベースを作ったほうがまし。
(大規模開発)の場合はいざ知らず。
0118デフォルトの名無しさん
NGNG誰も止めていないよ。
0119デフォルトの名無しさん
NGNG0120デフォルトの名無しさん
NGNG0121デフォルトの名無しさん
NGNG最近のOracleの一時表は、セッション単位とトランザクション単位で使えるよ。
0122デフォルトの名無しさん
NGNGObject Browserがいいよ。安いし。
Windowsでしか使えんけど。
0123デフォルトの名無しさん
NGNG今度関わる事になったシステム(DBはSQL Server)、開発はもう
既に後半に入っているようなんだけど、何故か「全ての」テーブルに
キーが設定されていない。
こういうのってアリなの?
0124デフォルトの名無しさん
NGNG0125デフォルトの名無しさん
NGNGまぁ、純粋なストレージとしてしか使わないのであれば可かなぁ。
でも、そんなテーブル構成だとすると、正規化もなにもやってないでしょ。
あとで死ぬことになること必至と予想。
0126デフォルトの名無しさん
NGNG0127デフォルトの名無しさん
NGNG「キー」というのが、「制約」なのか「インデックス」なのか不明だが、
十分に小さいテーブルで、制約もいらないなら、両方いらない。
0128デフォルトの名無しさん
NGNG一意制約だけをかけているのはダメですか?
0129デフォルトの名無しさん
NGNG0130デフォルトの名無しさん
NGNGnullを使いたいということは、意味的に主キーでは無いと思う。
0131デフォルトの名無しさん
NGNG主キー群の1カラムにnullがあっても主キーは主キーでしょ。
0132デフォルトの名無しさん
NGNG0133デフォルトの名無しさん
NGNGどんな意味で?
0134デフォルトの名無しさん
NGNG確実に性能的にダメ。
RDBの基本的なことを知らずにテーブル設計をしているようなのでダメ。
0135デフォルトの名無しさん
NGNG具体的に説明してよ?
キーにNullがあるとNull以外の列を検索するのは早くなるよ。
0137130
NGNGそういう技術的な意味じゃないんだ。
nullを使いたいということは、要するに「不完全な(未定義の)データ」と
いうことだよね。
一方、主キーというのは、データを一意に識別するもの。
だから、不完全なデータを一意に識別するというのは「意味的におかしい」
ということ。
0139130
NGNG「原則null使用不可」って主張してたんじゃなかったかな。
記憶違いかもしれないけど。
0140デフォルトの名無しさん
NGNG主キーすべてがNull値をとるなら意味的におかしいといえるかも
知れないけど、主キー群の中の1カラムがNull値をとるケースが
あっても意味的におかしくはないのでは?
そのカラムがNull以外の時はそのカラムを含めないと一意識別が
できないけど、Null値をとるときはそのカラム以外の主キー群のみ
で一意識別ができるような場合。
0141PG1一年生 こと 128
NGNGNull不可の場合、例えば「会員番号」なんてカラムがあったとして、
まだ会員番号を取得していない会員の会員番号をどう表現すべきなの?
奇妙な固定値をセットするのは逃げの策にしか思えないんだけど......
0142123
NGNGんー、やっぱりワーク的な使い方限定とかでもない限り、やっぱ
キー(制約)が無いってのは怖いスよね...
とりあえず設計者に意図を確認してみますわ。
...しかし、開発初期段階で誰か一人でもツッこまんかったのだろうか?
0143デフォルトの名無しさん
NGNGRDBの普通の設計なんだが、君のところは違うのか?
0144PG一年生
NGNGその「キー制約」ってのは、一意制約+NOT NULL制約=PRIMARY KEY制約
の意味ですか?
0145デフォルトの名無しさん
NGNGいまあるRDBは、NULLが許可された列をキーにする場合、
キーの比較を、値の比較・Null値のチェックの二段階で行う。
Null値がないと保証されたキーを使用する場合、
値の比較だけで済む。
インデックスを使用する場合、インデックスだけをチェックするか、
インデックス+Nullかどうかの二段チェックをするか、の差になるので
やはり、遅い。
0146デフォルトの名無しさん
NGNGさて、三つとも具体的に説明したがなんか質問あるか?
0147130
NGNGんーと、ごめん。この議論を続けるには、資料を読み直して、記憶を
掘り起こす必要があるので、ちょっと中断させてください。
>>141
これは、>>139に対するコメントかな?
会員番号が無い会員がいるということだね。
DDLで言うと、どういうテーブルを想定してます?
0148PG一年生
NGNG別に実例ではなく、例えばの話しをしたんだけど.....
そりゃ業務しだいでしょ。
申請があればとりあえず登録しておくが、正式な手続きを経て会員番号が
発行されるまでには時間が掛かるから、会員番号がない会員が存在する
場合もあるんじゃないの?
0149デフォルトの名無しさん
NGNG文脈からして、primary key制約のことじゃないの?
0150デフォルトの名無しさん
NGNGその場合、正式な会員のテーブルと、
未登録(予約のみ)会員で別のテーブルを作るのが正解だろう。
正式な会員と未登録の会員は別物だ。
RDBに何かを処理するとき、いちいち正会員か、そうでないかを
区別しないといけないだろ?
0151デフォルトの名無しさん
NGNGYahooBBみたいなとこではやってるかもね。
非開通なのにモデム送りつけたり、
非開通なのに、契約者数に数えてたり...
0152デフォルトの名無しさん
NGNGその通りス。俺って言葉が足りない...鬱
0153デフォルトの名無しさん
NGNG0154PG一年生
NGNGあえて会員番号を持った会員と、持たない会員を区別する必要がないんだよ。
会員番号が未発番なのは事務手続きの問題であって、会員であることにはかわりない。
すべての処理で会員番号をもった会員と同等に扱われる。なのに別テーブルにするのは
違和感があるし、性能的にも得策ではないように思うんですが?
0155デフォルトの名無しさん
NGNGワラタ
いやぁ、DB壊れたらしいし、実はMDBだったんじゃねぇの?(死
0156デフォルトの名無しさん
NGNGYahooBBの顧客DBつくったのお前だな
0157デフォルトの名無しさん
NGNGで、主キーは何?
0158デフォルトの名無しさん
NGNG連番でもなんでもいいから、登録時に主キーをつけろ。
0159デフォルトの名無しさん
NGNG既に前のレスで書かれてるけど、会員番号以外の項目で
その会員を一意に判断出来る作りにすればOKなだけだよ。
別テーブルを作るかどうかはまた別の話。
0161デフォルトの名無しさん
NGNG会員番号はあくまで表示・検索用のおまけデータであることが判明しました。
0162デフォルトの名無しさん
NGNG0163デフォルトの名無しさん
NGNGSELECT COUNT(*) FROM KAIIN_TBL
モデム発送用クエリー
SELECT NAME, YUBIN_NO, JUUSHO FROM KAIIN_TBL
0165130
NGNG0166PG一年生
NGNGDelivery#(出荷番号)がないものは、Product#(製造番号)で
一意識別が可能。Delivery#(出荷番号)があるものは
Product#(製造番号)+Delivery#(出荷番号)でないと一意識別
できない。
Product# Delivery# xxxxxxxx yyyyyy
-------- --------- -------- ------
11111111 Null----- aaaaaaaa 999999
22222222 Null----- bbbbbbbb 999999
33333333 XYZ000001 aaaaaaaa 999999
33333333 XYZ000002 cccccccc 999999
44444444 XYZ000003 aaaaaaaa 999999
44444444 XYZ000004 dddddddd 999999
55555555 Null----- aaaaaaaa 999999
66666666 Null----- aaaaaaaa 999999
77777777 XYZ000005 aaaaaaaa 999999
77777777 XYZ000006 aaaaaaaa 999999
77777777 XYZ000007 aaaaaaaa 999999
0167デフォルトの名無しさん
NGNGキーにnullは使わないことになってます。
0169PG一年生
NGNG常識としては知っているんですが、その理由を知らないもので......
許してください。今年入社したばっかりなんです。
0170デフォルトの名無しさん
NGNG>>143 >>145がその根拠。
0171デフォルトの名無しさん
NGNG0172130
NGNGんーと、僕が探そうと思っているのは、>>145のような技術面じゃなくて、
>>143の根拠。
>>169
最後にひとつ。
>>166のテーブルはおかしい。
33333333 null
という状態を許すにもかかわらず、そのレコードを2レコード作ることが
出来ない。それにもかかわらず、2レコード存在している。
0173PG一年生
NGNGでも>>166の例で、Delivery#で検索する場合、
Delivery# is null の列はインデックスが作成されないからインデックスが
コンパクトになる。だからnull行が大量にある場合には、Null以外の検索は
高速になるよ。
0174デフォルトの名無しさん
NGNGその設計だと、出荷するまで製品を一意に識別するキーがないね。
主キーをつけないか(最近のDBでは可能)
一つ一つのブツを一意に識別するためのキーを作りなさい。
Serial(PK) Product# Delivery# xxxxxxxx yyyyyy
---------- -------- --------- -------- ------
0000000001 11111111 Null----- aaaaaaaa 999999
0000000002 22222222 Null----- bbbbbbbb 999999
0000000003 33333333 XYZ000001 aaaaaaaa 999999
0000000004 33333333 XYZ000002 cccccccc 999999
0000000005 44444444 XYZ000003 aaaaaaaa 999999
0000000006 44444444 XYZ000004 dddddddd 999999
0000000007 55555555 Null----- aaaaaaaa 999999
0000000008 66666666 Null----- aaaaaaaa 999999
0000000009 77777777 XYZ000005 aaaaaaaa 999999
0000000010 77777777 XYZ000006 aaaaaaaa 999999
0000000011 77777777 XYZ000007 aaaaaaaa 999999
Product#とSerialを複合キーにしてもいいよ。
どっちにしろ、ねじ一個一個みたいな、
個別に管理するのがばからしい製品じゃないんでしょ?
0175PG一年生
NGNG下の文の意味がちょっとわかりません。
0176PG一年生
NGNG個別に管理するのがバカらしい製品です。
0177デフォルトの名無しさん
NGNG>Delivery# is null の列はインデックスが作成されないから
というのは、DBの仕様であって、RDB一般の話しではない。
まず、その辺を理解しなさい。
0178デフォルトの名無しさん
NGNG0179PG一年生
NGNG実際の表は174みたいな連番が主キーになっているんですが、
ユーザーインタフェースに現れない列が主キーなのが非常に
わかりにくいと思ったものでカキコしてみました。
0180PG一年生
NGNG馬鹿は余計ですが......
クレームつけられたら、どのロットの製品か特定する必要があるんです。
0181130
NGNGProduct# Delivery# xxxxxxxx yyyyyy
-------- --------- -------- ------
22222222 Null----- bbbbbbbb 999999
33333333 XYZ000001 aaaaaaaa 999999
33333333 XYZ000002 cccccccc 999999
に成長するまでをDMLで考えると、このテーブルには、これだけでは
わからない「ある制約」がある(隠されたビジネスロジックになっている)。
具体的に言えば
Product# Delivery# xxxxxxxx yyyyyy
-------- --------- -------- ------
22222222 Null----- bbbbbbbb 999999
33333333 Null----- aaaaaaaa 999999
という状態の次には
Product# Delivery# xxxxxxxx yyyyyy
-------- --------- -------- ------
22222222 Null----- bbbbbbbb 999999
33333333 Null----- aaaaaaaa 999999
33333333 Null----- cccccccc 999999
とは出来ないが、
Product# Delivery# xxxxxxxx yyyyyy
-------- --------- -------- ------
22222222 Null----- bbbbbbbb 999999
33333333 Null----- aaaaaaaa 999999
33333333 XYZ000002 cccccccc 999999
↓
Product# Delivery# xxxxxxxx yyyyyy
-------- --------- -------- ------
22222222 Null----- bbbbbbbb 999999
33333333 XYZ000001 aaaaaaaa 999999
33333333 XYZ000002 cccccccc 999999
とは出来る。
0182デフォルトの名無しさん
NGNGユーザーインタフェースに現れない列が主キー
になるのは、別に珍しいことじゃないよ。
>>179でいってるような意味の設計をしてるなら、
出荷済み製品のテーブルをつくって、そこに
出荷済みの製品の連番と、出荷時につけた出荷番号を対にして、
いれておきなさい。
その出荷番号は、個別の製品を管理するテーブルに
入れるべき値ではないよ。
0183デフォルトの名無しさん
NGNG0184PG一年生
NGNG珍しくないのは、RDBMSの製品の多くが主キーにNullを許さない
仕様になっているからではないのでしょうか?
今知りたいのは、なぜそういう使用になっているかなんです。
0185PG一年生
NGNGそのとおりです。
181に示したとおりの状態をたどります。
0186デフォルトの名無しさん
NGNG主客転倒。
RDBMSの実装が主キーにnullを許さないから駄目なのではなく、
駄目だから実装がそうなってる。
0187PG一年生
NGNGだからなんでダメなの?
0188デフォルトの名無しさん
NGNG勘違い発言なので取り消す。
0189デフォルトの名無しさん
NGNG主キーしかないテーブルがあったとして
Nullを二つ入れようとしたとき、
両方の挿入を許す作りにすると、
同じNullなのに二つ入ってしまうという矛盾が生じる。
RDB的にダメ。
二つ目を禁止するには、
すでにNullが入っているかどうかを調べなければならない。
が、Nullは、インデックスとは別枠で管理しているので、
その比較を行うだけで莫大なコストがかかる。
製品的にダメ
というわけで
ダメなの。
OK?
0190デフォルトの名無しさん
NGNG実際作ろうとすると無駄が多いのでダメ、といいうのが実情だ。
RDBでテーブル設計をする場合、キー値にNullを許すのは、
基本的にダメ、というのが常識。
0191デフォルトの名無しさん
NGNG複数の属性を複合主キーにしようとしたときに、そのうちのどの属性も
nullを使ってはならない、の説明になってないので駄目。
それから>>143も論理的な説明ではない。
つまるところ「駄目だから駄目」と言っているのに過ぎない。
0192デフォルトの名無しさん
NGNGこれ以上はきちんとした、RDBの解説書を読んでくれ。
オレは別にRDBの設計者でもないし、先生をやってるわけでもない。
0193PG一年生
NGNGシステムの構造上Nullの識別にコストがかかるからと言う意味なの?
Delivery#が未発番という状態を示すのにNull以外の値を使えばいいということ?
0194デフォルトの名無しさん
NGNGわからないなら答えないでください。
0195デフォルトの名無しさん
NGNG全然十分じゃない。
>複数の属性を複合主キーにしようとしたときに、そのうちのどの属性も
>nullを使ってはならない、の説明になってないので駄目。
の説明になっていない。
なお、今の議論はこっちのほう。単一属性を主キーにしたときの話はだれもしていない。
>分からないかなぁ。
分からないよ。だって、説明してないし。
0196デフォルトの名無しさん
NGNG誰も先生をやってくれとはたのんでないよ。
0197デフォルトの名無しさん
NGNG>>182を読んでね。
どこのSEに頼んでも、だいたい>>182の設計になると思う。
万が一同じ表で出荷番号を管理しなくちゃいけなくて、
キーとして検索しなきゃいけなかったりする場合、
かわりに空白' 'をいれて、出荷番号だけで一個の
インデックスを貼ればいいよ。
一度>>182のやりかたで、テーブルレイアウトを考えてみて。
0198デフォルトの名無しさん
NGNG論理的には不要な属性だし。
0199デフォルトの名無しさん
NGNG複合キーのいずれかにNull値が許されている場合、
インデックスが使用できなくなる。
Null値をインデックスとは別に管理しているからだよ。
0200デフォルトの名無しさん
NGNG同意。
>>174は駄目な見本。
>>182が正解(のうちの一つ)。
データベースがわかっている奴がいてほっとしたよ(藁
0201デフォルトの名無しさん
NGNGアホか。
そんなRDBMSの実装や技術的な話をしているのではなく、
論理的にどうなのか、という話をしているのだ。
0202PG一年生
NGNG実際には既に連番を主キーにしています。
でも、実装方法を教えてといっているわけじゃなくて
主キーのNullを許せば、そんなヘンな対応を取らずに
済むのに........
と思ったのでカキコしただけです。
「Delivery#未発番」という状態を示すには、Nullが
最もしっくりくると思うのですが。
0203デフォルトの名無しさん
NGNG0204PG一年生
NGNG実装の話しをするなら、
インデックスが使えないんじゃなくて、
Nullの列のみインデックスの適用が除外されるだけ。
逆に、NotNullの列の検索は早くなるというメリットもあるよ。
0205デフォルトの名無しさん
NGNGPG一年生は不自然ではないと思ってるんだろう。
よって「不自然だから」では説明になっていない。
まぁ、俺も、なぜ駄目なのか理詰めの説明が出来ないから、逝ってよしなんだが(爆
0206デフォルトの名無しさん
NGNG検索キーにNUllいれてもいいよ。
はいはいおわり。
0207PG一年生
NGNGそう不自然ではないと思っています。
つーか、「Delivery#未発番」という状態を表す値として
他にしっくりくる値を思いつかないんです。
0208デフォルトの名無しさん
NGNG終わったと思うなら勝手にお帰りください。
0209デフォルトの名無しさん
NGNG汎用機時代のファイルならタイプクリアっていう表現方法があったのにな。
0210デフォルトの名無しさん
NGNGRDBとしてもっともしっくりくる作りなんだけどね。
そのやりかたでもできるけど、
もうすこし、テーブルレイアウトの設計について考えてみた方がいいよ。
ただ、じっさいにRDBとして使うときのことをいうと、>>182の方が
性能面で有利だと思う。
未発番のレコードを処理するとき、どうするか?って問題があるよね。
0211デフォルトの名無しさん
NGNG捨て台詞を残して逃げていった。
カッコワルー。
0212デフォルトの名無しさん
NGNG0213デフォルトの名無しさん
NGNGわかります。
表を分けるというのは、RDB的にはしっくりくるのですが、
システム全体を見た時、あるいは業務的にもしっくりこない感じがするのです。
列の状態が遷移しただけで表を分割するというのは...........
0214デフォルトの名無しさん
NGNG出荷番号(PK) 製品の連番
------------ ----------
のテーブルをもう一個作るだけ。
元のテーブルにあった製品の連番は、いらない。
こういうこと。
0215デフォルトの名無しさん
NGNGユニーク制約だけにするというのは、賢い選択だと思うがね。
0216デフォルトの名無しさん
NGNG0217214
NGNGまちがえ。
元テーブルにあった出荷番号はいらない
のまちがい。
0218PG一年生
NGNGごめんなさい。
よく理解できないです。
Product# Delivery# xxxxxxxx yyyyyy
-------- --------- -------- ------
11111111 Null----- aaaaaaaa 999999
22222222 Null----- bbbbbbbb 999999
33333333 XYZ000001 aaaaaaaa 999999
33333333 XYZ000002 cccccccc 999999
44444444 XYZ000003 aaaaaaaa 999999
44444444 XYZ000004 dddddddd 999999
55555555 Null----- aaaaaaaa 999999
66666666 Null----- aaaaaaaa 999999
77777777 XYZ000005 aaaaaaaa 999999
77777777 XYZ000006 aaaaaaaa 999999
77777777 XYZ000007 aaaaaaaa 999999
↓
Product# xxxxxxxx yyyyyy
-------- -------- ------
11111111 aaaaaaaa 999999
22222222 bbbbbbbb 999999
55555555 aaaaaaaa 999999
66666666 aaaaaaaa 999999
Product# Delivery# xxxxxxxx yyyyyy
-------- --------- -------- ------
33333333 XYZ000001 aaaaaaaa 999999
33333333 XYZ000002 cccccccc 999999
44444444 XYZ000003 aaaaaaaa 999999
44444444 XYZ000004 dddddddd 999999
77777777 XYZ000005 aaaaaaaa 999999
77777777 XYZ000006 aaaaaaaa 999999
77777777 XYZ000007 aaaaaaaa 999999
ということでは ないんですか?
0219デフォルトの名無しさん
NGNG言っている意味がよくわかりません。
0220214
NGNG---------- -------- -------- ------
0000000001 11111111 aaaaaaaa 999999
0000000002 22222222 bbbbbbbb 999999
0000000003 33333333 aaaaaaaa 999999
0000000004 33333333 cccccccc 999999
0000000005 44444444 aaaaaaaa 999999
0000000006 44444444 dddddddd 999999
0000000007 55555555 aaaaaaaa 999999
0000000008 66666666 aaaaaaaa 999999
0000000009 77777777 aaaaaaaa 999999
0000000010 77777777 aaaaaaaa 999999
0000000011 77777777 aaaaaaaa 999999
Deliverty#(PK) Serial
-------------- ----------
XYZ000001 0000000003
XYZ000002 0000000004
XYZ000003 0000000005
XYZ000004 0000000006
XYZ000005 0000000009
XYZ000006 0000000010
XYZ000007 0000000011
こういうこと。
検索するとき・表示するときは二つの表を結合してください。
0221デフォルトの名無しさん
NGNG上の例でいうと、
主キーは、Product# + Delivery# だが、この2項目に
プライマリキー制約(ユニーク制約+ノットナル制約と同等)を設定せず、
ユニーク制約でけにとどめて、NULL値を可能にするということ。
0222デフォルトの名無しさん
NGNG主キーがあるのがリレーションなのでは?と言って見たり・・・。
勘違いだったらスマソ。
0223デフォルトの名無しさん
NGNG0224デフォルトの名無しさん
NGNG結合は上のテーブルを軸にしたアウタージョインだと思うが、
結果は結局、Deliverty#がNullの列ができる。
0225デフォルトの名無しさん
NGNG出荷した製品を検索するときはinner join
OK?
0226デフォルトの名無しさん
NGNG勘違い。
ちなみに、第一正規形には主キーは必要ない。
第二正規形で始めて主キーが登場する。
0227182=206=214
NGNG後は勝手に本を読んでくれ。
0228デフォルトの名無しさん
NGNG「主キーがある」ということと、RDBMSの提供機能である「PRIMARY KEY制約を適用する」
ということは違うと思うぞ。
0229デフォルトの名無しさん
NGNG0230デフォルトの名無しさん
NGNG0231デフォルトの名無しさん
NGNGもうSerial#を入れてしまっていて、変更不可ならしかたないが。
0232デフォルトの名無しさん
NGNG一番わかっていないのはチミだよ。
0233デフォルトの名無しさん
NGNG>>220は悪い設計の見本。
0235デフォルトの名無しさん
NGNG0236デフォルトの名無しさん
NGNG0237デフォルトの名無しさん
NGNGやだ。
なお、なぜ悪いのかの理由は>>198の通り(俺の発言じゃないけど)
正規化をしらなければまずはこれを勉強しろ(第三正規形まで)。
データベースの入門書も読んだことないんだろう?
0238デフォルトの名無しさん
NGNGケチはつけるが対案がない。
237は厨房の良い見本。
0239デフォルトの名無しさん
NGNG>>182の二の舞だぞ。
もうほっとけ
0240デフォルトの名無しさん
NGNGProductの定義とDelivery処理の要件を提示しろ。
これがわからずに、あーだこーだ言ってもしかたない。
>>220の設計が悪いというのは言えるけどな。
0241デフォルトの名無しさん
NGNG0242デフォルトの名無しさん
NGNG必死に自分の設計を正当化しようともがいているのです。
0243デフォルトの名無しさん
NGNGそうしとくよ。吉外がいるみたいだからな。
>なお、良い設計を示して欲しければ、
>Productの定義とDelivery処理の要件を提示しろ。
は本気だからな>一年生
俺に限らず、良い設計見本を知りたければ最低限必要だろ。
0244デフォルトの名無しさん
NGNG厨房丸出し。カコワルイ
0245デフォルトの名無しさん
NGNG○○を勉強しろ
××を読め
0246PG一年生
NGNGで、結局あなたは良い見本を知らないんでしょ?
0247Error401(243)
NGNG相手するのやめた。さよなら。
0248PG一年生
NGNGさよなら。
0249デフォルトの名無しさん
NGNGところで>>220の意図するところは分かったか?
>>243がいう存在しないはずのデータがあって、
それをキーにしているのは不自然というのはもっともだけど
とりあえず、あれが一番よく使われる設計パターンだ。
0250デフォルトの名無しさん
NGNGもう寝よ。
0251PG一年生
NGNG>>220は理解しました。
でも、外部結合の結果は結局Nullの列ができるわけだから、
PRIMARY KEY制約を用いず、UNIQUE制約だけにするというのも
捨てがたい気がする。パフォーマンスが劣化するのは理解しているが、
業務的に実用に耐えるレスポンスなら
「Nullを含む主キーがあっても良いのでは?」という疑問は晴れません。
0252デフォルトの名無しさん
NGNG0253デフォルトの名無しさん
NGNG0254デフォルトの名無しさん
NGNG俺もそれに同意。厨房ばっかで困るよな、相棒。
0255デフォルトの名無しさん
NGNG>>251
Nullを含まないものを主キーとするというのは定義。
よって、主キーにはNullを含んではいけない。
Q.E.D.
0256PG一年生
NGNGNullじゃなくて"*"なんてヘンな記号ならいいの?
Nullなんて実装手段を「定義」だなんていわれても......
0257デフォルトの名無しさん
NGNG>Nullじゃなくて"*"なんてヘンな記号ならいいの?
良いか悪いかを俺に聞かれてもこまる。
それは要件次第であり、それを知っているのは君だけだ。
>Nullなんて実装手段を「定義」だなんていわれても
nullは「実装手段」などではない。「未定義(不定)状態」という概念。
0258デフォルトの名無しさん
NGNG256の言うとおり、番号未発番という状態を示すのにNULLを用いているに過ぎない。
表の論理的主キーなんてその値がNULLをとるか否かなど考慮しない。
0259デフォルトの名無しさん
NGNGそれは定義(それもいうなら定理だろ)でもなんでもなく、
RDBMS製品の仕様に過ぎない。
0260デフォルトの名無しさん
NGNGそうではない。
だとすると、なぜRDBMSの論理値が3つの値を取ることを前提に
理論構築されていることを説明できるのだ?
0261PG一年生
NGNG番号未発番という状態を表すのにNullを用いてはならないと言っているだけですか?
0262デフォルトの名無しさん
NGNGその通り。
主キーの要件は「タプルを一意に決定できるもの」であり、
nullは「不定」を現す概念だのだから、主キーには使えないとしている。
これは定義なのだから、いくら「nullを主キーに使いたい」と言っても
駄目なのだ。
多くの(全てのかもしれない)RDBMSの実装では、「主キー」を
primary keyというconstraint(制約)で実装しているのだから、
primary keyにnullが使えないのは当然のこと。
Q.E.D.
0263デフォルトの名無しさん
NGNGされているそうだが、俺はそれを知らないし、説明できない。
なお、俺が説明したことも誤りがある可能性はあるので、
その辺は承知しておいてくれ。
0264デフォルトの名無しさん
NGNGネロ
0265デフォルトの名無しさん
NGNGE.F.Coddも後悔しているというようなことをどこかで読んだ気がする。
(これは非常に曖昧な記憶なので間違っている可能性大)
Googleで検索してみたが、それらしいのがいくつかあったので、
興味があるなら、読んでみると良い。(E.F.Codd + null)
0266デフォルトの名無しさん
NGNG俺は起きたばかりなんだが(藁
0267デフォルトの名無しさん
NGNG未発送状態を"*"として、>>166のテーブルでProduct#+Delivery#を
PKとして良いのか?
あの表が他の表から完全に独立していて、なおかつ、将来拡張が
無く、Delivery#だけで、他と識別する必要がなければそれでよい。
つまり要件次第だな。
しかし、将来必ず更新される項目をPKに入れておくのは一般には
良くない。なぜならば、その項目をFKとして持つ表があった場合
Delivery#を更新する場合に、FKとして持つ表も更新しなければ
ならなくなる。
これは容易にシステム全体のデータの整合性を崩してしまう要因になる。
(ツールによるad hocな更新をしてしまったなど)。
ということで、「後から発送番号が付けられる」場合は、それを
単なる属性値として持っておくのが良い。
代わりに、システムが付番する「発送受付番号」のようなものを
作りPKとしておく。
つまり>>174のようにしておく。
>>202ということなので、今の実装で問題が無かったというオチだな。
なお、>>214は冗長だと思う。
特に「発送番号が付番済のもの」をひとまとまりに管理する必要が
なければ、テーブルを分ける必要がないと思う。
まぁ、データモデリングは人それぞれで、唯一の正解というものは
無いのが普通なので、どれが正解、どれが間違いとは一概には言えないもの。
ただし「無意味なSerial#」や「無意味な非正規化」は
間違いだとはいえると思う。
0268デフォルトの名無しさん
NGNGFK constraintを付けた場合、UPDATE出来なくなる実装のRDBMSが
あったような。これはRDBMSの実装依存の部分かもな。
更新されるPKなんてここ最近使ったこと無いので、>>267は微妙に嘘が
混じってる可能性があるので注意。
0269mage
NGNG0270MB
NGNG>これは定義なのだから、いくら「nullを主キーに使いたい」と言っても駄目なのだ。
なんでその定義に従わなければならないんですか?
実装レベルでは、nullを許した方が性能がよくてもなおその定義に従うメリット
はなんですか?
0271デフォルトの名無しさん
NGNGというのであれば、主キーにnullを許す処理系を作って使えばいいじゃん。
いつまで、駄々こねてんだ。
0272デフォルトの名無しさん
NGNGPostgreSQLかMySQLを改造すれば?
俺は今まで主キーにnullを許すRDBMSを見たこと無いが、
それはそれなりの理由があると思う。それが何かは知らないけど。
そういや、主キーは更新不可というRDBもあったな。
0273MB
NGNG初カキコなんですけど..........
0274デフォルトの名無しさん
NGNG>実装レベルでは、nullを許した方が性能がよくてもなおその定義に従うメリット
>はなんですか?
メリットなんかないよ。だから、>>271-272の言うように、自分の好きな
使用でRDBを作ってください。
0275デフォルトの名無しさん
NGNG主キーにnullを許すと、「null = nullが真」とせざるを得ない。
なぜならば、FKとしてそのPKを指定したときのことを考えれば明らか。
一方、「nullはあらゆるものと一致しない」という定義がある。
これは矛盾している。
主キーにnullを許すのであれば、「null=nullが真」という前提で
理論構築、実装をしなければならない。
そんなことするのめんどくさいし、移植性も損なわれるので、
既存の仕組みに従ったほうが良い。
これがメリット。
0276デフォルトの名無しさん
NGNGなんか神学論争みたいだね。
0277デフォルトの名無しさん
NGNGそんなことないよ。
単純に、tbl1.col1(PK) tbl1.col1(FK)のときに、
select tbl1.col2, tbl2.col2 from tbl1, tbl2
where tbl1.col1 = tbl2.col1
がマッチしないよってだけ。だから、nullは「一意」という場面では
使えないよってこと。
使いたければ、ありとあらゆるものを変更する必要があるよってこと。
0278デフォルトの名無しさん
NGNG(正)単純に、tbl1.col1(PK) tbl2.col1(FK)のときに、
0279デフォルトの名無しさん
NGNGヤパーリ、神学論争だ。
イスラムを侵攻するなら偶像を破壊せよ!
0280デフォルトの名無しさん
NGNGだから、違うって。純粋に集合論モデルの問題。
上のほうで誰か言ってたけど、E.F.Codd博士もnullの取り扱いには
困ったらしい。何度か理論体系の方向転換をしたらしいぞ。
0281デフォルトの名無しさん
NGNGいかに論理に忠実か、なんだろうね。
0282デフォルトの名無しさん
NGNGおまえら説明してください。
0283デフォルトの名無しさん
NGNG一度でも学んだことがあるかどうかも併記して置きなさい。
0284デフォルトの名無しさん
NGNG検索が頻繁に行われる行以外のインデックス対象列をすべてNULLに
設定しておくとインデックスの件数を抑制でき、NULL以外の行の
検索速度を上げることができる。
パフォーマンスチューニングのテクとしては結構知られている手法だ。
0285デフォルトの名無しさん
NGNG中学校でてれば計算できるよね。
高校卒業してるんだったら、列の選択時にNullかどうかをチェックするコストも
全体の計算量に入れてみてね。
選択した列のがNullになっているかどうかをチェックするアプリケーションの
チェックにかかる計算料も数えておくとさらによいね。
0286デフォルトの名無しさん
NGNG0287デフォルトの名無しさん
NGNGで教えてもらったテクだよ。
0288デフォルトの名無しさん
NGNGJETエンジンのマニュアルか?
0289デフォルトの名無しさん
NGNGOracle7.0.x時代の話か?
0290デフォルトの名無しさん
NGNG8.0.4時代でっせ。
0291デフォルトの名無しさん
NGNGクラスタ化してるかしてないかの違いはあるがね。
0292デフォルトの名無しさん
NGNGnullは必要な時に使う。これ常識。
そんな小手先テクニックぎっしりのテーブルなんか使いたくないな(藁
0293デフォルトの名無しさん
NGNGその新規追加行をバッチ処理で夜間に更新する。
7千万件の全行を対象にしたインデックスだと数分かかる処理が、
新規追加行以外のインデックス対象列をすべてNULLにしておくと
インデックスは1万件弱の新規行のみで作られるため、処理時間が
数十秒になった。
0294デフォルトの名無しさん
NGNG設計が悪い(藁
0295デフォルトの名無しさん
NGNGどんな設計だったの?
0297さらでぃん
NGNG0298デフォルトの名無しさん
NGNGそれって、そもそもNull可にすべきだったカラムをNot Nullにしてたって
だけの話なんでしょ。それは概念モデルレベルでの設計ミス。
夜間バッチで大量に更新処理が入る場合は、Indexを削除して、
処理をするのが普通じゃないか?
Indexがある状況で、夜間バッチで更新時間を数分かかるのを
数十秒にするためだけに、Null不可のカラムをNull可にするのは
変だと思うぞ。
0299デフォルトの名無しさん
NGNG0300デフォルトの名無しさん
NGNG>そもそもNull可にすべきだったカラムをNot Nullにしてた
プライマリキーはNot Nullにできないんだよ。知らないの?
>Indexを削除して、処理をするのが普通じゃないか?
7千万件のうちの1万件を検索更新する処理にインデックス削除したらもっと遅くなるよ。
0301デフォルトの名無しさん
NGNG0302デフォルトの名無しさん
NGNG当該のカラムはプライマリーキーの中のいカラムなんだよ。
0303さらでぃん
NGNG効果はどうあれ、理論に抵触する設計は認められないって立場なんだよ。
0304デフォルトの名無しさん
NGNG話が良くわからんが、主キー以外のカラムで、Null可にすべき
カラムをNull不可にしていた。そこにIndexを作成していた。
で、それをNull可にしたら速くなった。
つーこと?
だったら、もともとNull不可にしてたのが間違い。
Indexの再作成は確かに遅そうだな。俺の間違い。撤回する。
0306さらでぃん
NGNG本来主キーの中であるべき1カラムのムライマリキー制約を外し、
ユニーク制約のみにした。
それにより、夜間バッチで更新対象の1万件以外の当該カラムを
NULLにすることが可能になった。
0307292
NGNGwhere col1 = col2
とやっていたはず。
ところがこれをnull可にすると、マッチするはずだったものがマッチしなくなる。
で、全体を見直し、プログラムの変更をし、テストしなおす必要がある。
別に「理論」でいっているわけじゃなくて、null値属性を変えると、
とんでもない作業が発生する可能性があるから、良く考えて
設計しておくって話。
0309デフォルトの名無しさん
NGNG要するに、本来主キーでないものを主キーにするために、無理やり
Not Nullにしてたってこと?
だったら、それこそ設計ミス。
0310デフォルトの名無しさん
NGNGテクニックをごっちゃにするから話がおかしくなる。
E.F.Coddを起源とするRDBのモデルにいちゃもんをつけたいなら、
新規にモデルを提唱して広めろ。誰も止めんぞ(藁
0311デフォルトの名無しさん
NGNGきちんとRDBの仕組みを理解しろ(w
0312デフォルトの名無しさん
NGNGお前ら刹那的すぎ。
教科書レベルのRDBの設計の基礎を押さえているだけで
貴重な人材だと言うことでよろしいか?
0313デフォルトの名無しさん
NGNG違うか。
0314デフォルトの名無しさん
NGNG教科書レベルの事もきっちり押さえていない奴多すぎる。
0315デフォルトの名無しさん
NGNGデース
0316デフォルトの名無しさん
NGNG0317デフォルトの名無しさん
NGNG>>56
RBSとかTEMPとかREDOLOG置き場とかINDEX領域とかUSER領域とか、
同じディスク装置の上に入れてるだろ。
OracleのDBA向けの本を買って、テーブルスペースの
切り方を学んで、稟議書を書いてHDD買い足しなさい。
物理的に、それらのセグメントを分割しなさい。
0318デフォルトの名無しさん
NGNG「正規化」を勉強してから出直せ(プププ
0319デフォルトの名無しさん
NGNGというか、教科書レベルを*理解できない*奴が多いみたいだな(藁
0320デフォルトの名無しさん
NGNGいいかんじに知識が偏るらしいな
0321312
NGNGワシの暇をつぶしてくれ
0322デフォルトの名無しさん
NGNG的確な洞察により、反論は無いと思われます(藁
0323デフォルトの名無しさん
NGNG0324デフォルトの名無しさん
NGNG空白も入る。
dateやdatetime型はDBの種類によって精度が違うし、
バージョンによってサイズや精度が変わる(かもしれん)ので
あまり推奨されていない。
0325デフォルトの名無しさん
NGNGDATE型なんて使わないな。
ついでにCHAR型も使わない。
NUNMER型も使わない。
全部VARCHAR2型だな。
使うときにキャストすればいい。
0326デフォルトの名無しさん
NGNG0327プミポン
NGNGついでに全部Varchar2(2000)すれば?
ExcelやAccessのValiant型と同じ。
0328デフォルトの名無しさん
NGNG0329デフォルトの名無しさん
NGNG0330デフォルトの名無しさん
NGNG0331デフォルトの名無しさん
NGNG使うのが吉。つーか、常識。
CHARにこだわるのは、化石COBOLER。あるいは、ネタ。
0332デフォルトの名無しさん
NGNGで日時未入力はNULLでいいの?
0333デフォルトの名無しさん
NGNGいいよ。
上のほうでNullがどうこう言っているのは「主キーにNullを使いたい」という
野に対して「それは駄目」と言ってるだけ。
0334デフォルトの名無しさん
NGNGそれもNULLがらみだったね。
NULLは諸悪の根源なのか??
0335デフォルトの名無しさん
NGNGまぁ、ここで「Nullを使いたい」と主張していた人は、
「だってそのほうがインデックスが小さくなるし、検索が速いでしょ」
が理由だからねぇ・・・。
同値関係の彼とはレベルが違うよ・・・。
0336デフォルトの名無しさん
NGNG検索速度が20%(当社比)アップしました
NULLキーマンセー
0337デフォルトの名無しさん
NGNGDATE型使うと何が「吉」なの?
0338デフォルトの名無しさん
NGNG別にいいこと有るわけではないよ
0339デフォルトの名無しさん
NGNG・RDBが用意しているSQL関数が使いやすい。
・表示フォーマットを操作しやすい
・日付の妥当性チェックなどをクライアントアプリでやらなくてよい
・バイト数が少なくてすむ
0340デフォルトの名無しさん
NGNG日付型にしておく。これ常識。
0341map
NGNGDTWA000I: Net.Data detected an internal error DTWL032I: While communicating with
the specified SMTP server, the SMTP server returned the following error message:
0342デフォルトの名無しさん
NGNG>日付の妥当性チェックなどをクライアントアプリでやらなくてよい
普通アプリでやるだろう。
オラクルのエラーメッセージなんかエンドユーザ向けに表示したら起こられちゃう。
0343デフォルトの名無しさん
NGNG(おたくが使っている)SMTPサーバとの交信中に
SMTPサーバは以下のエラーメッセージを返しました。
以下がねぇじゃねーか。
というより、エラーメッセージを
トラップできてないだけかもしれないが。
0344デフォルトの名無しさん
NGNGやらないよ。特にOOでは。
0345デフォルトの名無しさん
NGNG「一意制約違反」みたいなメッセージをそのままユーザに見せるの?
0346デフォルトの名無しさん
NGNG0347デフォルトの名無しさん
NGNG339ではないが、
DBエラー番号があるだろう。
できれば、それもトラップして
ユーザ向けにメッセージ表示する。
342のところはDBのアクセスは全て
(業務)APなのか?
また、APに日付チェックを忘れた場合、
それにより引き起こされるデータ不整合の
被害の可能性と、
たとえ、ネイティブエラー表示で
ユーザが怒ったとしても、その場で
遮断するのと、
システム(会社)にとってはどっちが安全か?
強固なシステムはDBに業務ルールを
できるだけもたせる。
コンパイルチェックと
同じだ。
0348デフォルトの名無しさん
NGNGIntをChar型で保存しても良いわけだが、そうはしない。
それと同じ。
0349デフォルトの名無しさん
NGNGクライアントでするかサーバでするかは同でもいいんだけど、
RDBMSが発行するエラーメッセージを生でユーザに見せるのか?
って聞いているんだけど。
0350デフォルトの名無しさん
NGNGDBMSが変わったら業務アプリ大改造だね。
0351デフォルトの名無しさん
NGNGあたりまえじゃん。
RDBを単なるデータストアとしてしか使ってないの?
0352デフォルトの名無しさん
NGNG何をそんなにこだわっているのかわからないけど、当然見せないでしょ。
0353339
NGNG>普通アプリでやるだろう。
うん、やってもいい。
日付型を使えば「やらないという選択もある」ということ。
例えば「ドメイン」という概念がある場合、それをRDBMSがチェックして
くれれば、クライアントアプリではやる必要ないでしょ?
そんな感じ。
>オラクルのエラーメッセージなんかエンドユーザ向けに表示したら起こられちゃう。
どちらにせよ、エラーメッセージは変換してユーザに見せます。
0354339
NGNGINSERTなんかで、「RDBが日付と判断できるフォーマット」であれば、
どういうフォーマットでもいいよね。
それと「ドメイン」というのは、例えば「郵便番号」とか「電話番号」とか
「メールアドレス」とか。
「メールアドレス型」ってのがDBに用意されてたら、それを使いたいと
思わない?
0355デフォルトの名無しさん
NGNGいちお同意。
でもさぁ、なんかVBの「勝手にキャスト」みたいに、
なんとなく気持ち悪さが残ってしまう部分がない?
けっきょく使うけどな(ワラ
0356デフォルトの名無しさん
NGNG集中させています。DBMSの機能を使ってできるチェックは限られているから結局アプケーション側
にも妥当性チェックは残る。だったらいっそ、アプリケーション側にロジックを集中させようとい
う発想です。データベースへのアクセスはすべてそのクラスを通じて行うのでDBMSの制約機能を
使う必要はありません。だからDBMSはただのストレイジです。
最初は違和感があったけど、これはこれで理にかなっていると思う。
ちなみに、カラムは全部Varchar2(2000)です。各カラムの桁数制限やデータタイプは、それ用の
ユーザーテーブルで管理しているので、桁数、データタイプの変更はダイナミックに
行うことが可能です。
0357デフォルトの名無しさん
NGNG0358デフォルトの名無しさん
NGNGそれはそれでいいんじゃない?
XML on RDBMSなんか、その方法を取ってるものも多いみたいだし。
どこでエラーチェックをするのか、どこにビジネスロジック層を
構築するのかは、それぞれのシステムのポリシーで決めればいいことだしね。
ただ、メタデータをもRDBで管理してしまうと、パフォーマンスの検証や
保障が難しくない?
0359デフォルトの名無しさん
NGNG開発終盤で品質テストを行うころに、DBから無駄なチェックをはずしていく。
入力データくらいかなあ。厳しくチェックするの。
あとは参照整合性制約程度でいいんでない?
0360デフォルトの名無しさん
NGNG>全部Varchar2(2000)
つーのはアバンギャルドだな。
シパーイしても性交してもそのプロジェクトの結果を教えてくれ。
0361デフォルトの名無しさん
NGNG別のセッションでDROPしちゃったらどうなるの?
また使用中にDROPしちゃってすぐにCREATEしても
大丈夫?
0362デフォルトの名無しさん
NGNG排他が効いて削除できないだろ。
CREATEし直してもよいが、
そんな場当たり的なadminがいる職場は
いつか必ず何か大きな失敗をするぞ。
0363デフォルトの名無しさん
NGNG消せるんじゃないか?
DROPしたりCREATEしたり、アプリの中でやっているのか?
まさかね.....
0364デフォルトの名無しさん
NGNG索引を付ける他に何かよい方法はないですか?
0365デフォルトの名無しさん
NGNG0366デフォルトの名無しさん
NGNGリアル系のアプリが動いているまっ最中に索引を消したり作ったりするのか?
索引が消えている瞬間にアクセスしたら悲劇だな。
データに不整合が発生することはないけどな。
0367オラクルマスター(ブロンズ)
NGNG更新が遅い場合は更新前にインデックスを削除し
更新後に作成するという意見を頂ました。
さっそくその通りやろうかなと思ったのですが
>>361で書いたように他のセッションで使用中の
可能性があるわけでして・・・
0368デフォルトの名無しさん
NGNGそんなに長く排他を保持するのか?
リアル処理ならロックを保持しているのは普通一瞬だろう。
0369デフォルトの名無しさん
NGNG削除->更新->再作成は、オンライントランザクションがないと
保証された時間帯にやるならいいけど、
だれかが繋いでるかもしれないときにやるのは馬鹿。
あと、本当にそのインデックスが有効に使われているかどうか
調べて、それほど処理に貢献していないようなら消しちゃうのも手だぞ。
0370オラクルマスター(ブロンズ)
NGNGいえ。インデックス削除から作成までは
1秒もかからないです。
その間にインデックスを使っているセッションが
あったらどうするんだ!って言われて、、、答えられなかったです(泣
0371デフォルトの名無しさん
NGNGOracleのスキーマ、scottの上で業務を行っている者は
手を挙げなさーい。
0372デフォルトの名無しさん
NGNG使っている人がいたら1秒ほど遅くなるだけだと思うが......
別に検索が不整合になるわけでもないし、インデックスに排他検索
をかけているバカもいないだろ。
0373オラクルマスター(ブロンズ)
NGNGご意見ありがとうございます。
インデックスはちゃんと使われておりました。
あと更新する行やインデックスのPCTFREE等の値を
いろいろ変えてためしたのですが処理速度に
変化なしでした。。。
0374デフォルトの名無しさん
NGNG索引のDROP&CREATEが1秒くらいなら、索引を使っている人があったと
しても全然気がつかないと思うYO。
「その間にインデックスを使っているセッションがあったらどうするんだ!」
『どうもしません。どうなると言うんですか?』と答えろYO。
0376オラクルマスター(ブロンズ)
NGNGそうなんですか?
例えばインデックスを削除した直後に別のセッションで
インデックスが貼ってあった表を問い合わせをした
場合はインデックスは使われないですよね?
という事はその問い合わせ処理は重くなるのですよね?
0377オラクルマスター(ブロンズ)
NGNG表領域は索引用の表領域がありまして、
CREATE INDEXの時にそれを指定しております。
0378デフォルトの名無しさん
NGNGその1秒ほどの隙間にはまればな。
でも、その不幸な処理はバッチ処理のように大量処理じゃないんだろ。
インデックスが効かなかったからといって絶望的に遅くなるわけじゃないんじゃないか?
もしその1秒にはまる処理が存在するのがイヤなら、そのインデックスが
ついている表全体に排他をかけちゃえよ。そうすれば1秒の隙間にはまる
ことはない。
0379369
NGNGあとは、専門家にきちっと見てもらわんとわからんわ。
0380デフォルトの名無しさん
NGNG0381デフォルトの名無しさん
NGNGOMブロンズなら一応専門家じゃないか?
0382オラクルマスター(ブロンズ)
NGNG排他ってSELECT文にFOR UPDATEをやればいいのですか?
FOR UPDATEはSELECT文も待ち状態に出来るのですか?
レベルが低くてゴメンなさいm(_ _)m
0383デフォルトの名無しさん
NGNGそうだよ。for updateだよ。
1秒くらいなら表ロックしても問題ないでしょ。
0384デフォルトの名無しさん
NGNGパフォーマンスチューニングの専門家に頼めということ。
性能評価やってる会社とかツールあるよ。
0385オラクルマスター(ブロンズ)
NGNGぜんぜん違います。
専門家に頼めるような予算がなくて。。
>>383
インデックス削除前に表ロックすれば良いのですね?
ありがとうございました。
>>384
ここで聞くのも勉強になりますね。
0386デフォルトの名無しさん
NGNGツール高いよね。
俺のところじゃ、SQL Expertってのを使っているが90万ほどする。
0387デフォルトの名無しさん
NGNG手を打っておくべきだと思うけどね。
専門家を雇ったら90万じゃ済まないヨ
値段に見合わないなら、チューニング止めちゃ売ってのも手だね。
台数にもよるけど、PCサーバならCPU取っ替える方がやすいし。
0388デフォルトの名無しさん
NGNGウソ教えちゃった。排他はFOR UPDATE? と聞かれて思わず
YESと答えたけど、前のレスの流れだとテーブルロックのことだった。
テーブルロックなら、
LOCK TABLE テーブル名 IN EXCLUSIVE MODE WAIT;
です。
0389デフォルトの名無しさん
NGNGこれがPart1じゃないのか?
0391デフォルトの名無しさん
NGNG検索処理はロックされないぞ。
それにDDL(createやdrop)文は実行直後に
強制commitされる(transaction処理不可能)。
従ってロックをかけても無駄に終わる。
更新処理はユーザから不満が出るほど遅いのか?
インデックス再構築に1秒くらいだったらそれ
ほど遅くはならないと思うのだが。
対象処理で発行されるupdate文は1文だけか?
それとも複数発行されるのか?
なんかAP側のロジックの問題くさいが。。。
0392デフォルトの名無しさん
NGNG0393391
NGNGそれより、更新対象行を特定するのに
インデックスは使っているのか?
パフォーマンスにおける
インデックス作成と更新処理は
相反するものだが、
おれは、インデックス更新より、
更新対象行を特定するのに、
テーブルスキャンする方がオー
バヘッドが高いと思う。
更新処理のクエリプランを調査し、
更新対象行の特定にきちんとインデックスが
使われているか確認すべし。
0394デフォルトの名無しさん
NGNGオラクルマスターという素養は役立つだろうけどね。
Nullがどうのとかごねるやつの何倍もまし
0395デフォルトの名無しさん
NGNGインデックスを削除すると更新が速くなるって書いてなかったっけ?
そんなような気がしたから、インデックス更新にかかるコストに
着目してたんだが..
0396393
NGNGおれの予想通り、現在、更新対象行の特定に
テーブルスキャンしているのならば、
削除前と削除後を比較すれば削除後の
パフォーマンスはインデックス更新
処理が抜ける分当然上がる。
削除前はテーブルスキャン+更新+インデックス更新
削除後はテーブルスキャン+更新
ということだ。
だから、
インデックススキャン+更新+インデックス更新
がもっともパフォーマンスが上がるのではないか
ということ。
この場合は2つのインデックスの更新をしなけれ
ばならないがテーブルスキャンよりもパフォーマ
ンスは良いと思う(はずだ)。
そこの現場を見たわけでもないから、あくまで予想で
はずれかもしれないが、考えられる要因のひとつでは
ないかと思う。
0397デフォルトの名無しさん
NGNGI/Oにかかった時間の平均をドライブごとに調べろ。
でないとなんで遅いのか想像でしか語れない
0398デフォルトの名無しさん
NGNGNullがどうのとかごねるやつの方が何倍もまし
0399オラクルマスター(ブロンズ)
NGNG午後はずっと本と会社のOracleの設定とのにらめっこでした。
初期化ファイルのパラメータはとても重要なんですね。
全部デフォルトだったような・・・
皆さんはどうやって値を決めてるんですか?
とりあえず本に載ってたように
shared_pool_sizeは30M
db_block_buffersは10Mにしました。
log_bufferは1Mにしました。
1つ疑問に思ったのですがdb_block_bffersの単位は何ですか?バイトではなさそうなんで・・・
今は5000に設定しています。
db_block_sizeが2048だったので2048*5000で10M?
みたいな感じにしました(汗
最初の設定は3200だったのでサイズの認識としては間違ってないのかなと・・・
>>398
NULLがどうのこうの言う人なんているんですね。
何でだろう?
更新が遅いという件なのですが更新前にインデックス削除
更新後にインデックス追加という方法が採用されました。
皆さんありがとうございます。
これからもよろしくお願いします。です。
0400デフォルトの名無しさん
NGNGお勉強日記は、自分のホムペでやってくれ。
0401デフォルトの名無しさん
NGNG0402デフォルトの名無しさん
NGNGんだけど、どうやって作ったらいいの?本屋行って、本、見てもデータベースソフトの利用の仕方
とかしか載ってなくて困ってます。
0403デフォルトの名無しさん
NGNGまっどてぃーちゃー
0404デフォルトの名無しさん
NGNGんだけど、どうやって作ったらいいの?本屋行って、本、見てもデータベースソフトの利用の仕方
とかしか載ってなくて困ってます。
0405デフォルトの名無しさん
NGNG要求されてるんだ?
0406デフォルトの名無しさん
NGNGシリアライズでデータを永続化する程度のものじゃない?
0407デフォルトの名無しさん
NGNGそれはインデックスファイル
0408名無しさん@徒歩で帰宅
NGNGまったくだ。『学校の課題』って言うけど、どーゆー学校の、
どーゆーコースの、どーゆー進度で出された課題なんだい?
それから、『データベース』について。
俺が厨房だった15年前、名前と住所と電話番号だけしか登録できなくて、
ソートも検索もできないような住所録プログラムを BASIC で作ったけど、
それも一応データベースの実装例と呼びうるし、Oracle とか SQL Server
みたいに複雑で巨大なヤツもそうだ。
つまり、データの入力、保存、出力の機能が実装されていれば、概念的には
一応データベースの実装といえるわけ。
『学校の課題』にしても『データベース』にしても、言葉がカバーしてる範囲が
広すぎて答えようがない。その範囲をもっと狭めるような説明をしてくれれば、
具体的なアドバイスもできるけどね。
つーわけで、これ以上のことは、404 のレス以降に。
0409デフォルトの名無しさん
NGNGか?
0410デフォルトの名無しさん
NGNG0411デフォルトの名無しさん
NGNGちょっと大変ですが、
何とか間に合うでしょう。
0412デフォルトの名無しさん
NGNG0413デフォルトの名無しさん
NGNG絶対無理。最低でも10日はかかる。
0414デフォルトの名無しさん
NGNG0415デフォルトの名無しさん
NGNG0416デフォルトの名無しさん
NGNG0417デフォルトの名無しさん
NGNG0418デフォルトの名無しさん
NGNG0419名無しさん@徒歩で帰宅
NGNGすぐにでも世界に羽ばたいてくれ。
…っと…感情的になっちゃったけど、よく読んでみれば、別にフル
スペックのSQLとは書いてないな。
416の言うとおり。
たとえば、CREATE TABLE と DROP TABLE の実装だけなら今日の
午前中にできるぞ。
とかゆって、氏ね!ボケが!
0420デフォルトの名無しさん
NGNG画面からSQL入れて、結果を画面で表示する程度のリレーショナルデータベースなら、
SQLがフルスペックでも1週間あれば出来る。
サーバでのセキュリティや負荷分散まで実装すると、1ヶ月くらいかかる。
とかゆって、氏ね!ボケが!
0421デフォルトの名無しさん
NGNGCREATE TABLE送ればいいだけでは?
0422デフォルトの名無しさん
NGNGですね。
0423デフォルトの名無しさん
NGNG0424デフォルトの名無しさん
NGNG0425名無しさん@徒歩で帰宅
NGNGそれだめ。
既製のDBにアクセスできるだけよ。
0426デフォルトの名無しさん
NGNGさすがにネタでしょう。
っていうか、ここまでくると、質問もネタなら、回答もネタだらけって感じだね。
0427仕様書無しさん
NGNG0428デフォルトの名無しさん
NGNG0429デフォルトの名無しさん
NGNG0430map
NGNGさらに教えてください。net.dataとSQLでコメント行を記載するにはどうしたらいいですか?
0431デフォルトの名無しさん
NGNGえーと、net.dataが何なのかしらないんだけど、SQLのコメントということなら、
--(行コメント。ほとんどのDBで使える)
/* */(部分コメント。非標準)
が使えます。
はずした?
0432404
NGNGめちゃくちゃ苦しんでおります。
リレーショナルデータベースを実装せよ。
データベース操作機能として,SELECT演算,PROJECT演算,
そしてJOIN演算を実装せよ.また,データベース検索機能として,
述語形式の検索式によるマッチング機能とユニフィケーション機能を実装せよ
(実装には今回実装したデータベース操作機能を利用せよ).
課題3で実装したプログラムを利用して複数のオンラインオークションサイト
(Yahoo!オークションなど)から得た情報の分析を支援するシステムを実装せよ.
具体的には,オンラインオークションサイトから得たデータを今回の課題で
実装したデータベースに入力し,ユーザがデータベースを利用して商品の分析
(ソート,特定の条件を持つ商品のピックアップなど)ができるようにすること.
0433デフォルトの名無しさん
NGNG0434デフォルトの名無しさん
NGNG隣の席の高橋君に聞きたまえ。
0435デフォルトの名無しさん
NGNG0436404
NGNGどのようにやればいいのでしょうか?
0437デフォルトの名無しさん
NGNG(javaで作るのは果てしなくばかばかしいがな)
0438デフォルトの名無しさん
NGNG又のお出では御遠慮下さい。
0439デフォルトの名無しさん
NGNGindex_statsの値が増えてパフォーマンスが落ちるね。
これを増やさないようにする方法ってある?
REBUILD以外で。
0440デフォルトの名無しさん
NGNG>>439は俺の知らないRDBMSだからどうでもいいんだけど。
0441デフォルトの名無しさん
NGNGどうでもいいなら書くなよ。
つーかオラクルだろ?
どう考えても。
バージョンはわからんが。
0442デフォルトの名無しさん
NGNGこまめにコミットしろ(藁
0443デフォルトの名無しさん
NGNG0444デフォルトの名無しさん
NGNG0445デフォルトの名無しさん
NGNG参考になりそうなサイトありませんか?
それと、ODBCって古いのでしょうか。
0446デフォルトの名無しさん
NGNG0447デフォルトの名無しさん
NGNG0448デフォルトの名無しさん
NGNGマジですか?
じゃあ何が速いの?
0449デフォルトの名無しさん
NGNGoo4o、ADO
0450デフォルトの名無しさん
NGNGマジで言ってます?
0451デフォルトの名無しさん
NGNGOO4OはOracle専用だし。
0452デフォルトの名無しさん
NGNG0453デフォルトの名無しさん
NGNG早い
0454デフォルトの名無しさん
NGNG呼んじゃった方が速くない?
0455デフォルトの名無しさん
NGNG設計でカバーできない部分は、
ハードでカバーすりゃいい。
0456デフォルトの名無しさん
NGNG他のDBは知らん。
0457デフォルトの名無しさん
NGNGPro*cobolもね
0458デフォルトの名無しさん
NGNG0459デフォルトの名無しさん
NGNG0460デフォルトの名無しさん
NGNG迷信じゃないよ。
0461デフォルトの名無しさん
NGNG0462デフォルトの名無しさん
NGNG0463デフォルトの名無しさん
NGNGリンクテーブルの元のテーブル名って取れるんでしょうか?
(Odbcリンクの時は、DSN)
Adoxを使えば、
Propertiesの「Jet OLEDB:Link Datasource」「Jet OLEDB:Remote Table Name」
から取れるんですけど、速度などの関係で、
できれば使いたくない。
どなたか教えてください。お願いします。
0464デフォルトの名無しさん
NGNG0465デフォルトの名無しさん
NGNGローカルマシンにあるMDBならDAO使ったほうが幸せになれるよ〜
0466map
NGNGありがとうございました。m(_ _)m
0467map
NGNGDB2のテーブル定義を作成しています。
チェックデジットを使った管理番号を用意したいのですが、
属性はIntegerでよいのでしょうか?
ほかのがよければ、最適な定義を教えてください。
また、チェックデジットを自動で行う機能はあるのでしょうか?
それとも、自分でプログラムしないとだめですか?
0468デフォルトの名無しさん
NGNG客「あー、管理番号なんですけど、仕入れ業者は商品によっては -Aとか-Bをつけるんですヨー」
↓
SE Σ(゚д゚lll)ガーン
0469デフォルトの名無しさん
NGNGハハハ、ありがち、ありがち。
0470デフォルトの名無しさん
NGNGサブキーとして分類記号や枝番をつけるのは
けっこうあるから注意。
客先の担当者を小一時間ほど問いつめてミロ。
0471デフォルトの名無しさん
NGNG0472デフォルトの名無しさん
NGNG0473デフォルトの名無しさん
NGNG0474デフォルトの名無しさん
NGNGいや、ファイル共有で壊したんだろと予想age
0475デフォルトの名無しさん
NGNG0476デフォルトの名無しさん
NGNG0477デフォルトの名無しさん
NGNGああ、でも、担当地区毎にxlsファイルを分けておけば...
え、え、そんな、まさか?age
0478デフォルトの名無しさん
NGNG0479デフォルトの名無しさん
NGNG0480デフォルトの名無しさん
NGNGところで誰か真相教えて
0481デフォルトの名無しさん
NGNG0482デフォルトの名無しさん
NGNG今まで訊けなかったことがあります。今日は思い切って
訊いちゃいます。
Webと連動したDBで、例えば PostgreSQL + PHP + Apache のような場合に、
Postgreにトランザクション開始の「begin;」を送るPHPのページに
Web利用者がアクセスしたとしよう。
で、commitするまでの間に、他のWeb利用者がこのPHPページにアクセスして
もういっちょ「begin;」送っちゃったら、Postgreからみると同一ユーザが
beginを二回送ってきたことになるんだよね? これって処理がおかしく
ならないの?
つまりさ、不特定多数のユーザが使用するWeb + DBシステムにおける
トランザクション処理っていうのは、同時アクセスのことを考えると
実現できないんじゃないかと思ってるんだけど、そこら辺どうなんですか?
0483デフォルトの名無しさん
NGNG別プロセスだから大丈夫
0484デフォルトの名無しさん
NGNG0485デフォルトの名無しさん
NGNGPostgreSQLはコネクションごとにバックエンドが別プロセスになるのよ。
0486デフォルトの名無しさん
NGNGって突っ込みはないのか?
0487デフォルトの名無しさん
NGNGふつうはページごとにconnectionがcloseされるからトランザクションは
アボートされるけど、persistent connectionの時は注意が必要だね。
0489482
NGNGありがとう。長年の疑問が解決されました。
>>486, 487
そっか、プロセス毎なら基本的に単一ページ内でcommitしないと
ダメだね。複数ページに渡るトランザクション処理は書いた
ことないけど。
0490デフォルトの名無しさん
NGNGexcelのシートに対してもsqlつかえるんですか?
0491デフォルトの名無しさん
NGNG昼飯食っても終ってないやないか。
0492デフォルトの名無しさん
NGNGODBCで繋げば可。
やってみれ。
0493.490
NGNG確かにデータソースに指定できますね。驚きました。
でもselectのfrom句には何を入れたらいいんですか?
SQL>select * from [?] ;
0494.490
NGNGhttp://webtech.gihyo.co.jp/uldev/uldev_sanko.htm
0495.490
NGNGみたいな範囲指定もできるみたいですね。
updateなんかもできるのかな?
0497デフォルトの名無しさん
NGNG0498デフォルトの名無しさん
NGNG0499デフォルトの名無しさん
NGNGoracle8iで9桁の数値(管理用の番号)があって、それをSQLで
上3桁-中3桁-下3桁っていうふうに分けたいんだけど、
なんかスマートな方法ない?
今は
select trunc(hoge/1000000) as hoge1,
(trunc(hoge/1000)*1000-trunc(hoge/1000000)*1000000)/1000 as hoge2 ....
とかやってるんで泥臭い。
で、これがキーになって他のテーブルとリレーションとってるんだけど、
RDBの設計として
1.はじめから3つのフィールドに分けて管理する
2.上記のように表現部をなんかの手段でサバく
3.2つ用意する
のどれが本筋なんでしょ?
個人的には2なんだけど・・・
0500デフォルトの名無しさん
NGNGんでもってTO_CHARとSUBSTRINGの組み合わせでindexをはっとく。
0501499
NGNG多謝!
こんな便利なものがあったとわ・・・
ちゃんとSQL勉強しないとだめだな。
明日リファレンス本買ってこよっと。
で、リレーションの取り方なんですが
なんとなくindexはuniqueにしたいんだけど・・・
RDB初心者なんで、全然わかってない上での考えなんだが、
今の個人的な考えとしてはDBはデータの器なんで出来るだけシンプルに
設計してるんだけどこの考え方って間違ってるの?
んなんで、今作ろうとしてるのは
Table:データの器(リレーションはこっちでとる)
View:クライアントで使ったりするためにTableを整形したもの
つー感じで作っとります。
0502デフォルトの名無しさん
NGNG0503デフォルトの名無しさん
NGNG普通 1 だろ。
テーブル構造見た時にキーフィールドが明確でないってのは好きじゃない。
0504デフォルトの名無しさん
NGNG>>494
見たいなサイトでテキスト(CSV)ODBC接続を解説してあるサイトっ
て無い?
色々調べたんだけど、なかなか良いサイトが無かった。
ttp://www.dd.iij4u.or.jp/~wanderer/sp/data/vbs/15.txt
↑みたいなサイトは見つけたんだけど、データソースとかスキーマファイル
の仕様解説とかがあるサイト知っていたら教えてください。
0505499
NGNGなる。
で、気になってるのは、数十のテーブルとその番号をキーに
リレーション取ってるわけで、なんか各テーブル全部に3つフィールド
用意するのはなんか美しくないなーと思った次第で。
今やってるのは、現状動いてるものの標準化なんだが、
もし、キーが増えた場合(可能性結構高い)、
1つのキーならケタを増やせばいい(つーか多めに取ってる)けど、
3つに分けて設計したんだったら、各テーブル全部にフィールド
追加しないといけないし・・・
正規化の考えから逝けば分けるのが本筋だろうが、
リレーションとるのは1つのuniqueなフィールドのほうが綺麗かなと。
標準化考えずに作るべきか・・・
0506デフォルトの名無しさん
NGNG管理番号id, 管理番号a, 管理番号b, 管理番号c
というテーブルを作って他のテーブルでは管理番号idとリレーションを取れば?
0507499
NGNG9桁の番号は、保守的には意味がありますが、他の点では意味がないです。
んなんで、リレーションのキーをsequenceとかで作ってもいいんですが
それをやるとリレーションを切ったり戻したり出来なくなりそーなんで
最初の案に行き着いたと。
2つ用意しといて、Triggerとかでリレーションのキーを作る方が
保守しやすいんで、その手で逝ってみます。
実際運用してる人たちはどう設計してるんだろ?
自分の環境小出しにする初心者君になってもうた(鬱
0508名梨産
NGNGVCでODBC経由でMS-SQLServerにアクセスするアプリを開発したいのですが、
DBはVBでJetを使ってローカルのMDBをいじったことしかありません。
どこから手をつけたものやら。。。
参考になるサイトなどあればお教えください。
0509デフォルトの名無しさん
NGNGSQL Server 相手なら普通ODBCではなくADOじゃないの?
それとも、VCで組む場合は ODBC の方が一般的なのかな?
0510デフォルトの名無しさん
NGNG一般的ってことはないよ。
0511タンポポ
NGNG情報とファイルに格納することと、データベースに格納することとの違いって何ですか?
最近になってパソコンをいじり始めたので・・・
0512Kusakabe Youichi
NGNG> 情報とファイルに格納することと、データベースに格納することとの違いって何ですか?
それは「データベースとは何か」っていう質問にすぎないですね。
ひとことでいえば、
すばやく検索したり利用したりするための仕掛けや整頓つきかどうか
っていう違いでしょう。
> 最近になってパソコンをいじり始めたので・・・
そんなことをいちいち言い訳するやつは馬鹿です。
0513デフォルトの名無しさん
NGNGデータベースは超高機能なファイルです。
0514デフォルトの名無しさん
NGNGDBにデータを格納すれば再利用しやすい。
0515デフォルトの名無しさん
NGNG単なるデータストレージではなく何重にもデータを守る仕組みがあるよ。
0516デフォルトの名無しさん
NGNG例えるならば
ファイルに保存する→タンス預金。
DBに保存する→銀行に預ける。
0517デフォルトの名無しさん
NGNG0518デフォルトの名無しさん
NGNG使ってられねぇぞという事でよろしいですか?
0519デフォルトの名無しさん
NGNGほうが効率的ということでいいですか?
0520デフォルトの名無しさん
NGNG単なるファイルを、専用プログラムで読み書きするよりも使いやすいです。
初めて dBase�V使った時は感動しました。
0521デフォルトの名無しさん
NGNG0522デフォルトの名無しさん
NGNGあれってセグメントの%なの?
それともエクステント?
PCTFREEが50で1エクステントが10Mの場合
5Mが常に空き状態って意味なのですか?
それとも指定出来るのですか?
例えば、表領域でとか、セグメントでとか、エクステントでとか。
わかりづらい説明で申し訳ないのですが、よかったら教えてください。
少し気になったもので。
0523Error401
NGNGデータブロック(だっけか?)の領域に対するパーセントです。
ブロックサイズって指定したでしょ。あれ。
4KブロックでPCTFREEが50%の場合、1レコード100バイト使うなら
20レコードINSERTするとそのブロックは一杯になり、次の1レコード
をINSERTしようとすると、次のブロックが使われる。
んで、何レコードか削除した後でINSERTするとき、いつでも今削除した
ブロックが再利用されるというわけではない。PCTUSEDを切る所まで
削除したときに再利用される。
簡単に説明するとこんな感じかな。
0524デフォルトの名無しさん
NGNGどうコーディングしたらよいか、教えて下さい
テーブル キー 条件
----------------------------------------------
(1)
MST1 KEY1 MST2.TYPE = 'A' (MST2.ID = MST3.ID)
MST2 ID
MST3 KEY1
(2)
MST4 KEY1 FLG = '1'
KEY2
(3) MST5 KEY1
KEY2
※(1)でMST1よりKEY1を取得
(2)で(1)と紐付くMST4のKEY2を取得
(3)でMST5より(2)で取得したKEY2の金額を取得
金額の集計単位はMST1の月単位
尚(2)で取得したKEY2は以降の処理で使用する為ワークに保存する
0525デフォルトの名無しさん
NGNGどうコーディングしたらよいか、教えて下さい
テーブル キー 条件
----------------------------------------------
(1)
MST1 KEY1 MST2.TYPE = 'A' (MST2.ID = MST3.ID)
MST2 ID
MST3 KEY1
(2)
MST4 KEY1 FLG = '1'
KEY2
(3) MST5 KEY1
KEY2
※(1)でMST1よりKEY1を取得
(2)で(1)と紐付くMST4のKEY2を取得
(3)でMST5より(2)で取得したKEY2の金額を取得
金額の集計単位はMST1の月単位
尚(2)で取得したKEY2は以降の処理で使用する為ワークに保存する
0526デフォルトの名無しさん
NGNGもう少し具体的な質問をしろ。
(1)PL/SQL上でのデータの検索(SQL検索)の仕方がわからない
(2)データの検索方法はわかるが、検索した結果を次のSQLへ使う方法
が分からない。
(3)そもそも、PL/SQLのコーディング方法が分からない。
とりあえず、ソース晒してみそ。
0527Error401
NGNGそもそも、Queryのレベル(Joinの方法とか、集計関数の使い方とか)が
わからないような気がするんだけど・・・。
ってことで、
(4)クエリーが思い浮かばない
も選択肢についかー。
0528デフォルトの名無しさん
NGNGとりあえず作ったんですが。エラーが出ます教えてください。
java.sql.SQLException:[Microsoft][ODBC Microsoft Access Driver]パラメータが少なすぎます。1を指定してください。
いったいどういう意味なのでしょう。
0529デフォルトの名無しさん
NGNGそのまんまです。
クエリを開くときのパラメータが足りてないっす。
0530デフォルトの名無しさん
NGNGどうすればよいですか?
パラメータはプログラムから引き渡す数値のことですか?
ResultSet myRs = mySt.executeQuery("SELECT * FROM FRIEND_DAT WHERE Number=\"" + number + "\"");
WebページのフォームからNumberを指定すると、DBから検索してレコードを出力するようにしたいのですが。
Numberのフィールドにあるデータを指定しているのですが。
0531デフォルトの名無しさん
NGNGクエリーがよくわかりません。
とりあえず頑張って書いてみました。
ASの使い方もよくわかりません。
SELECT SUM(M5.KINGAKU),
MTUKI,
MBILLCODE,
MKEY2,
FROM MST5 M5,
(SELECT M4.KEY2 AS MKEY2,
M1.TUKI AS MTUKI,
M1.BILLCODE AS MBILLCODE
FROM MST1 M1,
MST4 M4
WHERE M1.KEY1 IN
(SELECT M2.KEY1
FROM MST2 M2,
MST3 M3
WHERE M2.ID = M3.ID
AND M2.TYPE = 'A')
AND M1.KEY1 = M4.KEY1
AND M4.FLG = '1'
ORDER BY M1.BILLCODE,
M1.TUKI)
WHERE M5.KEY2 = M4.KEY2
GROUP BY MBILLCODE,
MTUKI;
もう1つ質問です。
DATE型の日付から年月だけとるにはどうしたらいいですか?
0532デフォルトの名無しさん
NGNGとりあえず、Execute時に使用されているSQL文をデバッグかなんかで表示して、
そのままコピペでAccessのクエリに張ってみ。
0533526
NGNG亀レススマソ。
ところで>>531で書いたクエリーは動いたんか?
少なくとも、入れ子の中のORDER BYはいらないと思うのだが・・・
んで、このクエリーはPL/SQLを使わないでSQLだけでやろうとしたも
のだよな?PL/SQLを使うんだったら、>>525で書いた(1)〜(3)
のクエリーを別々に書いてみそ。値を指定できない部分があると思う
けど、それは変数に置き換えてな。まずはそこからだ。
後、ASの使い方は列名に別名(エイリアス?)を与えるために使う。
例)
SELECT a.BBB FROM
(SELECT COUNT(*) AS BBB FROM TABLE1) a
こんな感じで、列名が存在しないものについても列名の定義が使える
ようになる。
DATE型の日付から年月だけとるにはTO_CHARを使う。
SQL PLUSで以下の様に叩いてみそ
SELECT TO_CHAR(SYSDATE,'YYYY/MM/DD') from DUAL
これで今日の日付が取れる。もちろん、この場合CHAR型に変換されている。
0534デフォルトの名無しさん
NGNG途中までいってX-Windowが入ってないと入れれないことを知って鬱
0535デフォルトの名無しさん
NGNGどっかにXserverが動くマシンがあれば、そこへ画面を飛ばしてやれば
OKなんだけど。その調子じゃ、それも無いんだろうな。
0536
NGNGJava部分はSolarisとかも同様
パッチとかでも使うのでXを入れる方向で設計しなおしとけ
0537デフォルトの名無しさん
NGNGたぶんインストールでしかつかわんし。
0538デフォルトの名無しさん
NGNG予算無い客のために同じものAccessで作れっつー話が来た。
Access使うのは気が向かないんでフリーのRDBMS使いたいと思ってるんだが
フリーのRDBMSってどうよ?
開発はDelでやってる&DBサーバーのOSはWinの可能性が高いんで
1. InterBase
2. MySQL
3. PostgreSQL
ぐらいで考えてるんだが、InterBaseのライセンスがいまいちわからん。
このへんのRDBMS業務で使ってる人いる?
0539デフォルトの名無しさん
NGNGというのはおいといて
業務に必要な用件が決まっていなければ、
Accessでやれってかんじだね。
InterBaseは詳しいことは知らない。
MySQLはISAM。軽いし、オンライン業務はそもそもこれで足りるものの方が多い。
PostgreSQLは、コミュニティの人には悪いけど、バグが目立つ感じ。
簡単にキャッチアップできる運営体制だったらこれでもいいよ。重いけど。
ただ単に金がないだけなら、Accessで十分でしょ。
バックアップや保守に掛ける金もないんだろうし。
0540一日がかり。
NGNG>●Oracle9i Database Release 1 for Windows NT/2000 EAP(早期アクセスプログラム) ダウンロード
>disk1〜disk3までがデータベースのファイルです。9ifsはOracle Internet File System for Windows NT/2000 R9.0.1のファイルです。
>
>ファイルダウンロード
>disk1.zip (512,263,014Byte)
>disk2.zip (585,422,601Byte)
>disk3.zip (151,381,927Byte)
>9ifs.zip (105,244,508Byte)
ま、待て・・・・・・1GB超をDLするんか(汗
0541デフォルトの名無しさん
NGNG小規模だがマルチユーザってならMSDE。無料。最強。
クライアントツールが無いのがアレだが、まあその辺の
SQLServerからひっこぬいとけ(ワラ
0542デフォルトの名無しさん
NGNGつまりAccessで作ったものを
Accessのインストールなし環境で使いたい。
0543デフォルトの名無しさん
NGNGでべろっぱーEditionならあるよ。
0544デフォルトの名無しさん
NGNG0545538
NGNGAccessでC/S組む自信が無いともいう(w
>>541
MSDEってDelと一緒に配布できないライセンスらしーな。
これよくしらんのだが、AccessがSQL Serverに見えるってかんじのもんなの?
Del使うのも結構いばらの道だな(w
0546デフォルトの名無しさん
NGNG0547デフォルトの名無しさん
NGNGselect * from a,b where a.code = b.code and a.code = '10';
と
select * from (select * from a where code = '10') a, b where a.code = b.code;
ってどっちが速いでしょう?
基本的には前者が速いと思いますけど
場合によっては後者が速かったりするのでしょうか?
速いってのは検索速度の話です。DBMSによっても変わったりするのかな。
0548デフォルトの名無しさん
NGNG0549デフォルトの名無しさん
NGNGなるほど。表を動的に作成しているのですね?
では、副問い合わせはなるべく使用しない方が
よいですね。
0550デフォルトの名無しさん
NGNGPostgreSQL で EXPLAIN(実行計画と予想コストの表示) したら同じ結果が出たよ。
その辺はオプティマイザ次第じゃないかとおもいます。
0551ElseIf
NGNG作っているんだけど、宿泊が月をまたぐ場合、レコードを1つ増やさなくてはいかん。
If Session("宿泊開始月") <> Session("宿泊終了月")でイコールでない場合
レコード追加ってどう書くの?ASPはVBScript使って書いてる。
ACCESSで次のレコードに移動とか言うのがあったようななかったような・・・
0552デフォルトの名無しさん
NGNGDBMSが最適なSQLに変換してくれるのでしょうか。
SQLを考えるとき、どうしても副問い合わせの方が
簡単に考えれるので多用してしまいます。
0553デフォルトの名無しさん
NGNG使用するDBMS次第でしょう。
一度、ご自分の環境でテストしてみては?
0554デフォルトの名無しさん
NGNGオプティマイザ。
0555冬厨なのれす
NGNGIf Session("宿泊開始月") <> Session("宿泊終了月") Then
Connection.Execute("INSERT INTO ...")
End If
0556ElseIf
NGNGありがとうございます〜!!何だかうまくいかないんですけど(w
頑張ってみます!!
0557デフォルトの名無しさん
NGNG> MSDEってDelと一緒に配布できないライセンスらしーな。
VBの適当なプログラム混ぜりゃ良いじゃん。
それこそメインメニューをVBで作り、主要処理は全部Delにするとか。
> これよくしらんのだが、AccessがSQL Serverに見えるってかんじのもんなの?
違う、SQL ServerからGUI管理ツールを取っ払い最大DBサイズを2GBとしたもの。
0558538
NGNG> VBの適当なプログラム混ぜりゃ良いじゃん。
あんた頭いいな(藁
> 違う、SQL ServerからGUI管理ツールを取っ払い最大DBサイズを2GBとしたもの。
Access∈SQL Serverってことれすか?(∈の使い方あってる?)
0559557
NGNGというか
ACCESS2000を使う場合(それ以前のバージョンはネイティブは無理)
Jetベースだと *.MDB、SQL Serverベースだと *.ADPという拡張子の別物になる。
ADPだとテーブル、ビュー、ストアドプロシージャ等の作成が出来る。
それ以外にもコマンドベースのOSQLってのもある。
でもやっぱりエンタープライズマネージャーとBookOnlineは有ったほうが良い。
0560デフォルトの名無しさん
NGNGMSはクライアント数5以下を推奨してるみたい。
ただしちゃんとしたクラサバになるから、Accessオンリーの時みたいな
ダルい組み方すると後で泣く事になるかも。
>559
クエリアナライザも〜
0561デフォルトの名無しさん
NGNG0562デフォルトの名無しさん
NGNG0563デフォルトの名無しさん
NGNGOfficeのCDに入っとるで
0564デフォルトの名無しさん
NGNGコンポーネントのインストールでMSDEのみを入れることは出来ないのかな。
0565デフォルトの名無しさん
NGNGOffice2000(又はAccess2000)の \SQL\x86\Setupから 「Setupsql.exe」を実行。
Access2000+MSDEによる「体験的」 SQL入門:山田健一著 技術評論社 2380円(税別)
程度は買って読んだ方が良いかと思われ。
(個人的にはテーブル、フィールド名に日本語を使いまくるので違和感あるが...)
0566デフォルトの名無しさん
NGNGちょうど間違ってSQL Server2000のCD\MSDE\setup.exeしてたとこですぅ。
0567デフォルトの名無しさん
NGNGSQL Serverとして起動するようになちゃった。やっぱ本なきゃ出来ないな。
使い方がすげー分かり難いのはどうかと思うな。
0568デフォルトの名無しさん
NGNGレコードが20万件あり、そのうちの複数Colに対してフリーワード検索をかけたい
のですが、単一テーブルにも関わらず6秒ほどかかってしまいます。
where col1 Like '%keyword%' or col2 like '%keyword%' or ...
と書いているので、当然インデックスは使われていません。
このようなクエリーをを実用レベルの速度(2秒以内)で返すにはどのような
方法があるのでしょうか。
0569デフォルトの名無しさん
NGNGスキーマとサンプルデータを教えなさい。
0570568
NGNGID serial,
noSearch1 varchar(16),
noSearch2 varchar(16),
Search1 varchar(255),
Search2 varchar(255),
noSearch3 varchar(12),
noSearch4 varchar(12),
Search5 varchar(8),
Search3 varchar(20),
Search4 varchar(80),
Search5 varchar(255),
Search6 varchar(16),
Search7 varchar(16),
Search8 varchar(80),
Remarks9 varchar(80),
CreateTime date,
UpdateTime date default current_date not null,
);
データは、住所、名称、ふりがな、電話番号、などです。
検索対象のカラムにはとりあえずインデックスは張ってあります。
宜しくお願いします。
0571デフォルトの名無しさん
NGNGなるでしょう。indexがbtreeである必要がある。
これではだめ?
0572568
NGNG前方一致、後方一致ともにかけたいのです。
0573デフォルトの名無しさん
NGNG10000rpmのディスクを買うとか(w
0574568
NGNGありがとうございました。
0575デフォルトの名無しさん
NGNG0576PPP
NGNG助言をいただけないでしょうか?
下記のテーブルでtimeが新しく入っているgroup順で、
出力したいのですが、わかるかた、教えていただけないでしょうか?
お願いいたします。
テーブル
number | group | time | name
----------------------------------------
1 | 1 | 02/01/11 21:00 | taro
2 | 2 | 02/01/11 21:01 | jiro
3 | 1 | 02/01/12 03:03 | momo
4 | 1 | 02/01/12 04:03 | pepe
5 | 1 | 02/01/12 06:03 | toshi
6 | 2 | 02/01/14 18:02 | mama
7 | 3 | 02/01/15 18:00 | mmmm
8 | 4 | 02/01/15 18:04 | jjjj
9 | 1 | 02/01/16 21:00 | test
出力後
number | group | time | name
----------------------------------------
9 | 1 | 02/01/16 21:00 | test
5 | 1 | 02/01/12 06:03 | toshi
4 | 1 | 02/01/12 04:03 | pepe
3 | 1 | 02/01/12 03:03 | momo
1 | 1 | 02/01/11 21:00 | taro
8 | 4 | 02/01/15 18:04 | jjjj
7 | 3 | 02/01/15 18:00 | mmmm
6 | 2 | 02/01/14 18:02 | mama
2 | 2 | 02/01/11 21:01 | jiro
0577デフォルトの名無しさん
NGNG日本語も不明瞭。
nameが入ってきた順に出力したいというだけではないの?
もし、INSERTしかしない(UPDATEなし)なら
select * from table でいいじゃん。なにも小細工する必要なし。
0578デフォルトの名無しさん
NGNG今は4gigくらいのメモリは簡単につめるから
確かに可能だな
0579575
NGNGっしょ?
チューニングよか前にハードスペック上げたほうが安いケースが多いし。
もちろん、しっかり設計・実装されているという大前提があっての話だけどね。
0580デフォルトの名無しさん
NGNG挿入&更新を頻繁に行わないのであれば、
検索用の列を追加してそこに各列の値を結合した物を入れておき、
その列に対して部分一致検索をかける。
それでも満足な速度が得られないならば、
全文検索ソフトとの連携を検討する。
0581デフォルトの名無しさん
NGNGMySQLはトランザクションがない。
あっても限定されてる。なくても
いいなら高速でいいけどね。
0582まりりん
NGNG現在、PostgreSQL7.1を使用してます。
group番号が同じもので登録日が新しいものを
優先して表示するので、groupの番号が同じ
ものをひとつのかたまりにして、3つかたまりを
表示したいのですが、selectで行おうと思うのですが
どのようにしたらよろしいでしょうか?
select * from tetable order by group desc,
登録日 asc; まではできたのですが・・・・。
対象のテーブル(tetable)の内容
group | name | 登録日
---------------------
2 | 太郎 | 02/22
4 | 真美 | 02/21
2 | 一郎 | 02/12
1 | 雅恵 | 02/11
2 | 花子 | 02/04
3 | 次郎 | 02/04
5 | 聡 | 02/03
4 | 正子 | 02/02
1 | 太郎 | 02/01
※ 結果
group | name | 登録日
---------------------
2 | 太郎 | 02/22
2 | 一郎 | 02/12
2 | 花子 | 02/04
4 | 真美 | 02/21
4 | 正子 | 02/02
1 | 雅恵 | 02/11
1 | 太郎 | 02/01
0583デフォルトの名無しさん
NGNG結果セットに 5|聡|02/03を含まないのは、記述ミス?仕様?
0584デフォルトの名無しさん
NGNG0586デフォルトの名無しさん
NGNGこれで望みの結果がでそうだけれど、何が問題になっているの?
groupは予約語だから避けたほうがいいと思うぞ。
0587デフォルトの名無しさん
NGNGことを指しているのか
0588デフォルトの名無しさん
NGNG5 | 聡 | 02/03
4 | 真美 | 02/21
4 | 正子 | 02/02
3 | 次郎 | 02/04
が求める結果か?ちゃんとかいてくれよ〜
0590588
NGNG雰囲気
select * from hoge where grp in
(select grp from hoge
group by grp
order by max(登録日)
limit 3
);
見たいなことができればいいのだろうけれど、これは動かない。
サブクエリー単体なら動くので結果をどっかに保存して
select * from hoge where grp in (結果) order by grp , 登録日 desc
それか別テーブル一つ作って各グループの最終登録日を記録
しておくとか。
0592568
NGNG>580
それを試したところ、2秒程度で返ってくるようになりました。
あとは本番機のスペックに掛けてみる、といった状況です。
>591
無知で申し訳無いのですが、これってNamazuみたいな全文検索システムの
ロジックですか?DBのフィールドに対して使えるのでしょうか?
みなさんありがとうございました。
0593デフォルトの名無しさん
NGNG全文検索の一種だよね?分かち書きして、
単語拾ってインデックスはるだけ?
0594デフォルトの名無しさん
NGNG掲示板のようにフリーフォーマットのテキスト文書を送信し、
WEBで表示するアプリケーションがあります。
文書の本文はファイルに、検索用の索引はDBに格納しました。
ここで、「なんでDBに本文を格納しないんだ?」と問われ、
「メリットがない、使い勝手が悪い」と答えました。
「もっと説得力の在る反論はないのか?」と返されました。
さて、テキストファイルをDBに格納することの
是非について、意見をお願いします。
0596デフォルトの名無しさん
NGNG> さて、テキストファイルをDBに格納することの
> 是非について、意見をお願いします。
メリット:
WEBサーバーが複数台(複数クライアント構成)の場合、
DBのテーブルに入っている方が共有しやすいです。
またOracleやSQL Serverなら全文検索インデックスをかけ
ることができます。
バックアップをとるときに、まとめてとれるので管理コス
トが少ないかも知れません。
デメリット:
古いPostgreSQLなどでは1カラム・サイズに制限があった
気がするので、大きなテキストだと問題が出るかも知れませ
ん。
オラクル等でも1レコードが大きくなると、検索効率が低下
します。
※とりあえず思いついただけ・・・
0597594
NGNGこちらは一台のマシンにPostgreSQL+CGIでクライアントは
IE/Netscapeという構成です。掲示板風のソフトだから
文字化け警戒してMIMEかUUENCODEして入れるか
ラージオブジェクトかってハナシが出てます
(そこまでして入れなきゃだめかって疑問があります)。
昨今、テキストや画像なんかを格納する機能
(BLOBとかラージデータというもの?)が追加されている
みたいなんですけど入れる理由、入れない理由ってのが
いまいち掴めなくって。
0598デフォルトの名無しさん
NGNGInteBaseってどうですか?
VBからでも使えますか?
0599デフォルトの名無しさん
NGNGInterBaseね
0600デフォルトの名無しさん
NGNG素直にAccessにしといたら?
0601デフォルトの名無しさん
NGNG少なくとも6.0は使えるみたいけどなー。
http://www.borland.co.jp/interbase/
フリーの4.0だっけ?かは知らん。
つか、素直にMSDE。
http://www.microsoft.com/japan/developer/vstudio/msde/
0602まりりん
NGNGお騒がせしました。
0603デフォルトの名無しさん
NGNGデータベースに入れておけばよかろう。
使われたキーワードや解析など文書の有用性はあると思う。
タイトルでなくて文書内でのキーワード探索ぐらい
あって当然だし
0604デフォルトの名無しさん
NGNGInterBase = Borland の有償パッケージ
Firebird = 無償版 InterBase
ただし InterBase, Firebird はベースは同じだが、
細かい機能がそれぞれ異なる。
ちなみにオレは今 Firebird 1.0 RC2 使ってる。
Win, Linux, FreeBSD, Solaris, ... などマルチプラットフォーム対応。
Delphi との親和性が高いけど、インタフェースはいろいろあるからVB でも当然使えるはず。
なんと言っても軽量、メンテが楽、バックアップが簡単などの特徴をもつ。
詳しく知りたければ↓ここを見れ
http://www.ibphoenix.com/
0605デフォルトの名無しさん
NGNGviewは遅いYO!
0607デフォルトの名無しさん
NGNGどういった環境(ソフトやプログラミング)が最適なのでしょうか?
OSはWindowsです。
どなたかご教授願えませんでしょうか?
0608デフォルトの名無しさん
NGNG要件が漠然としすぎているのでなんとも言えないけど...
いっちゃんありがちなパターンとしては
言語はVB or Delphi 、DBはOracleかSQL鯖(デスクトップ版)って感じじゃないかなぁ。
DBの制限を考えると、件数よかデータサイズのほうが問題だね。
0609デフォルトの名無しさん
NGNG漠然としててごめんなさい。まだその段階なので。
MS-SQLServerでも200万件の処理は可能なのですね?Oracle高すぎて…
あとはデータサイズや、それを十分に処理できるハード側の問題でしょか?
0610608
NGNGSQL鯖のヘルプによると
>テーブルごとの行数 使用可能な記憶領域によって制限されます。
ってあるんで、よほどヘボいハードでない限りはデータ件数面での問題は無し。
スタンドアロンって事なので、適切なテーブル・インデックスの設計がされていれば
パフォーマンス面も問題無いと思うよ。
0611デフォルトの名無しさん
NGNGコスト掛けてまで SQLServer にする必要があるのか疑問に感じる。
スタンドアロンアプリで。
0612607
NGNGそうするとスタンドアロンで使う分には、SQLserverやOracleを使うことに
なんのメリットも無いということでしょうか?
0613デフォルトの名無しさん
NGNGもちろんサポートなし。ORA-600なんぞ出た日にはその処理は諦めるしかないけど
アヤシゲな新機能使わなきゃ地雷踏むこともないでしょ。
0614デフォルトの名無しさん
NGNG書くのでしょうか?例えば検索したい文字列が「'98」の場合です。
strSQL = "select * from hogeTable where field1 = "
ここからどうやって書けばいいのでしょう?
Oracle、SQLServerではどのように書かれていますか?
よろしければ教えて下さい。
今まで作ったものには、「'」や「"」で検索できない(;_;)
ことにしています。
保存する時はDAOを使っていたので問題なかったのです。
恥ずかしいです。
0615デフォルトの名無しさん
NGNG>そうするとスタンドアロンで使う分には、SQLserverやOracleを使うことに
>なんのメリットも無いということでしょうか?
将来LAN, WAN に拡張して大規模になるのなら、有償のDBMSの方がいいかもしれない。
もちろんケースバイケースで。
たいした規模じゃなければホント、フリーで充分だよ。
まぁ、フリーって言っても充分な機能持ってるものもあるから時間があれば
調べてみる価値があると思う。
顧客からそれなりの金取れて&楽したいならOracle でも何でもいいし。
0616デフォルトの名無しさん
NGNGここで聞いた方がいいと思われ。
http://pc.2ch.net/test/read.cgi/tech/1005078204/l50
0617614
NGNGどうもです。あちらできいてもいいのですが、Access以外の
話も聞けるとしたらここかなと思って(w
0618デフォルトの名無しさん
NGNGInterBase/Firebird でもやったけど、
シングルクォート(ダブルクォート)2つ付ければいい。
Access でも試してみたけど同じだったよ。多分他でも一緒だと思われる。
例1)1'23 を検索
select * from hogeTable where field1 = '1''23'
または
select * from hogeTable where field1 = "1'23"
例2)1""23 を検索
select * from hogeTable where field1 = '1"23'
または
select * from hogeTable where field1 = "1""23"
DBMSによっては文字列リテラルの指定はダブルクォート囲みを対応してないものがあるから、
シングルで囲むようにした方がよいと思う。(SQL教科書みればシングルしか使ってない。)
select * from hogeTable where field1 = '文字列'
というように。
0619618
NGNG× 例2)1""23 を検索
○ 例2)1"23 を検索
0620614
NGNGなるほど〜2つ並べるのですね。
SQL文中で文字列を指定する場合は、「'」を使っています。
strSQL = "select * from hogeTable where field1 = '1'23';"
(Accessです)と送っていたので、Jetから「なんじゃゴルァ!」と
突っ込まれていたのです。
次回にこっそり修正して、密かにバージョンアップすることにします。
あろがとうございます!
0621デフォルトの名無しさん
NGNGwin98+VB5.0+ACCESS97の環境において、データ登録件数がほとんど増えていない
にも関わらず、一ヵ月後にはファイル容量が10倍になりました。
これは、どのような原因が考えられるのでしょうか?
また、この問題を回避もしくは解決する方法はあるのでしょうか?
プログラム自体は、追加更新削除を行うものです。
データベースは、テーブルが30、登録件数4万ほどです。
データベースへのアクセスは一日に2000アクセス以上です。
よろしくお願いします。
0622デフォルトの名無しさん
NGNG最適化してサイズが劇的に小さくなるならそれだと思いますが。
0623デフォルトの名無しさん
NGNGワークテーブルは使用していません。
最適化で確かに劇的に用量が小さくなります。
これは、大量のアクセスによって自動的に容量が増えていくものなのでしょうか。
最適化しか方法はないということですか?
プログラマーとしては回避しようがない、Accessの問題ということですか?
0624sage
NGNGつーか毎日やれ。
バックアップとってからやれ。
0625login:Penguin
NGNGこれは難しくてなかなかとおらないなぁ
0626622
NGNG読み取りのみのアクセスならサイズは増えないはずです。
どこかでレコードの大量追加・削除をしていると思いますなぁ。
まぁ最適化すりゃ解決って事らしいんで終了時に自動で最適化
するようにすりゃとりあえずOKじゃないッスかね?
(>624さんの発言通りにバックアップ取ってから。)
0627デフォルトの名無しさん
NGNGアクセスのMDBの肥大化は、ある程度大きくなったところで止まりますよ。(私の所では...)
登録件数4万件なら大きくなっても数十MBでしょうから、気にしなくてもよいのでは。
0628デフォルトの名無しさん
NGNG読んでるんだけど、ハッシュって何?
キー値からレコードアドレスを導き出す
と書かれてるけど、どうやって??
0629デフォルトの名無しさん
NGNG0630デフォルトの名無しさん
NGNGしてた。先に説明しろって感じ。
俺プログラムってベーシックしか知らん
けど、ハッシュ関数って便利なランダム関数みたいな
もんなのかと理解。
0631デフォルトの名無しさん
NGNGなんか違うような。
まあ、気になるんならアルゴリズムの本読むのが良い。
0632632
NGNG正しい意見だとは思うけど、まったくの入門の状況であれば
データの格納場所を決めるためのランダム関数 でもいいじゃん。
厳密な定義は、またの日に勉強するってことで。駄目かなぁ?
>>628=630は、だいたい判ったんだよね?
1000個のアドレスがあって、
格納するデータのキーが 000 から 999 までの
整数で、かつ、それらに重複
0633632
NGNG=================================
キーが 000から999までの正整数であるとして、
かつそれらに重複が無い場合、
キー自体をアドレスにできる、ってのは判ると思います。
で、現実問題として、キーの部分を(例えば16進で評価して)
そのまま数字にすると、格納するためのアドレスが広大になるわけです。
てなわけで限られた領域の中に、データを振り分けるため
そういうものを使うことになります。
具体的な計算方法については、631 のかたが書かれたように、
アルゴリズムの教科書を読めば(本屋で立ち読みして該当個所を
読む程度でOK)よいと思います。
0634デフォルトの名無しさん
NGNGうぉっっ!なんて親切なんでしょうありがとう!
大体(イメージで)分かります。私の持ってる
本には読み進めると、自乗中央法、除算法、奇数変換法、
シノニムとかの説明がありました。何か回りくどい
所が好きです。
自分は実はあのマイクロソフトのアクセスやってて
それの入門書とか読んでも納得いかない部分が多く、
それならリレーショナルデータベースってのは
具体的にどういうデータの処理がなされている
かが分かれば良いのだと思い、前に書いたデータベース
の本を読んだり、こちらにお邪魔した次第でございます。
失礼しました。
0635631
NGNG同じデータに対しては必ず同じ値を返すってことね。
ランダム関数だってシードが同じなら同じ値が返るけど、
普通はそれを期待しないだろうし。
633に補足すると、キーが文字列であったときも、
文字列とアドレスの紐付けのルールさえ決まればいいってこと。
この紐付けのルールがハッシュ関数な。
0636632
NGNGまったくおっしゃるとおり。
ハッシュを説明しろってのなら、
キー値(input) に対するアドレス(output) の対応付けは
一意であることを明示せずにおり、ハッシュをランダム関数の
ようなものとして括ることを見過ごすのは不適切でした。
猛省デス。
0637デフォルトの名無しさん
NGNG0638login:Penguin
NGNGいいよ(CTC)
0639デフォルトの名無しさん
NGNGわかんねー。どなたか厨にでも分かる説明キボン。
0640デフォルトの名無しさん
NGNG1)ODBC経由
2)telnet接続(SQL*Net)
で測ったら、2)telnetの方が2倍以上速い感じなんですけど、
こういう場合telnet接続でプログラム作るべきですかね?
出力の解析工数が余分にかかりますけど。
0641デフォルトの名無しさん
NGNGスピード稼ぎたいんならなるべくストアド化してサーバ側で
処理するようにしたほうが良い。
0642デフォルトの名無しさん
NGNGoo4o 使え
0643デフォルトの名無しさん
NGNG目先の高速化は、なんとなくやりたくなるけど、後で訳がわからなくなるかも。
処理内容を完全に忘れてからの仕様追加でも、すく思い出せるぐらい単純なのが良い。
0644デフォルトの名無しさん
NGNGギガビットのネットワーク組むのは反則?
0645デフォルトの名無しさん
NGNGODBC経由って何に比べても遅くない?
0646login:Penguin
NGNG0647デフォルトの名無しさん
NGNG質問の意味が良くわかりませんが、
ODBCでインタフェース作っておくと他のDBにも同じ形式でアクセス
できる(可能性がある)ってだけで、速度はあまり期待してないです。
0648デフォルトの名無しさん
NGNGODBCは極力使わない。
0649デフォルトの名無しさん
NGNGなんで?
0650デフォルトの名無しさん
NGNGマイクソソフト発祥の技術だから?
ドライバがクソだから?
0651デフォルトの名無しさん
NGNG648がVB厨房だから?
0652デフォルトの名無しさん
NGNGなんかさ、そう言う風に言われるみたいだけど、
結局明確な理由を聞いたことが無いな。
信憑性の無さそうな「効率」の話ではぐらかされる感じ。
0653デフォルトの名無しさん
NGNG根拠を示さない主張に従う。
0654デフォルトの名無しさん
NGNG特に嫌われてるわけでもないと思うけど。
0655DB初心者
NGNG単に格納するだけならバイナリ配列扱いにすればいいんですが(あってます?)、
文字列として部分一致検索をしたり、文字順に並べ替えをする場合には
やっかいなことになりそうな気がしますがどうでしょうか。
0656デフォルトの名無しさん
NGNGつうか、文字列格納するとき、どの文字コードにするかなんて考えたこと無いぞ。
おいらが無知なだけ?
0657デフォルトの名無しさん
NGNGいや、その通りでしょ。
実際どの文字コードを使うかはRDBMSに依るでしょ。いやOSに依るのかな?
誰かおしえて。
0658デフォルトの名無しさん
NGNG若しくはJDBCってのが今の標準的な
やり方なんじゃないの?
0659デフォルトの名無しさん
NGNG0660デフォルトの名無しさん
NGNGJDBCってJava以外でも使えるの?
0661デフォルトの名無しさん
NGNG>ネイティブインターフェイス、
つまりデータベース毎にバラバラってことでしょ?
なんで時代を逆行するような技術が主流なのか不思議・・
0662デフォルトの名無しさん
NGNGパフォーマンスの向上、自由度の高さ、信頼性あたりと思われ。
0663デフォルトの名無しさん
NGNG日本語のソートとかしないかぎり文字コードはあんまり気にしないんでいいんじゃない?
select * from test where name like '%山田%'
とかなら、文字コード関係ないし。
0664デフォルトの名無しさん
NGNG一
二
三
をSJIS文字コードでソートすると悲惨な結果に
0665デフォルトの名無しさん
NGNG0666デフォルトの名無しさん
NGNG日 num
---------
一 1
二 2
三 3
つう Table作って正規化すればよい (w
0667デフォルトの名無しさん
NGNG0668デフォルトの名無しさん
NGNG0669デフォルトの名無しさん
NGNG嫌な DB だなぁ。
って俺、ORACLE しか使ったことないから気にしてないんだけどさ。
0670デフォルトの名無しさん
NGNG本買って勉強しれ。
キーワードは「関数的従属」と「推移的従属」だ。
0671デフォルトの名無しさん
NGNGそーいう漏れはWin&Borland限定ならBDE。
# が、ADOもよさげ。
0672デフォルトの名無しさん
NGNGInterBase(FireBird)はどうだろう?
Oracleと違ってデータグリッドもそのまま使えるし
只だし(FireBirdは)結構よさげなんだけど
0673672
NGNG0674デフォルトの名無しさん
NGNGアクセスしたいんだけど、何か手段ある?
0675デフォルトの名無しさん
NGNG簡単だろ。
0676デフォルトの名無しさん
NGNGありがとう。
ODBCのほかになにかある?
0677デフォルトの名無しさん
NGNG0678デフォルトの名無しさん
NGNGえ、マジですか?
んじゃODBCで作るとしよう・・
0679デフォルトの名無しさん
NGNG0680デフォルトの名無しさん
NGNG0681デフォルトの名無しさん
NGNG0682デフォルトの名無しさん
NGNGOLE使う時点で却下なんじゃ?
て、そのレスって674の回答だよね?
0683681
NGNGMSでは、これからはODBCよりDB-COMを使え、っていう方向みたい。
VC6から簡単に使えるかどうかは知らないから、674の役に立つかどうか
わからないけど。
一応674-678関連レスということで
0684デフォルトの名無しさん
NGNG0685デフォルトの名無しさん
NGNG0686681
NGNGどうやらDB-COMというのは公式の用語ではなかったらしい。COMテクノロジーに基づいた
DBアクセス方法ということでご理解いただきたい。
でもってこのDBCOMの低レベルのインターフェースがOLEDB、高レベルのインターフェースがADO、
http://www.microsoft.com/data/oledb/default.htm
http://www.microsoft.com/data/ado/default.htm
ここのサイトに、VC用ののサンプルソースがあったので少し見てみました。
OLEDBの方は682さんが言うように、簡単ではないですね。ADOの方は比較する価値があるかもしれません。
まあODBC APIに比べると情報が少ないようですし、MFCからの移行ということであればODBC APIがベストかもね。
0687デフォルトの名無しさん
NGNGdump database でデータベースダンプを取ったとき、
できるファイルというのは、どれくらいの大きさになるの?
(圧縮率?とか?)
今度とりたいのは、DBが140MB トランザクション・ログが180MB。
Oracleだったら、確か元とほとんど同じ大きさだったよね?
目安でいいから判る人いたら教えて〜。
0688デフォルトの名無しさん
NGNGサイベースって判る人少ないからつらいよな…。
答えじゃなくてスマソ
0689デフォルトの名無しさん
NGNG0690デフォルトの名無しさん
NGNG0691デフォルトの名無しさん
NGNGInterBase使いたいんだけどな〜。
が、業務になるとなぜかOracle使えって話になる。
ISAMで十分なくらいの使い方しかしてないのになー(w
某のマーケがもっと強ければ・・・
> Oracleと違ってデータグリッドもそのまま使えるし
> 只だし(FireBirdは)結構よさげなんだけど
これって単方向データセットのこと?
dbExpressもTClientDataSet使えばよし。
Transaction管理も(多少)やりやすくなるし。
ただしTClientDataSetは(Initialが)劇遅という罠。
0692デフォルトの名無しさん
NGNGとかいう質問している時点で試験に受かるはずは無いとは思うけど、
まぁ参考までに聞かせてください。
大学で留年して時間が出来たので、資格でも取ろうかと思いまして。
0693デフォルトの名無しさん
NGNGそうは思うけどVB使うなんてしたくないよ
0694デフォルトの名無しさん
NGNGだったら国家資格にしときな
ベンダー試験は学生には金銭的に厳しいのでは
受験料1万で、3セットとってシルバー
プレミアムは12セットじゃなかったかなぁ、最速でも12万ってこと
(それもOracleのバージョンサポート終了と共に無効になる)
0695デフォルトの名無しさん
NGNG別にSilverを持っている必要は無いよ。
ただし、Platinumの必須試験科目にSilverの必須科目が
丸々含まれているので必然的にPlatinum=Silverとなるがな。
あ、ただし、Silverの申請をしなければSilverを持っていない
Platinumホルダーというのも可能だがな。
0696デフォルトの名無しさん
NGNG俺はOMの仕組みを全然知らないんだが、バージョンサポートって何?
国家試験だと「データベーススペシャリスト」とかいうのが過去にあったけど、
今は多分名前変わってるだろうな……
0697デフォルトの名無しさん
NGNG0698デフォルトの名無しさん
NGNG製品がバージョンアップする度(正確ではない)に
再試験しないとイカン、メーカー資格なんて無駄。
学生が勉強するような資格じゃない。あれは、会社に
報奨金を貰って受験するモノ。
0699672
NGNG>これって単方向データセットのこと?
>dbExpressもTClientDataSet使えばよし。
TClientDataSetはなんか挙動不審というか
バグってないか心配になってついSQLで直にデータを操作しちゃうんだよね
0700692
NGNG趣味の世界でしかプログラミングしてこなくて、
Webプログラミングに疎いから、資格の勉強の途中で……と思ったんだけど、
あまり良い選択ではないようなので考え直します。
ところで皆さん、データベースを経験するのに、どういう動機ではじめました?
仕事で覚えさせられた以外の人がいらっしゃったら、簡単に体験を教えてください。
コソーリと700get
0701デフォルトの名無しさん
NGNG最初は自宅にサーバ立てて遊んでたかなぁ?
0702デフォルトの名無しさん
NGNG> バグってないか心配になってついSQLで直にデータを操作しちゃうんだよね
というかBDEが(以下略
あいかわらずStartTransactionが挙動不審でよくわかんね〜し。
CacheUpdate使うと遅くなるしでわけわか。
>>697
VCLみたいなライブラリのっかるだろーからかなり楽なんでないかい?
0703デフォルトの名無しさん
NGNGオラクルってMySQLみたく自宅のサーバにひょいと入れられるんですか?
0704デフォルトの名無しさん
NGNG金さえ払えばな。自宅で入れるメリットは無いだろう。
PostgreSQLかMySQL入れておけばいいんじゃないの?
0705デフォルトの名無しさん
NGNG0706デフォルトの名無しさん
NGNG誰か簡潔に教えてくれ
0707デフォルトの名無しさん
NGNG0708デフォルトの名無しさん
NGNG個人で使っている限り、それほどメリットがないんだよ<ORACLE。
だからクラックなんて下らないことを考えてる暇があればフリーのを使えばいい。
ただ大規模になると、バックアップ等の部分でORACLEのメリットが増える。
で、そういう大規模なサーバの場合、社会的にクラックして使うのは許されない。
0709デフォルトの名無しさん
NGNGあなたがクラックするようなくだらない人間なら、Oracleの試用版は
夢のようでしょう、だって30日限定は文言だけで、なんら制限は
かかってないのだから。
ちなみにSQL Serverの試用版も同様。
0710デフォルトの名無しさん
NGNG大規模:Oracle
中規模:SQLServer, Postgres
小規模:InterBase, MySQL
ツール、インターフェイス程度:Access
くらいは異論はないだろう。(PostgresとMySQLの扱いは微妙なところだが)
「大は小を兼ねる」つー格言があるが、おれ的にはソフト設計にその考えを
いれるのはきらいだな。
0711デフォルトの名無しさん
NGNGSQL Server、Sybase ,Informix あたりは設計次第で
管理者不要なシステムができる、という感触。
経験的にトラブルの少ない Informix が好きなんだがなぁ。
0712デフォルトの名無しさん
NGNGいま、たいしたことないシステムを(w
Oracle使って作ってるんだけど、管理者って必要?
「規模が大きくなると管理者がチューニング?しないといけない」とかいうこと?
つーか、今作ってるシステムMSDEで十分なんだが(w
0713デフォルトの名無しさん
NGNGやっぱりPostgreSQL等のフリーなデータベースと比べると、サポートがあるのが売り?
知ってる人がいたら教えて
0714デフォルトの名無しさん
NGNG最近SQL Serverを触りだしたのよ。
で、質問なんだけど
SQL Serverで失っても構わないデータは障害直前30分前までの
データという用件があったら、トランザクションログファイルを
30分おきにバックアップ取らなきゃならないような気がするんだが、
この考えはあってる?
0715デフォルトの名無しさん
NGNGそれに oracle.com の方の OTN なら、堂々と
「開発用ライセンス(シングルユーザ)の Oracle 9i その他諸々、全部持ってけ〜!」
状態ですが。
ただし全部落としてたら誇張抜きに HDD の空き容量と相談が必要になる。
むろん、開発用途だから実務に使うことはライセンス上許されない(w
まあ、実務に使えてフリーが欲しいなら、Interbase なり MySQL なり、Linux 使って
PostgreSQL というのもありだしねえ。そっちのほうが Oracle 使うよリまとも。
今の Oracle は、よほどの大型案件でもない限りオーバースペックです。大抵は
PostgreSQL で間に合うはず。
0716デフォルトの名無しさん
NGNG0717デフォルトの名無しさん
NGNG聞いたことないっすか。
ほんの数年前までは、OracleのシェアなんてInformix,Sybase に
比べれば屁みたいなもんだったんスよ。
何がOracleに勝利をもたらしたのだろう。
でも、同様にOracleのシェアが数年後まで続いているかどうかも
怪しい所。
0718デフォルトの名無しさん
NGNG0719デフォルトの名無しさん
NGNGO'Reillyのおかげだ。
なにもかも。
マニュアルだけ読んでさあ、開発するぞ、ッ手やつはいないからな。
0720デフォルトの名無しさん
NGNG7.2 になって vacuum 中にロックがかからなくなったし。
これでオープンソース & フリーってのは凄いよ。
0721デフラグの名無しさん
NGNGSQLServerつったら、Sybaseでしょ。
0722デフォルトの名無しさん
NGNGしっかりしたDBの解説書を読んでりゃそういったこと、書いてあるのになあ。
やっっぱ、ナツメとか、ああいうのあけで済ますPG/SEは逝っていいと思うわけよ。
0723デフォルトの名無しさん
NGNG0724デフォルトの名無しさん
NGNGフリーならPostgreSQL、といった所なんでしょうか?
このスレを読んでると無性にデータベースを触りたくなったので、
自宅にPostgreSQLでサーバを立てて遊んでみたいと思います。
0725デフォルトの名無しさん
NGNG0726724
NGNG0727サンコンさん
NGNG"\'m_Com1\'" を読み取ってくれません。シングルコーテーションの中では
なくて、’’も含めて読み取りたいのです。どなたか教えて下さい。
ちなみに、m_Com1はメンバ変数です。全体のコードはこれでOKなのでしょうか?
CString strSql = "Select timem,exp,tostn from jikoku where ";
if(m_Com1 == ""){
strSql+= "Stn = " + "\'m_Com1\'" + " AND ";
}else if(m_Com2 == ""){
strSql+= "Goto = " + "\'m_Com2\'" + " AND ";
}else if(m_Com3 == ""){
strSql+= "Day = " + "\'m_Com2\'" + " AND ";
}
strSql+= "Timeh = " +m_ji;
m_Recordset.Open(CRecordset::dynaset,_T(strSql));
UpdateData(true);
m_Recordset.Requery();
0728デフォルトの名無しさん
NGNG0729デフォルトの名無しさん
NGNG0730デフォルトの名無しさん
NGNG罫線引いたりもできますか?
0731デフォルトの名無しさん
NGNGODBCはExcelのデータを取ってくるだけでしょう。
Excelの罫線を引くのは、CreateObjectでExcelを立ち上げて
VBAでコーディングしてやれば出来ますよ。
0732データベースを悉く知らない男
NGNGそれで、オープンソースのをデッバグしながら勉強したいのです。
それでVC6(スタンダド)とwin98を持ってるんです。
なにか良いデータベースはあるでしょうか?おねがいします。
0733デフォルトの名無しさん
NGNGとりあえず、データベースの何を勉強したいのか、
何が出来るようになりたいのかとか、目的をハッキリ
とさせた方が良いと思います。
ネタカト オモッタ・・・
0734デフォルトの名無しさん
NGNGやる気は買うから、おまえもせめてWin2Kくらい買え。
そしたらMSDEや開発者用ライセンスのOracleを使ってまともな勉強ができるぞ。
LinuxやFreeBSDを入れるのがもっとも手早いように思えるが
UNIXの操作経験ゼロだったら、やめとけ。
0735データベースを悉く知らない男
NGNGWin2k欲しいんですけど、お金がないです。それとPCもへぼいので
ものすごく遅くなりそうです。LINUXに移行するのはちょっと厳しいです。
とりあえず、MySQLって言うのを見つけたのでダウソしてます。
0736デフォルトの名無しさん
NGNGオレは高房の頃にはOSとコンパイラ買うためだけにバイトしたぞ。
あの数万円の投資が15年たった今では数千倍にもなって返ってきてるからよし。
0737デフォルトの名無しさん
NGNGそれなら安く買えるし、HDDと込みで買えば2万もせんでしょ。
0738デフォルトの名無しさん
NGNG無料のデータベースは魅力あるよね
Oracleを中小さんへ薦めるのはちと気の毒な気がする
0739デフォルトの名無しさん
NGNG人件費をケチる、というかゼロなとこが多いので、相手にしないのが一番。
0740データベースを悉く知らない男
NGNGC:\mysql\bin>mysqld
C:\mysql\bin>mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 3.23.49-max-debug
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
だって。やったーー
0741デフォルトの名無しさん
NGNGやったーー
で、なにすんの?
0742データベースをかなり知ってしまった男
NGNGmysql> CERATE DATABASE menagerie;
Query OK, 1 row affected (0.49 sec)
ターゲットのデータベースを設定
mysql> use menagerie
Database changed
テーブルを作成!!
mysql> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),
-> species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
Query OK, 0 rows affected (2.91 sec)
テーブルのないようを確認
mysql> DESCRIBE pet;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| owner | varchar(20) | YES | | NULL | |
| species | varchar(20) | YES | | NULL | |
| sex | char(1) | YES | | NULL | |
| birth | date | YES | | NULL | |
| death | date | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
6 rows in set (0.33 sec)
MySQL(・∀・)イイ! すごく(・∀・)イイ!
0743デフォルトの名無しさん
NGNGではとりあえずNULLを許可しない設定に慣れよう。
0744デフォルトの名無しさん
NGNG需要のある部分を勉強したいのですがオラクルなどは個人で購入するのは厳しいです
フリーソフト、Win、Linuxあたりで構築できればと思っています。
おすすめのDB、OS、接続方法(VB、JDBC,ODBC・・)などありましたらご教授下さい
また、データベースのインストールなどから学べる本とかありますか?
お願いしますm(_ _)m
0745デフォルトの名無しさん
NGNG0746データベースをかなり知ってしまった男
NGNGSQLの基本的なことはわかりました。
でもリレーショナルなことは載ってなかったです。
>ではとりあえずNULLを許可しない設定に慣れよう
NULLはなるべく許可しないほうがイイってことですか?
CREATE TABLE にNOT NULLを追加すれば良いんですね。
で、NULLの比較はIS NULLかIS NOT NULLを使うんでーす。
0747デフォルトの名無しさん
NGNGMySQLって副問い合わせ出来たっけ?
>744
それぞれ構築するモノによって本も違うんちゃう
需要があるって言葉が引っかかるが
オールフリーでやるなら、
OS:Linux
DB:PostgreSQL
Language:PHP
このあたりが無難じゃない?
未経験で仕事の需要があるって言えば、
OS:Win2K or Linux
DB:ORACLE
Language:VB
このあたりが無難じゃない?(解説本もたくさん出てそうだし)
0748デフォルトの名無しさん
NGNG使ってみたいが仕事がGUIクライアントばっかなんで
Swing使う気しないしなー。
つーのは考え方古い?
0749デフォルトの名無しさん
NGNGインタプリタが動いてもあまり嬉しくないんだが
0751デフォルトの名無しさん
NGNGなんでもいいよ。そんなもん。
プラットフォームを選べる立場なら Ruby/GTK がオススメ。
Java/Swing でも全然かまわない。
Windows オンリーってことでかまわないなら、Delphi が速度的にも最強。
0752デフォルトの名無しさん
NGNG契約テーブル
・契約No
・契約者名
・契約日
・サービス1
・サービス2
:
・サービス8 (サービス数:約40種 うち1顧客に付き8サービスまで)
現在上記のような形でフィールドが組まれております。
この方法だと40種のサービスがサービス1〜8のどこに何が入っているか解かりませ
んので、サービスフィールドを含む契約者リストを出すのにOR検索になります。
サービス数の増減は”有り得る”というくらいで、絶対に有るというわけではありませんでした。
ですから前任の設計者は上記のようなテーブルを設計したと思われます。
契約するサービスの数・種類は各契約者ごとに異なります。
このような場合、一般的にどのような設計になるんでしょうか?
どなたかご教授願います。
0753デフォルトの名無しさん
NGNG関連付け用テーブル
・契約No
・サービスNo
って感じで
0754752
NGNG早速のレスありがとうございます!
>関連付け用テーブル
ということはやっぱり1契約あたり8レコードとなるワケですね。
現在、約500契約/日なので単純に4000件。。かなりヘコみですね。
1契約に対して8件ですが、ちなみに極端な話100以上のサービスが選択可能と
なった場合もこのようなテーブル設計なのでしょうか?
0755デフォルトの名無しさん
NGNG全部の契約に8つサービスが付くのならそうだけど、そうとは限らないみたいだし
>100以上のサービスが選択可能となった場合
今の設計を拡張してひとつのレコードに100の項目を設けるよりはましでしょ
抽出も単純にできるし
もっといい方法があれば自分も教えとほしいと思いますけど
0756デフォルトの名無しさん
NGNGまた、SELECTで複数レコードが返ってきたとき、オブジェクトの
コレクションに変換するのを見たことがあるけど、その方が
やりやすいのかなぁ?
0757デフォルトの名無しさん
NGNG0758データベースをかなり知ってしまった男
NGNG>MySQLって、クライアント作るのどうしたらいいの?
ローカルWEB鯖立ててPHPでMySQLにアクセスできました。
<HTML>
<TITLE>MySQL TEST</TITLE>
<CENTER><B>MySQL のテストです。</B></CENTER>
<?php
// データベースに接続し、選択する
$link = mysql_connect("", "", "") or die("Could not connect");
print "Connected successfully";
mysql_select_db("menagerie") or die("Could not select database");
// SQLクエリを実行する
$query = "SELECT * FROM pet";
$result = mysql_query($query) or die("Query failed");
// HTMLに結果を出力する
print "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
print "\t<tr>\n";
foreach ($line as $col_value) {
print "\t\t<td>$col_value</td>\n";
}
print "\t</tr>\n";
}
print "</table>\n";
// 接続を閉じる
mysql_close($link);
?>
0759データベースをかなり知ってしまった男
NGNGムズイです。
0760デフォルトの名無しさん
NGNG富士通などでは、クラスにマッピングしてるみたい。
また、.NETもスキーマから自動でクラスにマッピングする。
0761760
NGNGテーブルに対しての結果セットは、コレクションとして返される。
0762デフォルトの名無しさん
NGNG今とパフォーマンスはどう変わる?
0763デフォルトの名無しさん
NGNG0764デフォルトの名無しさん
NGNGあっという間に破綻します。
0765デフォルトの名無しさん
NGNG多版型同時実行制御(MVCC)
とかいう機能で、ものすごい勢いで処理出来ない物かね。
0766デフォルトの名無しさん
NGNG実際のところ、DBに何を使うか、よりも
ネットワークのトラフィックの方が問題だと思われ。
0767デフォルトの名無しさん
NGNG破綻するなら簡単でいいので根拠がしりたい。
それと今の実装はどうなってるのかな?ソースどこにあったっけ
0768デフォルトの名無しさん
NGNG0769デフォルトの名無しさん
NGNGどうしても、というのなら Postgres + Usogres。
0770デフォルトの名無しさん
NGNGPostgresとPostgreSQLって同じだよね?
0771デフォルトの名無しさん
NGNGusogres ha siran
0772デフォルトの名無しさん
NGNG同じ。ぽすとぐれす・きゅーえる って正式名称で呼ぶのは面倒だから。
>>771
うそぐれすのおうち
http://usogres.good-day.net/
0773デフォルトの名無しさん
NGNGhttp://osb.sra.co.jp/PostgreSQL/Manual/
0774デフォルトの名無しさん
NGNGどうも面倒です。
コピーペしても複数行のやつだとうまく実行してもらえません。
テキストファイルにSQL書いてそれを食わすとか便利な方法教えてください。
よろ。
0775デフォルトの名無しさん
NGNG0776デフォルトの名無しさん
NGNG0777デフォルトの名無しさん
NGNGOTN
0778デフォルトの名無しさん
NGNG0779774
NGNG0780デフォルトの名無しさん
NGNGスクリプトファイルの最後に / をつけろ。
0781デフォルトの名無しさん
NGNG0782デフォルトの名無しさん
NGNG過っておるぞ。
0783デフォルトの名無しさん
NGNGcse使こうてるひといる?
便利でええと思うが
0784デフォルトの名無しさん
NGNG業務使用経験0なんですが、次のプロジェクトでオラクルが重要になりそうなので
短期間でオラクルマスター(しかもプラチナ)を目指したいと思っております。
ちょっとなめすぎているかもしれませんが、つい先日10日強の勉強でシスアド上級取ったし、
大学生の頃今は亡きネットワークスペシャリストも取ったので、こういった資格試験は強いと思ってます。
ま、取れなくても基本的な知識が付けばそれで嬉しいし。
そこで質問なのですが、この資格を取るのにお勧めの書籍はありませんか?
出来れば、資格試験だけでなく、今後業務で使う事を考えても学ぶものの大きい本を
読みたいのですが、経験豊富な皆さんの推薦を是非教えてください。
0785デフォルトの名無しさん
NGNG0786デフォルトの名無しさん
NGNG実務ではマニュアルでOKだとは思うけど
0787784
NGNG翔泳社のいわゆる黒本
「Platinum Network/Backup/Performance (Oracle8i)編 オラクルマスター教科書」
http://www.amazon.co.jp/exec/obidos/ASIN/4798100595/qid=1016073452/sr=1-1/ref=sr_1_0_1/249-3925908-8446763
http://www.amazon.co.jp/exec/obidos/ASIN/4798100609/qid=1016073452/sr=1-2/ref=sr_1_0_2/249-3925908-8446763
http://www.amazon.co.jp/exec/obidos/ASIN/4798100625/qid=1016073452/sr=1-3/ref=sr_1_0_3/249-3925908-8446763
が良いみたいですが……
過去レスを見てみると、Silverを受けずにPlatinumを取っても問題ないみたいですが、
上記の参考書だけでいきなりplatinumに挑戦できるのかどうかも気になります。
0788デフォルトの名無しさん
NGNGi Study をひたすら、サルのようにやる。やり続ける。
お金は・・・会社が出してくれるんだよな?
0789デフォルトの名無しさん
NGNGプラチナ取ったらいくらか金くれるらしいが、そもそもベンダー系資格を軽く見ているようでゲンメツ
初級シスアドとった新入社員が毎月5000円もらえることがDQN。
0790デフォルトの名無しさん
NGNGじゃ、あんたもとったら?<シスアド
Gold狙うくらいなら、そのくらいの知識はあるんだろ
0791デフォルトの名無しさん
NGNGSQL>
0793デフォルトの名無しさん
NGNGfrom user_tables;
0794デフォルトの名無しさん
NGNGどうもありがとう。
0795784
NGNGとりあえずプラチナの勉強をしてみます。
途中経過など報告も織り交ぜていきたいかと思います。
鬱陶しかったら言ってください
0796デフォルトの名無しさん
NGNG0798デフォルトの名無しさん
NGNGものについて質問があります。
リレーションシップの役割や概念は分かってきたのですが、
自分が、「売上テーブルと売上明細にはリレーションシップを
設定して」と頼まれた時、具体的に何と何をすればいいのか不安です。
具体的な作業として、「リレーションシップを設定する」とは
どういう作業をさすのでしょうか?教えてください。
簡単に売上テーブル(売上No)と売上明細テーブルをつくる
作業を仮定させて頂いたとして、
「リレーションシップを設定する」というのは下記の、どちらでしょうか?
1.具体的な命令句ではなく、売上明細テーブルの中に売上No(売上テーブル)を
含めた、段階でリレーションシップが設定された、と判定される(設計段階?)。
2.PostgreSQLのCreate Tableの命令で具体的に参照整合性を
設定をすることが、リレーションシップの設定である。
たぶん、まだ理解が足らないかと思われますので、
上記の例に含まれていない場合、可能なら具体的な作業を
例示してご教授いただけないでしょうか?
もし、この本に全部書いてあるよというような
参考書がございましたら、そちらをご紹介頂いても
結構です。よろしくお願い申し上げます。
0799デフォルトの名無しさん
NGNG一般的にリレーションシップの設定はない、設計上の概念の話。
Accessだと、キーをドラッグアンドドロップでつなげておくと
あとで使うとき簡単!とかはあるけど。PostgreSQLはどうなんだろ?
だから、どちらかというと1
0800799
NGNGhttp://www.google.co.jp/search?hl=ja&q=PostgreSQL+%83%8A%83%8C%81%5B%83V%83%87%83%93%83V%83b%83v&lr=
つか、すぐ出てきた(笑)
このぐらい自分でやれよって感じだが、なんで俺もこんなに親切なんだ?そか、暇なんだ。
PostgreSQLではACCESSでいうリレーションシップに当たる「参照整合性制約」なるものがあるのですね。
んじゃ、設定するとは、そのようなCreate文を書くという事にもなりますな。
0801デフォルトの名無しさん
NGNG頼んだ人に聞けばいいじゃん
またはインターネットで調べる
長文書く暇があったら見つかるで
0802デフォルトの名無しさん
NGNG明日納期で死にそうなんで教えてください!
コンパイルが出来ない!
ODBCかなぁ?????????????
0803デフォルトの名無しさん
NGNG0804デフォルトの名無しさん
NGNG明日になったら教えてあげるよ
0805デフォルトの名無しさん
NGNGまだProCOBOLって製品あるの?
コンパイルが出来ないって...
接続以前の問題ちゃう?
0806デフォルトの名無しさん
NGNGまあ、>>802 がネタなのは間違いないだろう。
0807デフォルトの名無しさん
NGNGA:列数が4
B:列数が40
の2つのDBテーブルがあって、型はすべて同じ型としたときに、
AとBにinsertするときに、
Aに10回書き込みと
Bに1回書き込みは、
やはりAの方が効率悪いんでしょうか?
使ってるDBによって違うとかいうのじゃなくて大体でいいので
どっちがよいのか教えてください。
そもそもBに1回書き込みが完了する間に
Aはそれ以上の回数書き込めるのかということが疑問です。
分かる方、どうか本当によろしくお願いします。
0808デフォルトの名無しさん
NGNGSQLの解析、トランザクション制御、などなど、俺もあんまり詳しくないが
一回の発行で書き込み以外に多数の仕事が発生しているはず。
0809デフォルトの名無しさん
NGNG0810デフォルトの名無しさん
NGNGそうですよね。やっぱりA方式のほうが遅くなりますよね。
もしかしてBで1回書き込み手続きが終了する間にAが2回書き込む
ことすら不可能なぐらい効率わるいのかな?
0811デフォルトの名無しさん
NGNGそね、データ量による書き込みスピードの違いなんて無視できるぐらい
オーバーヘッドの方が大きいです。
0812デフォルトの名無しさん
NGNGもしかしたらすごい初心者の質問に
親切に教えていただき、ありがとうございました。
勉強になりました。
0813デフォルトの名無しさん
NGNGhttp://www.mysql.com/news/article-91.html
http://www.eweek.com/article/0,3658,s=708&a=23115,00.asp
http://www.eweek.com/slideshow/0,3018,sid=0&s=1590&a=23120,00.asp
0814デフォルトの名無しさん
NGNGただ、これをそのまま鵜呑みにするのは危険だぞ。
ハードの条件は書いてあるが、各DBサーバの設定(メモリの
使い方、SQL文でのヒントの有無などの各種チューニング)が
どうなってるのかわからないから。
0815デフォルトの名無しさん
NGNG0816デフォルトの名無しさん
NGNG副問い合わせは、Ver4.1 での実装になりそうです。
INNER JOINは知りません。
0817デフォルトの名無しさん
NGNGでもチューニング次第でそれだけの性能が出せるということだね。
0818:
NGNG0819デフォルトの名無しさん
NGNGカーソルみたいな?
Dynasetとかを作って、do ... loop で回すと言うような単純な意味?
それとももっと深い意味があったりする?
0820オードリー
NGNGコンパイルをやたらとやりたがり、
しかもわたしって結構気弱なので
「机上でバグつぶせ」っと強く言うことができなかったのです。
0821デフォルトの名無しさん
NGNG0822デフォルトの名無しさん
NGNG0823おら初心の者
NGNGServer Oracle 8.1.7 WinNT
Client 1 Win2k
Client 2 Win98
Client 3 WinXP
の構成で、Net8 Assistantの設定時テストは、Client1,2,3共にOK
c:\>set ORACLE_SID=hoge
c:\>sqlplus
では、Client 2 Win98のみ、エラーになります。(Win2k,WinXP はOK)
sqlnet.logでは
TNS-12560: TNS: プロトコル・アダプタ・エラー だとか、
TNS-12541: TNS: リスナーがありません。 だとかいわれ(;ロ;)
Win95/98/Meでは何かあるのでしょうか?
0824デフォルトの名無しさん
NGNGping と tnsping は通ってる?
0825823
NGNG%%ORACLE_HOME%%Network\Admin\TNSNAMES.ORA
の内容は、Win98 Win2k 全く同じで、
Win98側にて
c:\>tnsping <TNS名>
Attempting to contact (ADDRESS=(PROTOCOL=TCP)(HOST=<TNS名>)(PORT=1521))
TNS-12541: TNS: リスナーがありません。
となり、ホスト名の欄がTNS名になっています。
c:\>tnsping <ホスト名(NetBIOS名)>
とすると、
Attempting to contact (ADDRESS=(PROTOCOL=TCP)(HOST=<ホスト名>)(PORT=1521))
OK
となります。
Win2k側では、tnsping <ホスト名>、c:\>tnsping <TNS名>共にOKです。
どちらの動作が正しいのでしょう?
tnsping <address> [<count>]
ですので、Win98側の動作が正しいようにも見えます。
0826デフォルトの名無しさん
NGNGMS-DOSプロンプトからやってるんだよな。
sqlplus username/password@tnsname
の形でやってみ?
0828824
NGNGWin98サポートしてたっけ?(箱を確認してみてね)
tnsping が通らないって事は、きっとsqlplusも繋がりません
pingが通らないと、ハード異常orネットワーク設定異常が考えられます
次のコマンドを実行してみてください
1.ping <ホスト名>
2.ping <IPアドレス>
1ならhostsを設定してみるor>>827の設定にする
2ならネットワーク的に繋がってません
HUBやLANカードやケーブルを確認してみてください
0829826
NGNGちなみにMeはOracleの全製品でサポート外。
将来もサポート予定無し。
0830823
NGNGc:\>tnsping <ホスト名(NetBIOS名)>
でOKになるので、悩んでます。
TCP/IPの方は問題ない。
>>826-827
今、出先なので、明日試してみます。
しかし、VB+oo4oやCSEの接続で7~8秒かかるのは、これはこれで、
そんなもんなんでしょか?接続した後は速いんですけどね。
0831デフォルトの名無しさん
NGNG0832デフォルトの名無しさん
NGNGオラクルの最大のネックはコネクトと言われているが(俺だけかも?)
それでも2〜3秒だと思う
0833826
NGNG厳密にはTCP/IPのホスト名とNetBios名は意味合いが全然
違うものだからな。
VB+OO4Oだと、OO4Oの初期化の時間も加わるからPLUSでの
Connectより時間がかかるのは当然。CSEは聞いたことないからパス。
でも確かに時間がかかりすぎてるかも。スペックにもよるが。
>>832
それはどんなDBでも一緒だろ。Oracleの場合は、サーバー側での
権限チェックやPGA領域の構築/初期化などいろいろやるから。
0834デフォルトの名無しさん
NGNGコネクトでも時間かかってるけど、fetchも遅い。
今の所telnet経由のSQL>プロンプトから直が一番速いんだけど、
telnetプロトコルでアプリ作ってる人いる?
_
0835デフォルトの名無しさん
NGNGそんな面倒くさい事しない
0836デフォルトの名無しさん
NGNGCSE
ttp://www.hi-ho.ne.jp/tsumiki/
0837デフォルトの名無しさん
NGNGそうだよね。面倒だよね。
でも今、shellと連携するやつが必要だったんで、
telnetで動かすやつ作ってる。
結構速いので満足。
0838デフォルトの名無しさん
NGNGそれって、サーバとクライアントでネットワーク的に距離があったりしない?
0839デフォルトの名無しさん
NGNG0840デフォルトの名無しさん
NGNGAをにあってBに無ければBへINSERT
両方にあるなら、Aの内容でBをUPDATE
...というような事をやりたい場合、やっぱりプログラム中でループを使ってやるしかないですか?
SQL一発とは言わないけど、もっとシンプルな方法は無いでしょうか?
0841デフォルトの名無しさん
NGNGなぜ質問をsageで書く(;´Д`)
Bの内容をAの内容で更新
UPDATE B
SET (B.col1, B.Col2, ...) =
(SELECT A.col1, A.col2, ... FROM A
WHERE A.key1 = B.key1 AND A.key2 = B.key2 AND ... );
AにあってBに無いレコードをBに追加
INSERT INTO B (key1, key2, ... ,col1, col2, ...)
SELECT key1, key2, ... ,col1, col2, ...
FROM A
WHERE (A.key1, A.key2, ...) NOT IN
(SELECT B2.key1, B2.key2, ... FROM B B2
WHERE B2.key1 = A.key1 AND B2.key2=A.key2 AND ...)
両方とも未検証。特に2つ目は地震内。ちなみにOracle Onlyね。
0842デフォルトの名無しさん
NGNGOracle9iだとMERGEっていうSQLコマンドが追加されて
それだと一発。(INSERT+UPDATEを1回でやってくれる)
0843840
NGNGうちはSQL鯖ですけど、これを参考に行けそうです。
ありがとう。
0844デフォルトの名無しさん
NGNGINって複数キーに対して出来るんだっけ?
出来ない場合はこれだね!
INSERT INTO B (key1, key2, ... ,col1, col2, ...)
SELECT key1, key2, ... ,col1, col2, ...
FROM A
WHERE NOT EXISTS
(SELECT * FROM B B2 WHERE B2.key1 = A.key1 AND B2.key2=A.key2 AND ...)
0845デフォルトの名無しさん
NGNGカーネルスレッドをサポートしていないOSでなら仕方ないと思うが。
どんなDBとOS?
0846デフォルトの名無しさん
NGNG>840みたいな事をSQLでやるとして、件数の関係上時間が
かかる場合ってありますよね。
そんな時フリーズと区別しにくいので、クライアントで処理の
進行度を取得したい時が多々あるんですが、そんな時って
どうしてます?
0847デフォルトの名無しさん
NGNGそう言う場合は、ループで1件ずつやるのが良いんでしょうけどね!
しかし時間がかかるって、データ件数が多いって事でしょ?
ネットワークを流れるデータ量などを考えると、
>>841やストアドなどで、やるのが賢明だと思いますよ
0848846
NGNGやっぱそうだよね。
ストアド使いつつクライアントに何らかの値を返す方法無いかな、なんて...
もちっと勉強してきます
0849デフォルトの名無しさん
NGNGsageるとは、遠慮がちな人だ
あなたの要件は簡単だから、誰か答えられるでしょ。
俺は今、手元に資料・環境がないので
とりあえずage
0850デフォルトの名無しさん
NGNGttp://www.users.gr.jp/ml/archive/SQL/4346.asp
0851デフォルトの名無しさん
NGNG関係上、無理っぽいように思えるけど、どうなんだろう。
で、プログレスメーターを出すのが要件じゃなくって、
止まってるかどうかを知りたいだけなんでしょ?
だったら、SPをスレッドで投げて置いて、セッションが
有効か(ステータスが拾えるのなら、それを拾って)を
チェックし続けるって・・・ので良いのじゃないのかな?
0852841
NGNG>実行途中をテーブルにはき続けるのって、トランザクションの
>関係上、無理っぽいように思えるけど、どうなんだろう。
やってやれないことは無いんだろうけど、かなり面倒なことする
必要があると思う。(処理フラグを持たせて一定レコードごとにコミット、
コミットしたらカーソルを一旦クローズして再度オープン、処理続行・・・(;´Д`)
OracleのPL/SQLだとCとかで書かれた外部プログラムを
呼び出せるから、それで一定間隔(処理件数)でメッセージを
投げるとかでも出来そうだ。(俺はやったこと無いんだけどね)
#SQL Serverは触れる機会が全然無いのでわからん(;´Д`)
0853デフォルトの名無しさん
NGNG進行状況はわかるよーにしてた。
0854国際業務機器
NGNGDB2 で ORDER BY と FETCH FIRST n ROWS ONLY を併用した場合、最初の
n 個を取ってきて並べ替えるのか、並べ替えたものの最初の n 個を取って
くるのか、どっちか知ってる人います?
0855デフォルトの名無しさん
NGNG0856バナナマン
NGNGのですが、表領域を作成する際
create tablespace 表領域名
datafile ’データファイル名'
size 初期に確保する大きさ
(省略)
としますが、この表領域名とデータファイル名の違いはなんですか?
表領域はフォルダーみたいなものなんですか?
もう一つあるのですが、sql*plusに記入するのですべて打ち込んだあとに間違えると
また最初から打ち直さなければなりませんが,これだと量があるとめんどくさいのですが、
何かいい方法はありませんか?
しょうもない事聞いて申し訳ありません.
0857sage
NGNG>しょうもない事聞いて申し訳ありません.
なら聞くな。コンセプトガイドとかいうマニュアルあっただろ、読め。
SQL*Plusについても同様。んなものはマニュアルに答え載ってる。
0858デフォルトの名無しさん
NGNG>としますが、この表領域名とデータファイル名の違いはなんですか?
>表領域はフォルダーみたいなものなんですか?
表領域ってのはOracleからみて、テーブルやインデックス、オブジェクト
などを格納する論理的な領域のこと。
データファイルは、表領域をOS側から見た実体。
1つの表領域には1つ以上(つまり複数も有り)のデータファイルが割り当てられる。
>もう一つあるのですが、sql*plusに記入するのですべて打ち込んだあとに間違えると
>また最初から打ち直さなければなりませんが,これだと量があるとめんどくさいのですが、
一度テキストファイルにSQLを書いてそれを実行させるようにする。
詳しくはPlusのマニュアルで@(アットマーク)の項の説明を読もう。
コマンドの説明のところにあるから。
0859デフォルトの名無しさん
NGNG状況がよくわからんが、そのレベルの事を質問できる
人間がまわりに居ない?
なんとうか「メモ帳ってどうやって起動するのですか?」
レベルだよ、それ。
0860バナナマン
NGNGオメ-には聞いてねえよ.消えろバーか.
>>858
わかりやすい説明ありがとうございます。大変参考になりました.
わざわざ有難う御座いました。
>>859
独学でやっているんですが,まわりにプログラムに興味のある友人がいないもので
ずびばぜん。
0861デフォルトの名無しさん
NGNG0862デフォルトの名無しさん
NGNG0863デフォルトの名無しさん
NGNGとりあえず、>859に同意。
入門書を一通り読んでみたほうがいいと思う。
0864デフォルトの名無しさん
NGNG0865841=858
NGNGまあ、誰だって最初はこんなものでしょ。
3年後には大化けしてるかもよ(w
>>バナナマン
やっぱり独学か。>>863の言うとおり、入門書を見ることを薦める。
それと>>857みたいなのは徹底放置。
0866デフォルトの名無しさん
NGNG言っているのか、それともDBってなんだか知らないけどとりあえず
Oracle ってのをやってみよーって、いきなり create tablespace が
どうのと言っているのか・・・なんしか、いきなりだな。
857 の言ってることは間違ってないと思うが・・・ポインタも示してる
し、何を反感買うような事があるんだろう。
0867デフォルトの名無しさん
NGNG> 857 の言ってることは間違ってないと思うが・・・ポインタも示してる
> し、何を反感買うような事があるんだろう。
性格の問題じゃないかな。手取り足取り懇切丁寧に教えてもらえないと何にもできないタイプかと。
自分でマニュアル開く手間を惜しんで結局その周辺で見かけるであろう概念(この場合だとPCTFREE,
PCTUSED,INITRANSとかかな)を知る機会も失ってるの気がつかないんだろうね。
よって865の言うバナナマン3年後大化け説にはカナーリ疑問あり。
0868865
NGNG確かにOracleをきっちり使っていく上でその辺も大事なのはわかる
けど、バナナマンにはまだ早いって。それは入門書レベルを卒業し
た後で、Oracleのアーキテクチャの概念などと一緒に勉強すべき
内容だと思う。
#これまでのやり取りから想像するに、多分DBの経験が浅いと
#みてる<バナナマン
0869デフォルトの名無しさん
NGNG腰を据えて教えてもらう期間が必要だと思うんだがどうかね?
かなり独学でいけてると思ってたけど、ちょっとしたセミナーとか
作業の時間を割いて大切なことを根気よく教えてくれたあのひと達に乾杯。
0870デフォルトの名無しさん
NGNG1ヶ月も続ければなんとなく見えてくる部分アリ。
0871プロ・グラマー
NGNGまだSQLの一から全くわからないので基本的な所から解説しているお薦めの
参考書があれば教えて下さい.
0872デフォルトの名無しさん
NGNGとりあえず本屋にいって適当にSQLと名の付く本を眺めたらどうだ。
0873プロ・グラマー
NGNGというかさっぱりわかりません。
こんなところでつまずくということは実は向いてないんですか?
0874300
NGNG>>856
>sql*plusに記入するのですべて打ち込んだあとに間違えると
>SQLって時にEDかEDITでリターン
0875632
NGNGSQLに慣れるのが目的なら、ストアドプロシージャは(今は)無視して構いませんよ。
まずは DML と、DB設計でも勉強すりゃいいんでない?
そのあとに、適当な(873が利用可能な)環境で、そういうことも含めて再度、臨めばよかろうとおもいますよ。
0876デフォルトの名無しさん
NGNG0877デフォルトの名無しさん
NGNGぜんぜん違う。
片方を極めると、片方を蔑むようになる。
選択によって人生が変わる。
0878デフォルトの名無しさん
NGNG両刀使いですが、なにか?
0879デフォルトの名無しさん
NGNGわからない?
0880デフォルトの名無しさん
NGNGプログラミングもチョビットはできるようになってるでしょう。
0881デフォルトの名無しさん
NGNGgo と /
0882デフォルトの名無しさん
NGNG0883デフォルトの名無しさん
NGNG0884デフォルトの名無しさん
NGNG0885デフォルトの名無しさん
NGNGSQL鯖ってクライアントツールの出来ならOracleよか良いし。
0886デフォルトの名無しさん
NGNG「SQL文を書ける」って意味だけなら
多少の方言は有るものの出来ると思うが
「いろいろな管理ツールなどを使いこなす」って意味までになると
全然違うと思われる
0887デフォルトの名無しさん
NGNG>SQL鯖ってクライアントツールの出来ならOracleよか良いし。
なるほどー。
でも、Oracle使いの私には、SQL鯖って細かいとこまで手が届かないような
印象がありますが...。どうなんでしょ。
0888デフォルトの名無しさん
NGNGあらゆるトラブルに対応できる管理者となるとどうかな
両方は無理じゃない?
少なくとも、俺には無理だった。混乱して。
0889デフォルトの名無しさん
NGNG2000年1月の製品別の出荷合計金額をだしたいのですが、
select
t03出荷.品番,
min(m02製品品目.品名) as 品名,
sum(t03出荷.出荷金額) as 出荷金額合計
from
m02製品品目,
t03出荷
where
m02製品品目.品番=t03出荷.品番
group by
t03出荷.品番
having
sum(t03出荷.出荷金額)>=20000
and
t03出荷.出荷日 between to_date('2000/1/1','yyyy/mm/dd') and
to_date('2000/1/31','yyyy/mm/dd')
order by
sum(t03出荷.出荷金額) desc
だとエラーになるのですが,
select
t03出荷.品番,
min(m02製品品目.品名) as 品名,
sum(t03出荷.出荷金額) as 出荷金額合計
from
m02製品品目,
t03出荷
where
m02製品品目.品番=t03出荷.品番
and
t03出荷.出荷日 between to_date('2000/1/1','yyyy/mm/dd') and
to_date('2000/1/31','yyyy/mm/dd')
group by
t03出荷.品番
having
sum(t03出荷.出荷金額)>=20000
order by
sum(t03出荷.出荷金額) desc
だとちゃんといけます.これはなぜですか?to_date〜 の所が原因だと思うのですがわかりません.
0890デフォルトの名無しさん
NGNGSELECT句にt03出荷.出荷日が無いのにHAVING句でそれを使用しているから。
0891デフォルトの名無しさん
NGNG0892デフォルトの名無しさん
NGNGいけないのですか?
グループ化した時にhavingとwhereの違いってなんですか?
0893デフォルトの名無しさん
NGNG本当か?
検証する気までは無いのだが・・・
>>892
whereはグループする前に係る、havingはグループした後に係る
0894890
NGNGHAVINGは、SELECT〜FROM〜WHERE〜GROUP BYの検索結果から
さらに絞り込むんだよ。そこに無ければどうしようも無いだろうに(;´Д`)
#ちなみにOracle8.1.7だとORA-00979が帰ってきた。
0896すまそ
NGNGhavingはselect文にないものではないと駄目なんですか?
0897デフォルトの名無しさん
NGNG論理的にはいけそうなんだけどな。
内部でhaving用に持っておけばいいだけだと思うのだが。
0898デフォルトの名無しさん
NGNG何していいかさっぱりわかりません。
とりあえず、データベースの構築をしたいんですが
まずどうすればいいんですか?
ユーザIDやパスワードってどうやって設定するんですか?
わけわからなくて泣きそうです。><
マニュアルの読み方もわかりません。○○ガイドを参照してくださいって
書いてあっても、付属してないし。OTNにあったけど会員登録しないと落とせぬ!。・゚・(ノД`)・゚・。
0899デフォルトの名無しさん
NGNG857見れ
0900デフォルトの名無しさん
NGNG登録はただなのでとりあえず登録しとけ。
でも、OEMとかでたいていのことはできるんじゃないの?(使ったことないが)
0901デフォルトの名無しさん
NGNGさーんクス。とりあえず@のついているところを読めばいいんだね?
で、質問だけど、VBでDBのレコード操作(更新/追加/削除)をする
プログラムって、まったくのOracle初心者がDBの構築から初めて
どれくらいでできますか?
DBは単純な顧客名簿だと考えて、適当に見積もってください。
0902_
NGNG個人情報の漏洩に過剰に敏感な年頃ですが、
とりあえず登録してみます。
0903デフォルトの名無しさん
NGNG周りに知ってる人誰も居ないの?
(そうなら、発注した客の勇気をたたえるが(笑))
まぁ、教育にでもいったら?
http://otn.oracle.co.jp/training/index.html
0904デフォルトの名無しさん
NGNG自分のペースで勉強できる。
急ぎなら、CBT購入がおすすめ
0905デフォルトの名無しさん
NGNG一番、金がかかるところだけど(w
0906デフォルトの名無しさん
NGNG0907_
NGNG周りにはだーれもOracle使える人がおらんです。
自分は時給約1052円で働いているので、いつかは他の会社いくつもり。
なのでOracle習得はスキルを身に付けるビックチャンスとおもっちょります。
0908デフォルトの名無しさん
NGNG構築スクリプトを拾ってきて、環境に合わせて流せばある程度は
なんとかなる。
0909仕様書無しさん
NGNG0910デフォルトの名無しさん
NGNGOraclePressあたりのDBAガイド一冊。
特に後者を薬だと思って読むといいよ。
二日分のバイト代で買えておつりもくるだろ。
ものにすれば何百倍にもなって帰ってくるはずだ。
0911仕様書無しさん
NGNG後は、Oracle本チェックしてきます。ありがとう。
うちの会社、書籍代がなかなか出ないから、
自腹になるんだよね。。・゚・(ノД‘)・゚・。
0912デフォルトの名無しさん
NGNG俺が会社を辞める前は、どこの職場に出向してもどうせ同じ本を見るんで自分で買ってた。
俺がアルバイトでやってたときは、どこの職場に行ってもどうせ同じ本を見るんで自分で買ってた。
俺がフリーでやってたときは、どこの職場に行ってもどうせ同じ本を見るんで自分で買ってた。
俺がまたプロパーになったときも、やはり同じ本を見ている。
経費で買ったら、持って帰って読んだり、そこやめるとき本を持っていけないぞ。
入門本は会社で買ってもらってもいいかもね。読み捨てだし。
0913デフォルトの名無しさん
NGNGいるんだよね。
本とか開発用ソフトウェアだけ立派に集めてるプログラマってさ。
「で、仕事は?」ってきいたら何も満足にできない奴だったりするんだよね。
0914仕様書無しさん
NGNG自己投資のために本を買うことも重要っすね。
0915デフォルトの名無しさん
NGNG基本的にちと高い本になるけど
入門本は立ち読みでエエやろ
最近はインターネットで調べた方が
適切な情報が出てくる場合があるな
0916デフォルトの名無しさん
NGNG0917すまそ
NGNGto_char('2000/1','yyyy/mm')ではきちんとしたデータが出ません.
やはりきちんと1の時は01、2の時は02とした方が良いでしょうか?
0918デフォルトの名無しさん
NGNG'2000/1'はすでに文字列なのに、to_charしてどうする(w
0919すまそ
NGNGすみません間違えました.データ上の日付が’2000/01/01’とした時
select
sum(decode(to_char(出荷.出荷日,'yyyy/mm'),'2000/1',出荷.出荷金額,0))as 出荷金額001
(省略)
とした時、出した出荷金額001は0になります。
やはりこれは’2000/1’の所を’01’にしなければいけないのですか?
0921デフォルトの名無しさん
NGNGの仕事はそんなに違うものなのですか?
0922デフォルトの名無しさん
NGNG0923デフォルトの名無しさん
NGNGここですか?(w
0924デフォルトの名無しさん
NGNG上につく人間の方針やら、お客さんの標準やらで、見た目はだいぶ違うかもね。
とはいえ、抑えなきゃいけないところは変わらんでしょう。
(VBが他の言語になってもそう変わらないのでは)
0925デフォルトの名無しさん
NGNGDB設計した奴の腕によって全然違うぞ(w
0926すまそ
NGNGupdate m02製品品目
set
m02製品品目.品名=(select wm02製品品目2.品名 from wm02製品品目2 where m02製品品目.品番=wm02製品品目2.品番),
m02製品品目.得意先コード=(select wm02製品品目2.得意先コード from wm02製品品目2 where m02製品品目.品番=wm02製品品目2.品番),
m02製品品目.得意先品番=(select wm02製品品目2.得意先品番 from wm02製品品目2 where m02製品品目.品番=wm02製品品目2.品番),
m02製品品目.受注単価=(select wm02製品品目2.受注単価 from wm02製品品目2 where m02製品品目.品番=wm02製品品目2.品番),
m02製品品目.追加年月日=(select wm02製品品目2.追加年月日 from wm02製品品目2 where m02製品品目.品番=wm02製品品目2.品番),
m02製品品目.変更年月日=(select wm02製品品目2.変更年月日 from wm02製品品目2 where m02製品品目.品番=wm02製品品目2.品番)
where
exists
(select wm02製品品目2.品番 from wm02製品品目2 where m02製品品目.品番=wm02製品品目2.品番)
と
update m02製品品目
set
m02製品品目.品名=(select wm02製品品目2.品名 from wm02製品品目2 where m02製品品目.品番=wm02製品品目2.品番),
m02製品品目.得意先コード=(select wm02製品品目2.得意先コード from wm02製品品目2 where m02製品品目.品番=wm02製品品目2.品番),
m02製品品目.得意先品番=(select wm02製品品目2.得意先品番 from wm02製品品目2 where m02製品品目.品番=wm02製品品目2.品番),
m02製品品目.受注単価=(select wm02製品品目2.受注単価 from wm02製品品目2 where m02製品品目.品番=wm02製品品目2.品番),
m02製品品目.追加年月日=(select wm02製品品目2.追加年月日 from wm02製品品目2 where m02製品品目.品番=wm02製品品目2.品番),
m02製品品目.変更年月日=(select wm02製品品目2.変更年月日 from wm02製品品目2 where m02製品品目.品番=wm02製品品目2.品番)
とでは更新内容が違います.existsが存在を確認する為のものという事はわかっているのですが、setから下の部分にもm02製品品目.品番=wm02製品品目2.品番
としているのであまり意味がないような気がするんですが、これはどういうことですか?
0927デフォルトの名無しさん
NGNG貴方の書き込みを見て、他人がどう感じるか想像してチョビヒゲ。
狙ってるんならともかく。
0928デフォルトの名無しさん
NGNGするプログラムをVBで作成しています。
複数のテーブルインポートを行いますが、1つでもエラーがあれば
全てのテーブルをロ−ルバックする仕様です。
ところが、現状、エラーになったテーブルだけがロールバックされ、
その他のテーブルはコミットされてしまいます。
どなたか、全テーブルのロールバックを行う方法をご存知でしたら教えてください。
よろしくお願いいたします。
0929デフォルトの名無しさん
NGNGDTSツカエ
0930928
NGNGDTSを使いmdbからインポートを行います。
DTSで発生したエラーについては、
自動的にテーブル単位のロールバックが行われるのですが、
テーブル単位ではなく、処理全体のロールバックできる方法はないのでしょうか?
0931890
NGNG更新内容が違う(多分NULLが入るのがでてるんだろう)のが
わかってるんなら、それがどう違うのかよ〜く考えてみれ。
m02製品品目とwm02製品品目2で品番があったりなかったり
してるんじゃないのか?
0932デフォルトの名無しさん
NGNGBooksOnlineの「DTS トランザクションのプロパティの設定」参照
0933しゅばい
NGNG0934デフォルトの名無しさん
NGNGそれはあんたが開発者なのか管理者なのかでかわる。
いずれにしろ、SQLが出来なければ話にならないがな。
0935デフォルトの名無しさん
NGNGSQL鯖
InterBase
PostgreSQL7
MySQL
どうよ?(w
0936デフォルトの名無しさん
NGNGどうしてですか?
0937デフォルトの名無しさん
NGNGまいった。
完敗だ。
0938デフォルトの名無しさん
NGNG0939デフォルトの名無しさん
NGNGあるユーザーでsqlplusでconnectした後、どのテーブルが存在するのか知りたい時は、
何のコマンドを打てばよいのでしょうか?
MySQLでは、show tables; でOKなのですが、Oracleでの方法が分かりません・・・。
それらの説明があるサイトとかってありません?
(Oracle社のサイト以外で・・・)
0940デフォルトの名無しさん
NGNGアホには見えないようになってます。
0941デフォルトの名無しさん
NGNG0942しゅばい
NGNG0943デフォルトの名無しさん
NGNGなぜ5つ?その数字の根拠はなんじゃらほい
0944デフォルトの名無しさん
NGNGそういうシステムオブジェクトとかって
各社共通のビューを作ってくれたらとっつきやすいのに
って思うんだけどねぇ。
0945デフォルトの名無しさん
NGNG検索かけると
「検索中、、、」
とかでて
「あー今一生懸命検索してるんだなー」
とか生暖かい目で見守ってると、5分くらい砂時計のままで、
「もしや」
と思ってctrl + alt + del 押すと
Vantive (応答無し)
とかなってるんです。
どうしようもなく使えないデーターベースです。
なんでこんなにクソなんですか。
0946デフォルトの名無しさん
NGNGどうしてくれるんですか!
0947デフォルトの名無しさん
NGNGそんな糞DB何の用途に使ってんの?
0948デフォルトの名無しさん
NGNGVantive って何か知らないけど、「応答無し」は、単にWindows
メッセージに対して応答していないだけでしょ?
処理自体は頑張ってやってんじゃないの?
で、強制終了で入力中のデータが道連れって当たり前のような・・・
というか、妙に残る方が怖くない?
0949デフォルトの名無しさん
NGNG顧客情報の管理です。客が300万人いるんです。
>>948
1回Vantive を再起動して、もう一度検索をかけるとうまくいくことが多いです。
このときは10秒くらいででます。だから5分も待つのはおかしいとおもいます。
なんらかの処理が進行しているような気配はありません。
入力も、3件までしかバッファできなくて、未入力が3件ある状態で4件目を開こうとすると
「メモリーが足りません」
とかでて入力できないのです。
そういうときは、わざわざどれか1件を急いで入力完了してから4件目を開きます。
面倒くさくてしかたがないです。
0950デフォルトの名無しさん
NGNGhttp://www.vantive.mitsui.co.jp/vantive/
これかい?
落ちるっていうのはクライアントのことだよね?
サーバoracle,SQLserver,sybaseってなってるし。
0951デフォルトの名無しさん
NGNGそうです、そういう情報がほしかったんです。
クライアントの名前がVantiveで、中身はオラクルやらSQLやらサイベースやら、条件によって変わるんですね?
じゃあ、そのクライアントがVB製なのかな?
0952デフォルトの名無しさん
NGNGどのDBもそれぞれ異なる設計思想で作られ、異なる実装が行われている。
ビューを統一したくてもできないし、したところで「本当に重要な」情報はみれない。
テーブル名の一覧だって、テーブルがどの空間概念上に存在するかによって
取得できなければいけない情報も異なるだろ?
0953デフォルトの名無しさん
NGNG正解をそのまま教えるのはなんだからヒントだけ。
概要かリファレンスでデータ・ディクショナリを探してみよう。
(´-`)..。oO(そろそろ次スレの季節)
0954デフォルトの名無しさん
NGNGできないから買ってるんじゃないの。
少なくとも、オレの周りに居る人で、
書籍多く持ってて無能なやつは居ないぞ。
0955デフォルトの名無しさん
NGNGSELECT データベース総合スレ,2 FROM ム板;
とか? SQLスレミタイデダメカァ
0956デフォルトの名無しさん
NGNG0957デフォルトの名無しさん
NGNGsql質問スレになっちまう。
0958テンプレ案
NGNG前スレ
http://pc.2ch.net/test/read.cgi/tech/1001351439/
関連スレ
SQL教えて〜!!
http://pc.2ch.net/test/read.cgi/tech/1000116969/
Access使い集合!
http://pc.2ch.net/test/read.cgi/tech/1005078204/
ACCESS総合相談所 その3
http://pc.2ch.net/test/read.cgi/bsoft/1019087338/
InterBaseを使いこなすスレ
http://pc.2ch.net/test/read.cgi/tech/1015250429/
>>ファイルメーカー ユーザーの集い<<
http://pc.2ch.net/test/read.cgi/bsoft/1016207736/
■○■dBASE個人面接所
http://pc.2ch.net/test/read.cgi/bsoft/984157332/
桐ってどうよ?
http://pc.2ch.net/test/read.cgi/bsoft/976012208/
dbMAGICについて
http://pc.2ch.net/test/read.cgi/tech/1000536738/
★★★ SQLサーバ VS オラクル ★★★
http://pc.2ch.net/test/read.cgi/tech/1008908462/
【ノウ】DBアプリ開発ノウハウ【ハウ】
http://pc.2ch.net/test/read.cgi/tech/1015807409/
0959追加
NGNGhttp://pc.2ch.net/test/read.cgi/unix/955533785/
0960しゅばい
NGNG思っていますが,実際の所企業に就職するかそれとも派遣会社に行くか迷っています。
よいアドバイスがあれば聞かせてください.
あっそれと独学だとどこまで勉強したらよいのかわからないので学校に行こうかとも
思っています.学校だと求人も来ているかも知れませんし.
ちなみに自分は26歳です.
0961デフォルトの名無しさん
NGNG0962これも追加して
NGNGhttp://pc.2ch.net/test/read.cgi/php/989375812/l50
PostgreSQL or MySQL @Unix板
http://pc.2ch.net/test/read.cgi/unix/955533785/l50
PerlでPostgreSQL @Web制作板
http://pc.2ch.net/test/read.cgi/php/999249463/l50
0963デフォルトの名無しさん
NGNGデータベース設計で2テーブル間に多対多のリレーションを張りたいんですが
リレーションが設定されていないレコードを効率よく SELECT できるような
設計が思いつかずに困っています。今は次のようにしています。
CREATE TABLE TABLE_A (
TABLE_A_KEY INTEGER NOT NULL PRIMRY KEY,
:
);
CREATE TABLE TABLE_B (
TABLE_B_KEY INTEGER NOT NULL PRIMARY KEY,
:
);
CREATE TABLE RELATION_AB (
TABLE_A_REF INTEGER NOT NULL FOREIGN KEY REFERENCES ON TABLE_A (TABLE_A_KEY);
TABLE_B_REF INTEGER NOT NULL FOREIGN KEY REFERENCES ON TABLE_B (TABLE_B_KEY);
);
この状態で、
SELECT * FROM TABLE_A WHERE TABLE_A_KEY NOT IN (SELECT TABLE_A_REF FROM RELATION_AB);
というクエリーを投げると当然ながら悶絶するほど処理が遅いのです。
こういう場合に有効なデザインにはどのようなものがあるのでしょうか?
0964デフォルトの名無しさん
NGNGなぜWeb制作板に・・・・と思ったら板分割前のスレか。
0965デフォルトの名無しさん
NGNGSELECT *
FROM TABLE_A A
WHERE NOT EXISTS (
SELECT TABLE_A_REF
FROM RELATION_AB REL
WHERE A.TABLE_A_KEY = REL.TABLE_A_REF );
相関副問い合わせ使うほうが早い気がする。
これで等価だよな?SQLのこと言ってんじゃないのかな?
自信ないのでsage
0967名無しさん@お腹いっぱい。
NGNG使いたいテーブルをUIにドラッグ&ドロップ。
必要なメソッド・オブジェクトも「使うだけ」。
あ、スレ違いだな。
0968963
NGNG>>965
確かにこちらの方が格段に速く処理できますね。
ただ、データ件数が数百万件ほどあるので、
いずれにしても実用的なレスポンスでないという点は変わりません。
>>966
全データの抽出ではきついものがありますが、
事前に絞込みがうまく行えればそれも手かもしれませんね。
検討してみます。
0969デフォルトの名無しさん
NGNGDBは何使ってる?
ORACLEならMINUSという便利な関数があるんだが・・・・
SELECT * FROM TABLE_A
MINUS
SELECT * FROM TABLE_B;
で、望みの事は出来る。
#TABLE_AとTABLE_Bは全く同じ型のフィールドを同じ数だけ持つ場合
#TABLE_Aのみに存在する行を取得する
でも、型にINTEGER使ってるからORACLEじゃないな。
EXCEPTかDIFFERENCEは使えないか?
0970963
NGNG今使っているのは InterBase6 です。
EXCEPT も DIFFERENCE も MINUS もないようです。
最悪、リレーションの最大数を見積もって、
外部キーフィールドを多めに定義しておいて、
TABLE_A と TABLE_B の間を直接つなぐことになると思います。
0971632
NGNG代案1
整合性保証のための迷子探しならファイルアウトしてマッチング。
その間他の処理は停止というのがよさげ。
代案2
A, B 登録時に、同じ LUW で releation entry つくっちゃって、
相方は not-linked を示すダミーコードを割り当てといて、
未割り当ては、そいつで探すってのでどう?
ないものを探すより速いはず
データが多いのでなんだけど、どうせリンク張るんだろうから
データ量は問題にはならんと推定。
インデックスの書換えが不細工だけど。多件更新したらインデックスの
再編成でもするってことで。
対話式なら探すほうの速度優先ってかんじでどうっすか?
0972¥
NGNG知識がないとやばいですか?いやなんとなく苦手な方なので・・・。
0973デフォルトの名無しさん
NGNG関わるDBMSがリレーショナルデータベースなら体に染み込ませる順番は
リレーショナルモデルの概念、正規化、ストアドプロシージャだろうな。
ま、ストアドプロシージャを使えないDBもあるから急ぐ必要はないよ。
エドガー・コッドの理論に関する良書があったら読むべきだね。
小学校の算数で習う集合から類推できれば難しいものじゃないよ。
勉強と一緒に実践を繰り返していけば、そのうち理解が深まるよ。
そういうわけでよ、ま、頑張ってくれや。
0974デフォルトの名無しさん
NGNG苦手って、仕事でお金もらうなら、そんなこと言えないだろ(w
趣味なら必要なし、好きにすれば。
0975デフォルトの名無しさん
NGNGだが、開発者、とくに設計・デザインをするなら必須。
その辺を知らない(ISAMオンリーな)奴が設計したDBの
酷さといったら...ブルブル
0976963
NGNG目的が、リレーション未設定のデータを対象に新たにリレーションを張る、
という処理で日常的に発生するものなので、他の動作を停止というのは難しいです。
代案2は現実的なところだと思います。
今は、基本設計を変更して多対多のリレーションを分解できないかどうか検討中です。
それでどうしても上手くいかないようなら代案2を中心に実装を進めようと思います。
ありがとうございました。
0977デフォルトの名無しさん
NGNGhttp://pc.2ch.net/test/read.cgi/tech/1020158297/
0979デフォルトの名無しさん
NGNGBAD ADDRESSでみれないんだが…
0980979
NGNG0981デフォルトの名無しさん
NGNGSQLServer と理論とじゃ、定義違ってますよね、これ。
うまく説明できないのだけど。
理論じゃ、チェックポイント=セーブポイントなんでしょうか。
0982日下部圭子 ◆Z/ID97yU
NGNG早めの移行をお願いします。
http://pc.2ch.net/test/read.cgi/tech/1020225181/l50
0983デフォルトの名無しさん
NGNG977がもう作ってるじゃねーか。よけいな事するな!!
ちゃんと削除依頼出しとけよー。
関連スレとかが丁寧に書かれているPart2で行きましょう>ALL
http://pc.2ch.net/test/read.cgi/tech/1020158297/
0984デフォルトの名無しさん
NGNG0985デフォルトの名無しさん
NGNG同じ意味で在れば、SAVEPOINT とはまた違うと思うよ。
なんの DB なのかは知らないけど Oracle にもチェックポイント
あるでそ?
0986デフォルトの名無しさん
NGNGごめん、つっこまれるかと思ったけど、敢えて省いたんだ。
じつは情報処理の試験をこの間受けまして・・・
いわゆる参考書と言葉の定義が違ったようだったので。
0987デフォルトの名無しさん
NGNGSQLServerのセーブポイントは、トランザクションの入れ子のようなもので、
トランザクション内で部分的ロールバックをやるようなものだったと思います。
参考書で言うセーブポイントはチェックポイントと同義で、
DBの変更をバッファからドライブへ書き出した直後で、強制終了等した後に、
ウォームスタートでとりあえず最初に参照するポイントです。
0988デフォルトの名無しさん
NGNGACCESS2000のパラメータ付きクエリを、
SQL*Server2000へ移行したいと考えています。
このクエリはネストしていて、クエリ1の結果(結果は複数レコード)を
使用してクエリ2の処理を行います。
基本的にはストアドプロシジャに移植すればよいと思いますが、
ストアドプロシージャの書き方がわかりません。
もしクエリ1の結果が1件であれば、クエリ2の中からEXECUTE命令を
使ってクエリ1を呼び出せば処理することが出来ると思いますが、
クエリ1の結果が複数の場合はどうしたらよいでしょうか?
クエリ1の結果を一時テーブルに格納するという手も考えたのですが、
多ユーザからの同時アクセスを考えると、あまりよい方法とも思えません。
もっとスマートな方法をご存知の方がいらっしゃいましたら教えてください。
よろしくお願いいたします。
レス数が950を超えています。1000を超えると書き込みができなくなります。