Normalization

代理鍵違反什麼標準形式?

  • March 18, 2018

我有以下問題:

“代理鍵違反什麼標準形式?”

我的想法是第三範式,但我不太確定這只是我所做的假設。有人可以向我解釋一下嗎?

可以說代理鍵不是表的自然鍵,因此可以說它違反了3NF 的“只有鍵”原則。在實踐中,代理鍵只是自然鍵的佔位符,所以這個論點充其量只是學術性的。

一些晦澀的範式需要復合鍵才能變得相關。在這種情況下會想到 5NF,因為它需要 M:M 關係上的多個重疊複合鍵才能違反 5NF。

可以說,它沒有。

添加代理鍵是在實施時做出的實施決策(尊重 RDBMS 的工作方式)。在建模和規範化期間,您應該以沒有代理鍵的BCNF(稍微嚴格和更正確的 3NF)結束

也就是說,在設計過程開始時引入代理鍵是錯誤的。儘管我們都這樣做…

引用自:https://dba.stackexchange.com/questions/16554