こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

-広告-

解決済みの質問

リレーショナルデータベースにSQLを保存?

コンピューターを使うには、データ(電子データ)が必要です。CPU、メモリー、グラフィックボード、チップセット、電源、ディスプレーなどが充実していても、データが空なら単なる鉄の塊で、飾るだけです。

データを保存するにはデータベースが必要と聞いた事があります。本当でしょうか?確かに、データベースにデータを保存する事が多そうですが、データベース以外にもデータの保存スペースがある気がします。私の記憶が確かなら、、キャッシュメモリーはデータベースの構成要素の一であり、キャッシュメモリーにデータがあればデータベースにデータがあるという事と聞いた気がする。

色々と記憶が曖昧で、混乱して、このように質問してます。

データベースにも色々ありますが、その王様はリレーショナルデータベースだとよく聞きます。リレーショナルデータベースは、ありとあらゆるデータを保存できて、何にでも活用できるそうです。本当でしょうか?

例えば、リレーショナルデータベースの操作にSQLが使われますが、このプログラム文をリレーショナルデータベースに保存しますでしょうか?私の認識だと、SQLはテキスト形式のSQLファイルで、マイドキュメントなどのフォルダーに保存します。

SQLの他、小説、写真、音声、ビデオ、3次元CADなども、リレーショナルデータベースに保存しますでしょうか?

私の認識だと、リレーショナルデータベースは表(2次元マトリクス)の集合です。表はセルで作られていて、行×列に配置しています。セル1つには、1行文字列、実数(整数と有限少数)、時刻、NULLだけが保存できます。これだと自由度や用途が狭く限られそうですが、セルを膨大に用意できて、これで幅広い自由度を得ます。

リレーショナルデータベースにも小説を保存できる。その方法は、小説を30字区切りで分割し、主キーを振ること。1つのセルに30字の文を保存し、その下に次の30字の文を保存し、これを終わりまで繰り返します。正しいでしょうか?

リレーショナルデータベースにも写真を保存できる。先ず、赤表、青表、緑表の3つを用意する。各表のマトリクスサイズは膨大で写真のピクセルがセルに対応し、行×列に配置します。各セルには画素3原色の強度数(0~255だとgif形式だっけ?)を保存する。その後、赤青緑の3表を合成し、ビットマップで出力します。正しいでしょうか?

リレーショナルデータベースは銀行でよく使われていて、お金の出入りや顧客管理でリレーショナルデータベースは大活躍しているそうです。だけど、本当はもっと用途が広い?

フォルダファイルシステムとデータベースは別物と聞いた事があります。一方で、フォルダファイルシステムの基本はデータベースで、データベースに何かアプリを組み合わせてフォルダファイルシステムが形成されているとも聞いた事があります。どっちが正しいでしょう?どっちも間違い?

投稿日時 - 2014-08-09 11:40:34

QNo.8710094

暇なときに回答ください

質問者が選んだベストアンサー

>リレーショナルデータベースにも写真を保存できる。
そういう保存の仕方もできますけど、バイナリファイルも保存できるのでそのまま保存するほうが多いと思います。


>リレーショナルデータベースは銀行でよく使われていて、お金の出入りや顧客管理でリレーショナルデータベースは大活躍しているそうです。
どのようにも使えます。


>フォルダファイルシステムとデータベースは別物と聞いた事があります。
>一方で、フォルダファイルシステムの基本はデータベースで、
>データベースに何かアプリを組み合わせてフォルダファイルシステムが形成されているとも
>聞いた事があります。どっちが正しいでしょう?どっちも間違い?
データベースシステムも物理的にデータを保存するためにファイルシステムを使います。ファイルシステムのどこにどのデータを格納しているのかを管理するのがデーターベースシステムです。
ファイルシステムも、HDD上のどこにどのファイルが保存しているのかを格納しているシステムがあります。広い意味ではこれもデータベースです。

投稿日時 - 2014-08-09 12:14:25

お礼

さんきゅー

投稿日時 - 2014-08-10 10:53:12

このQ&Aは役に立ちましたか?

11人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(3)

ファイルシステムもデータベース(DB)も、何かしらのデータを格納する「道具」の種類であって、要はそれを使って便利かそうで無いか?で適時取捨選択する物です。

