データベース
データベースとは、データの集まりを永続的に保存し、データを容易に作成・取得・変更・削除するための手法の一つです。
データベースのモデルには、リレーショナルモデル、階層型データモデル、ネットワーク型データモデルなどがありますが、一般的に普及しているリレーショナルモデルについて本サイトでは説明します。
本サイトでは、基本的なデータベースの説明を独立行政法人情報処理推進機構(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を利用することで、以下の利点があります。
- データの一貫性と整合性
- 効率的なデータアクセス
- データのセキュリティ
- データのバックアップとリカバリ
- 同時実行制御
- データの整合性制約
- トランザクション管理
DBMSを利用することで、データの管理だけにリソースを集中することができます。
本サイトでは、DBMSにははPostgreSQLを利用して説明いたします。
データ管理
DBMSがデータの一貫性と整合性を保つには、データを独立させる必要があります。
これをデータの独立性といい、これを管理するにはデータを管理するためのデータであるシステムカタログ(データディクショナリ)またはメタデータがあります。
システムカタログは、データベース内のテーブル名、列名、インデックス名、ビュー名など、データベースオブジェクトに関する情報を管理する仕組みです。
メタデータは、テーブルの列名やデータ型、制約など、データの構造や属性に関する情報を指します。
SQL
リレーショナルモデルのデータベースを操作する言語として、SQLがあります。
DBMSのファイルからデータを管理します。
SQLとは、Structured Query Languageの大文字を取ったものです。
詳しくは、SQLの章で説明いたします。
データベースの作業者と作業範囲
データベースの作業といっても、その作業内容は多岐にわたります。
小さな企業や個人のデータベース担当者なら、データベースの設計から運用までを一手に行うこともあります。
しかし、規模の大きな開発になるとデータベースの作業が分担されることが多いです。
一般的に作業の分担とし、DA(Data Administrator)とDBA(Database Administrator)に分かれます。
DAの役割は上流工程がメインで、DBAの役割は下流工程がメインです。
以下にそれぞれの作業範囲を示します。
[DA]
- データベースの分析
- データベースの設計(論理設計)
[DBA]
- データベースの設計(物理設計)
- 開発
- テスト
- 運用・保守・導入