この世にあるWebサイトのほとんどが、「DBサーバ(データベースサーバ)」を利用しています。
DBサーバがなければ、「ユーザー登録」や「検索機能」などのアプリケーションを開発することができないからです。
つまり、Webサイトを作るWebエンジニアにとって、DBサーバの知識は必須ということになりますね。
今回は、そんなDBサーバの役割や種類について、初心者の方にもわかりやすく解説します。
もくじ
DBサーバの役割とは
DBサーバ(データベースサーバ)とは、アプリケーションで利用するデータを格納し操作するためのサーバです。
もう少し簡単にいうと、DBサーバは「データの倉庫」であり、必要なタイミングでデータを出し入れすることができます。
- データの作成(Create)
- データの読み出し(Read)
- データの更新(Update)
- データの削除(Delete)
これらの基本機能を、頭文字をとって「CRUD(クラッド)」とよびます。
このCRUDは、データベースに限らず、一般的なシステムにも備わっていますよね。
- ユーザー情報の登録
- ユーザー情報の表示
- ユーザー情報の更新
- ユーザー情報の削除
実は、これらの機能がシステムに備わっているのは、データベースを利用しているからなんです。
つまり、世の中のシステムのほとんどが、DBサーバにあるデータを操作することで「CRUD機能」を実現しているということ。
実際の処理の流れは、こんな感じです。
- APサーバ上のアプリケーションから、DBサーバにデータ操作を要求(CRUD)
- DBサーバは要求された処理をおこない、結果をAPサーバのアプリケーションに返す
DBサーバは、APサーバからの要求に従って処理を実行し、その結果を返すという流れが基本になります。

DBサーバとAPサーバを分ける理由
実際のシステムだと、DBサーバとAPサーバは別々のマシンに分けられていることが多いです。
これは、以下のようなメリットがあるからです。
- 「負荷分散」…1つのマシンに負担がかかり過ぎないようにする
- 「リスクヘッジ」…サーバが動かなくなるリスクを分散
1つのマシンにたくさんのサーバを起動させると、それだけマシンのCPUやメモリ使用率が上がります。
本来のパフォーマンス以上の負荷をマシンにかけると、当然ですが処理速度にも影響が出てきますよね。
そのため、サーバごとにマシンを分離させて、マシンの負荷を分散させているのです。
また、DBサーバとAPサーバのマシンを分ける理由として、リスクヘッジ(リスクを分散)できるというメリットもあります。
何かしらのアクシデントでAPサーバのマシンがダウンしても、DBサーバのマシンが分離されていれば影響は少なくて済みます。
もし、1つのマシンにすべてのサーバがあり、ダウンしてしまった場合、ほかのWebシステム(ほかのマシンのAPサーバ)からDBサーバにアクセスすることができなくなります。
つまり、1つのマシンがダウンすると、DBサーバを利用している他のシステムも動かなくなるってことなんです。
DBサーバ(データベース)の種類
DBサーバ(データベース)には、たくさんの種類がありますが、大きく分けて以下の2つに分けられます。
- RDBMS(リレーショナルデータベース管理システム)
- NoSQL(Not only SQL)
これらのDBサーバについて、もう少し詳しく解説していきますね。
RDBMSとは
RDBMS(リレーショナルデータベース管理システム)とは、「行」と「列」であらわした2次元の表で管理するデータベースのこと。
エクセルのシートで作った表をイメージしてもらえるといいと思います。あんな感じでデータを管理しています。
▼代表的なRDBMS(有料)
- Oracle Database(オラクル データベース)
- Microsoft SQL Server (マイクロソフト エスキューエル サーバ)
▼代表的なRDBMS(無料)
- Mysql(マイエスキューエル)
- PostgreSQL(ポストグレスキューエル)
- MariaDB(マリアデービー)
- SQLite(エスキュ―ライト)
データベースの種類は、ほかにもたくさんあるんですけど、とりあえずは無料で使えるMysqlを覚えておけば間違いないです。
実際の業務でも、Ruby、PHP、Javaなどの言語に限らず、幅広いプロジェクトで使われていますから。
また、SQL(RDBMSを操作する言語)は、ほかのデータベースでも応用できますので、Mysqlを扱うことができれば困らないはずです。

NoSQLとは
NoSQL(Not only SQL)とは、RDBMS以外のデータベースのことを指します。
つまり、リレーショナルデータベースではないので、行や列を使わずにデータを管理しています。
▼代表的なNoSQL(無料)
- MongoDB(モンゴデービー)
- Memcached(メムキャッシュド)
- Redis(レディス)
RDBMSに比べると業務で使う頻度は低いので、とりあえず「NoSQLって種類もあるんだ!」くらいでいまは大丈夫。
まずは、RDBMSをしっかり覚えて、必要になったタイミングでNoSQLに挑戦しましょう!
DBサーバの環境構築
DBサーバの構築自体は、簡単にできちゃいます。
Windowsに構築することもできるのですが、Webエンジニアを目指すのであれば、「Linux」で構築できるようになりましょう!
Web業界でWindowsを使うことは、正直ほとんどありません。
より実践的なLinux環境に慣れておくことが大切ですよ。


まとめ
- DBサーバとは、データを操作(CRUD)するサーバ
- 主にAPサーバから利用される
- DBサーバには、「RDBMS」と「NoSQL」がある
- Mysqlは実用的かつ無料で使えるRDBMS
- DBサーバはLinuxで構築するのが一般的
DBサーバの役割を理解したあとは、「Webサーバ」や「APサーバ」についても確認しておきましょう。
この3つのサーバの関係性を知ることで、「Webシステムの仕組み」をイメージしやすくなりますよ!
またね、キツネ(@kitaaaa_kitsune)でした!