例えばデスクトップPCは何でも出来る便利な道具ですが、わざわざ電車の中で使いますか? 背中にでっかいバッテリを背負って、大きなモニタまで抱えて。
でも、そういう事をする奴はたまにいますが、普通はやりません。物理的にはもちろん可能ですが、便利では無いし、メリットも無いからです。普通の賢い人間は、スマホやノーパソを使うもんです。

DBもファイルシステムも、そういう風に取捨選択するモノです。

>コンピューターを使うには、データ(電子データ)が必要です。
それ以前に”プログラム”が必要です。データだけあってもタダの箱です。

>データを保存するにはデータベースが必要と聞いた事があります。本当でしょうか?
正しい言い方をするなら、データを保存する一つの形式(方法論)にDBがある、というものでしょう。

>キャッシュメモリーはデータベースの構成要素の一であり
構成要素では無い気がしますが。どちらかというと、高速化の為の工夫といった感じでしょう。
(もちろん現実のシステムではキャッシュのヒット率を高めたりするためにインデックスを振ったりなんだと色々行うわけですが。キャッシュはDBというよりPC本体のメモリ(DBを稼働させるシステム側)に構成されるものです)

>キャッシュメモリーにデータがあればデータベースにデータがあるという事と聞いた気がする。
あまたの状況の一瞬では成り立つ事でしょうが、一般的な事象とは言えません。
通常のシステムでは、DBの実体(データ)はストレージまたはコンピュータの主記憶(メモリ)にあります。
キャッシュは利用頻度の高い特定のデータを、アクセスが高速なメモリに一時的に蓄積されていることを示しているため、すべてのデータが全ての時間軸でキャッシュにあるということはあり得ません。

>ありとあらゆるデータを保存できて、何にでも活用できるそうです。本当でしょうか?
本当です。
ただし、「出来る」と「普通はそうする」はイコールではありません。
音楽で使う五線譜のノートは、国語でも算数で図画工作でも使おうと思えば使えますが、普通は音符を並べる事にしか使いません。
写真データをDBに入れることは出来ますし、そういう実装をしたシステムもたくさんありますが、大概の人は写真データはファイルシステムに画像ファイル(例えばjpegファイル)といった形式にして保存するでしょう。

> 例えば、リレーショナルデータベースの操作にSQLが使われますが、このプログラム文をリレーショナルデータベースに保存しますでしょうか?
やろうと思えば出来ますし、DBのデータとしてで無ければストアドプロシージャという仕組みが結構使われています。DBのシステム側によく使うSQL文を前もって登録しておくやり方です。
http://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%88%E3%82%A2%E3%83%89%E3%83%97%E3%83%AD%E3%82%B7%E3%83%BC%E3%82%B8%E3%83%A3

>私の認識だと、SQLはテキスト形式のSQLファイルで、マイドキュメントなどのフォルダーに保存します。
よっぽどのことが無い限り、SQLをマイドキュに保存するようなことはしません。
SQLはプログラム内部(敢えて言うならProgram Files以下)もしくは前述のストアドに保存します。
人間が読める=テキスト形式ではありませんし、SQLファイルなる物も(実装によって色々あるでしょうが)通常メインのプログラムファイルと同じフォルダに入れるべき物です。
マイドキュメントは、ユーザのファイルを保存する場所であって、プログラムの構成要素を保存するところではありません。(やろうと思えば出来ますが、私の関わるプロジェクトでそんな実装したら設計ミスとしてやり直させます)

>SQLの他、小説、写真、音声、ビデオ、3次元CADなども、リレーショナルデータベースに保存しますでしょうか?
出来ますが、普通はやりません。メリットが無いからです。
ただし、一部のクラウド上のファイル保管サービスの類では、あらゆるデータをDBに入れてしまうといった実装もあります。それは全部DBに突っ込めばメリットがある使い方だからです。

>セル1つには、1行文字列、実数(整数と有限少数)、時刻、NULLだけが保存できます。
どこのDBのことを示しているのかよく分かりませんが、バイナリだろうと特定の文字数だろうと、より多くの種類のデータを扱えます。

