首页 MySQL数据库技术教学全套课件 周德伟 电子课件 代码课件单元1 数据模型的规划与设计

MySQL数据库技术教学全套课件 周德伟 电子课件 代码课件单元1 数据模型的规划与设计

举报
开通vip

MySQL数据库技术教学全套课件 周德伟 电子课件 代码课件单元1 数据模型的规划与设计单元一数据模型的规划与设计项目知识要点与目标 项目知识要点 知识能力目标 学时 1.1任务1设计数据库关系模型1.1.1数据模型1.1.2概念模型1.1.3E-R图的设计1.1.4数据库关系模型的建立1.2任务2数据库设计规范化1.2.1关系型数据库范式理论1.2.2数据库规范化实例1.2.3综合实例PetStore数据库的设计 【情境】:数据库分析、设计【职业岗位】:数据库管理员、程序员【典型工作任务】:对数据库进行分析,建立E-R图,关系模型【技能要求】:1、设计数据库关系模型2、数据库设计规范化【知识要求技能...

MySQL数据库技术教学全套课件 周德伟 电子课件 代码课件单元1 数据模型的规划与设计
单元一数据模型的规划与设计项目知识要点与目标 项目知识要点 知识能力目标 学时 1.1任务1设计数据库关系模型1.1.1数据模型1.1.2概念模型1.1.3E-R图的设计1.1.4数据库关系模型的建立1.2任务2数据库设计 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 化1.2.1关系型数据库范式理论1.2.2数据库规范化实例1.2.3综合实例PetStore数据库的设计 【情境】:数据库分析、设计【职业岗位】:数据库管理员、程序员【典型工作任务】:对数据库进行分析,建立E-R图,关系模型【技能要求】:1、设计数据库关系模型2、数据库设计规范化【知识要求技能训练】:1、识记数据库的相关知识2、数据库设计的相关知识 4 项目实训一 创建“员工管理系统”的数据模型 2【学习情境】:Petstore数据库结构设计 Petstore(宠物商店)是SUN公司推出展示Javaweb应用开发技术的网上商城示范项目。 功能需求分析:实现前台用户购物和后台管理两大部分功能。前台购物为顾客服务,客户输入用户名、密码等信息进行注册,注册成功后就可以进行按产品的分类浏览网站,当用户看中某个宠物时,可以加入用户的购物车,当购物选择完毕时,用户可以对购物车中的物品进行预订,系统生成相应的订单。后台商品管理为管理员所用,管理员可以对商品进行分类,并为每个分类增加新商品以及对现有商品完成修改、删除等操作。 要进行Petstore电子商务系统的开发,需要运用E-R图等数据库设计工具,合理规划与设计Petstore数据库。修建茅屋需要设计吗?修建大厦需要设计吗?结论:当数据库比较复杂时我们需要设计数据库为什么需要设计数据库数据库设计就是将数据库中的数据对象以及这些数据对象之间关系进行规划和结构化的过程任务一设计数据库关系模型讲解要点:由修建茅屋和大厦的对比,得出结论:当数据库比较复杂(如数据量大,表较多,业务关系复杂)时,我们需要先创建数据库;为什么需要设计数据库 良好的数据库设计 节省数据的存储空间 能够保证数据的完整性 方便进行数据库应用系统的开发 糟糕的数据库设计: 数据冗余、存储空间浪费 内存空间浪费 数据更新和插入的异常数据冗余存在冗余为减少数据查找的麻烦,允许数据有一定的冗余数据冗余:指数据重复的现象 编号 姓名 年龄 民族 部门 部门位置 1 王涛 33 汉族 人事管理部 行政楼301 2 李梅 27 汉族 人事管理部 行政楼301数据完整性存在不正确、不准确的数据,数据库“失去了完整性”数据完整性:指数据的准确性 编码 姓名 地址 销售代码 11 阿兰 海淀黄庄菜园子 AC091 12 东方求败 海淀龙王庙鬼楼 AC043 15 张无忌 中关村大街3-201 AC011 13 菜鸟特注 海淀龙王庙树林 AC041 14 赵可 海淀龙王庙树林 AC012 15 张无忌 中关村大街2-101 AC0111.1设计数据库关系模型概念模型:把现实世界转换为信息世界的模型,E-R模型实施模型:把信息世界转化为数据世界使用的模型,关系模型讲解要点:既然我们建库前需要预先设计数据库,那到底如何设计呢?我们一起从数据库设计的角度,看看项目开发周期的不同阶段,数据库设计的具体工作有哪些。1.重点讲解与数据库设计相关的各个阶段。2.强调需求分析阶段:分析客户的业务需求。3.强调概要设计阶段:重点是分析数据库E-R图(类似建筑方面的施工图),用于项目团队之间以及团队和客户之间的沟通,客户根据图纸提出修改意见,项目组修改后再与客户反复沟通,直到客户确认。E-R的好处主要是简洁直观。4.强调详细设计阶段:重点是实现,需要把E-R图转化为具体的多张表。但是10个人有10种设计 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 ,所以我们需要评估、审核并优化,审核时就需要一些设计规则进行审核,这些规则就是三大范式。5.在代码编写阶段:我们再根据项目性能要求、项目经费、技术实现难度等选择是Access/SQlServer还是Oracle等进行物理实现:建库、建表、加约束等。实体模型现实世界客观存在的、可以被描述事物都是“实体”层次模型按层次模型组织的数据示例网状模型按网状模型组织的数据示例关系模型按关系模型组织的数据示例关系模型特点关系模型中基本数据结构是二维数据表,且必须满足相应的要求:(1)表说明的是关系模型中某一特定的方面或部分的对象及其属性(2)表中的行通常叫做记录或元组,代表具有相同属性的对象中的一个(3)表中的列通常叫做字段或属性,代表存储对象的共有的属性(4)数据表之间的关联通过“键”来实现的,键分为主键和外键两种。(5)表必须符合某些特定条件①信息原则:每个单元只能存贮一条数据;②列有唯一性的名称,贮存在列下的数据必须具有相同数据类型;列没有顺序;;③每行数据是唯一的;行没有顺序;④实体完整性原则,即主键不能为空;⑤引用完整性原则,即外键不能为空;1.1.2概念模型建模步骤: 收集信息:与该系统有关人员进行交流、坐谈,充分理解数据库需要完成的任务 标识对象(实体-Entity)标识数据库要管理的关键对象或实体 标识每个实体的属性(Attribute) 标识对象之间的关系(Relationship)建模:把现实世界转换为信息世界的模型,E-R模型2.标识对象:告诉学员实体的概念:相当于Java中讲解的对象,现实中实实在在存在的事物都是实体,如汽车、房子、人等。强调实体一般是名词,英文是Entity提问学员:BBS论坛中有哪些实体?引导回答:用户、主贴、跟贴。因为主贴和跟贴的信息不完全一样(如跟贴数等),所以分开。版主不是实体,因为它属于用户实体,它只是一种拥有特权的特殊用户。建模实例:学生选课系统建模张三选修李四王五共性学生实体抽象抽象实体共性课程关联选课成绩主码(关键字) 主码:也叫关键字,实体集中的属性或最小属性组合的值能唯一标识其对应实体,则将该属性或属性组合称为码。对于每一个实体集,可指定一个码为主码。 学生和课程实体集属性描述概念结构设计 概念结构设计-E-R图方法 实体关系图:简记E-R图,是指以实体、关系、属性三个基本概念概括数据的基本结构,从而描述静态数据结构的概念模式。 实体型(Entity):具有相同的特征和性质的集合体,用实体名及其属性名来抽象和刻画同类实体;在E-R图中用矩形表示,矩形框内写明实体名;比如学生张三、学生李四都是实体 属性(Attribute):实体所具有的某一特性,一个实体可由若干个属性来刻画。在E-R图中用椭圆形表示,并用无向边将其与相应的实体连接起来;比如学生的姓名、学号、性别、都是属性。 联系(Relationship):数据对象彼此之间相互连接的方式称为联系,也称为关系。 E-R模型 E-R图的组成要素及其画法实体名联系名属性名实体表示属性表示联系表示�图书图书名价格库存量图书ID绘制E-R图 映射基数一对一XXXXYYYYXXXXYYYY一对多XXXXYYY多对一XXXXYYYY多对多讲解要点:1)分别讲解各种映射关系的生活例子,还可以让学员举例。例如:1对1关系,1台车对于一个车位。2)告诉学员,1对多有的参考资料还表示为1:M或1:∞,多对多表示为:M:N或∞:∞一对一(1:1)联系实体间不同联系情况的E-R图表示法一对一(1:1)联系:例:某学院有若干个系,每个系只有一个主任。则主任和系之间是一对一的关系。主任和系的属性分别如下:主任——编号,姓名,年龄,学历;系——系编号,系名主任和系之间是一个管理关系主任与系之间的一对一的联系 一对多(1:m)的联系例:在某仓库管理系统中,有两个实体集:仓库和商品。仓库用来存放商品,且规定一类商品只能存放在一个仓库中,一个仓库可以存放多件商品。仓库和商品的属性分别如下:仓库——仓库号,地点,面积商品——商品号,商品名,价格在存放联系中要反映出存放商品的数量。一对多(1:m)的联系仓库和商品之间一对多的联系 多对多(m:n)联系: 假设在某教务管理系统中,一个教师可以上多门课,一门课也可以由多个老师去上。 教师和课程可用以下属性来描述:教师——教师号,教师名,职称 课程——课程号,课程名,班级在“讲授”联系中应能反映出教师的授课质量。多对多(m:n)联系教师和课程之间的多对多联系1.1.3E-R图设计实例 【例1.1】网络图书销售系统处理会员图书销售。简化的业务处理过程为:网络销售的图书信息包括:图书编号,图书类别,书名,作者,出版社,出版时间,单价,数量,折扣,封面图片等;用户需要购买图书必须先注册为会员,提供身份证号,会员姓名,密码,性别,联系电话,注册时间等信息;系统根据会员的购买订单形成销售信息,包括订单号,身份证号,图书编号,订购册数,订购时间,是否发货,是否收货,是否结清。 请画出网络图书销售数据库E-R图。【例1.1】E-R图设计步骤1.确定实体集:网络图书销售系统中有两个实体集:图书和会员2.确定实体集属性及主码:(1)实体集会员属性有:身份证号,会员姓名,性别,联系电话,注册时间,密码。会员实体集中可用身份证号来唯一标识各会员,所以主码为身份证号。(2)实体集图书属性有:图书编号,图书类别,书名,作者,出版社,出版时间,单价,数量,折扣,封面图片。图书实体集中可用图书编号来唯一标识图书,所以主码为图书编号。3.确定实体集之间的联系:图书销售给会员时图书与会员建立关联,联系“销售”的属性有:订购册数,订购时间,是否发货,是否收货,是否结清。为了更方便标识销售记录,可添加订单号作为该联系的主码。4.确定联系关系:因为一个会员可以购买多种图书,一种图书可销售各多个会员,所以这是一种多对多(m:n)的联系。根据以上分析画出的网络图书销售数据库E-R图网络图书销售数据库E-R图E-R图设计步骤 对于复杂的系统,E-R图设计通常都应经过以下两个阶段:(1)针对每一用户画出该用户信息的局部E—R图,确定该用户视图的实体、属性和联系。需注意的是:能作为属性的就不要作为实体,这有利于E—R图的简化。(2)综合局部E—R图,生成总体E—R图。在综合过程中,同名实体只能出现一次,还要去掉不必要的联系,以便消除冗余。一般来说,从总体E—R图必须能导出原来的所有局部视图,包括实体、属性和联系。复杂E-R图设计实例【例1.2】工厂物流管理中的涉及雇员、部门、供应商、原材料、成品和仓库等实体,并且存在以下关联:(1)一个雇员只能在一个部门工作,一个部门可以有多个雇员。(2)每一个部门可以生产多种成品,但一种成品只能由一个部门生产。(3)一个供应商可以供应多种原材料,一种原材料也可以由多个供应商供货。(4)购买的原材料放在仓库中,成品也放在仓库中。一个仓库可以存放多种产品,一种产品也可以存放在不同的仓库中。(5)各部门从仓库中提取原料,并将成品放在仓库中。一个仓库可以存放多个部门的产品,一个部门的产品也可以存放在不同的仓库中。画出简单的工厂物流管理系统E-R模型。局部E-R图1、找出工厂物流管理系统实体集:分别是雇员、部门、成品、供应商、原材料和仓库。2.从生产的角度,根据(1)和(2)画出雇员、部门和成品三个实体间的初步联系3.从供应的角度,根据(3)画出供应商和原材料两个实体间的初步联系,4.为是问题简化,实体的属性先不画出。数量11成品生产n原材料数量2m供应供应商mm1从属雇员部门全局E-R图5.从仓储的角度,根据(4)和(5)画出仓库与各实体之间的联系,最终得到工厂物流管理系统的E-R图6.实体联系中有多个数量属性,分别用数量1,数量2…以区分数量3nm提取数量5qp存放mn数量4存放仓库数量11成品生产n原材料数量2m供应供应商mm1从属雇员部门课堂练习7.各实体的属性如下,请进一步完成工厂物流E-R图 雇  员 部  门 供 应 商 原材料和成品 仓 库 雇员号,姓名,性别,职称,工资,住址 部门号,名称,电话 编号,名称,联系人,电话,银行账号 编号,名称,规格,单价,数量 库号,地址,电话E-R图设计中常见问题分析【例1.3】画出出版社和图书的E-R图。1.实体与联系分析:一个出版社可以出版多本图书,一本图书只能由一个出版社出版,出版社和图书之间就是一对多的关系。2.属性与主码:出版社实体有社名、地址、邮编、网址、联系电话等属性。为了建立出版社与图书实体一对多的联系,还应该有一个出版社代码来唯一标识出版社;图书实体有出版社、书名、作者、价格等属性。为了唯一标识图书,还应设置书号属性。根据以上分析,画出出版社与图书的E-R图如下:…作者书名书号出版社…地址社名社代码m1出版图书出版社图书出版E-R图案例分析 出版社和图书的E-R图分析:(1)出版社和图书的关系:出版社通过出版与图书建立关联。一个出版社可以出版多本图书,一本图书一般由一个出版社出版,出版社和图书之间就是一对多的关系。(2)出版社实体有社名、地址、邮编、网址、联系电话等属性,为了建立出版社与图书实体一对多的联系,还应该有一个出版社代码来唯一标识出版社(3)图书实体有出版社代码、书名、作者、价格等属性。为了唯一标识图书,还应设置书号属性。…作者书名书号社代码…地址社名社代码m1出版图书出版社图书出版E-R图问题思考(1)1、怎么标识书号(选取关键字)? 为了管理方便,国际上规定:全世界的每本书都应该有唯一的编号,这个号码叫做ISBN号,俗称书号。ISBN号码又分为几个子域,每个域的代码表示不同的含义。例如,某本书的书号是7-302-06610-8,它有四个子域,域之间用-分隔。第一个子域7代表中国大陆出版的图书;第二个子域为出版社的代码,如302代表清华大学出版社;后面两个子域是出版社的内部分类编号,不同的出版社可以自己规定,各不相同,从而保证了图书书号的全球唯一性。因此,用ISBN书号作为图书的唯一标识似乎是非常合理的。 但是,有些出版社用一个书号出版多本图书,有些书或者资料根本没有书号。虽然这么做并不正规,甚至是违法的,但这种现象毕竟是客观存在的。所以,在设计实际数据库系统的时候,一般不能以ISBN书号唯一标识图书实体,而应该自己定义唯一标识图书实体的属性。 在现实世界中,类似这样的问题有很多,通常需要为实体集定义额外的关键字段。图书出版E-R图问题思考(2)2、有些属性的值如果有多个,该怎么办? 如出版社实体应该有电话属性。但一个出版社一般不止一部电话,怎么处理? 一种方法是仍使用一个电话属性,只记下一部或几部甚至全部的电话号码即可,这种方法适合于小单位。 第二种方法是将电话属性独立出来,建立一个新的电话实体,通过出版社代码属性,建立和出版社的一对多联系,电话号码子部门部门社代码…地址社名社代码m1查找电话出版社图书出版E-R图问题思考(3)3、一个实体究竟有多少属性? 实体的属性可以说是无穷无尽,到底应提取哪些属性,要结合具体应用系统考虑。 比如,图书的一般属性有书号、社代码、书名、作者、价格、版次等,如果开发的是书店管理系统,这些属性一般够用了,但如果要开发印刷厂管理系统,还需要增加图书大小(32开还是16开,或具体数字)、印刷纸张规格(60克纸还是70克纸,书写纸还是双面胶)、是否彩印、彩印规格、印刷数量、交货日期等属性。 所以,提取一个实体的属性也要具体问题具体分析。通过出版社—图书的例子引出的三个问题,说明建立在现实世界基础上的E-R模型并不只有唯一答案。面向不同的应用、使用不同的方法,可以设计出不同的E-R模型。课堂练习 学校有若干个系,每个系有各自的系号、系名和系主任;每个系有若干名教师和学生,教师有教师号、教师名和职称属性,每个教师可以担任若干门课程,一门课程只能由一位教师讲授,课程有课程号、课程名和学分,并参加多项项目,一个项目有多人合作,且责任轻重有个排名,项目有项目号、名称和负责人;学生有学号、姓名、年龄、性别,每个学生可以同时选修多门课程,选修有分数。 请设计此学校的教学管理的E-R模型。E—R模型到关系模型的转换把E-R图转换为关系模型可遵循如下原则: (1)对于E—R图中每个实体集,都应转换为一个关系,该关系应包括对应实体的全部属性,并应根据关系所表达的语义确定哪个属性或哪几个属性组作为“主关键字”,主关键字用来标识实体。 (2)对于E—R图中的联系,情况比较复杂,要根据实体联系方式的不同,采取不同的手段加以实现。(1:1)联系的E-R图转换(1)联系单独对应一关系模式,则由联系属性、参与联系的各实体集的主码属性构成关系模式,其主码可选参与联系的实体集的任一方的主码。 BJ(班级编号,院系,专业名,人数) BZ(学号,姓名) SY(学号,班级编号)(2)联系不单独对应一关系模式,联系的属性及一方的主码加入另一方实体集对应的关系模式中。BJ(班级编号,院系,专业名,人数)BZ(学号,姓名,班级编号)或者BJ(班级编号,院系,专业名,人数,学号)BZ(学号,姓名)(1:n)联系的E-R图转换(1)联系单独对应一关系模式,则由联系的属性、参与联系的各实体集的主码属性构成关系模式,n端的主码作为该关系模式的主码。 BJ(班级编号,院系,专业名,人数) XS(学号,姓名,专业名,性别,出生时间,总学分,备注) SY(学号,班级编号)(2)联系不单独对应一个关系模式,则将联系的属性及1端的主码加入n端实体集对应的关系模式中,主码仍为n端的主码BJ(班级编号,院系,专业名,人数)XS(学号,姓名,专业名,性别,出生时间,总学分,备注,班级编号)(m:n)联系的E-R图转换对于(m:n)的联系,单独对应一关系模式,该关系模式包括联系的属性、参与联系的各实体集的主码属性,该关系模式的主码由各实体集的主码属性共同组成。 XS(学号,姓名,专业名,性别,出生时间,总学分,备注) KC(课程号,课程名称,类别,开课学期,学时,学分) XS_KC(学号,课程号,成绩) 假设A实体集与B实体集是1:1的联系,联系的转换有三种方法:①把A实体集的主关键字加入到B实体集对应的关系中,如果联系有属性也一并加入;②把B实体集的主关键字加入到A实体集对应的关系中,如果联系有属性也一并加入;③建立第三个关系,关系中包含两个实体集的主关键字,如果联系有属性也一并加入。 两实体集间1:n联系两实体集间1:n联系,可将“一方”实体的主关键字纳入“n方”实体集对应的关系中作为“外部关键字”,同时把联系的属性也一并纳入“n方”对应的关系中。 两实体集间m:n联系对于两实体集间m:n联系,必须对“联系”单独建立一个关系,用来联系双方实体集。该关系的属性中至少要包括被它所联系的双方实体集的“主关键字”,并且如果联系有属性,也要归入这个关系中。E-R模型到关系模型的转换总结任务二数据库设计规范化 仅有好的RDBMS并不足以避免数据冗余,必须在数据库的设计中创建好的表结构 DrE.F.codd最初定义了规范化的三个级别,范式是具有最小冗余的表结构。这些范式是: 第一范式(1stNF-FirstNormalFromate) 第二范式(2ndNF-SecondNormalFromate) 第三范式(3rdNF-ThirdNormalFromate) 关系数据库范式理论是在数据库设计过程中将要依据的准则,数据库结构必须要满足这些准则,才能确保数据的准确性和可靠性。这些准则则被称为规范化形式,即范式。表设计后,很可能结构不合理,出现数据重复保存,简称数据的冗余,这对数据的增删改查带来很多后患,所以我们需要审核是否合理,就想施工图设计后,还需要其他机构进行审核图纸是否设计合理一样。如何审核呢?需要一些有关数据库设计的理论指导规则,这些规则业界简称数据库的范式。第一范式(1stNF) 第一范式的目标是确保每列的原子性 如果每列都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式(1NF)讲解每个范式的含义:关键是说明范式的目的,这样规定有什么好处。第二范式(2ndNF) 如果一个关系满足1NF,并且除了主键以外的其他列,都依赖与该主键,则满足第二范式(2NF) 第二范式要求每个表只描述一件事情以下是两个同学设计的学生成绩系统的表格,A同学设计成表格1的形式,B同学设计了表格2、3、4三张表格,请问:1、A、B同学哪个的方案更合理?2、如果要他们设计的表格记录5000个同学的10门课成绩,用A同学设计表格要填写多少个数据?用B同学设计的表格要填写多少个数据?3、根据计算结果,哪种设计更节省空间?为什么?A同学设计表格B同学设计表格课堂练习 学号 姓名 年龄 课程名称 成绩 学分 010101 张三 20 计算机基础 80 2 010102 李四 20 计算机基础 85 2 010101 张三 20 英语 75 3 010102 李四 20 英语 85 3 学号 姓名 年龄 010101 张三 20 010102 李四 20 课程名称 学分 计算机基础 2 英语 3 学号 课程名称 成绩 010101 计算机基础 80 010102 计算机基础 85 010101 英语 75 010102 英语 85一张表:6*10*5000=30,0000个数据三张表:学生表:3*5000=15000课程表:2*10=20成绩表:3*10*5000=150000三张表合计:15000+20+150000=16,5020A与B方案数据差:30,0000-16,5020=13,4980以下是两个同学设计的学生成绩系统的表格,A同学设计成表格1的形式,B同学设计了表格2、3、4三张表格,请问:1、A、B同学哪个的方案更合理?2、如果要他们设计的表格记录5000个同学的10门课成绩,用A同学设计表格要填写多少个数据?用B同学设计的表格要填写多少个数据?3、根据计算结果,哪种设计更节省空间?为什么?A同学设计表格B同学设计表格课堂练习分析 学号 姓名 年龄 课程名称 成绩 学分 010101 张三 20 计算机基础 80 2 010102 李四 20 计算机基础 85 2 010101 张三 20 英语 75 3 010102 李四 20 英语 85 3 学号 姓名 年龄 010101 张三 20 010102 李四 20 课程名称 学分 计算机基础 2 英语 3 学号 课程名称 成绩 010101 计算机基础 80 010102 计算机基础 85 010101 英语 75 010102 英语 85第三范式(3rdNF) 如果一个关系满足2NF,并且除了主键以外的其他列都不传递依赖于主键列,则满足第三范式(3NF)规范化实例分析(1)假设某建筑公司要设计一个数据库。公司的业务规则概括说明如下: 公司承担多个工程项目,每一项工程有:工程号、工程名称、施工人员等 公司有多名职工,每一名职工有:职工号、姓名、性别、职务(工程师、技术员)等 公司按照工时和小时工资率支付工资,小时工资率由职工的职务决定(例如,技术员的小时工资率与工程师不同) 公司定期制定一个工资报表,如图-1所示规范化实例分析(2)图-1某公司的工资表 工程号 工程名称 职工号 姓名 职务 小时工资率 工时 实发工资 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为了算帐统计方便,会计可能喜欢这样设计表格,如幻灯片所示。规范化实例分析(3)图-2某公司的项目工时表 工程号 工程名称 职工号 姓名 职务 小时工资率 工时 A1 花园大厦 1001 齐光明 工程师 65 13 A1 花园大厦 1002 李思岐 技术员 60 16 A1 花园大厦 1001 齐光明 工程师 65 13 A1 花园大厦 1003 鞠明亮 工人 55 17 A3 临江饭店 1002 李思岐 技术员 60 18 A3 临江饭店 1004 葛宇洪 技术员 60 14规范化实例分析(4) 表中包含大量的冗余,可能会导致数据异常: 更新异常例如,修改职工号=1001的职务,则必须修改所有职工号=1001的行 添加异常若要增加一个新的职工时,首先必须给这名职工分配一个工程。或者为了添加一名新职工的数据,先给这名职工分配一个虚拟的工程。(因为主关键字不能为空) 删除异常例如,1001号职工要辞职,则必须删除所有职工号=1001的数据行。这样的删除操作,很可能丢失了其它有用的数据讲解目前这些表格可能出现的问题,可以采用提问方式。 采用这种方法设计表的结构,虽然很容易产生工资报表,但是每当一名职工分配一个工程时,都要重复输入大量的数据。这种重复的输入操作,很可能导致数据的不一致性。一张表描述了多件事情,如图-3所示。规范化实例分析(5)图-3函数依赖图工程信息员工信息项目工时信息 工程号 工程名称 职工号 姓名 职务 小时工资率 工时我们根据三大范式,逐一审核是否规范化。提问学员:1.第一范式满足吗,引导回答:基本满足;2.第二范式满足吗?第二范式要求表中的列必须与主键列相关,也就是要求一张表只能描述一件事情。我们一起看看这张表描述了哪些事情?让学员思考几分钟,然后提问,最后归纳出如下事情:1)工程信息2)员工信息3)项目的工时信息(每个工人做了多少活儿)应用第二范式规范化图-4应用第二范式工程表员工表项目工时表满足第三范式吗? 工程号 工程名称 职工号 姓名 职务 小时工资率 工程号 职工号 工时所以根据第二范式,拆分出了这些表。提问学员:这些表满足第三范式吗?引导:员工表还需拆分,存在传递依赖关系,即小时工资率和职务有关,职务又和人有关,最后传递后,小时工资率看起来就和姓名有关了。小时工资率和职务才之间相关,我们需要应用第三范式做进一步拆分。应用第三范式规范化工程表员工表职务表工程表 工程号 工程名称 职工号 姓名 职务 职务 小时工资率 工程号 职工号 工时课堂练习S公司商品销售管理系统中员工表如下:Employees(员工号,姓名,性别,出生年月,聘任日期,工资,奖金,所在部门和部门主管)其中奖金按工资*30%+工作年限*50计算而得。 请对员工表进行规范化。规范化和性能的关系 为满足某种商业目标,数据库性能比规范化数据库更重要 通过在给定的表中添加额外的字段,以大量减少需要从中搜索信息所需的时间 通过在给定的表中插入计算列(如成绩总分),以方便查询 进行规范化的同时,还需要综合考虑数据库的性能。告诉学员,数据库的三大范式和数据库的性能有时是矛盾的。打个比方:大家都知道,环境保护非常重要,西方总是拿环保问题和中国刁难,说中国为了发展不顾环境保护、生态自然等。可中国目前的经济实力不够强大,如果人都吃不饱,空谈环保还有什么用呢?所以我们只能是在保持地区经济发展的前提下,尽量注重环保问题。这就是一种折中处理问题的典型。本例同样如此:为了满足三大范式,我们在规范化表格时就会拆分出越来越明细的表格。但客户喜欢综合的信息,为了满足客户,我们又需要把这些表同过连接查询还原为客户喜欢的综合数据。这和从一张表中读出数据相比,大大影响了数据库的查询性能。所以有时为了性能,需要做适当折中,适当牺牲规范化的要求,来提高数据库的性能。再如:在成绩表中添加一列-“成绩总分”,属于数据冗余,因为总分在查询时可由各门成绩求出来。但频繁查询成绩总分,并希望保存下来,所以有时表中就干脆添加总分这一列。总结 在需求分析阶段,设计数据库的一般步骤为: 收集信息 标识对象 标识每个对象的属性 标识对象之间的关系 在概要设计阶段和详细设计阶段,设计数据库的步骤为: 绘制E-R图 将E-R图转换为表格 应用三大范式规范化表格 为了设计结构良好的数据库,需要遵守一些专门的规则,称为数据库的设计范式。 第一范式(1NF)的目标:确保每列的原子性。 第二范式(2NF)的目标:确保表中的每列,都和主键相关。 第三范式(3NF)的目标:确保每列都和主键列直接相关,而不是间接相关。讲解要点:由修建茅屋和大厦的对比,得出结论:当数据库比较复杂(如数据量大,表较多,业务关系复杂)时,我们需要先创建数据库;讲解要点:既然我们建库前需要预先设计数据库,那到底如何设计呢?我们一起从数据库设计的角度,看看项目开发周期的不同阶段,数据库设计的具体工作有哪些。1.重点讲解与数据库设计相关的各个阶段。2.强调需求分析阶段:分析客户的业务需求。3.强调概要设计阶段:重点是分析数据库E-R图(类似建筑方面的施工图),用于项目团队之间以及团队和客户之间的沟通,客户根据图纸提出修改意见,项目组修改后再与客户反复沟通,直到客户确认。E-R的好处主要是简洁直观。4.强调详细设计阶段:重点是实现,需要把E-R图转化为具体的多张表。但是10个人有10种设计方案,所以我们需要评估、审核并优化,审核时就需要一些设计规则进行审核,这些规则就是三大范式。5.在代码编写阶段:我们再根据项目性能要求、项目经费、技术实现难度等选择是Access/SQlServer还是Oracle等进行物理实现:建库、建表、加约束等。2.标识对象:告诉学员实体的概念:相当于Java中讲解的对象,现实中实实在在存在的事物都是实体,如汽车、房子、人等。强调实体一般是名词,英文是Entity提问学员:BBS论坛中有哪些实体?引导回答:用户、主贴、跟贴。因为主贴和跟贴的信息不完全一样(如跟贴数等),所以分开。版主不是实体,因为它属于用户实体,它只是一种拥有特权的特殊用户。讲解要点:1)分别讲解各种映射关系的生活例子,还可以让学员举例。例如:1对1关系,1台车对于一个车位。2)告诉学员,1对多有的参考资料还表示为1:M或1:∞,多对多表示为:M:N或∞:∞表设计后,很可能结构不合理,出现数据重复保存,简称数据的冗余,这对数据的增删改查带来很多后患,所以我们需要审核是否合理,就想施工图设计后,还需要其他机构进行审核图纸是否设计合理一样。如何审核呢?需要一些有关数据库设计的理论指导规则,这些规则业界简称数据库的范式。讲解每个范式的含义:关键是说明范式的目的,这样规定有什么好处。为了算帐统计方便,会计可能喜欢这样设计表格,如幻灯片所示。讲解目前这些表格可能出现的问题,可以采用提问方式。我们根据三大范式,逐一审核是否规范化。提问学员:1.第一范式满足吗,引导回答:基本满足;2.第二范式满足吗?第二范式要求表中的列必须与主键列相关,也就是要求一张表只能描述一件事情。我们一起看看这张表描述了哪些事情?让学员思考几分钟,然后提问,最后归纳出如下事情:1)工程信息2)员工信息3)项目的工时信息(每个工人做了多少活儿)所以根据第二范式,拆分出了这些表。提问学员:这些表满足第三范式吗?引导:员工表还需拆分,存在传递依赖关系,即小时工资率和职务有关,职务又和人有关,最后传递后,小时工资率看起来就和姓名有关了。小时工资率和职务才之间相关,我们需要应用第三范式做进一步拆分。告诉学员,数据库的三大范式和数据库的性能有时是矛盾的。打个比方:大家都知道,环境保护非常重要,西方总是拿环保问题和中国刁难,说中国为了发展不顾环境保护、生态自然等。可中国目前的经济实力不够强大,如果人都吃不饱,空谈环保还有什么用呢?所以我们只能是在保持地区经济发展的前提下,尽量注重环保问题。这就是一种折中处理问题的典型。本例同样如此:为了满足三大范式,我们在规范化表格时就会拆分出越来越明细的表格。但客户喜欢综合的信息,为了满足客户,我们又需要把这些表同过连接查询还原为客户喜欢的综合数据。这和从一张表中读出数据相比,大大影响了数据库的查询性能。所以有时为了性能,需要做适当折中,适当牺牲规范化的要求,来提高数据库的性能。再如:在成绩表中添加一列-“成绩总分”,属于数据冗余,因为总分在查询时可由各门成绩求出来。但频繁查询成绩总分,并希望保存下来,所以有时表中就干脆添加总分这一列。
本文档为【MySQL数据库技术教学全套课件 周德伟 电子课件 代码课件单元1 数据模型的规划与设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥12.0 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
希望
暂无简介~
格式:ppt
大小:2MB
软件:PowerPoint
页数:0
分类:工学
上传时间:2019-07-24
浏览量:478