データベースプログラミング全般スレ

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
NGNG
データベース板もあるが、あそこは過疎板だからこっちに立てました。
データベース関連のプログラミングならな〜んでもOK。
色んな話をしませまうる号。
2005/11/07(月) 00:18:54
データベース実装は素人でもいいです
でもトランザクションについてはしっかり身につけてほしいですね
あ、トランザクションの使い方、じゃないですよ・・・
2005/11/07(月) 14:59:22
>86
それだけではないでしょ。
ユニークていうのが、あいまいで使いたくなくて、唯一つのものにするけど、
唯一つのものが、主キーだけである場合、インデックスに使えるのは主キーだけになってくるから、
その場合、中間部分に意味のあるものはだめ。
例えば、年月日時で各桁に意味を持たせた場合、月ごととか中間一致は検索できない。
この場合、分類コード項目を新たに作る必要がある。
これを意味のない連番と表現されているようだけど、これもあいまいだと思う。
2005/11/07(月) 15:21:33
>最小分類インデックスに使えるのは
 ~~~~
2005/11/08(火) 02:24:22
年月入れる列って、日付型で1日固定として定義していい?
普通どうやる?
2005/11/08(火) 07:20:40
俺は一日固定。でもどうせ年月しか使わないんだから日にちはどうでも良いんだよな。
2005/11/08(火) 20:37:10
標準でXML並に日時型欲しい
2005/11/08(火) 21:01:03
>>112
アクセスならあるけど?
2005/11/08(火) 21:17:03
日時型ってyyyy/mm/dd hh:mm:ss?
2005/11/08(火) 22:01:41
gYear, gMonth, gDay
gYearMonth, gMonthDay
2005/11/09(水) 20:13:12
durationってのもあるな
イラネつったらいらんけど統一されるとありがたい
他人が使わなかったらあんまり意味無いけど
117>>105
垢版 |
2005/11/10(木) 22:25:27
>>106
書き方まずかったけど、>>105 のデータベース実装は、
データベースシステム自体の実装の話ね。例えばオラク
ルで働いてるアーキテクトとかプログラマーとかのこと
を言っている。データベースを使う人の話じゃないよ。
2005/11/18(金) 22:26:57
O/Rマッピングを勉強中の者です。
DataMapperに関しての質問なのですが、
安直な実装では、DataMapperは識別子を受け取りドメインオブジェクトを作って返すことになるかと思います。
ここで、仮にオブジェクトの全ての値を利用するわけではなく、(状況によって変化する)
かつ、パフォーマンスを考慮して最低限のロードにとどめたい場合、
DataMapperにそのような特殊なオブジェクト(部分的にしかロードされていないオブジェクト)を返す責務を割り当てるべきなのでしょうか?

ドメインロジックに依存しない、という観点から見ると、DataMapperにそのような関数を作るのは不適当な気がしますし、
オブジェクトはデータベースに依存していないので、必要に応じて適宜読み込むようなProxyの実装も不適当かと思います。
(まだ理解が浅いので全く見当違いのことを書いているかもしれません・・・)

