大学院生です。実証実験のためにデータベースの使用を考えています。
専門外でわからないことだらけなので、検索の糸口だけでも頂けると有難いです。
以下の要求に当てはまるデータベース(DBMS?)にはどのようなものがあるでしょうか
・いくつかの数値データを関連付けて管理したい
・数値データの中には、波形データもある(100サンプル程度の複素数値)
・高速に入出力が出来る方が良い
・複数アプリケーションからアクセス出来る方が良い
それともう数点、
一般的なデータベースで複素数値は格納できますでしょうか。別のカラムを用意して、実部虚部別で管理する必要がありますか。
データベースは列(カラム)と行(レコード)でデータを管理するようですが、波形データをデータベースに格納する際には、以下のように各サンプル値を各カラムに収容するという考え方で良いのでしょうか。グルーピングして1つのカラムに収容する方法があったりするのでしょうか。
ID カラム1 カラム2 カラム3 …
1 サンプル値1 サンプル値2 サンプル値3 …
2 サンプル値1 サンプル値2 サンプル値3 …
データ量がさほど多くなければ、すべての値をデータベースでなくアプリケーション側の変数として格納しておくという形式もとれるのかなと思っていますが、このようにした場合に起きる問題点にはどのようなものがあるでしょうか。
回答をお願いします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
No.3です。
補足です。JSONはほとんどのプログラミング言語で使えます。Cにもライブラリがあり使えるようですが、RubyやPythonなどの動的変数を使えるプログラミング言語の方が有り難みが実感できます。
YAMLはJSONよりも遅いがデータ構造の自由度が高いように思います。
これら2つはテキストで保存されますが、バイナリで保存するタイプのシリアライズもあります。
>・高速に入出力が出来る方が良い
検索対象にしなければ十分な速度があると思います。
>・複数アプリケーションからアクセス出来る方が良い
データベース側の問題ですが、以前はSQLite3を使っていました。読み込みだけでは同時でも全然問題は無いのですが、同時に書き込みができないとの書き込み速度が遅いです。複数から同時に書き込みたいのならPostgreSqlやMySQLなどがお勧めです。
別の方法として、データベースにはデータファイル名だけを登録しそれを利用する方法もありますが、データがそんなに大きくないようですの、シリアライズしてしまう方が管理が楽だと思います。
No.3
- 回答日時:
JSONやYAMLなどでシリアライズして1つのフィールドに入れてしまうの良いのでは。
それらは配列などのデータ構造を覚えていますので、簡単に元に戻せます。
ただし、そのデータを検索に使う場合は、元のデータ構造に戻す必要があるので多少時間がかかってしますの欠点です。
こちらでは、Rubyのactive recordとPostgreSqlの組み合わせで、大量の不定形のデータを管理しています。
active recordはシリアライズ宣言だけしておけば自動でやってくれます。またYAMLはほどんどのデータ形式を扱えますので、多分複素数データもそのまま扱えるはずです(これはRubyとYAMLの連携機能)
ご参考に
No.2
- 回答日時:
データベースは、あくまでデータを保存/閲覧するだけのもので、それをどう扱うかは、アプリケーション次第です。
単純に文字列した扱えないデータベースがあったとしても、その文字列を数値に変換するアプリを用意すれば「数値」として扱えます。
・いくつかの数値データを関連付けて管理したい
関連付けの方法次第です。
・数値データの中には、波形データもある(100サンプル程度の複素数値)
複素数そのものを扱えるDBはないかもしれませんが、 実数部と虚数部 (あるいは絶対値と角度)に分ければ数値として扱えます。
> ID カラム1 カラム2 カラム3 …
これだといろいろやっかいだと思います。
(データが100個のものと120個のものがあったら?)
ID, カラムNo, データ(実部), データ(虚部),(必要なら関連付けなどに使う情報)
という形がよいでしょう。
なるほど。一旦すべて文字列として格納してしまうというのも手ですね。
今回サンプルデータ1つ1つに対しての検索は行わないので、やはり配列化して1フィールドへ格納する方法をとりました。
No.1
- 回答日時:
データベースは、システムを作るための素材だといえるでしょう。
例えていえば、おいしい料理を作りたいという場合、素材となる卵、砂糖、塩などが必要です。が、それ以上にレシピが必要です。
レシピは、小保方さんがSTAP細胞の作成に必要な秘密を守るために、そのレシピを自分の頭の中のノートにだけ記載していたことからもわかるように、とても重要なものです。
質問者さんが作りたいシステムは、データベースを使えば可能になりますけど、データベースは素材でしかなく、レシピに相当する「アプリケーション」の開発が必要となります。
たぶん、質問内容からして、そういうアプリを質問者さんが作り上げるのは、かなり難しいと思えます。
大学院生ってことですから、このサイトではなく、同じ大学の情報系の教官とか、学生、院生に(謝礼・バイト代を出すなどして)協力を求めるのがいいのではないかと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのデータ整形について 3 2022/11/12 00:27
- フリーソフト 色々な形式の個人情報を後で参照しやすいようWindow10で管理したいのですが、どんな方法があるの? 1 2023/04/29 16:46
- Oracle データベースのカラムの型がCHAR型の場合で 値にシングルコーテーションつけなくても動作する場合と数 3 2022/04/25 12:00
- JavaScript Q&Aの掲示板を作成していてヤフー知恵袋やgoo質問のように質問ごとにURLを生成したい 5 2023/08/04 01:22
- IT・エンジニアリング ドメイン駆動設計の値オブジェクトについて質問 1 2023/05/13 02:50
- Oracle 参照関係のフィールドについて 1 2023/05/27 17:49
- 統計学 生物統計学の質問 3 2022/11/11 21:14
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- その他(データベース) 業務用のデータベースサーバーの選び方について 4 2022/11/22 10:22
- その他(データベース) IT用語について質問です。 以前ITパスポートの試験を受けた際にデータベースが何の集まりかについての 2 2022/12/10 12:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
GREATESTで NULLをスルーする方...
-
一部のカラムでdistinctし全て...
-
SELECT文で、指定カラム以外の...
-
MYSQLで全てのカラムから検索す...
-
UNIONする際、片方テーブルしか...
-
AUTO_INCREMENTに0はダメ?
-
MySQL(5.5)1テーブル内のカラ...
-
sql , insert で空行(全ての列...
-
SQLでカラムを追加し、条件に合...
-
update時にtimestampが更新され...
-
構造が異なる二つのテーブルをu...
-
now()かCURRENT_TIMESTAMPか
-
MySQLで論理名を取得する方法
-
DBエラーの意味
-
MySQL 一つのテーブルで登録日...
-
MySQLで先頭にカラムを追加
-
ROUND関数で、四捨五入ができな...
-
複数テーブルから全データ取得...
-
カラムとコラムの使い分け
-
オラクルのPLSQLの使い方を教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SELECT文で、指定カラム以外の...
-
一部のカラムでdistinctし全て...
-
UNIONする際、片方テーブルしか...
-
GREATESTで NULLをスルーする方...
-
now()かCURRENT_TIMESTAMPか
-
SQLでカラムを追加し、条件に合...
-
MYSQLで全てのカラムから検索す...
-
AUTO_INCREMENTに0はダメ?
-
sql , insert で空行(全ての列...
-
DBエラーの意味
-
MySQLで先頭にカラムを追加
-
構造が異なる二つのテーブルをu...
-
カラムをコピーして、新規カラ...
-
カラムとコラムの使い分け
-
エクセルかワードで家系図を作...
-
頭に0が付く文字
-
空文字のアップデート
-
文字列のカラムを数字と比較したい
-
ドロップダウンリストの連動し...
-
【SQL】select に ワイルドカー...
おすすめ情報