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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
NGNG
データベース板もあるが、あそこは過疎板だからこっちに立てました。
データベース関連のプログラミングならな〜んでもOK。
色んな話をしませまうる号。
2011/09/22(木) 23:50:13.63
>>357
てめぇのせいでスレが止まったじゃねぇかどうしてくれる
359デフォルトの名無しさん
垢版 |
2011/09/29(木) 03:41:43.18
「SQL」が略称か否かで揉める奴が必ず居るけどあれって何なの?
wikiの説明文みたいに
360デフォルトの名無しさん
垢版 |
2011/10/01(土) 12:13:49.74
Visual Basic 2010 で、データベース入出力のバッチ処理を行うためのプログラムを書きましたが、非常に時間がかかります。
・ 具体的には、3列の表に10個のデータを格納するだけで11秒などという時間がかかっています。

以下に述べる構成のうち、設計として悪い部分は複数あるだろうと思いますが、パフォーマンスに影響する問題点を指摘してください。
・ Database.sdf のテーブルを DataSet.xsd の編集画面へドラッグ&ドロップすると、DataTable, TableAdapter の派生クラス MyTable, MyTableAdapterが生成されました。
・ MyTable という Public Class を作り、MyTableAdapter のインスタンス adapter を Private Shared 変数に格納しています。
・ MyTable には、上記 adapter を (入出力を加工しながら) 操作する Public Shared メソッド/プロパティを実装してあります。
361360
垢版 |
2011/10/02(日) 12:15:46.81
>>360 自己解決。超バカだった。これから具体的に書きます。
362360
垢版 |
2011/10/02(日) 12:17:54.95
・ TableAdapter は実際のデータと DataTable との間をつなぐもの。
・ これを、DataTable と外部コードとの間をつなぐクエリを集めたものと誤解。
・ シコシコと書いたクエリを直接たたいて TableAdapter を操作していたため、毎回 SQL が発行されていた。
orz
2011/10/02(日) 18:59:25.91
単純にDBいじくるだけならADO.NETのデータセットを作る必要すらなくて、DBへの
ラッパークラスを作ってSQLベタ打ちが一番楽で早いという現実
2011/12/12(月) 14:15:25.41
どんなに複雑な抽出分もSQLのみで作成する事が可能なんでしょうか。
2011/12/12(月) 22:50:50.66
そんなことはない
2011/12/12(月) 23:08:06.15
特別な関数が必要なものとか、条件判断のための正確なアルゴリズムが見つかってないものとか、無限大・無限小の計算が必要なものとかは無理だろ。
367デフォルトの名無しさん
垢版 |
2011/12/17(土) 14:55:22.10
>>1-1000
おまえら一盛り10円
http://www.kh.rim.or.jp/~nagamura/misc/stroustrup-interview.html
2011/12/20(火) 19:29:27.19
今androidでコミックビューワ作ってるんだけどページを100枚くらい使うともう重くて無理なんでネットからだんだん落としていって100ページ読み込ませようかと。で、ここで使うのがデータベースなのかなあーと思ったんだけど合ってる?
2011/12/23(金) 15:47:39.73
合ってない
2011/12/23(金) 16:15:49.30
正解
371デフォルトの名無しさん
垢版 |
2011/12/26(月) 17:25:13.84
え?
372sage
垢版 |
2012/01/01(日) 15:31:00.26
データベースプログラミングではないのですが、
B木についての課題で困っています。

こちらで質問してもよろしいでしょうか?
2012/01/02(月) 01:39:47.57
DB板の質問スレかどっかで質問してたひとか
374デフォルトの名無しさん
垢版 |
2012/01/11(水) 00:36:33.35
ム板にアルゴリズム系のスレが無くなってるんだよな
誰の仕業かなー
2012/05/20(日) 05:28:05.42
もうデータベース板自体が息してないからなあ。
景気悪くなるとデータベースって一気に話題消えるんだなw
2012/05/25(金) 02:11:35.86
もうプログラム板もいいよな
2012/07/31(火) 05:10:50.04
リレーションとかおまえら使ってる???
378デフォルトの名無しさん
垢版 |
2013/02/15(金) 13:38:15.74
      _
      |O\
      |   \ キリキリ
    ∧|∧   \ キリキリ
