关系模式设计理论,模式设计理论
规范化:
一个低级范式,通过模式分解可以转化为若干个高级范式的关系模式,即为规范化。
范式:
目前关系数据库有六种范式,咱们最常用的是第一到第三范式。各范式呈递次规范,越高的范式数据冗余越小。
第一范式:(不再分)
范式的基础,所有范式都必须满足第一范式,其他范式都以第一范式为基础。
第二范式:
第一范式基础上消除局部依赖,要求实体的属性完全依赖于主键。
若存在局部依赖,需将这个属性和候选键的那一部分分离出来形成新的实体。
例
(学号,姓名,系别,住址,课程,成绩);
存在(学号,课程)——>(姓名,系别,住址,成绩);
需分解为:
学号,课程)——>(成绩)
(学号)——>(姓名,系别,住址)
第三范式:
第二范式基础上消除传递依赖。
例
(学号)——>(姓名,系别,住址)
若存在同一系别住址相同,即地址依赖于系别,则该函数依赖不符合第三范式。
需分解为:
(学号)——>(姓名,系别)
(系别)——>(住址)
几个范式,递次下来,就会消除冗余,异常 ,即消除了关系模式设计的常见问题......
兄弟,你出现这个问题跟我学习的时候想法是一样的。所以我想给你我的一点点看法:你之所以看不懂FD推理规则是因为你的数据库设计相关的基础知识不完整,不透彻而引起的。在这里讲,就好像修复一个bug又引进一个新的bug一样,所以建议你好好学习前面的章节,并多练习,那么以后对你的编程开发也很有做用。
关系实际上就是关系模式在某一时刻的状态或内容。也就是说,关系模式是型,关系是它的值。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据。但在实际当中,常常把关系模式和关系统称为关系,读者可以从上下文中加以区别。
它和层次、网状模型相比,有以下特点:
1.数据结构简单(二维表格)
2.扎实的理论基础。
a.关系运算理论
b.关系模式设计理论