数据库-规范化理论.ppt
兰州理工大学计算机与通信学院兰州理工大学计算机与通信学院2007年4月19日星期四兰州理工大学计算机与通信学院*数据库设计规范化理论数据库原理与应用PrincipleandApplicationofDataBase关系数据库设计中存在的问题2007年4月19日星期四*兰州理工大学计算机与通信学院示例:考虑为管理职工的工资信息而设计一个关系模式。数据库原理与应用PrincipleandApplicationofDataBase兰州理工大学计算机与通信学院数据库原理与应用如果我希望知道在这个单位8级工的工资是多少,能否查询到?问题:职工个人的工资信息;各个级别的工资数额。PrincipleandApplicationofDataBase在表中包含着两类信息:2007年4月19日星期四兰州理工大学计算机与通信学院*问题:插入异常:如果没有职工具有8级工资,则8级工资的工资数额就难以插入数据库原理与应用PrincipleandApplicationofDataBase删除异常:如果仅有职工赵明具有4级工资,如果将赵明删除,则有关4级工资的工资数额信息也随之删除了。0504020301兰州理工大学计算机与通信学院数据冗余:职工很多,工资级别有限,每一级别的工资数额反复存储多次。数据库原理与应用PrincipleandApplicationofDataBase更新异常:如果将5级工资的工资数额调为620,则需要找到每个具有5级工资的职工,逐一修改。2007年4月19日星期四兰州理工大学计算机与通信学院*解决之道:分解!数据库原理与应用PrincipleandApplicationofDataBase2007年4月19日星期四兰州理工大学计算机与通信学院*有关学生的关系模式S(学号,姓名,系号,主任,课程编号,成绩)它有哪些数据冗余?数据库原理与应用PrincipleandApplicationofDataBase2007年4月19日星期四兰州理工大学计算机与通信学院*★规范化理论问题的提出针对一个具体问题,如何构造一个合适的数据模式。即应该构造几个关系模式(表),每个关系有那些属性组成?数据库原理与应用PrincipleandApplicationofDataBase兰州理工大学计算机与通信学院PrincipleandApplicationofDataBase数据库原理与应用定义:设R(U)是属性集U上的关系模式。X,Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记为X→Y。记号x→y称x函数确定y,或y函数依赖于x。称X为决定因素。如学号?姓名,(学号,课程)?成绩兰州理工大学计算机与通信学院1注意:函数依赖是语义范畴的概念,我们只能根据语义来确定函数依赖。例如在没有同名的情况下,姓名→年龄是成立的,而在有同名的情况下,这个函数依赖就不成立了。平凡函数依赖:如果X?Y,但Y不是X的子集,则称其为非平凡的函数依赖,否则称为平凡的函数依赖。如(学号,姓名)?姓名是平凡的函数依赖2数据库原理与应用3PrincipleandApplicationofDataBase4兰州理工大学计算机与通信学院1函数依赖可分为三类:完全函数依赖,部分函数依赖和传递函数依赖。定义:在R(U)中有X、Y?U,如果X→Y,并且对于X的任何一个真子集X?,都有Y不函数依赖于X,则称Y对X是完全函数依赖的。定义:在R(U)中,如果X→Y,并且对于X的某个真子集X,有X→Y,则称Y对X部分函数依赖。定义:在R(U)中,如果X→Y(Y不包含于X,X不依赖于Y),且Y→Z,则称Z对X传递函数依赖。2数据库原理与应用3PrincipleandApplicationofDataBase4兰州理工大学计算机与通信学院1例1:某单位有一资料室,它管理的数据有读者信息、图书信息、借阅信息。读者信息:借书证号,读者姓名,性别,部门,学历,部门电话,个人电话,电子信箱等;图书信息:图书编号,分类号,书名,作者,出版社,单价等;借阅信息:借书证号,图书编号,书名,借出日期,应还日期等。2数据库原理与应用3Principle