Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > ADP及SQL SERVER

函数依赖和范式

时 间:2019-04-12 10:02:17
作 者:缪炜   ID:24010  城市:江阴
摘 要:函数依赖和范式
正 文:

一、函数依赖概念


1、函数依赖概念:相当于数学中的函数,U是属性全集,x和y是U上的子集,x对应唯一确定的y,即x->y(y依赖于x)。


2、完全依赖和不完全依赖:U是属性全集,x和y是U上的子集,x1是x的真子集,如果x->y,且x1不能确定y,则是完全函数依赖,反之x1->y,则是不完全函数依赖。


3、传递依赖:U是属性全集,x、y和z是U上的子集,x->y(但是y不能确定x),y->z,则x->z。


二、范式


作用与背景:消除关系模式的数据冗余,解决删除和插入操作的异常。从而为不同程度的规范化设立不同的标准。


1NF:属性不能再拆分。举一个反例,关系模式R(身份,身体状况),明显身份可以拆分为姓名,编号等,所以不是第一范式。


2NF:非主属性完全依赖于码。举一个反例,关系模式R(姓名,学号,班级编号,班级名),满足1NF,候选码为学号和班级编号,(学号,班级编号)->姓名,(学号,班级编号)->班级名,但是学号->姓名,班级编号->班级名,所以不是第二范式。(通过完全依赖概念得出)


3NF:非主属性不传递依赖于码。举一个反例,关系模式(姓名,学号,班级,班主任),满足2NF,,主键是学号,但是学号->班级,班级->班主任,得出学号->班主任,所以不是第三范式。(通过传递依赖概念得出)


BCNF:消除主属性对码的部分依赖和传递依赖。反例不好举出,凑一个吧,满足3NF,关系模式(姓名,学号,学科号,成绩),假设名字没有重复,得出依赖姓名->学号,学号->姓名,(学号,学科号)->成绩,(姓名,学科号)->成绩,可以看出主属性对码的部分依赖,达不到BCNF。


总结:一般达到3NF可在市场流通。


4NF:满足BCNF,消除“多对多”的关系模式。


如:“多对多”模式



可以看出学号,姓名,课程编号,课程名称重复,数据冗余,可以化为“一对多”的模式,从而实现4NF。

      

学生信息表(左)和选课表(右)(一对多)


课程表(左)



Access软件网QQ交流群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助