かとのぼのマイコード・マイライフ

個人開発者かとのぼのプログラミングと雑談のブログです。たまに読書と銭湯も

データベース言語とは?【入門者向けデータベース言語の基礎知識】

what-is-databaselang

この記事では、データベースとはどういったものであるかの説明し、そのデータベースを扱うためのデータベース言語の説明、データベース言語の種類と学習方法について説明します。

データベース言語とは?

データベース言語とは、コンピューターでデータベースを扱う時に使う言語です。

データベースという概念は、実は私たちの身近な物であるため比較的容易に掴めると思いますが、データベース自体は大変に奥深く、学習して使いこなすのが難しいです。まずはデータベースの概要からみてみます。

データベースの概要

ウィキペディアから引用します。

データベース(英: database, DB)とは、検索や蓄積が容易にできるよう整理された情報の集まり。 通常はコンピュータによって実現されたものを指すが、紙の住所録などをデータベースと呼ぶ場合もある。コンピュータを使用したデータベース・システムでは、データベース管理用のソフトウェアであるデータベース管理システムを使用する場合も多い。

 つまり、データベースは情報の集まりです。そしてその情報を整理整頓して管理している物です。

学校のクラス名簿を思い出してください。クラス名簿はデータベースといえます。

「クラスの生徒」という情報の集まりであり、その情報を「出席番号(アイウエオ順)」という方法で整理し管理しています。

ここからわかるように、データベースは私たちが扱うデータの多くで使用されています。

データベース言語でできること

コンピューターでも、データベースを扱います。

コンピューターの場合は、情報を整理、管理、検索をするために専用のプログラミング言語を使います。それがデータベース言語です。

データベース言語を使えば、膨大なデータを整理管理することができます。

なぜ様々なデータベースの種類があるのか?

さて、問題はデータの管理方法です。

先ほどの例であげたクラス名簿なら「出席番号」という形でデータを管理していました。これくらいシンプルなら良いのですが、これが複雑なデータを扱う場合は色々と問題が生じます。

つまり、データの管理方法はどのような形で行うのが良いのだろうか?という問題です。

例えば、連絡網を思い出してください。連絡網とは、何か情報を全体に伝えたい時に、誰が誰に電話するかを表のようにした物です。連絡網によって連絡する相手が分散されます。

こういった形のデータベースにすれば、効率よく情報の伝達ができます。この連絡網のような形のデータベースは、階層があるので階層型データベースなどと呼ばれます。

つまり、データベースの形は、どんな形でデータを利用したいのかによって変わるということです。

そのため、データベースにはいくつもの種類があるのです。

現在の主力はリレーショナルデータベース

入門者がまず覚えておけば良いデータベースは、リレーショナルデータベースです。イニシャルをとって「RDB」などと訳されたりします。

リレーショナル、つまり日本語でいうと「関連性」です。

事前に定めた関連のあるデータ項目でまとめているデータベースを指します。

これだけだと少しわかりにくいと思いますが、

例えば、ある生徒に関する(関連している)情報はその生徒の情報としてまとめているということです。

こう聞くと当たり前だと思われるはずです。ですから今リレーショナルデータベースが最もメジャーであり、入門者はおそらくこのデータベースと言語から習得するのです。

リレーショナルデータベースで使われるプログラミング言語は「SQL」と言います。そして、この「SQL」の言語を使ってリレーショナルデータベースを管理するシステムを

「リレーショナルデータベースマネジメントシステム(関係データベース管理システム)」

と言います。長いですね…。そのためこの言葉は訳され「RDBMS」と呼ばれます。この言葉も覚えにくいです。

まとめるとこうなります。

リレーショナルデータベースを扱うために「RDBMS」というシステムを使う。そのシステムを動かすプログラミング言語が「SQL」です。

つまり、入門者は「SQL」と「RDBMS」の使い方を学び、データベースを扱えるようにするのがデータベース言語を学ぶということになります。

入門者が学ぶであろう2つの「RDBMS」

「RDBMS」はたくさんの種類がありますが、プログラミング入門者は「MySQL」と「PostgreSQL」を学ぶことが多いと思います。

『PHPとは?』の回で紹介した書籍「いきなりはじめるPHP」では、「MySQL」を利用しています。

 

個人的には、データベース言語の最初の学習は「MySQL」「PostgreSQL」ならどちらでも良いと思います。なぜなら、両方とも扱い方が比較的わかりやすく、またインターネット上に情報が充実していて困って調べる時には入門者向けの解説が見つかりやすいからです。 

ただし、最近では、「SQL」に対し「NoSQL」というデータベースも使われています。NoSQLの用語解説はこちらをご覧ください。

データベース言語の学習方法

それでは、データベース言語の学習方法を紹介します。その前に一つ注意ですが、データベースの学習には当然ですがデータベースを扱う必要があります。データベースを扱うためにはサーバーサイド言語と自分で環境構築をする必要があるので、インターネット上の情報ではなく、しっかりと環境構築から始める書籍など使ってじっくり学習することをオススメします。また、サーバーサイド言語はある程度学習していた方が良いと思います。

もしまだ全くデータベースを触ったことがないなら「いきなりはじめるPHP」→「気づけばプロ並みPHP 」

もしまだ全くデータベースを体験したことがない人は『PHPとは?』でも紹介した書籍「いきなりはじめるPHP」とその続編「気づけばプロ並みPHP」をやってみてください。 PHPの習得がメインの書籍ですが、PHPを使うために環境構築を作ることと、PHPを学習する中でデータベース言語も学習します。

いきなりはじめるPHP~ワクワク・ドキドキの入門教室~

 

気づけばプロ並みPHP 改訂版--ゼロから作れる人になる!

SQL言語を身につけるのにオススメの本

上記で紹介した書籍は、メインはPHPの習得です。

しっかりデータベース言語を理解するなら、本書がオススメです。

基礎からのMySQL 第3版 (基礎からシリーズ)

私は、この本の前の版で学習しました。今は最新版が出ていたのでそちらを紹介します。その当時本屋で平積みされていてそこまで事前調査せずに買ったんですが、学習してみたらすごく良い内容でした。本書を一回通しで学習すれば大体の概要は把握できると思います。

以上の2冊はいずれもサーバーサイド言語は「PHP」で、RDBSMは「MySQL」ですので、お互いを補完しあって学習できると思います。 

まとめ

データベース言語はある程度の仕組みを持ったアプリを作ろうと思った時にはどうしても必要になる知識になると思います。私はPHPとMySQLを最初に学習したので、この記事ではそちらの紹介になっています。

ぜひデータベースの扱いを身につけていただければと思います。

 

関連記事: