ノンエンジニアのDB(データベース)入門|仕組みから種類まで基礎知識を解説

DB(データベース)を使ったことはあっても、本格的に構築や管理を経験した人は少ないのではないでしょうか。
今回は、これからBDを学びたい人向けに、DBの基礎、種類や特徴などを紹介します。

DB(データベース)の基礎

まずは、DB(データベース)の基礎について説明します。

DBとは?


DBとは、構造化した情報の集まりであり、現代では多くの場合、コンピューターを用いて格納・管理されます。
平易に言い換えると、データの集合体がDBです。
例えば、Googleで検索する時に、ユーザーはGoogleのDBから目的のデータを入手しています。
古くは、電話帳もDBの一種であると言えます。
DBのデータは、後述するDBMS(データベース管理システム)で制御されています。

DBのメリット

DBを用いる最大のメリットは、大量のデータの中から、ユーザーが必要なデータを探し出すことが容易になるということです。
例えば、GoogleでWebページを検索できるのは、GoogleがDBを用意しているからです。
Googleのような検索エンジンのDBがなければ、ユーザーはリンクをたどるか、URLを直打ちしなければ、目的のサイトにたどり着くことができません。
そのほかにも、

  • 複数人でデータを共有できる
  • データの入力ミスを防止できる
  • バックアップが容易になる
  • 関連付けや分析がしやすい

などのメリットがあり、扱うデータの量が増加するほど、受けられる恩恵も大きくなります。

DBとDBMS(データベース管理システム)


DBMS(データベース管理システム)は、DataBase Management Systemの略称で、DBを管理、運用するためのシステムです。
DBMSには、多くの種類があり、それぞれに特徴があります。
本記事の後半部分で、代表的なDBMSを紹介します。

DBの種類

DBには、階層型、リレーショナル型などの種類があり、それぞれに特徴があります。今回は、DB種類ごとの特徴、メリット・デメリットや事例を紹介します。

階層型


階層型のDBは、ツリー構造のような階層型にデータを格納するDBです。
例えば、家系図の親子関係のように、1つのデータ(親)が複数のデータ(子)に関係を持つ、ツリー構造になります。
ただし、データは常に1対複数であるとは限りません。
複数対1、複数対複数になることもあるため、その場合、同一のデータが複数の親データに重複して存在することになります。

階層型DBのメリットとデメリット

階層型DBのメリットは、特定のデータにアクセスするためのルートが限定されるため、アクセス速度が早いという点です。
対して階層型DBのデメリットは、データの重複により冗長化しやすい、階層構造の変更に伴いプログラム改修が必要になるなど、柔軟性が乏しいという点です。

階層型DBの事例としては、大規模なシステムに用いられることが多く、IBMのIMS (Information Management System)が、金融機関の勘定系システムに導入されています。
応答時間を正確に見積もることができる点が、採用のポイントになっています。

ネットワーク型


ネットワーク型DBでは、文字通りデータ間が網目状の関係性を持ちます。

ネットワーク型DBのメリットとデメリット

ネットワーク型DBのメリットは、階層型DBと比較して、冗長性が改善されている点です。
これは、複数の親データを持つことができる点に起因します。
デメリットは、階層型DBと同様に、データ構造にプログラムが依存しており、柔軟性が低い点です。
具体的には、蓄積したデータの活用や、メンテナンスがしにくいことがネックになります。
後述するリレーショナル型DBの普及に伴い、ネットワーク型DBは、現在の製品にはほとんど採用されていません。

リレーショナル型

リレーショナル型のDBは、行と列を持つテーブルにより構成されます。
一つのテーブルはExcelのシートのようなもので、1行のデータをDBではレコードと呼びます。
例えば、従業員の氏名、住所、電話番号、メールアドレスから構成される従業員情報のテーブルがある場合、「山田太郎、東京港区xxx、03‐xxxx-xxxx、xxx@sample.com」の(この例では従業員1名分の情報)データをレコードと呼びます。

リレーショナル型DBのメリットとデメリット

リレーショナル型DBのメリットは、

  • 柔軟にデータを扱える
  • データの関連性を複雑に設定できる
  • 一貫性を保ってデータ処理を行うことができる

などがあります。
例えば、複雑な条件付け検索ができることがメリットのひとつです。
また、データ構造に変更があっても、プログラムへの影響が小さいため、メンテナンスが容易であるというメリットがあります。
これは、プログラムとデータの独立性が高いことに起因します。
逆にデメリットは、

  • プログラムが複雑になりやすい
  • 処理速度が低下しやすい
  • 大規模データの処理が遅い

などのデメリットがあります。
特に大規模なデータを扱う場合に、処理速度の低下は企業にとってボトルネックになるでしょう。

本記事で紹介する4種類のDBのうち、現在最も普及しているのが、リレーショナル型DBであり、幅広い用途に用いられています。
例えば、Microsoft Office製品のAccessはリレーショナル型DBの一種です。
また、SalesforceやMicrosoft Dynamics 365などのCRM(Customer Relationship Management)にもリレーショナル型DBが採用されています。
ちなみにCRMとは、顧客管理ツールのことです。

NoSQL

