データベース

データベースとは、データの集まりを永続的に保存し、データを容易に作成・取得・変更・削除するための手法の一つです。
データベースのモデルには、リレーショナルモデル、階層型データモデル、ネットワーク型データモデルなどがありますが、一般的に普及しているリレーショナルモデルについて本サイトでは説明します。
本サイトでは、基本的なデータベースの説明を独立行政法人情報処理推進機構(IPA)のデータベーススペシャリストのシラバスを参考にしています。
また、LPI-Japanが提供するOSS-DBのSilverまたはGoldの学習にもご活用いただけるようにPostgreSQLを利用しています。OSS-DBのSilverまたはGoldのVer.2.0の範囲に対応する予定です。

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

DBMSは「[Relational] DataBase Management System」の略で、データベースを管理するシステムです。
リレーショナルデータベースが広く普及しているため、RDBMSと表記されることも多いですが、本サイトではDBMSに統一します。

データベースに保存されるデータは、一般的に使われるデータと同様でファイルに保存されます。そのため、データベースのデータ管理(データの作成、取得、変更、削除など)もディレクトリやファイルを使った構成になっています。データが増加していくと、大量のディレクトリやファイルの管理が必要になっていきます。
これらの管理を行うのがDBMSです。

DBMSを利用することで、以下の利点があります。

  1. データの一貫性と整合性
  2. 効率的なデータアクセス
  3. データのセキュリティ
  4. データのバックアップとリカバリ
  5. 同時実行制御
  6. データの整合性制約
  7. トランザクション管理

DBMSを利用することで、データの管理だけにリソースを集中することができます。
本サイトでは、DBMSにははPostgreSQLを利用して説明いたします。

データ管理

DBMSがデータの一貫性と整合性を保つには、データを独立させる必要があります。
これをデータの独立性といい、これを管理するにはデータを管理するためのデータであるシステムカタログ(データディクショナリ)またはメタデータがあります。
システムカタログは、データベース内のテーブル名、列名、インデックス名、ビュー名など、データベースオブジェクトに関する情報を管理する仕組みです。
メタデータは、テーブルの列名やデータ型、制約など、データの構造や属性に関する情報を指します。

SQL

リレーショナルモデルのデータベースを操作する言語として、SQLがあります。 DBMSのファイルからデータを管理します。
SQLとは、Structured Query Languageの大文字を取ったものです。
詳しくは、SQLの章で説明いたします。

データベースの作業者と作業範囲

データベースの作業といっても、その作業内容は多岐にわたります。
小さな企業や個人のデータベース担当者なら、データベースの設計から運用までを一手に行うこともあります。
しかし、規模の大きな開発になるとデータベースの作業が分担されることが多いです。

一般的に作業の分担とし、DA(Data Administrator)とDBA(Database Administrator)に分かれます。
DAの役割は上流工程がメインで、DBAの役割は下流工程がメインです。
以下にそれぞれの作業範囲を示します。

[DA]

  1. データベースの分析
  2. データベースの設計(論理設計)

[DBA]

  1. データベースの設計(物理設計)
  2. 開発
  3. テスト
  4. 運用・保守・導入