收藏 分销(赏)

第四章-数据库设计概要PPT课件.ppt

上传人:w****g 文档编号:6540634 上传时间:2024-12-12 格式:PPT 页数:25 大小:1.92MB 下载积分:10 金币
下载 相关 举报
第四章-数据库设计概要PPT课件.ppt_第1页
第1页 / 共25页
第四章-数据库设计概要PPT课件.ppt_第2页
第2页 / 共25页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,MySQL数据库与应用,主讲人:王艳华,数据库设计,1,.,数据库设计,本章内容,数据规范,1st NF,数据规范,2nd NF,数据规范,3rd NF,数据规范化实例,2,.,数据库设计,本章内容,数据规范,1st NF,数据规范,2nd NF,数据规范,3rd NF,数据规范化实例,3,.,数据库设计,数据规范,1st NF,请分析如下的表,在数据库中该如何存储数据呢?,职工号,姓名,电话,办公室电话,家庭电话,001,张明,3303001,3309987,002,李平,3303002,13456733456,行列交叉产生多个值,4,.,数据库设计,数据规范,1st NF,上表不符合数据表存储方式,该如何处理呢?,职工号,姓名,办公室电话,001,张明,3303001,002,李平,3303002,第一种解决方案:舍弃子列中的某一列,表结构如下:,职工号,姓名,家庭电话,001,张明,3309987,002,李平,13456733456,5,.,数据库设计,数据规范,1st NF,第二种解决方案:把表头中电话列去掉,直接改成,4,列,修改后表结构如下:,职工号,姓名,办公室电话,家庭电话,001,张明,3303001,3309987,002,李平,3303002,13456733456,6,.,数据库设计,数据规范,1st NF,通过以上的实例,我们可以归纳出数据规范化,1NF,:,表中已定义了主键(关键字)。,行与列的交叉点只能有一个值。,7,.,数据库设计,本章内容,数据规范,1st NF,数据规范,2nd NF,数据规范,3rd NF,数据规范化实例,8,.,数据库设计,数据规范,2nd NF,例:选课关系,(,学号,课程号,学分,成绩,),SCI,(,SNO,,,CNO,,,CREDIT,,,GRADE,),SNO,CNO,CREDIT,GRADE,001,029,2,79,002,029,2,88,003,029,2,72,002,034,3,89,学分部分依赖课程号,9,.,数据库设计,数据规范,2nd NF,如何处理这种表中数据的部分依赖呢?,SNO,CNO,GRADE,001,029,79,002,029,88,003,029,72,002,034,89,CNO,CREDIT,029,2,034,3,拆分成只有完全依赖的两个表,10,.,数据库设计,数据规范,2nd NF,第二范式:,如果一个表属于,1NF,,且不包含部分依赖性,既没有任何属性只依赖于关键字的一部分,则这个表属于第二范式(常记成,2NF,)。,换句话说,第二范式是,任何属性都完全依赖主键。,11,.,数据库设计,本章内容,数据规范,1st NF,数据规范,2nd NF,数据规范,3rd NF,数据规范化实例,12,.,数据库设计,数据规范,3rd NF,例:学生实体,(,学号,姓名,所在系,系名称,系地址,),STU,(,SNO,SNAME,DNO,DNAME,LOCATION,),SNO,SNAME,DNO,DNAME,LOCATION,001,张明,IM,信息管理,行政,415,042,刘丽,EG,电力工程,行政,502,107,李华平,IM,信息管理,行政,415,109,邓丽娟,HR,人力资源,行政,317,系名称、系地址依赖于所在系,13,.,数据库设计,数据规范,3rd NF,如何解决这种传递依赖呢?,DNO,DNAME,LOCATION,IM,信息管理,行政,415,EG,电力工程,行政,502,HR,人力资源,行政,317,SNO,SNAME,DNO,001,张明,IM,042,刘丽,EG,107,李华平,IM,109,邓丽娟,HR,拆分,14,.,数据库设计,数据规范,3rd NF,通过以上实例总结得到:,一个表属于,2NF,,且不包含传递依赖性,则这个表是第三范式(常记成,3NF,)。,换句话说,没有任何一个非关键属性依赖于另一个非关键属性。,15,.,数据库设计,本章内容,数据规范,1st NF,数据规范,2nd NF,数据规范,3rd NF,数据规范化实例,16,.,数据库设计,数据规范化实例,假设某建筑公司要设计一个数据库,说明如下:,公司承担多个工程项目,每一项工程有:工程号、工程名称、施工人员等;,公司有多名职工,每一名职工有:职工号、姓名、性别、职务(工程师、技术员)等;,公司按工时和小时工资率支付工资,小时工资率由职工职务决定(如,技术员的小时工资率与工程师不同);,公司定期制定一个工资报表如下图:,17,.,数据库设计,数据规范化实例,工程号,工程名称,职工号,姓名,职务,小时,工资率,工时,实发工资,A1,花园大厦,1001,齐光明,工程师,65,13,845.00,1002,李思岐,技术员,60,16,960.00,1004,葛宇洪,技术员,60,19,1140.00,小计,2945.00,A2,立交桥,1001,齐光明,工程师,65,15,975.00,1003,鞠明亮,工人,55,17,935.00,小计,1910.00,A3,临江饭店,1002,李思岐,技术员,60,18,1080.00,1004,葛宇洪,技术员,60,14,840.00,小计,1920.00,18,.,数据库设计,数据规范化实例,首先把表格规范化为符合,1NF,,规范化后如下所示:,工程号,工程名称,职工号,姓名,职务,小时工资率,工时,A1,花园大厦,1001,齐光明,工程师,65,13,A1,花园大厦,1002,李思岐,技术员,60,16,A1,花园大厦,1004,葛宇洪,技术员,60,19,A2,立交桥,1001,齐光明,工程师,65,15,A2,立交桥,1003,鞠明亮,工人,55,17,A3,临江饭店,1002,李思岐,技术员,60,18,A3,临江饭店,1004,葛宇洪,技术员,60,14,19,.,数据库设计,数据规范化实例,表中包含大量的冗余,可能会导致数据异常:,更新异常 例如,修改职工号,=1001,的职务,则必须修改所有职工号,=1001,的行。,添加异常 若要增加一个新的职工时,首先必须给这名职工分配一个工程。(因为主关键字不能为空),删除异常。,20,.,数据库设计,数据规范化实例,采用这种方法设计表的结构,虽然很容易产生工资报表,但是每当一名职工分配一个工程时,都要重复输入大量的数据。这种重复的输入操作,很可能导致数据的不一致性。,21,.,数据库设计,数据规范化实例,用函数依赖图表示所有属性之间存在的函数依赖关系,如下图所示。,工程号,工程名称,职工号,姓名,职务,小时工资率,工时,22,.,数据库设计,数据规范化实例,工程号,工程名称,职工号,姓名,职务,小时工资率,工程号,职工号,工时,符合,2NF,表结构如下:,23,.,数据库设计,数据规范化实例,工程号,工程名称,工程号,职工号,工时,职工号,姓名,职务,职务,小时工资率,符合,3NF,表结构如下:,24,.,亲爱的同学,下节课再见!,25,.,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服