本記事で取り上げるデータベースは、RDBMSで管理されるリレーショナル・データベースです。リレーショナル・データベースでは、その基礎となる「一定の書式で情報を記録したもの」を「表」または「テーブル」と言います。
RDBMSでは、単に書式化された情報だけではなく、それらの集合にそれらの有機的な結合情報(リレーションシップ)、それらを内部で操作するためのプログラム(ビュー、ストアドプロシージャ)などが加わったものを「データベース」と呼び、単一のファイルとして扱います。
- テーブル -
リレーショナル・データベースを構成する各要素がどのようなものか、見ていきましょう。まず、テーブルからです。
テーブルは表とも呼ばれるように、考え方としては表計算ソフトのワークシート上に作った表と同じで、横に列、縦に行を配置した二次元の構造です。
列方向に書式を構成するデータの種類――これを「列」または「カラム」「フィールド」と言います――を取り、行方向に1件ごとのデータを配置します。1件ごとのデータを「行」または「レコード」と呼びます。
|
→ |
列 |
|
|
|
↓ |
|
氏名 |
所属部署 |
内線番号 |
部数 |
行 |
|
------------------------------------ |
|
|
青木清太郎 |
人事部 |
1234 |
8 |
|
|
飯山敬子 |
財務部 |
1235 |
12 |
|
|
上田光男 |
経理部 |
1236 |
5 |
|
|
|
: |
|
|
本記事では、RDBMSとしてマイクロソフト社のSQL Serverを基準とします。そこで、データベースを構成する各要素の呼び方もSQL Serverのマニュアルやヘルプで用いられているものを使うことにします。表は「テーブル」、列は「フィールド」、行は「レコード」です。
- その他の要素 -
ある仕事を処理するためには、上記のようなテーブルが複数必要になります。社内報の配布先と部数を記録したテーブルだけでは、担当者の氏名や各部署の名前などはわかりますが、他の社員の名前や所属先はわかりません。そこで、社員全員の名前、社内のすべての部署と内線番号などを記録したテーブルを用意すれば、人事管理や給与管理など社内報の配布以外の仕事にも同じデータが利用できます。
狭い意味でのデータベースでは、ある業務に関連する複数のテーブルをまとめて管理できるようになっています。また、その複数のテーブルを元にして個別の仕事に必要な情報を生成するための設定や、様々な仕事で必要になる共通のプログラムなども、データベースの構成要素として管理します。
・ |
ダイアグラム
Accessなどで言われるリレーションシップです。あるテーブルとあるテーブルを関連付け、一定の意味を成す業務のための情報とするために、2つのテーブルのフィールド同士を結び付けたものがダイアグラムです。
業務システムのデータ設計で作成されるER図(Entity-Relationship Diagram)と、原理的には同じものです。 |
・ |
ビュー
テーブルから特定の要素(フィールドを絞り込んだもの、与えた条件を満たすものなど)だけを抽出するための指示とその処理結果です。抽出の指示にはSQLを用いますが、SQL ServerのEnterprise ManagerではGUIを使って視覚的にビューを設計できます。
Accessでは選択クエリと呼ばれます。 |
・ |
ストアドプロシージャ
新規テーブルの作成や既存テーブルのバックアップ、頻繁に用いるレコード操作などをプログラムとして記述したものです。データベースを利用するアプリケーションから呼び出して利用できます。
多くのアプリケーションで共通する処理をストアドプロシージャにしておけば、無駄なコードを減らすことができます。また、ストアドプロシージャはサーバー側の資源を使って処理されるため、クライアントの処理を軽減できます。 |
データベースには、この他にユーザーの権限や管理用の情報なども含まれます。これら様々な情報が一体となったものが、RDBMSの管理するデータベースです。
リレーショナル・データベースは、アプリケーションから直接操作するテーブルの他に、様々な構成要素から成り立っています。本記事ではSQLから始めて、ダイアグラムやビュー、ストアドプロシージャなど、これら構成要素の機能と扱いを順次紹介していきます。
なお、RDBMSにはSQL Serverを使用します。折に触れ、Oracleとの違いなども紹介しようと思います。
|
|
|