>リレーショナルデータベースにも小説を保存できる。その方法は、小説を30字区切りで分割し、主キーを振ること。1つのセルに30字の文を保存し、その下に次の30字の文を保存し、これを終わりまで繰り返します。正しいでしょうか?
原理的には間違いと言えませんが、現実論からいうと間違いでしょう。
今のDBは、質問文で曰く1セルに小説一冊分全部入れられます。
わざわざ30文字で区切る実装を行う意味もメリットもありませんし、そもそも主キーは何を振ります?
主キーになんの意味を持たせて、DBのデータの検索性を増すのでしょうか。

>リレーショナルデータベースにも写真を保存できる。先ず、赤表、青表、緑表の3つを用意する。各表のマトリクスサイズは膨大で写真のピクセルがセルに対応し、行×列に配置します。各セルには画素3原色の強度数(0~255だとgif形式だっけ?)を保存する。その後、赤青緑の3表を合成し、ビットマップで出力します。正しいでしょうか?
原理的には間違いと言えませんが、現実論からいうと間違いでしょう。
今のDBは、質問文で曰く1セルに画像ファイルを全部入れられます。
わざわざRGBを分割した1ピクセル=1セルに分ける意味は何もありません。
人に手紙を送るとき、はがきに一文字ずつ書いて、文字数分の枚数のはがきを送りつけるような物です。

>リレーショナルデータベースは銀行でよく使われていて、お金の出入りや顧客管理でリレーショナルデータベースは大活躍しているそうです。だけど、本当はもっと用途が広い?
コンピュータシステムのほぼ全てにDBが使われていると言っても過言では無いでしょう。
ただし、DBの中にリレーショナルデータベースという種類のシステムがあるので、リレーショナルではないDBもあります。KVS等が有名です。
http://ja.wikipedia.org/wiki/NoSQL

>フォルダファイルシステムとデータベースは別物と聞いた事があります。一方で、フォルダファイルシステムの基本はデータベースで、データベースに何かアプリを組み合わせてフォルダファイルシステムが形成されているとも聞いた事があります。どっちが正しいでしょう?どっちも間違い?
考え方としては、そうと言うことも出来る、といったものでしょう。
http://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0

投稿日時 - 2014-08-09 14:58:07

お礼

さんきゅー

投稿日時 - 2014-08-10 10:52:12

-広告-

ANo.1

>データを保存するにはデータベースが必要と聞いた事があります。本当でしょうか?
データを保存するにはデータベースでなくてもファイルでもOKです。WordやExcelなんかはファイルで保存しますよね。データベースを使うのはデータの管理が容易であるからにすぎません。

>リレーショナルデータベースは、ありとあらゆるデータを保存できて、何にでも活用できるそうです。
本当です。

>例えば、リレーショナルデータベースの操作にSQLが使われますが、
>このプログラム文をリレーショナルデータベースに保存しますでしょうか?
保存できます。なんでも保存できますので。

>私の認識だと、SQLはテキスト形式のSQLファイルで、マイドキュメントなどのフォルダーに保存します。
ファイルでも保存できますし、データベースでも保存できます。

>SQLの他、小説、写真、音声、ビデオ、3次元CADなども、
>リレーショナルデータベースに保存しますでしょうか?
できます。

>私の認識だと、リレーショナルデータベースは表(2次元マトリクス)の集合です。
厳密には違います。集合したデータが表形式というだけです。いくつかの要素が集合したものがタプル(レコード)で、タプルの集合が表です。

>セル1つには、1行文字列、実数(整数と有限少数)、時刻、NULLだけが保存できます。
データの形式はデータベースによります。バイナリー型を格納できるようなデータベースもあります。この場合、画像ファイルや音声ファイルも格納できます。

>リレーショナルデータベースにも小説を保存できる。その方法は、小説を30字区切りで分割し、
>主キーを振ること。1つのセルに30字の文を保存し、その下に次の30字の文を保存し、
>これを終わりまで繰り返します。正しいでしょうか?
文字の最大長が30ならそうですけど、いまどきのデータベースなら何千文字でも格納できますので分割する意味はありませんけど。

投稿日時 - 2014-08-09 12:07:13

お礼

さんきゅー

投稿日時 - 2014-08-10 10:52:42

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-