5
回答
数据库5大范式中的最后两个范式怎么理解,请举例说明

如题

举报
ulfl
发帖于8年前 5回/2K+阅
共有5个答案 最后回答: 4年前

第四个正规化形式  (第四范式)

1.在一个多对多的关系中, 独立的实体不能存放在同一个表格中

由于它仅应用于多对多的关系,因此大多数的开发者可以忽略这条规定。不过在某些情况下,它是非常 实用的,这个例子就是这样,我们通过将相同的实体分离出来,并且将关系移到它们自己的表格中,从而改进了urls表格。

为了令你更容易 明白,我们举个具体的例子,以下将用一个SQL语句选择出所有属于joe的urls:

SELECT name, url FROM users, urls, url_relations WHERE url_relations.relatedUserId = 1 AND users.userId = 1 AND urls.urlId = url_relations.relatedUrlId

如果我 们想要遍历每个人的个人信息和url信息,我们可以这样做:

SELECT name, url FROM users, urls, url_relations WHERE users.userId = url_relations.relatedUserId AND urls.urlId = url_relations.relatedUrlId

第五级正规化形式 (第五范式)

还有一级正规化的形式,它并不常见,有点深奥,并且在大部分的情况下都是不必要的。它的原则是:

1.原来的表格必须可以通过由它分离 出去的表格重新构建

使用这个规定的好处是,你可以确保不会在分离的表格中引入多余的列,所有你创建的表格结构都与它们的实际需要一 样大。应用这条规定是一个好习惯,不过除非你要处理一个非常大型的数据,否则你将不需要用到它。

你可能想知道这些方法是从哪来的, 前面三个正规化的规定是1972年,Dr. E.F. Codd在他的论文“进一步正规化数据库的关系模型中”提出的,其余的规定是经过后来的集合理论和关系数学家理论化的。 评论:正所谓物级必反,将表格分得过细有时并不好,因为这样需要将各表进行各种的关联,这会令查询时变得复杂,而且效率也可能降低,这些正规化的规定可以 参考,在实际应用时,要根据项目的大小,必要时可以进行一些测试,以设计出更合理的表格结构。

引用来自#2楼“红薯”的帖子

第四个正规化形式  (第四范式)

1.在一个多对多的关系中, 独立的实体不能存放在同一个表格中

由于它仅应用于多对多的关系,因此大多数的开发者可以忽略这条规定。不过在某些情况下,它是非常 实用的,这个例子就是这样,我们通过将相同的实体分离出来,并且将关系移到它们自己的表格中,从而改进了urls表格。

为了令你更容易 明白,我们举个具体的例子,以下将用一个SQL语句选择出所有属于joe的urls:

SELECT name, url FROM users, urls, url_relations WHERE url_relations.relatedUserId = 1 AND users.userId = 1 AND urls.urlId = url_relations.relatedUrlId

如果我 们想要遍历每个人的个人信息和url信息,我们可以这样做:

SELECT name, url FROM users, urls, url_relations WHERE users.userId = url_relations.relatedUserId AND urls.urlId = url_relations.relatedUrlId

第五级正规化形式 (第五范式)

还有一级正规化的形式,它并不常见,有点深奥,并且在大部分的情况下都是不必要的。它的原则是:

1.原来的表格必须可以通过由它分离 出去的表格重新构建

使用这个规定的好处是,你可以确保不会在分离的表格中引入多余的列,所有你创建的表格结构都与它们的实际需要一 样大。应用这条规定是一个好习惯,不过除非你要处理一个非常大型的数据,否则你将不需要用到它。

你可能想知道这些方法是从哪来的, 前面三个正规化的规定是1972年,Dr. E.F. Codd在他的论文“进一步正规化数据库的关系模型中”提出的,其余的规定是经过后来的集合理论和关系数学家理论化的。 评论:正所谓物级必反,将表格分得过细有时并不好,因为这样需要将各表进行各种的关联,这会令查询时变得复杂,而且效率也可能降低,这些正规化的规定可以 参考,在实际应用时,要根据项目的大小,必要时可以进行一些测试,以设计出更合理的表格结构。

这个我网上搜索过了,只是不怎么明白上面所说的

个人理解,第四级主要是对于描述性的值在数据库中只能存放一个,如上面的针对某个具体的url:www.baidu.com,在数据中只能在一条记录中出现,而如果多个其他记录需要使用时,就采用关系表的方法来存储;

第五级是指通过一些链接是可以将上述分离出来的各个表中的字段组合成一个我们想要的记录的,即可以创建视图。

我应该是 大概理解了第五范式,第五范式应用场景应该是 可以无限扩展的 实体属性。EAV模式

实体-属性-值

第四范式就是表示在多对多关系中,实体本身并不存储关系,而关系都记录在另一个中间关系表中,要选择俩个多对多实体间的数据,必须通过中间关系表来得到,实体本身没有存储任何与另外一个实体的关系的记录
顶部