どうも、porukaです。
よく耳にする、データベースとはなんなのかについて分かりやすく解説します。
データベースとは
データベース(Database)は、DBと略されます。では、まずDBのDにあたるデータとは何かについてから確認していきます。
データとは、コンピュータに保存、記憶されている数値のことを言います。
このデータが集まったものがデータベースなのです。ただし、データベースと呼ぶにはいくつかの条件があります。
それは、データベースでのデータは、永続的に保存されているものであり、不揮発性のストレージに保存されている必要があります。また、ストレージ内は、検索しやすいように整理されています。
ちなみに、、、
ストレージとは、データを保存するハードディスクやSSD、外付けハードディスク、USBメモリー、光学ディスクなどのことです。
現在、データベースはサーバーのみならず、パソコン、スマホなどにも内蔵されるようになっています。例としては、スマホの連絡先はどうでしょう。スマホの電源を落としても連絡先はデータとして自分で削除しない限り残り続けます。
DBとDBMSとは
DBは先ほども言ったようにデータベースのことです。そしてDBMSとは、データベースマネジメントのことです。データベースマネジメントとは、DBの管理を効率よく行うソフトウェアのことを指します。
DBMSがなぜ必要なのか
DBMSは、データベースを扱うため多くの機能があり、その例として複数のユーザーからの要求に対応できるようになっていたり、大量のデータの保存と高速な検索ができたりと便利です。また、ユーザーによるデータベース管理機能の拡張も可能です。
そして、複数のコンピュータを繋いでソフトウェアを動かすことで負荷を軽減させ信頼性を高めることができます。これは、スケールアウトやクラスタ構成と呼ばれるものです。また、DBMSはデータをインポート、エクスポートすることにより、データベースを簡単にバックアップできる機能もあります。
DBMSの基本的な機能としてまず、データの追加、検索、削除更新といった作業をすることができます。これにより、システムの構築をするときに一から作成せず、DBMSを使うだけでこれらの機能を一瞬で実装できると考えるとかなり便利で生産性が上がります。
SQLとは
SQLについてデータベースに興味を持っている人なら聞いたことがあるかもしれません。では何なのかというと、
SQLとは、データベースを操作する言語です。
先ほど説明した、DBMSを使用する際に必要になってきます。SQLはSEQUELと呼ばれる、リレーショナルデータベース操作用言語で、標準的に使える言語です。
SQL命令について
SQL命令とは、大きく分けると三つに分類できます。
DML(Data Manipulation Language)
DMLとは、データを操作する時に使用する命令です。データの操作とは、データを新しくデータベースに追加したり、削除したり、内容を更新したりすることです。
DDL(Data Definition Language)
DDLとは、データを定義する命令のことを指します。データベースは、データベースオブジェクトと呼ばれるものにデータを管理します。そこで、DDLの命令によって、データベースオブジェクトを作成したり削除したりすることができます。
DCL(Data Control Language)
DCLとは、データを制御する命令のことを指します。例としては、データのアクセス権限を制御するときに用いられます。
データベースの種類
これまで、データベースの話をしてきましたが、データベースにも色々とバリエーションがあります。利用用途や使用する言語によって使い分けが必須になります。そして、先ほども述べたように、SQLという言語を使ってデータを操作できるのは、リレーショナルデータベースというものです。リレーショナルデータベースは主流で多くのシステムにも採用されています。
では、DBMSの種類を一つずつみていきたいと思います。
階層型データベース
これは、DBMSの中でも古くフォルダとファイルが階層構造のようになってデータを格納するタイプのデータベースになります。現在では、ハードディスクや DVDのファイルシステムは、階層型のデータベースを使用していますが、データベースとしてはあまり利用されなくなっています。
リレーショナルデータベース
何回か説明の中で出てきていますが、これは、関係代数の考え方から発明され、実際は違うものの、表形式のデータつまりExcelのようなものだと理解しておいてください。実際どうなのかというのは、もっと学習が必要になります。リレーショナルデータベースは、Excelの表がたくさん集まったもので、それらをSQL命令によって操作します。
オブジェクト指向データベース
JavaやC++などは、オブジェクト指向言語と呼ばれます。これらのオブジェクトというものをデータベース内にそのまま格納してしまおうと考えてたデータベースです。オブジェクトについて、詳しくはJavaを学ぶのがベストだと思います。
XMLデータベース
XMLはデータの形式のことで、XML形式のデータを格納するデータベースのことを指します。このデータベースは、SQLが使用できず、専用のXQueryというもので命令をします。
キーバリュー型データストア
キーとそれに対するバリューによってデータを保存するタイプのデータベースになります。別名、列指向データベースとも呼ばれます。
まとめ
今回は、データベースがどういうものかに加え、SQLそして、データベースの種類について解説しました。