このような場合の解決策はどういったものになるのでしょうか。
119デフォルトの名無しさん
垢版 |
2006/05/13(土) 05:04:51
スレの内容よく分からんが
とりあえずageとくわ
2006/07/08(土) 16:29:01
ORマッピングが面倒だね。
GUIなんて弄りたくないのだが、楽にやる方法無いの?
XMLなんてみんな使いやすいと思って弄ってるの?
121デフォルトの名無しさん
垢版 |
2006/07/23(日) 03:47:07
なんででーたべーす板って過疎ってるん?
こっちに統合しちゃえよ。
122デフォルトの名無しさん
垢版 |
2006/07/23(日) 12:52:03
一応、PL/SQLもプログラミング言語みたいだから、
こっちでもいいんじゃない?
2006/07/24(月) 01:36:28
よくわからんがJavaならJDBC4.0で解決じゃね?
2006/07/24(月) 10:37:42
JDBCの上にまともなフレームワーク使わないと大変ですよ。
125デフォルトの名無しさん
垢版 |
2006/09/14(木) 18:38:32
C++からMySQL操作しているのですが、データベースの作成法を覚えていざデータベースを作ろうとすると、どう設計すればいいのかわかりませんでした。
下のような表をデータベースにしようとしてるのですが、
http://www1.mbrace.or.jp/od2/B/200609/b060914.lzh
この表のデータをどういう風にテーブルに分割すればいいのか検討がつきません。
例を示していただけるとうれしいです。
2006/09/14(木) 20:26:04
正規化って難しいですね
パズルのようで、プログラムとはちがった楽しさです
127デフォルトの名無しさん
垢版 |
2006/09/15(金) 11:16:05
正規化ってやりすぎてもパフォーマンスに悪影響出るんだろ?
2006/09/15(金) 16:36:19
セックルをやりすぎても彼女に嫌われるのと同じ。
程々にしとくのが一番いい。
2006/09/16(土) 00:52:36
なんかフィールドが50個ぐらいになっちゃったんだけど、50個は普通?
2006/09/17(日) 01:05:10
テーブル名とかフィールト名って大文字?
小文字じゃだめかな。
2006/09/17(日) 01:10:40
>>130
小文字じゃダメなデータベースソフトじゃなければ、どっちでもいいだろ
2006/09/17(日) 01:52:02
そか、仕事ではオール大文字だったから
ありがとう
133デフォルトの名無しさん
垢版 |
2006/10/09(月) 14:56:22
SQLとはちょっと違うのだが一つ質問。
プロセス間通信のかわりにデータベースをメッセージパッシングのためのキューとして使うのってなんか問題あるのかな?
アプリ同士のメッセージ交換にActiveMQとかCORBAを使わずに簡単にできる方法としていいのかなと思うのだが。
そもそもデータベースってシステム内のスコープがものすごく広いグローバル変数だよな?
2006/10/09(月) 16:07:49
>>133
まあ、問題ないと思うよ。
通常のDBのトランザクション系データ自体そうじゃない。
ある事象を記録して、次の事象を促すデータ。
2006/10/11(水) 20:24:50
>>133
メッセージングとデータ格納は別だと思うよ。
メッセージングをdbってのはあり得ないでしょ。
136デフォルトの名無しさん
垢版 |
2006/10/18(水) 01:09:27
>>135
狭い範囲ではありえないかもしれないが、イベントの契機となるものを広義な意味でメッセージと解釈すればありうるでしょ。
たとえば、ネットワークゲームである地点の状況をDBに格納して、その値をプレーヤが処理がすればそれは一種のメッセージングだよね。
2006/10/18(水) 05:51:03
株価みたいなリアルタイムの値の処理もDBに突っ込んで証券各社でメッセージングしてるくらいだしなあ。
2006/10/21(土) 09:44:16
つ電文
2006/10/21(土) 09:51:42
DBに格納されたことを伝える方法ってないよねえ
トリガってどこまでできるんだろう
140デフォルトの名無しさん
垢版 |
2006/10/23(月) 23:09:37
MSDEつかいはじめたんですが、現在作成しているテーブルがどれだけあるか、また
どんなものがあったかを調べるコマンドはあるのでしょうか?
141デフォルトの名無しさん
垢版 |
2006/11/25(土) 13:51:27
すいません、ちょっと質問させてください。
ODBC経由でAccessのデータベースに、データを連続で自動登録させていたんですが、
2万数千件を超えた辺りから急激にパフォーマンスが落ちました。その後も徐々に
パフォーマンスが落ちて10万件登録するのにメチャメチャ時間が掛かります。
そこで聞きたいのですが、フツーにAccessってこのくらい件数が増えたら当り前に
パフォーマンスが落ちるものなんでしょうか?
件数が多い場合は他のデータベースを使うほうが賢いのでしょうか?
2006/11/25(土) 15:20:51
SQLite とか MySQL で試してみたら?
DB が悪いのかクエリーとの相性が悪いのか切り分けられるから。
143デフォルトの名無しさん
垢版 |
2006/11/25(土) 15:32:03
分かりました。試してみます。
ところでクエリーとの相性ってなんでしょう?
2006/11/25(土) 15:39:09
大量のデータを一括登録する時は、それ用のクエリーの書き方ってあるものじゃん。
145デフォルトの名無しさん
垢版 |
2006/11/25(土) 15:43:20
い、一件ずつ登録していました・・・。
それようのクエリー、、調べてみます。
146デフォルトの名無しさん
垢版 |
2006/11/25(土) 15:57:46
とりあえずMySQLで試してみたら、Accessのようなパフォーマンス低下はありませんでした。
データも10万件が一分かからずに登録完了です。
しかし、それようのクエリーがあるのなら無駄な処理をしているわけで、、。
解決した問題はそれとして、調べて一から作り直してみます。
教えてくれた人、ありがとう。
2006/11/25(土) 16:31:41
>>146
autocomit?
148デフォルトの名無しさん
垢版 |
2006/11/25(土) 16:57:46
>>147
はい、テストのつもりで自動コミットモードでプログラムしていました。
もしかして自動コミットとAccessに何か悪い関係でも、、?
どういう意味でしょう??
2006/11/25(土) 17:16:24
大量のデータを一括登録するときはautocommitをOFFにしましょう。
ONだと10万回のcommitが発生します。

データの登録が完了=>一回commitで
2006/11/25(土) 17:20:26
autocomitて表全体をLockするんじゃなかったっけ。
その場合、複数クライアントがいると・・・、あるいは、インデックス更新は時間が掛かる処理だから、
CREATE INDEXは後々バッチにまわすとか。
テーブルに導出項目(年齢を日付から計算させたり)があったりJOINが多かったりしても、パフォーマンスは悪化するけど、表全体ロックだと余計に。
2006/11/25(土) 17:57:03
一般的なRDBMSの話だと、先にステートメントを作って使い回すとかね。
152デフォルトの名無しさん
垢版 |
2006/11/25(土) 20:32:53
亀レスですいませんでした。急に用事ができて出かけていたのでご容赦を。
>>149-150
言わるまで考えていませんでした。
でも、コミットって一回一回の処理ごとじゃなくてもできるんですね?知りませんでした。
10万件ものデータを一回でコミットできるんなら楽で良いですね。
それにロックがパフォーマンスを悪化させるのも初めて知って勉強になりました。
ありがとうございます!
2006/11/26(日) 00:38:33
確かSQLiteもトランザクション開かずに操作すると
毎回コミットするんだよな確か
2006/11/26(日) 16:10:36
Cでデータベースを弄るのに便利なライブラリとかミドルウェアって無いの?
2006/11/27(月) 04:47:04
>154
http://www.google.co.jp/search?hl=ja&q=C%E8%A8%80%E8%AA%9E+%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
2006/12/10(日) 01:44:22

こういうことってセキュリティ対策なので仕方ないのはわかるんですが、
修正に1500〜3000万もかかるもんなんでしょうか?
ttp://www.sankei.co.jp/shakai/wadai/061209/wdi061209004.htm

住基ネット離脱に難題…1人削除すると「不正データ」に

 住民基本台帳ネットワーク(住基ネット)からの個人の離脱を認めた大阪高裁
判決受け入れを決めた大阪府箕面市で、原告1人の住民票コードを削除すると、
約12万7000人のデータが入ったサーバーがダウンする恐れのあることが9日、分かった。

 対応策には1500万−3000万円かかるといい、担当課は頭を抱えている。
市情報政策課によると、住基ネットは市から府のサーバーを経由して国にデータが
送られる。しかし、原告の女性を除いたデータの交信は国から不正アクセスと
みなされ、市のサーバーがダウンする可能性があることが判明。削除できた場合でも、
原告を除く全市民のシステムを再構築するか、原告のデータだけ文書で管理する以外に道はないという。

 高裁判決は大阪府の吹田、箕面、守口3市の計4人の離脱を認めたが、吹田、
守口市は上告を決定。箕面市の藤沢純一市長は7日、判決受け入れを表明したうえで、
具体的な削除の方法について「システムの専門家ではなく、よくわからない」としていた。

