如果表只有1个主键,那么默认情况下数据库是2NF吗?

时间:2012-04-19 19:41:51

标签: database primary-key normalization relational

即。有一个只有一个主键的表(没有复合键)。默认是2NF吗?假设它已经是1NF

4 个答案:

答案 0 :(得分:1)

http://en.wikipedia.org/wiki/Second_normal_form

在您的示例中,PatNo不是主键,因为PatNo可能会看到多个医生,或者有多个appNo。

答案 1 :(得分:0)

简而言之,当且仅当表是

时,表格在2NF中
  • 在1NF,
  • 没有部分密钥依赖。

这与使用单列主键的表格在2NF中的情况完全不同。像这样的表

person_id  full_name       phones
--
-43        Ericka Cimini   555-222-1515
                           555-232-6100
-18        Julio Martina   555-123-4567

有一个单列主键(“person_id”),但它不在1NF中。 (有关详细信息,请参阅wikipedia。)因为它不在1NF中,所以它不可能在2NF中。

答案 2 :(得分:0)

我想现在就明白了。

在我的例子中,如果有超过1名医生,那么医生也部分依赖于患者编号,因为医生必须看到正确的患者。这只是令人困惑,因为医生也通过appNo传递依赖于patNo。

答案 3 :(得分:0)

也许这种迟到的回应可能对其他人有所帮助。我们被教导(可能是错误的)不相关的数据也属于2NF。所以animal(phylum, class, order, family, genus, species, greek_phoneme)不会出现在2NF中,因为希腊音素与动物无关。