版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据模型的规划与设计数据模型的规划与设计项目知识要点与目标项目知识要点与目标【学习情境】:Petstore数据库结构设计Petstore(宠物商店)是SUN公司推出展示Javaweb应用开发技术的网上商城示范项目。功能需求分析:实现前台用户购物和后台管理两大部分功能。前台购物为顾客服务,客户输入用户名、密码等信息进行注册,注册成功后就可以进行按产品的分类浏览网站,当用户看中某个宠物时,可以加入用户的购物车,当购物选择完毕时,用户可以对购物车中的物品进行预订,系统生成相应的订单。后台商品管理为管理员所用,管理员可以对商品进行分类,并为每个分类增加新商品以及对现有商品完成修改、删除等操作。要进行Petstore电子商务系统的开发,需要运用E-R图等数据库设计工具,合理规划与设计Petstore数据库。【学习情境】:Petstore数据库结构设计Petstor修建茅屋需要设计吗?修建大厦需要设计吗?结论:当数据库比较复杂时我们需要设计数据库为什么需要设计数据库
数据库设计就是将数据库中的数据对象以及这些数据对象之间关系进行规划和结构化的过程任务一设计数据库关系模型修建茅屋需要设计吗?修建大厦需要设计吗?结论:当数据库比较复为什么需要设计数据库良好的数据库设计节省数据的存储空间能够保证数据的完整性方便进行数据库应用系统的开发糟糕的数据库设计:数据冗余、存储空间浪费内存空间浪费数据更新和插入的异常为什么需要设计数据库良好的数据库设计糟糕的数据库设计:数据冗余存在冗余为减少数据查找的麻烦,允许数据有一定的冗余数据冗余:指数据重复的现象1127李梅21133王涛1部门编码民族编码年龄姓名编号回族2汉族1民族民族编码市场营销部2人事管理部1部门部门编码行政楼402行政楼301部门位置数据冗余为减少数据查找的麻烦,允许数据有一定的冗余数据冗余:数据完整性存在不正确、不准确的数据,数据库“失去了完整性”姓名不同的地址!数据完整性:指数据的准确性数据完整性存在不正确、不准确的数据,数据库“失去了完整性”姓1.1设计数据库关系模型概念模型:把现实世界转换为信息世界的模型,E-R模型实施模型:把信息世界转化为数据世界使用的模型,关系模型现实世界建模信息世界模型转换规范化数据库世界数据库数据库事物类事物性质实体集实体属性文件记录数据项实体模型概念模型数据模型1.1设计数据库关系模型现实世界建模信息世界模型转换规范实体模型现实世界客观存在的、可以被描述事物都是“实体”实体模型现实世界客观存在的、可以被描述事物都是“实体”层次模型按层次模型组织的数据示例层次模型按层次模型组织的数据示例网状模型按网状模型组织的数据示例网状模型按网状模型组织的数据示例关系模型按关系模型组织的数据示例关系模型按关系模型组织的数据示例关系模型特点关系模型中基本数据结构是二维数据表,且必须满足相应的要求:(1)表说明的是关系模型中某一特定的方面或部分的对象及其属性(2)表中的行通常叫做记录或元组,代表具有相同属性的对象中的一个(3)表中的列通常叫做字段或属性,代表存储对象的共有的属性(4)数据表之间的关联通过“键”来实现的,键分为主键和外键两种。(5)表必须符合某些特定条件①信息原则:每个单元只能存贮一条数据;②列有唯一性的名称,贮存在列下的数据必须具有相同数据类型;列没有顺序;;③每行数据是唯一的;行没有顺序;④实体完整性原则,即主键不能为空;⑤引用完整性原则,即外键不能为空;关系模型特点关系模型中基本数据结构是二维数据表,且必须满足1.1.2概念模型建模步骤:收集信息:
与该系统有关人员进行交流、坐谈,充分理解数据库需要完成的任务标识对象(实体-Entity)标识数据库要管理的关键对象或实体标识每个实体的属性(Attribute)标识对象之间的关系(Relationship)建模:把现实世界转换为信息世界的模型,E-R模型1.1.2概念模型建模步骤:建模:把现实世界转换为信息世界的建模实例:学生选课系统建模张三选修李四王五计算机基础英语MySQL数据库个体学号总学分专业名出生日期性别姓名共性学生实体抽象抽象实体共性课程课程号学分学时开课学期类别课程名关联选课成绩个体建模实例:学生选课系统建模张三选修李四王五计算机基础英语My主码(关键字)
主码:也叫关键字,实体集中的属性或最小属性组合的值能唯一标识其对应实体,则将该属性或属性组合称为码。对于每一个实体集,可指定一个码为主码。学生和课程实体集属性描述主码(关键字)主码:也叫关键字,实体集中的属性或最小属性组概念结构设计概念结构设计-E-R图方法实体关系图:简记E-R图,是指以实体、关系、属性三个基本概念概括数据的基本结构,从而描述静态数据结构的概念模式。实体型(Entity):具有相同的特征和性质的集合体,用实体名及其属性名来抽象和刻画同类实体;在E-R图中用矩形表示,矩形框内写明实体名;比如学生张三、学生李四都是实体属性(Attribute):实体所具有的某一特性,一个实体可由若干个属性来刻画。在E-R图中用椭圆形表示,并用无向边将其与相应的实体连接起来;比如学生的姓名、学号、性别、都是属性。联系(Relationship):数据对象彼此之间相互连接的方式称为联系,也称为关系。概念结构设计概念结构设计-E-R图方法E-R模型E-R图的组成要素及其画法实体名联系名属性名实体表示属性表示联系表示E-R模型E-R图的组成要素及其画法实体名联系名属性名实体表绘制E-R图映射基数一对一XXXXYYYYXXXXYYYY一对多XXXXY
YY多对一XXXXYYYY多对多客户订单产品
MN
1N绘制E-R图映射基数一对一XYXY一对多XY一对一(1:1)联系实体间不同联系情况的E-R图表示法一对一(1:1)联系:1主任系管理1姓名年龄学历编号系编号系名任职时间例:某学院有若干个系,每个系只有一个主任。则主任和系之间是一对一的关系。主任和系的属性分别如下:
主任——编号,姓名,年龄,学历;
系——系编号,系名主任和系之间是一个管理关系主任与系之间的一对一的联系一对一(1:1)联系实体间不同联系情况的E-R图表示法1主任一对多(1:m)的联系例:在某仓库管理系统中,有两个实体集:仓库和商品。仓库用来存放商品,且规定一类商品只能存放在一个仓库中,一个仓库可以存放多件商品。仓库和商品的属性分别如下:
仓库——仓库号,地点,面积
商品——商品号,商品名,价格在存放联系中要反映出存放商品的数量。1仓库商品存放n地点面积仓库号商品号价格数量商品名一对多(1:m)的联系仓库和商品之间一对多的联系一对多(1:m)的联系1仓库商品存放n地点面积仓库号商品号价多对多(m:n)联系:假设在某教务管理系统中,一个教师可以上多门课,一门课也可以由多个老师去上。教师和课程可用以下属性来描述:
教师——教师号,教师名,职称
课程——课程号,课程名,班级
在“讲授”联系中应能反映出教师的授课质量。m教师课程讲授n教师名职称教师号课程号班级质量课程名多对多(m:n)联系教师和课程之间的多对多联系多对多(m:n)联系:m教师课程讲授n教师名职称教师号课程号1.1.3E-R图设计实例【例1.1】网络图书销售系统处理会员图书销售。简化的业务处理过程为:网络销售的图书信息包括:图书编号,图书类别,书名,作者,出版社,出版时间,单价,数量,折扣,封面图片等;用户需要购买图书必须先注册为会员,提供身份证号,会员姓名,密码,性别,联系电话,注册时间等信息;系统根据会员的购买订单形成销售信息,包括订单号,身份证号,图书编号,订购册数,订购时间,是否发货,是否收货,是否结清。
请画出网络图书销售数据库E-R图。1.1.3E-R图设计实例【例1.1】网络图书销售系统处【例1.1】E-R图设计步骤1.确定实体集:网络图书销售系统中有两个实体集:图书和会员2.确定实体集属性及主码:(1)实体集会员属性有:身份证号,会员姓名,性别,联系电话,注册时间,密码。
会员实体集中可用身份证号来唯一标识各会员,所以主码为身份证号。(2)实体集图书属性有:图书编号,图书类别,书名,作者,出版社,出版时间,单价,数量,折扣,封面图片。
图书实体集中可用图书编号来唯一标识图书,所以主码为图书编号。3.确定实体集之间的联系:图书销售给会员时图书与会员建立关联,联系“销售”的属性有:订购册数,订购时间,是否发货,是否收货,是否结清。为了更方便标识销售记录,可添加订单号作为该联系的主码。4.确定联系关系:
因为一个会员可以购买多种图书,一种图书可销售各多个会员,所以这是一种多对多(m:n)的联系。
根据以上分析画出的网络图书销售数据库E-R图【例1.1】E-R图设计步骤1.确定实体集:网络图书销售网络图书销售数据库E-R图网络图书销售数据库E-R图E-R图设计步骤
对于复杂的系统,E-R图设计通常都应经过以下两个阶段:
(1)针对每一用户画出该用户信息的局部E—R图,确定该用户视图的实体、属性和联系。需注意的是:能作为属性的就不要作为实体,这有利于E—R图的简化。
(2)综合局部E—R图,生成总体E—R图。在综合过程中,同名实体只能出现一次,还要去掉不必要的联系,以便消除冗余。一般来说,从总体E—R图必须能导出原来的所有局部视图,包括实体、属性和联系。E-R图设计步骤对于复杂的系统,E-R图设计通常都应经过以复杂E-R图设计实例
【例1.2】工厂物流管理中的涉及雇员、部门、供应商、原材料、成品和仓库等实体,并且存在以下关联:(1)一个雇员只能在一个部门工作,一个部门可以有多个雇员。(2)每一个部门可以生产多种成品,但一种成品只能由一个部门生产。(3)一个供应商可以供应多种原材料,一种原材料也可以由多个供应商供货。(4)购买的原材料放在仓库中,成品也放在仓库中。一个仓库可以存放多种产品,一种产品也可以存放在不同的仓库中。(5)各部门从仓库中提取原料,并将成品放在仓库中。一个仓库可以存放多个部门的产品,一个部门的产品也可以存放在不同的仓库中。
画出简单的工厂物流管理系统E-R模型。复杂E-R图设计实例【例1.2】工厂物流管理中的涉及雇员局部E-R图1、找出工厂物流管理系统实体集:分别是雇员、部门、成品、供应商、原材料和仓库。2.从生产的角度,根据(1)和(2)画出雇员、部门和成品三个实体间的初步联系3.从供应的角度,根据(3)画出供应商和原材料两个实体间的初步联系,4.为是问题简化,实体的属性先不画出。局部E-R图1、找出工厂物流管理系统实体集:分别是雇员、部门全局E-R图5.从仓储的角度,根据(4)和(5)画出仓库与各实体之间的联系,最终得到工厂物流管理系统的E-R图6.实体联系中有多个数量属性,分别用数量1,数量2…以区分全局E-R图5.从仓储的角度,根据(4)和(5)画出仓库与各课堂练习7.各实体的属性如下,请进一步完成工厂物流E-R图课堂练习7.各实体的属性如下,请进一步完成工厂物流E-R图E-R图设计中常见问题分析【例1.3】画出出版社和图书的E-R图。1.实体与联系分析:一个出版社可以出版多本图书,一本图书只能由一个出版社出版,出版社和图书之间就是一对多的关系。2.属性与主码:出版社实体有社名、地址、邮编、网址、联系电话等属性。为了建立出版社与图书实体一对多的联系,还应该有一个出版社代码来唯一标识出版社;
图书实体有出版社、书名、作者、价格等属性。为了唯一标识图书,还应设置书号属性。
根据以上分析,画出出版社与图书的E-R图如下:E-R图设计中常见问题分析【例1.3】画出出版社和图书的E图书出版E-R图案例分析
出版社和图书的E-R图分析:(1)出版社和图书的关系:出版社通过出版与图书建立关联。一个出版社可以出版多本图书,一本图书一般由一个出版社出版,出版社和图书之间就是一对多的关系。(2)出版社实体有社名、地址、邮编、网址、联系电话等属性,为了建立出版社与图书实体一对多的联系,还应该有一个出版社代码来唯一标识出版社(3)图书实体有出版社代码、书名、作者、价格等属性。为了唯一标识图书,还应设置书号属性。图书出版E-R图案例分析出版社和图书的E-R图分析:图书出版E-R图问题思考(1)1、怎么标识书号(选取关键字)?为了管理方便,国际上规定:全世界的每本书都应该有唯一的编号,这个号码叫做ISBN号,俗称书号。ISBN号码又分为几个子域,每个域的代码表示不同的含义。例如,某本书的书号是7-302-06610-8,它有四个子域,域之间用-分隔。第一个子域7代表中国大陆出版的图书;第二个子域为出版社的代码,如302代表清华大学出版社;后面两个子域是出版社的内部分类编号,不同的出版社可以自己规定,各不相同,从而保证了图书书号的全球唯一性。因此,用ISBN书号作为图书的唯一标识似乎是非常合理的。但是,有些出版社用一个书号出版多本图书,有些书或者资料根本没有书号。虽然这么做并不正规,甚至是违法的,但这种现象毕竟是客观存在的。所以,在设计实际数据库系统的时候,一般不能以ISBN书号唯一标识图书实体,而应该自己定义唯一标识图书实体的属性。在现实世界中,类似这样的问题有很多,通常需要为实体集定义额外的关键字段。图书出版E-R图问题思考(1)1、怎么标识书号(选取关键字)图书出版E-R图问题思考(2)2、有些属性的值如果有多个,该怎么办?如出版社实体应该有电话属性。但一个出版社一般不止一部电话,怎么处理?一种方法是仍使用一个电话属性,只记下一部或几部甚至全部的电话号码即可,这种方法适合于小单位。第二种方法是将电话属性独立出来,建立一个新的电话实体,通过出版社代码属性,建立和出版社的一对多联系,图书出版E-R图问题思考(2)2、有些属性的值如果有多个,该图书出版E-R图问题思考(3)3、一个实体究竟有多少属性?实体的属性可以说是无穷无尽,到底应提取哪些属性,要结合具体应用系统考虑。比如,图书的一般属性有书号、社代码、书名、作者、价格、版次等,如果开发的是书店管理系统,这些属性一般够用了,但如果要开发印刷厂管理系统,还需要增加图书大小(32开还是16开,或具体数字)、印刷纸张规格(60克纸还是70克纸,书写纸还是双面胶)、是否彩印、彩印规格、印刷数量、交货日期等属性。所以,提取一个实体的属性也要具体问题具体分析。通过出版社—图书的例子引出的三个问题,说明建立在现实世界基础上的E-R模型并不只有唯一答案。面向不同的应用、使用不同的方法,可以设计出不同的E-R模型。图书出版E-R图问题思考(3)3、一个实体究竟有多少属性?课堂练习学校有若干个系,每个系有各自的系号、系名和系主任;每个系有若干名教师和学生,教师有教师号、教师名和职称属性,每个教师可以担任若干门课程,一门课程只能由一位教师讲授,课程有课程号、课程名和学分,并参加多项项目,一个项目有多人合作,且责任轻重有个排名,项目有项目号、名称和负责人;学生有学号、姓名、年龄、性别,每个学生可以同时选修多门课程,选修有分数。请设计此学校的教学管理的E-R模型。课堂练习学校有若干个系,每个系有各自的系号、系名和系主任;每E—R模型到关系模型的转换
把E-R图转换为关系模型可遵循如下原则:
(1)对于E—R图中每个实体集,都应转换为一个关系,该关系应包括对应实体的全部属性,并应根据关系所表达的语义确定哪个属性或哪几个属性组作为“主关键字”,主关键字用来标识实体。(2)对于E—R图中的联系,情况比较复杂,要根据实体联系方式的不同,采取不同的手段加以实现。E—R模型到关系模型的转换把E-R图转换为关系模型可遵循如(1:1)联系的E-R图转换(1)联系单独对应一关系模式,则由联系属性、参与联系的各实体集的主码属性构成关系模式,其主码可选参与联系的实体集的任一方的主码。BJ(班级编号,院系,专业名,人数)BZ(学号,姓名)SY(学号,班级编号)(2)联系不单独对应一关系模式,联系的属性及一方的主码加入另一方实体集对应的关系模式中。BJ(班级编号,院系,专业名,人数)BZ(学号,姓名,班级编号)或者BJ(班级编号,院系,专业名,人数,学号)BZ(学号,姓名)(1:1)联系的E-R图转换(1)联系单独对应一关系模式(1:n)联系的E-R图转换(1)联系单独对应一关系模式,则由联系的属性、参与联系的各实体集的主码属性构成关系模式,n端的主码作为该关系模式的主码。BJ(班级编号,院系,专业名,人数)XS(学号,姓名,专业名,性别,出生时间,总学分,备注)SY(学号,班级编号)(2)联系不单独对应一个关系模式,则将联系的属性及1端的主码加入n端实体集对应的关系模式中,主码仍为n端的主码BJ(班级编号,院系,专业名,人数)XS(学号,姓名,专业名,性别,出生时间,总学分,备注,班级编号)(1:n)联系的E-R图转换(1)联系单独对应一关系模式(m:n)联系的E-R图转换
对于(m:n)的联系,单独对应一关系模式,该关系模式包括联系的属性、参与联系的各实体集的主码属性,该关系模式的主码由各实体集的主码属性共同组成。XS(学号,姓名,专业名,性别,出生时间,总学分,备注)KC(课程号,课程名称,类别,开课学期,学时,学分)XS_KC(学号,课程号,成绩)(m:n)联系的E-R图转换假设A实体集与B实体集是1:1的联系,联系的转换有三种方法:①把A实体集的主关键字加入到B实体集对应的关系中,如果联系有属性也一并加入;②把B实体集的主关键字加入到A实体集对应的关系中,如果联系有属性也一并加入;③建立第三个关系,关系中包含两个实体集的主关键字,如果联系有属性也一并加入。两实体集间1:n联系
两实体集间1:n联系,可将“一方”实体的主关键字纳入“n方”实体集对应的关系中作为“外部关键字”,同时把联系的属性也一并纳入“n方”对应的关系中。两实体集间m:n联系
对于两实体集间m:n联系,必须对“联系”单独建立一个关系,用来联系双方实体集。该关系的属性中至少要包括被它所联系的双方实体集的“主关键字”,并且如果联系有属性,也要归入这个关系中。E-R模型到关系模型的转换总结假设A实体集与B实体集是1:1的联系,联系的转换有三种方法:任务二数据库设计规范化仅有好的RDBMS并不足以避免数据冗余,必须在数据库的设计中创建好的表结构DrE.F.codd最初定义了规范化的三个级别,范式是具有最小冗余的表结构。这些范式是:第一范式(1stNF-FirstNormalFromate)第二范式(2ndNF-SecondNormalFromate)第三范式(3rdNF-ThirdNormalFromate)关系数据库范式理论是在数据库设计过程中将要依据的准则,数据库结构必须要满足这些准则,才能确保数据的准确性和可靠性。这些准则则被称为规范化形式,即范式。任务二数据库设计规范化仅有好的RDBMS并不足以避免数据冗第一范式(1stNF)BuyerIDCountryCity1342中国英国日本美国北京伦敦东京纽约………BuyerIDAddress1234中国北京市美国纽约市英国伦敦日本东京市……第一范式的目标是确保每列的原子性如果每列都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式(1NF)第一范式(1stNF)BuyerIDCountryCit第二范式(2ndNF)如果一个关系满足1NF,并且除了主键以外的其他列,都依赖与该主键,则满足第二范式(2NF)第二范式要求每个表只描述一件事情Orders字段例子订单编号产品编号订购日期价格001A0012000-2-3$29.00……Orders字段例子订单编号订购日期0012000-2-3Products字段例子产品编号价格A001$29.00第二范式(2ndNF)如果一个关系满足1NF,并且除了主以下是两个同学设计的学生成绩系统的表格,A同学设计成表格1的形式,B同学设计了表格2、3、4三张表格,请问:1、A、B同学哪个的方案更合理?2、如果要他们设计的表格记录5000个同学的10门课成绩,用A同学设计表格要填写多少个数据?用B同学设计的表格要填写多少个数据?3、根据计算结果,哪种设计更节省空间?为什么?A同学设计表格B同学设计表格课堂练习以下是两个同学设计的学生成绩系统的表格,A同学设计成表格1的一张表: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同学设计表格课堂练习分析一张表:6*10*5000=30,0000个数据以下第三范式(3rdNF)如果一个关系满足2NF,并且除了主键以外的其他列都不传递依赖于主键列,则满足第三范式(3NF)
Orders字段例子订单编号订购日期顾客编号0012000-2-3AB001顾客姓名Tony……Orders字段例子订单编号订购日期顾客编号0012000-2-3AB001……第三范式(3rdNF)如果一个关系满足2NF,并且除了主规范化实例分析(1)假设某建筑公司要设计一个数据库。公司的业务规则概括说明如下:公司承担多个工程项目,每一项工程有:工程号、工程名称、施工人员等公司有多名职工,每一名职工有:职工号、姓名、性别、职务(工程师、技术员)等公司按照工时和小时工资率支付工资,小时工资率由职工的职务决定(例如,技术员的小时工资率与工程师不同)公司定期制定一个工资报表,如图-1所示规范化实例分析(1)假设某建筑公司要设计一个数据库。公司的业规范化实例分析(2)图-1某公司的工资表规范化实例分析(2)图-1某公司的工资表规范化实例分析(3)图-2某公
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 规章制度检查
- 营业员的实习报告
- 市场营销毕业实习报告15篇
- 从事家政服务公司劳动合同书(3篇)
- 读书分享会发言稿
- DB11T 1499-2017 节水型苗圃建设规范
- 新疆阿勒泰地区(2024年-2025年小学五年级语文)人教版阶段练习(下学期)试卷及答案
- 反比例函数教案文档
- 煤矿人工智能算法评估规范征求意见稿
- 上海市市辖区(2024年-2025年小学五年级语文)统编版开学考试(上学期)试卷及答案
- 创新实践(理论)学习通超星期末考试答案章节答案2024年
- 2024世界精神卫生日共建共治共享同心健心安心宣传课件
- 二十届三中全会知识点试题及答案【200题】
- 市三级公立综合医院绩效考核指标评分细则
- 大模型应用开发极简入门基于GPT-4和ChatGPT
- 四年级教材《劳动》课件
- 2023《中华人民共和国合同法》
- (通桥【2018】8370)《铁路桥梁快速更换型伸缩缝安装图》
- 超星尔雅学习通《当代大学生国家安全教育》章节测试答案
- 小学一年级上册 综合实践教学课件
- 一年级期中家长会ppt课件(PPT 23页)
评论
0/150
提交评论