リレーショナルの名前やドメイン、正規化や代数演算とは?
「由美ちゃん、これがRDBの要素だよ」(先生)
2010年01月21日 09時00分更新
前回学んだ基本事項を元にして、今回はリレーショナルデータベースの要素について勉強していく。リレーショナルの名前やドメイン、正規化や代数演算といったもっとも基本的な部分を知ることで、リレーショナルデータベースの全体像がうっすら見えてくるはずだ。
中村家のある日のこと、お父さんと由美ちゃんはこの前のデータベースの講義で話がはずんでいた。
お父さん:この間のデータベースの話はなかなか面白かったな。表計算ソフトも便利だけど、データベースを使えばもっと便利で、仕事に活用できそうだということが分かったよ。
由美:そうね。私、お父さんに難しくないっていってたけど、けっこう知らないことが多くて奥が深いことがわかったわ。もっと詳しくデータベースについて勉強してみたいな。
お父さん:じゃ、また榊原先生にお願いしてくれないかな。
由美:わかった。確かこの週末は学会とかいってたから、早くても来週の週末ってことになるかも……。
その翌週の週末、予定どおり榊原先生が中村家にやってきた。
先生:こんにちは。お元気ですか?
お父さん・由美:こんにちは、来てくださってありがとうございます。
先生:まずは前回のおさらいをしましょうか。リレーショナルデータベースというのはどういうものでしたでしょうか?
お父さん:データを関係(リレーション)で表現するのでしたよね。個々のリレーションは表計算ソフトのワークシートのように解釈できますが、その中身は違っていてリレーショナルデータベースでは、データの一貫性を保証してくれるのでしたよね。
由美:そうした一貫性を保証してくれるのがデータベース管理システムで、他にもさまざまな機能を提供してくれるのだったわよね。
先生:その通りです。よく復習されていますね。では、今日はリレーショナルデータベースの基本的な話について学習することにしましょう。
リレーションの構成は
簡潔な組み合わせにしよう
先生:前回はリレーショナルデータベースを説明するのに表計算ソフトと対比させました。見かけはとてもよく似ているといいましたが、大元の概念は異なっています。
お父さん:表計算ソフトのワークシート、行、ラベルにあたるものが、リレーショナルデータベースでは、それぞれリレーション、レコード、フィールド(属性)に相当するのでしたよね?
先生:はい、そうお話しました。もう少し細かくいうと、レコードやフィールドというのはファイルシステムでの呼び名なので、リレーショナルデータベースではレコードのことを「タプル(tuple)」と呼びます。タプルというのは要素の組という意味です。
由美:タプルっていきなり使われても、耳慣れないから少しとまどうわね。
先生:でも、SQLでは違う呼び名をします。実際のリレーショナルデータベースはSQLで操作することになるわけですが、その場合は「表」「行」「列」といった馴染みある呼び名になります。まとめると表1のようになります。
お父さん:いろんな用語があって、ちょっとややこしいですね。
先生:さらにややこしくして申し訳ないのですが、ここで「ドメイン」という用語も押さえないといけません(図1)。前回リレーショナルデータベースの一貫性として属性の取り得る範囲や形式を制限できるという話をしましたが、属性が取り得る値を「定義域」とかドメインと呼んでいます。
由美:たとえばプログラム言語でいうところの文字列とか数値といった「型」がそれにあたるわけですね。
先生:その通りです。属性にドメインを設定することで、データベースの一貫性を保つことができるわけです。これらはあくまで用語なので、とりあえずそういうものだと思ってください。では、ちょっと確認してみましょうか。前回説明した商品データのリレーション表現を思い出してください。
お父さん:ええと、確か図2みたいに表現するのでしたよね。
先生:はい。では、これを先の表現でいうとどうなりますか?
由美:商品のリレーションには商品番号、商品名、単価という3つの属性があって、3つのタプルを持っています。それぞれのタプルの属性の値はおのおの(A1、消しゴム、100円)、(A2、鉛筆、50円)、(A3、筆入れ、500円)となります。
先生:はい、その通りです。
(次ページ、「「キー」はデータベースの鍵」に続く)
この連載の記事
-
最終回
ソフトウェア・仮想化
「せんせい!SQLってRDBを操作する言語よね?」(由美) -
第3回
ソフトウェア・仮想化
「インデックスとトランザクションって」(由美) -
第1回
ソフトウェア・仮想化
「データベースってなんですか?」(由美) - この連載の一覧へ