##前提
・私自身、初学者ですので盲信なさらずに。
・できるだけ噛み砕いて抽象化して記載しています。
##目的
・コードは好きだが、「インフラ側があやふやだ...」ってなったので、備忘録作成。
・初学者の役に立てたら。という思いから。
###DB (データベース)
#####〜情報の倉庫〜
データベースは「情報の倉庫」です。
ユーザーから入力された情報・予め入れておく情報などが入っています。
通販を例に挙げると
商品の情報 (DB) > 出力 > 画面に表示
お客様情報 > 入力 > 保存 (DB)
(有名DB)
MySQL , PostgreSQL , Oracle Database , SQLite , MongoDB
サーバー
#####〜情報の配達員〜
サーバーは「情報の配達員」です。
サーバー内の情報をクライアント(ユーザー)に運びます。
(*厳密には違うが、あくまでイメージ)
通販を例に挙げると
ユーザー(ページ情報要求) > サーバー(探して提供) > 画面に表示
さらに深堀り
サーバーは「Webサーバー」,「APサーバー」,「DBサーバー」に大きく分けることができます。
「Webサーバー」
クライアントの要求したページ情報を提供(HTMLなど)
「APサーバー」
プログラムを提供。
Webサーバーから送られてきたリクエストを元に、PHPなどの動的ファイルの実行を行います。
必要であれば、DBから情報をとってきます。
「DBサーバー」
DBの情報を提供(ユーザー情報など)
結局DBとサーバーの関係とは...
私はずっと勘違いしていたのですが、サーバーという大枠の中にDBが存在します。
・サーバーと言う大枠(配達屋)がある
・更に3つに小分けできる
・そのうちのDBサーバーを用いて、DBから情報をとってくる。
という表現がしっくりくると思います。
まとめ
・DB(データベース)は情報の倉庫
・サーバーは情報の配達員
・サーバーは Web , AP , DBサーバーに分けられる
・そのうちのDBサーバーを使ってDBにアクセスしている。
所感
初のアウトプットを行うにあたって、「間違った情報を流してはいけない」という思いから、とにかく調べました。
調べる過程で、自分は抽象的な表現の記事の方が理解しやすい。という気づきがありました。
また、アウトプットを行う際、抽象表現の言語化を行うため、知識の定着にもなったと感じました。
ソース
#####全体
https://www.itscom.co.jp/forbiz/column/office-environment/1087
#####DB関連
https://26gram.com/what-is-database
https://www.acrovision.jp/career/?p=1912
#####サーバー関連
https://www.rworks.jp/system/system-column/sys-entry/16259/
https://wa3.i-3-i.info/word14407.html
https://youtu.be/uTK55uaUJKQ
https://www.otsuka-shokai.co.jp/words/application-server.html
#####MySQL関連
https://www.sejuku.net/blog/9021
#####書籍
はたらくプログラミング
サーバーのしくみ