抽象关系模式的正常形式

问题描述:

我想知道关于关系数据库正常形式的这些考题。在我看来,第一个应该是3NF,第二个是2NF(即第一个应该是错的)。抽象关系模式的正常形式

问题9. [...] C int, D int NOT NULL, UNIQUE (B,C) [...]

我的理由是,由于C是独一无二的,它也是一个候选键,因此一个主属性。因此,它也是一个超级键,因此适合3NF的描述。

为3NF定义:关系模式R是第三范式(3NF)如果,每当一个非平凡函数依赖中的R X→A成立时,无论是 的(a)X是R的超密钥,或(b)A是R.

databasequestion

+0

好像我需要更多的点能够发布IMG直接,对不起... – Krilliminell

+0

你是什么意思,“C是独一无二的”? PS [请使用文本发布任何可能的内容 - 即,所有链接/图像。](https://meta.stackoverflow.com/a/285557/3404097)同时请给它的来源来信任它的作者。同时解释暗箱,不要强迫我们弄清楚这是他们还是你。因为模式[[不属性,superkey或CK] - “适合”NF,并且你写的内容没有意义,所以请编辑“因此适合3NF的描述”)来实际说出你想说的内容。 – philipxy

第一个问题并没有说C是唯一的原属性,它说 “UNIQUE(b,C)”,这意味着(b ,C)子表值在表中是唯一的。

D不是NULL,所以推测B & C可能是NULL。但是关系理论不具有NULL。所以目前还不清楚你或你的课程/教科书甚至意味着{C}是一个决定因素。 Or by "FD" (functional dependency), "superkey", "CK" (candidate key), "PK" (primary key), any of the "NFs" (normal forms) or any other relational terms。另外在SQL PRIMARY KEY中实际上意味着UNIQUE NOT NULL,而UNIQUE使用3VL,所以这两个术语都没有关系含义。所以你需要告诉我们或给一个参考。 (虽然也许它并没有解决问题,使测试&其使用的那些话重新SQL表可以有NULL只是胡说八道。)

无论如何,如果{C}是独一无二的,NULL没有参与,“因为C是独一无二的,它也是一个候选键“不健全”。如果{}不是,那么它只是一个CK,也就是说,如果表不被限制只有一行。

而且,仅仅因为拥有一些非平凡的FD满足(a)或(b)不意味着他们所有做的,所以你的推理再3NF是错误的。