リレーショナル・データベースの構成要素
ではDBMSの基本的な機能を押さえたところで、リレーショナル・データベースの概念に入っていきたいと思います。ではまず、図1を見てください。この図は何を表わしているのでしょうか?
これは、リレーショナル・データベースに対して問い合わせの要求を出した時の処理の流れと、リレーショナル・データベースの構成要素を表しています。この図に描かれているように、この3つの構成要素がそれぞれ連携して、利用者にデータを返します。それでは、それぞれがどのような役割を持っているのかをご説明していきたいと思います。
表(テーブル)
まずは、表です。前回のデータモデルの時にも少しお話しましたが、リレーショナル・データベースではデータを「表(テーブル)」に格納します。表計算ソフトなどでお馴染みの「表」ですね。このようにリレーショナル・データベースでは、データを「行」(ローやレコードとも言います)と「列」(フィールドやカラムとも言います)の二次元で管理しています。この「行」と「列」を指定することにより、取り出したいデータを取得します。この連載では、「行」と「列」というように記述します。書籍によってはレコードや、カラムと記述していたりするので、慣れないうちは、「あれ?カラムって?」と思うことがありました。しっかりと覚えてくださいね。
データベース・エンジン
次は、データベース・エンジンについてお話します。図1をもう一度見てください。
データベース・エンジンは、何をしてくれていますか?まずは、図が表している処理の流れを説明します。
リレーショナル・データベースに対して、「従業員表から何番目のデータを取得して」というリクエスト要求があった時に、その要求をデータベース・エンジンが受けてくれます。そして、データベース・エンジンが私たちの代わりにリレーショナル・データベースに対して処理を実行してくれます。そしてその結果がデータベース・エンジンから私たちに返ってくるという流れになっています。
このようにデータベース・エンジンは、利用者(プログラム)とデータベースの間に位置し、利用者からの要求を受け、利用者に代わって処理を行い、利用者に結果を返す役割をしています。「どのファイルのどの部分にデータを保存した」という情報をデータベース・エンジンが覚えているので、利用者はそれを意識する必要がなくデータを取得できる。そして、複数の利用者が同じデータにアクセスしていても、データの一貫性や整合性はデータベース・エンジンが管理してくれるので、利用者が意識する必要がなくなるという訳です。最初に、DBMSの役割として「データの整合性」や「データの一貫性」と言いましたが、この機能を果たしているのもデータベース・エンジンとなります。このようにリレーショナル・データベースの中でとても重要な役割を持っています。
SQL (構造化問い合わせ言語)
最後はSQLです。SQLってなんだと思いますか?問い合わせ言語とも書いてありますね。