データベース3つの”要点”

ITリテラシー向上

 この記事を読んでいるあなたは、ジョブチェンジするにあたりよく聞くIT用語について調べているところでしょうか。そのIT用語の中でもデータベースは、IT業界外の人でもよく聞くと思います。私はシステム運営の仕事の一環として、データベースの調査を行っています。データベースは非常に奥が深くて、すべてを理解している人というのはなかなかいないのではないでしょうか。今回はデータベースについて、3点ほど書いていきたいと思います。

  • データベースとはなにか
  • データベースの操作言語について
  • データベース管理システムについて

データベースとはなにか

 データベースとはその名の通り、大量のデータを1箇所にまとめて管理しやすくしたものです。そして、1箇所にまとまったデータから、データの検索や追加、削除などを行うために、データベース管理システムを利用します。よく使われるデータベースの方式は、リレーショナルデータベースというものです。これは簡単に書くと、大量のデータを表(テーブル)の形式で管理する方式です。例えば、社員情報を管理する社員マスタテーブルは以下のようになります;

この社員マスタは、生成AIにより生成してみました。部署や役職などもそれぞれ管理テーブルを用意して、社員マスタテーブルと結びつけているため、対応するコードが入っています。ここで、データベースにおける行(横ラインのこと)を「レコード」といい、レコードで1つの情報を表しています。例えば、「IDが1の社員は、山田太郎さんで所属部署コードは13で役職コードは21、年齢は35歳、入社は2010年4月1日」というような感じです。また、データベースにおける列(縦ラインのこと)を「カラム」といいます。簡単に言うと列名に属する値のことを指しています。当たり前と思うかもしれませんが、部署にマネージャなどの役職名は入りませんし、逆に役職にマーケティング部などの部署名は入りません。

 この社員マスタテーブルでは、IDやコードの値が重要な役割を果たしています。IDは社員ごとに、もっと言えばレコードごとに振られており、値は重複しません。一般にリレーショナルデータベースでレコードごとに振られているIDのような値を「主キー」といいます。また、所属部署コードや役職コードのように、他のテーブルの主キーになっているものを「外部キー」といいます。これらにより、データの検索を早くしたり、データの整合性を取ることができるのです。

 データベースについて簡単にまとめると、このような感じになると思います。

データベースの操作言語

 ここでは、「SQL」について簡単に解説します。私は「エス・キュー・エル」と読んでいます。人によってはIBMで使っている「シーケル」という読み方をされる方もいるようです。SQLとは、

「Structured Query Language」

の略で、要はデータベースにデータを問い合わせる(Query)ための操作言語です。操作言語というとプログラミング言語のように難しいのではないかと思ってしまうかもしれませんが、割と英語の文章そのままな感じなので、そこまでとっつきにくいわけではないと思います。例えば、社員マスタテーブルからすべての情報を選択する場合は、

SELECT * FROM 社員マスタ;

とデータベース管理システムに入力します。しかし、すべての情報が必要な場合はそんなになくて、だいたい「IDが1の人の情報」とか「部署の所属人数」が知りたいと言うように、条件がついてくると思います。その条件として入力するのがSQLの「WHERE句」になります。例えば、IDが1の人の情報を知りたいなら

SELECT * FROM 社員マスタ WHERE ID = 1;

のように入力します。すると

のように1つのレコードが選択されてきます。また、例えば所属の部署コードが13の社員が何人いるのか確認したい場合は、

SELECT COUNT (*) AS 部署所属人数 FROM 社員マスタ WHERE 所属部署 = 13;

のように入力します。カラム名を「部署所属人数」として、

のように集計することもできます。

 データベースから必要なレコードやカラムを検索するためには、そのための考え方や慣れが必要です。こちらについても今後書いていきたいと思います。

データベース管理システムについて

 「データベースの操作言語」では特に触れなかったデータベース管理システムについて書きたいと思います。SQLでデータベースを操作するために、だいたい以下の2つが使われているのではないでしょうか;

  • Microsoft社:「SQL Server Management System」
  • Oracle社:「SQL*Plus」

私は自宅で使っているのは、「Microsoft社」の「SQL Server Management System」です。こちらはMicrosoft社の「SQL Server」というデータベースを、統合的に管理するためのシステムです。メリットは、何と言っても視覚的にわかりやすいところだと考えています。逆に統合的というだけあっていろいろな機能を持っていますので、なかなか覚えられなかったり、単純に重いというデメリットがあります。

 Oracle社の「SQL*Plus」は、コマンドプロンプトを起動してデータベースに接続し、コマンドプロンプトにSQLを入力して操作する形式なので、非常にシンプルです。また、私的には「BEGIN TRANSACTION」と入力せずとも、「INSERT」や「DELETE」を行うときはトランザクション処理が開始されている点が良いと思っています。デメリットとしては、「SET LINESIZE」などで調整しないと、データを検索した結果の表示が見にくくなってしまうところだと思っています。

 もし余裕があるのであれば、自宅にデータベース環境を用意しておくと、自分で操作しながら勉強することができますよ!


 今回はデータベースの”要点3つ”について書いてみました。言うまでもないかもしれませんが、データベースエンジニアになろうとしたらこれだけではなく、E-R図や正規化など他にもいろいろな知識が必要になります。今後書いていくことができたらと思っています。

コメント

タイトルとURLをコピーしました