【DB】データベースとは?DBMSの役割とは?その仕組みと種類について

みなさんは、データベース、DBMSとは何かを理解していますか?
筆者は、新人のころからSQLServerを触っていたのですが、データベースのファイル構成やその仕組みを理解しないまま大人になってしまいました。(←おい)現場が変わると、「SQLServerManagement」ではなく「A5」ツールを使ってと言われ、「…へ?」って感じでした。(←恥ずかしい!)データベースは、SQLServerなのにA5?みたいな。
そして次の現場では、PostgreでA5を使えと。
なるほど、、、ということで、こういったことが起こらないように、データベースとは何なのか、それにまつわる最低限の知識をつけておきたいですね!

目次

この記事の目的

・データベースにまつわる最低限の知識の習得
・データベースの仕組みを理解する
・データベースの種類を把握する

データベースとは

「データ」を複数集めて、後で使いやすい形に整理した情報のかたまりのことを表します。
日常で使用する「電話帳」や「住所録」などはデータベースですが、ITでの一般は、コンピュータ上でデータベースを管理するシステム(DBMS:Database Management System)のことや、そのシステム上で扱うデータ群のことを、「データベース」と呼んだりします。

DBMSの役割とは

DBMSとは、データベースを利用するために必要な、データベース管理システムのことです。
ユーザ(データ利用者)は DBMS を介してデータベースファイルに対してデータの読み書きを行う.つまり,DBMS がデータとユーザのインタフェースとなっています。

データへアクセスする際は,DBMS に対して、SQLなどの言語(DBMS の種類によって命令を記述する言語が違います)を使用して命令を送ります。

データベースへのアクセス手順

  1. ユーザから DBMS へ 作成したSQL を送信する
  2. DBMS が SQL を解析する
  3. SQL を実行しデータベースファイルへデータの読み書きをする
  4. (読み出しの場合)DBMS から目的のデータが返ってくる

データベースの種類

データベースにはデータをどのような構造や方式で格納、管理するかによって様々な種類があります。

階層型、ネットワーク型、リレーショナル型などが主です。
一般的に利用されるのは「リレーショナルデータベース」(RDB:Relational DataBase、関係データベース)と呼ばれるものです。属性を列、組を行とする表(テーブル)の形で表されます。

主なRDBの製品

PostgreSQL、Oracle Database、Microsoft SQL Server、MySQL、SQLiteなどがあります。
データベースは各種類とも、無償の製品も有償の製品もあります。同じ製品名であっても、無償のパッケージと有償のパッケージを用意している製品もあります。

各DBMSには、純正のGUIツールがあります。
Oracle Database⇒SQL Developer
Microsoft SQL Server⇒SQL Server Management Studio
MySQL⇒MySQL Administrator,MySQL Query Browser
PostgreSQL⇒pgAdmin
などです。普段、クエリを書いてDBに対して検索・更新するときは、これらのGUIツールを使うことが多いかと思います。
GUIツールを使うことで、データベースをグラフィカルに操作できます。

国産のフリーソフトでは、
「A5:SQL Mk-2」が、MySQL、PostgreSQL、Oracle、Microsoft SQL Server、IBM DB2などさまざまなDBに対応しており、開発現場でよく使われています。

GUIがなくてもコマンドラインで、データベースは操作できる

sqlcmd (Oracle で言うところの sqlplus)は SQL Server Management Studio などをインストールすると使える、コマンドラインツールです。
コマンドでのみ使用したい場合には単体でインストールして使用することもできます。
コマンドラインツールで、Linux、macOSでSQL Serverの操作が行えます。

コマンドプロンプトから「sqlcmd」と実行します
※標準ではインストールされていないので別途インストールする必要がある

まとめ

・リレーショナルDBが主流
・DBは、DBMSを使用して操作を行う。
・DBMSをグラフィカルに使用できるGUIツールが存在する。コマンドプロントからコマンドで操作することも可能。