第 7 章 数据库设计
description
Transcript of 第 7 章 数据库设计
第 7 章 数据库设计
本章主要内容
数据库设计 (Database Design, 简记为 DBD) 是指对于给定的软、硬件环境,针对现实问题,设计一个较优的数据模型,建立 DB 结构和 DB 应用系统。
本章主要讨论 DBD 的方法和步骤,详细介绍 DBD的全过程。本章的重点有两个:
概念设计中的 ER 模型设计方法。设计 ER 模型是一件实用性很强的工作 ,ER 模型应该充分反映用户的需求。
逻辑设计中 ER 模型向关系模型转换的规则。
本章主要内容(续)( 1 ) DBS 生存期及其 7 个阶段的任务和工作, DB
D 过程的输入和输出。( 2 )概念设计的重要性、主要步骤。逻辑设计阶段的主要步骤。
( 3 ) ER 模型的基本元素,属性的分类,联系的元数、连通词、基数。采用 ER 方法的概念设计步骤。
( 4 ) ER 模型到关系模型的转换规则。采用 ER 方法的逻辑设计步骤。
数据库设计7.1 数据库设计概述7.2 规划7.3 需求分析7.4 概念设计7.5 数据库逻辑结构设计及优化7.6 数据库的物理设计 7.7 数据库的实现7.8 数据库的运行与维护工作7.9 Power Designer辅助设计工具本章小结
7.1 数据库设计概述 软件工程
人们认为,应该用科学知识、工程方面的规范指导软件开发的过程,以提高软件质量和开发效率,降低开发成本 。
软件生存期从软件的规划、研制、实现、投入运行后的维护,直到它被新的软件所取代而停止使用的整个期间。
数据库系统生存期数据库应用系统从开始规划、设计、实现、维护到最后被新的系统取代而停止使用的整个期间。
数据库工程设计方法 数据库设计的输入输出
隶属关系
规划
需求分析
系统设计
程序编制
调试
运行维护
软件生存期
运行和维护
实现
物理设计
逻辑设计
概念设计
需求分析
规划
数据库生存期
7.1.1 数据库系统生存期
7.1.2 数据库设计方法 1)直观设计法 直观设计法主要凭借设计者对整个系统的了解和认识,以及平时所积累
的经验和设计技巧,完成对某一数据库系统的设计任务。 这样的方法具有周期短、效率高、操作简便、易于实现等优点。 这种方法主要是用于简单的小型系统。 2)规范化设计法 规范化设计法将数据库设计分为若干阶段,明确规定各阶段的任务,采
用“自顶向下、分层实现、逐步求精”的设计原则,结合数据库理论和软件工程设计方法,实现设计过程的每一细节,最终完成整个设计任务。常用的规范化设计方法主要有:
基于实体联系的设计方法(常用方法) 基于视图概念的数据库设计方法 基于3NF的数据库设计方法等。
3 )计算机辅助设计法 计算机辅助设计法是指在数据库设计的某些过程中,利用计算机和一
些辅助设计工具,模拟某一规范设计方法,并以人的知识或经验为主导,通过人机交互方式实现设计中的某些部分。
例如在需求分析完成后,可以使用 POWER DESIGNER 、 E-Rwin 等辅助工具产生 E-R 图,并将 E-R 图转换为关系数据模型,生成数据库结构,再编制相应的应用程序,从而缩短数据库设计周期。
4 )自动化设计法 设计人员只要熟悉某种 MIS 辅助设计软件的使用,通过人机会话,
输入原始数据和有关要求,无须人工干预,就可以由计算机系统自动生成数据库结构及相应的应用程序。
由于该设计方法基于某一 MIS 辅助设计系统,从而受限于某种 DBMS ,使得最终产生的数据库及其软件系统带有一定的局限性。
处理需求DBMS 特征
总体信息需求
第 5 步物理设计
第 3 步概念设计
第 4 步逻辑设计
第 1 步规划
第 2 步需求描述和分析
硬件和OS 特征
物理数据库结构
需求说明书
信息结构(独立于硬件、软件)
逻辑数据库结构( DBMS 能处理的)
应用程序说明书
7.1.3 数据库设计的基本步骤
7.2 规划 目标 进行建立数据库的必要性及可行性分析,确定数据库系统在组织中和信息系统中的地位,以及各个数据库之间的联系。
规划阶段的三个步骤 系统调查: 对企业组织作全面的调查,画出组织层次图,以了解企业的组织结构。
可行性分析 从技术、经济、效益、法律等方面对建立数据库的可行性进行分析;写出可行性分析报告;组织专家进行讨论其可行性。
确定数据库系统的总目标和制定项目开发计划
分析企业的基本业务功能,确定数据库支持的范围,是建立一个综合的数据库,还是建立若干个专门的数据库。
在实际操作中,可以建立一个支持组织全部活动的包罗万象的综合数据库;
也可以建立若干个范围不同的公用或专用数据库。
子系统 1 子系统 2 子系统 n…
公用数据库 1
公用数据库 2
专用数据库 1
专用数据库 m
…
规划报告 数据库规划工作完成以后,应写出详尽的可行性分析报告和数据库系统规划纲要,内容包括:
信息范围; 信息来源; 人力资源; 设备资源; 软件及支持工具资源; 开发成本估算; 开发进度计划; 现行系统向新系统过渡计划等。
7.3 需求分析 目标 对系统的整个应用情况作全面的、详细的调查,确定企业组织的目标,收集支持系统总的设计目标的基础数据和对这些数据的要求,确定用户的需求,并把这些要求写成用户和数据库设计者都能够接受的文档。
需求分析工作 分析用户活动产生,产生业务流程图 确定系统范围,产生系统范围图 分析用户活动涉及的数据,产生数据流图 分析系统数据,产生数据字典
7.3.1 需求描述与分析 确定全部的用户需求是一件很困难的事情 :
第一,系统本身的需求是变化的,用户的需求必须不断调整,使之与这种变化一致。
第二,由于用户缺少计算机信息系统设计方面的专业知识,要表达他们的需求很困难。特别是很难说清楚某部分工作的功能与处理过程。
第三,要调动用户的积极性,使他们能积极参与系统的分析与设计工作相当困难。
我们设计人员必须首先认识到在整个需求分析以及系统设计过程中,用户参与的重要性。
需求分析中调查分析的方法很多,通常的办法是对不同层次的企业管理人员进行个人访问,内容包括业务处理和企业组织中的各种数据。
还应该考虑系统将来要发生的变化,充分考虑到系统可能的扩充和变动,以减少系统维护的代价。
7.3.2 需求分析阶段的输入和输出
需求说明书
总体信息需求 处理需求
第 1 步:需求分析
7.3.3 需求分析的步骤 1 )需求信息的收集( 1 )调查的目的 首先,要了解组织的机构设置,主要业务活动和职能。 其次,要确定组织的目标,大致工作流程和任务范围划分。
( 2 )调查的内容 外部要求 业务现状 组织机构等( 3 )调查方式 开座谈会; 跟班作业; 请调查对象填写调查表; 查看业务记录、票据; 个别交谈。
2 )需求信息的分析整理 ( 1 )业务流程分析 业务流程分析的目的是获得业务流程及业务与数据联系的形式描述。
一般采用数据流分析法,分析结果以数据流图( data flow diagram , DFD )表示。
一个 DFD由数据流、处理过程、数据存储等部分组成。
输入处理教师 成绩登录 输出处理原始输入
学生成绩表
格式化输入 输出 教务处格式化输出
学生
1
选课
2
上课
3
考试
教师表 课程表 教材 教室 考场 试卷
选课表 成绩表
任课教师信息
课程介绍
选用教材
教室安排
考场
试卷
考试成绩平时成绩
选课名单
已选课程名单
选课单 允许参加考试
申请选课
同意/不同意选课
教师
核对课程表
同意/不同意接受
考场安排
教室安排
评定成绩
评定考试成绩
教室安排
成绩单
( 2 )分析结果的描述 除了 DFD 以外,还要用一些规范表格进行补充描述。为了清楚地描述需求分析的结果,需要整理出下列清单: 数据项清单:列出每一个数据项的名称、含义、来源、类型和长度等。
业务活动清单:列出每一部门中最基本的工作任务,包括任务的定义、操作类型、执行频度、所属部门及涉及的数据项等。
完整性、一致性要求。 安全性要求。 响应时间要求。 预期变化的影响。
3 )评审 评审的目的在于确认某一阶段的任务是否全部完成,以避免
重大的疏漏或错误。
7.3.4 数据字典 数据字典( data dictionary, DD )是对系统中数据的详尽描述,它提供对数据库数据描述的集中管理。
1 )数据项 包括数据项名、含义、别名、类型、长度、取值范围以及与
其它数据项的逻辑关系。
数据项名:选课单号说 明:标识每张选课单类 型: CHAR(8)长 度: 8别 名:选课单号取值范围: 00000001~99999999
2 )数据结构 数据结构反映了数据之间的组合关系。一个数据结构可以由若干个
数据项组成,或有若干个数据项和数据结构混合组成。 它包括数据结构名、含义及组成该数据结构的数据项名或数据结构名。
数据结构名:考试课程说 明:作为考场安排的组成部分,说明某门课程哪位老 师代,以及所选学生人数。组 成:课程号 教师号 选课人数
3 )数据流
数据流可以是数据项,也可以是数据结构,表示某一加工处理过程的输入或输出数据。
对数据流的描述应包括数据流名、说明、流出的加工名、流入的加工名以及组成该数据流的数据结构或数据项。
数据流名:考场安排说 明:由各课程所选学生数,选定教室、时间,安排考场来 源:考试去 向:教师数据结构:考场安排 ―― 考试课程 ―― 考试时间 ―― 教学楼 ―― 教室编号
4 )数据存储 数据存储是处理过程中要存储的数据,它可以是手工凭证、手
工文档或计算机文档。 对数据存储的描述应包括:数据存储名、说明、输入数据流、
输出数据流、数据量、存取频度和存取方式。数据存储名:课程表说 明:对每门课程的名称、学分、先行课程号和摘要描述输出数据流:课程介绍数据描述 :课程号 课程名 学分数 先行课程号 摘要数 量:每年 500 种存 取 方 式 :随机存取
5 )处理进程 对处理进程的描述包括处理进程名、说明、输入数据流、输出数
据流,并简要说明处理工作、频度要求、数据量及响应时间等。 处理进程:选课说 明:对要选某门课程的每一个学生,根据已选修课程 确定其是否可选该课程。再根据学生选课的人数选择适当的教室,制定选课单输 入:学生选课 可选课程 已选课程输 出:选课单程序提要: a. 对所选课程在选课表中查找其是否已选此课程 b. 若未选过此课程,则在选课表中查找是否已选此 课程的先行课程 c. 若 a 、 b 都满足,则在选课表中增加一条选课记录 d. 处理完全部学生的选课处理后,形成选课单
7.4 概念设计 目标 概念设计的目标是产生反映企业组织信息需求的数据库概念
结构,即概念模式。概念模式是独立于计算机硬件结构,独立于支持数据库的 DBMS。
为什么需要概念设计 概念设计的主要步骤
进行数据抽象,设计局部概念模式 将局部概念模式综合成全局概念模式 评审
7.4.1 概念设计的必要性 在概念设计阶段中,设计人员从用户的角度看待数据及处理
要求和约束,产生一个反映用户观点的概念模式。 然后再把概念模式转换成逻辑模式。 将概念设计从设计过程中独立开来,至少有以下几个好处 : 各阶段的任务相对单一化,设计复杂程度大大降低,便于组织管理。
不受特定的 DBMS 的限制,也独立于存储安排和效率方面的考虑,因而比逻辑模式更为稳定。
概念模式不含具体的 DBMS 所附加的技术细节,更容易为用户所理解,因而才有可能准确地反映用户的信息需求。
应用 1 应用 3应用 2
概念模式
概念要求
概念要求
概念要求
应用 1
应用 3
应用 2
逻辑模式
内模式
外模式 3外模式 2外模式 1
综合
转换
映像
映像
数据库的各级模式
E-R 图设计方法(1) 自顶向下 根据用户需求,先定义全局概念结构的框架,然后分层展开,逐步细化。(2) 自底向上 根据用户的每一具体需求,先定义各局部应用的概念结构,然后将它们集成,逐步抽象引最终产生全局概念结构。
(3) 逐步扩张 先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生
成其他概念结构,直至全局概念结构。(4)混合方式 将自顶向下和自底向上相结合,先用自顶向下方式设计一个全局概念结
构框架,再以它选基础,采用自底向上法集成各局部概念结构。
7.4.2 概念设计的主要步骤 1 )进行数据抽象,设计局部概念模式
先从个别用户的需求出发,为每个用户建立一个相应的局部概念结构。
设计概念结构时,常用的数据抽象方法是“聚集”和“概括”。2 )将局部概念模式综合成全局概念模式综合各局部概念结构就可得到反映所有用户需求的全局概念结构。
在综合过程中,主要处理各局部模式对各种对象定义的不一致问题。
在结构合并时,解决冗余问题,对信息需求的再调整与分析。3 )评审消除了所有冲突后,就可把全局结构提交评审。
用户评审DBA 及应用开发人员评审
7.4.3 采用 ER 方法的数据库概念设计
在设计数据库概念结构时,为了更好地模拟现实世界,一个有效的策略是“分而治之”,即先分别考虑各个用户的信息需求,形成局部概念结构,然后再综合成全局结构。
需求分析结果
确定局部结构范围
实体定义
联系定义
属性分配
还有局部结构待分析
有
无 进入全局 ER 模式设计
1 )设计局部 ER 模式
( 1)确定局部结构范围 一种是依据系统的当前用户进行自然划分。 例如,对一个企业的综合数据库,按决策部门、销售部门、生产
部门、技术部门和供应部门分别设计各自的局部 ER 模式。 另一种是按用户要求数据库提供的服务归纳成几类,为每类应用
设计一个局部 ER 模式。例如,学校的教师数据库可以按提供的服务分为以下几类:
教师的档案信息的查询。 对教师的专业结构进行分析。 对教师的职称、工资变化的历史分析。 对教师的学术成果查询分析。
局部结构范围的确定要考虑下述因素: 范围的划分要自然,易于管理。范围之间的界面要清晰,相互影响要小。范围的大小要适度。
( 2 )确定实体 通常可依据下列两个基本规则来区分实体和属性: 实体与属性之间的联系只能是 1 : n 的; 属性本身不再具有需要描述的信息或与其他事物具有联系。 现实世界中的事物能够作为属性对待的,应尽量作为属性处理,
以简化 E-R 模型。 物资
编号 名称 规格 单价 仓库号 存放数量
图 (a) 仓库作为物资实体的属性
物资编号
名称 规格 单价
仓库号
存放数量
仓库存放
地点 面积
图 (b) 仓库作为单独的实体
( 3 )联系设计 联系集 联系集是 n ( n≥2 )个实体集上的数
学关系,这些实体集不必互异。 联系的元数
一个联系涉及到的实体集个数。 联系的连通词
涉及到的实体集之间实体对应的方式 。 实体的基数
有两个实体集 E1 和 E2 , E1 中每个实体与 E2 中有联系实体的数目的最小值 min 和最大值 max ,称为 E1 的基数,用( min , max )形式表示 。
问题:运动员根据其得分来排定名次。在名次排列中,排在他前面只有一个人排在他后面也只有一个人
运动员
编号 姓名 性别 名次
顺序
1 1
图 7.9 一元联系中的 1:1 联系
职工之间的上下级联系
职工
工号 姓名 年龄 性别
领导
1 N
图 7.10 一元联系中的 1:N 联系
工厂的零件之间存在着组合关系,一种零件由许多种子零件组成,而一种零件也可以是其他零件的子零件
零件
零件号 零件名 规格
数量
组成
M N
图 7.11 一元联系中的 M:N 联系
某商业集团中,商店、仓库、商品之间的进货联系
图 7.12 三元联系中的 M:N:P 联系
仓库
商品商店
仓库号 仓库名 地址
数量
商店号 商品名商品号商店名
日期进货
M
N P
学校里规定每学期学生至少选修 1 门课程,最多选修 6 门课程;每门课程至多有 50人选修,最少可以没人选修
图 7.13 联系的连通词和实体的基数
学生
课程
选课
M ( 1 , 6 )
N ( 0 , 50 )
( 4)属性分配 基本属性和复合属性(可否再
分) 单值属性和多值属性(对一个实
体对象是否只能取一个值) 多值属性的处理
将原来的多值属性用几个新的单值属性来表示。
将原来的多值属性用一个新的实体类型表示
导出属性 空值
图 7.4 地址属性的层次结构
邮政编码
省(市)名
地 址
区 名街 道
家庭地址 门牌号码
图 7.8 导出属性的表示
工号
职 工
姓名
基本工资 奖金
房租
实发工资
图 7.6 多值属性的变换( 1 )
零件编码
零 件
零件名
供应商规格 进货价格
经销价格代销价格
批发价格
零售价格
图 7.7 多值属性的变换( 2 )
零件编码
零 件
零件名供应商
规格
进货价格销售性质 售货价格
存在 销售价格1 N
图 7.5 多值属性的表示
零件编码
零 件
零件名供应商 规格
进货价格
销售价格零件编码
局部 ER 模式设计综述 需求分析结果
确定局部结构范围
实体定义
联系定义
属性分配
还有局部结构待分
析
有
无 进 入 全 局 ER 模 式 设计
图 7.18 局部 ER模式设计
范围的划分要自然,易于管理;
范围的大小要适度。太小了,会造成局部结构过多,设计过程繁琐,综合困难;太大了,则容易造成内部结构复杂,不便分析
范围之间的界面要清晰,相互影响要小
采用人们习惯的划分;
避免冗余,在一个局部结构中,对一个对象只取一种抽象形式,不要重复;
依据用户的信息处理需求
确定属性的原则:
属性应该是不可再分解的语义单位;实体与属性之间的关系只能是 1:N的;不同实体类型的属性之间应无直接关联关系。
属性分配的原则:
当多个实体类型用到同一属性时, 一般把属性分配给那些使用频率最高的实体类型,或分配给实体值少的实体类型。
有些属性不宜归属于任一实体类型,只说明实体之间联系的特性
局部模式
现有的教学管理系统
初步分析系统的对象
根据服务种类分析教师子模块
…… 局部 ER 图
其他局部模式
现有的教学管理系统
初步分析系统的对象
根据服务种类分析学生子模块
……
导师
班级
学生
组成
管理
班主任
档案材料 宿舍住宿
归档
指导
系 有
参加
学会
1 N 1 1
1
NN
N 1
1
N
M
N 1
具有
社会关系
1
N
局部 ER 图
其它局部模式
现有的教学管理系统
初步分析系统的对象
根据服务种类分析课程子模块
……
局部 ER 图
图7.22 课程管理局部应用分 E-R 图
1
教室
M
1
教科书 教师
担任
课程系 开设N1
学生选修N MN
上课
P N
ER模型的操作
教师号 姓名 出生日期 职务 工资 奖金
教师
( a )
教师号 姓名 出生日期
教师不变信息
职务 工资 奖金教师号
教师变动信息
( b )图 7.15 实体类型的垂直分裂
教师
课程
主讲 辅导
1 M
N N
图 7.16 联系类型的分裂
教师
课程
主讲
M
N
( a ) ( b )
图 7.17 不合法的合并
B
(a)
A
C
A-C B-C
A
C
A-B-C
(b)
B
包括实体类型、联系类型和属性的分裂、合并、增删等等
2 )设计全局 ER 模式
无
图 7.20 全局 ER模式设计
局部 ER 模式
确定公共实体类型
合并两个局部 ER 模式
检查并消除冲突
还有未合并的局部
模式
有
还有冲突吗有
属性冲突 :如,重量单位有的用公斤,有的用克。
结构冲突 :同一对象在不同应用中的不同抽象 ;同一实体在不同局部 ER 图中属性的个数或次序不同 ;实体之间的联系在不同的局部 ER 图中呈现不同的类型
命名冲突 :属性名、实体名、联系名之间存在同名异义或异名同义冲突
结构冲突解决方式 1
① 对于同一对象在不同的局部 E-R模型中产生不同的抽象 :把属性变为实体或实体变为属性,使同一对象具有相同的抽象,变换后产生的结果仍然要遵守 7.4.3 节中所阐述的两个基本规则。(一是实体与属性之间的联系只能是 1 : n 的;二是属性本身不再具有需要描述的信息或与其他事物具有联系。)
学生
学号 姓名 性别 年龄 所在系 专业
系
编号 系名 系主任 所在地点 联系电话
属于1
n
结构冲突解决方式 2② 对于同一实体在不同 E-R模型中属性组成不同:取两个分 E-R模型属性的并,作为合并后的该实体属性,然后对
属性的先后次序作适当调整。
学生
学号 姓名 性别 年龄 所在系 专业
籍贯 政治面貌 家庭住址
图 (c) 合并后的 E-R模型
学生
学号 姓名 性别 年龄 所在系 专业
图 (a) E-R模型 1
学生
学号 姓名 籍贯 政治面貌
家庭住址
图 (b) E-R模型 2
结构冲突解决方式 3③ 对于实体间的相同联系呈现的不同的类型:根据具体应用的语义,对实体间的联系作适当的综合或调整。
产品
组成
零件
数量m
n
图 7-14 (a) 产品与零件的 ER 模型 1 图 7-14 (b) 产品、零件和供应商的 ER 模型 2
产品
组成
零件
供应商
n
数量 p
图 7-14 (c) 合并后的 E-R 模型
产品
组成
零件
供应商
n
组成数量
m
供应p
m
n 供应数量
3 )全局 ER 模式的优化 实体类型的合并
1:1 联系的两个实体类型 具有相同键的实体类型
冗余属性的消除 冗余联系的消除 利用规范化理论中函数依赖的概念消除冗余联系
1
图 7.24 合并后的教学管理 E-R图
1
N
1
P
1N
1
N
1 N
1
M
M NN
N
N
社会关系
具有
1
N
N
M
1
系
聘用
承接项目
参加
设置
院长 学院主管
N
N
1
1
1
教师
评定
职称
分配
工作量
1 1
1
N
档案材料
归档
参加
学会1
宿舍住宿
教科书
担任
指导
课程
选修
教室
上课
有1
班级
学生
组成
N
开设
N
管理
1
1
教师
管理
1
1
1
图 7.24 合并后的教学管理 E-R图
1
N
1
P
1N
1
N
1 N
1
M
M NN
N
N
社会关系
具有
1
N
N
M
1
系
聘用
承接项目
参加
设置
院长 学院主管
N
N
1
1
1
教师
评定
职称
分配
工作量
1 1
1
N
档案材料
归档
参加
学会1
宿舍住宿
教科书
担任
指导
课程
选修
教室
上课
有1
班级
学生
组成
N
开设
N
管理
1
1
教师
管理
1
1
例子:三个局部 ER图合并成一个 ER图
1
图 7.24 合并后的教学管理 E-R图
1
N
1
P
1N
1
N
1 N
1
M
M NN
N
N
社会关系
具有
1
N
N
M
1
系
聘用
承接项目
参加
设置
院长 学院主管
N
N
1
1
1
教师
评定
职称
分配
工作量
1 1
1
N
档案材料
归档
参加
学会1
宿舍住宿
教科书
担任
指导
课程
选修
教室
上课
有1
班级
学生
组成
N
开设
N
管理
1
1
教师
管理
1
1
7.5 数据库逻辑结构设计及优化7.5.1 逻辑设计环境
数据库逻辑结构设计
独立于 DBMS 的概念模式
处理需求
约束条件
DBMS 特征
DBMS 可处理的模式和子模式
应用程序设计指南
物理设计指南
7.5.2 逻辑设计的步骤
目标 逻辑设计步骤
导出初始 DBMS 模式说明
概念模式
子模式设计 应用程序设计草图
模式评价
处 理 结束
模 式 需 要 修正模式修正
进入物理设计阶段
返回到前面阶段
是
是
否
否
7.5.3 ER 模型向关系模型的转换 1 )转换的一些问题( 1 )命名和属性域的处理 关系模式的命名,可以采用 E-R 图中原来的命名,也可以另行命名。
( 2 )非原子属性的处理 E-R 数据模型中允许非原子属性,这不符合关系模型的第一范式的条件。
对集合属性纵向展开,对元组属性横向展开。
( 3 )弱实体的处理
家属
性别姓名 年龄 与职工关系
职工
职工号 姓名 出生日期
职工-家属1
N
( a ) E-R图
职工号 姓名 性别 年龄 与职工关系
( b )关系模式
( 4 )联系的转换
E1
k
r1
a
h
E2
b
s
1
l : l 联系 可以一个关系模式:R ( k , a , h , b , s )
名称 地址 联系电话 姓名 职称 任期
学校
名称
管理1
地址姓名
校长职称
任期
1
联系电话
l : N 联系
E1
k
r1
a
h
E2
b
s
N转换关系模式为:R1 ( k , a )R2 ( h , b , k , s ) (k 为外键 )
班级班号
属于1
班名
学号
学生姓名N
性别
年龄
班号 班名
学号 姓名 性别 年龄 班号
M : N 联系
E1
k
rM
a
h
E2
b
s
N变换关系模式为:R1 ( k , a )R2 ( h , b )R3 ( h , k , s ) ( k,h 组 成 复 合主键, k 、 h 分 别 为 外键)
学生学号
选课M
姓名
课程号
课程学分N
教师
成绩
学号 姓名
课程号 学分 教师
学号 课程号 成绩
多元联系 转换的关系模式为: R1 ( k , a )R2 ( h , b )R3 ( j , c )R4 ( k , h , j , s )(k,h,j 组成复合主健, k,h,j 分别为外键 )
E1
k
rM
as
N
hE2
b
jE3
cP
工程工程号 供应M
…
零件 零件号N
公司
供应量
公司名P
……
工程号 …
零件号 … 公司名 …
工程号 零件号 公司名 供应量
2 ) ER 模型向关系模型的转换规则
将每个实体类型转换成一个关系模式,实体的属性即为关系模式的属性,实体标识符即为关系模式的键。
二元联系类型的转换 1:1 联系:可以在两个实体类型和联系转换成一个关系模式。
1:N 联系:在 N端实体类型转换成的关系模式中加入 1端实体类型的键和联系类型的属性。
M:N 联系:将联系类型也转换成关系模式,其属性为两端实体类型的键加上联系类型的属性,而键为两端实体键的组合。
一元联系类型的转换 :同二元联系 三元联系类型的转换
总是将三元联系类型转换成关系模式,其属性为三端实体类型的键加上联系类型的属性,而键为三端实体键的组合。
3) ER 模型到关系模型的转换实例
运动员
编号 姓名 性别 名次
顺序
1 1
职工
工号 姓名 年龄 性别
领导
1 N
运动员(编号,姓名,性别,名次,上一名次编号,下一名次编号)
职工(工号,姓名,年龄,性别,经理工号)
ER 模型到关系模型的转换实例
零件
零件号 零件名 规格
数量
组成
M N
仓库
商品商店
仓库号 仓库名 地址
数量
商店号 商品名商品号商店名
日期进货
M
N P
零件(零件号,零件名,规格)
组成(零件号,子零件号,数量)
仓库(仓库号,仓库名,地址)
商店(商店号,商店名)
商品(商品号,商品名)
进货(商店号,商品名,仓库号,日期,数量)
例 库存信息管理系统的 ER模型及转换
P
车间
仓位
产品
客户
销售员
存储
出库
订单
入库
M
N M
P
M
NP
M
N
N
库存系统 ER图
车间 (车间号 , 车间名 , 主任名 ) 产品 (产品号,产品名,单价 ) 仓位 ( 仓位号,地址,主任名 )
客户 (客户号,客户名,联系人,电话, 地址,税号,账号 )
销售员 (销售员号 ,姓名 ,性别 ,学历 , 业绩)
实体
入库(入库单号 ,入库量 ,入库日期 , 经手人 , 车间号 ,仓位号 , 产品名)
出库(出库单号,出库量,出库日期,经手人,客户号,产品名,仓位号)
订单(订单号,数量,折扣,总价,订单日期,产品号,客户号,销售员号)
存储 ( 仓位号 , 产品号 , 核对日期 , 核对员 ,存储量 )
联系
学校行政管理系统学校(名称 , 校长姓名 , 地址 , 联系电话 ,邮编)系(编号 , 名称 , 系主任 ,所在地点 , 联系电话)教研室(名称,地点,电话)教师(教师姓名,职称,联系电话)学生(学号,姓名,性别,年龄,班级名)课程(课程编号,课程名称,学分) 下属(编号,名称) 包含(名称,编号) 拥有(教师姓名,名称) 组成(学号,编号) 讲授(教师姓名,课程编号,教材名) 选修(学号,课程编号,成绩)
7.5.4 用关系规范化理论进行优化
( l )确定数据依赖 ( 2 )对于各关系模式间的数据依赖进行极小化处理,消除冗余的联系。
( 3 )按照数据依赖与规范化理论对关系模式逐一进行分析 。
( 4 )按范式优化每一关系模式 。( 5 )对关系模式的进一步分解或合并。
7.6 数据库的物理设计 目标 什么是数据库的物理结构 物理设计的步骤
存储记录结构设计 确定数据存放位置 存取方法的设计 完整性和安全性考虑 程序设计
7.7 数据库的实现 目标 实现数据库应做的主要工作
用 DDL定义数据库结构; 组织数据入库;
对数据量不大的小型系统(人工)主要工作:筛选数据;转换数据格式;输入数据;校验数
据。 对大中型系统(自动)
主要工作:筛选数据;输入数据;校验数据;转换数据;综合数据。
编制与调试应用程序; 数据库试运行。
功能测试 性能测试(时空代价)
7.8 数据库的运行与维护工作 数据库的转储和恢复 数据库安全性、完整性控制 数据库性能的监督、分析和改进 数据库的重组织和重构造
7.9 PowerDesigner 辅助设计工具
本章小结
数据库的生命周期 数据库设计的步骤 ER模型
基本概念和引进对象后的扩展 ER模型的设计方法 ER模型向关系模型的转换