ググゥ>(;⌒ヽ    \
    ∪  |     (~)
     ∪∪   γ´⌒`ヽ
     ) )    {i:i:i:i:i:i:i:i:}
     ( (    ( ´・ω・)、
           (O ⌒ )O
            ⊂_)∪
379片山博文MZパンク ◆0lBZNi.Q7evd
垢版 |
2013/02/23(土) 00:05:22.07
MySQLでシフトJIS使ってたら何かまずい事がある?
2013/03/01(金) 16:19:24.39
マニュアル見て自己解決
2013/06/09(日) 18:36:09.01
webアプリを作る際にdbを使おうとしています.
javaからいじるときの書き方なんですが
例えばデータを読み取るsql文を発行する関数を作ったときには,
その関数内でStatementとかResultSetとかを閉じるものなのですか?
あと,データベースとの接続を閉じるのはいつにすればいいのでしょうか?
2013/06/11(火) 17:01:57.73
おれはデータベースで何をしたらいいんですか?
2013/07/03(水) NY:AN:NY.AN
履歴テーブルのスマートな実装手段は?
2013/07/06(土) NY:AN:NY.AN
>>383
質問の意図が不明なんだが
385デフォルトの名無しさん
垢版 |
2013/08/12(月) NY:AN:NY.AN
>>383
変更時のタイムスタンプと変更内容を正規的に記述する
386デフォルトの名無しさん
垢版 |
2013/10/21(月) 11:37:39.16
Entity Frameworkで DbContext を使って開いたデータベースの
テーブルの個数が知りたいのですがどうやったら取得可能でしょうか
387デフォルトの名無しさん
垢版 |
2013/10/31(木) 14:29:14.79
Magic quotesはオフにしよう
http://codezine.jp/article/detail/2480?p=2

 本題からは外れますが、特別な理由がない限り、SQL文はプリペアードステートメントを使って実行するようにしてください。
これはSQLインジェクション攻撃に対する最も基本的な対策です。基本的なことにも関わらず、プリペアードステートメントが
あまり使われていないのには以下のような理由があるのではないかと、筆者は推測しています。
388デフォルトの名無しさん
垢版 |
2013/10/31(木) 14:30:17.40
SQLを文字列で作って実行するという直観的にわかりやすい方法が入門書等で紹介される。
初心者がそれをそのまま真似る。
SQLインジェクション攻撃に対して脆弱なウェブアプリが量産される。
PHPの開発者が「Magic quotes」というマジックを導入する。Magic quotesによって、ブラウザから送られた「O'Reilly」という文字列は、自動的に「O\'Reilly」に変換されようになる(脆弱性回避)。
この「O\'Reilly」という文字列は、プリペアードステートメントでは使えない(余計なバックスラッシュが入ってしまう)。
プリペアードステートメントは使われなくなる。
389デフォルトの名無しさん
垢版 |
2013/10/31(木) 14:31:20.44
 データを勝手に書き換えてしまうMagic quotesがデフォルトで有効になっているのは困ったことです。
PHPをインストールしたら、設定ファイル(php.ini)を探して、「magic_quotes_gpc = Off」としておきましょう。
2013/10/31(木) 14:37:08.30
>>387
5.3 2009-06-30 <- magic_quotes_gpcがobsoleteになる
5.4 2012-03-01 <- magic_quotes_gpcが削除される
5.5 2013-07-20 <- いまここ
2013/10/31(木) 21:36:37.02
NetWareサーバでbtrieve使ってたころは
インジェクションとかなんとか悩む必要なかったんだよな
392デフォルトの名無しさん
垢版 |
2014/02/02(日) 00:31:08.57
自分で競馬データベースや競馬新聞を作りたいんだが
どんなプログラミング言語を学習すればいいですか?
競馬を通してプログラミングを勉強すれば楽しいと思うし、
仕事にも役立つとなれば一石二鳥。

データーソースは外部の物を利用。
393デフォルトの名無しさん
垢版 |
2014/02/02(日) 01:23:31.88
Haskelです。
2014/02/04(火) 00:07:50.54
>>392
c++、Haskell、Ocaml、Scala
c++ならc++cmsを使ってCMSサイトを作れる
HaskellならYesod、ScalaならLift
速度重視ならc++、バグを含まないように作りたいならHaskell
性能と実績ならJVM上にあるScalaがベターだよ
2014/02/04(火) 00:19:49.83
普通にPHPでええやん
何が不満なの?
2014/02/11(火) 11:02:05.62
PHPが不満
2014/02/11(火) 14:39:35.01
想定顧客数すら見えないんだからPHPかRuby/Railsじゃね
398デフォルトの名無しさん
垢版 |
2014/06/25(水) 00:08:06.39ID:hOEFw5aV
たとえば、1つの製品を作成するのに掛る部品リストのテーブルが以下だった場合。

ID,製品,部品名称,部品個数

グリッドに表示させる時や出力させる時は横に並んでほしい場合は結構あるかと思います。

製品,部品1名称,部品1個数,部品2名称,部品2個数,部品3名称,部品3個数〜〜

こういう時は一般的どうするのがスマートなんでしょうか?
たとえばAccessでグリッドに表示させたい場合、もしくはcsv、Excelで出力したい場合など。
2014/06/25(水) 00:27:43.30ID:n7E3MpSB
>>398
正規化とビュー
2014/06/25(水) 03:12:58.04ID:h7VZRPKH
行列変換・クロス表については、ミックの本にも書いてある

達人に学ぶ SQL徹底指南書、2012、ミック
セルコ信者の著者が、より簡単にパズルチックに解説する
内容は集合論、3値論理など

Webにも解説あるよ
ttp://codezine.jp/article/detail/751
401デフォルトの名無しさん
垢版 |
2014/07/22(火) 04:18:35.67ID:lQzj9+dU
C# + Connector/Net + MySQL でデータベースの勉強し始めたんですが、Connector/Netのライブラリを把握しきれないうえに、データベースプログラミングで確実に身に付けるべき作法みたいなものがよく分かりません。
オススメの入門書を教えていただけないでしょうか?
2014/07/22(火) 04:26:53.03ID:gLVnM0Vt
http://www.atmarkit.co.jp/ait/articles/1211/05/news007.html
http://www.atmarkit.co.jp/ait/articles/1202/27/news128.html
http://www.atmarkit.co.jp/ait/articles/1305/13/news006.html
http://thinkit.co.jp/story/2013/07/18/4171
http://itpro.nikkeibp.co.jp/article/COLUMN/20100713/350190/
403デフォルトの名無しさん
垢版 |
2014/11/06(木) 21:15:47.38ID:chc+9Rz7
みんなの意見を聞かせてください
データベースを設計しているんだけど、
例えば、定食マスタがあるとしてそれの内容を持ってるテーブルが別にあるとする
A定食に対して、おひたし・ごはん・味噌汁・豚肉炒め・サラダ等
んで、あるとき豚インフルで豚肉が提供できなくなったとして、豚肉炒めから牛肉炒めに変更しA+定食にしたとする(値段等そのたの問題は抜きとする)
その場合、定食の構成としては1品しか変わらないわけだけど、それぞれに同じ構成を持つとデータだけ増えていくよね
例だと品数は少ないけど、定食の数も数百種類、それぞれの構成も何十種類となった場合、
基本はAの構成だけど、バージョンが上がって一部構成が変更になった場合、
どういう風にデータベースを設計したらいいと思いますか?
やはり別のものとして丸々構成を持った方が良いのでしょうか?
説明が下手ですみません。どうかよろしくお願いします。
2014/11/06(木) 21:40:39.96ID:6jrte84K
>>403
数百や数千なら個別に作るけどな
定食なら日本全国のを集めても数千も無いだろうしwww
405デフォルトの名無しさん
垢版 |
2014/11/07(金) 07:02:18.20ID:QVJdWUqC
>>403

BOMとか部品表とかで色々調べるとよいかも。
テーブルの使い方次第だけど、定食が1日に100百食作る予定だから、
あらかじめ材料を何キロ買っておく、みたいな使い方をするなら、
12月1日からのA定食の構成要素をはこれとこれを含むという
適用範囲を持ったテーブルになると思う。

まぁ、テーブルの使い方によって設計が変わるはず
2015/02/14(土) 22:52:28.31ID:WlrY+q6b
C# で、System.Data.SQLite を利用しているのですが、
データベースファイル内のテーブルの数、ないしテーブル一覧を取得するにはどうすれば良いでしょうか?
407デフォルトの名無しさん
垢版 |
2015/02/15(日) 09:08:49.39ID:lVCsB9EK
.schama
2015/02/15(日) 09:31:44.71ID:twE3uD4t
長いことIT業界にいるが、
いまだに排他制御が完全なシステムを
作ってるのに出会ったことがない・・・

俺自身、どのレベルで何をどうしたら
完璧になるのか良く分かってないしな。
2015/02/15(日) 09:59:39.37ID:Mh0LkIrH
DBアクセスのたびにDB全体を完全ロックすれば完璧だよ!
2015/02/15(日) 11:36:22.84ID:24ypMGtK
DB用に専用線を引いて、通信を暗号化すれば完璧だよ
411デフォルトの名無しさん
垢版 |
2015/02/15(日) 11:59:28.83ID:iz0G57zc
入力時点でシリアル化しとけば排他制御いらんな。
2015/02/15(日) 12:18:07.77ID:n2M7TY52
>>408
汎用機のオンラインシステムは完璧な排他制御を求められたんだがな。
2015/02/15(日) 13:31:12.71ID:SSlwb3yD
RDBなら本来、アプリケーション側で排他制御なんかしないよな。
2015/02/15(日) 13:41:39.84ID:Mh0LkIrH
DBにとって必要な整合性と、アプリにとって必要な整合性は違うのだよ
2015/02/15(日) 16:14:21.62ID:bX6frV1s
HTTPとの相性最悪
2015/02/15(日) 17:18:02.87ID:62ZsaQxV
素人乙
2015/02/15(日) 18:14:23.37ID:n2M7TY52
>>413
データベースが勝手に排他制御をしてくれるとでも?
2015/02/15(日) 19:03:52.03ID:SSlwb3yD
当たり前だろ。そうじゃなきゃDBMSの意味がない。
で、普通は明示的な排他制御などやらずに適切なトランザクション分離レベルを宣言するんだが、
わかってない奴が設計するとそこが適切じゃなくて、「この処理の前にこっちのテーブルをロックしなきゃ」
なんてことになる。
2015/02/15(日) 19:06:51.51ID:Mh0LkIrH
レベル宣言だけで上手くいくもんか
2015/02/15(日) 19:10:05.48ID:twE3uD4t
>>418
テーブルに最終更新時間とか持たせて、
表示させた後にDBに書き込むときに、
最終更新時間が取得したときと違ってたら
エラーを表示するとかなんたらって、
ズラズラとコードを書いたりしないか?
2015/02/15(日) 19:57:11.17ID:n2M7TY52
>>418
分離レベルだけで勝手にやってくれるとでも?
2015/02/15(日) 19:59:36.27ID:SSlwb3yD
>>420
ロングトランザクションのために仕方なく読み出しと書き込みを分けるなら、たしかにそういう、
いわゆる楽観的ロックを使う場面もあるね。
その場合は両者のトランザクションは独立したものとして、つまり読み出しがない書き込み
トランザクションにも正しく対応できるよう設計すればいい。
もちろんこれも「排他」制御ではない。
2015/02/15(日) 20:43:21.86ID:n2M7TY52
>>422
そういう同時実行時の不整合を起こさない仕組みも含めたのを排他制御とは言わないのかい?
2015/02/27(金) 10:28:05.63ID:+9m5pWTV
>>419
>>414が良い事言ってる。と思ったら414=419かよw
すくなくとも「DBにとって必要な整合性」は保障されるだろ
>>418が「アプリにとって必要な整合性」をどう考えてるのかは知らんが
>>422あたりを見るに、それは>>418にとっては排他処理ではないらしいから考慮外なんだろう

理想は分離レベルの指定だけですべて済ませればいいんだが
なかなかそう言うわけにはいかないのが現実
2015/02/27(金) 12:40:39.68ID:+8onCSYI
apache hbase 1.0キター
http://sourceforge.jp/magazine/15/02/26/150800
2015/03/10(火) 00:30:56.39ID:4vRVmU8Z
VB ScriptのADOで
Do

Loop
の中に
rs.movenext書き忘れるとなにがおこるの?
427デフォルトの名無しさん
垢版 |
2015/03/10(火) 22:06:12.52ID:umpnsyO6
>>426
同じ行を処理し続けるんじゃないの?
428デフォルトの名無しさん
垢版 |
2015/03/11(水) 10:12:33.26ID:3uN2N73I
rs.delete してればそのうち終わるんじゃね?
429デフォルトの名無しさん
垢版 |
2015/12/31(木) 13:59:49.75ID:QqVhmS8m
LINEスタンプで不労所得を得る!
http://goo.gl/e18Nmy
430デフォルトの名無しさん
垢版 |
2016/01/19(火) 14:37:25.78ID:o7PI7tBC
SQLServerで教えて下さい。
saユーザでログインし、管理者用のDB_Aと、
ユーザ用のDB_Bを作成し、
ユーザ用のユーザを作成しました。
DB_Aにselectするために権限を振りたいのですが、うまくいかないです。
どのようにすればいいですか?
2016/01/20(水) 16:37:02.67ID:NQlxuzeF
データベース板にMSSQLスレあるよ
432デフォルトの名無しさん
垢版 |
2016/01/20(水) 19:46:17.26ID:F8N6o/ie
>>430
どのユーザーでどのユーザー
2016/02/01(月) 00:25:24.43ID:3WuLHwNd
検索の仕方が悪いのか、データベースのデータから特定のx行y列目の値を一つの変数へ格納する方法が見つからない…


コマンドプロンプト上で検索するやり方は特定の行または列だけ。
excelなら行と列を指定すればそのセルの値を取得できるが、他の面で不便だ

SQliteなんだが、特定のx行y列目の値を一つの変数へ格納する方法が知りたい
434デフォルトの名無しさん
垢版 |
2016/02/01(月) 05:21:16.21ID:xBjz7JvU
>>433
変数って何の変数だよ?
2016/02/01(月) 06:09:47.86ID:lA57fNjF
データベースに行数列数なんて概念あんの?
436デフォルトの名無しさん
垢版 |
2016/02/01(月) 06:19:13.75ID:xBjz7JvU
>>435
はあ?

RDBは行列の2次元の表が基本だぞ。
437デフォルトの名無しさん
垢版 |
2016/02/01(月) 06:21:27.24ID:xBjz7JvU
>>433
RDBには行の順番というものはないぞ。
2016/02/01(月) 09:24:33.50ID:teirB2/w
SELECT 文に ORDER BY をつけてようやく順番が決まった表みたいなものになる
数十万、数百万件もあるかもしれないデータをいきなり何行目とか指定できない
順番にfetchするとかカーソル使うとか、、、特定の何番目かの行だけ取り出したければ
LIMIT OFFSET使うとか
2016/02/01(月) 09:32:31.63ID:3WuLHwNd
>>434
>>437
行"数"は無いのか…。

多くのサイトの説明だと

「select カラム from テーブル where 条件」で抽出できる、みたいに書いてある。
けれど抽出したデータを任意に作った変数にどう取り込むのか、までは載ってないんだ…

変数っていうのは、ゲームの例で言えば、
特定のモンスターの能力値を読み込むときに、モンスターに振り分けたIDなりでデータベースを検索して、
攻撃力・守備力・魔法力の数値が全部載ってる行を見つける

けれど、そのまとまった情報をゲーム上のステータスにどう反映すればいいのかがわからない。
攻撃力を表す変数Xに攻撃力の数値を入れたいんだよね。
2016/02/01(月) 13:22:29.13ID:gmWomOLn
レコードを特定して列指定で格納値を取得
さらに列の型に応じてゴニョゴニョする…とこの辺がわかってないのか

C/C++ じゃなくて VBとかスクリプトだと余計なこと考えなくていいんだけど
多分ダメなんだろうな
2016/02/01(月) 15:01:28.17ID:C4njzqYk
>>433
>「select カラム from テーブル where 条件」で抽出できる、みたいに書いてある。
>けれど抽出したデータを任意に作った変数にどう取り込むのか、までは載ってないんだ…

change your mind
わからなければORMでも使えばいい
2016/02/01(月) 19:01:11.15ID:3WuLHwNd
みんなのくれるヒントをもとに検索かけてるんだがやっぱりだめだ……

>>441
ORMというものの説明をさっくり見ても理解できなかった。すまん

>>440
VB.netのほうが取っつきやすいから、そっちのほうで良い方法を載せてるサイトを知らないか?
2016/02/02(火) 00:31:00.26ID:I6GVlLy1
>>442
サブクエリで検索したまえ
2016/02/02(火) 01:49:46.31ID:hbRk5EKW
日を跨いですまん

>>443
これはわかりやすくて使いやすいな。
ただ最も知りたいのは、ここから自分の作った変数へ当て嵌める方法でな…。

たとえば ttp://www.dbonline.jp/mysql/select/index20.htmlの例を使うなら、
サブクエリを使って求めた行のうちのname"〜"の値を、適当な変数Xに入れて X = "〜" としたいんだ。
2016/02/02(火) 02:12:05.74ID:Nia4wB+/
>>442
VB.NETつかうんならADO.NET使えば?
2016/02/02(火) 08:19:43.05ID:8a5xHyeA
変数ってホストの話か?お前らよく付き合うな。言語も環境もなんも書いてないのに。
447デフォルトの名無しさん
垢版 |
2016/02/02(火) 14:44:58.86ID:chGMw9p3
馬鹿には無理
448デフォルトの名無しさん
垢版 |
2016/02/04(木) 18:31:06.37ID:kJqvXS0n
住所氏名電話番号とかいろんなデータに、どんなデータ型が最適かまとめられたリストってありませんか?
2016/02/04(木) 18:57:06.90ID:cZxKqYB+
ありますよ
2016/02/04(木) 20:43:57.05ID:ZPaMq02w
安心してください
451デフォルトの名無しさん
垢版 |
2016/02/04(木) 21:27:28.08ID:gLwjaquz
>>448
全部VARCHAR
452デフォルトの名無しさん
垢版 |
2016/02/04(木) 23:38:59.91ID:DpQoYKor
ipaが共通語彙基盤とかいうのやってるね
2016/02/05(金) 07:24:45.41ID:z5njROW4
何それ不安しかない
454デフォルトの名無しさん
垢版 |
2016/02/16(火) 22:06:45.67ID:C4gEAWu1
質問なんですが、
accessはもちろんofficeすらインストールしていないpcで、
vs2015から、mdbファイルを利用できます
またaccessをデータセットとして利用できます
これ何ででしょうか?
もしかしてvs2015には、もれなくaccessもついてくるのかな?
当方、日曜プログラマです
上記は、JRAVAN,datalab競馬ソフト開発体験教室レッスン7を実行した結果です
http://jra-van.jp/dlb/sdv/trial.html
455454
垢版 |
2016/02/16(火) 22:15:23.66ID:C4gEAWu1
いや、日曜プログラマだと語弊があるかもしれない
日曜日に趣味で勉強しているおっさんです
プログラマではないです
2016/02/17(水) 00:01:04.23ID:SSk10E0a
accessという製品はタダでは付いてきません
mdbにアクセスするためのプロバイダはoffice無しでも利用できます
457デフォルトの名無しさん
垢版 |
2016/02/17(水) 00:57:40.92ID:MF/QCRL8
>>456
レスども
やっぱりaccessはないわけですか
あれ有料ですもんね
ありがとうございました
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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