リレーショナルの名前やドメイン、正規化や代数演算とは?
「由美ちゃん、これがRDBの要素だよ」(先生)
2010年01月21日 09時00分更新
「キー」はデータベースの鍵
先生:さて、上の3つの属性の中で意味合いが他とは異なるものが1つだけあります。どれだか分かりますか?
由美:商品番号じゃないかしら。
お父さん:えっ!? どうして?
由美:商品名や単価は商品そのものの性質を表わすものなので、同じになる場合があるわ。でも、商品番号は商品を特定するための記号よね。だから商品番号は商品ごとにひとつひとつ違うはずでしょ。
お父さん:なるほど確かにそうだ。
先生:由美さんの説明どおりですね。商品番号は記号で特定の商品を表わせるようにしたものですから、重複はないはずですよね。これがリレーションの場合なら、商品番号はタプルを表わす記号になります。このように、タプルを識別したり、特定のタプルを指定するために使う属性を「キー」といいます(図3)。
キーは、特定のタプルを指定するときに複数のタプルが該当したり、該当するタプルが存在しないなんてことが起こらないように、重複する値や空の値があってはいけません。
それから、上の場合キーは商品番号1つですが、リレーションによっては複数存在する場合がありますし、複数の属性を組み合わせてキーとして扱うこともあります。
由美:それはどんな場合ですか?
先生:たとえば商品番号を考えてみましょう。中村さん、商品番号に枝番号をつけることはありませんか?
お父さん:はい。複数の商品を組み合わせてセットで販売するときに使います。同じセットでも内容を少しずつ変えることがあるので、そういうときは商品番号に枝番を付けて管理することが多いです。
先生:それなら、そのセットの商品番号と枝番号を組にしてキーにするとよいと思います(図4)。
お父さん:なるほどねえ。それで、そのキーって他に何に使うのですか?
先生:キーは重複や空の値を許さないので、索引を作ることができます。つまり索引を作ることで、膨大なタプルの中から探したいタプルだけを瞬時に検索することができるわけです。索引については、また別の機会に説明しましょう。
(次ページ、「リレーションの構成は簡潔な組み合わせにしよう」に続く)
この連載の記事
-
最終回
ソフトウェア・仮想化
「せんせい!SQLってRDBを操作する言語よね?」(由美) -
第3回
ソフトウェア・仮想化
「インデックスとトランザクションって」(由美) -
第1回
ソフトウェア・仮想化
「データベースってなんですか?」(由美) - この連載の一覧へ