プロが教えるわが家の防犯対策術!

本をかじった知識で調べたところデータベース管理には、Oracle、MySQL、PostgreSQL、Firebirdや個人で使用するAccessなどのソフトがあるようですが、ほとんどが単体で紹介されていて、これらのメリット、デメリットを比較している本やサイトが見つからずどれがいいのかわからなくて困っています。

現在ビデオカメラから移動物体(人,車など)を検出し、追跡するプログラムをC言語、WIN32API、vfwで組んでいます。
1フレーム毎に移動物体の座標、大きさなどの情報10~15種類程度を人数分.csv形式で保存しています。
しかし、人数分のファイルが大量にできてしまうため、まとめて管理できるデータベースシステムを構築しようと考えています。
以下の条件に合うデータベースシステムを教えていただけると助かります。

・リアルタイム処理なので処理速度が最重要。軽ければ軽いほど良い
・1フレームあたり、(10~15種類)*(人数)分の情報を保存
・データの読み出しは、現在カメラに写っている物体のみ行う。基本的にはデータの保存、及び効率的な管理が目的
・24時間稼動を想定している。(↑の通りリアルタイムで使うデータは極1部であり、過去の情報は別の機会に使う)
・データにアクセスするのは1人(自分のプログラムのみ)
・取得している言語はC、C++

よろしくお願いします。

A 回答 (2件)

パッと思いつくのは、DB自体に差はあまりなく、むしろデータのやり取りによって処理速度が変わると思います。



Accessは他のPCに移しやすい利点がありますが、同時参照に弱いとか壊れやすい欠点がありますのであまり用いられていないようです。
MySQLはSQL文を発行する際に、確かサブクエリとかに制限があったような気がします(うろ覚えです、FROM区に書けなかったとかそんな感じ)
いろいろなSQL文を使うならPostgreSQLとかをチョイスする人もいるようです。
個人的にはMySqlで十分だと思います。

データのやり取りに例えばADO.NETでやる場合、これもパッと思いつく範囲ですが、

1.DataReader+Command
2.DataSet+DataAdapter
3.DataSet+DataAdapter+CommandBuilder

1はDataReaderをCommandで更新しますが自分でSQL文を書く必要があり、とても高速です。
2はDataSetをDataAdapterで更新しますが自分でSQL文を書く必要があり、中速でしょうか。そのかわりDataSetでいろいろデータをいじれます。
3はDataSetをDataAdapterで更新しますがCommandBuilderが発行してくれます。低速ですが楽です。多くのフィールド数の更新向けでしょうか。

参考になればよいのですが。
    • good
    • 0
この回答へのお礼

ODBCしか無いと思ってたらADO.NETなんてあったんですね
参考になりました
C言語とMySQLの組み合わせはほとんどないようで、参考書籍やサイトもほとんどないのでVB.NETとC++/CLIを調べ中です
ADO.NETも勉強してデータベースを構築しようと思います
アドバイスありがとうございました

お礼日時:2007/03/14 20:58

データベースで一番の違いは有償か無償かです。


機能的、性能的にはとことん使いこなすのでなければ
それ程違いは無いでしょう。
それらはデータベースの問題というより、1つのデータベースの
テーブル設計によるところが大きいでしょう。
後はハード的な強化でしょう。メモリ増設とか、SATAの速いのに
するとか。

私のお勧めはMySQLです。無償ですし、他のDBになんら遜色が
ありません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
C言語にも対応しているようなのでMySQLを使ってみようと思います。

お礼日時:2007/03/10 15:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!