(2006/12/09 21:56)
157デフォルトの名無しさん
垢版 |
2006/12/10(日) 01:51:25
age忘れてました
DB版は過疎ってるのでこちらで質問させて頂きました
すみません
2006/12/10(日) 02:31:23
>>155

>>こういうことってセキュリティ対策なので仕方ないのはわかるんですが
いやいやいや・・・・・

まず普通にありえねぇだろwwwww
論理削除オンリーでデータが無限に増え続けていくシステムだぜ?
2006/12/10(日) 07:27:22
>>156-157
DB板に逝け
2006/12/10(日) 10:59:00
PG板のスキルは低いよ(w
2006/12/10(日) 11:05:43
ニュー速+のスレ見たがレベル低い話しか出てなくて驚いた
(sql一発でできるだろ、に近いノリ)

全うな話はだれかがブログに書くんじゃね?
2006/12/11(月) 16:53:26
IBMの社員が電球を取り替えるのにかかる人数は・・・
とかいうのに近い>1500万〜3000万
2006/12/23(土) 01:44:57
結局、Cで汎用的に使えるライブラリって無いの?
2006/12/23(土) 05:26:59
http://www.codeproject.com/database/DBDevVCOLEDB.asp
165デフォルトの名無しさん
垢版 |
2007/01/24(水) 14:31:35
たとえば、家にある楽曲を管理して、検索するプログラムつくりたいんだが、JAVAがいいのか?
なんかさ、環境ダウンロードするのがめんどくて。
2007/01/24(水) 18:00:35
Javaも環境ダウンロード必要
2007/01/24(水) 20:42:57
Accessでいいんじゃね?
168デフォルトの名無しさん
垢版 |
2007/01/25(木) 07:22:34
Accessのファイルを読み込み、そこからテーブルを選択して
グリッドに表示するプログラムを作っています。
とりあえず、動くものができたのですが1つだけテーブルを選択する
時にエラーになる現象を見つけました。
テーブル名の中に半角カッコ「()」が使われているテーブルで読み込みエラー
になってしまいます。(全角カッコにすると問題なく読めます)
「テーブル名には半角カッコは使わないでくださいね」と言ってしまえばそれでいいような
きもするのですが・・なんか悔しくて^^;

これを回避するにはどうしたらよいでしょうか?
環境はボーランドC++Builder7とWinXpです
169デフォルトの名無しさん
垢版 |
2007/01/27(土) 15:46:21
SQLの「バックアップファイル」と「チェックポイントファイル」の違いとは何でしょうか?
170デフォルトの名無しさん
垢版 |
2007/01/27(土) 17:22:55
sql文をこねくりまわしてやっと実現した機能が
簡単なsql文とスクリプトで見易く速く出来たり
ってよくあると思うけど、お前らどう?

ケースバイケースだけど、なんとなく負けた気がするよな
誰に負けたか知らんけど
2007/01/29(月) 20:33:24
sqlも勉強すれば良いだけだろ。

perlでやっとで出来た処理が、rubyだとさくっと出来たりするのはよくある話。


家にある楽曲程度なら、phpかrubyで作るのが漏れの趣味。
2007/01/30(火) 00:51:29
javaだとどのフレームワーク使うのが普通?
みんな無料のjbossでがんばってるの?
ウェブロジックとウェブスフィアのどちらがいい?
2007/01/30(火) 09:30:49
MySQLにODBCドライバ入れて
CやRubyやExcel/Wordからはアクセス出来るのですが
なぜかAccessからはアクセス出来ません
なにがいけないのでしょうか?
2007/01/30(火) 12:03:22
>>173
versionとかわからんけど、マニュアルは読んで試したの?
ttp://dev.mysql.com/doc/refman/4.1/ja/myodbc-clients.html
2007/02/01(木) 21:09:34
>>172
仕事か趣味かしらんが、データベースがDB2ならWebSphereだろーなぁ。
別にDB2でJBOSSでもtomcatでもいいんだが。
176デフォルトの名無しさん
垢版 |
2007/04/11(水) 23:31:43
ツリー型の掲示板つくってるんですが、1レスを1レコードって考えた場合
レス間の繋がりってどうやって表現するのが良いんでしょうか。
2007/04/12(木) 00:25:28
にレスの親子関係を別テーブル化。
create table (new_res, parent_res, タイムスタンプ)
2007/04/12(木) 01:02:43
えーと、それが一番素直で使い勝手が良いとか考えたんだけど、
クエリ何度も飛ばすのは変だなぁ、って思いまして。
2007/04/12(木) 09:12:33
読込時の性能を上げるためにクエリ回数を減らしたいってことなら冗長なフォーマット済みデータを作る。
だけどそういった最適化は後で考えるようにして、まずは>>177の通り実装してみれば良いと思うよ。
2007/04/24(火) 03:49:31
データベース弄るのに楽な言語って何?
2007/04/24(火) 09:20:45
>>180
SQL
2007/04/24(火) 10:22:08
じゃあSqLを発行するのに楽な言語は?
2007/04/24(火) 11:25:45
PL/SQL
2007/04/27(金) 17:54:31
自分流のデータフォーマット考えて、自分でそれをいじるモジュール作って、自分の作品でそれを使うのが一番快感。
185デフォルトの名無しさん
垢版 |
2007/06/21(木) 23:02:39
最近SQL Server(2005) の勉強始めたものです。
Localでの段階では成功していたのですが、いざネットワーク上の別パソコンへ
という段階で、躓いております。
C#のWinFormプログラムでConnectionStringで接続して簡単なSQLを実行しようとしています。
するとWindows認証でログインしようとしたときに、guestでログインしようとしているようです。
(サーバ側でguestを無効にすると guestはログインできませんでした。みたいなエラーが出ます。)
ConnectionString内にUser ID を設定しても変わりません。

ネットワークはワークグループベースなんですが、Windows認証ってドメインとか関係あるんでしょうか?
こういう場合はSQL Server認証なんかでやった方がいいんでしょうか?
どんな資料もWindows認証を推奨してるんでWindows認証でやろうと思っていたのですが。
もちろんサーバー側にユーザー登録はしております。(Windows、SQL Serverとも)
186デフォルトの名無しさん
垢版 |
2007/06/22(金) 05:28:49
LDAP
187185
垢版 |
2007/06/22(金) 23:00:11
自己レス

エクスプローラの表示オプションで「簡易ファイルの共有を使用する」のチェックを外す

でした。orz
188デフォルトの名無しさん
垢版 |
2007/06/23(土) 00:10:28
SQL CLR って VS2005 スタンダードではできないの?
それとも、テンプレートはないけどできるものなの?
できるとしたら、めんどくささのレベルはどれくらい?
2007/07/02(月) 11:59:41
どなたかやさしく教えて下さい。
昨日データベースの勉強をはじめて、
データベースは、たくさんのテーブルを入れる箱だというところまで分かりました。
中に保管するテーブルは、アプリケーションが異なろうが、クライアントが違おうが、
とにかく放り込んで行ってOKなんでしょうけ?
レン鯖などだと、DB1個しか用意されてなかったりするので、
子供のオモチャ箱状態で運用して良いのか心配です。
2007/07/02(月) 12:10:52
> とにかく放り込んで行ってOKなんでしょうけ?

その、放り込みする方法はアプリケーションやプログラムで違うんだが。
2007/07/02(月) 12:51:49
>>189
当分は1個で事足りるだろうから心配ないよ
192デフォルトの名無しさん
垢版 |
2007/07/04(水) 13:00:36

例えば性別で男/女をオプションボタンで選択させるような
画面を作るとした場合、データベースとの連携って
皆さんどう設計していますか?


フォームに男/女とオプションボタンを配置すると、
データとプログラムがくっ付いているので気持ち悪く、
いつも良い方法が無いかなと思っています。
2007/07/04(水) 19:29:14
マスタテーブルを用意して
リストボックスと連動させてるよ
2007/07/04(水) 22:58:38
> フォームに男/女とオプションボタンを配置すると、
> データとプログラムがくっ付いているので気持ち悪く

「オプションボタン」「データとプログラムがくっ付いている」「気持ち悪く」
と、どれも他人には何の事やら分からないことばっかりじゃないか。
具体的に言ってくれ。
2007/07/05(木) 08:41:12
>>192
社会保険庁のようにデータベースの性別の誤りを
訂正させたい場合以外は、男女のオプションボタンと
データベースの連携なんて存在しないと思うのだが。
196デフォルトの名無しさん
垢版 |
2007/07/05(木) 14:39:39
分かりづらくて申し訳ないです。

オプションボタンは、ラジオコントロールの事です。

――――――――
| ○男 ●女 | ← グループの中から一つだけ選ぶ事が出来る
――――――――

通常ラジオコントロールで、得られる値は数値になります。
上記例の場合、0=男、1=女 とかになります。

ただ、このままでは 0=男 はデータベース側ではなくて、
フォーム側の設定になり、それに合わせてDBも0、1 or 男、女 と
保存する事になります。
これでは、フォームとDBが密接に関係していると思い、どうなのかな?
っと悩んでいます。

フォーム表示時に、ラジオコントロールを作成/追加させたりする方が
一般的なんでしょうか。

コンボボックス等であれば、データは切り離されていますので、
殆どの場合、考慮しなくて良いんですが…。
2007/07/05(木) 14:53:25
>>196
話のポイントはわかりました。私が疎いのかどうも環境がわからない。
Formの値が直接質問や挿入に使われるようですが、
データベース「プログラミング」はどこに居場所があるのですか?
2007/07/05(木) 15:57:20
>>196
データベース内のデータと、人が見るGUI上の表示を変えることはよくあると思うが。
具体的に何のアプリ使ってるの? MS Access とか?
データベース本体と、それを操作するGUIプログラムは別になってる方が一般的な気がする。
2007/07/05(木) 17:29:31
>>197
プログラミングの居場所?
すみません。ちょっと分かりません。

例えば、ラジオコントロール と 登録ボタンだけの簡単なアプリがあったとして、
登録ボタンを選択時に、DBへ登録するなどです。

ラジオコントロールで 1=女 が選択されていれば、1がDBへ入ります。
ただ、この1は、フォームとDBで決まりごととして、対応する事になります。
例えば、女のIDを1→501 へ 値を変えた場合、フォームも変更しなければいけません。
通常、このような作りは良くないと思います。

>>198
環境は、SQL Server と VB.NET(2005) になります。
2007/07/05(木) 18:44:52
あ〜
201デフォルトの名無しさん
垢版 |
2007/07/05(木) 19:27:17
>>199
フォームが"1"の時はフィールド 性別 の値は"女"と変換するのが
プログラムの役割だと思うのですが。
これだとフォームが変更されるとプログラムを変更しなくては
ならなくなりますが、それがいけませんか?
2007/07/05(木) 20:09:22
>>201
うーん。
「データとプログラムは分けるべき」って言うのが根底にあるんですが、
どうなんでしょうか。

この場合、DB側でもフォーム側でも、0=男、1=女 という情報を持っているわけですよね?

どちらか片方(フォーム/DB)を修正したら、もう一方も修正が必要というのは、
設計がおかしいような気がしてならないのです。

それともそういうものなんでしょうか。
2007/07/05(木) 20:25:06
プログラムには、

if(seibetsu=="0") then function_otoko();
else if (seibetsu=="1") then function_onna();

のようなことがどこかに書かれているのでしょう?
フォームとDBの修正どころか、プログラムも変更が必要に
なると思います。
204203
垢版 |
2007/07/05(木) 21:04:36
どうしても「データとプログラムはそれぞれ独立」にするべきだとすると

1 フォームのボタンの名,
2 そこで返される値,
3 データベースに格納されるときの値
の少なくともこの3項目をフィールドとして持つテープルを作っておいて、
まずこのテーブルを読み込み、変換してデータベースを処理するように
プログラミングする。あるいはプログラムは何もせずJOINで処理する。
が、考えられるのではないか。
>>193 がこれに当たるのかどうか、よくわからない。
2007/07/05(木) 21:11:18
入力で返される値をそのままDBに保存するのはセキュリティホールの元
2007/07/10(火) 01:24:42
ちゃんとチェックしないとねえ。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況