NoSQL型のDBとは、リレーショナル型DBの弱点であった、大規模なデータ処理に対応するために生み出された技術です。
NoSQLとは、Not Only SQLの略です。
SQLとは、リレーショナル型DBを操作するための言語のことです。

NoSQL型DBのメリットとデメリット

NoSQL型のDBのメリットは、

  • 膨大なデータをリアルタイムに処理できる
  • 障害発生時にも短い時間で復旧できる
  • 高価な専用ハードウェアが不要であり、安価な汎用ハードウェアで稼働できる

などがあります。
デメリットは、リレーショナル型DBと比較して機能が限定的である点、データの整合性が低いという点が挙げられます。

NoSQL型のDBは、大規模なデータ処理を伴うWebサービスなどで主に採用されております。
例えばGREEでは、スマートフォン向けゲームアプリ「アナザーエデン」にAmazon DynamoDBというNoSQL型DBを採用しています。
Amazon DynamoDBは、Amazon Web Servicesが提供するNoSQL型DBのサービスです。

DBの構成要素


続いて、RDBSM(リレーショナル型DB)を例にして、DBの構成要素について、説明します。

テーブル

データベースには、多種多様なデータが格納されていますが、データは整頓され、一定の規則に基づいて保存されています。テーブルは、整頓されたひとまとまりのデータで、Excelのシートのような行と列の構造を持っています。

カラム

カラムは、データの属性を意味します。Excelの例でいえば、列に該当するデータです。例えば、前述の従業員情報では、(各従業員の)氏名、住所、電話番号、メールアドレスがカラムのデータになります。

レコード

レコードは、データそのものを意味する言葉で、Excelの例でいえば、行に相当します。前述の従業員情報では、(従業員1人の)氏名、住所、電話番号、メールアドレスを合わせてひとつのレコードです。

フィールド

フィールドは、データの最小単位のことで、Excelの例でいえば、セルに相当します。前述の従業員情報では、(従業員1人の)氏名、住所、電話番号、メールアドレスがそれぞれフィールドです。

DBのデータ種類

次に、DBのデータの種類について説明します。大きく分けて、マスタデータとトランザクションデータと2種類があります。

マスタデータ

マスタデータは、基礎情報となるデータのことで、単にマスタとも呼ばれます。
DBを使用する初期段階から必要となるデータであり、例えば、勤怠管理システムにおける、社員情報がマスタデータです。

トランザクションデータ

トランザクションデータは、出来事の一つひとつを記録したデータのことで、DBを運用にともなって蓄積されていくものです。
例えば、勤怠管理システムにおける、出勤・退勤時間がトランザクションデータです。

DBのキーの種類

続いて、DBのキーの種類について説明します。DBにおけるキーとは、行を識別するための属性情報のことです。キーには、スーパーキー、候補キーなどの種類があります。

主キー

主キーは、一つだけ必ず設定する必要があり、重複が認められません。例えば、商品番号や社員番号などが主キーです。

候補キー

候補キーは、複数存在することがあり、行を一意に特定できるものです。例えば、20歳と30歳の山田太郎さんがいた場合、20歳、山田太郎が候補キーです。

スーパーキー

スーパーキーは、候補キーの数以上に存在し、行を一意に特定できるものです。例えば、前述の山田さんが東京都という属性を持っている場合、20歳、山田太郎、東京都がスーパーキーです。

代表的なRDBMS(リレーショナル型データベース管理システム)

最後に代表的なRDBMS(リレーショナル型データベース管理システム)を紹介します。

MySQL


世界で最も使われているオープンソースのDBです。様々なOSに対応しており、小規模から大規模なシステムまで幅広く用いられています。

Microsoft SQL Server


Microsoft が開発しているRDBMSです。Windowsとの相性がよく、GUIが採用されているため直感的に操作できる点がポイントです。

Microsoft Access


Microsoft Office製品のDBアプリケーションです。テンプレートやフォーマットが豊富に準備されているため、小規模なDBを比較的容易に構築・運用することができます。

Oracle Database


Oracleが開発するRDBMSで、高い堅牢性を持ち、排他制御や一貫性保持の機能が充実しています。高価であり、大企業で多くの導入実績があります。

PostgreSQL


オープンソースのRDBMSで、標準SQLへの準拠や並列実行性能の高さが特徴です。日本語対応しているため、日本のユーザーも手軽に試すことができます。

FileMaker


Apple子会社のClarisが開発するRDBMSです。デフォルトの関数やスクリプトが実装されているため、プログラミングの専門知識がなくとも、小規模なデータベースが構築できます。

まとめ


データベースを使うと、大量のデータから必要な情報を検索したり、複数人で同時に情報にアクセスできるというメリットがあります。
データの種類には、大きく言うとマスタデータとトランザクションデータがあり、それぞれ使い道が異なります。
現在、最も広く用いられているのは、リレーショナル型データベースです。
有力なソフトウェアが複数存在し、それぞれに特徴がありますので、まずは、データベース構築の目的、管理するデータの範囲や種類を明確化して、最適なソフトウェアを選択しましょう。

この記事はさんが執筆しました

ノンエンジニアのDB(データベース)入門|仕組みから種類ま...

関連記事