データベースには種類がある
今やデータベースはビジネスや行政、学術分野などさまざまな分野で情報を管理、運用するツールとして利用されていますが、データベースには大きく分けると4種類あります。
データの管理方法によって「階層型」「ネットワーク型」「リレーショナル型」「NoSQL型」に分類されます。この記事では、データベースそれぞれの特徴やメリット、デメリットなどについて紹介していきます。
そもそもデータベースとは
データベース(Data Base:略称DB)とは、蓄積・整理し、再利用できるようになっているデータの集合体のことです。広い意味では、住所録や電話帳もデータベースと言えますが、ここではあくまでもコンピューターシステムに電子的に格納されたものを対象とします。
データベースは数値やテキスト情報以外に画像なども含まれ、一定のルールで規則正しく整理されたデータの塊です。
DBMSとは
データベースシステムの開発に関わると、必ずDBMS(Data Base Management System)を利用します。DBMSはデータベースの構築と管理を行うために必用なシステムのことです。このDBMSを使うことで、大量のデータを多くの人が安全に利用することが可能です。
特にデータベースの種類がリレーショナル・データベースの場合はRDBMSが必要です。
DBMSを用いてデータベースを利用するメリットは、
・多人数でデータを共有できる ・数百万件の大規模データでも扱える ・万一の事故にも対応できる
といったことが挙げられます。Excelで作成した名簿などもデータベースの一種ですが、DBMSの持つ機能がありませんので、多人数で一定規模以上のデータを共有するためにはDBMSを用いてデータベース化し、管理する必要があります。
なお、DBMSとは別にデータベースソフトというものがあります。特別な知識を必要とせず、簡単な操作でデータベースを作成できるツールを指しますが、ここでは紹介しません。
RDBMSとは
RDBMSは「Relational DataBase Management System」の略語で、リレーショナルデータベースを管理するためのシステムを指します。RDBMSはメリットとして、「SQLを用いて操作が行える」「複雑なデータを容易に扱える」点が挙げられます。
RDBMSの代表的な製品として、「Oracle Database」「SQL Server」「MySQL」「PostgreSQL」などがあります。
データベース4選とその特徴
冒頭でデータベースの種類には、主に4種類があることをお伝えしました。ここでは、4種類のデータベースについて、それぞれの特徴やメリット・デメリットについて見ていきましょう。
階層型データベース
階層型データベースは、その名の通り階層型に格納/整理されたデータベースです。本部の下に部があり、部の下に課があるといった 会社の組織図をイメージすると分かりやすいでしょう。階層型データベースはツリー構造になっており、データは親と子、子と孫の関係にあります。
階層型データベースではデータのことをノードと呼び、親ノード、子ノードというように称します。
親ノードと子ノードは1(親):n(子)の関係です。
特定データを検索する場合には、検索のルートが1つしかないため、検索速度が速いというメリットがある一方、階層関係が複雑になると、同一データを重複登録する必要が生じるなど、データ管理の柔軟性に欠ける点がデメリットとしてあげられます。
リレーショナルデータベース
リレーショナルデータベース(RDB)は、「行」=レコードと、「列」=フィールドから構成された、「テーブル」=表形式のデータベースのことです。RDBはExcelのようなイメージでデータを管理できるのが特徴です。
「列」にはそれぞれユニークな項目名(見出し)を設け、行にデータを追加していきます。リレーショナルデータベースはSQL(Structured Query Language)という専用の言語を用いてデータの操作を行います。
リレーショナルデータベースは他のデータベース型と比較すると柔軟性に富んでおり、扱いやすいというメリットを持つ反面、複数の表の組み合わせが可能なためプログラミングが複雑になりやすく、また処理速度が遅くなる傾向があります。
ネットワーク型データベース
ネットワーク型データベースは階層型データベースと同様に、データをノードで表しますが、階層型データベースとの根本的な違いは、子ノードは複数の親ノードを持てる点です。親ノードと子ノードの関係はn(親):m(子)です。
そのため、階層型データベースのネックとなっていた、「複数の親ノードを持つ子ノードは重複登録を避けられない」という問題を解消でき、階層型データベースよりも自然な形でデータを登録できる点はメリットです。
一方、データ構造が複雑になるため、データ構造を理解していないとデータにアクセスできなくなるケースも起こります。
NoSQLデータベース
NoSQL型のデータベースは、データベースの操作にリレーショナルデータベースのようにSQLをメインとしないため、NoSQLと呼ばれており、AmazonやGoogle、Facebookなどでも使われています。
NoSQLは「Not Only SQL」の略称で、SQLを使わないという意味ではありません。
NoSQLはSQLを利用しないため、複雑なデータの検索や更新が苦手である点はデメリットですが、拡張性や分散処理において優れ、大規模データの高速処理が得意な点がメリットです。NoSQLはビックデータを扱うのに向いていると言われ、今後さらに注目を浴びる可能性があります。
データベース用語8選
データベースを扱うには、最低限知っておきたい用語があります。ここではデータベース関連で頻繁に使われる用語について簡潔に解説しますので、これからデータベースを学ぶ方、仕事で関わる方は是非覚えてください。
テーブル
テーブルとは、リレーショナルデータベースでデータの格納領域のことです。テーブルの内部は行と列に分かれています。Excelではテーブルに相当するのがシートです。
データベースでは複数のテーブルを持ち、複数のテーブルを連携して利用するためリレーショナルデータベースと呼びます。
カラム
カラムは、表の中の列に相当し、カラムに格納できるデータの型が属性として決まっています。属性は数値や文字列、日付などがあります。例えば、名簿データベースであれば、カラムには「氏名」「住所」「生年月日」「電話番号」などが入ります。カラム名はExcelの列名と同じと言えます。
レコード
テーブルやカラムはデータが格納される場所を表しますが、レコードはデータそのものを指します。先ほどのカラムに対応した個人ごとの属性(氏名、住所、生年月日など)を含むデータがレコードと呼ばれるものです。 Excelの「列」に相当するカラムに対し、「行」に相当するのがレコードです。
フィールド
フィールドとは、データベースの最小の単位で、Excelの「セル」に相当します。Excelのセルでは書式設定によって文字項目、数値項目を設定するように、フィールドに対しても同様に書式設定が行えます。複数のレコードの同じフィールドをまとめると、カラムになります。
正規化
正規化はデータベースのデータを整理し、データベース内の整合性が取れるようにすることです。正規化を行うことにより、データの追加や、更新や削除によってデータの不整合が発生することを防ぎ、データベースのメンテナンス効率を高めることが目的で行われます。
インデックス
インデックスは本や辞書の「目次」「索引」と同じ目的でデータベース上に作成されます。インデックスはデータベース内のどこに、どのデータがあるのかを示した一覧表のようなものです。
インデックスを利用することにより、素早く必要なデータを見つけることができますが、頻繁にデータの追加・更新・削除が発生するデータベースではインデックスの更新が頻繁に発生するため、逆に更新処理が遅くなるというデメリットもあります。
スキーマ
スキーマとはデータベースにどのような種類のデータが、どのような構造で格納されているのかについて定義したもので、データベースの設計図ともいうべきものです。
スキーマは外部スキーマ・概念スキーマ・内部スキーマの3層に分けられます。データベースの設計変更などがあっても、3層に分けておくことで、該当スキーマだけを変更すれば済みますので、設計変更の影響を小さくできます。
SQL
データベースそのものはDBMSによって管理されていますが、データの抽出や追加など、データベースを操作する際に、操作指令をDBMSに与えるための言語がSQLです。
SQLは国際標準化機構(ISO)で規格化されているため、一度覚えておくと、他のRDBでも同様に使うことができます。SQLが使えるRDBは以下に紹介するDBMS製品すべてで利用が可能です。
例を挙げると、データベース一覧を確認するSQLコマンドは『show databases』です。インデックスを作成する場合は『create index』というように、SQLは覚えやすい言語ですので、ぜひ覚えてみましょう。
知っておきたいDBMS製品5選
ここでは、エンジニアの常識として知っておきたいDBMS製品を5つ紹介します。ほとんどのエンジニアの方は、以下の5つのDBMSから1つは実際に利用することになる可能性が高いので、この機会に理解を深めておきましょう。
ちなみに、クラウドサービスのAWSでは以下の5製品はすべてサービスとして提供されています。
【参考】:Amazon RDS(マネージドリレーショナルデータベース)| AWS
Oracle Database
企業を中心に高いシェアを誇る、Oracle社の有償RDBMS(リレーショナル型DBMS)です。高機能かつ高価格が特徴で、主に大規模データベースで使われています。
Oracle Databaseの豊富な機能を使いこなすには、一定の専門的知識が要求されますので、Oracle社の認定資格、ORACLE MASTER(オラクルマスター)を取得しておくことをおすすめします。
【参考】:認定資格一覧 | オラクル認定資格制度 | Oracle University
Microsoft SQL Server
Microsoft社の法人向け有償RDBMSです。競合するOracle Databaseを意識した、大規模システムやビジネス向けの製品です。堅牢性や機能性の高さで定評がありますが、対応するプラットフォームはWindowsのみで、同社の製品や言語との相性が高い点が特徴です。
【参考】:SQL Server 2019 | マイクロソフト
PostgreSQL
オープンソースのRDBMSで、幅広いプラットフォームで利用ができます。基本は無償ですが、さまざまな機能を備えており、小規模システムでの利用を中心に高い人気があります。ただし、有償ソフトと比較してサポート体制は強いとは言えず、大きな企業ではあまり利用がされていません。
【参考】:PostgreSQL: The world's most advanced open source database
MySQL
Oracle社が管理している、オープンソースのRDBMSです。個人利用の場合は無償、商用利用については有償です。大容量データでも高速処理が行え、検索エンジンなどでも使われています。オープンソースとはいえ、信頼性は高く、法人利用も増えています。
【参考】:MySQL|日本語公式サイト
MongoDB
MongoDBは、数多く利用されているNoSQL型データベースです。オープンソースですが、サブスクリプション購入となっており、管理ツールも有償提供となっています。
MongoDBはビックデータの処理に適しており、近年注目を浴びています。MongoDBはRDBではないため、SQLを使えませんので、Mongoクエリ言語という特有の言語を利用します。
【参考】:MongoDB: The Developer Data Platform | MongoDB
データベースに関するおすすめの資格試験
データベース分野で活躍したいエンジニア、データベースに強いシステムエンジニアを目指す方には関連資格の取得をおすすめします。資格取得によって、客観的なスキル証明になるとともに、活躍機会が増える可能性が高まります。
ここでは、データベースに関わるおすすめの資格試験を2つご紹介します。
データベーススペシャリスト試験
データベーススペシャリスト試験はIPA(情報処理推進機構)が運営する国家資格です。合格率は10数パーセント前後と難易度は高く、実務経験がない方にはハードルの高い試験ですが、資格を取得することでデータベーススキルの証明となります。
データベース管理者やインフラ系エンジニア、ビッグデータ解析のエンジニアを目指す方は取得しておきたい資格です。出題は特定のDBMSに関わらず、データベース共通の理論や、データベース設計に関する内容が中心です。
【参考】:データベーススペシャリスト試験
ORACLE MASTER(オラクルマスター)試験
ORACLE MASTERは民間資格ですが、国際的に認められた権威ある資格です。Bronze・Silver・Gold・Platinumと4段階のレベルがあり、それぞれの実力に応じたレベルの資格取得が可能です。特にORACLE製品を扱うエンジニアの方に資格取得をおすすめします。
【参考】:ORACLE MASTER Portal | オラクル認定資格制度
データベースエンジニアを目指そう
ここまで、データベースの種類ということで、4つの型のデータベースとそれぞれの特徴、よく知られたDBMS製品5選、データベース関連のおすすめの資格を2つご紹介しました。ビックデータやAIなどの分野で、データベースエンジニアの需要は高まっており、活躍の機会が広がっています。
データベースエンジニアは専門性が高く、代替が難しい職種のため、IT業界では重宝される職種の1つです。この記事でデータベースに関心を持たれた方は、ぜひデータベースエンジニアを目指して勉強をしてみてください。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから