ストレージ・ファイルサーバ・データベースサーバの違いについて


# 初めに
「データベースを買おう」と言って外付けHDDを購入している人を見かけた。
データを保管するシステム（もしくは機器）を指す用語として、ストレージやファイルサーバ、データベースなどがある。
自身の認識を明確化するために理解した内容まとめた。

# 各者比較

詳細を後述してくが、端的には以下のようにまとめられる。
なお、ストレージに関しては本質的にハードウェアを指す概念のため、機能概念を含むサーバとは種類が違う。
[[自身の記事] サーバとは?](https://qiita.com/flcn-x/items/9b8c3e5657124b68139c)
そのため、そもそも用語として一律に扱わない方が良い。

|対象|概要|
|---|---|
|ストレージ|データを保存しておく記憶装置。|
|ファイルサーバ|データ共有のためのサーバ。ただし、データベースサーバではない(?)|
|データベースサーバ|共有・検索しやすく整理されたデータの集まりとそれを管理しているサーバ。|

# ストレージ
ストレージとは、情報を記憶する装置のこと。
役割面では広義として [ 記憶装置 ] ≒ [ メモリ（記憶領域） ] ≒ [ ストレージ（デバイス） ] と捉えてよい。
記憶装置はその名の通り、データの書き込み（Write）と読み込み（Read）が役割となる。
このため、ファイルサーバもデータベースサーバもハードウェアとしてストレージを有する。
※ウェブストレージであっても、どこかにはハードウェアが存在する。

>記憶装置は、コンピュータが処理すべきデジタルデータをある期間保持するのに使う、部品、装置、電子媒体の総称。
「記憶」という語の一般的な意味にも対応する英語としてはメモリ（memory）である。記憶装置は「情報の記憶」を行う。
他に「記憶装置」に相当する英語としてはストレージ デバイス（Storage Device）というものもある。
[@wiki](https://ja.wikipedia.org/wiki/%E8%A8%98%E6%86%B6%E8%A3%85%E7%BD%AE)


## HDD: Hard Disk Drive
HDDとは、磁気を用いてデータを読み書きするストレージ。
一般的に記憶装置と言えばHDDと思う。
ほとんどのコンピューターには搭載されている。
>磁性体を塗布した円盤を高速回転させ、磁気ヘッドを移動することで、情報を記録し読み出す補助記憶装置の一種である。
SSDと比べ、大容量でも低価格なことが特徴。
[@wiki](https://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%BC%E3%83%89%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AF%E3%83%89%E3%83%A9%E3%82%A4%E3%83%96)

## SSD: Solid State Drive
SSDとは、フラッシュメモリ技術を用いてデータを読み書きするストレージ。
駆動部分が無く、HDDと比較して高速、省電力、小型軽量化、耐衝撃性に強いなどのメリットがある。

>ソリッドステートドライブとは、半導体メモリをディスクドライブのように扱える補助記憶装置の一種である。
シリコンドライブ、半導体ドライブ、メモリドライブ、擬似ディスクドライブなどとも呼ばれる。
[@wiki](https://ja.wikipedia.org/wiki/%E3%82%BD%E3%83%AA%E3%83%83%E3%83%89%E3%82%B9%E3%83%86%E3%83%BC%E3%83%88%E3%83%89%E3%83%A9%E3%82%A4%E3%83%96)

## 光ディスク (CD, DVD, Blue-Rayなど)
光ディスクとは、レーザー光を用いてデータを読み書きするストレージ。
持ち運びやがしやすく低価格なため利便性は高いが、データ損失リスクが高い。

>光ディスク（Optical disc）とは、樹脂等で作られた厚さ数ミリ程度の円盤の表面に、微細な凹凸を形成する等の方法により、情報を記録するための記録媒体（ディスクメディア）である。
光ディスクの情報を読み書きするための装置は、光ディスクドライブと呼ばれる。
[@wiki](https://ja.wikipedia.org/wiki/%E5%85%89%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AF)

## USBメモリ
USBメモリ（USBフラッシュドライブ）とは、フラッシュメモリ技術を用いてデータを読み書きするストレージ。
小さな記憶媒体で持ち運びに利用し、耐衝撃性を有するが、長期間のデータ保存には向かない。

>USBフラッシュドライブ（USB flash drive、あるいはthumb drive）は、USBを用いてコンピュータに接続してデータの読み書きを行う半導体メモリを用いた補助記憶装置のうち、別途メモリーカードやリーダライタを必要とせずに単体で動作するものである。
日本国内においてはUSBメモリと呼ばれる。
[@wiki](https://ja.wikipedia.org/wiki/USB%E3%83%95%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%E3%83%89%E3%83%A9%E3%82%A4%E3%83%96)

# サーバ
サーバとは、要求に対して返答を行うサービス機能を有するものを指し、
具体的には具体的な機能や役割に応じてその目的も構成要素が変わるため、単語そのものは明示的な何かを示さない。
つまり、ストレージはただの記憶装置であり、サーバのハードウェア構成の一つとなる。
サーバは目的となる機能達成のためにその他のハードウェアを有し、特定のサービスを提供する。
[[自身の記事] サーバとは?](https://qiita.com/flcn-x/items/9b8c3e5657124b68139c)


## ファイルサーバ
ファイルサーバとは、ファイルを共有するサービスを提供するサーバ。
つまり、ファイル共有システムとして、ファイル共有に関する管理SWおよびその通信システムを有している必要がある。
ただし、そのサービスの内容や管理はあまり明確な定義がなく、ストレージやデータベースサーバと同様に扱われることもあるらしい。
この点は広義（専門的でない人にとっての用語を含む）とすると、明確な線引きの無い大きな集合とも捉えられる。

## データベースサーバ
データベース（DB：DataBase）サーバとは、データ管理機能を有するサービスを提供するサーバ。
データ管理の機能は、データベース管理システム(DBMS：DataBase Management System)と呼ばれ、
データベースサーバであるかどうかは当該システムの有無が大きな判断要素と思われる。

>データベース管理システムは、コンピュータのデータベースを構築するために必要なデータベース運用、管理のためのシステム、およびそのソフトウェアのことである。
データベースマネジメントシステムとも呼ばれる。
[@wiki](https://ja.wikipedia.org/wiki/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E7%AE%A1%E7%90%86%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0)

### 何をするのか
外部からの要求に対して、データの操作（CRUD）とデータの管理(DBMS：DataBase Management System)を行う。

#### データの操作（CRUD）
CRUDは基本機能のイニシャルを並べた用語で、以下の動作に該当する。
・データの作成 ( Create )
・データの読み出し ( Read )
・データの更新 ( Update )
・データの削除 ( Delete )

>CRUD（クラッド）とは、ほとんど全てのコンピュータソフトウェアが持つ永続性の4つの基本機能のイニシャルを並べた用語。
その4つとは、Create（生成）、Read（読み取り）、Update（更新）、Delete（削除）である。
ユーザインタフェースが備えるべき機能（情報の参照/検索/更新）を指す用語としても使われる。
[@wiki](https://ja.wikipedia.org/wiki/CRUD)

#### データの管理（DBMS）
データベース管理システム（DBMS: database management system）とは、コンピュータのデータベースを構築するために必要なデータベース運用、管理のためのシステム、およびそのSW。
データを値や表の形で永続化し、そのデータ間の関係についても永続化することで、必要なデータを必要な時にユーザに提供する。

>ネットワーク型データモデルのDBMSや、階層型データモデルのDBMS、あるいは初期の非力なパーソナルコンピュータなどではカード型データモデルのDBMSなどが幅広く利用されていたが、近年では関係モデルを扱う関係データベース管理システム (RDBMS) が主流である。
また、関係データベース管理システムに、利用者が独自のデータ型や関数を拡張可能なオブジェクト関係データベース (ORDBMS) や、オブジェクト指向プログラミング言語との親和性が高いオブジェクトデータベース (ODBMS)、データモデルにXMLを採用したXMLデータベース (XML DB) などが開発され、利用が広まっている。
[@wiki](https://ja.wikipedia.org/wiki/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E7%AE%A1%E7%90%86%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0)

### どんなものがあるのか
データベース規模や用途に応じて種別がある。
なお、以下の表はSWであって、ハードウェアやOSに関するものではない。


|データベースサーバ ( SW )|特徴|
|---|---|
|Oracle|世界初の商用RDBMS (oracle社運営)|
|MySQL|世界で最大シェア(oracle社運営)|
|PostgrsSQL|日本国内では半数程度シェア|
|Microsoft SQL Server|Windowsと相性が良い|
|SQLite|非常に簡易|

# 余談：データベース
「データベース」という単語は、データベースサーバと同一でない意味合いがあるようだ。
データベースを運用・管理するためのサーバがデータベースサーバになる（狭義）と思われるが、
個人的には広義として、プログラム的な管理ではなく人力による一定のルールで情報保管されているシステムに対して同単語が使用されている。

>データベースとは、検索や蓄積が容易にできるよう整理された情報の集まり。 
通常はコンピュータによって実現されたものを指す。
コンピュータを使用したデータベース・システムでは、データベース管理用のソフトウェアであるデータベース管理システムを使用する場合も多い。
[@wiki](https://ja.wikipedia.org/wiki/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9)

厳密な意味を推察する気はないので余談としているが、
(完全な無作為ではないが) 何の気なくデータを複数人が保管していたファイルサーバが、
データが貯まってきたある時期から「データベース」と呼ばれだす理由がここにあると思った。
ポイントは、「データベースサーバ」と言い出さなければ広義では誤っていないと解釈できる。

# 最後に
「初めに」で記載したような、HDD（ストレージ）を購入し、そこに（SWでない）対人間の管理ルールのみでデータを格納する仕組みであっても「情報管理のためのデータベース」を構築したといえる。のかもしれない。
同一・類似単語で指定される類似的なシステムであっても、最終的なシステムは認識者によって大きく可能性があることに注意したい。

# 自身の関連記事

https://qiita.com/flcn-x/items/9b8c3e5657124b68139c

https://qiita.com/flcn-x/items/3b15fcae62df2e6b6667

# 参考・引用

https://www.storage-channel.jp/blog/what-is-storage.html