派遣で働くエンジニアのスキルアップを応援するサイト

PRODUCED BY RECRUIT

【基本情報技術者試験のトッカカリ】関係データベース(リレーショナルデータベース)のしくみ

資格を取ろうと思ったけれど、どうも勉強が進まない。そんな状況を打開する【トッカカリ】となることを目指した本連載。第2弾のテーマは「データベース」です。

現在では、使われていないシステムがないと言っても過言ではないほど、重要なデータベース。「基本情報技術者試験」「ITパスポート」などにも登場しますが、大物すぎて、SQL文の丸暗記になってしまいがちです。

今回は、「そもそもデータベースってどんなものなの?」というところから、データベースの基礎についてゆるく学んでいきます。試験に挑戦予定の人だけでなく、「データベースの基礎を知りたい」人にもおすすめです。

今日のニャゴロウ講座
そもそも「データベース」とは......?

そもそもデータベースって何?

データベース(Database)とは、簡単に言えば、「一定の基準で集められたデータの集合体」です。略して「DB(デービー)」とも言います。

データベースというと、特殊なもののように感じますが、何かの目的や基準で集められたデータであれば、「データベース」と言えるので、例えば、スマホに入っている電話帳も、銀行の通帳も、図鑑や辞書などもすべてデータベースです。

データベースは、電子的なものであるとは限りません。紙媒体であっても、瓦に刻まれていても、「一定の基準で集められたデータの集合体」であれば、データベースです。

まあ、我々エンジニアが扱うデータベースは、電子的なものがほとんどですけれども!

■DBMSとSQLって何?

データベースは、あくまでもデータの集合体に過ぎないので、自分で動くことはできません。データとは、倉庫に詰まれた段ボールのようなものであり、データベースはそれをしまう倉庫のようなものです。ダンボールが勝手に変質しないように、データも勝手に変化はしません。皆さんだって、保存しておいた電話番号の数字が勝手に増えたり減ったりしたら困るでしょう?

ですから、データベースのデータを変更したい場合は、誰かが意図的に、倉庫に入れたり出したり、並び替えたりしなければなりません。この操作を担当するのが「データベース管理システム(DBMS=ディービーエムエス)」と呼ばれるソフトウェアです。倉庫管理人のようなものだと想像するとわかりやすいでしょう。

▲データベース、DBMS、SQLの関係性

じつは、この倉庫管理人であるDBMSも、自分で判断して動くことはできません。誰かから命令されると、そのとおりに動く性質のものです。

では、誰が命令するかというと、人間や、プログラムです。そして、その命令するときに使う言語の一つがSQL(Structured Query Language)です。エスキューエル、もしくは、シークェルと読みます。

*Database Management System(データベースマネジメントシステム)の略

関連データベースとDBMS

データベースには、種類が色々あります。電話帳や、通帳のような構造がしっかりしたものもあれば、単純な構造で手軽に使えるものもあるのです。

中でも代表的なのが、「関係データベース(リレーショナルデータベース)」です。略してRDBとも言います。関係データベースは、住所録や台帳のように二次元表の形式を取り、キッチリと構造が整っているのが特徴です。データの種類を細部まで設定するため、準備に時間がかかりますが、その分、高度な操作ができます。データに対する操作に、SQLを使用するのもこのタイプのデータベースです。

▼関係データベース(表のように項目がキッチリ決まっている)

ところで皆さんは、データベースと言えば、

  • MySQL(マイエスキューエル)
  • PostgreSQL(ポスグレスキューエル)
  • MariaDB(マリアデービー)
  • Oracle Database(オラクルデータベース)

などの名前を聞いたことがないでしょうか。これらは、DBMSの種類です。そして、すべて関連データベースのDBMSなので、「RDBMS(リレーショナルデータベース管理システム)」とも呼ばれます。

■非リレーショナルデータベース

そして、関連データベース以外の種類のデータベースを、大雑把に「非リレーショナルデータベース(非RDB)」と呼びます。いくらなんでも、大雑把すぎる分類なのですが、歴史的にそう呼ばれています。

非リレーショナル型は、構造が単純で設定することが少ないため、すばやく構築できるタイプが多いです。複雑なことはできませんが、アクセスも高速です。代表的な仕組みにキーバリュー(Key-Value)型や、ドキュメント指向型があります。元々はSQLを使用しなかったため、NoSQLデータベースとも呼ばれます。

データベースとWebシステム

ところで、現在使われているシステムの多くは、「Webシステム」という形式を取っています。Webシステムとは、WebサーバーやHTMLなど、Webの仕組みを利用して構築したシステムです。サーバーの形式でシステムを構築するときによく使われます。

もし、Webシステムを利用しない場合は、一から仕組み自体を作らねばならず、費用も人員も、多くかかってしまうので、よほどの理由がなければやらないのです。皆さんが使っているSNSや、スマホゲーム、ソフトウェアのほとんどは、このWebシステムのしくみを使ったプログラムとデータベースの組み合わせで作られていると言ってよいでしょう。

Webシステムでよくある組み合わせとしては、Webサーバー上にプログラムや表示するHTML・画像を置き、データはデータベースサーバーに保存するものです。

Web開発エンジニアの初心者が最初にWordPressを題材として学習することが多いですが、この理由は、WordPressがまさにプログラムとデータベースの組み合わせで作られており、基礎の勉強としてわかりやすいからです。

組み合わせるデータベースは、関連データベースだけでなく、キーバリュー型や、ドキュメント指向型などもよく使われます。

こうしたWebシステムの仕組みを使って開発を行う場合、Webサーバー用ソフトウェアとして、Apache(アパッチ)やnginx(エンジンエックス)、データベース用ソフトウェアとして、MySQLやPostgreSQLが使用されます。これらのような下支えをしてくれるソフトウェアは「ミドルウェア」とも呼ばれます。

ニャゴロウ先生のまとめ

データベースについて駆け足でお話してきましたが、なんとなくイメージは湧いたでしょうか。データベースは、現場でよく使われますし、SQLも必須と言ってよいものなのですが、データベースのしくみについて理解がおよんでない人も多く見かけます。

なにかと覚えることが多いデータベースの分野ですが、暗記で済ませようとすると、かえって辛くなってしまうので、こうしたしくみをよく理解することから始めるとよいでしょう。

【筆者】小笠原 種高さん(ニャゴロウ先生)
技術ライター、イラストレーター。システム開発のかたわら、雑誌や書籍などで、データベースやサーバー、マネジメントについて執筆。図を多く用いた易しい解説に定評がある。主な著書に『なぜ?がわかるデータベース』(翔泳社)、『図解即戦力 Amazon Web Serviceのしくみと技術がこれ1冊でしっかりわかる教科書』『ゼロからわかるLinuxサーバー超入門 Ubuntu対応版』(技術評論社)、『仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん』(マイナビ出版)がある。

※本記事に記載されている会社名、製品名はそれぞれ各社の商標および登録商標です。