当前位置:
文档之家› 第五章E-R模型及数据库设计
第五章E-R模型及数据库设计
Database System
2.23
(2)消除冗余。 学生实体的属性中的年龄可由初涉概念日期计算出来,属于数据冗余。 调整为:学生{学号,姓名,出生日期,系别,平均成绩} 教室实体与班级实体之间的上课联系可以由教室与课程之间的开设联 系、课程与学生之间的选修联系、学生与班级之间的组成联系三者推导 出来,因此属于数据冗余,可以消去。 学生的平均成绩可以从选修联系中的成绩属性推算出来。但如果学生的 平均成绩经常查询,可以保留该数据冗余来提高效率。
2.9
数 据 库 设 计 的 步 骤 如 图 所 示
需求分析
总体信息需求
需求说明 概念设计 信息结构 逻辑设计 处理需求
逻辑结构 物理设计
物理数据库结构
系统实施
数据库实施 运行与维护
Database System 2.10
6.4.2 数据库设计的需求分析
分析和表达用户的需求,通常采用结构化分析方法,这种方法用 自顶向下,逐层分解的方式分析系统。并用数据流图和数据字典 描述系统。
Database System
2.30
5. 实现阶段 在数据库实施阶段,设计人员运用DBMS提供的数据语言及其宿 主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调 试应用程序,组织数据入库,并进行试运行。 6. 运行和维护阶段 数据库应用系统经过试运行后即可投入正式运行。在其运行过程 中必须不断对其进行评价、调整与修改。
Database System
逻辑结构设计阶段的任务是将概念结构设计阶段所得到的概念模 型转换为具体DBMS所能支持的数据模型(即逻辑结构),并对 其进行优化。逻辑结构设计一般分为三步进行:
Database System
2.26
1. 从E-R图向关系模式转化 数据库的逻辑设计主要是将E-R图中的实体、实体的属性和实体 之间的联系转化为关系模式。在转化过程中会遇到如下问题: (1)命名问题。命名问题可以采用原名,也可以另行命名,避免重 名。 (2)非原子属性问题。非原子属性问题可将其进行纵向和横行展开。 (3)联系转换问题。联系可用关系表示。
Database System
2.7
3. 逻辑设计阶段 该阶段是将概念结构转化为某个DBMS所支持的数据模型,并对 其进行优化,得到数据库的逻辑模型。 4. 物理设计阶段 数据库物理设计是为逻辑数据模型选取一个最合适应用环境的物 理结构(包括存储结构和存取方法)。
Database System
2.8
Database System
2.17
(2)课程管理子系统包括学生、课程、教师、教室、教科书。这些实 体之间的联系有: 一个学生选修多门课程,一门课程有若干学生选修;一个学生有 多个教师授课,一个教师教授若干学生;一门课程由若干个教师 讲授,一个教室只讲一门课程;一个教室开设多门课,一门课只 能在一个教室上。
E-R数据模型及数据库设计
游进国
E-R数据模型
现实世界、信息世界和数据世界 特点:
属于概念模型,用于对信息世界建模。它面向现实世界,比关系、网 状和层次模型更加地接近用户;理解更方便;比其它数据模型更抽 象,独立于具体的DBMS所支持的数据模型。常用于数据库概念设 计。 以实体、属性和联系三个抽象概念为基础来描述现实世界的概念模 型。
Database System
2.22
下面将学籍管理子系统E-R图和课程管理子系统E-R图集成学生管理系统E-R 图。集成过程如下: (1)消除冲突。这两个子E-R图存在着多方面的冲突: 辅导员属于教师,学籍管理中的辅导员与课程管理中的教师可以统一为 教师。 将辅导员改为教师后,教师与学生之间有两种不同的联系:指导联系和 教学联系,将两种联系综合为教学联系。 调整学生属性组成,调解结果为: 学生{学号,姓名,出生日期,年龄,系别,平均成绩}
实体的参与度:全参与、部分参与。全参与用双线表示。
Database System
2.4
班级 1 领导 1 班长 n 1
班级
组成
学生
(a)两个实体集间的1:1联系
(b)两个实体集间的1:n联 系
Database System
2.5
课程 n 选修 m 学生
联系本身也是一种实体 型,也有属性,如果一个 联系具有属性,则将这些 属性用无向边与该联系连 接起来。
Database System
2.27
2. 数据模型的优化 数据库逻辑设计的结果不是唯一的。为了进一步提高数据库应用 系统的性能,还应该适当修改数据模型的结构,提高查询的速 度。 3. 关系视图设计 关系视图的设计又称用户模式设计,是用户可直接访问的数据模 式。关系视图来自逻辑模式,但在结构和形式上可能不同于逻辑 模式,所以它不是逻辑模式的简单子集。
通过E-R图来表示一个企业模式。
企业模式是代表了数据库的全局逻辑结构。 确保所有的数据需求都能满足。 是否满足功能需求。
E-R数据模型能够向逻辑数据模型转化。
Database System
2.2
E-R数据模型中的概念
实体(entity):可区别于其它对象的对象。 实体集(entity sets):拥有相同特性的同类型实体的集合。
Database System
2.24
集 成 后 学 生 管 理 系 统 的 E-R 图
班级 1 组 成 宿舍 1 n n m 学生 m 选 修 教室 1 开 设 n n 课程
2.25
1 管 理 n
1 教师 n
住 宿
教 学
讲 授 1 1 教 科 书
Database System
6.4.4 逻辑结构设计
用矩形框表示。
属性(attribute):描述了实体所拥有的特性。
用椭园形框表示 简单属性与复合属性:层次关系表示复合属性。 单值属性和多值属性:双椭园表示多值属性
弱实体(weak entity):有些实体的属性不足以形成主键,不能 独立存在,总是依附于其他所有者实体,称为弱实体。
用双线的矩形框表示。 也可当作所依赖实体的一个多值复合属性。
Database System
2.28
6.4.5 物理结构设计
数据库物理结构设计是为逻辑数据模型选取一个最适合应用环境 的物理结构。数据库物理结构设计主要包括存储记录结构设计、 存储记录布局、存取方法设计三个方面。
Database System
2.29
E-R图向关系数据模型的转化
强实体:包括实体的所有属性 弱实体:包括弱实体的所有属性和所依赖的实体的主键。 联系: 强/弱实体联系、一对一联系、一对多联系、多对多联系,多元联系 多值、组合属性:包括实体的主键和各属性 特殊化和普遍化:不相交且全部特殊化;重叠;部分 聚集:包括聚集的所有实体的主键、联系的属性
Database System
2.18
针对两个子系统分别设计出它们的E-R图。在E-R图中省去属性。学籍管 理子系统的E-R图如图所示。
1 辅导员 管理 n 班级 1 m 上课 n 教室
1 指导 n
组成 n
1 宿舍 住宿
n
学生
Database System
2.19
对应各个实体的属性分别为: 学生{学号,姓名,性别,出生日期,系别,何时入校,平均成绩} 班级{班级号,学生人数} 辅导员{职工号,姓名,性别,工作时间} 宿舍{宿舍编号,地址,人数} 教室{教室编号,地址,容量} 其中有下划线的属性为实体的码。
Database System
2.13
2. 概念结构设计的过程 数据库概念结构设计是使用E-R模型和视图集成设计法进行设计 的。它的设计过程是:首先设计局部应用,再进行局部视图(局部 E-R图)设计,然后进行视图集成得到概念模型(全局E-R图)。
Database System
2.14
视图设计一般有三种方法: (1)自顶向下。这种方法是从总体概念结构开始逐层细化。如教师这 个视图可以从一般教师开始,分解成高级教师、普通教师等。进 一步再由高级教师细化为青年高级教师与中年高级教师等。 (2)自底向上。这种方法是从具体的对象逐层抽象,最后形成总体概 念结构。 (3)由内向外。这种方法是从核心的对象着手,然后向四周逐步扩 充,直到最终形成总体概念结构。
Database System
2.20
课程管理子系统的E-R图如图所示。 m 学生 m n 选修 n 课程 讲授 1 1 教科书 教学 n 教师
1 教室 开设
n
Database System
2.21
对应各个实体的属性分别为: 学生{学号,姓名,性别,年龄,入学时间 } 课程{课程号,课程名,学分} 教科书{书号,书名,作者,出版日期,关键字} 教室{教室编号,地址,容量} 教师{职工号,姓名,性别,职称} 其中有下划线的属性为实体的码。
Database System
2.15
在视图集成过程中最重要的任务是解决各个E-R图设计中的冲突。常见的 冲突有以下几类: (1)命名冲突。命名冲突有同名异义和同义异名两种。如教师属性何时参加工 作与参加工作时间属于同义异名。 (2)概念冲突。同一概念在一处为实体而在另一处为属性或联系。 (3)域冲突。相同属性在不同视图中有不同的域。 (4)约束冲突。不同的视图可能有不同的约束。
Database System
2.3
E-R数据模型中的概念
联系(relationship):各个实体间的相互关联。
用菱形框表示,并用无向边分别与有关实体连接起来,在无向边旁标上联 系的类型。 1:1 1:N (如:班级与正班长) (如:班级与学生)ห้องสมุดไป่ตู้
M:N (如:学生选课程) 存在多元联系 联系的属性
Database System
2.11
6.4.3 数据库的概念结构设计
1. 概念结构设计的目的 概念结构设计阶段的目标是通过对用户需求进行综合、归纳与抽 象,形成一个独立于具体DBMS的概念模型。 概念结构的设计方法有两种: