谁能用例子讲解一下第三范式,我看的几遍文章的例子都是英文的,因而不太明白.

dqj 2000-05-03 05:52:00
谁能用例子讲解一下第三范式,我看的几遍文章的例子都是英文的,因而不太明白.
是否设计的数据库都要遵循第三范式?
列中出现较多的空值是否对性能有负面影响?
是否应避免空值而细分成更多的表?
...全文
122 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
bokei 2000-05-04
  • 打赏
  • 举报
回复
第三范式要求不存在传递依赖关系。在这种关系中某个字段依赖于另一个字段,而那个字段又依赖于第三个字段。当一个表不符合第三范式时,表中缺少记录会导致信息丢失。

我是这样理解的,仅供参考:
如学生有班级编号和学生编号。我们就不能够建立一个让学生编号和班级编号对应的中间表。而应该把班级编号也当成学生的一个属性来看。因为如果有中间表,万一中间表里有一条记录丢失了。这个学生属于那各班也就不知道了,也不容易检查出来。在表中也就产生了冗余数据。而如果是把班级编号作为学生的其中一个属性。即使这个学生的记录丢失了,也不会产生冗余数据,最多只是要重新录入而已。其实范式就是要让一个数据库的容错能力更好,不产生冗余数据,这在大型数据库中很重要。

不一定。因为还有第四范式、第五范式、DKNF,这些范式防止丢失任何信息。符合越高级别的范式会带来更多的表。性能的影响也就越大。设计时根据实际需要来做。如果你不打算在这个数据库里有什么扩充,你可以不符合任何的范式,自己也可以省事一点。范式只是一些规范而已。就象软件工程学一样。是不是设计任何程序都要按软件工程学的要求来做呢?我想你也不想太麻烦吧。我认为工程越大,就越需要符合这些规范,至于小的工程也就不需要考虑这么多了。

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