第4章 数据库设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
属性冲突
(1) 属性域冲突,即属性值的类型、取值范围或取值集合不
同。
例如:属性“零件号”有的定义为字符型,有的为数 值型。
(2) 属性取值单位冲突。
例如:属性“重量”有的以克为单位,有的以公斤为 单位。
命名冲突
(1) 同名异义。
不同意义对象相同名称。
(2) 异名同义(一义多名)。
图书(书号,书名,出版日期,出版社) 读者(借书证号,姓名,年龄,性别,家庭住址) 书架(书架号,房间号)
复合属性:将每个分量属性作为复合属性所在实体的属性
学生(学号,姓名,年,月,日)
多值属性:将多值属性与所在实体的码一起组成一个新的从
属实体
学生(学号,姓名) 选课(学号,所选课程号)
同意义对象不相同名称。“项目”和“课题”
结构冲突
三类结构冲突
(1)同一对象在不同应用中具有不同的抽象 例,“课程”在某一局部应用中被当作实体 在另一局部应用中则被当作属性 解决方法:通常是把属性变换为实体或把实体变 换为属性,使同一对象具有相同的抽象。变换时 要遵循两个准则。
结构冲突(续)
特点
• 世界是由一组称作实体的基本对象和这些对象之间的联系构成的 • 概念建模 • 语义模型
2.1 E-R模型的基本概念
E-R图模型给出了一组概念,用这组概念可以描述信息世界
• 实体 • 属性 • 联系
2.1 E-R模型的基本概念
实体
实体:客观存在并可相互区分的事物 实体有类(实体)和个体(实体的实例)的概念
2.1 E-R模型的基本概念
实体之间是有联系的 联系,是指一个实体中的实例和其他实体中实例之间所可能发生的联系 例如,哪位《读者》借阅了哪本《图书》,哪本《图书》放在哪个《书
架》上
2.1 E-R模型的基本概念
参与发生联系的实体的数目,称为联系的度或元。 联系有一元联系、二元联系和多元联系。 现实世界中大多数联系是二元的,即两个不同实体之间的联系
集成局部E-R图的步骤
• 1. 合并 • 2. 修改与重构
各分E-R图存在冲突
• 各个局部应用所面向的问题不同 由不同的设计人员进行设计
各个分E-R图之间必定会存在许多不一致的地方(冲突) • 合并分E-R图的主要工作与关键所在:合理消除各分E-R 图的冲突
冲突的种类
• 属性冲突 • 命名冲突 • 结构冲突
完全参与联系,即该端实例至少有一个参与到联系中, 最小基数为1(1..m); ������ 部分参与联系,即该端实例可以不参与联系,最小基数 为0(0..m)
2.2 E-R模型的图示化方法
2.2 E-R模型的图示化方法
箭头直线:由联系指向1端 无箭头直线:由联系指向多端
双直线:完全参与联系;单直线:部分参与联系
---- 数据模型与概念模型
数据模型是一组相互关联且已严格定义的概念集合,是用于刻画或描述 现实世界、信息世界或计算机世界的模型 数据模型分不同的层次:描述计算机世界的称数据模型;描述信息世界 或现实世界的称概念数据模型,简称概念模型
现实世 界
认识 抽象
现实世界 概念模型 数据库设计人员完成
消除冗余的方法(续)
如果是为了提高效率,人为地保留了一些冗
余数据,则应把数据字典中数据关联的说明 作为完整性约束条件。
一种更好的方法是把冗余数据定义在视图中
目录
1 设计过程概述 2 实体-联系模型 3 转换为关系模式 4 数据库设计实例
E-R模型中的实体转换为关系 E-R模型中的实体的属性转换为关系的属性
2.1 E-R模型的基本概念
单值属性和多值属性
• 多值属性示例: 电话号码,一个人可能有多个电话号码 • 在关系模型中,多值属性一定要转化为单值属性(关系的第1范式)
可空值属性和非空值属性:每个实例的该属性值可以是或不
能是空值
导出属性
• 由其他属性计算而得 • 例如由“出生年份” 可以得出“年龄”
(2)同一实体在不同局部视图中所包含的属性不完 全相同,或者属性的排列次序不完全相同。 产生原因:不同的局部应用关心的是该实体的不 同侧面。
解决方法:使该实体的属性取各分E-R图中属性 的并集,再适当设计属性的次序。
结构冲突(续)
例: 学生 姓名 平均成绩
学生 政治面貌 学号
学号
姓名 性别
2.1 E-R模型的基本概念
实体用属性来描述 属性,实体所具有的某一方面特性
2.1 E-R模型的基本概念
实体中的每一实例如何区分?关键的属性:关键字 关键字/码,实体中能够用其值唯一区分每一实例的属性或
属性组合
2.1 E-R模型的基本概念
简单属性和复合属性
• 复合属性示例: 家庭住址:省份, 详细住址 • 在关系模型中,复合属性一定要转化为单一属性(关系的第1范式)
2.1 E-R模型的基本概念
联系的基数(Cardinalities):实体实例之间的联系的数量
,即一个实体的实例通过一个联系能与另一实体中相关联的 实例的数目
常见的映射基数如上,有一对一的(1:1),一对多的(1:m
),多对多的(m:n)几种情况
2.1 E-R模型的基本概念
������
解决方法:根据应用语义对实体联系的类型进行 综合或调整。
结构冲突(续)
例:零件与产品之间存在多对多的联系——“构成”,产品 、零件与供应商三者之间存在多对多的联系——“供应” 。
产品 产品 数量 供应商
n
构成
p
n
供应 数量
m
零件 (E—R)1 产品
m
零件 (E—R)2
供应商
p
n
供应
n
数量2 构成 数量1
例:学校中的系,在某种应用环境中,它只是作为“学生”实体的
一个属性,表明一个学生属于哪个系;而在另一种环境中,由于需 要考虑一个系的系主任、教师人数、学生人数、办公地点等,这时 它就需要作为实体了。
E-R模型的设计
用实体集还是属性
• 一般原则
属性不能再具有需要描述的性质。即属性必须是不可分的数据项 ,不能再由另一些属性组成。 属性不能与其他实体具有联系。联系只发生在实体之间。
2.1 E-R模型的基本概念
2.1 E-R模型的基本概念
2.1 E-R模型的基本概念
联系的特性也可以用属性来刻画 例如,下图二元联系的属性可以有: “借阅时间”“归还时间”等
2.1 E-R模型的基本概念
再如,下图三元联系的属性可以有:“供货数量”、“供货
日期”等
2.1 E-R模型的基本概念
第四章 数据库设计
目录
1 设计过程概述 2 实体-联系模型 3 转换为关系模式 4 数据库设计实例
什么是数据库设计?
为什么要进行数据库设计?
数据库设计过程
---- 数据库设计中的抽象
现实世界==>(抽象为)信息世界==> (转换为)计算机世界 现实(客观存在) ==> 认识与抽象(概念) ==> 计算机中(用计算机实现)
m
零件
m
(E—R)12
2-2)修改与重构
基本任务
• 消除不必要的冗余,设计生成基本E-R 图
分E-R图
合并
初步E-R图 消除不必要的冗余 基本E-R图 可能存在冗余的数据 和冗余的实体间联系
修改与重构(续)
1.冗余 2.消除冗余的方法
1.冗余
冗余的数据是指可由基本数据导出的数据,
将单方参与实体的码作为多方参与实体的属性
冗余的联系是指可由其他联系导出的联系。
冗余数据和冗余联系容易破坏数据库的完整性,给数据
库维护增加困难
并不是所有的冗余数据与冗余联系都必须加以消除,有
时为了提高某些应用的效率,不得不以冗余信息作为代 价。
冗余(续)
设计数据库概念结构时,哪些冗余信息必须消除, 哪些冗余信息允许存在,需要根据用户的整体需求
2.2 E-R模型的图示化方法
带组合、多值和导出属性的E-R图
直线上标记有文字:联系的角色
实例
E-R模型的设计 1)抽象数据并设计局部E-R图
在多层的数据流图中选择一个适当层次的(经验很重 要)数据流图,以该层次的数据流图为出发点,设计分 E-R图
2)集成E-R图,生成基本E-R图
信息世界
概念模型
概念模型 逻辑模型 数据库设计人员完成 逻辑模型 物理模型 由DBMS完成
机器世界
DBMS支持的数据模型
现实世界中客观对象的抽象过程
目录
1 设计过程概述 2 实体-联系模型 3 转换为关系模式 4 数据库设计实例
2.1 E-R模型的基本概念
历史
• E-R模型:Entity-Relationship Model • 1976年,P.P.S.Chen提出E-R模型,用E-R图来描述概念模型
合并、修改与重构 关键:消除各分E-R图的冲突
对需求分析阶段收集到的数据进行分类、组织(聚
集),形成
实体 实体的属性,标识实体的码 确定实体之间的联系类型(1:1,1:n,m:n)
E-R模型的设计
用实体集还是属性
实体与属性是相对而言的。同一事物,在一种应用 环境中作为“属性”,在另一种应用环境中就必 须作为“实体”。
• 符合上述两条特性的事物一般作为属性对待。 • 为了简化E-R图的处置,现实世界中的事物凡能 够作为属性对待的,应尽量作为属性。
E-R模型的设计
用实体集还是属性
举例 • 例1:“学生”由学号、姓名等属性进一步描述 ,根据准则1,“学生”只能作为实体,不能作 为属性。 • 例2:职称通常作为教师实体的属性,但在涉及 住房分配时,由于分房与职称有关,也就是说职 称与住房实体之间有联系,根据准则2,这时把 职称作为实体来处理会更合适些.
实体之间的联系有很多种类 我们首先要清楚二元联系的:一对一、一对多和多对多联系
一对一联系(1:1)
一个“经理”只管理一个“商店” ,一个“商店”只能有一个“经 理”
一对多联系(1:m和m:1)
一个“画家”可以绘制多幅“作品”,一幅“作品”只能由一个“ 画家”来完成
多对多联系(m:n)
一位同学可以选学多门课程,一门课程可由多个人来选学
(b)在局部应用B中 学生
(a)在局部应用A中
姓名 学号 出生日期所在系 年级 (c)在局部应用C中
结构冲突(续)
学生
学号 姓名 出生 ຫໍສະໝຸດ Baidu治 所在系 年级 性别 平均 日期 面貌 成绩 (d)合并后
结构冲突(续) (3)实体之间的联系在不同局部视图中呈现 不同的类型
例1, 实体E1与E2在局部应用A中是多对多联系, 而在局部应用B中是一对多联系 例2, 在局部应用X中E1与E2发生联系,而在局部 应用Y中E1、E2、E3三者之间有联系。
一对一联系:
• 若联系双方均部分参与(0..1),则将联系定义为一个新的关系,属性 为参与双方的码 职工(职工号,…) 配偶(丈夫职工号,妻子职工号)
•
若联系一方全部参与(1..1) ,则将联系另一方的码作为全部参与一 方的属性
职工(职工号, …) 部门(部门号, 部门名, 职工号)
一对多联系:
2.2 E-R模型的图示化方法
或者采用:
直线旁标1:由联系指向1端
直线旁标m或n:由联系指向多端
直线旁标1..1, 0..1, 1..m, 0..m:完全参与联系还是部分参与联系, 1开始
的,为完全联系,即该端实例至少有一个参与到联系中;0开始的,为 部分参与联系,即该端实例可以不参与联系
确定实体之间的联系类型
例:学籍管理局部应用中主要涉及的实体包括学生、 宿舍、 档案材料、班级、班主任。 实体之间的联系:
• 由于一个宿舍可以住多个学生,而一个学生只能住在某一个宿舍中 ,因此宿舍与学生之间是1:n的联系。 • 由于一个班级往往有若干名学生,而一个学生只能属于一个班级, 因此班级与学生之间也是1:n的联系。 • 由于班主任同时还要教课,因此班主任与学生之间存在指导联系, 一个班主任要教多名学生,而一个学生只对应一个班主任,因此班 主任与学生之间也是1:n的联系。 • 而学生和他自己的档案材料之间,班级与班主任之间都是1:1的联系 。
来确定。
消除不必要的冗余后的初步E-R图称为基本E-R图。
2.消除冗余的方法
分析方法
例,教师工资单中包括该教师的基本工资、各种补贴、
应扣除的房租水电费以及实发工资。 由于实发工资可以由前面各项推算出来,因此可以去掉 ,在需要查询实发工资时根据基本工资、各种补贴、应扣除 的房租水电费数据临时生成。