スーパーキー

データベース分野におけるスーパーキーは、関係)の(タプル、行)を一意に特定できる属性(列)、または属性の集合のことをいう。 スーパーキーは、対象となる関係の全ての属性が関数従属している属性の集合と定義することもできる。

候補キー主キーとの違いは、一意に識別できるすべての組み合わせを表している点にある。つまり、候補キーに余計な属性を付け加えて冗長にしたものは候補キーではないが、依然としてスーパーキーではあるという差がある。スーパーキーが既約である場合、すなわち冗長性が無い場合、そのスーパーキーは候補キーでもある。

例えば、市町村(市町村ID, 市町村名, 都道府県名)という関係の場合、市町村ID、{市町村ID, 市町村名}、{市町村ID, 都道府県名}、{市町村ID, 市町村名, 都道府県名}、{市町村名, 都道府県名} がスーパーキーである。

関係の全ての属性からなる集合は、その関係が基底関係であろうと導出関係(ビュー)であろうと、常にスーパーキーである。