質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

5回答

260閲覧

データベースの重要性について

with_mikumiku

総合スコア8

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

2クリップ

投稿2020/05/28 08:50

###前提
普段はゲームプログラミングをしていて、今Webプログラミング勉強中の初心者です。
前から思っていた素朴な疑問がありまして、お答えいただければ幸いです。

##質問
データベースに関して、種類としては、MySQLのようなRDBMSやRedisなどのオンメモリのNoSQLなどがあるようですが、どちらも基盤技術として扱われているほど大層なものだとは思えません。

SQLなどの命令を解釈して、ファイルシステムから適切なデータを持ってくるシステム
オンメモリで、辞書型、リスト型で値を保持し、キーが送られてきたらバリューを返すシステム

どちらも、このような実装で簡易的に代替が効くと思っているあたり、データベースの真価を理解できていないのかもしれません。

普段データベースをお使いの方、私に必要性を説いていただけないでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2020/05/28 09:02

「SQLなどの命令を解釈して、ファイルシステムから適切なデータを持ってくるシステム」と「RDBMS」の違いはどこにあるとお考えですか?
dodox86

2020/05/28 09:04

秒間数千~数万の異なるクライアントからの異なる種類のデータへの参照(SELECT)、更新(UPDATE)、新規追加(INSERT)、削除(DELETE)などの各種のリクエストを矛盾も破綻もなくデータに反映させ、動き続けることを考えてみてください。データは「壊れてしまいました。ユーザーさん、また作ってください。」では済まない重要なものとします。
dodox86

2020/05/28 09:07

サーバーベースのゲームのインフラだって同じですね。
with_mikumiku

2020/05/28 09:08

そうですね、より多くのアクセスをさばけるように、非同期処理を用いて工夫して書かれていたり、 同じ情報にアクセスできないようにロックアップを明示的にしているところなどだと考えております。 また、大量のデータから検索するための最適なアルゴリズムを選択しているところでしょうか。
with_mikumiku

2020/05/28 09:14

dodox86様回答ありがとうございます。 では、信頼性のあるものをモジュール化して、安心して扱えるようにするため、ということですね。 それだけ、と思っていましたが、信頼性に価値があると心得ておきます。
dodox86

2020/05/28 09:21

> 信頼性のあるものをモジュール化して、安心して扱えるようにするため、ということですね。 それは結果論ではあるかな、と思います。新たなDBSが市場に投入されるのは、マーケティング的な要素もあるでしょう。あくまで状況証拠ですが、多くのデータベース(システム)が、長い時間とバージョンアップを重ねて信頼性を上げて市場にあるのが、プログラムを作るたびにスクラッチでオレオレDBSを作ることを良しとしないことに繋がると考えています。すでに質問者さんは別回答へのコメントで述べられていますが、大げさなRDBMSを使うほどでもないシステムであれば、使わないでオレオレDBSでも良いのではないでしょうか。責任の所在をどこに置くかが論点だと思います。
with_mikumiku

2020/05/28 09:27

なるほど、自分でもそうなのではないかと思っていたところでしたが、回答者様方の意見を聞き、初めてはっきりしました。規模や責任によって柔軟に判断していきたいと思います。
dodox86

2020/05/28 09:31

良くない意味での「車輪の再発明」にならないことを願っています。(大抵、自分が作った方が既存のものより良いものができると思いがちなので)
hentaiman

2020/05/28 15:55

>SQLなどの命令を解釈して、ファイルシステムから適切なデータを持ってくるシステム と思った時に使えるsqliteってのが昔からあるのでOracleなどを使うほどでは無いし軽く使えるものをと考えた人は20年ぐらい前にいたんでしょうね
guest

回答5

0

データベースとデータベース管理システムの定義は別物です。
コンビニしかりで、ITCと絡まってデータの有効活用は時流です。

ビッグデータで検索してみてください。

投稿2020/05/28 09:08

sazi

総合スコア25195

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

with_mikumiku

2020/05/28 09:12

ありがとうございます。 無知を承知の上で聞いていたので、教えていただきありがたいです。 調べてみますね。
guest

0

質問が成り立っていません。

MySQLのようなRDBMSやRedisなどのオンメモリのNoSQLなどがあるようですが、どちらも基盤技術として扱われているほど大層なものだとは思えません。

SQLなどの命令を解釈して、ファイルシステムから適切なデータを持ってくるシステム

オンメモリで、辞書型、リスト型で値を保持し、キーが送られてきたらバリューを返すシステム

MySQLはまさに「SQLなどの命令を解釈して、ファイルシステムから適切なデータを持ってくるシステム」ですし、Redisは「オンメモリで、辞書型、リスト型で値を保持し、キーが送られてきたらバリューを返すシステム」です。

たとえ小規模であっても、同等のものを自前で開発するとなれば、相応の工数がかかるかと思います。ぶっちゃけ、既製のものを持ってくるほうが楽です。

投稿2020/05/28 09:15

maisumakun

総合スコア145184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

with_mikumiku

2020/05/28 09:17

なるほど、理解していたものと等身大のものであるということであれば、単に感覚の問題となってくるため、これ以上の議論余地はないかもしれませんね。 気になっていたので、ほかの方の意見が聞けて良かったです。
guest

0

どちらも基盤技術として扱われているほど大層なものだとは思えません。

例えばグーグルのシステムがデータベースなしに機能させられると本気で思ってますか?

投稿2020/05/28 09:04

KojiDoi

総合スコア13671

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

with_mikumiku

2020/05/28 09:11

いえ、それはとても思えません。 では、例えば社内で数十人程度で使う規模であれば、必ずしもデータベースを用いる必要はない、という理解であっていますでしょうか?
dodox86

2020/05/28 09:21 編集

※[コメントする場所を誤りました。削除させていただきます]
guest

0

ベストアンサー

SQLなどの命令を解釈して、ファイルシステムから適切なデータを持ってくるシステム
オンメモリで、辞書型、リスト型で値を保持し、キーが送られてきたらバリューを返すシステム

そのようなもので代替できる場合もあるとは思います。

参考情報

  • データベースシステムとファイルシステムの違いとは?

https://imitsu.jp/matome/web-system/1617340885311618

  • データベースVSファイルシステム

https://qiita.com/tenn25/items/bd8ee5c3491d2860cae6

  • データベースとSQLの基本

https://xtech.nikkei.com/atcl/learning/lecture/19/00096/00002/

リレーショナルデータでは、情報の保存と検索だけではなく、"リレーショナル" という言葉が意味をもってきます。

複数の表から別の表をつくりだしたり、セル値を使って計算をしたりもできます。(エキセルの機能みたいなもの)
しかも ものすごい数 (1000 万件とか 数万件とか)について、高速に扱うことができるのです。(エキセルでは行や列の制限がある)

投稿2020/05/28 21:27

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

このような実装

の「このような」が分かりませんが、
・排他制御が不要(データが不整合になってもかまわない)
・トランザクション処理が不要(データが不整合になってもかまわない)
・障害回復が不要(何かあれば、ディスクバックアップ時点に全部戻ってもかまわない)
・性能は追求しない

であれば、生のファイル・生のメモリーでも良いかと思います。

投稿2020/05/28 09:55

otn

総合スコア84555

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問