データベースそのものは単なる「データの保管場所」に過ぎません。実際にデータベース内のデータを操作するには、それ専用のソフトウェアが必要になります。
このチャプターでは、DBMSを中心に、データベースがどのような構成で動いているのかを理解します。「データベース(データを保管する場所)」と「SQL(データを操作する言語)」が、システム全体の中でどこに位置付けられるのかを理解していきましょう。
DBMSとは
データベースを操作するためのソフトウェアを「データベース管理システム(DBMS:Database Management System)」と呼びます。
DBMSは、データの保存、検索、更新、削除といった操作を効率的に行うための機能を提供します。PostgreSQLは、このDBMSの一種です。
他にも、Oracle Database、MySQL、Microsoft SQL Server、SQLiteなど、さまざまなDBMSが存在しますが、基本的な考え方はどれも共通しています。本書で学ぶSQLは、これらのDBMSを操作するための言語です。SQLを習得すれば、どのDBMSでも応用できる汎用的なスキルを身につけることができます。
クライアントサーバモデル
データベースシステムは、「クライアントサーバモデル」という仕組みで動いています。これは、役割を「クライアント(依頼する側)」と「サーバ(処理する側)」に分けて、効率的にデータを管理する方法です。
RDBMSの一般的なシステム構成となる、クライアントサーバ型と呼ばれる形態について学びます。
サーバ(データベースサーバ)
サーバは、データベースの本体が動作しているコンピュータのことです。サーバ上では、RDBMSが常に起動しており、データの保存や検索などの実際の処理を行います。
PostgreSQLをインストールしたコンピュータは、データベースサーバとして機能しています。サーバは、クライアントからの要求を受け取り、データベースに対して必要な操作を実行し、その結果をクライアントに返します。
クライアント
クライアントは、データベースサーバに接続してSQL文を送信し、結果を受け取る側のことです。前章で使用した「psql」は、コマンドラインで動作するクライアントツールです。
クライアントは、ユーザーが入力したSQL文をサーバに送信します。サーバはそのSQL文を実行し、結果をクライアントに返します。クライアントは受け取った結果を画面に表示することで、ユーザーがデータを確認できるようにします。
データのやり取り
クライアントサーバモデルでは、以下のような流れでデータのやり取りが行われます。
- クライアント → ユーザーがSQL文を入力
- クライアント → SQL文をサーバに送信
- サーバ → SQL文を実行してデータを処理
- サーバ → 処理結果をクライアントに返送
- クライアント → 結果を画面に表示
このように役割を分けることで、複数のユーザーが同時に同じデータベースにアクセスしても、サーバ側で適切に処理を管理できるようになっています。
クライアントツールの種類
データベースに接続するためのクライアントツールには、さまざまな種類があります。
- psql - PostgreSQL標準のコマンドラインツール(本書で使用)
- pgAdmin - PostgreSQL用のGUIツール
- DBeaver - 複数のDBMSに対応した汎用GUIツール
- アプリケーション - Webアプリケーションやモバイルアプリもクライアントとして機能
本書では、psqlを使ってSQLの基礎を学んでいきますが、将来的には用途に応じてさまざまなクライアントツールを使い分けることになるでしょう。
データベースシステムは、クライアントとサーバが協力して動作する仕組みになっています。サーバ側でRDBMSが実際のデータ処理を行い、クライアント側がユーザーとの橋渡しをする。この基本的な構造を理解しておくことで、これから学ぶSQLの操作がより明確にイメージできるようになります。