TL;DRいいえ、「行列式」と「候補キー」は同じ概念ではありません。決定要因はFDです。CK はテーブルの CK です。また、CK はそのテーブルの (FD の) 決定要因であるとずさんに言うこともできます。
次のすべての用語/概念は、テーブルの値と変数に対して並行して定義されています。テーブル変数には、特定のビジネス/アプリケーションで発生する可能性のあるすべてのテーブル値が存在する場合、FD (関数の依存関係)、行列式、スーパーキー、CK (候補キー)、または PK (主キー) (変数の意味で) のインスタンスがあります。そのインスタンスがあります(テーブルの意味で)。
列 X と Y のセットの場合、X -> Yと書くことができます。X は決定要素/決定集合であり、Y は機能依存( FD ) X -> Yの/決定された集合であると言います。
Xは機能的に Y を決定し、YはXによって機能的に決定されると言います。 X が Y のスーパーセットである場合、X -> Y は自明であると言います。
Xの各サブ行値が Y の 1 つの特定のサブ行値でのみ表示される場合、X -> Yがテーブル T で成立すると言います。または、X -> Y がTの / 内の FD であると言います。Xが何らかの FD の行列式である場合テーブル T では、X は T の / の行列式であると言います。テーブルのすべての自明な FD がその中に保持されます。
テーブル Tのスーパーキーは、すべての列を機能的に決定する一連の列です。候補キー( CK ) は、それより小さいスーパーキーを含まないスーパーキーです。1 つの CK を主キー( PK ) として選択し、他の CK を代替キー( AKs )と呼ぶことができます。列がCK にある場合、その列は素数です。
行列式はFD の場合もあれば、テーブル (保持する FD) の場合もあることに注意してください。すべての CK は、そのテーブルの決定要因です。(ただし、テーブルでは、列のすべてのセットが決定要因です。それ自体で、自明です。同様に、すべての列です。)
(これらの定義は正規化に依存しません。テーブルの FD と CK は正規化に使用されます。テーブルに保持されている非自明な FD のすべての行列式がスーパーキーである場合、テーブルは BCNF にあります。)
SQL テーブルは関係ではなく、SQL 演算子は関係/数学の対応物ではありません。とりわけ、SQL には重複行、NULL、および一種の 3 値ロジックがあります。しかし、用語を借用してそれらに SQL の意味を与えることはできますが、それらの意味を他の RM 定義または定理に置き換えるだけで、意味のあるまたは真の何かを得ることはできません。したがって、SQL 設計をリレーショナル設計に変換し、リレーショナル概念を適用してから、SQL に戻す必要があります。変換、適用、および元に戻すとどうなるかがわかっているため、特定のことを SQL で直接実行できる特殊なケースがあります。