数据库建模-概念设计_第1页
数据库建模-概念设计_第2页
数据库建模-概念设计_第3页
数据库建模-概念设计_第4页
数据库建模-概念设计_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、电子信息工程系授课教师:邓伟华第二讲 概念设计教学重点教学重点。数据库概念设计第二讲 概念设计掌握数据库的范式理论。掌握数据库的设计的三个模式理论。掌握利用ER图进行数据库概念设计教学教学目的目的教学教学难点难点数据库的范式理论0 0 回顾前讲的内容回顾前讲的内容1、数据库的基本知识和数据库设计技术;2、数据库设计的重要性;3、数据库设计的步骤;4、数据库设计的需求分析; 回顾一:数据建模的概念将现实世界的数据转换成信息世界的数据的过程称为建模回顾二:数据库设计的必要性好的数据库结构有利于:- 节省数据的存储空间节省数据的存储空间- 能够保证数据的完整性能够保证数据的完整性- 方便进行数据库应

2、用系统的开发方便进行数据库应用系统的开发设计不好的数据库结构将导致- 数据冗余、存储空间浪费数据冗余、存储空间浪费- 各种数据操作异常各种数据操作异常- 内存空间浪费内存空间浪费需求收集和分析设计概念结构设计逻辑结构数据模型优化设计物理结构评价设计,性能预测物理实现试验性运行使用、维护数据库应用需求数据、处理 转换规则、DBMS功能优化方法应用要求,DBMS详细特征需求分析阶段数据库运行、维护阶段不满意不满意 数据库实施阶段物理设计阶段逻辑设计阶段概念设计阶段回顾三:数据库设计的步骤数据库的设计步骤数据库的设计步骤 需求收集和分析需求收集和分析 设计概念结构设计概念结构 设计逻辑结构设计逻辑结

3、构 设计物理结构设计物理结构 物理实现物理实现数据库的设计步骤数据库的设计步骤 需求收集和分析需求收集和分析 用户关心什么用户关心什么 用户要什么结果用户要什么结果 设计概念结构设计概念结构 设计逻辑结构设计逻辑结构 设计物理结构设计物理结构 物理实现物理实现数据库的设计步骤数据库的设计步骤 需求收集和分析需求收集和分析 设计概念结构设计概念结构 存什么存什么 关系(联系)如何关系(联系)如何 E/R图,是各种数据模型的共同基础图,是各种数据模型的共同基础 设计逻辑结构设计逻辑结构 设计物理结构设计物理结构 物理实现物理实现数据库的设计步骤数据库的设计步骤 需求收集和分析需求收集和分析 设计概

