Database 规范化中第四范式的定义
我有一个关于第四范式(4NF)的问题。 我有点困惑,因为我看到了一些定义,其中一些定义彼此不同 我看到的最简单的定义是:[翻译自德语维基百科]: 如果一个表是Boyce–Codd范式(BCNF),并且只包含平凡的多值依赖项(MVD),那么它就是4NF 使用Wikipedia中的MVD定义 () 根据维基百科,一个微不足道的MVP是: 如果Y是X的子集,则多值依赖项X->>Y是微不足道的,或者 如果X∪ Y是关系的整个属性集 使用此定义,下表不应包含在4NF中:Database 规范化中第四范式的定义,database,relational-database,relation,database-normalization,Database,Relational Database,Relation,Database Normalization,我有一个关于第四范式(4NF)的问题。 我有点困惑,因为我看到了一些定义,其中一些定义彼此不同 我看到的最简单的定义是:[翻译自德语维基百科]: 如果一个表是Boyce–Codd范式(BCNF),并且只包含平凡的多值依赖项(MVD),那么它就是4NF 使用Wikipedia中的MVD定义 () 根据维基百科,一个微不足道的MVP是: 如果Y是X的子集,则多值依赖项X->>Y是微不足道的,或者 如果X∪ Y是关系的整个属性集 使用此定义,下表不应包含在4NF中: CourseNr Book
CourseNr Book Lecturer
======== ==== ========
1 Math-A Prof. Smith
1 Math-B Prof. Bob
1 Math-A Prof. Bob
1 Math-B Prof. Smith
这几乎是维基百科的定义。
我现在的问题是:
如果我从此表中删除最后一行:
CourseNr Book Lecturer
======== ==== ========
1 Math-A Prof. Smith
1 Math-B Prof. Bob
1 Math-A Prof. Bob
如果这个表现在在4NF中?
我会说是的,因为它不符合
多值依赖关系不再存在,因此该表不包含
不再是一个微不足道的MVD,因此应该是4NF
我的假设是正确的还是我在这过程中犯了错误
如果一个表是Boyce–Codd范式,并且只包含平凡的多值依赖项(MVD),那么它就是4NF
这使用“仅”很差。此外,它对“contains”的使用在初学者的上下文中可能是模糊的。它似乎试图说:
- 如果一个表在BCNF中,那么它就在4NF中,并且它满足的唯一MVD是微不足道的
- 如果一个表在BCNF中,并且它满足的每个MVD都是平凡的或对应于一个FD,那么它就在4NF中
- 如果一个表在BCNF中,那么它在4NF中,并且它满足的每一个MVD都不对应于FD,那么它就是平凡的
(请参阅我关于4NF和MVDs的回答。)我总是发现,只要远离教科书/规范化术语,4NF就很容易理解。试着这样做:看了视频,虽然我确实理解他是什么,解释了什么,以及他说了什么。NF是关于以及如何“实现”它的,它仍然困扰着我,我对4的正式定义有一些问题。NF。但也许我应该停止在所有事件中试图理解正式定义,而只是开始使用视频的非正式解释。(正如Brian Finnegan在视频中所说:“你现在可以告诉人们,你明白,作为一名称职的数据建模师,你需要了解4.NF”)。无论如何,谢谢你的回答:)重新发布,请尽可能使用文本。无法搜索或剪切粘贴部分图像。问题应该是独立的。(如果你想使用特殊字符,请参阅wiki的Unicode字符列表,特别是数学链接。)你的意思不是“这几乎就是维基百科中[4NF]的定义”,而是“这满足了”它。加上“差不多”,你想说什么,因为它要么有,要么没有?既然“它”是一个表,“它不再符合多值依赖关系的定义”意味着什么?这是如何导致“因此该表不再包含一个微不足道的MVD”?你是说,不平凡?这是如何导致“并因此应该在4.NF中”的呢?PS最后一个表实际上满足了一些非平凡的FDs和MVD,确定了CourseNr。假设您考虑的是持有该值的变量,不满足那些FD/MVD,已经放弃了MVD约束。