1. はじめに
SQL でテーブルを定義するときに PRIMARY KEY や UNIQUE を指定すると思いますが,皆さんはリレーション(スキーマ)のキー(key)を一体どのようにして見つけていますか?
そもそも,「キーとはタップルの一意識別能力を有する属性の極小組」であることは,リレーショナルデータモデルを学んだ人ならばデータベースのイロハといった事項でしょうが,具体的にリレーション(スキーマ)と所与の関数従属性の集合が指定されたときに,キーを求めなさいと言われると,結構難儀する場合もあるのではないか,と思います.
本稿では,次に示す 3 つの問題について改めて論じてみます.
- 候補キーを 1 つ見つける.
- 候補キーをすべて見つける.
- 候補キーの数の上限は?