4、念结构设计概念结构 设计逻辑结构设计逻辑结构 用什么数据模型用什么数据模型 数据库的模式(数据库的模式(database schema) 用户子模式用户子模式 设计物理结构设计物理结构 物理实现物理实现数据库的设计步骤数据库的设计步骤 需求收集和分析需求收集和分析 设计概念结构设计概念结构 设计逻辑结构设计逻辑结构 设计物理结构设计物理结构 数据怎么存数据怎么存 根据根据DBMS产品、环境特点产品、环境特点 物理实现物理实现数据库的设计步骤数据库的设计步骤 需求收集和分析需求收集和分析 设计概念结构设计概念结构 设计逻辑结构设计逻辑结构 设计物理结构设计物理结构 物理实现物理实现 运行运行DD

5、L 装入测试数据装入测试数据 应用程序应用程序 8.2.2 需求分析的方法 一. 调查用户需求的具体步骤 1. 调查组织机构情况; 2. 调查各部门的业务活动情况; 3. 协助用户明确对新系统的各种要求; 4. 确定新系统的边界. 二. 常用的调查方法 1. 跟班作业; 2. 开调查会; 3. 请专人介绍; 4. 询问; 5. 设计调查表请用户填写; 6. 查阅记录. 8.2 需需 求求 分分 析析 8.2.1 需求分析的任务.需求分析调查组织机构总体情况熟悉业务活动明确用户需求确定系统边界用户 数据库 设计人员.DDDDDFD概念设计 需求分析过程 8.3 概念结构设计概念结构设计 8.3.

6、1 概念结构的主要特点: 1. 能真实、充分地反映现实世界; 2. 易于理解; 3. 易于更改; 4. 易于向关系模式转变。8.3.2:实体关系模型实体关系模型:DB 设计过程,并且表示 DB 的整个逻辑结构 实体:实体可以是具体的(例如一个人或一本书),也可以是抽象的(如一个节日或一个概念) 属性:实体是由一组属性来表示的。例如:Person(个人)实体的属性有 Name(名称)、SSN、Age(年龄)、Street(街道)、City(城市) 关系:关系是两个或多个实体之间的联系 数据抽象 2. 聚类聚类(Aggregation) 学 生张英 王平 刘勇 赵亮“is member of” 3

7、. 概括概括(Generalization) 学 生学号姓名 专业 班级“is part of ”实体型属性 学 生本科生研究生“is subset of ” 三种抽象 1. 分类分类(Classification)关系的类型X X X X Y Y Y Y 一对一一对一X X X X Y Y Y Y 一对多一对多X X X X Y Y Y 多对一多对一X X X X Y Y Y Y 多对多多对多E-R 图的符号 E-R 图姓名Person性别身份证结合11时间E-R 图客户客户号名称汽车汽车号名称订购日期1mE-R 图学生学号姓名课程课程号名称学分选课时间nm8.3.3:采用ER的概念模型设计

8、步骤1、局部设计需求分析结果确定局部结构范围定义实体属性分配定义联系进入全局ER模式设计还有局部结构等待分析吗是8.3.3:采用ER的概念模型设计步骤2、全局设计局部ER模式确定公共实体合并两个局部ER模式检查并消除冲突进入全局ER模式优化是还有冲突?还有局部模式?是 3 视图的集成视图的集成 视图集成的两种方式视图集成的两种方式: * 多个分E-R图一次集成.(a) *逐步集成, 用累加的方式一次集成两个分E-R图. (b)(E-R)1(E-R)2(E-R)n基本E-R初步E-R(E-R)3(E-R)12(E-R)2(E-R)1初步E-R基本E-R(a)(b) 视图集成的两种方式 合并分合并

9、分E-R图,生成初步图,生成初步E-R图图 1、属性冲突 (1) 属性域冲突 (2) 属性取值单位冲突 2、命名冲突 (1) 同名异义 (2) 异名同义 3、结构冲突 (1) 同一对象在不同应用中具有不同定抽象 (2) 同一实体在不同分E-R图中所包含的属性个数和属性排列次序不完全相同.合理消除各分E-R图的冲突是合并分E-R图的主要工作与关键所在。各分E-R图之间主要有三类冲突。8.3.3:采用ER的概念模型设计步骤3、全局ER模式优化加工加工消耗存储零件数Q1耗用量Q2存放量Q5库存量Q4用电量Q3产品材料仓库零件 消除不必要的冗余,设计基本消除不必要的冗余,设计基本E-R图图 (一).

10、采用分析方法消除冗余 (二). 用规范化理论消除冗余 1. 确定分E-R图实体之间的数据依赖. 2. 求FL的最小覆盖GL,差集为: D=FL-GL8.3.4:范式理论范式理论:第一范式:1NF第二范式:2NF第三范式:3NF带有问题的表格问题分析1表中包含大量的冗余,可能会导致数据异常: a.更新异常 例如,修改职工号=1001的职务,则必须修改所有职工号=1001的行。 b. 添加异常 若要增加一个新的职工时,首先必须给这名职工分配一个工程。或者为了添加一名新职工的数据,先给这名职工分配一个虚拟的工程。(因为主关键字不能为空) c. 删除异常 例如,1001号职工要辞职,则必须删除所有职工

11、号1001的数据行。这样的删除操作,很可能丢失了其它有用的数据。什么是规范化 研究设计一个“好”的(没有“毛病”的)关系模式的办法。第一范式第二范式第三范式第一范式第一范式的定义: 指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。 在第一范式(1NF)中表的每一行只包含一个实例的信息第一范式要求:属性是原子性的要求:属性是原子性的 客户号客户号姓名姓名联系方法联系方法宅电宅电手机手机邮址邮址不可以出现如上的关系不可以出现如上的关系 联系方法非原子性联系方法非原子性第二范式第二范式的定义: 如果一个表属于1NF,且不包含部分依

12、赖性,既没有任何属性只依赖于关键字的一部分,则这个表属于第二范式(常记成2NF )。 第二范式(2NF)要求数据库表中的每个实例或行必须可以被惟一地区分. 将1NF转换成2NF的方法是分解。第二范式在符合第一范式的基础上,在符合第一范式的基础上,再要求:关系中不存在这样的函数依赖:再要求:关系中不存在这样的函数依赖:x - Ax - Ax x是部分主键,是部分主键,A A是某一属性是某一属性送货单号产品码数量客户号客户宅电客户地址客户邮编经办人= 送货单号客户号客户宅电客户地址客户邮编经办人送货单号产品码数量第三范式第三范式的定义: 如果一个表属于2NF,且不包含传递依赖性,则这个表是第三范式

13、(常记成3NF)。 满足3NF的表中不包含传递依赖,即没有一个非关键属性依赖于另一个非关键属性,或者说没有一个非关键属性决定另一个非关键属性。第三范式就是属性不依赖于其它非主属性。第三范式第三范式:在符合第一、第二范式的基础上,再要求不存在传递依赖 客户号-决定了客户地址,客户地址决定了客户地址邮编。是传递依赖。客户号客户宅电客户地址客户邮编送货单号客户号客户宅电客户地址客户邮编经办人送货单号客户号经办人客户号客户宅电客户地址客户邮编= 案例分析把学生关系表分为如下两个表: 学生:(学号, 姓名, 年龄, 所在学院); 学院:(学院, 地点, 电话)。 规范化实例1-2假设某建筑公司要设计一个

14、数据库。公司的业务规则概括说明如下: 公司承担多个工程项目,每一项工程有:工程号、工程名称、施工人员等; 公司有多名职工,每一名职工有:职工号、姓名、性别、职务(工程师、技术员)等; 公司按照工时和小时工资率支付工资,小时工资率由职工的职务决定(例如,技术员的小时工资率与工程师不同)。 公司定期制定一个工资报表,如图-1所示。规范化实例2-2 某公司的工资表某公司的工资表再看这三个表的函数依赖图图图 三个表的函数依赖图三个表的函数依赖图画出四个表的函数依赖图 从函数依赖图可见,已经消除职工表中的传递依赖,这四个表都属于第三范式。 在绝大多数情况下,一个数据库的所有表都满足3NF,就基本达到数据

15、库设计的目标。案例分析把选课关系表SelectCourse改为如下三个表: 学生:Student(学号, 姓名, 年龄); 课程:Course(课程名称, 学分); 选课关系:SelectCourse(学号, 课程名称, 成绩)。 案例分析及实现一 X员工在X日期收到X订单中的X货品X件到仓库中. X员工在X日期在仓库中提取X货品X件案例分析及实现一员工:员工:员工号员工号姓名姓名货品:货品:货品编号货品编号货品描述货品描述库仓:库仓:库仓号库仓号库仓描述库仓描述收货收货: :员工员工日期日期订单号订单号出货出货: :员工员工日期日期出货号出货号收货明细:收货明细:订单号订单号货品货品数量数量

16、出货明细出货明细出货号出货号货品货品日期日期数量数量正规化选择 将表格分得过细有时并不好,因为这样需要将各表进行各种的关联,这会令查询时变得复杂,而且效率也可能降低,这些正规化的规定可以参考,在实际应用时,要根据项目的大小,必要时可以进行一些测试,以设计出更合理的表格结构。 8.4 逻辑设计逻辑设计特定的DBMS支持下的数据模型优化的数据模型转换规则DBMS的特点和限制优化方法ER模型向逻辑模型转换 每个实体转换成一个关系模式 一个1:1的联系可以转换为一个关系模式,或与任意一端的关系模式合并 若独立转换为一个关系模式,两端的关系码及联系的属性为该关系的属性; 若与一端合并,那么将另一端的码及

17、联系的属性合并到该端. 一个1:n的关系可以转换成一个关系模式,或与n端的关系模式合并. 若独立转换为一个关系模式,两端的关系码及联系的属性为该关系的属性,n端的码为该关系的码. 一个m:n的联系可以转换为一个关系模式,那么两端的关系码及联系的属性为该关系的属性,关系的码为两端实体码的组合. E-R图向关系模型的转换方法 一、转换一般遵循如下原则: 1、一个实体型转换为一个关系模式. 2、一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。 3、一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。 4、一个m:n联系可以转换为一个关系模式。 5、三个或三个以上实体间的一个多元联系可以转换为一个关系模式。 6、具有相同码的关系模式可合并。二、自联系1、1:1的联系转换在实体中增加一个表示关系的字段2、1:n联系的转换方法一:在n端增加1端关键字方法二:为联系增加表3、M:N的联系转换三、多元联系的转换1、最多只有一个实体的基数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论