読み方 : ひキーぞくせい
非キー属性【non-key attribute】
非キー属性とは?
リレーショナルデータベース(RDB)のテーブルを構成する列のうち、行を一意に特定できる候補キーに含まれないもの。候補キーから選ばれた主キーとは異なり、単体でも他の列との組み合わせでも行の識別には使えない列である。

テーブル内でレコードを一意に識別することができる列のことを「キー」(key)という。単体ですべての行の値が一意であることが保証されるものや、複数の列の値の組み合わせが一意であるものが含まれる。キーとして利用可能な候補となる列のことを「候補キー」(candidate key)と総称する。
候補キーの中から、実際にそのテーブルの行の識別に用いる「主キー」(primary key)が一つ選択される。このとき主キーに選ばれなかったキーを「代替キー」(alternative key)という。非キー属性は候補キーの中に含まれていない列で、単体でも、他の列と組み合わせてもキーとなることができないような列を指す。
正規化と非キー属性
テーブル構造を整理し、データの重複や矛盾を防ぐ作業を正規化という。一般にテーブル中の実質的な情報の大部分は非キー属性として格納されており、テーブルを正規化する際には非キー属性がデータベース内のどのキー項目に依存しているかを精査する必要がある。
正規形の一つである「第二正規形」では、非キー属性は主キー全体に対して依存していなければならない。複合主キーを持つテーブルで、非キー属性がその一部にしか依存していない「部分関数従属」の状態は冗長性を招くため、テーブルを分割して解消する必要がある。
また、「第三正規形」では、非キー属性が別の非キー属性に依存する「推移的関数従属」を排除することが求められる。例えば、社員テーブルに部署IDと部署名が共に含まれている場合、部署名は部署IDに依存しており、主キーである社員IDとは直接対応していない。この構造のままでは、部署名を変更する際に該当する全行を修正しなければならず、更新時の不整合が生じやすくなる。