BCNF は第 3 正規形 (3NF) の拡張であり、3NF よりわずかに強力です。
P -> Q が自明な関数依存関係であり、P が R のスーパーキーである場合、関係 R は BCNF に属します。
関係が BCNF にある場合、機能の依存関係に基づく冗長性は削除されていますが、いくらかの冗長性がまだ存在していることを意味します。
例を見てみましょう -
ground | #開始時間##終了時間 |
#パッケージ |
##G01 |
09:00 | ゴールド | G01 | |
##12:00 |
##ゴールド | G01 | #10:30 |
##ブロンズ |
#G02 | ##10:15 |
11:15 |
シルバー | ##G02 | 08:00 | 09:00 |
##上記の関係は、 1NF、2NF、3NF がありますが、BCNF にはありません。その理由は次のとおりです。 | 関数の依存関係 {Package->Ground} |
# #グラウンド
##シルバー |
G02 | ||||||||||||||||
G01 | |||||||||||||||||
#G01 | 07:00##09:00 | #G01 10:00 |
12:00 | G01 |
##10:30 |
#G02 | #10:15 |
#11:15 |
G02 | 08:00 | 09:00 |
これで、上の表は BCNF 形式になりました。 | テーブルの候補キーは Package と Ground です | ## テーブル|
と {Ground, End_Time} | なぜなら、私たちは | の関係にあるからです。
以上がボイスコード正規形 (BCNF)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。