1 :
デフォルトの名無しさん :
02/04/30 18:18
2 :
デフォルトの名無しさん :02/04/30 18:18
おっつ〜
かっれ〜
さっま〜
あげ?
データベースの勉強をしたいと思っているのですが、良い学校とか あれば教えて下さい.あるいは良い勉強法もあれば教えて下さい.
本屋行って、本を買ってきて読もう。 お薦めはその手のスレがあったよね。
13 :
デフォルトの名無しさん :02/05/02 01:06
NT版Oracleではサービスでなんか動いていますが、あれ何ですか? UNIX版だと、プロセス動くだけなので、なんでサービスが要るのか 理解できないのですが。
用語的に サービス≒デーモン 蛇足だけどwin用Apacheもサービスとして動作する
15 :
デフォルトの名無しさん :02/05/02 18:01
すれたてるまでもないからやってきました^^ ------------------------ 既出でしたら申し訳ありません。 現在、oracle8i oo4o asp で開発をしているのですけど、 検索等の処理でレコードセットを取得し、ブラウザに吐き出させる処理を する際に、次の**件という処理を入れたいのですが、oo4oの経験がほとんど無く 皆目検討がつきません。 どなたか方法をご存知の方、よろしくお願いできないでしょうか。。
17 :
デフォルトの名無しさん :02/05/04 23:38
>>15 まず、マルチはやめれ。確かに誘導したのは俺だけどさ。
aspスレのほうでも回答されてるけど、そのやり方が一番手っ取り早い。
oo4oでレコードセットが作れないって話なら別だが。
>>16 rownumは
select * from table
where rownum <= 10;
とか使って、最初の10件は取れるが
select * from table
where rownum <= 20 and
rownum >= 11;
とかやって、11件目から20件目までは取れないと
思うんだが、どうするつもりれすか?
気になってASPスレを探し出したが、最初のXX件を
PG上で捨てろというやつだった。。。。
#ヨノナカソンナモノデスカ
>>18 応用が利かない人だなぁ。
rownum までヒントが出たんだから、From句問い合わせを併用
するとか、前回の key を覚えておくとか考えついてください。
>21 でも order by 指定していると rownum じゃ対応できなかったりするがな。 結構トリッキーなことする羽目にならなかったっけ。
データベースの勉強を始める上で領域管理やシステム管理の勉強を完璧に やるべきでしょうか?
運用する段になってからでいいと思うけど・・・ 最初のうちは特定DBをとにかく叩きまくるところから、じゃないかなあ
データベース処理の仕事って具体的にどういうことをするのですか?
建築会社に入ったのですが PCを触った事があるってだけで 顧客等のデータベースを任されてしまいました。 普通は何人でどのソフトを使って どのように管理するのでしょうか。
アクセスかねえ
>>26 会社の規模が良くわからんけど、あまり知らない人に任せるぐらいだから
顧客数もたいしたことないでしょ。だったら、とりあえず Excel で良い
んじゃない ?
(ありえんとは思うが) もし、でかい会社だったらその仕事から下りたほう
が良い。
どのように管理するかは、その会社次第。どういう情報が欲しいかを指示
された人にちゃんと確認すること。最近のマシンなら検索なんかたいした
ことないから、とりあえず入力できるデータは何でもぶち込んでおくと言
う姿勢で良いかもしれない。データが入っていれば、それを取り出すこと
はできるが、コンピュータは入っていないデータを出すことはできないか
らね。
おぉ、ありがとうございました。 お察しの通り、規模的には小さい会社なので、 とりあえずアクセスにいろいろぶち込んでみます。 MS製品だったらエクセルとの互換性もあるでしょうし…。
>>29 Excelとの互換性とかいるかいらんかわからんことは気にするな。
28も書いているが、とりあえずExcelというのはひとつありだと思う。
よく知らないのにいきなりAccessは大変だと思うのだが。
31 :
仕様書無しさん :02/05/07 23:58
Oracleで、列に自動的にユニークなIDをつける方法はないのでしょうか? たとえば、学生名簿だったら下記のような感じで番号を付けたいんです。 10001 hoge hoge 10002 anan fuga よろしくお願いします。
>>31 sequenceってのをマニュアルで引いてみ。
33 :
デフォルトの名無しさん :02/05/08 01:01
>>26 DB初めてなら、FileMakerが簡単でええぞ。
>>31 ユニークなIDなら、勝手についちょる。
select rowid,hoge from aheahe
自分でコントロールしたかったら、シーケンスつこうちょけ。
34 :
デフォルトの名無しさん :02/05/08 10:24
sqlの勉強をしているのですが何かよい参考書があれば教えて下さい.
35 :
デフォルトの名無しさん :02/05/08 11:30
OracleのSQLでLONGRAW型の列にINSERT文でバイナリデータを登録する方法が あったら教えてつかーさい
>>30 ありがとうございます。
>>33 FMはマクでもできるので
いいですね。
37 :
デフォルトの名無しさん :02/05/08 17:30
>>21 oracle8iならこれがベストだと思っていたが....
select * from (select * from userm order by usernm) where rownum <= 20
minus select * from (select * from userm order by name) where rownum <= 10;
既出ならすまん。
>>35 関数 HEXTORAW() をつかう。SQLリファレンスマニュアル参照。
>>37 すげぇー!!!
言われてみれば当たり前だが、考えつかなかった
俺の馬鹿さかげんには父ちゃん(以下省略・・・・・
41 :
デフォルトの名無しさん :02/05/09 15:52
SQLの良い参考書はありませんか?
>>37 yahoo とかの検索エンジンっぽいのを想定してるんだったら、
検索結果のキーをどっかのテーブルに保存しておいた方が
確実だと思う。
他のユーザーが同じ検索をすれば再利用すれば良いし、
一定期間、使われなかったら消せば良い。
仕様による制限は出てくるけど。
検索エンジンとかの場合は対象データのあいまい検索とかになると思うので、 インターメディアテキストだっけ? との連携とかにしたほうがとか言ってみる。実装経験ないんでスマソ 結局この手のDBの場合パフォーマンスと仕様の制限との戦いっすね。 たとえは100001件目から100010件目をとる必要があるときとかは 上記のSQLではオモーになるだろうし。 結局DB構成とマッチしたSQLを書かないとだと思います。
オラクルマスターの黒本についている120日間限定トライアルエディションって 120日たった後またインストールってできる?
>>44 業務関係者なら120日もあったら、プラチナ取れます。
シルバーなら一ヶ月もあればとれるっしょ。
板違い(スマソ
10日間で覚えるシリーズで良いんじゃない。
47 :
デフォルトの名無しさん :02/05/20 22:30
Win2k+VB6+Oracl8.1.6iでアプリ作っているんですが、 VBアプリからOracleのシーケンス(Sequence)を定義するにはどうすればいいのでしょうか? 接続はoo4oです。
48 :
デフォルトの名無しさん :02/05/21 08:12
>>47 0070にマイラインを変えて見てください。
50 :
デフォルトの名無しさん :02/05/21 18:04
>>47 oo4oのCreateSQLメソッドとSQLリファレンスの Create Sequence 文
×CreateSQLメソッド ○ExecuteSQLメソッド
m02製品品目とwm02製品品目2という表がありm02製品品目の追加データがwm02製品品目2に 入っているとして,wm02製品品目2からm02製品品目にないデータをm02製品品目に追加 したいのですが。 insert into m02製品品目 select * from wm02製品品目2 where not exists(select m02製品品目.品番 from m02製品品目 where m02製品品目.品番=wm02製品品目2.品番) だときちんと追加されるのですが、 insert into m02製品品目 select * from wm02製品品目2 where not exists(select m02製品品目.品番 from m02製品品目,wm02製品品目2 where m02製品品目.品番=wm02製品品目2.品番)だと追加されないのです. 副照会部分のfromの所が違うのですが,なぜこれだと追加されないのかわかりません. 分かる方教えて下さい.
>>53 …わかった。けどその表の名前カンベンして下さいと上の方にお伝えください。
副と主の「wm02製品品目2」に区別がないのが原因だと想われ。
要するに下の副問合せは品番が一致するヤツ全部取ってきてる。
当然existsなのでinsertはされない。
55 :
デフォルトの名無しさん :02/05/22 16:24
>>53 そもそも両方ともSQLが変だね。こういう考え方じゃだめなの。
insert into m02製品品目
select * from wm02製品品目2
where wm02製品品目2.品番 NOT IN(select m02製品品目.品番 from m02製品品目)
有難う御座います。私はexistsの使い方を理解していなかったみたいですね。 これからはnot inを使います.有難う御座いました。
57 :
デフォルトの名無しさん :02/05/28 12:41
VBでデータベース処理の勉強をしているのですが,SQLの知識とVB全体の知識の どっちを重視したらよいですか?
>>57 片方に傾倒せず均等に習熟するのが望ましいですが。。。
今後、DBMSを含むシステムに係わっていくならSQLかな?
製品ライフサイクル(誕生〜死滅)まで考えると、VB[RAD Tool]に
精通しても(それ自体は悪いことではないが)自分の財産として
残るものがあるかな?と少々疑問があるわけで。。。
59 :
デフォルトの名無しさん :02/05/28 20:21
60 :
デフォルトの名無しさん :02/05/31 16:29
すみません素朴な質問なんですが、よくVBやJAVAでデータベース処理とか いいますが、アクセスやオラクルなどのデータベースソフト単品と VB+アクセス・オラクルとではどう違うのですか?またそれぞれ どういう利点があるのですか??
>>60 柔軟性が高い(汎用ツール+DBエンジン)か低い(ACCESS等)かの違い。
Oracleって単体ではGUI部分は無いだろ。
別に動かなくても良いじゃん
動こうと動くまいと知ったことではないんだが。 「WinNT,2000,XP で動作する」ってあるけど、どこかで Win95 で動いた実績が あるのだろうか。
66 :
デフォルトの名無しさん :02/06/10 10:53
SQLサーバーっていくら位するんですか?
67 :
デフォルトの名無しさん :02/06/10 11:02
100エソしょっぷに売ってるよ
69 :
デフォルトの名無しさん :02/06/10 12:08
テーブル設計について教えてください。 アプリ運用中にテーブルが増加したり削除されるというのは 好ましくないのでしょうか? 例えば、ある施設を予約するシステムで、 管理者がWeb上から施設の増加の手続きをしたときに、 新たな施設のスケジュールを管理するテーブルを作成する というようなものです。 DBは本当に基礎しかわからず、あまりこういうテクニックについて 載っているものがみつかりませんでした。 もし詳しい方いたら教えてください。よろしくお願いします。
>>66 お値段が気になるならとりあえずMSDE(SQL鯖の機能縮小版)使えば?
→DBエンジンのランタイムは条件付き再配布可能。
まぁ普通Jet使うけど。
>>69 機能を拡張する必要が生じた場合にテーブルを追加することは珍しくないけど
>例えば、ある施設を予約するシステムで、
>管理者がWeb上から施設の増加の手続きをしたときに、
>新たな施設のスケジュールを管理するテーブルを作成する
>というようなものです。
こういうのはスケジュール管理用のテーブルがひとつあれば事足りるので
施設の増加の度にテーブルを増やすことはしないな〜
(スケジュール管理用のテーブルに施設番号を持たせるだけだからね)
72 :
デフォルトの名無しさん :02/06/10 12:28
>>71 ありがとうございます。
やっぱりそれでいいのかー。
そうですよね。普通に考えて分けてテーブルを
作成する必要性って特にないですもんね。
すいません、どうもありがとうございました。
>>66 ネタかなぁ?(w まあ、マジレスしておこう。
下は10マソ少々から上は200マソ以上までピンきりなんだが。
俺は5分で調べられたぞ。ちっとは自分で調べたか?
74 :
デフォルトの名無しさん :02/06/10 21:42
MS-WORKSのデータベース Excelのデータベース MS-Queryのデータベース Accessのデータベース
>>69 施設テーブルと予約テーブルを用意すれば良い。
施設が増える=施設テーブルにレコード追加と考えれば良い。
もうひとつ書いておくと、予約者が予め判っている(社員のみなど)
なら社員テーブルなどの形で持っておくのもありだが、事前に確定しないで
不定なのであれば、予約者名という項目を予約テーブルに持たせる。
データベース設計というよりもデータモデリングの書籍などを調べると良い。
予約というのは結構単純なようでバリエーションを考えると幅広いため
勉強には良いテーマだと思う。
76 :
デフォルトの名無しさん :02/06/12 21:10
アスキー出版局 Microsoft Access 97 ステップバイステップ の本を持ってる人が いれば、193〜194ページの演習で質問したいことがある。
>>77 , 78
クロス集計クエリーにパラメータを設定して制限をかけるという演習で、本の書いてるとおりに
操作したつもりだが、クエリーの結果は何も返すレコードがないので、それが疑問になってて、やり
直したり何かやってるうちに、クエリーを実行しようとすると、集計関数のエラーメッセージを返され
たりとかしてた。
「売上(詰合せごと)のクロス集計」クエリーを作り直して、デザインビューで、デザイングリッド
の[抽出条件]行の[詰合せ名]フィールドのセルに、"詰合せ名を入力してください"と入力してた文字列
の両端に"["や"]"が抜けてたのを直したら解決した。
80 :
デフォルトの名無しさん :02/06/21 10:04
age
81 :
デフォルトの名無しさん :02/06/26 06:47
Oracle8とかAccess2000とか使っています。 データベースの検索でいつも悩むことがあります。 複数のテーブルを結合して100万件になるビュー(クエリー) があります。 ところが、アクセスしてきたユーザが使うのは自分の 分だけですから、実際に使用するのはその内の100件程度 なのです。 つまり、データベース内部で ビューで100万件作成=>そのビューから該当ユーザ取出し という流れになり、無駄に遅くなるのです。 理想は、 すでにユーザで絞り込んだビューであれば、始めから少ない データ量なので速くなります。
現状では仕方がないので、プログラム側からビューを 作るSQL(結合テーブルが多いので巨大なSQL)と同じ SQLを直に記述し、そのWHERE文の先頭にユーザコー ド指定しています。 しかし、これもビュー(クエリー)を多重継承してい るとお手上げです。 何か良い方法はありますでしょうか?
83 :
デフォルトの名無しさん :02/06/26 07:40
>>81 >>Oracle8とかAccess2000とか使っています。
どっちで話してるかわからん。
>>82 を読む限りではAccess2000だな
とりあえずキーとか結合条件に対してインデックスは張ってるよなぁ?
どういうテーブルかわからないが、テーブルの結合を少なくする(出来れば単表にする)
そのほかビューを月別・年度別に作成しておき
プログラムで制御するとか...
考えればいろいろ出てくると思うのだが?
>>81 Oracle側で問題のクエリーと同じ内容のビューを作っておき、
Access側でそれをリンクする。
AC2kじゃないけど、AC97+O817+ODBC接続で出来たぞ。
試してみる価値はあると思うが。
85 :
デフォルトの名無しさん :02/06/26 16:23
PostgreSQL に関する質問です。 -- 「螢」の文字は「a5ea」で表現されます。 検索したものの中には「aea5 eaa5」「d6a5 eaa5」「d6a5 eaa5」と表現される文字列があります。 aea5 eaa5 ~~~~~ 2バイトまたいで検索し検索条件に該当してしまうので、余計な検索結果が出てしまいます。 -- うまい対処法を教えてください。(PostgreSQL にマルチバイト対応パッチを当てて再コンパイルする以外の)
86 :
デフォルトの名無しさん :02/06/26 17:29
Database | Owner | Encoding -------------------+-----------+----------- xxxxxxxxxxxxx | xxxxxxxxx | SQL_ASCII だったので、createdb からやりなおしてみます。
>>83 テーブル自体の設計を変更する、テーブルをチューニングする、
という意味ですよね。
そうしたいのですが、できない事情も多いのです。
(すでに稼動中のシステムに対する新機能追加の案件等)
テーブルはいじれない、という前提で考えると結構難し
いのではないかと思います。
>>84 OracleとかAccessとかの名前を出してしまったことで
誤解を与えてしまいました。
両方を使ったシステム案件というわけではなく、Oracle
のみのシステム、または、Accessのみのシステムという
ものです。
規模は違いますが、両者共RDBMSなので、RDB一般として
よくあるような問題なのではないかと思ったので、両方
の名前を出してしまいました。
つまり、この問題は、PostgreSQLであっても、DB2であ
っても同じ問題があるのではないかと思ったのです。
>>87 テーブルをチューニングするって意味も有りますが
夜間バッチ(1時間毎)などで、ビューの代わりに単表に入れるとか?
リアルタイムで反映できないとダメって言われるとそれまでですが
ちょっと気になるのはビューは最適なSQLになってます?
実行計画(explain plan)をみて、テーブルにフルアクセスしているのありません?
100万件クラスだとSQLの書き方次第で、かなり変わってきますので
90 :
デフォルトの名無しさん :02/06/27 15:41
sybase ASE12.5をインストールしたのですが、 License Managerをコマンドラインから起動させることは出来ないのでしょうか? よろしくお願いします。
91 :
デフォルトの名無しさん :02/06/27 19:48
AccessってRDBMSか?
92 :
デフォルトの名無しさん :02/06/27 19:49
93 :
デフォルトの名無しさん :02/06/27 20:20
>>91 Relational DataBase Management System
です。
逆にリレーショナルでないデータベースってどういうのが
あるか知ってる?
桐
95 :
デフォルトの名無しさん :02/06/27 20:25
びーとりぶ
96 :
デフォルトの名無しさん :02/06/27 22:06
LDAP
Excel
>>91 ま、ただのフロントエンドツールとして見ている人間もいるがな。
>>89 なるほど!
その方法でうまくやれば、いけそうな気がします。
日中に発生するデータ変更をどう取り扱うかを解決すれば
やれそうですね。
一度、トライしてみます。ありがとうございます。
>>99 少し考えたのですが
日中はトリガーなど使えば
かなりの精度で反映できるでしょう
>91 Accessはフロントエンドツール RDBMSはJet でもAccess=Jetという認識が普通カモ
102 :
デフォルトの名無しさん :02/06/28 10:52
質問なんですが,JAVAやVBなどとオラクルなどのデータベースを組み合わせて データベース処理をするとかよく言いますが,これはどのような仕事なのですか? これらは実際にオラクルやアクセス、SQLサーバーなどのデータベースソフトが ないと出来ないのですか?
データベースとは、単体では意味のないデータを集めて意味のあるデータの 集まりにした物。ソフトウェアではない点注意すべき。 データベースを使いやすく、検索・整理とう出来るようにしたソフトウェア をデータベースマネジメントシステム(DBMS)その中でリレーショナル な概念を採用した物をリレーショナルデータベースマネジメントシステム (RDBMS)といいます。 RDBMSは、データベースをコントロールする事に特化している(場合が 多い)ので、フロントエンド(ユーザ側に表示する画面など)は別のソフト ウェアを利用する(場合が多い)。 両方を理解・習得して、RDBMSって何?っていう顧客に対して、意識 せず目的が達成できるアプリケーションを作成して提供するお仕事が 「JAVAやVBなどとオラクルなどのデータベースを組み合わせて データベース処理をする」お仕事です。
104 :
デフォルトの名無しさん :02/06/28 13:51
>>102 そうです。データベースソフトがないとできません。
図書館の検索システムを例にとると、
利用者はPCの検索ソフトを使って、本の情報が蓄えられている
データベースソフトにアクセスしています。
このようなシステムは
PC上の検索ソフトはVBやJAVAなどでつくることが多く、
ODBCやJDBCといったプロトコルで
データベースソフトと連係するわけです。
ODBCやJDBCはプロトコルじゃなくて、APIだろ。
>103さん、104さん ありがとうございます。本当に参考になりました.感謝します. ところでSQLを使ってVBやJAVA単品で、データベ-ス処理を行うソフトは 作れないということですか?素っ頓狂な事聞いて申し訳ありません.
107 :
デフォルトの名無しさん :02/06/28 17:38
>>101 それが普通だと困る。
>>92 や
>>93 のようにね。
その程度の認識しかない奴に限ってACCESS程度も使えない。
EXCELとACCESSの差もあまりわからない。
トランザクション等も理解しないままMDBを共有して、飛ばす。
>>102 だからACCESSは違うって。
当然できる。自分で実装せよ。
Oracleでセッションを切るSQL教えてください。
ALTER SYSTEM KILL SESSION <SID>,<SERIAL#>; SIDとSERIAL#はV$SESSIONから調べる。
>>91 厳密に言えば、違うね。
RDBではあるとはいえるが、RDBMSではない。
107氏はわかってらっしゃるようだが。
>>109 超感謝。神様仏様
112 :
デフォルトの名無しさん :02/06/28 21:04
>>107 ,110 共に自分で定義した「Relational DataBase Management System」
の基準で判断してるんだよね。
RDBを制御してるなら広義でRDBMSと認めてもいいんじゃないかな?
コミット・ロールバックは便利な機能のひとつであって、RDBMSか否かを
決定付ける程の条件じゃないでしょう。
RDBMSとはあくまでもRDBを管理してるシステムってことで充分なんじゃないの?
あれはISAMだよ! ちょっと変更が多くなると最適化しなきゃならないのが RDBMSとは言えないっすよ
114 :
デフォルトの名無しさん :02/06/28 21:59
>>113 それをいったらPostgreも同じ。
バキュームしないとすぐに大きくなる。
それでも RDBMS だよね。
そだね。書き方間違えたね。実質的にはSQLが使えるISAMだね。
自分の定義だが
ユーザ管理・バックアップリカバリ・ネットワーク対応(共有ファイルではない)
あとはトリガー&ストアドくらいは無いと
「Management System」とは言えないと思うのだが
>>114 すまん、PostgreSQLはよくしらん
>>116 あとは、プログラムがこけてもデータの一貫性が保証される堅牢性。
ファイル共有型のAccessではこれが一番不安。
>>117 >あとは、プログラムがこけてもデータの一貫性が保証される堅牢性。
DB2にも是非欲しいところだ(鬱
119 :
◆tare/k3c :02/06/29 03:00
質問なのですが、データベースのレコード数は、どれくらいの数まで 実用に耐えることが出来るのでしょうか?おそらくDBのソフトによって違うでしょうが、 例えば何十万レコードにもなる場合は、SQLでデータを抽出するにも 相応の時間がかかるようになるものですか? 何億にもなる場合はどうですか?保有しているレコード数とパフォーマンスには どれほどの関連性があるのでしょうか?
>>118 ?
サテライトエディションでも使ってるの?
>>119 >例えば何十万レコードにもなる場合は、SQLでデータを抽出するにも
>相応の時間がかかるようになるものですか
オラクルとSQL鯖のことしかわからないが
数十万のテーブルでも、検索条件がプライマリキーとかだけなら、
それほどかからない(1秒以下)
↑これは抽出件数が1件だから
どっちかって言うと
「抽出件数」や「インデックス」や「SQL文の書き方次第」で
大きく変わってくるとおもいます
それはね、いろんな要素が絡むから一概には言えないのよ。 >121氏は単独での場合を想定しているんだろうけど、ほとんどの場合は そういうケースはあまり多くなく、実際には複数の要求を同時に処理する 場合がほとんど。これの結構影響がけっこう大きい。 それにハードウェア次第でも変わるしね。フルスキャン(インデックスを使わ ない、という意味ね)するような場合でも、全部のデータがメモリ上にキャッシュ されているような場合は、それほど遅くないだろうしね。 だから、パフォーマンスの話を単にレコード件数だけで判断するのは危険だ、 というのだけは、知っておいて欲しい。
123 :
デフォルトの名無しさん :02/06/29 23:32
普通、データベースを作る基準って何? テキストファイルでも事足りることも 沢山あるとは思うんだけど。 何か、コレ! というものがあれば教えてほしい。
DBにデータを入れておけばSQLという標準化された言語で データにアクセスできる。そんなわけでクライアントはDBサーバーの プラットフォームやテキストファイルのフォーマットを気にすることなく SQLを書いてデータにアクセス&データを書き込みできる。 DBだとデータを扱いやすくするための機能がすでに 用意されてる。早いデータアクセスのためのインデックスや、 コラムの中のデータ内容を制限するいろんなconstraint。 プライマリキーやユニーク、チェック、トリガー、NOT NULLとか、 そういうconstraintをコラムごとに簡単に設定できるのは良い。 あとテキストファイルへのアクセスだと1つのクライアントが そこにread&writeでアクセスしてる時はデータのインテグリティを 保つために他のユーザーはreadだけでしかアクセスできないんじゃないか? DBだといろんなロックをrow単位でできたり、ロックの時間が短かったりして、 多くのユーザーがDBに同時にアクセスする場面が多い状況では DBの方がいいんじゃないかな。 あとDBは大量のデータを復旧したりバックアップしたりする機能も 備えている。ユーザーにデータへのアクセスを許可したまま テーブルの定義をアップデートしたり、インデックスを再構築したりも できる。 あと頻繁にアップデート&追加されるデータを含むテーブルと ごく稀にしか変更されない大量のデータを含むテーブルとか、 それぞれのテーブルの用途によってそれに適したテーブルを作れることで、 データを一層availableにしてリソースを有効に利用できるんじゃないか?
>>123 普通、ワープロを使う基準って何? テキストファイルでも事足りることも
沢山あるとは思うんだけど。
って言ってるのと似てると思うのだが
126 :
くじら12号 :02/06/30 19:02
疑問を疑問のままにしとくより
>>123 みたいに素直に質問するやつを
俺は素直に誉めたい。
質問は幼稚すぎるがな。
> 普通、データベースを作る基準って何? テキストファイルでも事足りることも > 沢山あるとは思うんだけど。 自分でもう答え出てる。 幼稚以前に、教えて君
129 :
デフォルトの名無しさん :02/07/02 14:17
オラグルの Oracle9i Application Server と Oracle9i Standard Ed. の違いを 知ってる方教えて〜。 用途: Win2000 - Apache (ssl) - tomcat - Oracle 構成で使用
Application Serverはデータベースでは無いようですね。
使った事ないのでよくわからない。
Standard Ed.と比べるならEnterprise Ed.でしょって感じだが。
まぁ
http://www.oracle.co.jp 逝ってらっしゃい。
>>130 http://www.oracle.co.jp/9i/ の下の方に
「そしてOracle9i DatabaseとOracle9i Application Serverの統合により、Oracle9i を核としたE-Buisiness ソリューションは・・・」
と書かれていた。
Oracle9i Standard Ed. を10ユーザほど買うことにします。
132 :
デフォルトの名無しさん :02/07/02 21:47
>>128 あなたの基準はなんですか?
一秒間に10件以上の更新がある場合?
総件数が10万件以上ある場合?
データが100Mを越える場合?
>>132 自分で実装するよりDBMS買ったほーが早えーな、と判断したとき。
Oracle で、BLOB に 500K くらいのデータを書き込んだら、えらく時間がかかる。なぜ? 100K くらいだとさくっと終わるのに・
135 :
デフォルトの名無しさん :02/07/03 18:44
>>134 sageで書いたら、気づいてもらえないじゃん(笑)
すくいage
携帯のデータを破壊するウイルスさがしてます。ここのアドにおくってください。
バッファキャッシュとかリドゥログバッファのサイズが十分足りてるかチェック。 SGAのメモリサイズが物理メモリのサイズをオーバーして バーチャルメモリにページアウトしていないかチェック。 ディスパッチャーやサーバープロセスの数がユーザー数とリクエスト数&量に 対して足りなくて、パフォーマンスのボトルネックになっていないかチェック。 リドゥログバッファのサイズをチェック。 リドゥログをオンラインリドゥログファイルに書き込む間隔が 短すぎてディスクへの書き込みが増えちゃってパフォーマンスを 落としていないかチェック。
138 :
デフォルトの名無しさん :02/07/03 22:16
> 自分で実装するよりDBMS買ったほーが早えーな その基準を訊いている
二人以上のユーザが同時にアクセスするとき。 人件費が購入費を超えそうなとき。 ランダムアクセスを多用するとき。
140 :
デフォルトの名無しさん :02/07/04 07:06
141 :
デフォルトの名無しさん :02/07/04 08:41
>>138 つまりどんなアプリケーションでもデータの集計、永続化が必要な場合はRDBMSはかなり有効ということです。
これでいい?
>>134 137に追加するよ。
Redoログファイルのサイズと個数も影響してるかも。
LogSwitchが頻発していて、DBWRがデータファイルに書き込む前に
Redoログファイルを使い切っている恐れもある。
143 :
デフォルトの名無しさん :02/07/04 10:07
>>138 >> 自分で実装するよりDBMS買ったほーが早えーな
> その基準を訊いている
はぁ?あんた、ほんとーに頭わりーな。
そんな基準あるはずねーだろ。
状況・プロジェクトの種類・プロジェクトのお金持ち度合い
で変わるんだよ。
144 :
デフォルトの名無しさん :02/07/04 10:10
つーか金さえあったら1行のデータ保存するんでもRDBMS使いてえ。 運用するの俺じゃないし。
145 :
デフォルトの名無しさん :02/07/06 16:36
オラクルとVBやJAVA等と併用させるのと、オラクル単品で使うのとでは どう違うのですか?
146 :
デフォルトの名無しさん :02/07/06 22:58
つーか、オラクルだけで何が作れるのかを知りたい。
>>145 あんたの言う「オラクル」って、Oracle Database Serverのことなのか、
Oracle Application Server のことなのか、それとも別の製品なのか、
はっきりさせろ。
データベースサーバーだけじゃほとんど何も出来ないのと一緒。
148 :
デフォルト名無しさん :02/07/06 23:11
>>145 バカな俺でも解るような説明を願います。
オラクル+VB出来る人募集という求人広告があったのですが,これはどんな事が できる人を対象にしているのか知りたいのです。
>>149 「Oracle を使ってデータを保存・集計するアプリケーションを VB で組める人」ってこと。
オラクル単品ってのは車のエンジン単品みたいなもの。UI とコントロールをアプリで組ま
なきゃ (一般ユーザには) 使えない。
>150さん ありがとうございます。 という事は別にSQLとかは知らなくても出来るのですか?
>>151 普通 Oracle を使うって言ったら SQL の知識が必須だと思うが。
まぁ DB 設計の連中としっかり作業分担が出来ていて「この SQL だけ
使ってください」とかいう理想的な状況になってるなら別だが、現実
はそんな甘くない。
オラクル高いんで、MySQL使おうと思うのですが (まだ、インストールしてODBC接続を確認した段階) こりゃ失敗って経験した人います? 日本語とか使えるか検証しないといけないのですが・・・
高いか安いかじゃなくて必要な機能で比較すれ。 そんな情報、Web上探せばいくらでもあるでしょ。 ちなみにおいらはPostgreSQL使い。
VB+Oracleつったら、明らかにデータベースの設計からでしょ。 あとメンテと。 クエリ投げるだけなら、「+Oracle」ってのはいらない。
>>153 じっさいさ、製品の値段が高い言ったって数十万くらいのでしょ?
情報が足りなくて、ちょっとした事でも調査しなきゃならない状況になると
最終的にはコストがかかってる場合がある
>>155 わからんぞ!
募集する方もよくわかってない場合もあるからな!
ORACLE=oo4oって意味合いでも考えられる
ただ言えることは
DB設計・PG作成・テストの全ての知識があったに越したことはない
>>154 そうですね、検索してみます。
あとはテストしてみてそれなりに使えそうかどうか試してみます。
集計・検索くらいができれば大体OKなんですが。
>>156 >じっさいさ、製品の値段が高い言ったって数十万くらいのでしょ?
データベースだけでしたら。
NET製品までいれるとけっこうな値段をユーザーに振っちゃうんですよ。
それで小規模のシステムなら少しでも安く創りたかったと。
あんまりオラクル社に貢献するのもなんですしね。
そんな時こそMSDE!!
>>157 >NET製品までいれるとけっこうな値段をユーザーに振っちゃうんですよ。
>それで小規模のシステムなら少しでも安く創りたかったと。
そういう意図ならいいんじゃない!
自分が言いたいのは、
インストール方法・SQL文の違い・運用方法の違いでなどで悩んで
多く工数がかかり、総合的なコストが、さほど変わらなかったりすると
お客的には、良いモノを使って作ってもらった方が有難いと思っただけ
DB(SQL Server 2000)でのテーブル定義で悩んでます。 2chのコテハンテーブルを作ろうとしていて、以下の項目を含めようと思っています。 ID 一意な番号をDB側で付与 名前 コテハン名。この中には各板のデフォルト名も含める 種別 特定コテハンか、共有コテハンか、板デフォかの区分値 特殊名 このコテハンが使用するトリップ・キャップ(実際には他テーブルのキー値) ホスト このコテハンの接続元リモホ(実際には他テーブルのキー値) 出没板 このコテハンが主に出没する板(実際には他テーブルのキー値) ここで、「特殊名」「ホスト」「出没板」の項目については、複数の値を格納したいのです。 配列のようなイメージで格納したいのですが、何かいい知恵はございませんでしょうか?
>>160 別テーブルにするのが普通なんじゃない?
>>161 有難うございます。
別テーブルでキー値群の管理をするアプローチでやってみたいと思います。
163 :
デフォルトの名無しさん :02/07/09 11:41
そんなたいそうなもんか・・・・?
・無駄に凝れ。 ・新機能に挑め。 ・重厚長大マンセー。軽薄短小逝ってよし。 ・エラー・不具合は運用回避。
165 :
デフォルトの名無しさん :02/07/09 16:25
データベース系の仕事をしたくて探しているのですが,やっぱり未経験では 雇ってくれないのですかね・・・。どんな事が出来れば採用されますか? 私はVBとSQL位しかできなくて、資格はオラクルシルバーぐらいしか持って いません.
>>160 どうでもいいことが気になったのだが、デフォルト名+トリップやトリップのみの
コテはどうするんでしょ?
PostgreSQLの運用ってvaccumeだけで良いの?
170 :
デフォルトの名無しさん :02/07/09 19:59
データモデリングってまるで雑用の作業だな
171 :
デフォルトの名無しさん :02/07/10 00:20
>>168 定期的に pg_dump してバックアップ。
念のためね。
172 :
デフォルトの名無しさん :02/07/10 18:06
MSDE(8.0)の質問です。 データベースやテーブルの一覧を行うコマンドなどはあるのでしょうか? (MySQLだとshow databases)
>>172 MSDEがSQL鯖と一緒なら
sp_tablesとsp_columnsで出来ますよ
>>173 ありがとうございます。MSDEでも使えました。
それらをキーワードにして検索したら他にも見つかりました。
175 :
デフォルトの名無しさん :02/07/11 00:04
マスタテーブルとトランザクションテーブルの定義って何ですか? 結構あいまいな解釈で判断しちゃったりしてるんで。 たとえば、ユーザー直接編集するようなテーブルをマスタと呼んだり、 アプリが処理を行うために適宜生成してくのをトランザクションと呼んだり。 で、このどちら側から判断するかで解釈が変わるテーブルもあるんで、 名前付けとかで悩んだりしてます。これらの境界って厳密にあるんでしょうか?
176 :
デフォルトの名無しさん :02/07/11 00:04
177 :
デフォルトの名無しさん :02/07/11 00:08
>>175 トランザクションからデータ量を減らすのがマスターだよ。
>>177 それって、極端な解釈をすると外部キーを持つテーブルの
大半がトランザクションになっちゃったりしないですか?
>>176 ダウンロードできるんですね。
sp_tablesで検索して、MSDN Onlineでは発見してたんですが
ローカルに保存できるのはありがたいです。
細い回線でせっせと落としております。ありがとうございました。
180 :
デフォルトの名無しさん :02/07/11 15:40
全く何をしたらいいかわからない超初心者なんですが、VBをある程度学習したので データベースの方も知りたいのですが,実務でデータベースの作り方を教えて 下さい.
>180 VBでデータベースな本読め。 それが終わったら仕事すれ。
[OSのVER]:Soralis8 [OracleのVER]:8I ”INSERT処理を早く!”ということで、 ヒント句(APPEND)を使用しました。けど、 そのヒント句が実際に使われたかが分かりません。 (処理速度は変わりませんでした。(200件程)) トレースとPLAN_TABLEを見ましたが、 ヒント句つきとそうでないものの差異がありません。 どうのように確認したら良いのでしょうか? 使用SQL文:INSERT /*+APPEND */ INTO 〜 又、他に有効なヒント句はありますでしょうか? 以上、よろしくお願いいたします。
>>182 その後は? VALUES( ... ) か? SELECT〜FROM...か?
×その後は〜 ◎INTOの後は〜
ありがとうです! INSERT文は簡単なもので、次のようなものです。 INSERT /*+APPEND */ INTO 表名 (A,B,C,D) VALUES (a,b,c,d); よろしくお願いいたします!!!!
>>185 いえ、違うんです。
そもそもは、アプリからJDBCで。
あと、試験的に、SQLPLUSで、ファイルを流してみました。
カーソルの場合と、何か違ってくるのでしょうか?
188 :
デフォルトの名無しさん :02/07/12 16:21
>>187 INSERT処理を速く、ということはその処理が遅いんだよね。
まずは、どこが遅いのか調べてみるべきでは。ネットワーク?ディスク?
もしかしたら、INSERT以前にあなたの作ったプログラム自体が無駄な事
しているかも。
ORACLEは書き込みキャッシュがあるから、200件程度じゃ差が出ないよ。
大量のロードをしたいならSQL*Loaderがある。
9iなら
INSERT ALL INTO テーブル VALUES(値) INTO テーブル VALUES(値) ...;
なんて書き方が出来るらしいけど。
>>170 >データモデリングってまるで雑用の作業だな
おぃおぃ
DBシステムで一番大事なとこだろ?
モデルの善し悪しでほぼ全てが決まる
(プログラムの作りやすさもそれで決まる)
といっても過言ではないと思うが。。。
マァマァ Sヨのたわごとですから
191 :
デフォルトの名無しさん :02/07/13 12:31
>182 名前:ななこ 投稿日:02/07/11 17:40 >”INSERT処理を早く!” すいません、チンコが立ちました。
192 :
デフォルトの名無しさん :02/07/13 16:32
データベースってオープン系や制御系でも使うのですか?
ORACLEでJDBC使うときに、データソースは要らなくなったらしっかり closeして置かないないと、カーソルが溜まっていったかも知れません。うろ覚えなので。
195 :
デフォルトの名無しさん :02/07/15 15:09
データベースの勉強をしようと思っているのですが,どういう順番で 学習していけばいいですか?
>195 ブロンズ→シルバー→ゴールド→プラチナ
できるAccessのシリーズ読破
テキストファイル→ISAM→RDB
基本→応用
200 :
デフォルトの名無しさん :02/07/15 22:32
デー→タベー←ス でっどろっく
まじレスしよう。 SQL(検索、更新、挿入)→SQL(テーブル作成とか)→DBA→チューニング
正規化の理論とかはどこに入ってますか?
203 :
デフォルトの名無しさん :02/07/16 04:33
>>202 ちょっとした本屋に行けばウナルほどころがってますが
みなさん、こんにちは SQL-Server2000の 連合とクラスタリングの違いを教えて下さい。
ありがとうございます。 ところでDBAってなんですか?あとPL/SQLとかしなくてもよいですか?
207 :
デフォルトの名無しさん :02/07/16 22:45
age
>>206 DataBase Administration
つまり、データベースを管理すること(表領域がいっぱいになっていないかなど)
PL/SQLはオラクル特有の物であり、データベース全般に関する話題ではないぞよ。
オラクルをやるんだったら、
>>201 の第2行程に突っ込むべきかな?
あと、DBAやチューニングレベルになるとDBサーバーのOSレベルの
知識もないとやっていけないぞ。
同じオラクルでも、UNIX系とWinでは具体的な作業が違ってくるからな。
もちろん、根本的な考え方は通用するけど。
209 :
デフォルトの名無しさん :02/07/18 14:35
データベース設計ってどうしてますか? ER図って書いてますか? ER図を書けるいいツールってありますか?
ER図を書けるいいツールってないあるか?
211 :
デフォルトの名無しさん :02/07/19 18:23
C++でデータベースを扱うのですがノウハウがなく不安です 使っちゃいけない文字とか、、selectした内容が大きい場合どう 処理すべきか?動的にメモリを確保すべきか、テンポラリファイルに落として 使うべきか。。 その他、安全なデータベースプログラミングについて考察した本とかありますでしょうか?
テスト
質問です! テーブルを削除する命令は Drop Table ですが、 DB(ユーザーかな?)を削除する命令は何ですか? 厨房質問でスマソ
>厨房質問でスマソ そう思うのなら自分で調べろ。俺がクライアントなら そのくらい知らないやつの設計したDBなんて怖くて使いたくないぞ。
Database Assistant で消したよ
>>214 そういう言い方ないんじゃねーのかな。
だったら参考になるサイト教えてくれてもと思うが。
まぁ、他人にそこまで要求するのも無理か。
217 :
デフォルトの名無しさん :02/07/20 19:30
すみません、全くの素人なのですが誰か教えて下さい。 4Dっていうソフトは有名なのでしょうか? オラクルとかよりずっと安くてしかも機能的には全く問題ないって聞いているのですが・・・
>>216 >
>>214 > そういう言い方ないんじゃねーのかな。
自分で自分に突っ込んでどうする ? わざわざトリップまでつけてる
し...。もしかして、真性の... ?
> だったら参考になるサイト教えてくれてもと思うが。
その前にマニュアルかヘルプ読めよ。
>>217 機能的に問題ないかどうかは作るシステムによるだろ
>>211 に誰も答えてないな。
確かに質問が全然具体的でないからアドバイスのしようがないか。
>使っちゃいけない文字
テーブルに格納するデータには、基本的にそういうのはない。
ただし、クライアントOSやDBサーバーによってはあるかもしれないから、
それは個々に対応するしかないだろう。
テーブル名やカラム名には一般的には、英数字と一部の記号しか使え
ないのが普通。Oracleは漢字も使えるけど使わないことを薦める。
>selectした内容が大きい場合
具体的なサイズがわからないからなんとも…。
それは、1つのカラムに格納されているデータのサイズが数メガとか言う
レベルなのか、それとも件数が非常に多いのか…。
前者の場合は、具体的にどういうデータで、どういう処理をしたいのかで
変わってくるだろう。
本については知らない。何を持って安全なのか…。
221 :
デフォルトの名無しさん :02/07/21 15:47
日本語のソート順とかはDB依存になりますか?
223 :
デフォルトの名無しさん :02/07/21 20:49
Access の「参照整合性」と「外部キー制約」って同義なんですか? どっちがどっちの内容に会わせるかどうやったら設定できるんですか?
MySQL+Cでできるプログラム解説ページないかなぁ?
226 :
デフォルトの名無しさん :02/07/23 06:27
おはようございます。 パソコン初心者総合質問から こちらを教えていただきました。 マルチポストになることをお許しください。 日本実業出版社のデータモデリング入門という本を お持ちの方、あるいは読んだ事があるという方は いらっしゃらないでしょうか。 この本のp65、p66で、 第1正規形から第2正規形へ、とか第2正規形から第3正規形へと いう説明の図のところで、それぞれのデータ項目から 矢印が出ているのですが、その矢印に×印がついているのと ついていないのがあります。 これって、何の違いでしょうか。 正規化とか、データモデリングで検索して いろいろなサイトを見に行きましたが、 このような表記をしているところはなくて 混乱してます。。。
228 :
デフォルトの名無しさん :02/07/23 15:13
Pro*Cについて詳述しているサイトありませんか?
227さん、ありがとうございました。 先ほど仕事から帰ってきて、 出版社に聞いてみたところ解決しました。 出版社に電話して、教えてもらえると知らなかったので 助かりました。 本当にありがとうございました。
MSDEにアクセスのデータベースを追加したんだけど、 MSDEに登録しているデータベースを削除するにはどうすればよいの?
232 :
デフォルトの名無しさん :02/07/24 14:51
最近なんかの雑誌でオラクル体験版が付いてなかったっけ? なんの雑誌だった?
>>232 お前が最近チェックした雑誌をしらみ潰しで探せ。
デラべっぴんだったと記憶しているが。
235 :
デフォルトの名無しさん :02/07/24 20:12
いや、そうじゃなくってやり方教えろよ。 よろしくお願いします。
>>237 製品版も使用版も同じソースから作ってるなら、
逆アセしてみる -> 製品/試用のフラグ書き換え or 機能/日数制限に飛ばないように書き換え (JSRだかBEQだか)
で可能かも。 まあこんな簡単には逝かないだろうが。
良いことを教えてやろう ORACLEのトライアル版は製品版とは変わりがない。 ○○日限定評価版とか書かれていても、それを越えても 何ら問題なく使用できる。 困るのは、保守契約が結べないのでパッチを入手する方法が無いこと。 ちなみに、SQLサバも日にち越えても使用できるぞよ。
ライセンス・・・まぁいいや。
会社にある製品版をコピーしとけばよし
>239 開発用途なら素直に OTN からダウンロードしろや。 マニュアルだって PDF で手に入るんだからさ。
243 :
デフォルトの名無しさん :02/07/27 21:45
Oracleなんですけど ORA-03114:Oracleに接続されていません。 っていうエラーが、エラーメッセージを登録するテーブルに 登録されていました。 Oracleに接続されていないのに、なぜOracleのテーブルに そのログを書くことができるのでしょう?
検索したら見つかりました。スマソ
やっぱり違ってました。
>>243 ってどうなんでしょう。ありえるんでしょうか?
246 :
デフォルトの名無しさん :02/07/28 14:14
>>226 これは確かに書き方が不味いな。要するに×がついているのは
このままでは駄目だ、というのを表現する意図で使っているみたいだな。
その意図が図を見て伝わらない時点でモデリングとしては失格だと思うが、
まあ見逃してやれ。
そもそも、こういう記述の仕方はないし、正規化そのものに関しては
この本よりも他の本を読んだ方が良いと思われ。パターンのカタログ集と
して使うのがこの本の正しい使い方だろう。
247 :
デフォルトの名無しさん :02/07/28 16:11
postgreSQLとORACLEで テーブルの定義を見る方法を教えてください。 カラム、型、制約、、
248 :
デフォルトの名無しさん :02/07/28 19:43
>>247 OracleならUSER_TABLESやUSER_TAB_COLUMNSテーブル。
PostgreSQLならpg_classやpg_attributeテーブル。
以上をキーワードに調べるよし。
249 :
デフォルトの名無しさん :02/07/28 20:21
どうもありがとうございます! m(_ _)m
>>217 おそレスだけど
4Dはやめとけ。以前あるプロジェクトで使用したことあるんだが、
ほんとうにDBがよく壊れる。試験運用中、なんどもインデックスの
再構築をかける必要があった。これでは支障をきたすほど。
SQL文が一切使用できないので、SQL文の知識が役に立たないし、
これを覚えても、OralceやSQL Serverなどへの応用ができない。
SELECT〜FROM...なんて存在しない。
1サーバー10数万もするのに、せいぜい1つか2つのデータベース
ファイルしか開くことができない(これは唖然とした。Oracleや
MS SQL Serverでは何十個も開くのが普通なのに)。
また、DBと開発環境の統合が売りなのだが(MS Accessみたいなもの)
エディタがタコ。まともなデバッグができない。コントロール群もタコで
UIに工夫もできない。きわめて貧弱なUIしか作れない。
OralceなどのRDBではDBと開発環境が分離していて、フロントエンドをVBや
Delphi, Oracle Developerなど目的に応じて選択できるが、それすらできない。
Oralce,MSSQL,InterBase + Delphiあたりの環境とは比較にならないほど
開きがある。
きわめて信頼性を要求されるならOracleを、安価にしたいならInterBase
(FireBird)を使用したほうがいい。4Dはマジにやめとけ。
おれのかかわったプロジェクト?ああ、途中からFireBirdにしたよ。
DB無料だし。
質問があります。 SQLなのですが dump tableでテーブルのバックアップを取り、 load tableで復元しようとしたのですが メッセージ 8403、レベル 16、状態 1 テーブル '〜〜' はインデックスを二重に定義しています。 テーブル '〜〜' のロードは中断されました。 というエラーがでてしまいます。 インデックスの削除もできないようでドツボにはまっています。 どうかテーブル単位で復元させる方法を教えてください。 よろしくお願いします。
ところでどなたか、hsqldb(旧HypersonicSQL)の詳しい情報載ってる日本語のサイト知りませんか? もしないようなら自分で作ろうかと思うのですが、 需要ないかなぁ。
是非作ってください。期待してます
254 :
デフォルトの名無しさん :02/08/07 22:02
質問なのですが、SQLで INTO :HAF.共通部.削除不可フラグ, :HAF.共通部.システム日, FROM HAFRDB.HAFTBL ------------------------------- WHERE 会社コード = :HAF.キー部.会社コード AND 業務キー = :H業務キー という文に使われている、この「:」は何を意味しているのでしょうか? 参考書やネットで調べてみたのですが、わかりません… どなたか教えてください。お願いします。
>>254 デジャブ?
どっかのスレで似たような質問見かけた気がするんだけど・・・
ごめんね。わたしゃ知らんの
256 :
デフォルトの名無しさん :02/08/07 22:37
>>255 SQL教えてスレでも質問しましたが、未解答のまま1000落ちしたので
こちらで質問してみました。
多重質問になるようでしたらすみません。
>>254 ホスト変数の事じゃないのか?
例えばそのSQLの前で「HAF.キー部.会社コード」という変数になんか代入してたり、
SQLの後で「HAF.共通部.削除不可フラグ」とかを使って何かしてたり…。
もう少し環境がわかれば答えも出やすいだろう。
>>256 いや、謝られることないですよ。ヘタな茶々いれてごめんね。
あのスレで結論出てなかったんだ・・・
>>253 期待していただけるならがんばろっかな。
260 :
デフォルトの名無しさん :02/08/13 13:15
質問でございます。 db2で、onlineバックアップイメジからrestore databaseするときに、from オプションでバックアップイメジの場所を指定してやっても、なぜか、 backup databaseしたときに指定したディレクトリ(バックアップイメジが もともとあったディレクトリ)を見に行ってしまいます。 バージョンは、DB2 UDB 7.2 work group edition for linuxです。 同バージョンのwindows版でも試しましたが、結果は同じです。 なにか注意すべき点がありましたら、教えていただけると幸いです。 よろしくお願いします。
何のためのベンダーサポートなんだか…。
263 :
デフォルトの名無しさん :02/08/19 18:22
基本的なテーブル設計の方法を教えていただきたいのですが。 階層型のデータを保持したい場合には、どのようにテーブルを作 成すればよいのでしょうか? イメージとしてはエクスプローラのフォルダツリービューのよう な感じです。 ルートはひとつですが、子ノードがいくつかあり、その子ノード もいくつかの子ノードを持っていたりいなかったり。 ツリービューに展開する以前にデータの保持の仕方がわかりませ ん、わかりにくい説明かとは思いますが、御教示ください。
>263 ツリービューがどうやってデータを保持しているかを研究すると良いと思われ。
266 :
デフォルトの名無しさん :02/08/20 23:45
お前ら! Javaオープンソース系の永続化フレームワーク、使ってる方はいらっしゃいますか? TorqueとかOJBとか。Simper使うのは勇者でしょうか。 使いたいのだけど、今ひとつ枯れていなそう&日本語情報が少ないので躊躇してます EJBでもいいんだろうけど、何となくいや。 スキーマ定義からクラスを全部生成してくれるなら使うんですが・・
>>264 、265
ありがとうございます。
こんな感じでよいのでしょうか?
ID PID STR
00 NULL 生物
01 00 動物
02 01 哺乳類
03 01 鳥類
04 02 人間
05 00 植物
06 03 からす
07 04 男性
269 :
デフォルトの名無しさん :02/08/21 21:30
WindowsでPostgreSQLって聞かないけど まだWindowsの環境がととのってないのん?
271 :
激困り・・・・ ;; :02/08/22 12:37
すみません、別の掲示板にも書いたのですが、こちらでも聞かせてください。 Sybase + ASE でデータベースを作っています。 この環境で、ファイルからデータを直接インポートしたいのですが、 そのようなコマンドが見つかりません ;; Postgres のcopyや\copyのような機能はないのでしょうか? ご存知の方がおられましたらよろしくお願いいたします。
>272 ありがとうございまつ。 ユーティリティのマニュアルが欠けてて、そこに辿り着けませんでした。 マニュアルダウンロードしますた。感謝でつ。
274 :
デフォルトの名無しさん :02/08/22 16:23
2点間のSQLサーバ同士でIPアドレス指定でレプリケーションって出来ないのでしょうか? 自宅(IP固定)と職場のテスト環境(ルーター使用)間でやっているのですが... 環境は ・自宅(Win2000サーバ+SQLServer2000) ・テストクライアント(WinXPPro+Win2000サーバ) 通常はクライアントを自宅サーバのドメインに加えて(これが出来なかった)やれば出来るかと思うのですが... 一応自宅サーバ内ではレプリケーションは出来ました(当たり前か)。
>274 できるよ。 HOSTSに鯖の名前とIP書き込んで、PING サーバ名でパケットが 通る状態にすればあとはウイザードに従うだけ。
>>267 仕様としてはいいですね。永続化に特化してるのでEntityBeanより使う気になる。
でもどの実装系使っていいか、よくわからないです。
あとXML手書きはいやなので、DBスキーマ-> XML 生成ツールも欲しいとこです。
OJBが枯れてくれば、よさそげなのですが。
・・・・ひょっとしてスレ違いですか?
277 :
デフォルトの名無しさん :02/08/25 13:43
sendmail や qmail のメールスプールの保存システムのデータベースは どうなっているのかなと調べてみたところ、ファイルで保存しているとのこと でした。 つまり、文章を保存する際は、データベースにデータを格納するよりは、 ファイルを用いたほうが効率がいいということで、よろしかったでしょうか。
単に効率の問題だろうね。 メールなんて、スプールしてるファイルが失われても「おちますた」の一言で 済ませちゃう程度のものだから、わざわざDB使わなくてもいいという判断なの でしょう。
279 :
デフォルトの名無しさん :02/08/25 20:35
OSのファイルシステムはしっかりしてるし。今時データベースなんていらねーな。実際。
280 :
デフォルトの名無しさん :02/08/25 21:05
>>279 ヒソヒソ( ´,_ゝ`)プッ (´゚ c_,゚`)クス
282 :
デフォルトの名無しさん :02/08/26 03:05
>>279 最近のOSてファイルで排他制御とセーブポイントと
トランザクションが使えるの?
>283 ネタにはじるすカコワライ
>>275 遅レスですみません。
アドバイスに従いテストクライアントのHOSTSファイルに鯖のIPと名前を書いて
PINGも通るのですがレプリケーションは出来ませんでした。
クライアント側のエンタープライズマネージャから鯖のDBを作成し、
レプリケーションの設定もしてみたのですがやはり出来ませんでした。
会社のルーターを使っている関係で鯖側からはテストクライアントが見えないのですが
これが問題なのでしょうか?
>285 トランザクションレプリケーションみたいなPush型のレプリケーションなら 当然鯖からクライアントを見られる状態じゃないと実行できないよ。 マージレプリケーションなら、クライアントからサーバへ繋がるだけでOK。
287 :
デフォルトの名無しさん :02/08/31 12:42
REALbasic+SQLとAccess+VBAのどちらが機能的なデータベースが作れますか。
オラクルで決まりでしょ
289 :
デフォルトの名無しさん :02/09/05 15:59
たとえば、服情報というテーブルがあって、 服情報.服色に色を格納したいんですけど、 この場合、色情報テーブルを作成して、服情報.服色に色情報.色を格納した方が良いでしょうか? それとも、服情報.服色に直接、黒とか赤などという風に記述したほうがよいでしょうか? (※コードなど細かい事は省いています) よろしくお願いします。
もし上の例で色情報テーブルを作成した場合、 服情報.服色に複数の色を持たせたいんですけど、 この場合、どのように登録するのが良いでしょうか?
そりゃ、カラーコードのテーブル作った方がいいだろうなぁ。
>>291 ありがとうございます
それから、
>>290 の問題に戻ってしまうんですけど、
服情報に複数の色情報を持たせたいとき、どのように処理すれば良いでしょうかね?
自分の頭の中では、服情報.服色に一つの色しか格納できないかな・・・など思ってしまい、
処理イメージがわきませんでした・・・
身近に質問できる人がいないため初歩的な質問になってしまいますが、よろしくお願いします
>>292 自分が関わったプロジェクトで、服情報テーブルに色情報フィールドを一つだけ用意して
色情報テーブルのPKをビットのようにしていた。
つまり。。。。
色テーブル
ID 色
−−−−
1 赤
2 青
4 黄
8 黒
服テーブル
ID 服名 色ID
−−−−−−−−−
1 Tシャツ 9
2 ジーパン 6
とすると、Tシャツは赤と黒の物がある。
ジーパンは青と黄の物があるということになる。
みんなはどうしてるのかな?
294 :
デフォルトの名無しさん :02/09/06 06:52
age
>>293 色の数の上限が決まっているならアリじゃない
>>293 俺なら
色テーブル
ID 色
−−−−
1 赤
2 青
4 黄
8 黒
服テーブル
ID 服名
−−−−−−−
1 Tシャツ
2 ジーパン
製品テーブル
ID 服ID 色ID
−−−−−−−−−−
1 1 1
2 1 8
3 2 2
4 2 4
みたいにテーブル分けちゃうかな。
297 :
デフォルトの名無しさん :02/09/06 10:38
SELECT を発行する際に、LIKE '%0%' をインデックス項目に使うと、 インデックス使ってくれますかね? スレ違い?
すんまそん ORACLEでの話です 鬱だ、逝って来る
>>292 リレーショナルデータモデルの解説を読んだことある?なければ読むべし
自分は
>>296 のテーブル構成に1票入れておく
>>297 別にスレ違いじゃないし、逝かんでいいよ。
index使うかどうかはオプティマイザが判断することだからな。
パフォーマンスチューニングのマニュアルで EXPLAIN PLAN、SQLトレース、TKPROF
ってのを探してみよう。実際にどういう風に読みにいくかがわかる。
でもその場合は、ほとんどindex使わないでテーブル全件読みになるんじゃ…?
indexの種類にもよると思うが。
(´-`)..。oO(B-TreeじゃなくてBitmapの時ってどうなるんだろう。)
>>296 煽りでもなんでもなく、純粋な疑問なんだけど
その構造だと、色テーブルの色IDを1,2,4,8というようなビット値に
する必要ってあるのかな?
足りない頭で考えてみたんだけど、わかんなかったので
何か考えがあるのならおせーてやって下さい。
色テーブルのID値は別としても
そっちの構造の方が良さそうだね。
>>293 の構造のとき、赤がラインナップされている
商品一覧をSQL文で選択することが出来なくて
とんでもない汚いテーブルを作って逃げたよ。
続きます
色一覧テーブル
ID 色
−−−−−−−−−−
1 赤
2 青
3 赤、青
4 黄
5 赤、黄
みたいなやつね。
そうすると
>>299-301 のようにINDEXを使ってくれない
検索が行われることになって辛かった。
そのときは、そんなに規模も大きくなかったので
FULL SCANでもそこそこのパフォーマンスが出たけどね。
SQL文でビット値を検索出来るような方法ってあるのかな?
>>293 の製品テーブルから、指定された色が含まれる
商品を一発で抜き出せるようなやつ。
誰か知ってたら、おせーて!!!
304 :
デフォルトの名無しさん :02/09/07 11:40
>>284 2ちゃんねるだってファイルで書き込み管理してるじゃねーか。アホ
>>304 OSにより仕様が激しく違うのであんまりよくない
307 :
デフォルトの名無しさん :02/09/09 11:17
age
たしかに別に金のやり取りの発生しない掲示板にトランザクションなんか 過剰だけどな。
質問です〜 Oracleでユーザテーブルのレコード件数をCOUNT取りたいんですけれど どうすればいいですか? わざわざ Select count(*) From ....を全テーブルに投げるのは頂けないです。 一発のSQL文で取れる様なSQLご存知ありませんか? こういう検索結果が欲しいです。 Aテーブル 1件 bテーブル 2件 ・ ・ ・
> 頂けないです なぜ?
311 :
デフォルトの名無しさん :02/09/10 19:33
>>一発のSQL文で取れる様なSQLご存知ありませんか? インラインビュー使えば文字通り、「一発で」できるぞ。↓ select * from (select count(*) cnt1 from table1) ,(select count(*) cnt2 from table2),....... >>Select count(*) From ....を全テーブルに投げるのは頂けないです。 同じ事だがな(w
>OSのファイルシステムはしっかりしてるし。 >今時データベースなんていらねーな。実際。 つーか、仕事でデータベース使っちまうと 使っちまうとタコクライアントから10秒おきに SELECT ALL * FROM BIGTABLE ORDER BY DATE 投げられて鯖がクソ重い。 データベースストリーミングというかそのアレ、 リアルタイムなデータの表示。 共有メモリーとTCP/IPを使うべきなのだが...
>>912 そういうまぬけな設計をするシステム屋なら、例えDBを使わないとしても
同じ過ちを犯すと思うが。
DBのせいにするのは筋違いもはなはだしい。
# 割込みを使うべきところでポーリングとか、そういう次元でしょ
そのへんを融通効くように設計するのは難しいだろうなあ
drop table test; create table test (id integer, name char(4), day date); insert into test values('1', 'aaaa', ''); テーブルを作る際にdayに何もデータを入れずに作りたいんですが 上の形式で書くとエラーが取れません。データを入れずにdateを使うのは 無理なんでしょうか?
>>315 ('1', 'aaaa', '');
を
('1', 'aaaa', NULL);
にしてもダメ?
>>302 > その構造だと、色テーブルの色IDを1,2,4,8というようなビット値に
> する必要ってあるのかな?
無い。コピペしたから色IDがそのままになってるだけ。
318 :
デフォルトの名無しさん :02/09/11 20:46
>そういうまぬけな設計をするシステム屋なら、例えDBを使わないとしても >同じ過ちを犯すと思うが。 ># 割込みを使うべきところでポーリングとか、そういう次元でしょ そういう基本的なレクチャーをしてるページってない? 「DBの使いどころ・適切な利用方法」とか。
そんなことが簡単にできたら俺のメシのタネがなくなるからヤだ。 DB屋は専門職ですよ?
>>320 >>318 データベースはデータの読み込み、書き込みを行うためのものです。
データベースプログラミングはある程度のノウハウが要るかもしれません。
具体的には、ボトルネックの発見と、ベンチマークプログラムを作って
実際に速度を上がったことを確認するプログラムを書くとか、そこらへんが
データベースのためのプログラミングに特化したトピックだと思います。
>>320 その部分は重要だけど、それ以前の話よ。
「こういう部分には導入するなよ」って常識集みたいなもの。
テキストファイルの保存とか通信路とか
他の仕組みを使ったほうがいい部分までDBにされちゃうんで。
322 :
デフォルトの名無しさん :02/09/20 01:09
age
>>321 ストレージング==DBだと思ってる馬鹿がふえたぞ、最近。
ファイルのリード/ライトもできないアホが設計担当になる悲劇。
スケーラビリティとかわけのわからないこといってDB使いたがりますな。
そりゃきっついわあ
>320 だな。 基本的な事すっ飛ばして、イキナリSQLテクニックとかから入るのな。 シーケンシャルアクセスとランダムアクセスの違いとか。 テキストとバイナリの違いとか。 ソートのアルゴリズムとか。 一切分からない奴がシステム組んでる・・・動いてるのは奇跡だ。
327 :
デフォルトの名無しさん :02/09/20 12:58
Accessにかかってるパスワードを破りたいのですが、 どなたかその方法(もしくはクラックツールがDLできる場所)を ご存じの方がいたら教えて下さい。 スレ違いだったらスマソ
>>328 それだと、方法を知っている人がいても
なぜパスワードを破る必要があるのか書かないと、
教えてくれないよ。
>>328 知っているけど教えられないよ。
#これはネタってことでいいよ(w
331 :
デフォルトの名無しさん :02/09/21 17:47
SQLで時間の分が10分のレコードのみを読み出したいときは Where句でどう記述すればいいのでしょうか? × 20:08:00 × 20:09:00 ○ 20:10:00 × 20:11:00 こんな感じです
型は何だっつーの
where time = '20:10:00' or time = '21:10:00' or time = '22:10:00' .... OR で24個ズラズラ書くか? where substring(to_char(time),3,2) = '10' TO_CHARしてSUBSTRINGするんじゃないのか? 未確認なので間違ってたらフォロー願う
>>331 Date型から文字や数に変換する時に分だけ取り出せるような方法は何かしらあると思うが。
AccessだったらMinite関数だろうし、OracleだったらTO_CHARの第2引数で分だけ指定すれば
いいだろうし。SQL鯖は知らん。ただしDB依存になるけどな。
DATEPART 指定された日付の、特定の日付の要素を整数で返します。 構文 DATEPART ( datepart , date ) 戻り値の型 int
>>329 ,330
レスありがとうございます。こちらの住人は優しい方が多いですね。
このたび人事データを扱う業務を引継いだのですが、前任者が
かけたパスワードが分からず、データが見れずに困っています。
また一から総務に問い合わせてDBを作成するしかないのかなぁと
思いつつ、藁をもすがる気持ちでこちらに書き込ませて頂きました。
知識不足ですみません。
どなたかお助け願います(T_T)
前任者が行方不明や死亡じゃないなら前任者に聞け。 業務上必要なデータなら前任者は引継ぎの義務があるだろ。
いかん、「藁にもすがる思い」がふざけた書き込みに見えてきた。 2ch病鬱だ氏のう。
一旦立ち消えになっていたプロジェクトだったので、引継資料 等は何もなく、前任者ももう1年以上前に退職されており連絡 する術がありません。。。 社内の方々にもいろいろ問い合わせましたが、その方一人で 設計したらしく本DBについて知っている方は居ませんでした。 本当に困っています。 どなたかお力添え頂けませんでしょうか?
バイナリで開いて何バイト目かを削除だったっけ?
342 :
デフォルトの名無しさん :02/10/10 15:40
ショッピングサイトや就職情報サイトの顧客情報とかってDBで管理してるよね? なんでいつもCSVファイルで漏れるのだろう?
>342 まぁ一杯飲め。
344 :
デフォルトの名無しさん :02/10/10 16:25
>>342 一度くらいしか登録しないアンケートシステムとかだったら
そのままCSVに落として管理してると違うのか
就職情報サイトなどはデータを再利用するからDBで管理してると思うけど
345 :
なぎさっち ◆KJNagi/lFE :02/10/10 20:14
>342 DBに登録って構築しても、ユーザの担当者が 「エクセルで情報見たい(グラフ作りたい)からなんとかして!!」 とか言ってきて、しょうがなくcsvで外から見えない場所にデータ吐き出すプログラムを追加した。 そしたらユーザの担当者がわざわざ見えるとこに置きっぱなしにしやがった。 とか妄想。
346 :
デフォルトの名無しさん :02/10/11 18:24
みんな、DBのテーブル設計するとき、どんなツール使ってる? Visio? Excel? UMLとか使うべき?(DB設計とはちょいと違う気もするけど・・・) やはり、大学ノートに鉛筆か。
>>346 やっぱERWinだろう。
>>342 (比較的大規模な会社の)Webシステムを
構築してるヤシなら分かると思うが、
セキュリティ(侵入防御)上、社内業務に使用するDB
はWeb側のDBをそのまま使用することは少ない。
普通は、例え社内でも外部から、もしくは専用線で
インターフェースをかまして、
社内業務用のDBでデータを扱う(そしてWeb側に返す)。
漏れは、パケット操作さえきちんと行えば、社内LAN
と繋げてもいいと思うが、ネットワーク管理者も
何か起きては困るからやらせたくないらしい。
csvはそのインターフェースの時に使われる。
その保管ディレクトリを晒してしまうのだろう。
便乗。 Visioに既存のDBを読み取ってER図起こしてくれる機能があるらしいが、使ってる奴いる?
>>346 近代的な職場では、ルーズリーフです。
デスクに産卵しとる…。
>>348 エンタープライズ版のみの
機能じゃなかったか?
そそ、エンタープライズのみ。 現在スタンダード版しか無いんで、もし使えるならホスィと思って。 実際に使ったことある奴のインプレキボーン
WebObjectsについてるEOModelerっての使っても、 JDBC2.0以上対応のドライバさえあるRDBだったら何でも、 既存のテーブル構造からER図起こしてくれるよ。 マウスでER図ぐりぐり書くと、対応するSQL作ってくれて、DBに対してそれを投げるだけ。 ついでに、フレームワークで扱う形になるけど、ER構造を、 まんまオブジェクトにマッピングしたJava Classまで作ってくれる。ベンリだ。UMLは使えないが。 ERWin(ER/Studioか)って、DB問わず?それにしても高いよな。。。
>>352 ERwin Data Modelerって、90万だっけ。ER/Studioで50マソ。
WebObjectって、価格いくら?
354 :
デフォルトの名無しさん :02/10/12 00:35
IMS って何?
テーブル設計の勉強したいんだけど、 どこか参考になるような情報があるサイトない? MSのサイトに、Accessを使う例があったんで、概念的には学べるかなと、 ここを今、見てるんだけど、他にいいとこあったらおせーてマンチョゲ
>>358 初心者ならサイトよりもこれ嫁!
「はじめてでもわかるSQLとデータ設計」西村めぐみ著 DART発行
これが一番わかりやすい。
さらに判ってきたら、これの巻末に紹介されてるデータ設計に関する3冊を順に嫁
それが近道。
>>359 おおお、更に重ねてサンクスコ!・゚・(ノД`)・゚・
早速買いに行ってきまつ!
あ、その前にアマゾンで探してみようっと。
デラべっぴんだったと記憶しているが。
出た―ベ―スが―イチローが走り抜けたあのベースがーー!!!
辞書データベースを作ろうと思うのですが、 Accessなどどれを使うかで悩んでいます。 Accessは使いやすそうですが、膨大な情報量には向いてないそうです。 MySQLなどが宜しいのでしょうか? OSはWindowsです。
まずは、その辞書が何万語まで対応予定かを書け!
テキストファイル→ISAM→RDB
368 :
デフォルトの名無しさん :02/11/04 18:25
>>348 使いました。
visioスレにも書きましたが、用紙のサイズを考えずに吐き出すので
使えません。
369 :
デフォルトの名無しさん :02/11/10 01:48
サーバをLinuxにしたとき、DBをマスタテーブルはMySQL トランザクションテーブルはPostgreSQLなんていうのありでつか?
370 :
デフォルトの名無しさん :02/11/10 01:54
>>364 辞書としての機能をまっとうするなら相当な情報量になるから
MDBじゃきついと思うよ。すぐ壊れるしね。
理想を求めたらOracleになるんだろうけど、
辞書の場合、同時更新とかガシガシやるわけじゃないだろうから
RDBMSと名のつくものなら問題なさそうだが。
AccessはRDBMSとは普通言わないし。
>>369 その内容とサーバがLinuxである事の繋がりがない。
ま、何したいのか知らんが、早まらない方がいいぞ。
>>369 で、マスターとトランのデータを連結したい時はどうするつもり?
>>373 クライアントにWinとACCESS使って、ODBCで、テーブルのリンクで、クエリ
使ってもできないでつか?
それならできなくもないけど、件数にもよるが遅そうだな。 Accessを過信しすぎるなよ。
376 :
デフォルトの名無しさん :02/11/11 02:21
>>374 そんな非現実的なことやめとけ。リンクテーブルって知ってるの?
Access内部に作業用コピーを全部持ってくるんだよ?
マスタとトランを結合するとき、リンク先からデータを
すべてコピーしてきてAccess内部で結合処理が開始されるの。
遅くて使い物にならないよ。
378 :
デフォルトの名無しさん :02/11/11 21:18
>>375 ,377
そうですね、わかりました。やめておきます。
379 :
デフォルトの名無しさん :02/11/11 21:48
あんまりデータベース設計の経験がないので聞きたい。 「テーブルTとまったく同じ構造のビューVを最初から定義しておいて、 アプリケーションはVを参照するように強制する」 なんていう設計は、する? こういう設計はどのくらい妥当なんだろう。アフォかな。 自分の中では、抽象クラスを定義しておいて多態させるような感覚で自然に出てきた。 設計の良し悪しとしての位置付けを知りたい。 糞なら糞だと教えてくれ
380 :
デフォルトの名無しさん :02/11/11 22:35
>>379 つか、それってどういうメリットがあるの?
あるユーザでテーブル作って、別のユーザから別名(Oracleで言うとシノニム)つけて
アクセスさせるとかはよくやるみたいだけど。
既存のデータベースを違うユーザから利用させたりする場合や、
普段使うユーザは最低限の権限にしておくために。
>>379 列名までまったく同じってんなら、意味はほとんどないだろうな。
エンドユーザーにわかりやすくするために、列名を日本語に変えた
ビューを用意したことはあったが。それでも別ユーザーにして、
>380氏のような権限の制限(読み取りのみ)はかけたけどね。
やっぱり380氏の言う理由が大きいと思う。
不用意にデータを消されたりしないためとか。
382 :
デフォルトの名無しさん :02/11/12 00:32
テーブル:ビュー=物理表現:論理表現、って感じで。 ビューをテーブルとアプリケーションのインタフェースとして介在させるといいかなあと。 データベースが提供するインタフェース部分をビューとして実装する。 ファーストリリース時にはもちろん無駄な存在だとは分かってる。 テーブルが追加されてもうまく整合させられるんじゃないかな。 たとえばこんな状況。 ・アプリがユーザーテーブルをアクセスする ・アプリケーションが要求するユーザーエンティティの属性は決まっている ・ファーストリリース時のユーザーは、たとえば親会社とか自社ユーザーのみ ・客がいろいろ夢を描いてて、先々はWebブラウザ、携帯電話などのユーザーも加わるかもしれない (加わらないかもしれない) ビューは、詳細が異なるエンティティを一様に扱うために使う。 その基礎として、最初からビューを定義しておく。 無駄かなあ。
あ、379=382です。
俺はよく知らないんだけど、XMLってこういうのにはどうなんだろう。 ふと、オモタ。識者プリーズ
385 :
デフォルトの名無しさん :02/11/12 01:28
RDBのテーブル構造を、オブジェクトにマッピングできるようなツールや フレームワーク使うってのはダメなの?
386 :
デフォルトの名無しさん :02/11/12 12:08
データベースのテーブルを作成する際、名前の衝突を避けるために、com_company_projectname_tablename (Java でいうところの package 命名と同じように)というように書くのはいい考えですか?
387 :
デフォルトの名無しさん :02/11/12 12:54
同一スキーマ内に同一名テーブルが複数できる状況は あまり考えられないような
388 :
デフォルトの名無しさん :02/11/12 13:08
>>386 それは悪しき慣行。
名前空間の範囲だけ気にしよう。
Javaのクラスはインターネットが名前空間。
そのテーブルの名前空間はデータベーススキーマでしょう?
>>382 名称マスタなどを結合した結果をビューとしてアプリケーション開発者に
提供するというのは良くやるよ。
たとえば、売上トランと商品マスタの両方に商品名という列があって、
通常(マスタ参照)入力は 売上トラン.商品名 = null、商品マスタ.商品名 = ○○
手打ち入力した場合は 売上トラン.商品名 = ○○、商品マスタ該当なし
というとき、ビューで適切な商品名を常に返すようにしておけば、
アプリケーション開発者は、どの「商品名」を使えばいいのか悩まなくて済むし、
「商品名」の算出方法が変わっても、アプリケーションへの影響がない。
テーブルとまったく同じビューを作っておくのは、
データベース側で管理用の列を追加しなければいけないような場合に有効だね。
たとえば、SQL Server でトランザクションレプリケーションを設定すると
各テーブルに時刻管理用の列が自動でくっついてしまう。
こういったアプリケーションに必要のない列を隠蔽するのに役立つ。
390 :
デフォルトの名無しさん :02/11/13 00:49
>>389 ありがとう。
自分の考えは遠い外れでもなさそうで、安心しました。
商品の例は勉強になりました。
ビュー定義やその値を「アプリケーションに対する契約事項」としておけば、
テーブル定義とアプリケーションとの間を疎にできるっていうメリットがある。
こんな理解でいいかな。
>>389 ビューは基本的に見せたいデータだけ見せるものなのでその使い方が普通。
俺も頻繁に仕様変更されて、プログラムに入れてた検索をビューに変えたことある。
ただ、ビューでテーブルの結合とかした場合はパフォーマンスが心配。
基本的にビューの結合が先に走って、WHERE句の絞り込みが後だから
データが多い表を結合したときなんかは大変。
個人的には最近はあまり表を結合しないようにしてる。
一個一個インデックスで検索できるようなSQL発行する方が安全。
393 :
デフォルトの名無しさん :02/11/13 02:44
どのRDBにも共通する、スキーマ構造の確認方法ってありますか? SQL文で可能?
394 :
デフォルトの名無しさん :02/11/13 02:47
395 :
デフォルトの名無しさん :02/11/13 10:45
>>394 AppleのWebObjectsに含まれてる、EOModelerっていうツールがあるんですが、
JDBC2.0対応ドライバがあれば、好きなRDBに接続できて、
なおかつスキーマ情報を、キー設定状態やリレーション情報含めて
自動的に抜いてきて、ER図作ってくれるんですよ。
これがRDBの種類を問わないので、JDBC経由でスキーマ情報を抜ける
汎用的な方法があるんじゃないかと思っているのです。
自分でももうちょっと調べてみます。
396 :
デフォルトの名無しさん :02/11/13 11:23
JDBCのAPIで「〜MetaData」という名前が付いてるクラスを調べてみそ。
>>396 超強力情報、サンクスコ!!(・∀・)
"JDBC API DatabaseMetaData"
でググってみたら、イイ情報が大量にありました。
ありがとうございます。
399 :
デフォルトの名無しさん :02/11/15 22:36
ビューを作るとパフォーマンス落ちますよ〜。 インデックスビューならケースによっては作る価値あり。
400 :
デフォルトの名無しさん :02/11/15 22:39
ちなみにSQLServer2000とOracle9iでは9iの方が有利なことってなんかあるの? ほとんど無いと思うんだけど。Undoセグメントぐらいじゃないの?
↑ プッ
↑ トッ
>>400 パフォーマンスだけでも、だいぶ違うと思うのだが?
401は
>>399 にだろ。
>>403 Win上じゃSQLServerが西京。
他社ベンダーもそれだけは認めている。
もっとも開発者のレベルが一番の
factorだがな。
405 :
デフォルトの名無しさん :02/11/15 23:57
WinでSQLServerでしか開発した事のないんですが、今度Linuxで、 Postgreを使おうかなと考えています。(顧客の予算があまりないんで・・) よく、PostgreとMySQLの比較やSQLServerの比較は聞きますが、 SQLServerと、PostgreもしくはMySQLの比較はほとんど聞かれないんで・・ 小さな建築業のシステムでクライアントは10台前後です。 ちなみにWin2000+MSDEも考えています。
406 :
デフォルトの名無しさん :02/11/16 00:11
正直、PostgresSQLとSQLServerならスケーラビリティの面ではSQLServerの勝ちだと思う。 まぁ規模が小さいならどっちでも構わないと思うが。 ちなみにSQLServerでTable作るときって、Oracleみたいに物理サイズとかって指定できないの?
>>405 >WinでSQLServerでしか開発した事のないんですが、今度Linuxで、
>Postgreを使おうかなと考えています。(顧客の予算があまりないんで・・)
フリーだからって素人が安易に Linux にすると、後々 Win より金かかる場合あり。
Postgres 諦めて Win で使えるヤツにした方が無難。
フリーなら、
・MySQL
・Firebird
をお勧めする。どちらとも Win でも Linux でも動くから、
将来 Linux で使いたければ DB 移せばOK。
10 台前後の小規模で SQLServer とは無駄無駄無駄。
MSDE って使えたもんじゃないよ。
まあ一度試してみれば、制限のないフリー製品で充分ってわかるから。
>>406 ,407
レスありがとうございます。
MySQLって機能が少ないんで・・(トランザクションと、サブクエリーは使いたいな)
あとFirebirdってよく知らないんですよ。検討してみます。
>MSDE って使えたもんじゃないよ。
まあ一度試してみれば、制限のないフリー製品で充分ってわかるから。
すいません、SQLserverしか使った事ないって言いましたけど
MSDEは何度もあるんですよ(ていうか最近そればっか)
そんなに使えないですかね?うちの会社は小さいんで、顧客も規模の小さいところ
ばかりなんでたいしたシステム組んだ事ないんですが・・
>>407 >フリーだからって素人が安易に Linux にすると、後々 Win より金かかる場合あり。
これは自分もそう思う。一番高いのは人件費だもんね
扱った事のない製品で、調査検討に時間かけてたら本末転倒だ
>>405 予算が無くさっさと作るのならば
開発実績があるのにしておいた方が
無難だと思います
皆さんレスありがとうございます。 クライアントはVB+ADOで組むのですが、顧客がサーバ用マシンを用意してくれなくて、 今まで使ってた少し古いPCを使いたいとの事なんですよ。 Win2000+MSDEを考えてるって言いましたけど、Win2000の購入をしぶってて、Postgre の話が出ました。 Linuxは、DBは使用したことないですが、ノートPCでルータにしてファイアウォールを 組んだ事がある程度です。(私はほとんどやらず上司が組みました。) 今回はWin2000+MSDEでいこうと思います。
412 :
デフォルトの名無しさん :02/11/16 13:54
>>409 >簡単に言うと InterBase のフリー版。
MS-SQLServerに対するMSDEみたいなもんでつか?
> ちょっとしたWebアプリで使ったけど、同時接続制限でしょっちゅうエラーだった。 > 機能は SQLServer 同等と言っても接続できないんじゃね。 ほんと? うちでは 120ユーザーくらいぶら下げても問題ないけど。 ただ、同時実行ジョブが 8に制限されているのは痛いね。
>>412 >>簡単に言うと InterBase のフリー版。
>MS-SQLServerに対するMSDEみたいなもんでつか?
ちょっと違うんだなこれが。
MSDE の場合はいろんな制約があるけど、
Firebird は何の制限もない。(InterBase のような接続ライセンスは必要ない)
Firebird は InterBase 6 オープンソース版から派生したもので、
Firebird は独自の道を歩もうとしている。
機能的に言えば、現時点では両者各々の拡張機能を除けばほぼ同じだから、
InterBase のツールとかがミドルウェアを使うことができるよ。
(Firebird 専用のツールやミドルウェアも開発が進められてるみたいだね。)
将来はそれぞれ別の方向を目指すんでないかい。
>>411 サーバを渋るとろはあまりよろしく無いっすねぇ
信頼性の低いPCで、不慮の事故でデータが
飛んでも知らないっすよぉ〜 とか言って
最低でもデルの新機種にして貰いましょう(w
>>414 しかも、軽い!速い!強力!
最初漏れは、MySQL使おうと思ったが、漏れはこっちに決めた!
うーんMSDEに決めかけたのに、Firebirdが気になってきた。 でも、書籍等があまりないんで分からない事が出てきたら困るんですよね。 お勧めの書籍とかあるのかな。(InterBaseの書籍も少ないし・・)
>>405 MySQLはトランザクションはある。
Firebirdは確かに良い選択肢だとは思うが、
自分で実際に比較してみた方が良い。
例えばもしSQLでTEMPORARY TABLEを使うなら、
Firebirdでは実装していかなったりする。
サブクエリもMySQL側は4.1で実装されるという話だし、
簡単なサブクエリなら書き換えでクエリの書き換えで済む。
比較していると、 MySQLのトランザクションを使ったINSERTとFirebirdのINSERTでは Firebirdの方がおよそ3倍の時間がかかったり。 かと思えば、INSERTするデータが単純すぎたので、 そのまま比較するのは危険だが、大量にINSERTした場合、 MySQLで190Mで、irebirdでは20Mを切ってみたり...。
>>419 MySQL は速さがとりえ。
Firebird(InterBase) は MySQL と「比較」すると遅いだけ。
絶対的に見て遅いとは感じたことはないな。
まあ、普通に使う分にはある程度の速度が出ればよくて、
それよりも、機能の豊富さ、扱い易さ、管理のし易さとかを
重視した方がいいと思うけどな。
>>417 >でも、書籍等があまりないんで分からない事が出てきたら困るんですよね。
>お勧めの書籍とかあるのかな。(InterBaseの書籍も少ないし・・)
これは大きな問題だと思うよ。
時間があればいいけど、あまり時間掛けられないなら素直に
何度も使ってるヤツ(MSDE)にした方が無難だよ。
次回以降の選択肢として、空いた時間にでも調査,試用するとか。
11月下旬にfirebirdの書籍がでるらしいから、これに期待だな。
MSDEって開発環境がMS製なら フリーウェアに添付して配布してもいいの?
そんなフリーウェア誰も落とさない
>>423 業務アプリ以外のデータベースの活用って...
エクセルで用が足りそうな気もする
426 :
デフォルトの名無しさん :02/11/29 03:24
JDBCってなんですか? ODBCみたいなものですか?
Java...
Japan Dragon Ball Commercial
JDBC はドライバだけでなく上位APIも規定しているから、 Microsoft系の技術との対比で考えると、 JDBC ≒ ODBC + ADO (最近は OLE DB + ADO だけどな)
>>429 はODBC APIというものを
知らないようだ。
(´-`).。oO(430はODBCが上位APIだと思っているのだろうか…)
431はADOメソッドが女医APIだと思っているのだろうか・・・ (´-`).。oO ↑今更ながら、このコピペ妙にムカツク
>>432 (´-`).。oO(なんでだろ...)
>>433 そこにこうも書いてあるよ。
> 最近、Microsoft は、RDO、ADO、および OLE DB という、
> ODBC を超える新規の API を発表しました。
> これらの設計は、JDBC と多くの点において同じ方向、すなわち、
> ODBC 上に実装可能なクラスを基礎としたオブジェクト指向
> データベースインタフェースへと移行しています。
Microsoft は ADO という JDBC と多くの点において同じ方向のインターフェースへと移行しています。
だからよ、そっちも良く読めよ。 >上位インタフェースとは、よりわかりやすくより便利な API を使用した >「ユーザフレンドリ」なインタフェースのことで、 >その背後で JDBC のような下位インタフェースに翻訳されます。 >JDBC は、「下位」インタフェース、すなわち SQL コマンドを直接起動する (または「呼び出す」) ために使用されるインタフェースです 上位APIはというのは埋め込みSQL みたいなことをいう。 各実装メソッドでははく、 Record(Result)Setでぐるぐる回す ということではない。 ODBCもADOも上位APIではない。 JDBC≒ODBC JDBC≒ADO ということだ。
なんだ結局言ってることはデタラメだね。 真面目に聞いて損しちゃったよ。 > ODBCもADOも上位APIではない。 ADO は ODBC の化粧なんだろ? それって ODBC に比べれば 上位の API であるということだよ。 そして ADO と JDBC は同程度に抽象化されたオブジェクト指向インターフェースだ。 ADO > ODBC JDBC ≒ ADO つまり JDBC > ODBC (JDBCはODBCより上位のAPIを持っている)ということだ。
>JDBC≒ODBC >JDBC≒ADO 結局、429の言ってた通り、JDBC ≒ ODBC + ADO ってこと?
> 上位APIはというのは埋め込みSQLみたいなことをいう。 こんなこと言ってるアフォは放置しといたら?
440 :
デフォルトの名無しさん :02/11/30 19:33
SQL文をobjectiveに記述できなけりゃ、上位とは認めない
441 :
デフォルトの名無しさん :02/11/30 20:01
JDBCは基本的にデータソースをデータベースに固定してるからODBCに近い。
JDBCの抽象化はドライバに関してであってそれならODBCもそれほど変わらんと思う。
ADOはデータソースをデータベースに固定していない。例えばXMLとかでもOK。
これはデータソースの抽象化が出来ている(らしい)
ちなみにSunではADOに対抗してJDOというのを出してる。
よって
ODBC≒JDBC
ADO≒JDO
だと思う。
あくまで基本的にはだけど。
しかし
>>436 の
>上位APIはというのは埋め込みSQL
は、ハアとしか言いようが無いな。
上位か知らないが、今高度なデータデースアクセスAPIといえば
データ←→オブジェクトのシリアライズ/デシリアライズをやってくれるやつだと思うが。
オブジェクトの永続化とかって知ってる?
ごめん、 あのページの文章(相対的な上位、下位ということ) を変な風に解釈していた。 アフォだったよ。 ただ、 AP→ADO→ODBCドライバマネージャ→ ODBCドライバ→DB AP→JDBCドライバマネージャ→ JDBCドライバ→DB これから JDBCはODBCより上位のAPIを持っている とは思えない。 JDBCマネージャの中でさらに下位APIを 呼び出しているのではなく、直接ドライバ を操作している。
>上位APIはというのは埋め込みSQLとか・・・ 変な風に解釈とはあのページで 以下の 2 種類の上位 API が JDBC の上に開発中です。 1.Java 用埋め込み SQL。 2.リレーショナルデータベーステーブルの Java クラスへの直接マッピング。 書いてあったから。 訳分からんこと言ってごめん。 ・・・ホントアフォダターヨ
>>441 ちょっとは知ってるが、
クラスにシリアライズ情報を実装し、それをもとに
インスタンスのデータをその情報のフォーマットで
シリアライズしたり、また逆に取得データをデシリアライズして、
インスタンスを作成したりするやつだろ。
>>443 1はSQLJのこと?
まあSQLJ→(プリコンパイル)→JDBCという意味では上位APIといえるんだろうけど。
DB2の本で「APIに慣れてない場合はSQLJ」とかいってたけど、
APIに慣れようとしないようなやつはJava使うなって感じだな。
2がJDOのこと。ただCastor JDOとか似たような技術があるから
本当にSunのJDOが標準になるかはわからんけど。
>>429 CでODBCライブラリをincludeして
使っている世界では
ODBC APIは立派に公開されている
あんた流にいう上位APIだ。
だから
>>430 を言った。
ODBCができた背景を考えればわかるだろ。
447 :
デフォルトの名無しさん :02/12/01 09:42
>>446 だれも ODBC が 非公開API だなんて言ってないのでは?
RDO/ADO は ODBC の 上位API としてマイクロソフトは位置付けている。
これは事実です。
>>441 > データ←→オブジェクトのシリアライズ/デシリアライズ
シリアライズは直接の関係はないね。
言いたいのはデータのオブジェクトマッピングのことでしょ?
まぁ、永続化を視野にいれているものが多いから、
シリアライズが実装されている場合がほとんどであるのは事実だけどさ。
>>448 もちろんORマッピングのことだが、シリアライズ/デシリアライズの方が
理解しやすいかなと。
>>447 DAO/ADOレイヤがODBCのラッパーなのは当たり前じゃん。
JDBCに対するODBCの位置づけ(またはその逆)を
話しているんじゃないの。
一方の中での上位とか下位とかは関係ないじゃん。
おれは「あんた流にいう上位API」
とあえて言葉を合わせただけ。
CでODBCライブラリをincludeして
使っている世界では、ODBCはJDBCと
同じく普通に使われていることで
JDBC≒ODBC以外説明しようがないじゃん。
ADO等は
>>447 自身で言っているように
この話の中ではODBCの上のレイヤに
すぎないだけ。
VB等、COMでODBC等にアクセスできる
にしたもので、その点からみれば
JDBC≒ADO。
JDBCドライバ≒OLE プロバイダ
だからこれは同意している。
かみ合わないのは視点が
違うからだと思う。
漏れは 447 ではないのであしからず。 まず、「JDBC≒ODBC以外説明しようがない」と 「JDBC≒ADO」が矛盾していることに気づけ。 ほんとにアフォなのか?
>>429 おれは!443だ
おめーはもっとアフォか
矛盾してねーじゃんかよ。
JDBC≒ADOというのは
COMの視点から見れば
(ADOの役割はほぼJDBCの役割に等しい)
といっているだろ。
なら、CでODBCライブラリ使用時の場合
JDBC≒ODBC
じゃない理由をJDBCとODBCの役割の違い
といっしょにいってみろよ。
それでもDAOやADOを使わないと
JDBCと等価にならんのか(プッ
ODBCのこと全然知らなかったくせによ。
つーか直接呼び出したことないんだろ?
じゃあね知ったか君、バイバイ
あと自作自演で賛同者を作る のはヤメレ。見苦しい どうせまたやると思うけど。
455 :
デフォルトの名無しさん :02/12/01 16:16
30〜50人月くらいの小規模仕事が多いんで、 OR-mapping フレームワークを自作するには期間が足らない。 毎回毎回「作ったほうが楽だよなあ」って思う。 設計担当なので、そういった準備に割く時間をなかkなか取れない。
業務ロジックをJavaのクラスに マッピングさせていくのが今のはやり なんだろうけど、あまり好きではないなぁ。 WebObjectsはテーブルのクラスを作って、 そのテーブルクラスメソッドからデータに アクセスさせてくみたいだけど。 システムをJavaアプリケーションパッケージと して構築するならそれでいいかもしれないけど、 Java以外の言語からDBをつつく場合もあるだろうし、 DBシステムというものを作るなら、業務ロジック (物理的に言えばストアド、制約、トリガーとか) をDB側に実装できるものはできるだけ実装させ、 ルールを共有化した作りの方が堅牢なシステムに なると思う。 APもシンプルになるし。
ぶりかえすようで悪いけど、 漏れも JDBC≒ODBCだと思う。 もし、JDBC>ODBCなら (なんかこんな比較もどうかと思うが) JDBC-ODBCブリッジとは言わず、 JDBC-ODBCスタブとかになると思う。 まぁ、あくまで名前上の話だけど。
458 :
◇mANKO :02/12/03 15:42
TEST
JOINってなんでネストしなきゃならないの?
460 :
デフォルトの名無しさん :02/12/04 02:58
JOIN TO THE WORLD だから
461 :
デフォルトの名無しさん :02/12/04 10:54
マジレスしてやるよ。 SQL92形式のJOINのことを 言っていると思うが、 それは結合順序を決める為だ。 っで、JDBC-ODBC論争は 終息したのか?
JDBC ≒ ODBC JDBC ≠ ADO
JDBC、ODBC、ADO、 ネイティブ接続API等、 正常に使えていれば問題ない。 比較なんて説明するだけに存在する ものであって、人それぞれに解釈 も異なる。 実際にそれぞれ別物だ。 そんなにむきになって100%の解を 追求するものでもない。 オシマイ
464 :
デフォルトの名無しさん :02/12/04 21:48
負荷試験とかしないの? JDBCドライバ1つとっても、モノによって使い物にならないものもあるよ。 「正常に使える」ということの根拠を持たないとね。 用途や、併用する道具、実績などを総合的に見て、 目的に合うモノを選べばいいだけ。 そんなことも解らずただ「正常に使えれば」なんて断言する思考がイタイ。
比較とはこの一連のレスからすると 良し悪しの性能の意味じゃないだろ。 妙にかみつくな。 何か嫌なことでもあったのか?
>>464 ベンダーから提供されている
JDBCドライバで正常に使えてますが何か?
467 :
デフォルトの名無しさん :02/12/04 23:22
>>464 燃料だろうが不発におわったな。
煽ってやるよ。
文章をきちんと読む力をつけないと、
設計書も書けなくなるぞ。
468 :
デフォルトの名無しさん :02/12/04 23:54
JDBC=Paradox
469 :
デフォルトの名無しさん :02/12/05 00:00
jdbc=ado=dbmagic=桐
470 :
デフォルトの名無しさん :02/12/05 00:01
JJ≒Ray
真婿≒亜濡巣
横浜≒たそがれ
476 :
デフォルトの名無しさん :02/12/05 00:22
イマイチ...ババァなのか?
477 :
デフォルトの名無しさん :02/12/05 00:25
カムサハムニダ≒イカスミダ
478 :
デフォルトの名無しさん :02/12/05 00:27
正常ならなんでもいい。
480 :
デフォルトの名無しさん :02/12/05 00:39
>>471 の負荷試験ならしてもいいぞ。
おれのマグナムに耐えられるか。
481 :
デフォルトの名無しさん :02/12/05 00:59
WebsPhereでJDBCがクソだったので 総合的に見てADO+WebSphereにします。
482 :
デフォルトの名無しさん :02/12/05 01:33
JDBC+WatcomSQL 最強
>>464 ユーザから不満がでてなければ
何でもいいよ。
484 :
デフォルトの名無しさん :02/12/05 01:49
JDBC≒ODBC JDBC≒ADO
485 :
デフォルトの名無しさん :02/12/05 17:16
次のような環境での運用を考えているのですが 同じような事をしている方はいないでしょうか? または別の選択肢(OS、データベース)はあるでしょうか? サーバー : RedHut7.3 + PostgreSQL7.? クライアント: WindowsXPPro + VB6(SP5) + ADO サーバーはインターネット上にあり クライアント(各支店)はADSLを使いインターネットに接続します。 クライアントとサーバー間はVPNを使いますがこれに関しては ここでは説明を省きます。(私が良くわかっていないというのもありますが...^_^;) やりたい事は 各支店の売上や顧客情報を本店で管理・閲覧。(更新はしない) 各支店間の情報の閲覧(閲覧できる範囲に上限あり) リアルタイムではなくても良いが数分後には各支店の更新内容が サーバーに反映されていたい。 最初はクライアントから直接サーバーに更新しに行くことも考えたのですが やはりクライアントにもデータベース(MDB,MSDE)を置き なにかのタイミングで同期を取るような処理をした方が良いのかな? というところまで考えて止まっています... 今までLANでのOracle+VB程度しか組んだ事がないので このような仕組みはまったくの初めてです。 現在勉強しながら作業を進めている状態なので いろいろと変なところはあるかもしれないですが よろしくお願いいたします。
更新もするならADSLはありえない
>>486 >更新もするならADSLはありえない
んなこたーねーだろ。
488 :
デフォルトの名無しさん :02/12/06 00:21
手動での同期の取り方ってどんなのがあるの?
489 :
デフォルトの名無しさん :02/12/06 00:33
間が抜けることのない完全な連番って、どうやって確保するんだろう。 Oracle の SEQUENCE じゃ保証されないし
採番テーブル作ってカウントアップすれば良いじゃん。 並行して処理が走らないからパフォーマンスが悪くなるけど。
>>489 それってDELETEがありうるときに、抜けた番号再利用するってこと?
>485 まずインフラだが、フレッツADSLを使ったVPNはかなり不安定らしいぞ。 業務のクリティカル性が低ければそれでもいいのかもしらんけど。 この辺は通信技術板でも見てみ。 んでシステムだが、インターネットを通して使いたいならWebアプリ化が一番でしょ。 サーバサイドですべて処理するWebアプリなら、DBへの更新はリアルタイムだし、 クライアント側はブラウザとインターネット接続環境だけあればいい。 いちいちVPN組む必要も無い。 どうしても旧来のC/Sスタイルで行きたいなら、インターネット経由にせず専用線を使って、 レプリケーション等を駆使していくほうが安心だと思う。
>>485 いくらVPN使うとはいえ、顧客情報の入ったDBが稼動しているマシンを
直接ネットにさらすのは、万が一のことを考えると…。
サーバーをVPNとDBで別にしたほうがセキュリティ的にもよくない?
>>485 が VPN を理解していないから、「インターネット上に」晒されている
ような表現になっているだけだろ。VPN なんだから、
インターネットインフラを用いた ただのクローズドネットワーク。
>>493 サーバーをVPNとDBで別にするってどーいうこと?
495 :
デフォルトの名無しさん :02/12/06 09:09
485以降の話もう少し聞きたいのでage 特にクライアントのMSDEをサーバーのPostgreSQLに どうやって同期をとらせるのか知りたい。 別にDBは何でも良いのだが...
PostgreSQLってレプリケーション使えたっけ?
>>485 >最初はクライアントから直接サーバーに更新しに行くことも考えたのですが
なぜそうしない方がいいと思ったのか教えて。
頻繁にDBアクセスが発生するのかな?
>やはりクライアントにもデータベース(MDB,MSDE)を置き
>なにかのタイミングで同期を取るような処理をした方が良いのかな?
この場合は自前で同期をとるしかないような気がする。
支店で更新したトランザクションをログに書き出しておいて、
数分後にそのトランザクションログをサーバ側に送って、
サーバ側アプリでトランザクションログを元にDBに書き出すようにする。
>>496 PostgreSQLの機能には無くて、ミドルウェアで実現じゃなかったですか?
トランザクション情報を使い
レプするのはSQL鯖やOracleのレプと
同じ仕組みだが...
>>497 はトランザクションログを
(syslogsとかldfファイル)
を解析できる強者らしい。
>>499 >
>>497 はトランザクションログを
>(syslogsとかldfファイル)
>を解析できる強者らしい。
syslog って言ったか?
コミットした更新トランザクションを自フォーマットの
ログに書きだせばいいということ。
サーバ側で解釈できるんだから。
>>500 ゴメンネ、早とちりしてたよ。
コミットされたDDL文のファイル
を送って、鯖側で実行すればいいね。
鯖側で無限ループ+sleepを使って
ファイルを監視するエンジン
作ればいいだけだな。
ただ、当たり前だが、Postgresは
あまり知らないが、T-SQLと共通に
使える関数だけに限定しないとこけるな。
まぁ、あとはリンクサーバで
トリガーを使って更新という手もある。
>>485 クライアント側で印刷とかするわけ?
それだとブラウザだけでは無理になってくるんだけど。
>>501 >ゴメンネ、早とちりしてたよ。
>コミットされたDDL文のファイル
>を送って、鯖側で実行すればいいね。
DDL ? DML の間違いでは?
それじゃ DMBS が異なるから難しいよね。
言いたかったことは、後でサーバ側アプリで解釈できるかたちにすればいいってこと。
例えば、ある顧客(顧客コード "C01")に \10,000 のプリンタ(商品コード "P01")を
売って、その顧客にポイントが100加算されたとした場合、DB には
INSERT INTO URIAGE VALUES('C01', 'P01', 10000);
UPDATE CUST_DATA SET POINT=POINT+100 WHERE CUST_CODE='001';
のように書き出したとして、ログファイルには
"2002/12/6 01:02:03", ADD, "C01", "P01", 1000, 100
のようにあとで解析しやすいように書き出しておく。
あとはサーバ側アプリがこれを解釈してDBに書き出すようにする。
ごめん、また間違えた そ、DMLだね。
>>497 書くのを忘れましたがこの端末にはレジの機能もありまして
そこで登録された情報の一部もサーバー側に更新する必要があるため
サーバーに接続できない状態の時には業務に影響が出るためです。
>>502 印刷もありますが、上記のような理由で業務上に影響が出るため
ブラウザはだめです。
それ意外にも操作性の問題もあります。
>>503 その手法をもっと詳しく知りたいのですが...
例えば
・サーバー側で本当に実行されたか確認する方法
・実行されていない場合リトライする方法
とか...
確立した手法だとは思うのですが何か文献としてあるでしょうか?
あと何かこの手法に名称のようなものはあるのでしょうか?
>>505 >・サーバー側で本当に実行されたか確認する方法
>・実行されていない場合リトライする方法
それは自分で適当なプロトコル決めてやればいいことでは?
実行したステータスをクライアントに返して、それで判断するとか。
>確立した手法だとは思うのですが何か文献としてあるでしょうか?
>あと何かこの手法に名称のようなものはあるのでしょうか?
ただそうすればいいんじゃないかと思っただけで、
オレは別にこういうケースの実績はないから確立した手法なのか
どうかは知らない。
ただ、いろんな問題があるからこの通りにはうまくいかないと思う。
例えば
>>503 の場合、支社側のDB処理で、アプリ経由しないで、
直にDB更新したら整合性がとれなくなるから、勝手にDBをいじれない
ようにするとか、もしいじった場合はどうするかとか、いろんな対策
が必要になってくる。
>そこで登録された情報の一部もサーバー側に更新する必要があるため
>サーバーに接続できない状態の時には業務に影響が出るためです。
構成がよくわからない。
支社のDBにはその支社の全データが入ってるじゃないの?
各支社はサーバ側DBの内容は関係なく、その自社内DBだけ使って
何かするんじゃないの?
だから、後で本社(サーバ)には、その支社で更新した差分だけ送れば
いいと考えてたんだけど。
支社Aが支社Bのデータにアクセスするとかある?
>>506 の追加
マスターデータはどう扱うの?
ある支社で変更したら他の支社に知らせる必要がだろうし。
>505 悪いことは言わないから素直にレプリケーション使えって。 その機能を自前で実装するのにどれだけ工数かかると思ってるんだ?
>>508 >悪いことは言わないから素直にレプリケーション使えって。
レプリケータ使ってできるなら金だしてでもその方がいいと思う。
ただ今回の案件でレプリケーションで対応できるのかってのがわからない。
もちろん本社側のDBはレプリケーションなりで2重化対策しておくのはわかるけど。
DMBS→DBMS(DataBase Management System)
>>505 言い出したらキリがないけど、
支店クライアントと本社サーバーの通信を、
支店内と、本社と支社間にしても、
そんなに確かなものではないと思うが。
うーん やっぱりレプリケーションの方が楽なんですよね、きっと クライアントにMSDEを使うとなると レプリケーションはできますか? SQLServerでないダメとなると 予算的に厳しいかも... あと これも書くのを忘れていましたが 支店A、B、Cとあったとすると サーバーのDBにはABC各支店のデータが混在して置くことになるのですが このようなケースでもレプリケーションは可能ですか? A店にはB,C店の情報は一部のマスタを除いては取り込みません。 低予算でレプリケーションが実装できる組み合わせがありましたら 教えて頂きたいです。 環境をもう一度書いておきますが DBサーバーは RedHutLinux7.3(場合によってはWindows2000Server) クライアントは WindowsXP Pro
MSDEのデータベース容量 2GBで足りるかまず確認しろ。 MSDEでもレプリケーションはできるし、 サブスクライバには ODBC を指定することもできるので、 支店(MSDE:パブリッシャ)→本社(Postgres:サブスクライバ)も可能。
>>513 はい、2GBで余裕で足ります。
サブスクライバという言葉は初めて聞きました。
もう少し調べてみることにします。
>>512 >>SQLServerでないダメとなると予算的に厳しいかも...
俺的には、フリーのレプリケーションって何処まで
信じられるか疑問が出てくるっす
回線が絡んでくるのなら
1.最大何分間以内で同期を取らねばならないのか?
2.業務時間中で1分間で、どの程度のデータ量が変更されるか?
が絡んでくるべ
極端な例になるが
同期のタイミングが、ほぼ同時なら
レプリケーションなんぞ使わずに一極集中が良かれと思うし
(回線絶対安定ってのが条件になるけど)
同期のタイミングが、一日一回程度なら
各支店で貯めておいて、夜間バッチで転送ちゅーのも考えられる
516 :
デフォルトの名無しさん :02/12/07 00:17
PostgreSQLとMySQLとFireBirdのオープンソースRDB御三家を比較した記事って、昔どこかで読んだんだけど、どこかにそういうサイトまたは記事ってないかな?
よく考えたら、
>>501 の方法は
わざわざ、APからファイルで
本社のDBを実行するなら
直で本社のDBにアクセスすれば
いいじゃんと思った。
やはりデータソースはできるだけ
冗長させない(一元化させる)
方が後々管理面からしてもいいと思うよ。
それで、どうしても負荷がかかる様だったら
分散させて行くやり方が正当法だと思う。
これは後からデータソースの変更によって
何とでも変更できる。
DB同士は上記ようにレプやリモートサーバ
で組めばいい。
しかし、ここまでの書き込みをみる限りでは結構大規模(分散する必要があるという意味で) みたいだし、レジうんぬんって事でクリディカル性も高そうだ。 結構キツめの要件なのに、有料DBを使えない程の予算しか無いとは・・・デスマチのヨカーン 予算組みやインフラの検討、DBの選定といった事をもっともっと掘り下げたほうがいいと思う。 有料DBだって、最小構成なら1人月価格より安い訳なんだし・・・ 動き始めてからの変更はマジでしんどいよ・・・ Windows系でイけるなら、本社DB鯖にSQLServer、支店クライアントにはMSDEかJET。 本社DBから各支店のDBへは、回線切れてもOKなマージレプリケーションあたりかな? そうすりゃ見た目上本社DBがまるまる各クライアントに存在する形になるから、通信の ロジックなんか気にせず普通にアプリ書くことができる。 もちろん、データの競合は気にしないといけないが。
別に、支店でMSDEじゃなくても いいなら、支店のDB、鯖マシンを Linux+Postgresにして、 COPYで追加、更新データ(まだcsvに出力されていない) をcronで5分間隔ぐらいで本社にcsvをftpで送る。 本店側もその差分データをCOPYで受け取り 同期SPを作成して動かせばいい。
↑本店の処理もcronで行う。
なんかみてると、トランザクションデータ ことしか話題にないけど、各支店にDBを 分散させた場合のマスタデータメンテの 仕様は整っているのだろうか?
マスタは本支店間の相互レプリケーションでいいんでね? 他支店レコードの更新を認めるかどうかはアプリケーションでチェックすると。
ここで出てくる本店のDBとは
あくまでも照会系用のDBだよね。
ということで、業務で使う本店用
のDBも必要になる。
レプリケーションって、SQL鯖の機能
のレプリケーションって意味だよね。
相互レプつーことは、本店の業務用DBも
MSDEか、SQL鯖にしないとできないね。
>>549 の逆の流れでもできるけど。
525 :
デフォルトの名無しさん :02/12/10 21:55
国際化アプリケーションを作ろうってときに用いるデータベース構成方法について質問。 例えば投稿記事を国際化のためのテーブル構成として msg_id varchar primary key, title varchar, date, date, from_id varchar, message varchar というテーブルを作って Articles_ja, Article_en, Article_zh... とでも名前をつけていくのがよいのか それとも、lang varchar というカラムを作って1つのテーブルにまとめるべきか。 俺は後者の方法がいいかなと思ってるが、どうか。
漏れはとある外資企業の システム保守をしたことがあるが、 まさに前者の仕様のシステムだった。 各言語それぞれのテーブルにDMLを発行 しなければいけないし、すべて外部結合しないと、 大元の基礎情報は登録してあるのに、 日本語の情報が登録されていないだけで 検索されないとユーザから文句言われたり、 その原因究明に時間を喰ったり... ほとんど、そのプログラムを改訂したが、 今後のためにも後者の様にテーブルを 一緒にしてくれと、NYの本部に言ったが、 元々このように合併してきたと言われ、 いまさらと却下された。 きちんと問題が出ないよう、システムを 組めばいいのだが、 できるだけ業務に沿った リスクを負わないような作りが必要だと思う。
>>525 それよりこれじゃスレッド形式に展開するの大変だろうよ。<処理に時間が掛かりすぎる
thread_id でも持ったほうがいい。もちろんテーブルを分割して高速化の工夫をすること。
528 :
デフォルトの名無しさん :02/12/10 23:36
>>526 いかにも場当たり的な対応の末のテーブル構成だね。
同情するよ。
典型的な「もの=情報」パターンだなあ。
記事自体は「もの」だが、メッセージIDや日付なんかは「『もの』の属性」になる。
ものと属性は分離しておく方がよいから、2個のテーブルに分けたほうがいい。
属性は頻繁に更新されて、ものは更新されにくいのが普通だから、
body がラージオブジェクトの場合に特に有効。
・テーブル article (記事の属性を持つ)
id
date
category (たとえばカテゴリ情報を入れるとか)
・テーブル article_body (記事の本文を持つ)
id
body
さらに多ヶ国語対応するなら、記事自体をModel、各国語表記をViewとしてモデル化した方がすっきりする。
・テーブル article_body (New version)
id
lang
body
529 :
デフォルトの名無しさん :02/12/10 23:46
>body がラージオブジェクトの場合に特に有効。 これって何のメリットがあるの? 全文検索エンジンやスクリプト処理が不便になって、 ベンチマーク下がって鯖が重くなるだけだと思うが。 オレならタイトルとかだけにするが。
>>529 >全文検索エンジンやスクリプト処理が不便になって、
>ベンチマーク下がって鯖が重くなるだけだと思うが。
同意。
>オレならタイトルとかだけにするが。
???
531 :
デフォルトの名無しさん :02/12/10 23:55
>>530 本文はファイルとして置いたほうが良くない?
テーブルでないものをテーブルに格納するのって正しい?
テキストファイルならNamazuとかegrepとかで
高機能かつ高速な全文検索ができるし。
ADO関連の質問てこのスレでいいでしょうか?
534 :
デフォルトの名無しさん :02/12/11 00:25
>要求レベル次第だと思われ その辺りのハナシっていつも結論が出ないんだけど、 いや、出なくても良いのだが技術的に突っ込んだレベルの意見をキボンヌ。 画像でもHTMLでもなんでもDBに入れてもらいたいって 意見にどう反応したらいいか困ってる (あ、この板で誰かのレスに困るんってんでなくて身内で困るのね)。
>>534 >画像でもHTMLでもなんでもDBに入れてもらいたいって
>意見にどう反応したらいいか困ってる
一元管理できるからその方がいいと思ってるんだよ。
全文検索したきゃ namazu とか出来上がったものつかうんじゃなくて、
ちゃせん、かかし等使ってわかち処理させて、その情報をDBに突っ込んでおけば
いいでないかい。プチ検索エンジンの出来上がりだな。
>>534 もう少し詳しく言ってもらわないとなんとも..
画像やHTMLをDBに入れるって???
単純に考えて、そんなものDBに入れてたら、
遅くて仕方ないでしょ?
ただし、複数の言語から同じデータを読みとりたいなどの理由なら
分からなくもない。
あと相互レプの場合など楽だろうし。
537 :
デフォルトの名無しさん :02/12/11 00:43
>>536 掲示板の記事をXMLで保存処理を書いていたらRDBに入れろとか、
添付ファイルも入れるとか。RDBマニアが意見するんでちと悩む。
以前も温度センサーを監視するサーバーを作ったが、
クライアントがアクセスのクエリーの画面で30秒おきに
SELECT文が来ていた。直接ソケットを叩いて欲しかったのだが。
>>537 実際SQL99などは今までのRDBMSの考え方から
相当飛躍していて、
それは全ての処理をSQLでこなすという意欲を感じる。
だから、全てをDBに保存するっていうのも分からないでもない。
パフォーマンスが要求レベルも満たすのなら、
それでも良いのではと思う。
個人的には537の実装が好きだが、複数で開発する場合なら、
十分考慮に入れる価値もあると思う。
Socketの件は、以前うちでも同じことがあり、
そのときは結局SELECT分でやった。
なぜならそいつはSocketの扱い方を知らなかったから。
>>537 RDBマニアを説得できなければしょうがない。
自分の方が正しいと思うなら、それを相手に説明して納得させないとダメ。
仕事において上司、部下は関係ない。
ここで愚痴を言っててもしょうがないぞ。
540 :
デフォルトの名無しさん :02/12/11 09:08
RDB マニアというよりは、単に知識が無いだけでは。
541 :
bloom :02/12/11 09:19
説得する知識もなさそうだけど。
544 :
デフォルトの名無しさん :02/12/12 04:18
皆さん本当に詳しいですね。そこで聞きたい事があります。 私はデータベースの勉強をしたい。が、現在知識ゼロ。 全く白紙からの勉強です、 何から勉強すればいいですか?最初の重要なポイントとか。お願いします。
>544 本屋に行って、「データベース入門」って本い全部読む。 当然、サンプルプログラムも全部打ち込み動かす。 最初は理屈よりまず触って覚える。セクースと同じ(?) 手元にDBソフトがあるならそれ用の、そうじゃなければ、フリーのDBが付いてる本がいいと思う。
>サンプルプログラムも全部打ち込み動かす。 そだね なんだかんだ行ってもこれが一番の近道だ
547 :
デフォルトの名無しさん :02/12/12 09:28
>>545 >>546 れすサンクス。本は読み始めたばっかりなんですが・・・
やっぱり触りながらって事なんですね。
548 :
bloom :02/12/12 09:35
ある程度慣れたら理論も勉強してね。 SQLは書けるのに正規化できないやつが一番始末に困る。
>>552 軽い!MySQL には及ばんが、RDB に必要な機能は一通り揃ってるよ。
>>553 サンクス。軽いなら試してみる価値はあるかな。フリーみたいだし。
各種 RDBMS の比較表などあればうれしい。どっかにないかな?
>550 Pervasive.SQL2000i+dbMAGICしか知らんけど・・・ 運用はムチャクチャ楽。 規模にもよるんだろうが、ウチの場合5年間ノーメンテで動いてる。 バックアップも、単純にファイルをコピーするだけで済むし、設定ひとつで クラサバにもスタンドアロンにもなるあたり、柔軟。 開発時にはテーブル名に日本語使った場合NGとか、SQLが独特などの制約も多い。 (最新版は改善されてるかも) 何よりマイナー。
>>555 そりゃすごいな。
ところで JDBC ドライバは Type4 なんだろうか?
ただ、値段が値段だから試してみるわけにもいかないな。
試用版でもあればいいが。
558 :
デフォルトの名無しさん :02/12/12 15:32
アンケートの複数回答可の項目があるものをどうやってデータベースに格納するか迷ってます。 一つしか回答できないなら group by で集計できますが、複数の場合は配列?を使うのですか? 手元で試したところ普通に group by に与えることはできないみたいでした。 DBMSはPostgreSQL7.1です。 何かよい方法があったら教えてください。
>558 複数フィールドに分けるなり別テーブルにするなりお好きに。 何をどう集計したいかによって変わるよ。
>>555 たまたまパッケージメーカの生産管理システムを導入したら Pervasive.SQL7を
使わなければならない状況に置かれたんだけどさ。なんか btrieveに SQLengineを
載せただけっつうような感じだったが・・・
パッケージソフトの作りのせいかも知れないけど、クライアント側からサーバの
DBファイルを共有ファイルとして見えるようにせにゃあかんとか、サーバ版の癖に
なんでファイル共有型データベースシステムみたいなんだろうと違和感を覚えた。
# もう3年前の出来事なんだな
oracle初心者です。 会社でoracleの勉強を始めたのですが、 1.データ型はchar型とnumber型のみ使用。 2.nullは基本的に許さず、char型なら' '(空白一文字)number型なら0をdefaultとして取る。 3.外部キー制約は使わない。(プログラム側で制限) などは普通なのでしょうか? 本と違うところなので戸惑ってます。 皆さんのところはどうですか?
>3.外部キー制約は使わない。(プログラム側で制限) プログラム外で更新されたらどうする? 整合性がくずれる場合もあり得るんじゃない。
基本的な型のみを使う、ってのは確かにアリだと思う。 可変長も禁止ってのはヤリスギな感じもするけど。 要は、このプロジェクトの中ではこうする、っていうのが 決まっていて徹底されておればとりあえず問題ないと思う。 中途半端なルールが一番有害。
>>562 たまに見かける実装。
日付なんかも文字列で入れるんだよね。
一応それらのシステムは問題なく動いている。
結局、DBの捉え方が問題になる。
単なるデータストアとして捉えるか、それ以上の処理を含ませるか。
双方、それぞれメリット・デメリットがあるので、
どちらが良いとは一概には言えないけど。
思うに、さらにDBは機能面で高度化してくわけだけど、
そこまで必要なのかとは思う。
562のような実装で十分足りる場合も多い。
そんな邪道なやり方はお勧めできない。 数年後、後輩にバカにされるのがオチ。
どこで切り分けるかで、変わってくるので一概には言えないかと。 開発・保守が最小になればどんなんでもいいんじゃない? 勉強しただけの香具師にはそれが分からないからねぇ。
569 :
デフォルトの名無しさん :02/12/14 04:04
データベース管理者ってどうすればなれますか?
マネージャに志願して、 許可されたらなれる。
25歳。
去年まで金無し君だったけど、オンラインカジノとパチンコで
二年で350万貯めた。一度やってみなよ。
初回のみだけど、1ドル以上のチップを買えば30ドル(4000円くらい)貰える。
もらうだけもらってプレイせずに換金することもできるし、ルーレットで赤か黒に
思い切って賭けてしまえば50パーセントで二倍になる。
金なきゃオフラインでゲームすればいいだけ。暇つぶしになる。
ビデオポーカーとかスロとか色々あるのでマジでお勧め。
http://www.imperialcasino.com/~1kl5/japanese/
572 :
デフォルトの名無しさん :02/12/14 09:49
Oracleって、たしかPL/SQL内だと、コミットしないと更新の結果がSELECTできなかったよね? これって(ADOやoo4oからアクセスした場合でも)トランザクション内ではその更新の結果はSELECTできないってこと?
>>573 申し訳ない、言葉が足りませんでした。
「トランザクションを作ったアプリの中で」です>SELECT出来るか出来ないか
よーするに、例えば(いっちゃん単純なASPのVBScriptで書けば)
0.Set ADOobj = Server.CreateObject("OracleのOLE DBプロバイダ使うぞゴルァ!")
1.ADOobj.BeginTrans
2.ADOobj.Execute("UPDATE TBL_Moner SET ……")
3.Set RexordSet = ADOobj.Execute("SELECT * FROM TBL_Moner")
4.ADO.CommitTrans
で、2.の結果が3.でレコードセットに入ってくるか、っつー事です。
確か出来たような気がしたんですが、PL/SQLをやった後に「じゃあ何でADOではOKなの?」という
理由をまったく知らない自分にハタと気がついた、という次第でして……(;´∀`)
>>574 PL/SQLで出来ないっていてるのはどういう場合?
同一トランザクション内なら普通見えると思うけど。
>>574 だから
>>573 が言ってるようにトランザクションの Isolation レベルよって挙動が変わるってこと。
オレは Oracle 使いじゃないけど、このことはどの RDBMS でも同じことでは?
>>575 コーディングはしないけど、確かPL/SQLでは、
>>574 の2.の結果が3.でSELECTできなかったはず。
もちろん、2.5.を作ってコミットすれば読めるんだけど。
>>576 ぐぐってみましたが、アイソレーション(分離)レベルっつーのは「他のトランザクション」から、トランザクション中の操作がどのように見えるか、
ということなのでは? ボケてたら蹴っ飛ばしてください(;´∀`)
>>577 >ぐぐってみましたが、アイソレーション(分離)レベルっつーのは「他のトランザクション」から、トランザクション中の操作がどのように見えるか、
>ということなのでは?
その通り。オレの方ががボケてました。ごめんなさい。
>>568 予想するならあたりまえのこと
書くなアフォが。
ぶりかえして荒れるだけだ。
s/568/578 紛らわしいレス番に書きやがって。
みなさんありがとうございます。 こういう運用の仕方もアリなんですね。 外部キー制約については指摘があったので 実際に運用するときに、必要かどうかよく考えます。 自分だけ違うやり方で、というわけにもいきませんから。
583 :
デフォルトの名無しさん :02/12/14 21:07
データベース名、カラム名 の命名方法って、世間的にはどうなの? (プログラミングじゃけっこうあるけど、データベースに関する記事ってあまり見たことない) 給料の合計を表すカラム名としては (1) total_salary (普通) (2) tot_pay (略す) (3) tp (さらに略す) (4) TotalSaraly (大文字区切り) 俺は 1番がいいと思ってる。
>>583 Firebirdでデータベース名に_を使ったらXTG-ODBC経由でAccessから読めなかった
(本当はAccessを無視したいのだけどそうはいかない場合もある)
ので_をデータベース名に使うのはやめにしている
(カラム名としては問題ないみたい)
逆に大文字区切りは意味がないような・・・
>>583 >(1) total_salary (普通)
一般的にはこれだね。略しても意味がわかりそうなら場合や、略さないと
長くなりすぎて大変とかなら (2) の方式でもいいと思う。
要するにケースバイケース。
>(4) TotalSaraly (大文字区切り)
は一見よさそうだけど、メタデータ表示したりするとすべて大文字か小文字かになってしまう
から読みにくくなってしまう。
列名は日本語で分かりやすく付ける。これ基本。 システムの制約があるならローマ字表記してでも日本語。 ユーザーの業務特有の専門用語を無理に英語で記述しようとしたり、 省略形にしようとしたりすると、あとあと意味不明になる。
>>586 君はプログラムの際も変数名、関数名、クラス名、ファイル名も日本語ローマ字表記にしてんだろ?
今すぐ止めな!!!
かっこ悪いのは言うまでもないが、開発の際にも影響が出る恐れもある。
現代のこの国際化社会の中、日本人だけと一緒にやるとは限らない。
そんなクセつけると後々困ることになるぞ。
英語できない人でも、辞書で単語ぐらい調べれるわけだから、
拙い英単語、熟語表記でも経験を重ねる内にまともになっていく。
(英単語も覚えられるから一石二鳥だろう。)
>>586 >列名は日本語で分かりやすく付ける。これ基本。
基本かぁ?
半角倍角を切り替えるのが面倒にならへん?
> 君はプログラムの際も変数名、関数名、クラス名、ファイル名も
> 日本語ローマ字表記にしてんだろ?
いえ、ローマ字どころか Java や VB での開発時は
ふつーに日本語使ってます。売上入力.exe とか。
> 英語できない人でも、辞書で単語ぐらい調べれるわけだから、
> 拙い英単語、熟語表記でも経験を重ねる内にまともになっていく。
> (英単語も覚えられるから一石二鳥だろう。)
それを覚えるのがなかなか難しいんですよね。
>>585 のような命名をしている
プロジェクトに参加していたときは、列名の対応表(英語⇔日本語)を
みんな持っていましたよ。それなら日本語をはじめから使った方が…。
昔のコンピュータと違って日本語使える開発環境も多いですし。
> 現代のこの国際化社会の中、日本人だけと一緒にやるとは限らない。
500万そこらの小さなプロジェクトなので、プログラム自体が国際化対応
されていません。つまり日本語専用プログラムなんですね。
それに単価が安くても業務ロジックを理解できない外国人プログラマなんて要りません。
もちろん、私たちが英語で業務ロジックを説明できないのが根本の問題なんですけど、
ユーザーの業種によっては、本当に多様な専門用語が存在することがあり、
それを英語で説明するというのは非常に困難です。
それをできたら、SEとしてではなく翻訳屋として食っていけちゃうんじゃないかな。
おめーさ、そんな屁理屈よりも 文字コードが鯖OSとクライアントOS とで違ってたらどうすんだよ。
俺は「どんなに悩んでも英語に直す」派。
で、テーブル名は total_salary 系統。
>>586 > もちろん、私たちが英語で業務ロジックを説明できないのが根本の問題なんですけど、
> ユーザーの業種によっては、本当に多様な専門用語が存在することがあり、
> それを英語で説明するというのは非常に困難です。
これは考えることを放棄してるように受け取れちゃうよ。
「多様な専門用語」といっても特殊なのはその用語のみであり、
概念や構成要素は一般的なもの(およびその組み合わせ)だよね。
「あるクライアントのある業務ドメインのみで通用する概念」というのがそんなに存在するとは思えない。
(ましてや 500 万円程度の規模で)
システムを作るには、どんな難しいものも分解して考えるわけだし、
それをそのまま平易な英語にすればよいだけだと思うよ。
特殊である(と思われている)は、その組織の慣習が原因であることも多い。
せっかくシステムを作るのをきっかけに、無駄のないよう再構成して提案できてこそ SE じゃないかな。
>>591 >文字コードが鯖OSとクライアントOSとで違ってたらどうすんだよ。
586の場合、文字コードの問題があったらローマ字にするだけじゃねーの?
594 :
デフォルトの名無しさん :02/12/15 20:24
他の言語は知らんけど、少なくともVBはオブジェクトや変数に日本語の名称 使うなとM$が言っている以上、使うべきではないと思うが。
>>592 >「あるクライアントのある業務ドメインのみで通用する概念」というのがそんなに存在するとは思えない。
「思えない」って言ってるってことは知らないって事だね。
とりあえずその根拠の無い想像は外れている確立のほうが高いよ。
わざわざ辞書ひいてまで英語使う必要ってあんの? 外人と開発してるなら必須だろうけど。 単なる見た目ですか?
597 :
デフォルトの名無しさん :02/12/16 00:50
>595 >とりあえずその根拠の無い想像は外れている確立のほうが高い 君のその発言の根拠も書くべきでは? ところで、英語or日本語って使い方は誤解が生まれないかい? 日本語のローマ字表記、ってのもある訳だし。 UNICODEなんかがある今、2バイト文字っていう言葉も誤解の元だし・・・
>とりあえずその根拠の無い想像は外れている確立のほうが高いよ。 とりあえず日本語を(ry
データベースでの文字コードってこれからUNICODEに統一される?
日本語で開発できれば効率上がりそうなのも事実。
601 :
デフォルトの名無しさん :02/12/16 21:16
データベースの学習に当たって、フリーのソフトでは 何が良いですか?
602 :
デフォルトの名無しさん :02/12/16 21:25
>>601 Oracle 120日トライアル版(藁
>>602 ソース読めなきゃ学習になんないじゃん。
SQLite のソースは読む価値あり。
>>601 Firebird は割合簡単に使えるからお勧めする。
使い方の学習か、作り方の学習か。
606 :
デフォルトの名無しさん :02/12/16 22:44
>>606 眩しいくらいの向学心でし
おいらは使い方で精一杯でし
かっこつけー以外は日本語を使っても良い、という結論でよいか。
>>608 日本語つかっていいとこと悪いとことちゃんと判断できて、日本語のせいではまっても文句を言わないならね
俺が今までに参加してきた大型案件の中で、 ・日本テレ○ム(日立メインフレーム+DB2) ・三井○友銀行(Solaris+Oracle) は、請求系・勘定系というミッションクリティカルな分野にも関わらずテーブル名&カラム名は日本語だったYO! だからどうってワケではないが、必ずしも「物理名称が日本語」ということに対して脊髄反射で「ナンセンス」と決めつけるものではないと思う。
DAOとADOとODAってややこしくない?
612 :
デフォルトの名無しさん :02/12/17 05:06
>>610 メインフレームで日本語カラム名とは漢だ...
>611 DB屋なら、そこにDOAも加わるはずだ。 無論、デッドオアアライブの事では無(略
>>612 ネタに決まっとるだろ。
メインフレームで
field idとcolumn headingを
勘違いしているDQNだ。
OSやDB、ミドルウェアが特定できるもの、他システムと連携を取らなくてもいいもの なら別に日本語だろうがなんだろうが使ってしまってもいいと思うが・・・
>>614 ネタじゃないよ。
具体的なシステム構成までは明かさないけど、日立VOS3で作ったDWHだ。
ま、DWHだからミッションクリティカルといえるかどうかは微妙だが。
日経とかでも話題になったよ。全体から見れば日立が100億円近くの損失を出した
大失敗プロジェクトだったが(w
それみろネタじゃないか。 ちょっとつつけば、DWHかよ。 誰も、ユニバースのオブジェクト名の (VOS3じゃなんというか分からないが) 話なんかしてない。 つーかDWHのオブジェクトは日本語 の方が多いだろ。
DWHだろうが何だろうが日本語を物理項目にしているシステムという事実には変わりないと思うが。 それに住友のほうは俺も知ってるし、こっちはどう反応するつもりなんだ? てゆうか、なんでこうも「物理項目の日本語」に過剰に反対するヤツがいるんだろう? 自分の価値観を絶対普遍のものだと思い込んでそれ以外の思想を認めたくないのかな? > つーかDWHのオブジェクトは日本語の方が多いだろ。 つまりシステムの形態によってはDBの物理項目が日本語でOKということを認めているわけね?
英語にしたほうがカッコいいと思ってるだけなんだろ?(p 意味が通じてそのシステムが問題なく稼動するんであれば、 omae_monaだろうがYouTooだろうが「オモエモナ」だろうが構わんさ。 くっだらねぇ議論。
メインフレームで日本語?と 思ったらDWHだったのか、ワロタ
ごめん俺厨房でよく分からないんだけど、DWHだったらメインフレームでも日本語OKっていうのはなんで?
というかDWHなら日本語OKというのはどういう理由でなの?
DB使うシステムでも日本語がOKとNGというケースバイケースみたいのが存在するの?
>>617 と
>>620 は答えを知ってるみたいなんで勉強のために教えて欲しい。
>そのシステムが問題なく稼動するんであれば そりゃ当然の事。 項目名に日本語を使うことによってこれに?が付いてしまうケースが多いから問題なんであって。
> 項目名に日本語を使うことによってこれに?が付いてしまうケースが多いから問題なんであって。 具体的にどういう問題?なんか過去ログ見てもあまり具体例がないような・・・。 教えてクンでスマソ
俺が遭遇したのは、項目名にある特定の文字を使用したテーブルをレプリケーションした 場合にエラーが発生するという物だった。
>>618 ハァ?DWHの使用DBではなく
「オブジェクト名」は普通日本語を
使っていると言ってるわけだが。
それはユーザに見せるもんだろ。
おめーが最初に
「メインフレームで使うDB2で物理名に
日本語使っている」なんていうドキュソ発言した
から言ったんだよ。
メインフレームのDB2の物理名は英数字8文字まで
しか使えないんだよ。
そしたらDWHのことと化けの皮がはがれ大笑い。
まぁ、
>>616 で墓穴掘っているから
それ以上言い返しても惨めなだけだが。
それに、オレは絶対日本語使うなとは
一言も言ってないが。
>>621 なんのことはない。
DWHのソフトで日本語が使えるかどうか
ということだ。プラットホームは特に
関係ないよ(もちろん日本語対応OSだが)。
シェル上からコンソールツール使ってやるとき日本語入力できなかったりする。 各種インターフェースを使う場合の文字エンコーディング関係のトラブルもあり得る。 無用なトラブルを避けるために英数字にすべきと考える。 もちろん見た目、見易さも重要である。
>>625 >>618 は俺じゃないんだけどな・・・激情すると周囲が見えなくなるタイプか?
俺は別に煽ってるわけでもないのになんでケンカ腰になるかな?
> メインフレームのDB2の物理名は英数字8文字まで
> しか使えないんだよ。
そうなの?俺の勘違いなのかな?
だって、以下実際のソースコード・・・(いくつか伏せるけど)
025100 OPEN処理-000.
025200*
025300SQL-DECLARE-START
025400 EXEC SQL
025500 DECLARE XX999XXX CURSOR FOR
025600 SELECT
025700 キャンペーンコード,
025800 有効期間開始年月日,
025900 有効期間終了年月日,
026000 操作番号,
:
これは別にユーザに見せる名称じゃないよ。実際にCREATE TABLE文まで確認したし。
それともこの項目名(日本語カラム名)は一般的には「物理名」とはいわないの?
>>625 と視点がずれてる?
このソースコードまで含めてネタっていうんだったら、もう何をいっても信じてもらえないんだろうけど・・・。
ただ、確かにカーソル名称は英数字8文字で、テーブル名称は英数字6文字だった。
埋め込みCOBOLか懐かしスィ。別にDWHツールがどうとかいう話でもなさそうなソースコードだのう。 確かにカラム名が日本語なのにテーブル名が本当に英語だとしたら妙ではあるが。 実はDB2じゃなくて別DB(HiRDBとか)じゃないのか?
>>627 別に激情してなんかないよ。
2ちゃんだと何故かね。
オレはIBM系メインフレームしか知らないので
あくまで推測だが多分、Column Header
いわゆるテキストでアクセスできるSQLコンパイラ
なのかな?
基本的にIBMのOSはオブジェクト名は英数字8文字、
その説明としてテキスト(日本語OK)
のフィールドが存在した。
DB設計書もそうなってたのか?
もしそうならオレが悪かった。未熟者だったよ。
Oracleやオープン系DB2に関しては、ミドルウェアが
文字コードの違いを吸収してスキーマが日本語でも
アクセスできる。Winで日本語オブジェクトを作って、
Solaris上で日本語オブジェクト名の表示やアクセス
ができる。
でも、オレはやはりやらないな。
はいここまで!日本語問題は終了! もっと有益な話しよーよ!
そう思うならネタをふらないとな。
ここではオプソDBの比較話とかしてもいいの? MySQL vs PostgreSQL vs Firebird...
↑ × カムシウム ○ カルシウム
うわっ、ホントに pin's厨ダターヨ...
プッ ここでこんなこと いってるのオマエだけだ。 早く本星に帰った方がいいよ、 知ったかくん。
pin's厨って何?
>>639 多分、半角カナ使うヤツと
DBテーブル名、フィールド名に日本語使うヤツのことだと思うよ。(プッ
641 :
デフォルトの名無しさん :02/12/17 19:45
オマエ、ハンカクカナノショリ シラズニツカウナトイッテルダケダロ。 pin'sチュウノホントノイミヲオシエテヤレヨ、 ナ、pin'sチュウクン。
642 :
デフォルトの名無しさん :02/12/17 19:48
Windows で Postgres 使いたいんだけど、cygwin 使っていない版って どこかのサイトにある? それとも今後 Windows 版の開発予定もあるのかな? # やっぱ当分の間 MySQL 使うしかないのかな。
2chは半角カナ標準だろ。 ほかでは一切使わんが
646 :
デフォルトの名無しさん :02/12/18 20:32
647 :
デフォルトの名無しさん :02/12/18 21:26
最近話題のSQLiteだが、これはどう読むんだ? エスキューライト?
なにそれ?流行ってんの?>SQLite
649 :
デフォルトの名無しさん :02/12/19 17:24
Oracle8.1.7JDBCドライバって正常に動きませんって ダウンロードサイトに書いてあったのですが、 Oracle & JAVAの人ってどうしてますか。
もっと上のバージョンのやつを使えばいいじゃん
わかりますた。 ありがとうございました。
654 :
デフォルトの名無しさん :02/12/20 16:09
>>653 ライセンス料金とメディア代別料金なのに
メディアを無くした場合はライセンスも購入しなければならない。
管理者1人がサポート受けるために
オラクルって何?なユーザー全員分の
サポート料金を払わなければならない。
ライセンス購入後、たとえば3年経ってからさあ使うか、となり
サポートを受けようとしたら、全く使っていなかった3年分の
サポート料金も払わなければならない。
マジ馬鹿げてる。
これ決めたやつ氏んで欲しい。
>>654 他のとこは置いとくとして、
> ライセンス購入後、たとえば3年経ってからさあ使うか、となり
> サポートを受けようとしたら、全く使っていなかった3年分の
> サポート料金も払わなければならない。
ここ言ってることおかしいぞ。
使いたくなったときに買えよ。
>>654 もしそれが本当なら M$ どころじゃないよな。
Oracle 使ってなくてよかった。
657 :
デフォルトの名無しさん :02/12/21 22:09
>>654 もっとすごいのは古いオラクル製品だと、CD−ROM作成費用が
別途3万円かかるっーことだな。
そこまでして Oracle 製品使う理由って... もし使うとしたら相当大きな仕事じゃないと手が出せないな〜。 やっぱ客に保守費用として乗せてるんかな?
>>660 客に買ってもらうんでしょ?
ソフトウェアの契約とシステムの契約は別だとおもうんだが
>>661 でも客がサポートセンターに問い合わせるわけじゃないよね。当然。
開発サイドなわけだから、サポート料金の一部は客に負担させてるんだよね?
(実際はシステム開発費用に上乗せしてるのかな?)
たとえばだけど、問題解決調査のために1週間も かかるような事があったら、サポートの方が安かんべ そう考えれば、めちゃくちゃ高いと思わないけどなぁ
>>663 確かにOracleに何か問題があって、その回避方法とかのノウハウを
一番持ってるのは、やっぱりオラクルのサポート部隊なんだし、
せめて慣れるまではサポートのお世話になったほうがいいと思うけどな。
いずれにしてもオラクルは糞であることに変わりはない
>>662 ソフトウェアの契約を客が直接やるんなら開発の人間は客に問い合わせてもらうしかないわな。
開発の人間は責任取れんので。
開発の人間からの問い合わせをさせるんならシステム(アプリケーション)のサポートに組み込んで、
アプリケーションサポート費用から出すことになると思うんだが。
(この費用はとうぜん問い合わせにともなうサポート作業の費用であって
ソフトウェアのサポートではない)
668 :
向こうの262 :02/12/24 19:37
スレ違いだったので「★初心者にVisual C++を教えるスレ★ Part3」から 移動してきました。 >>向こうの265 >その方法だと植物1種類につき >座標テーブルを作るってことですか? 座標テーブルは一つです。 植物の区別のために「植物のID」の列を持ちます。 今のDBでもSelectで纏めずに強引にやればできそうです。 が、300の座標をそれぞれ別の列にするというのは、 やはりDBの設計が変ですよ。 その座標は何に使うのでしょう?(描画するとかではないのですか?) それぞれ別の列になっている方が扱い難いと思うんですが。
>>668 >300の座標をそれぞれ別の列にするというのは、 やはりDBの設計が変ですよ。
漏れもおかしな設計だと思う。
ってか、そいつってDB設計の本とかホントに読んだ事あるんだろうか?
正規化すらも知らんかったりして。
670 :
デフォルトの名無しさん :02/12/24 21:42
>669 これの質問者です DBの設計はぜんぜん知識がなく手探りでやってまして 1つの植物(レコード)にそのパラメータを列にしていったため こんな変なDBになってしまいました とりあえず座標の数を120にしてぎりぎり255にはいるようにしました ちなみに座標を使って形状類似度を計算しています 一段落したらDBの基本からしっかり学びなおします ありがとうございました
>>670 コーディングする前に一回読んどいたほうがいいよ。
でないと後から悲劇が・・・・
672 :
デフォルトの名無しさん :02/12/26 09:46
レコードを追加するとき主キーが重複しないように入力するロジックを考えています。 シーケンスを使えば楽なのですが、削除や追加を繰り返していると レコード数の増加に対して、数字ばかり消費しそうです。 かといって一件づつ空いてるコードを探すのは能率が悪い気もします。 なにかうまい方法はありますか?
>>672 そんな心配をする必要はない。シーケンスを使え。
32bit範囲ですら毎秒100レコードの挿入を一年以上継続できる。
674 :
デフォルトの名無しさん :02/12/26 10:26
>>672 シーケンスだけが上がったとしても何も問題はないでしょ?
「重複しない」という要件は満たせているし。
どうしても連番にならないとだめならば空きIDをテーブルで管理するようなことに
なるけど、きちんとやろうとするとけっこう面倒だよ。それに主キーを再利用すると
時系列に縛られてしまうのがイヤなところ。
そういうのって物理的に再利用する「モノ」を管理する場合くらいしか必要じゃ
ないし、その場合はもっと別のやり方がある。
早いレスありがとうございます。 確かにシーケンスが上がっても問題は無いです。 毎秒100件も追加することは無いので、 数字が尽きる心配はしなくても問題ないのですね。 ありがとうございました。 シーケンスを使うことにします。
676 :
デフォルトの名無しさん :02/12/26 11:02
>>673 >32bit範囲ですら毎秒100レコードの挿入を一年以上継続できる。
そう考えて作ったシステムが3年目、このあいだ折り返し地点の
21億を超えてしまった...。そろそろヤバイな。
>>676 そんなトランザクションに耐えられるDBなら、
シーケンスの最大精度はもっと大きいんじゃない?
Oracleならnumberの範囲、PostgreSQLだって(最近のは)64bitまで使えるよ。
>>676 ところで、実験したことがないんだけどオーバーフローしたらどうなるの?
トランザクションエラーになるのか、それとも何か巧い仕組みで
動作が継続されるのか…。
>>677 21億を超えたというのは間違い。maxが21億で、その約半分の10億を
超えたんでした。モノはPostgres7.0.3だったりします。
もちろんいずれPostgresをバージョンアップする際にテーブル定義やら
アプリケーションやらを拡張してやるつもりですが。
Postgresならtimestampではだめ?
>>680 レコードの挿入順を保持するためにお手軽にtimestampのカラムを用意することは
ありますが、主キーに使うのはちとtrickyですね。重複しないとは限らないし、
プログラムから扱う際の外部表現も面倒ですから。
いつぞや載ってたXMLPGSQLのユニークの生成は 確かtimestampもどきだったような記憶があるが...
683 :
デフォルトの名無しさん :03/01/06 23:32
Web上の検索システムで、50音順とかやるじゃないですか? その時に、「特殊文字の順序」ってどう定義されているのかな? ある程度どんなシステムでも同じなんですかね・・・ aaaよりもa&aが先に来て、はぁ?とか思ったんですけど。検索しても解りません。
>>683 どのような実装をしているかにもよるが、純粋にorder byした
順番でHTMLへ出力しているならDBの設定による。
ORACLEならNLSパラメーター、
SQLサバなら照合順序を調べると良し。
・・・・だと思う。自信がないのでsage
>>684 レスさんくす。・・・エンドユーザー的に様々なサイトでリサーチしてみたが、
画一的じゃないんだなぁ。
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/ 1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。
27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?
38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27 鋭いです。
73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
みんな必死だな。
▼持ちはどうなんだろうね
最高裁への上告は認められなくなったから、これで事実上判決確定だよ。
逆転も何もないって。
勢いで上告なんかしても一発で上告却下(門前払い)だよ。
二審も一審を支持。これに対して上告しようにも、
刑事訴訟と同様、自由に上告できるってもんでもないのです。
民事訴訟法312条 (上告の理由) 1項
「上告は、判決に憲法の解釈の誤りがあること
その他憲法の違反があることを理由とするときに、することができる。」
http://www.m-net.ne.jp/~doba/goto/hon.htm ようするに上告しても今の制度では100%無駄。 これで完全終了ってことか。
固定IPの奴はどうなる?
691 :
デフォルトの名無しさん :03/01/09 14:53
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□ □□■■■■■□□□■■■■■□□□□■□□■□□■□□□■□ □□■□□□■□□□■□□□■□□□■□■□□■□■□□■□□ □□■■■■■□□□■■■■■□□■□□□■□□□■□□□□□ □□■□□□■□□□■□□□■□□■■■■□□■■■■■■□□ □□■■■■■□□□■■■■■□□□□■□□□■□□□□■□□ □□■□□□□□□□□□□□■□□□□■□□□■■■■■■□□ □□■□□□□□□■□□□□■□□■■■■■□■□□□□■□□ □□■□□■■■■■■■□□■□□□□■□□□■■■■■■□□ □□■□□□□□□■□□□□■□□■□■□■□■□□□□■□□ □□■□□□□□■■□□□□■□□■□■□■□■□□□□■□□ □□■□□□□■□■□□□□■□□■□■□□□■■■■■■□□ □□■□□■■□□■□□□□■□□□□■■■□□■□□■□□□ □□■□□□□□■■□□□■■□□■■■□□■■□□□□■■□ □□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
======2==C==H======================================================
2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 138720人 発行日:2003/1/9
年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。
そんなわけで、年末に予告したIP記録ですが実験を開始しています。
「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50 ────────────────────────────
↑同上
多分無理でしょうが 人徳のある方なら 早急に聞いて頂きたい件があります。 マジメな事ですが大丈夫でしょうか。 人の人生を結構破壊しているのだし 何卒ご助力仕れれば幸いですが。 以前人のパソコンハックして結構嘘の情報とか仕入れてたでしょうが。 それにも自殺間近の人間の深い意味があったのですよ。 「こんな恥ずかしいものが見られると考えると、自殺できない」 そう思う為に、嘘でも変な文章や痛々しい事柄を色々な所に残そうと考えたのです。 全部じゃないけどね。
>>489 とりあえずバナーをガンガン踏むしかないなw
なんだろう。 2chだけって・・他の掲示板じゃ神様が見てるのかな?
>>634 誰かの支持を得られた所で勝てるとは限らない。
アフォですか?
まあ、IPアドレスくらい記録したっていいけどな
削除整理板がじわじわと荒らされてきてますね。 しかも手動ズレコピペで。
555京円払えば買える
>>345 ユーザー自体を減らしたいのか、それとも厨を減らしたいのか。どっちですかね?
匿名掲示板もあっけなく崩れ落ちたな。 このまま閉鎖すればいいのに
考えたんだけど管理人ひとりに責任をとらせないように tripodとかフォーチュンシティみたいに無料でHPつくれるサイトみたいのを 母体にしておいて無料サイトのかわりに無料でスレを作れる。 スレタイとコメントは事前にカキコしておくと誰かが登録したときに 事前に登録されているスレが作られる。 自分で望んだスレじゃないし責任もない。 2ちゃんねるだけど2ちゃんねるという名前をそれぞれの板(利用者)が勝手に名乗っているだけ。 その責任者はクリゴン語しか話せない雇われ管理人の住所不定マイケルさん。 何か問題があればマイケルさんと連絡をとるしかないけど クリゴン語の能力とマイケルさんを探さなければならない。 こんなのダメ?
警察沙汰とかにはならないけど厨房っぽい書き込みは増えそう
発言した時に、良いほうに解釈する人と悪く解釈する人がいる。しかも、 悪く考える人のほうがレスポンスを返す確率が高い。 ただ、それはスレの中の発言であって、スレを建てる場合には逆に 良い方に解釈する人の方がレスポンスをする。 スレを建てて発言する時とレスポンスで発言する時で、書き込む人が 逆転するのは不思議である。
結局、世の中暴力を使える奴が勝つんだね。 言論の自由なんて、この国にはありやしないんだ。
ありえるね。それより北の方が厄介かも。
けんすう氏は?
理性無き力は単なる暴力だけど、力無き正義は『無力』なんだよな…。 正義を主張するには、それなりのチカラがこっちにある事が大前提。
テレビにニュース速報が入る。 俺は慌ててパソコンを立ち上げ、そして気付く。 「あぁ、2chは閉鎖したんだっけ……」 テレビからは現場の慌しい状況が伝わってくる。 もし2chがあったら、どういうスレが立っているのだろう。 重複スレが沢山できて、それで荒らしとかやってきて…… テレビでは相変わらず、レポーターが必死で現場の状況を伝えている。 可愛いレポーターだ。俺は、頭の中で「萌え〜」というレスを つけている自分を想像した。 後ろの群集がテレビに向かって挑発的なポーズを取っている。 「なんだ、あのドキュソ」「厨房氏ね」…… 俺はたまらなくなり、無いとは分かっていながら再び2chにアクセスした。 しかし、画面には一言「閉鎖したのです。。。」とだけしか表示されない。 何度リロードしても変わらない。あの日以来、2chは止まったのだ。 どうやら犯人が逮捕されたようだ。相変わらず可愛いレポーターが その状況を伝えている。 「さよなら、にちゃんねる」 俺はお気に入りから2chを削除し、そして騒がしいニュースを冷めた目で 見るのであった。
今度はプロ野球板もダメ
ひろゆきの腐れチンコめ 氏ね
IP記録しても構いませんので、スレッドをもっと立てやすくしてください。 IPが記録されるような掲示板は匿名掲示板とはいえませんが、 スレッドが立てられないような掲示板はもはや掲示板ですらありません。
本当にそう、IP皆さん解ってる? 泉ピン子の略ってこと。
気にしないでいいと思います。
共犯者ハケーン
P2Pにでももぐったほうが楽しい気がしますが、、
結局はまたループ・・・
(^^)
コピペ職人さん帰省しないの?
(^^)
今度はプロ野球板もダメ
725 :
デフォルトの名無しさん :03/01/20 01:59
DB及びDBMSそのもののプログラミングについて解説している書籍やWebサイトでお勧めがあったら教えて下さい。 Perlのようなスクリプトでもいいのですが、自分でナンチャッテDB作ってみたいです。
>>725 やめとけ、おまいにはあまりにも無謀すぎる。
まぁ・・・おまいの人生の半分の時間と収入をつぎ込んでも構わんというなら話は別だろうが(w
>>725 Postgres のソースを読むことから始めたら?
728 :
デフォルトの名無しさん :03/01/20 12:36
SQL文を抽象化するライブラリは欲しい気もする。 検索条件を作るために addSearchItem(item) なんて作っても、 結局はSQL文を生成するための文字列操作プログラミングに なっちゃうから(他のテーブルと接続して云々となると)一つの 検索条件を追加するのでも、結構な作業量になってしまう。 「文」でデータを操作する、という発想から、XML::Dom, SOAP, CORBA みたいな、プログラミング言語から独立した、共通の DBデータ操作APIを用いる、という発想に切り替える時期が 来てるんじゃないかと思う。 (プラグイン的に機能が追加されるアプリケーションとなるとなおさら) その仕様を誰が決めるのかというと、それはSQLの仕様を作る 団体でいいんじゃないか。それをいろんな言語で実装すればよい、と。
抽象化APIってことであればJavaにはJDOという仕様がありますよ。 それと現在のSQLの仕様でもさまざまなベンダーの思惑が交錯し実際には 仕様道理の実装が行われていないのが現状です。 RDBMSはかなり金が絡むので泥臭い話が多いのです。 なかなかそうした統一した仕様は難しいでしょうね。
>>725 とりあえず、文字列を対象にPerlのsplitと連想配列を自分
で実装してごらん。あれがデータベースの最も基本的な形。
731 :
デフォルトの名無しさん :03/01/20 17:04
こういう設計って理に適っていますか? 設計者は正規化と整合性の区別がつかない人なんですが・・・ 伝票番号テーブル(伝票コード、処理受付日、処理予定日、処理完了日、担当者コード) 仕入伝票(伝票コード、仕入先コード、・・・) 売上伝票(伝票コード、得意先コード、・・・) 売掛伝票(伝票コード、得意先コード、・・・) 伝票番号テーブルで伝票コードを一元管理している。 伝票コードは仕入伝票、売上伝票、売掛伝票で重複しない。←こんなのあり?
>>731 DB設計って業務によって変わってしまうことが多々あるので
的外れかもしれないけど
「売上伝票」と「売掛伝票」って限りなく類似していない?
ステータスかなんかで判断をつけた方が良いかと思った
そして、「売上」に対して「仕入」があるのが、通常パターンだと思うので
そこらへんの関連づけが面倒になりそうな気がするのは自分だけ?
>>731 伝票番号テーブル単体では伝票コード(伝票番号か?)が
どの伝票(仕入、売上、売掛)か判らないってこと?
ヲレは好きじゃないな。
というか伝票番号テーブルの存在意義が無いような...
>>731 何をするにも結合が必要になるねぇ
当然だけど、伝票番号テーブルは
仕入伝票+売上伝票+売掛伝票の件数分になっちゃうねぇ
件数にもよるが遅くなりそうな雰囲気
>>733 >>どの伝票(仕入、売上、売掛)か判らないってこと?
最低でも、頭の数桁で見分けられるようにはしてるべ
まさかしてないとは思いたくないよw
>>734 > 最低でも、頭の数桁で見分けられるようにはしてるべ
益々気に入らない(w
(^^)
737 :
デフォルトの名無しさん :03/01/23 23:26
すみませんが誰かMSDE用のクエリアナライザーを紹介していただけませんか? DOSプロンプトでosqlはつらすぎますぅぅぅぅぅ
↑MSDE用というかSQLServer用でいいのですぅぅぅぅぅ
739 :
デフォルトの名無しさん :03/01/23 23:40
ぅぅぅぅぅ
>>737 SQLServerについてくるクエリアナライザー。
>DOSプロンプトでosql
それが基本だよ。
>>731 問題ないですね。
ERでいうとこのサブタイプってやつです。
オブジェクト指向で言うと継承とか汎化とかともよばれますが。
>>741 731の例の場合、こうするとどういったメリットがあるの?
>>742 ○○伝票には「処理受付日、処理予定日、処理完了日、担当者コード」が
あることが保証される。
まぁ、漏れはこんなことせずに 仕入伝票テーブル、売上伝票テーブルに
上記の列をそれぞれ作るけどね。
744 :
デフォルトの名無しさん :03/01/24 22:36
>>742 俺が思うに、無いよそんなもん。似たようなデータタイプなら同じテーブル
を定義すべき。
745 :
デフォルトの名無しさん :03/01/24 23:49
>>731 典型的なサブタイプだで、問題ないよ。
スーパータイプのテーブル(伝票)とサブタイプのテーブル(仕入伝票、売上伝票、売掛伝票)で構成するか、
はたまたすべてを単一のテーブルに入れ込むかは、
種別ごとのカラムの差分の量で決められることが多い。
伝票種別ごとに異なるカラムの個数が少ないなら、テーブルは1個でも良い(空いてるカラムにはnullでも入れておく)。
逆に差分が多ければ、共通するカラムだけをもつテーブルを作ってスーパータイプを表現すればいい。
どちらにしてもテーブルの論理設計はモデルの実装と言えるわけで、
スーパータイプ−サブタイプの関係をテーブル設計として表現できていればよいのです。
746 :
デフォルトの名無しさん :03/01/25 10:05
>>731 です。
>>734 >>どの伝票(仕入、売上、売掛)か判らないってこと?
>最低でも、頭の数桁で見分けられるようにはしてるべ
>まさかしてないとは思いたくないよw
伝票番号テーブル.伝票コードは1から連番です。
どのテーブルがその受付番号を持つのかは
テーブルの数のぶんだけSQLを叩いています。
質問には仕入伝票、売上伝票、売掛伝票とだけ挙げさせて頂きましたが
実際は12テーブルありますので12テーブルのどこに受付番号があるのか
1個づつ探しています。
伝票コードは仕入伝票、売上伝票、売掛伝票・・・で重複しないという約束ごとは
自前で実装しています。←DB設計者はそこは俺の範疇じゃないと言って話になりません。
747 :
デフォルトの名無しさん :03/01/25 10:11
>>731 です
修正
受付番号→伝票コード
失礼しました。
748 :
デフォルトの名無しさん :03/01/25 13:26
米マイクロソフト、ネット障害で修正ソフト導入求める
米マイクロソフト社は25日、世界的にインターネット通信に障害が出た事態
を受け、同社製データベースソフト「SQL(シークェル)サーバー2000」
を利用する企業などに対し、既に明らかになっている欠陥を一括して修
正する最新版修正ソフト「サービスパック(SP)3」を直ちに組み込むよう呼び
掛けた。(時事) (07:30)
http://www.asahi.com/business/update/0126/002.html IBMの人がSQLを「シークェル」と発音するのは知っていたけど、MSもなんだね。
マイクロソフトのリリースには「シークェル」とは書かれていないよ。 しったかのマスコミが勝手に発音を表記してるだけだろ。
751 :
デフォルトの名無しさん :03/01/27 14:44
>>745 それはつまり、例えば、記事データを id, title, date, text を三つのカラムとして表現して
article というテーブルにするとして。新しく、URL, 写真入りの記事を表さなければならく
なったら、id, picture, url というカラムで extend_article というテーブルを作るようにすれば、
拡張性の高いスッキリとした構成になる、ということでしょうか。
>>751 まあそんなもんです。
サブタイプのテーブルを持つ場合、
どのサブタイプテーブルを見に行ったらいいかを示す区分フィールドがあった方が好ましいです。
(テーブルarticleに記事種別を示すカラムarticle_typeを追加する)
でも、
>>751 のケースなら
単にフラグのカラムhas_pictureをテーブルarticleに追加して済んじゃうね。
あ、
>>751 の新種の記事レコードにはURLもあるかもしれないんですね。
じゃあ以下の一文は取り消します。
> でも、
>>751 のケースなら
> 単にフラグのカラムhas_pictureをテーブルarticleに追加して済んじゃうね。
> どのサブタイプテーブルを見に行ったらいいかを示す区分フィールドがあった方が好ましいです。 なるほど、実際に JOIN かまして SELECT やったとき、素の article なのか 拡張された article なのか 分からんですよね。区分フィールドを付けるのはいいアイデアです。
755 :
デフォルトの名無しさん :03/02/04 14:15
データベース設計で下記の良く解る書籍があったらお勧めを教えて下さい 論理設計 正規化デザインをはじめとする論理設計ガイドラインの 提示およびレビューによる支援を行います。 物理設計 下記の観点からの物理設計ガイドラインの 提示およびレビューによる支援を行います。 非正規化 データ構造設計(インデックス設計/パーティショニング) オブジェクトの分散 RAID 技術をはじめとする I/O の分散処理 外部データ設計 ホストコンピュータをはじめとする外部コンピュータの インタフェース設計ガイドラインの提示およびレビュー による支援を行います。
756 :
デフォルトの名無しさん :03/02/16 12:17
WindowsXPのコントロールパネルー>管理ツールにあるデータソース のことで、ご質問します。 ユーザーDSNで、ドライバのSQL Serverのデータソースを作成するとき 手動で設定するのが大変なので、自動化したいのですが、よい方法は ございませんか? これらのことを書かれているホームページがあれば紹介していただけま せんか?
何で「非」正規化なの?検索中心で速度が欲しいってこと?
>>731 これは「全伝票の伝票コード検索」を優先順位1番に考えた設計ですね
伝票番号での日付スケジュール管理が目的なのでしょうか
761 :
デフォルトの名無しさん :03/03/07 04:15
画像、音楽、動画をDBで管理するにはどうしてます? オブジェクト指向DBにも興味あるけどフリーでこれと いったものも知らないので、RDBで考えてます。
>>761 BLOBにしてつっこむか
画像とかのメタデータのテーブル作ってそこに実ファイルのパスも持たせるか
金に余裕があれば各社のコンテンツ管理サーバ買え
763 :
デフォルトの名無しさん :03/03/11 11:11
プラグイン的に検索条件をどんどん追加していけるプログラムっていうのを作る場合、 例えば、こんなクラスを書くと思うんだけど interface SearchItem { public boolean isMatch(Object o); } このデータは表示すべきか、それともするべきでないか、というメソッドを定義して もらって、それを本体に追加するという感じでやっていけばよいのではないかと。 しかし、いわゆるリレーショナルデータベースの場合もこのアプローチでよいなのかど うか。SQL文をガリガリ構築するのは、ある程度パターンが決まっているものならよい けど、別のテーブルが絡んできたりするとなると厄介だったりするし、プラグイン的に それを実装するとなると、なんか面倒くさそうだ。 J2EE についてくるデータベースを操作するためのAPIとか使うと、楽に検索条件追加で きるスマートな実装ができるもんなのかどうか。 結局、実装するタイプによる、というのが結論なのか。なら、判断基準はなんなのか。 経験豊富な人はどう実装するか。ちょいと思うことがあれば教えてほしい。
764 :
デフォルトの名無しさん :03/03/11 20:27
そのURLが生きているかどうかをチェックして、あるデータベース格納、なんてことをやりたいと思ってます。 A案 url varchar(255) alive boolean, check_date date B案 url_id int, url varchar(255), alive boolean check_date date ユニークなキーとして url を用いるか、数値型の int を用いるかなんですけども。 URL はユニークなので、A案で行こうと思ってます。 B案はあんまり意味ないですよね。
>>764 関連した情報を別のテーブルに持たせたり使いまわすことを考えているならば、
短い人工キーを用意した方がいいかもよ。
>>763 >プラグイン的に検索条件をどんどん追加していけるプログラムっていうのを作る場合、
その機能を実装する用途が不明。ハードコーディングしたくないとか?
>しかし、いわゆるリレーショナルデータベースの場合もこのアプローチでよいなのかど
>うか。
普通いくない。そもそもそれでは遅い。
>J2EE についてくるデータベースを操作するためのAPIとか使うと、楽に検索条件追加で
>きるスマートな実装ができるもんなのかどうか。
EJBQLは比較的楽にfinderを構築できる。ただしプラガブルではない。
>結局、実装するタイプによる、というのが結論なのか。なら、判断基準はなんなのか。
>経験豊富な人はどう実装するか。ちょいと思うことがあれば教えてほしい。
普通は検索条件に合わせて一本のSQLをPreparedStatement用に書く。
以上。
>>764 もとあったURLのコンテンツがそのまま別のURLに移動したときなんかにB案は便利。
768 :
デフォルトの名無しさん :03/03/12 18:25
>>767 なるほど、と一瞬思ったけど、単に、そのレコードに移転先のURL書き換えてもいいんじゃないか。
>>766 一般にルールエンジンと呼ばれるものはそういうもんだよ。
ダイナミックに条件を構築していく。
ILOGとか、システムに組み込めばかなり面白いものを作れるんだけど、
いかんせん高すぎる。
数ヶ月のプロジェクトで自前で作るとしたら、
せいぜい「ダイナミックにWHERE節を生成するフレームワーク」を作るぐらいでしょ。
これくらいなら気軽にできる(し、実際にやった)。
>>769 やはり、文字列操作プログラミングが必須なのか。
他のテーブルと連携したりするフレームワークを書くとなると、ちょっと大変な感じがする。
プラグイン的に検索条件をどんどん追加していけるプログラム、っていうのを作るときは
* 一発のトランザクションにこだわらずともOK、
* 速度が問題になれば速度重視のSQLコードも実行できる
というのような機構を作るのがよいな。
SQLコード生成するようなAPIかなにか、上手く作られてるなぁと感じるような、
参考になるものありますか?
>>770 僕も探したことあるけど、
手軽に使えそうでピンとくるライブラリが見当たらなかった。
WHERE部分のみの構築と割り切って、
>>772-773 みたいな感じの設計にした。
たとえば多肢・複数選択可の入力画面を持つ場合に、
複雑な条件群を1個のオブジェクトとして扱えたのでとても楽になれた記憶がある。
他にも TableクラスやColumnクラスも作ったけど、それはまあ割愛。
Term <|--- StringTerm <|--- NumericalTerm <|--- ColumnTerm <|--- ListTerm Expression <|--- EqualExpression <|--- NotEqualExpression <|--- GreaterThanExpression <|--- IsNullExpression <|--- InExpression Expression <|--- Condition Condition <|--- AndCondition <|--- OrCondition
// 項クラス。 ============= Term ------------- ------------- + format(): String ============= // 式クラス。項を2つ(左辺と右辺)を持つ ============= Expression ------------- + leftTerm: Term + rightTerm: Term ------------- + format(): String ============= // 条件クラス。N個の式を保持できる ============= Condition ------------- ------------- + addExpression(Expression): void =============
やっぱSQLって違和感あるよね。XML扱うときは、XML専用の言語があるわけじゃなくて、 OOの機能ある言語間、で似たようなAPIを標準団体が決めてるから、わりかしプログラミング しやすいけど、データ扱うためにそれ専用の言語を知ってそれを動的に組むプログラムを組まなきゃ いけないなんざ、どうかしてると思うよ。
>>774 んじゃ使わなきゃいいじゃん
それぞれの言語でDBアクセスの方法が
全く違った方が大変だとおもうのだが
776 :
返済不能なななしさん :03/03/16 15:59
MSDEって、MS-VS.NET やMS-Access とかの開発環境がなくてもフリーで 使えるの? ぐぐってもVisualStudioと絡んでるものばかり。MS のページでも MSDE 向けのHotfixぐらいしか見つからない。 利用可能で、MSでダウンロードできるなら使ってみたい… Access は お高くてつらいのです…。
>>776 無理。
VSやVS.NETで作成したアプリと一緒になら無償で使用/配布可能。
まぁ、使うだけならSQL鯖の試用版を使え。
別に何日間たっても、使用不可能にはならないから。
778 :
デフォルトの名無しさん :03/03/18 14:24
突然で申し訳ありませんがアドバイスをいただけますでしょうか。 客にHPで自分の車の保険が切れる日をHPを通して登録してもらい、保険の切れる30日前に メールを出すシステムを作ろうとしています。 自動メールでなくても構いません。かなりのデータ数になる予定なので、Accessは やめた方がいいかと思っているのですが、どのDBをお勧めしますか? ご意見いただければ幸いです。
かなりって、少なくとも100万超えるとか?
780 :
デフォルトの名無しさん :03/03/18 15:11
>776 その質問は、VSを買わないと使ってはいけないというライセンス的な事? それとも、VSがインストールされてないとダメなのかというソフト環境の事?
>778 データ「数」なんか気にしてもどうしようもないと思うが。 つーか、DBの選定すらできない奴がシステム作れるのか・・・? まあ、心配ならOracleでも買っとけよ(ゲラ
783 :
デフォルトの名無しさん :03/03/18 18:03
>>775 全く違うと大変かもしれないけど、似たようなメソッド名や、クラス名だったりすると
どうだろう。使いやすいと思う。
785 :
デフォルトの名無しさん :03/03/18 18:47
データベースプログラミングに一番あっているプログラミング言語は何だと思いますか?
...PL/SQL
787 :
返済不能なななしさん :03/03/18 21:15
>780 はい、ライセンス的なものです。といっても、VS.NET や Access に入っている 何らかのコネクタが無いと使えない、というのではライセンス以前の問題 でしょうが…。 MSDE は VS.NET や Access がなくてもダウンロードして使えます、として たとえば、よくある手持ち CD のリストを DB 化してみましょう、といった チュートリアルを MSDE で作りました、と。 ここで、勉強用等で作成するのはいいけどこれを運用するのには VS.NET などを買って運用用のライセンスを得ないといけませんよ、ということだと、 せっかく作ったシステムを出来上がったら破棄する、出来上がったら破棄する、 と賽の河原の石積み状態になってしまい 何か無駄なことをしていると思う-> やる気が削がれる->無駄に思える といった負帰還がかかってしまいそう なので…。
>787 M$のMSDEのページに、使用についてのQAが載ってるよ。 SQL鯖のデベロッパを買えば使っても良しみたいな事が書いてあるな。 たしか実売5万チョイくらいなはずだ? 金取って作るシステムなら、その程度の出費はしてもらうべきだろ。 それが無理ならフリーのDB使うしか無いんじゃね? しかし律儀なヤシだな、ボラクルをコピって使ってるDQN企業もあるのに・・・
>>785 やっぱRubyかな。今までずっとPHP使ってきたけどRubyで
やってみたら感動した。
客観的にいうなら、OOの機能の使いやすさとか、文字列操作のやりやすさとか、
言語仕様(Rubyの内部イテレータはデータ取り出しに便利だ)ライブラリの
使いやすさと充実度を考えると、他と方法よりずっとやりやすい。
掲示板の投稿記事の情報に、「公開」「非表示」の情報をつけることにしました。 これの情報は、別のテーブルに設定するのがよい? それとも、記事のテーブルに、表示非表示を設定するカラムをつけたほうがよい?
別テーブルにするメリットがあるなら別テーブル作成。 そうでなければ同一テーブルに追加。
メリットなんて曖昧な言い方じゃわからんだろ。 表示・非表示の区別の情報が失われていいならカラム追加でもいい。 それが失われるのがまずければ(全部の行が「表示」になると、「非表示」という区分がないように見える)マスタとして別テーブルに持つ。 別テーブル化すると結合が発生するから実行速度に注意。 要は正規化の問題。
>>793 有難う。シンプルにカラムを追加することにしますた。
795 :
デフォルトの名無しさん :03/03/22 09:56
>>790 データベース扱うプログラミングで難しいのは、パフォーマンスを確保することですな。
そのためにはオブジェクト指向の機能が強力でないとやりづらいと思う今日この頃でございます。
796 :
デフォルトの名無しさん :03/03/22 11:04
階層構造を実現するテーブル設計についてお知恵をお貸し下さい。 基本的な設計は次のように考えています。 Group(gid, gname, parent_gid...) User(uid, uname, gid, ...) このテーブルに対して更新するデータを前もって入力できるように拡張したいと思っています。 そこで2案考えました。 ・それぞれの1テーブルに有効日を持たせ有効レコードと無効レコードを制御する。 Group(gid, gname, parent_gid, yuukou_date...) ・更新受け付け用テーブルに蓄積させ定期的にマスタを更新する。 ただ同じレコードに対して複数の更新要求があります。 4/1 に User.gid を更新 4/2 に User.tel を更新など・・・ 更新要求の取り消しなども考えられます。 理論的には可能なんですが効率の良い設計を目指すためご意見頂けたら幸いです。
>>796 前もって処理する内容を書くテーブルを別に用意する。
Tasks( taskid, date, proeces_name)
process_name には、何かプログラム名なりクラス名なりを格納するようにして、
date の日付が来たら、それを起動するようにする。
その起動プログラムを永続化する方法は、また別途(適当にパラメータを格納するテーブル作って、
そのパラメータから process オブジェクトを作る Factory クラスを作るなりなんなりして)考える
のがよいよ。
単純にSQLの実行しかしないなら、process_name の変わりにSQLを格納してやるのもいいかも。 (その更新要求の編集とかをやるなら、この方法はダサくておすすめできない)
>>797 助言ありがとう。
更新要求の編集はあります。
更新要求間での整合性なども考慮しなくてはならないので難です。
Groupレコード追加有効日付 <= Userレコード追加日付など
SQLを格納するのって一般的ですか?
リレーションの持ち方とかどうするのでしょうか?
SQL文自体を格納するの?その方法は初耳だ。 うちはSQLのテキストはファイルに用意しておいて、そのファイルのパスをテーブルに登録、とかはやってるな。
>>799 ならば益々、797の方法で行きましょう。
802 :
デフォルトの名無しさん :03/03/28 11:10
>>754 > どのサブタイプテーブルを見に行ったらいいかを示す区分フィールドがあった方が好ましいです。
この区分フィールドって、文字列型と数値型どちらがよいか。
低レベルの質問ですみませんが、 ここのスレの方達は情報処理試験のテクニカルエンジニア(DB)についてどう思われてますか? 難易度とか、価値とか。 板違いなので、とりあえずこれ以上の質問はしません。
すいません、質問させて下さい。 例えば次のようなものをデータベースに格納する際にどのように 格納するのが自然(一般的)なのでしょうか? -------------------------------------------------------------------------- 書籍のタイトルとジャンルを保存する ただし、ジャンルは複数のジャンルを持つ時がある。 -------------------------------------------------------------------------- 今考えてるのは 書籍テーブル【書籍IDとタイトルを保持】 ジャンルテーブル【ジャンルIDとジャンル名を保持】 書籍ジャンル関連テーブル【書籍IDとジャンルIDを保持】 という設計です。 これで書籍が複数のジャンルを保持することは出来ますが、このやり方は 一般的にはどうなのでしょうか?
>>804 ごく一般的かつ普通の設計。
設計について、とくに正規化を学んでごらん。
>>805 >ごく一般的かつ普通の設計。
安心しました。サンクスです。
【データベース 正規化】で検索してみたらいろいろ見つかりました。
いまから勉強してみます。
ところでこういう正規化について勉強するのにお勧めの本って有りますか?
勉強は本でしたいタイプなんで…。
地味な分野だからなぁ・・・ 情報処理試験系の教本なんかいいんでない?
確かにデータベースってネットワーク比べると参考書籍少ないよな。 日陰ってイメージはまだ強いのかな。おれは結構面白いと思うんだが・・・・・・ >806 に薦める本としてはクリス・デイト『データベースシステム概論』 買うなよ(バイブルだけど)。図書館でコピーしろ。これ以上詳しい本はないから。
>>807 ,808
レスサンクスです。
【データベースシステム概論】ですね。
チェックしてみます。
>に薦める本としてはクリス・デイト『データベースシステム概論』
>買うなよ
これは、高いからですか?
何はともあれどっかで見つけて読んでみます。
どんな分野も設計って奥が深いっすねぇ(独り言)
>>809 こんなレベルで奥が深いとか言ってると先行ってびっくりするぞ。
>789
遅レスすみません。
とりあえず今は自分で練習用にCDの整理やらに使ってみようとしている
だけなので、お客さんに売ってお金を頂くような用途には使いません。
先日 .NET FrameWork SDK とそのサンプルを導入したら、見覚えのある
アイコンがタスクトレイに…。
ttp://www.microsoft.com/japan/sql/evaluation/msdeuse.asp ここの MSDE の使用条件をみると、どうやら ASP.NET+MSDE の組み合わせで
開発すれば、大丈夫なのかな?でも
「マルチアプリケーションデータベース」
というワードがいまいち理解しがたい…。要は、
「ASP.NETで作った複数のアプリケーションでひとつのMSDEサーバを共用しても良い」
ということなのでしょうか?
よく見てみたら、 .NET FrameworkSDK の MSDE 、 "MSSQL$NETSDK"って書いてある…。普通の MSDEと またちょっと違うものなのかな?
813 :
デフォルトの名無しさん :03/04/06 00:19
>>812 とりあえず、例のセキュリティホールは
ふさいどけよ。>>Slammerワームのヤシ
>813 .NET 用のMSDEサービスパックが落ちてたので早速落としてきました。 一応ブロードバンドルータがUDP1434番のインバウンドを捨ててくれるので 大丈夫そうですが、ルータが無かったら一日持たないのでしょうね。今でも たまにルータのログに現れます。
>>810 それが楽しくてプログラミングやってるようなもんですから(w
なにはともあれ現在正規化に関して夢中で勉強しています。
ヤバいですね、楽しい!
816 :
デフォルトの名無しさん :03/04/06 12:54
いまこの本を読んでるんだが。
Patterns of Enterprise Application Architecture(Martin Fowler)
ISBN: 0321127420
>>772-773 のようなクラスを作るのは Query Object パターンというんだな。
817 :
デフォルトの名無しさん :03/04/06 19:45
とりあえずRDBが背負った「null」という業についてはよく理解しておけよ >815 ここで嫌にならなければどんどん面白くなる。
>>817 >とりあえずRDBが背負った「null」という業についてはよく理解しておけよ
これはどういうことですか?
空文字列を[null]と判断するものと、区別するものがあるということでしょうか?
ちょっと検索ワードも思い付きませんし、ヒントだけでもよろしいでしょうか?
デイトの本を読め。読んでねーだろお前。彼は関係モデルの中にnullの存在を認めたがらない論客の急先鋒だ。 nullを許すといろんなこみいった問題を持ち込むことになるんだよ。
>>819 >デイトの本を読め。読んでねーだろお前。
はい、まだ読んでないっす。。(すいません。
とにかく読んだ方がよさそうですね。
明日にでも近所の大学に忍びこんで探してきます。
にしても高いっすね、あの本。
素直なのはいいことだ。 その態度に免じてもう一冊手ごろな価格のバイブルを教えてやる。 J.セルコ『プログラマのためのSQL 第二版』だ。 デイトの本より実践的だがはっきり言って読みづらい。関係代数、関係論理、3値論理、述語論理、コッドの論文、デイトの本などの予備知識なしでこれだけ読むのもつらい。
>>821 >素直なのはいいことだ。
>その態度に免じてもう一冊手ごろな価格のバイブルを教えてやる。
>J.セルコ『プログラマのためのSQL 第二版』だ。
>デイトの本より実践的だがはっきり言って読みづらい。関係代数、関係論理、3値論理、述語論理、コッドの論文、デイトの本などの予備知識なしでこれだけ読むのもつらい。
マジでありがとうございます。
こちらもチェックしてみます。
未だに『データベースシステム概論』が見つからないんですよ。
いくつかの大学に行ったのに…。
引き続き探してみます。やっぱ文系の学校にはなさそうっすね。
図書館にも無かったし、近々大きな図書館にでも行ってみます。
microsoftのアクセスで作ったデータベースがあるんですが、 それを丸ごとMySQL に移植したいのですがどうすればいいですかね?
>822 文系の大学にはねえな。理系の大学でもよっぽど大きくないとないんじゃねーか。 和訳の最新は第6版だからそこんとこも注意しろよ。読むなら最新版がいいだろう。 デイトでもセルコでも読んでわからんところがあれば教えたる。でもまず自分で読まないと教えんぞ。
>823 データをCSVファイルに吐き出して、それをMySQLでローディングする。
なんでみんなsage進行?
827 :
デフォルトの名無しさん :03/04/09 21:42
>>825 ありがとうございます。
その場合、クエリなどは改めて設定しなおすしかないのでしょうか?
持ち越せるのはテーブルのデータだけ、ということですかね?
828 :
デフォルトの名無しさん :03/04/09 22:35
>>827 MySQLに移せるのはテーブルのみ。
クエリとかフォームとかマクロとかは
別の言語で作り直すしかない。
やっぱりそうなんですね。 わかりました。どうもありがとうございました。
830 :
デフォルトの名無しさん :03/04/10 01:20
質問です。VB.NETからMySQLを利用しようとしているのですが、データアダプタを作成できません。 VB.NETでMySQLを使えている方、いましたらどうやっているか教えてください。
教えて君でスマソ データベースのデータが消えてしまうことがあるのはどんな場合が考えられますか? 全くの素人なのにデータベースについて仕事上で出されて困っています
>>831 PCが盗まれた時
っていうかEXCEL(でもゲームのセーブでも)のデータが消えてしまうケースを考えてみろ。
>831 さすがにそこまで低レベルでは誰もこたえる気にならんな。 とっととぐぐれ。
おとなしく手を引いて別の人にお願いすれ。
835 :
デフォルトの名無しさん :03/04/12 12:27
MSDEでデータベースを削除したいという人に、DROP 使ってでシコシコ消してくださいと いったら「MSDEのインストールフォルダに .mdf っていうそれらしいファイルがあるから、 直接消せばいいんじゃないの?」といわれますた。 .mdf って直で消しても問題ないのでしょうか?MSDEから見たらいきなりデータが消えて おかしくなりそうな気がします。 #それ以前にMSDEがロックしてて消せない?
Drop Databaaseでいいやん? つぅか、言葉取り間違ってないか心配。 「データベースを削除」と「データを削除」じゃ全然意味違うぞ?
>836 なんかAccessからMSDEにアップサイズするテストでガンガンデータベース 作りまくってたらしいのです。で、大量に出来上がったデータベースを消す方法 を聞かれたと。 その人、コマンド打つのが本当に嫌らしく『osqlを起動して作業してください』 「コマンドプロンプト?でもExplorerでそれらしい.mdfを消せばいいんじゃないかなぁ?」 と食い下がってきて。いったいいくつくらい作ったんだろう? 自分のPCに入れてテストしてる段階なんだから何でもやってみればいいのに…。
>>835 やめとけっていってやれ。
MSDEとはいえ中身はSQL鯖だぞ。
データベースの情報を別に持ってる。
>838 そのときはもちろん「DB全体の管理情報を別にもってるはずだからやめたほうが いいですよ」と言うておきました。でも、今にしておもうとやらせてみてどうなるか 見といたほうがよかったかも。どうせその人のPC上にあるテスト環境だし。
840 :
デフォルトの名無しさん :03/04/15 20:28
今レコード数が230万件なのですが、今後どんどん増えるそうです。 1000万件ぐらいまで数年ぐらいでいきそうなんだそうです。 現在Postgresで作りこんでいるんですが、何か問題は起きるでしょうか?? 動作が遅くなったりするでしょうか??
841 :
デフォルトの名無しさん :03/04/15 21:20
>>840 うちの Postgres 7.2は 4000万レコードまでテストしたけど問題なし。
結局は、テーブルの設計、投げる SQL の質、
インデックスの張り方と、適切な vacuum をしているかが問われるだけ。
それさえきちんとやっておけば、全く問題なく使える。
ML では一億レコード超えるケースも紹介されてたし。
842 :
デフォルトの名無しさん :03/04/15 21:27
>>840-841 つーか、使い方の問題じゃない?
オンラインで同時実行トランザクションが多いと。。。
843 :
デフォルトの名無しさん :03/04/16 10:00
つかぬことをお尋ねします・・ SQLサーバー7.0についてるEnterprise Managerで MSDE2000を操作できますか
844 :
デフォルトの名無しさん :03/04/16 12:30
SQLServerが入っていたマシンが突然死んでDataフォルダしか(mdf,ldfしか)残って いないのですがこのデータをなんとか復旧できないでしょうか。 復元はbakしか駄目みたいですし・・・ どなたかお願いします。
845 :
デフォルトの名無しさん :03/04/16 12:32
DELETE 頭の悪い奴ら FROM 人類
847 :
デフォルトの名無しさん :03/04/16 12:56
DELETE文の構文すら理解できていない>845タソに萌え♪
(^^)
853 :
デフォルトの名無しさん :03/04/19 10:11
DELETE データベース Part2 where レス番号 = 845
∧_∧ ( ^^ )< ぬるぽ(^^)
∧_∧ ( ^^ )< ぬるぽ(^^)
( ・∀・) | | ガッ と ) | | Y /ノ 人 / ) < >__Λ∩ _/し' //. V`Д´)/ (_フ彡 / >山崎渉
857 :
デフォルトの名無しさん :03/04/23 07:26
コッド博士、お亡くなりになったのか。。。場末のRDB使いとして、ご冥福をおいのりします。
859 :
デフォルトの名無しさん :03/04/24 21:53
860 :
デフォルトの名無しさん :03/04/25 01:43
質問なんですが、 大量のテキストデータ(数百MB、日本語)があって、それをデータベースで 管理したいのですが、どのソフトがお勧めですか? 完全一致検索や正規表現検索をできるだけ高速で検索したいので、それに対応 した機能が付いているものが良いのですが。
正規表現とかいい始めるとインデックスやワードディクショナリが 利かないからテキストファイルに落として grep で検索すんのと 変わんない。むしろ変なオーバーヘッドかかんない分速いと思われ。
>>860 数百MBてんなら、実メモリに全部乗せることもできるね。
どちらにしてもメモリをうまく使えるツールが速いと思われ。
タプルサイズの制約に引っかからなければ、いがいと
PostgreSQLもいけるんじゃないだろうか。
866 :
デフォルトの名無しさん :03/05/06 08:26
Approach2000 を使って DB の勉強がてらカラオケ My唄本を作ろうとしています。 テーブル構成を 曲名Tbl(曲ID, 曲名) 個人名Tbl(人ID, 姓, 名) 団体名Tbl(団体ID, 団体名) 所属団体Tbl(団体ID, 人ID) カラオケTbl(曲ID, 選曲番号, キー) 歌手Tbl(曲ID, 人ID) といった具合に作ろうと考えているのですが、ここで歌手に 個人名でなく団体名が入る場合(Star Light:光GENJI など)、 一体どのように処理してやるのがよいのでしょうか。 "団体名Tbl" をなくして、全部 "個人名Tbl" にいれてやれば よいのでしょうが、これに団体名が入るとどうも気持ち悪いと 思うのです。 "団体名Tbl"、"個人名Tbl" と分けた状態でうまく立ち回る 方法や、別のもっと(゚д゚)ウマーなテーブル構成のアイデア等を お分け下さい。よろしくおねがいします。
>866 そのデータをどう使うかによる。 個人と団体ってのを別の要素として使う必要があるなら分けるべきでせう。 その場合は、曲名テーブルに個人、団体それぞれのIDを持てばいいだけ じゃないの?
868 :
デフォルトの名無しさん :03/05/07 01:41
しっくりいかない原因はテーブルの命名にあると思う。 カラオケドメインにおいて、個人と団体が異なる概念であるというのは想定しにくい。 両者を「演者」として扱うべきでしょう。 曲 (曲ID, 名前, フリガナ) 演者 (演者ID, 名前, フリガナ) その上で、個人が団体に所属しているという情報がほしいなら 個人と団体のテーブルを設けよう。 個人 (個人ID, 個人名, フリガナ) 団体 (団体ID, 団体名, フリガナ) 所属 (団体ID, 個人ID) 加えて、個人−演者、団体−演者の関連付けのテーブルも設けるべし。 個人演者 (演者ID, 個人ID) 団体縁者 (演者ID, 団体ID) 英語で考えたほうがよいよ(performer とかね)
曲名テーブルの中にカラオケTblと歌手Tblの情報を入れてしまうことは出来ないかな?こんな具合に。
曲名Tbl(曲ID, 曲名)
カラオケTbl(曲ID, 選曲番号, キー)
歌手Tbl(曲ID, 人ID)
↓
曲名Tbl(曲ID, 曲名,人ID(団体ID)・選曲番号, キー)
曲と歌手は1対1のはずだし、曲IDと選曲番号も1対1になるはず。
カラオケTblってのがセガとかカラオケの種類ごとに複数あって、
それぞれ曲IDに対する選曲番号が違うとかじゃないならこれでいいと思うんだが。
あとどうしても個人と団体を区別したいのなら、テーブル分けないで個人・団体フラグでも持ったほうが良くないかな?
違うテーブル同士だとIDの重複防ぐロジックが必要になるぞ。
個人名Tbl(人ID, 姓, 名)
団体名Tbl(団体ID, 団体名)
↓
演者Tbl (演者ID, 姓[団体名],名,個人・団体フラグ)
で、最終的には
曲名Tbl(曲ID, 曲名,人ID(団体ID)・選曲番号, キー)
演者Tbl (演者ID, 姓[団体名],名,個人・団体フラグ)
所属団体Tbl(団体ID, 人ID)
と3つのテーブルになる。
演者Tblに所属団体列を入れることも考えたが、
それだと2つの団体に所属している場合とか厄介になるんで止め。
>>868 それだと演者Tblと個人・団体Tblで名前が食い違う可能性ない?
>>869 真心ブラザーズ(団体,演者)の倉持陽一(個人)は、
ソロの時にはYO-KING(演者)と呼ばれてるんですよ。
>868 > その上で、個人が団体に所属しているという情報がほしいなら > 個人と団体のテーブルを設けよう。 演者Tblに個人で活動するアーティストも登録して、 団体/個人区分を持たせれば良いと思う。 例)「演者Tbl」データ例 1,'光GENJI',1 2,'荒井 由実',0 3,'松任谷 由実',0 こうすると、一人の個人が複数のペンネームを持っても 対応可能という副次的メリットもある。 >869 > 曲IDと選曲番号も1対1になるはず。 HyperJOYとcyberDAMとU-karaでは、同一の曲に対して 選曲番号やキーが違うと思うのだが…
レスポンスありがとうございます。 >867 >曲名テーブルに個人、団体それぞれのIDを持てばいいだけ 曲名Tbl(曲ID, 曲名, 個人名ID, 団体名ID) という形式は実は考えていました。しかし、デュエット曲だと 曲名と人名が 1:* になってしまうので、今の構成に至ったのです。 #221B戦記など 水木一朗、大槻ケンヂ、神谷明、宮村優子 と4人に… >868 >両者を「演者」として扱うべきでしょう。 なるほど、演者テーブルを中間にはさむのですね。これなら、>869 で仰る個人・団体のID採番の仕組みを作らなくともうまくいきそうです。 また、例えば [放っとけないのさ, 冬馬由美] などと野暮ったいことをしなくても、 [放っとけないのさ, ウルド] のように役名を直接使え、中々よさそうです。 >869 >曲名テーブルの中にカラオケTblと歌手Tblの情報を入れて >867 へのレスのとおり、曲名・人名・選曲番号を分けたのは デュエット対応や複数カラオケマシン対応のためなのです。 今のところ HyperJoy あたりで作ってみようとしていますが、 今後マシンが増えるたびに横に伸びていくと表計算データベース道 まっしぐらになってしまうので…。また、虫食いが多くなり無駄も増えると 考えます。 団体名を人名Tblに統合するのも一案として考えていますが、 それぞれ分けて表示したいときどう分離するかが問題です。 フラグ付けの案も考えてみます。
改行多すぎエラーで説明結構削ったんで誤解された点もあったか・・・
>>871 >HyperJOYとcyberDAMとU-karaでは、同一の曲に対して
>選曲番号やキーが違うと思うのだが…
一応これは考慮してた。
>カラオケTblってのがセガとかカラオケの種類ごとに複数あって、それぞれ曲IDに対する選曲番号が違うとか(ry
カラオケTblの中に「カラオケマシン」ってなかったんで1機種だけの仕様かとオモタんよ。
まあ、仮に現時点では1機種だったとしても、将来の拡張性からも分けといた方がいいだろうね。
>>872 ガンガレ。
自分もDB歴1年半程度で実際の設計はしたこと無かったから今回の結構いい勉強になったよ。ありがと
複数機種にまたがって考えてるとは思わなかったよ。
>>866 がどこまで仕様を広げて考えてるのか分からないけど、
曲 (曲ID, 名前, フリガナ)
演者 (演者ID, 名前, フリガナ)
の範囲で普通は大丈夫だと思う。
カラオケ機種ごとに曲番号の採番ルールは異なるし、
無駄に複雑になるだけのような気がする。
個人と団体だけに範囲を絞っても、次のような構成もある。
(
>>868 では話を簡単にするためにあえて無視してました)
・個人と団体からなる団体
ex. 坂上二郎とユニコーン
・団体からなる団体
ex. ZYYG, REV, ZARD & WANDS
この場合、アナリシスパターン(Martin Fowler)にある Party パターンとして扱うとうまくいくことが多い。
Partyパターンとは、個人だろうが組織だろうがかまわずにPartyとして認識すること。
前述した「演者」はPartyパターンの例です。
おまえら、データベース超初心者がこれからデータベースを構築するにあたって 専門用語等を一から勉強出来る資料を教えろ。
まずはおまえが、日本語をきちんと勉強してきてからだ。
>>875 データベース構築は
各業界に関する「常識」ってのを知らなきゃ
知らないなりに、聞き出すってのも必要だ
>877-878 釣りには徹底放置でおながいします。
>>866 データベースの正規化の講義受けてこい。
釣り注意
882 :
デフォルトの名無しさん :03/05/09 23:50
>>880 まずDBありきという考え方にはどうも...
>>882 同意。
基本設計でDBのER図を記述する御仁がいるが、あれはやりたくないね。
基本設計の成果物
ドメインの概念を表現するクラス図
詳細設計の成果物
クラス図で記述したクラスをDBに格納するためのテーブル設計
→ データベース設計で言うところの論理設計
というのがきょうびの設計作業の自然な姿。
せっかくOOPLを使えるんだから、メリットを生かさないとね。
>874 一応今後の展望として、 ・対応機種を増やす ・曲名Tblなどを利用してCDリストをつくってみる ・アニメ・ドラマ等の番組Tblを作って、主題歌などの属性がわかるようにする ・季節Tblを作って、季節感のある選曲を心がける など少しずつ、やる気が続く限り無駄に拡張していこうと考えています。 とりあえず、今は連結Tbl以外の曲名やら人名やら団体名テーブルからシコシコ 作って、連結の仕方は追々考えよう、という方針で作り始めますた。 >874 >この場合、アナリシスパターン(Martin Fowler)にある Party パターンとして扱うとうまくいくことが多い。 >884 >基本設計の成果物 > ドメインの概念を表現するクラス図 >詳細設計の成果物 > クラス図で記述したクラスをDBに格納するためのテーブル設計 > → データベース設計で言うところの論理設計 旧一種とシスアドで勉強したっきりだったから、このへんの知識はまったくなかった。 ドメインと聞くとNTドメインかDNSドメインくらいしか思い浮かばんです。 会社ではAccessさわってから一週間くらいの営業さんがちょっとした電話応対 履歴管理アプリ作ってたけど、もともと大したセンスの持ち主だったのでしょうね。 こっちは趣味のDBでこれだけ難儀している。もっと精進しないと。
>>885 データベースに必要な項目ってさあ、
使用するアプリによって影響されるから
データベースを先に設計するんじゃなくて
使用するアプリを設計して必要な項目を洗い出して正規化して
(パフォーマンスとか考慮して非正規化する場合もあるけど)
それでテーブルが出来上がるって流れが一般的でしょ。
アプリの要件が確定する前にテーブル設計しちゃうと
アプリ作るときに必要な項目が新しく出てきたりすると面倒だろ。
あと、制約も変わる可能性もあるから最初からDB設計やり直しになる可能性だって
ないとは言い切れないんだから。
>>886 んーと、そういうふうに最終的なoutputから演繹的に設計していく
手法(今だったらXPとか)もあるけど、今はまだ、ビジネスモデリングを
先に行ってそこからアプリとDBそれぞれの設計に落とし込むDOA、
あるいはOOの方が主流じゃないかな。
要件分析が先っていうのはその通りだけど。
>>887 確かにそういわれればそうなんだけどね。
俺のやってきた仕事では、
ユーザが素人だからか画面と帳票ぐらいしか決められないことが多くて
結局、後からI/Oを元にDB設計しなおした記憶があったんだけど。
うまくやれてる所もあるんだね。
>データベースを先に設計するんじゃなくて >使用するアプリを設計して必要な項目を洗い出して正規化して >(パフォーマンスとか考慮して非正規化する場合もあるけど) >それでテーブルが出来上がるって流れが一般的でしょ。 おぃおぃ、マジカョ... も一回(というかしたことなさそうだが) システム設計の勉強することをお勧めするよ。
>>889 システム設計の手法なんて山ほどあるけど全て勉強したの?
ちなみに某大手外資の研修では
>>886 みたいなこと教えてるね。
全く違うアプローチでの設計の研修もやってるけど。
実際のところどういうやり方がいいのかねえ。
ま、アプリ作る前に基盤作って先にデータベース構築する場合
>>886 のやり方は無理だけどね。
たしかに山ほどあるけど、 DBシステム開発なら パッケージ構築でない限り、 アプリ主体のシステムはどうかと思う。 昔も今も基本はデータ主体じゃないかな。 (ワークフロー→DFD→モデル設計→・・・AP開発) それで駄目なら、といった場合に 他の方法に移行するということだと思う。 DBシステムにおいてのAPの本来の 役割はDBとのI/Oだから、 極論ユーザ(オペレータ)がSQL を使いこなすことができたら APが無くてもいいことになる。 その環境下でも回るようなDBモデル開発、 そこまでとは言わないまでも、そのように 意識されたDB構築の下で行うAP開発は、かなり 作りやすいはずだし、拡張性も高くなる。 PGもビジネスロジックは考えなくてもよくなり、 技術的な面において、DBへのI/OのパフォーマンスUP や、UI(使いやすさ)の開発に専念できる。 以上理想論だけどね。 しかしこれを意識した方がいいと思う。 この手の話題は収集つかなくなるから、 これでやめるよ。
892 :
デフォルトの名無しさん :03/05/25 12:49
ADO.NETでデータベースを扱いたいと思って トランザクション処理で詰まってしまいました。 接続型モデルでは更新すべきレコードを アプリ側の画面に表示する際、 データベース側の対象レコードをロックして 排他制御を行うのですが、 非接続型モデルではDataSetというメモリ上の レコードに対して更新したりするようなのですが、 トランザクションをどうすればいいのかわかりません。 接続型モデルと同じタイミングでデータベース側の ロックを行えば、DataSetを扱う利点がかなりなくなってしまう気が しますし、行わずにDataSetをデータベース側のレコードに反映させる時に 競合を検出するやり方だと、アプリの利用者側からすると、 既に更新すべきデータをアプリに入力した後に検出されるので かなり不便だと思います。 非接続型モデルでのトランザクション処理の開始と終了は どのタイミングで行えばいいのでしょうか?
まず読みやすい文章とは何か、どのようにまとめれば良いかについて 考えてください。
>>892 ロックを複数のリクエストにまたがって保持するのはかなり危険です。
というのもWEBの利用者はこちらが用意した終了処理を踏まずにいきなりブラウザを終了するからです。
ですので「非接続型モデル」がかなり不便だというのは仕方がないことなのです。
>894 レスありがとうございます。 かといって更新予定のレコードに ロックをかけないというのは すごく無謀な気もするのですが、 非接続型っていうのは そういうものなのでしょうか?
896 :
デフォルトの名無しさん :03/05/26 09:10
画像を何十万件と大量に保存したいです。 RDBに保存しても大丈夫ですか? BLOBとかいうやつでしょうか。
897 :
動画直リン :03/05/26 09:11
899 :
デフォルトの名無しさん :03/05/26 21:18
Access2000のフォーム(フロントエンド)からSQL Server(バックエンド)に 書き込みって不可能ですよね? だからと言って、DAOを使ってSQL Serverへは接続出来そうもないし。。。 こういった場合、どうすれば良いのかアドバイスいただけませんか? データが2GBを超えるDBを構築するのでAccessは使えないし。。。
>Access2000のフォーム(フロントエンド)からSQL Server(バックエンド)に >書き込みって不可能ですよね? 出来る >だからと言って、DAOを使ってSQL Serverへは接続出来そうもないし。。。 出来る とりあえず Access 使うなら MDB -> ADP DAO -> ADO に移行しましょう。
901 :
デフォルトの名無しさん :03/05/28 12:24
SQLServer6.5SP5a使っています。 最近頻繁にインデックスが壊れ、エラー806:データベース***の論理ページ***の 仮想ページが見つかりません。がイベントログに出ます。 インデックスを再構築すると直るのですが、しばらくするとまた壊れます。 ハードの検査もしてもらったのですが、異常はありませんでした。 何か原因として考えられることはありますでしょうか? OSはWinNT4.0SP5です。
902 :
デフォルトの名無しさん :03/05/28 13:48
救済
903 :
デフォルトの名無しさん :03/05/28 13:56
ODBC経由でCHAR型にバイナリデータを書き込めますか?
904 :
デフォルトの名無しさん :03/05/28 14:30
みなさんがRDBMSソフトを選定する基準は何ですか? PodtgreSQLにすべきか、Firebirdにすべきか、MySQLに すべきか迷う状況が生まれまして・・・
>>904 機能(実現可能性とキャパシティ)と価格。
どれもこれも変わらなければ近くに詳しい人がいる順に優先順位を高くする。
906 :
デフォルトの名無しさん :03/05/29 15:52
ポスグレのスレッドが丸ごと消えてますが、もしかして落ち目ですか? MySQLの方が勝ったわけかな。 ま、自分はFirebirdしてるとこだから直接関係無いけど。
907 :
デフォルトの名無しさん :03/05/29 17:17
独学でORACLE MASTER Silverを勉強し、試験受けたいんですがどんな勉強方法が最速ですか? MASTER保持者の方々はどんなプロセスで取得しましたか?
>907 テキスト見ながら使って覚えるのがイチバソでわ。
>>907 とるだけならiStudyと赤本を丸暗記されるのが良いかと。
>>904 PodtgreSQLはサポートしてくれる会社があるよ。
>>911 MySQLにも、Firebirdにもサポート会社はあるよ。
本当は実際に触って覚えるのが良さそうだけど丸暗記でもいけるみたいですね〜。 就職用に有利かなーと思って受験を考えてるんですがSilverだとそれほど有利ではないんでしょうか? Silverより上は金銭的に・・・。 会社入ればサポートしてくれる所あるのか。羨ましい。
>>913 丸暗記で十分いける(いまやってる)。
2週間でGoldまでの4科目・・・あとから絶対役に立たないな。
正直、Silverのレベルはあったからといって何にも有利にならんと思う。
これくらいできなきゃ実際の開発では何もできない気がするよ。
最後の一行が激しく読み間違えに見える。
>913 もちろん、何も持ってないよりは万倍マシだけど、残念ながら有利に 働くほどの効果は無いといえる。 受験料タカーの割に効力はマズー。 ベンダー系の初歩の資格は概ねこんなかんじ。
916 :
デフォルトの名無しさん :03/06/04 09:47
データの更新を取引先とでピンポン的に行うが為に、 相手がどの項目を変更したか判るようにしたいという要件があります。 これを満たすのに皆さんならどのようにデータベースを構築しますか? 自分が考えたのは以下の2つです。 (1)各テーブルの先頭に更新フラグの項目を設ける。 テーブルの項目数が5としたら"00000"を初期値とし、 例えば3番目の項目が変更された時、その値を"00100"とし格納する。 (2)各テーブルに項目データバージョン("0":前回のレコード、"1":最新のレコード)を設ける。 更新された時はバージョン"0"のレコードを削除し、 現在"1"のレコードを"0"に変更し、"1"のレコードを新規作成する。 DBMSはOracle 8iです。 ご意見やもっとスマートな方法があればお教え下さい。
>>916 僕ならフィールドに状態は持たさず、
更新の履歴自体を1レコードとする(または別テーブルとする)
更新日時、更新ユーザ、更新種別、更新内容みたいなフィールド
を追加する(もしくは別テーブルで管理)
まぁ要件がすべて出ているわけでないので、
よくわからないけど。
ピンポン的って、インタラクティブで、オンデマンドってこと?
>>917 ピンポン的つーのは「卓球なんて死ぬまでの暇つぶし」とか
「飛べねえ鳥もいるってこった」とかゆーこと。
919 :
デフォルトの名無しさん :03/06/04 12:56
ビット演算や配列などを利用して、1フィールド内に複数の属性を持たせるのって普通なのか?
920 :
デフォルトの名無しさん :03/06/04 12:59
921 :
デフォルトの名無しさん :03/06/04 17:49
1つのフィールド内に複数の属性をもたせると substring やら ビット演算 やらを やらなければならず、集合演算時コストがかかる (容量は抑えられるけど・・) cなどでやるデータ処理を行う場合、ビット演算は高速化につながることもある
可読性は確実に落ちるな…
923 :
デフォルトの名無しさん :03/06/04 19:50
>データの更新を取引先とでピンポン的に行うが為に、 >相手がどの項目を変更したか判るようにしたいという要件があります。 なんでTCP/IPを使わんのだろうか。 データベースで通信を始められると鯖側の負荷どどーんと上がって 接続ソフトいっせいにもっさりするんだが。
>>918 そういえば「言葉のキャッチボール」って、相手が何か言ったら
それを受け止めるためにすごく苦労させられることだと思って
いた香具師がいた。そいつは運痴だった。
>>923 指摘していることが謎なのだが・・・
別にデータベース間で直に通信するなんて書いてないだろう?
単に、
取引先から何かの手段で届いた情報を反映する。
こちらから送った情報を反映する。
・・・
って繰り返されるんだけど、手続きがシーケンシャルではなくて
ランダムに更新項目が変わるって事だけかと思ったんだけど。
>>916 漏れも
>>917 みたいに更新履歴みたいなのを別にもっておくってのを選択しそう。
>>925 だから、それを直接通信するという。
妥当だと思われる設計:
Aがネットを通じてBから注文を受け取ると、
SQLを組み立ててデータベースを更新し、
ネットからBに領収書データーを発行、
Bがデータを受信してSQLを組み立て、自分のデータベースを更新する。
もし、途中で切れたらお互いにロールバック。
926に補足: たとえ一台のマシンを共有するんであっても、キャッチボールが あるときは更新の前に双方でプロセス間通信するべきだよ。 データベースは通信機構じゃないからね。通信は通信機構でやり、 データ処理はデータベースでやる。当然。
レスありがとうございます。
説明不足の個所を書き足します。
ピンポン的というのは
1.A氏がレコード作成
2.B氏が詳細なデータを入力
3.A氏がデータの一部を修正
4.B氏がさらにデータの一部を修正
※それぞれの作業終了時にメールで相手に通知
といったような業務の流れを意味しています。
相手が変更した項目が何であるのかを文字色を変える等で、
画面で判るようにするのが今回の要件です。
更新前のデータの内容や前回より以前の履歴は必要ありません。
データの更新はWebで行うとします。
>>917 さんの方法を採用すると
入力レコードテーブル
入力レコード番号(PK)、データ1、データ2、データ3、データ4、データ5・・・
入力レコード更新テーブル
入力レコード番号(PK)、更新ユーザID、更新日時
入力レコード更新詳細テーブル
入力レコード番号(PK)、更新項目名(PK)
こんな感じでしょうか?
>>926-927 イマイチ意味が解りません・・・
929 :
デフォルトの名無しさん :03/06/05 15:05
>928
>>926-927 >イマイチ意味が解りません・・・
DBを共有メモリみたいに使うなってことじゃない?
A氏、B氏のフロントエンドがそれぞれ別個のアプリケーションとして存在し、A氏の変更を
B氏のフロントエンドツールがリアルタイムに受信して反映できるとかそういうイメージでは?
質問が、二つのデータベースの同期を取るような 案件だと思われましたね 入力レコード番号、シーケンス、入力者コード、データ1、データ2 入力レコード番号とシーケンスでプライマリって事で 良いんじゃないの? 二人しか居なきゃ、最後から2個のデータを取得して 変更されているモノに色を付けるだけだと? レコード数が多くなるのがイヤなら トリガーで削除すれば良いかと思うし 削除しない方が履歴が取れて良いかもね
932 :
デフォルトの名無しさん :03/06/06 07:41
文書をフィールドの型情報とフィールド値情報に分けて、 文書データ自体は「key=value」形式で持てばよいんじゃないかな。 文書のフォーマットを以下のようなモデルとする。 文書型(文書型ID, フィールド名, フィールド型ID) フィールド型(フィールド型ID, 値型) 文書データを以下のようなモデルとする。 文書データ(文書ID, フィールド名, バージョンID, データ, 入力者) ある文書IDで指定された文書の更新履歴を出す場合は、 SELECT フィールド名, バージョンID, データ, 入力者 FROM 文書データ WHERE 文書ID=12345678 ORDER BY フィールド名, バージョンID
933 :
デフォルトの名無しさん :03/06/06 10:55
「履歴の保存がない」ってことなんで、イージーに、 文書データ( ID、最終更新者、項目A、項目Aの状態、項目B、項目Bの状態、・・・) って感じでもいいんじゃないの、もうこのさい。
いや、この際データベースに対して変更したら 相手先に『項目Aを変更しました』って電話すれば (・∀・)イイ!と思う。
>934 其れは…せめて IPmsgとか電波とかマジックパケットとかPingOfDeathとか伝書鳩とか のほうが面白みがあるよ。
936 :
デフォルトの名無しさん :03/06/30 13:44
板作るほど必要じゃないと思うが
もう何がなんだか・・・。
942 :
デフォルトの名無しさん :03/07/01 03:50
>>941 データベース板ということになったみたいです。
これ以上この板で続けるのはまずいですね。
>942 いや、未だそういうわけには…
944 :
デフォルトの名無しさん :03/07/01 20:36
テクニカルエンジニアの勉強でSQLを実際書いて動かしたいんですが、 どのソフトがいいでしょうか?
945 :
コミュカレ :03/07/01 21:34
DBMのオープンソースです。DB2/DB3 だったらいいかも
http://www.ecopig.jp/comucale/index.htm 一部の限られた組織等でしか利用されていなかったグループウェアを、
一般ユーザーも利用できるインターネット上のパーソナルグループウェアへ
「コミュカレ」はフリーソフトです。
ゴミの収集日等、地域の皆様どおしでも使えます。使い方はユーザー次第!!!
いろんな活用の仕方が考えられます。
その便利さを是非お試しになってみて下さい。
947 :
デフォルトの名無しさん :03/07/01 22:43
GNUのGDBMの初心者サイトとかってありますか? GDBMについて詳しくわかりやすく載っているサイトがあれば 教えてください。
948 :
デフォルトの名無しさん :03/07/01 22:45
DB板はデータベース板でOKなのかな。 もしそうなら巡回対象にするんだけど。
951 :
デフォルトの名無しさん :03/07/02 00:08
ありがと。 まだ微妙だけど書き込みまくってデファクトにするか。
953 :
デフォルトの名無しさん :03/07/04 11:43
質問があるのですが、 AS400上にあるDB2にデータベース及び複数のテーブルが存在しています。 このテーブル群からCREATE TABLE文を取得したいのですが、そういった ツールはありますでしょうか。 ASは顧客元にあり、そこのITの話によれば、DB2のCREATEをはけるツールは契約していない とのことでした。 そこで、ODBCなどで代行は可能ではないかと思った次第です。 まとめますと、 CSEのようなODBCで接続するデータベースツールで、テーブルのCREATE TABLE文をはける ツールはありますか?
954 :
デフォルトの名無しさん :03/07/04 19:42
タイムスタンプフィールドに、「今日」指定みたいなwhere句はどう書きますか?
955 :
デフォルトの名無しさん :03/07/04 19:54
DBによって違う
>>953 別にツール使わなくてもデータディクショナリを照会して適当にDDLはかせたらいいんじゃない。
957 :
デフォルトの名無しさん :03/07/07 20:39
テスト
DB板ダメダメ。 技術っているいるのに、Oracle最高とか そんなことばかりで、さらにマ板や他の 知ったかばかり集まり、実際の運用とか 制御スクリプトとかの話題がない。 スレ立てたらドラゴンB厨が荒らしまくるし、 ギスギスしてもいいからム板がいい。 と言ってももう板違いか...
なんか変な言葉になった... s/技術っているいるのに/技術って言っているのに/
様子見てる奴が多いんだろ
低レベルな質問で申し訳ないのですが、履歴を持つ為に注文毎にテーブル増やすのは変ですか? 一回の注文で200種類ほどの内訳があるのですが、どうしていいものか悩んでます。
>>962 >どうしていいものか・・・
まずは正規化してみろ。
と、先輩が言ってますた。
とりあえず、正規化というものについて調べてみます。ありがとうございました。
>>962 俺だったら正規化して
注文の明細部分のキーを含む履歴テーブルを作成
データの追加,編集が小規模(1〜2クライアント)なら
日付(時間を含む)をキーに大規模なら他にキーを作成すると思う。
>>962 > 履歴を持つ為に注文毎にテーブル増やすのは変ですか?
ひとつ注文が入るたびにテーブル追加するの?それだったら変。
単にひとつ履歴テーブル作っておいてそっちに移すというのならよくやる。
注文の明細が別テーブルならそっちの履歴テーブルも作る。
>>962 悪い例として言っておくと、そういうことを俺はやった事が有る。
仕事じゃなくて個人的にだけど。。
その時は後になって後悔したなぁ。設計段階では気にならないかもしれないけど
プログラムを実装しているとめんどくさい事に気づく。
それからはもうやらなくなった。
あぁ、今思えば恥ずかしい設計だった。
テーブルなどの命名規則ってどういうのが一般的なのでしょう?
>969 テーブル: tbl_hogeMoge フォーム: frm_hogeMoge クエリ: que_hogeMoge レポート: rpt_hogeMoge マクロ: mcr_hogeMoge
__∧_∧_ |( ^^ )| <寝るぽ(^^) |\⌒⌒⌒\ \ |⌒⌒⌒~| 山崎渉 ~ ̄ ̄ ̄ ̄
972 :
デフォルトの名無しさん :03/07/16 09:49
ADOとSQL鯖、言語はVBを使ってます。 皆さんは、鯖へのConnectionってどのタイミングで切断してますか? アプリケーション起動時に接続して、終了時に切断する、つまりアプリケーション起動中繋ぎっぱなし なのか、それとも、接続が必要になった時だけ繋いで、処理が終わったらすぐ切断するのか。 どっちが普通なのでしょうか?
ライセンスとクライアント数による。 普通はつなぎっぱなしでいいと俺は思う。
あぁなるほど、その辺によって変わる訳ですね。 今までせいぜいクライアント5台程度のシステムしか触ったことが なかったので想像が及びませんでした。
OSはXPなんですが、 TTSSH、TeraTerm Pro をインストールして、接続までできたんですが、 文字が全く入力出来ないんです。 キーボードの設定が悪いのでしょうか? どうすれば文字が打てるようになるのか教えて下さい。
質問です。 表がずれてしまっていてすみません。 レシート番号、日付、時間、小計、税金、預かり金、お釣りのデータが入ってるのは、 1行目と3行目だけです。 レシートに記載されてる項目を表にした。 <表1> レシート 日付 時間 商品名 単価 数量 小計 税金 預かり金 お釣 番号 1 11:30 ホットコーヒー 300 1 600 30 1000 270 チーズケーキ 300 1 2 2003.6.17 12:01 アイスティー 300 1 1400 70 2000 530 ホットコーヒー 300 1 ハムトースト 400 1 シフォンケーキ 400 1 ●各レシートは、レシート番号と日付により一意に決まるので、{レシート番号、日付}は 候補キーである。他に候補キーはないので、これを主キーとした。 ●税金は、小計*0.05で計算する。言い換えると、税金は小計に関数従属する。 ●関数従属は他にもある。
上の続きなのですが、 「問題1」 表1を以下の表2と表3に分解した。 (1)表2、3の主キーを示せ。 (2)この分解は、無損欠結合分解か? (3)表2、表3は第一正規形か? <表2> レシート番号 日付 商品名 単価 数量 1 2003-6-17 ホットコーヒー 300 1 1 2003-6-17 チーズケーキ 300 1 2 2003-6-17 ジンジャエール 300 1 2 2003-6-17 ホットコーヒー 300 1 2 2003-6-17 ハムトースト 400 1 2 2003-6-17 シフォンケーキ 400 1 <表3> レシート番号 日付 時間 小計 税金 預かり金 お釣り 1 2003.6.17 11:30 600 30 1000 270 2 2003.6.17 12:01 1400 70 2000 530 <問題2>表3は、第三正規形でない。その理由を示せ。 この問題の答えを教えて下さい。お願いします。 (上の二つの表もずれてしまっていてすみません)