DB(データベース)を使ったことはあっても、本格的に構築や管理を経験した人は少ないのではないでしょうか。
今回は、これからBDを学びたい人向けに、DBの基礎、種類や特徴などを紹介します。
まずは、DB(データベース)の基礎について説明します。
DBとは、構造化した情報の集まりであり、現代では多くの場合、コンピューターを用いて格納・管理されます。
平易に言い換えると、データの集合体がDBです。
例えば、Googleで検索する時に、ユーザーはGoogleのDBから目的のデータを入手しています。
古くは、電話帳もDBの一種であると言えます。
DBのデータは、後述するDBMS(データベース管理システム)で制御されています。
DBを用いる最大のメリットは、大量のデータの中から、ユーザーが必要なデータを探し出すことが容易になるということです。
例えば、GoogleでWebページを検索できるのは、GoogleがDBを用意しているからです。
Googleのような検索エンジンのDBがなければ、ユーザーはリンクをたどるか、URLを直打ちしなければ、目的のサイトにたどり着くことができません。
そのほかにも、
などのメリットがあり、扱うデータの量が増加するほど、受けられる恩恵も大きくなります。
DBMS(データベース管理システム)は、DataBase Management Systemの略称で、DBを管理、運用するためのシステムです。
DBMSには、多くの種類があり、それぞれに特徴があります。
本記事の後半部分で、代表的なDBMSを紹介します。
DBには、階層型、リレーショナル型などの種類があり、それぞれに特徴があります。今回は、DB種類ごとの特徴、メリット・デメリットや事例を紹介します。
階層型のDBは、ツリー構造のような階層型にデータを格納するDBです。
例えば、家系図の親子関係のように、1つのデータ(親)が複数のデータ(子)に関係を持つ、ツリー構造になります。
ただし、データは常に1対複数であるとは限りません。
複数対1、複数対複数になることもあるため、その場合、同一のデータが複数の親データに重複して存在することになります。
階層型DBのメリットは、特定のデータにアクセスするためのルートが限定されるため、アクセス速度が早いという点です。
対して階層型DBのデメリットは、データの重複により冗長化しやすい、階層構造の変更に伴いプログラム改修が必要になるなど、柔軟性が乏しいという点です。
ネットワーク型DBでは、文字通りデータ間が網目状の関係性を持ちます。
ネットワーク型DBのメリットは、階層型DBと比較して、冗長性が改善されている点です。
これは、複数の親データを持つことができる点に起因します。
デメリットは、階層型DBと同様に、データ構造にプログラムが依存しており、柔軟性が低い点です。
具体的には、蓄積したデータの活用や、メンテナンスがしにくいことがネックになります。
後述するリレーショナル型DBの普及に伴い、ネットワーク型DBは、現在の製品にはほとんど採用されていません。
リレーショナル型のDBは、行と列を持つテーブルにより構成されます。
一つのテーブルはExcelのシートのようなもので、1行のデータをDBではレコードと呼びます。
例えば、従業員の氏名、住所、電話番号、メールアドレスから構成される従業員情報のテーブルがある場合、「山田太郎、東京港区xxx、03‐xxxx-xxxx、xxx@sample.com」の(この例では従業員1名分の情報)データをレコードと呼びます。
リレーショナル型DBのメリットは、
などがあります。
例えば、複雑な条件付け検索ができることがメリットのひとつです。
また、データ構造に変更があっても、プログラムへの影響が小さいため、メンテナンスが容易であるというメリットがあります。
これは、プログラムとデータの独立性が高いことに起因します。
逆にデメリットは、
などのデメリットがあります。
特に大規模なデータを扱う場合に、処理速度の低下は企業にとってボトルネックになるでしょう。
本記事で紹介する4種類のDBのうち、現在最も普及しているのが、リレーショナル型DBであり、幅広い用途に用いられています。
例えば、Microsoft Office製品のAccessはリレーショナル型DBの一種です。
また、SalesforceやMicrosoft Dynamics 365などのCRM(Customer Relationship Management)にもリレーショナル型DBが採用されています。
ちなみにCRMとは、顧客管理ツールのことです。
NoSQL型のDBとは、リレーショナル型DBの弱点であった、大規模なデータ処理に対応するために生み出された技術です。
NoSQLとは、Not Only SQLの略です。
SQLとは、リレーショナル型DBを操作するための言語のことです。
NoSQL型のDBのメリットは、
などがあります。
デメリットは、リレーショナル型DBと比較して機能が限定的である点、データの整合性が低いという点が挙げられます。
続いて、RDBSM(リレーショナル型DB)を例にして、DBの構成要素について、説明します。
データベースには、多種多様なデータが格納されていますが、データは整頓され、一定の規則に基づいて保存されています。テーブルは、整頓されたひとまとまりのデータで、Excelのシートのような行と列の構造を持っています。
カラムは、データの属性を意味します。Excelの例でいえば、列に該当するデータです。例えば、前述の従業員情報では、(各従業員の)氏名、住所、電話番号、メールアドレスがカラムのデータになります。
レコードは、データそのものを意味する言葉で、Excelの例でいえば、行に相当します。前述の従業員情報では、(従業員1人の)氏名、住所、電話番号、メールアドレスを合わせてひとつのレコードです。
フィールドは、データの最小単位のことで、Excelの例でいえば、セルに相当します。前述の従業員情報では、(従業員1人の)氏名、住所、電話番号、メールアドレスがそれぞれフィールドです。
次に、DBのデータの種類について説明します。大きく分けて、マスタデータとトランザクションデータと2種類があります。
マスタデータは、基礎情報となるデータのことで、単にマスタとも呼ばれます。
DBを使用する初期段階から必要となるデータであり、例えば、勤怠管理システムにおける、社員情報がマスタデータです。
トランザクションデータは、出来事の一つひとつを記録したデータのことで、DBを運用にともなって蓄積されていくものです。
例えば、勤怠管理システムにおける、出勤・退勤時間がトランザクションデータです。
続いて、DBのキーの種類について説明します。DBにおけるキーとは、行を識別するための属性情報のことです。キーには、スーパーキー、候補キーなどの種類があります。
主キーは、一つだけ必ず設定する必要があり、重複が認められません。例えば、商品番号や社員番号などが主キーです。
候補キーは、複数存在することがあり、行を一意に特定できるものです。例えば、20歳と30歳の山田太郎さんがいた場合、20歳、山田太郎が候補キーです。
スーパーキーは、候補キーの数以上に存在し、行を一意に特定できるものです。例えば、前述の山田さんが東京都という属性を持っている場合、20歳、山田太郎、東京都がスーパーキーです。
最後に代表的なRDBMS(リレーショナル型データベース管理システム)を紹介します。
世界で最も使われているオープンソースのDBです。様々なOSに対応しており、小規模から大規模なシステムまで幅広く用いられています。
Microsoft が開発しているRDBMSです。Windowsとの相性がよく、GUIが採用されているため直感的に操作できる点がポイントです。
Microsoft Office製品のDBアプリケーションです。テンプレートやフォーマットが豊富に準備されているため、小規模なDBを比較的容易に構築・運用することができます。
Oracleが開発するRDBMSで、高い堅牢性を持ち、排他制御や一貫性保持の機能が充実しています。高価であり、大企業で多くの導入実績があります。
オープンソースのRDBMSで、標準SQLへの準拠や並列実行性能の高さが特徴です。日本語対応しているため、日本のユーザーも手軽に試すことができます。
Apple子会社のClarisが開発するRDBMSです。デフォルトの関数やスクリプトが実装されているため、プログラミングの専門知識がなくとも、小規模なデータベースが構築できます。
データベースを使うと、大量のデータから必要な情報を検索したり、複数人で同時に情報にアクセスできるというメリットがあります。
データの種類には、大きく言うとマスタデータとトランザクションデータがあり、それぞれ使い道が異なります。
現在、最も広く用いられているのは、リレーショナル型データベースです。
有力なソフトウェアが複数存在し、それぞれに特徴がありますので、まずは、データベース構築の目的、管理するデータの範囲や種類を明確化して、最適なソフトウェアを選択しましょう。