データベースの勉強を始めると必ず出てくるのが「RDB」と「NoSQL」という言葉です。名前は知っていても、何がどう違うのか説明しようとすると言葉に詰まる人も多いのではないでしょうか。結論から言うと、RDBは表形式でデータの形をあらかじめ決めて管理し、NoSQLは表以外の形で柔らかくデータを管理するという違いがあります。この記事では、未経験者がつまずきやすいRDBとNoSQLの違いを、現役インフラエンジニアがやさしく整理します。
RDBとは?表形式でデータを管理する仕組み
まず前提として、データベースとはアプリケーションが扱う情報を保存し、必要なときに取り出すための仕組みです。ユーザー情報や注文履歴、ログといったデータは、すべてどこかのデータベースに保存されており、大きく分けるとRDB(リレーショナルデータベース)とNoSQLという2つの系統があります。
RDB(Relational Database)は、データを「行」と「列」からなる表(テーブル)に整理して保存する仕組みです。Excelの表を思い浮かべると近いイメージで、あらかじめ「どの列に何を入れるか」という形(スキーマ)を決めてからデータを入れていきます。
代表的な製品にはMySQLやPostgreSQLがあり、SQLという言語を使ってデータを検索・更新します。テーブル同士を「注文テーブルの顧客IDは、顧客テーブルのIDと一致する」といった形で関連付けられるのが特徴で、注文管理や会員管理のように、データ同士のつながりを正確に保ちたい場面で広く使われています。
NoSQLとは?表以外の形でデータを管理する仕組み
NoSQL(Not only SQL)は、RDBのような表形式に縛られず、もっと柔らかい形でデータを保存するデータベースの総称です。1種類の技術ではなく、データの持ち方によっていくつかの種類に分かれます。
- ドキュメント型 — JSONに近い形でデータをそのまま保存する(例: MongoDB)
- キーバリュー型 — 1つのキーに1つの値を結び付けて保存する(例: DynamoDB)
- カラム指向型 — 大量データの集計に強い列単位の保存形式(例: Cassandra)
NoSQLは事前にスキーマを固定しないため、データの形がサービスの成長に合わせて変わりやすい場面に向いています。SNSの投稿データやアクセスログのように、項目が増減しやすいデータを扱うシステムで採用されることが多くあります。
RDBとNoSQLの違いを比較する
ここまでの内容を表で整理すると、違いがつかみやすくなります。
| RDB | NoSQL | |
|---|---|---|
| データの形 | 表(行と列) | ドキュメント・キーバリューなど様々 |
| スキーマ | 事前に固定 | 柔軟に変更しやすい |
| 得意なこと | データ同士の整合性を保つ処理 | 大量データの高速な読み書き |
| 代表例 | MySQL、PostgreSQL | MongoDB、DynamoDB |
どちらを使うかはどう決まるのか
現場では「RDBかNoSQLか」を最初から決めて作るのではなく、扱うデータの性質に合わせて選ぶのが基本です。会員情報や決済のように、データ同士の整合性を厳密に守りたい処理はRDBが向いており、アクセスログやセッション情報のように、形が変わりやすく量が多いデータはNoSQLが向いています。実際のシステムでは、両方を組み合わせて使うことも珍しくありません。クラウド上でこれらのデータベースを管理する考え方はクラウド(AWS)とは?で解説しているAWSの仕組みとも関わってきます。
未経験からはどこまで学ぶべきか
現役でインフラの現場にいる立場から言うと、未経験の転職段階でRDBとNoSQLを自在に使い分けて設計できるレベルまで求められることはほとんどありません。面接や最初の現場で求められるのは、「RDBとNoSQLの違いを自分の言葉で説明できること」と「なぜその場面でどちらを選ぶのか」という考え方の土台です。
まずはLinuxの基礎やネットワークの基礎を固めたうえで、AWSのRDSやDynamoDBといったマネージドサービスの役割を押さえていくと、学習の順番として無理がありません。インフラエンジニア全体の学習の進め方はキャリアの学習ロードマップで整理しています。
InfraDojoで学ぶ
InfraDojoでは、AWS CLI演習環境を通じてRDSのようなマネージド型データベースの作成や接続を実際に体験できます。表だけでは分かりにくいデータベースの動きも、自分の手で触ることで理解が深まります。インフラ全体の学習を順番に進めたい方は、キャリアの学習ロードマップから始めてみてください。
よくある質問
Q. RDBとNoSQLはどちらを先に学ぶべきですか?
RDBを先に学ぶのがおすすめです。多くの現場でまず使われているのはRDBで、SQLの考え方は他のデータベースを理解するときの土台にもなります。NoSQLは、RDBの特徴と対比しながら学ぶと理解がスムーズです。
Q. 未経験の転職でSQLはどこまで書けるようにしておくべきですか?
基本的なSELECT文で条件を絞り込んだりテーブルを結合したりできる程度で十分です。複雑なチューニングやパフォーマンス設計は、実務経験を積みながら身につけていくものなので、転職の段階で完璧を目指す必要はありません。
Q. NoSQLを学ぶにはまず何を触ればいいですか?
DynamoDBのように、AWS上で気軽に試せるマネージド型のNoSQLサービスから触ってみるのがおすすめです。キーとバリューを保存して取り出す基本操作を体験すると、RDBとの違いが感覚としてつかみやすくなります。