数据库系统概论第七章课件
合集下载
数据库系统概论PPT课件第七章 数据库设计01
运用DBMS提供的数据库语言(如SQL)及宿主 语言,根据逻辑设计和物理设计的结果
建立数据库 编制与调试应用程序 组织数据入库 进行试运行
An Introduction to Database System
数据库设计的基本步骤(续)
⒍数据库运行和维护阶段
数据库应用系统经过试运行后即可投入正式运行 在数据库系统运行过程中必须不断地对其进行评
7.2.1 需求分析的任务
需求分析的任务 需求分析的重点 需求分析的难点
An Introduction to Database System
需求分析的任务
详细调查现实世界要处理的对象(组织、部门、企业等) 充分了解原系统(手工系统或计算机系统) 明确用户的各种需求 确定新系统的功能 充分考虑今后可能的扩充和改变
An Introduction to Database System
需求分析的重点
调查的重点是“数据”和“处理”,获得 用户对数据库要求
信息要求 处理要求 安全性与完整性要求
An Introduction to Database System
需求分析的难点
确定用户最终需求
用户缺少计算机知识 设计人员缺少用户的专业知识
An Introduction to Database System
⒊ 数据流
数据流是数据结构在系统内传输的路径。 对数据流的描述
数据流描述={ 数据流名,说明,数据流来源, 数据流去向,组成:{数据结构}, 平均流量,高峰期流量}
An Introduction to Database System
解决方法
设计人员必须不断深入地与用户进行交流
建立数据库 编制与调试应用程序 组织数据入库 进行试运行
An Introduction to Database System
数据库设计的基本步骤(续)
⒍数据库运行和维护阶段
数据库应用系统经过试运行后即可投入正式运行 在数据库系统运行过程中必须不断地对其进行评
7.2.1 需求分析的任务
需求分析的任务 需求分析的重点 需求分析的难点
An Introduction to Database System
需求分析的任务
详细调查现实世界要处理的对象(组织、部门、企业等) 充分了解原系统(手工系统或计算机系统) 明确用户的各种需求 确定新系统的功能 充分考虑今后可能的扩充和改变
An Introduction to Database System
需求分析的重点
调查的重点是“数据”和“处理”,获得 用户对数据库要求
信息要求 处理要求 安全性与完整性要求
An Introduction to Database System
需求分析的难点
确定用户最终需求
用户缺少计算机知识 设计人员缺少用户的专业知识
An Introduction to Database System
⒊ 数据流
数据流是数据结构在系统内传输的路径。 对数据流的描述
数据流描述={ 数据流名,说明,数据流来源, 数据流去向,组成:{数据结构}, 平均流量,高峰期流量}
An Introduction to Database System
解决方法
设计人员必须不断深入地与用户进行交流
数据库系统概论第七章
(1)要考虑到可扩充性 (2)强调用户的参与
7.3 概念结构设计
1、概念结构
(1) 能真实、充分地反映现实世界,包括事物和事物之间 的联系,能满足用户对数据的处理要求。是对现实世 界的一个真实模型。
(2) 易于理解。 (3) 易于更改和扩充。 (4) 易于向关系、网状、层次等各种数据模型转换。
数据库设计的关键:形成独立于具体DBMS的概念模型 描述概念模型的有力工具是E-R模型
逻辑阶段可采用的有效方法
ODL(Object Definition Language)方法
面向对象的数据库设计方法
7.1 数据库设计概述(续)
3、数据库设计的基本步骤
需求分析 概念结构设计 逻辑结构设计 物理结构设计 数据库实施 数据库运行和维护
7.2 需求分析
1、需求分析的任务
多元联系
三个或三个以上实体间的一个多元联系可以转换为一个关 系模式,与该多元联系相连的各实体间的码以及联系本身 的属性均转换为关系的属性,而关系的码为各实体码的组 合。
E1( k,a ) E2( h,b ) E3( i,c ) R( k,h,i,s )
7.4 逻辑结构设计(续)
具有相同的码的关系模式可合并。
7.3 概念结构设计(续)
3、数据抽象与局部视图设计
数据抽象
1)分类(classificatin) 2)聚集(Aggregation) 3)概括(Generalization)
定义某一类型概的念之组作间成为的成现一分实种。 世 它 子界 抽 集中 象 联一了系组对。对象它象内抽的部象类了型类,和型 这 成 之些 分 间对 之 的象间“具的is 有“su某ibss些peat共rot同fo”的f的” 特 的 语性 语 义和 义 。行。为
7.3 概念结构设计
1、概念结构
(1) 能真实、充分地反映现实世界,包括事物和事物之间 的联系,能满足用户对数据的处理要求。是对现实世 界的一个真实模型。
(2) 易于理解。 (3) 易于更改和扩充。 (4) 易于向关系、网状、层次等各种数据模型转换。
数据库设计的关键:形成独立于具体DBMS的概念模型 描述概念模型的有力工具是E-R模型
逻辑阶段可采用的有效方法
ODL(Object Definition Language)方法
面向对象的数据库设计方法
7.1 数据库设计概述(续)
3、数据库设计的基本步骤
需求分析 概念结构设计 逻辑结构设计 物理结构设计 数据库实施 数据库运行和维护
7.2 需求分析
1、需求分析的任务
多元联系
三个或三个以上实体间的一个多元联系可以转换为一个关 系模式,与该多元联系相连的各实体间的码以及联系本身 的属性均转换为关系的属性,而关系的码为各实体码的组 合。
E1( k,a ) E2( h,b ) E3( i,c ) R( k,h,i,s )
7.4 逻辑结构设计(续)
具有相同的码的关系模式可合并。
7.3 概念结构设计(续)
3、数据抽象与局部视图设计
数据抽象
1)分类(classificatin) 2)聚集(Aggregation) 3)概括(Generalization)
定义某一类型概的念之组作间成为的成现一分实种。 世 它 子界 抽 集中 象 联一了系组对。对象它象内抽的部象类了型类,和型 这 成 之些 分 间对 之 的象间“具的is 有“su某ibss些peat共rot同fo”的f的” 特 的 语性 语 义和 义 。行。为
数据库系统概论-第七章
7.1.3 数据库设计的基本步骤
一、数据库设计的准备工作
参加数据库设计的人员:
1) 数据库分析设计人员 ,其水平决定了数据库系统的质量 (1) 数据库设计的核心人员 (2) 自始至终参与数据库的设计
2) 管理员和用户 (1) 参与需求分析 (2) 参与数据库的运行维护
3) 程序员和操作员 ,在系统实施阶段参与进来 (1) 负责编制程序 (2) 准备软硬件环境
(E-R)1 (E-R)2
(E-
(E-
R)12
R)3
初步E-R
基本E-R 逐步集成
视图集成的步骤
1. 合并分E-R图,解决冲突,生成初步E-R图
(1) 属性冲突——讨论、协商等解决 1) 属性域冲突:(1) 属性值的类型; (2) 取值范围 2) 属性取值单位冲突
(2) 命名冲突——讨论、协商等解决 1) 同名异义;2) 异名同义
课程管理局部应用的E-R图
教室编号 地址
容量
课程名
学分
课程号
所在系
年级 平均成绩
姓名 学号 性别 年龄
教室
1 开设 1
1
m
课班程级
1
讲授
选修
成绩 n
n 学生
m
教学 n
教科书
教师
书号 书名 价钱
职工号 姓名 性别 职称
7.3.4 视图的集成
(E-R)1 (E-R)2
(ER)n
初步ER
基本E-R
一次集成
描述概念模型的工具: E-R模型
7.3.2 概念结构设计的方法与步骤
设计概念结构的四类方法:
♦ 自顶向下 ♦ 自底向上 ♦ 逐步扩张 ♦ 混合策略
常用策略:自底向上
数据库系统概论PPT课件
在多处理机系统中,每个处理机可以运行一个 事务,多个处理机可以同时运行多个事务,实 现多个事务真正的并行运行,称为同时并发方 式。
并发的目的:
改善系统的资源利用率
改善短事务的响应时间
可编辑
3
例子
飞机订票系统中的活动序列:
①甲售票点读出某航班的机票余额A,设A=16
②乙售票点读出同一航班的机票余额A,也为16
在二级封锁协议中,由于读完数据后即可释放 S锁,所以它不能保证可重复读。
可编辑
11
三级封锁协议
三级封锁协议:一级封锁协议加上事务T在读 取数据R之前必须先对其加S锁,直到事务结束 才释放。
三级封锁协议除了防止了丢失修改和不读“脏” 数据外,还进一步防止了不可重复读。
上述三级协议的主要区别在于:什么操作需要 申请封锁,以及何时释放锁。
读“脏”数据:事务T1修改某一数据,并将其写回 磁盘,事务T2读取同一数据后,T1由于某种原因被 撤销,这时T1已修改过的数据恢复原值,T2读到的 数据就与数据库中的数据不一致,则T2读到的数据 就为“脏”数据,即不正确的数据。 “读—写冲 突”
可编辑
5
数据不一致性(2)
不可重复读:事务T1读取数据后,事务T2执行更 新操作,使T1无法再现前一次的读取结果。 “读—写冲突”
避免活锁的简单方法是采用“先来先服务”的 策略。
可编辑
14
死锁
一个事务如果申请锁而未获准,则需等待其它 事务释放锁。如果事务中出现循环等待时,如 果不加干预,则会一直等待下去,这叫死锁。
对付死锁的方法:
检测死锁,发现死锁后处理死锁 防止死锁
可编辑
15
死锁的诊断(1)
并发的目的:
改善系统的资源利用率
改善短事务的响应时间
可编辑
3
例子
飞机订票系统中的活动序列:
①甲售票点读出某航班的机票余额A,设A=16
②乙售票点读出同一航班的机票余额A,也为16
在二级封锁协议中,由于读完数据后即可释放 S锁,所以它不能保证可重复读。
可编辑
11
三级封锁协议
三级封锁协议:一级封锁协议加上事务T在读 取数据R之前必须先对其加S锁,直到事务结束 才释放。
三级封锁协议除了防止了丢失修改和不读“脏” 数据外,还进一步防止了不可重复读。
上述三级协议的主要区别在于:什么操作需要 申请封锁,以及何时释放锁。
读“脏”数据:事务T1修改某一数据,并将其写回 磁盘,事务T2读取同一数据后,T1由于某种原因被 撤销,这时T1已修改过的数据恢复原值,T2读到的 数据就与数据库中的数据不一致,则T2读到的数据 就为“脏”数据,即不正确的数据。 “读—写冲 突”
可编辑
5
数据不一致性(2)
不可重复读:事务T1读取数据后,事务T2执行更 新操作,使T1无法再现前一次的读取结果。 “读—写冲突”
避免活锁的简单方法是采用“先来先服务”的 策略。
可编辑
14
死锁
一个事务如果申请锁而未获准,则需等待其它 事务释放锁。如果事务中出现循环等待时,如 果不加干预,则会一直等待下去,这叫死锁。
对付死锁的方法:
检测死锁,发现死锁后处理死锁 防止死锁
可编辑
15
死锁的诊断(1)
数据库系统概论第七章
成运行事务的非正常中断,影响数据库
中数据的正确性,重则破坏数据库,使
数据库中的全部或部分数据丢失,因此
数据库管理系统必须具有把数据库从错
误状态恢复到某一已知正确状态的功能,
这就是数据库的恢复。数据库恢复是通
过数据库管理系统的恢复子系统完成的。
可编辑ppt
7
数据库恢复概述
数据库恢复子系统的目的包括:
可编辑ppt
5
事务的特性(ACID)
持久性(Durability) 一个事务一旦提交之后,它对数据库的 影响必须是永久的。事务提交后,系统 发生故障不能改变事务的持久性。
可编辑ppt
6
数据库恢复概述
虽然数据库系统中采用了各种措施来保
证系统安全性和完整性,但计算机系统
的故障是不可避免的,这些故障轻则造
日志文件的作用
– 日志文件可以用来进行事务故障恢复和系统故障恢 复,并协助后备副本进行介质恢复。其具体作用是:
恢复的实现技术
转储的方式
– 海量转储
• 海量转储指每次转储全部数据库。
– 增量转储
• 增量转储指每次只转储上一次转储后更新过的数 据。
可编辑ppt17恢复的实现技术来自转储状态动态转储
静态转储
转储 海量转储 动态海量转储 静态海量转储 方式 增量转储 动态增量转储 静态增量转储
可编辑ppt
18
恢复的实现技术
可编辑ppt
13
恢复的实现技术
正常运行 T0
重装后备副本
恢复 T0
T1 重新运行事务
T1
可编辑ppt
T3
T3
14
恢复的实现技术
转储可以分为:
– 静态转储
数据库系统概论第七章数据库设计
An Introduction to Database System
概念结构设计的方法与步骤(续)
自底向上设计概念结构的步骤
第1步:抽象数据并设计局部视图 第2步:集成局部视图,得到全局概念结构
An Introduction to Database System
7.3 概念结构设计
7.3.1 概念结构 7.3.2 概念结构设计的方法与步骤 7.3.3 数据抽象与局部视图设计 7.3.4 视图的集成
需求分析 概念结构设计
An Introduction to Database System
概念结构(续)
概念结构设计的特点
(1) 能真实、充分地反映现实世界 (2) 易于理解 (3) 易于更改 (4) 易于向关系、网状、层次等各种数据模型转换
An Introduction to Database System
得到全局概念结构
自底向上策略 An Introduction to Database System
概念结构设计的方法与步骤(续)
逐步扩张
首先定义最重要的核心概念结构,然后向外扩充,以滚
雪球的方式逐步生成其他概念结构,直至总体概念结构
逐步扩张策略
An Introduction to Database System
聚集
An Introduction to Database System
数据抽象(续)
复杂的聚集,某一类型的成分仍是一个聚集
更复杂的聚集
An Introduction to Database System
数据抽象(续)
3. 概括(Generalization)
定义类型之间的一种子集联系 抽象了类型之间的“is subset of”的语义 继承性
概念结构设计的方法与步骤(续)
自底向上设计概念结构的步骤
第1步:抽象数据并设计局部视图 第2步:集成局部视图,得到全局概念结构
An Introduction to Database System
7.3 概念结构设计
7.3.1 概念结构 7.3.2 概念结构设计的方法与步骤 7.3.3 数据抽象与局部视图设计 7.3.4 视图的集成
需求分析 概念结构设计
An Introduction to Database System
概念结构(续)
概念结构设计的特点
(1) 能真实、充分地反映现实世界 (2) 易于理解 (3) 易于更改 (4) 易于向关系、网状、层次等各种数据模型转换
An Introduction to Database System
得到全局概念结构
自底向上策略 An Introduction to Database System
概念结构设计的方法与步骤(续)
逐步扩张
首先定义最重要的核心概念结构,然后向外扩充,以滚
雪球的方式逐步生成其他概念结构,直至总体概念结构
逐步扩张策略
An Introduction to Database System
聚集
An Introduction to Database System
数据抽象(续)
复杂的聚集,某一类型的成分仍是一个聚集
更复杂的聚集
An Introduction to Database System
数据抽象(续)
3. 概括(Generalization)
定义类型之间的一种子集联系 抽象了类型之间的“is subset of”的语义 继承性
数据库系统概论课件PPT第七章(高等教育出版社第四版)
第四节 恢复的实现技术
• 恢复机制涉及两个关键问题:一、如何 建立冗余数据;二、如何利用这些冗余 数据实施数据库恢复。 • 建立冗余数据最常用的技术是转储和登 录日志文件,通常在一个数据库系统中 这两种方法是一起使用的。
一、数据转储
• 数据转储是数据库恢复中采用的基本技术。转 储即DBA定期地将整个数据库复制到磁带或另 一个磁盘上保存起来的过程。这些备用的数据 文本称为后备副本或后援副本。 • 当数据库遭到破坏后可以将后备副本重新装入, 但重装后备副本只能将数据库恢复到转储时的 状态,要想恢复到故障发生时的状态,必须重 新运行自转储后的所有更新事务。
第七节 数据库镜像
• 随着磁盘容量越来越大,价格越来越便宜,为 避免磁盘介质出现故障,影响数据库的可用性, 许多数据库管理系统提供了数据库镜像 (Mirror)功能用于数据库恢复。 • 由于数据库镜像是通过复制数据库实现的,频 繁地复制数据自然会降低系统运行效率,因此 在实际应用中用户往往只选择对关键数据和日 志文件镜像,而不是对整个数据库进行镜像。
第二节 数据库恢复概述
• 尽管系统中采取了各种保护措施来防止数据库 的安全性和完整性被破坏,保证并发事务的正 确执行,但是计算机系统中硬件的故障、软件 的错误、操作员的失误以及恶意的破坏仍是不 可避免的,这些故障轻则造成运行事务非正常 中断,影响数据库中数据的正确性,重则破坏 数据库,是数据库中全部或部分数据丢失,因 此数据库管理系统必须具有把数据库从错误状 态恢复到某一已知的状态的功能,这就是数据 库的恢复。恢复子系统是数据库管理系统的一 个重要组成部分,而且还相当庞大,常常占整 个系统代码的10%以上。
第七章 数据库恢复技术
• 事务是一系列的数据库操作,使数据库 应用程序的基本逻辑单元。事务处理技 术主要包括数据库恢复技术和并发控制 技术。 • 数据库恢复机制和并发机制是数据库管 理系统的重要组成部分。
《数据库系统概论》讲义课件
03 索引优化需要深入理解索引的原理和使用场景, 以及熟练掌握数据库管理系统的使用。
数据库硬件优化
数据库硬件优化是指通过优化数据库服务器的硬件配置,提高数据库系统 的性能。
数据库硬件优化的方法包括选择高性能的CPU、内存、存储设备等,以及 合理配置网络带宽和延迟等。
数据库硬件优化需要综合考虑硬件的性能和成本,以及数据库系统的实际 需求和负载情况。
数据库备份
定期对数据库进行完整备份或增量备 份,确保在数据丢失或损坏时可以恢 复。
备份策略
根据业务需求和数据量,制定合适的 备份策略,包括备份频率、备份存储 位置等。
恢复计划
制定详细的恢复计划,包括恢复流程 、恢复人员和恢复时间等,以便在需 要时快速恢复数据。
测试与演练
定期测试备份和恢复过程,确保备份 文件可用且恢复流程能够顺利执行。
逻辑模型
数据模型的一种,用于描述数据在计算机中的表示和组织 方式。常见的逻辑模型有层次模型、网状模型、关系模型 等。
物理模型
数据模型的一种,用于描述数据在计算机中的存储和访问 方式。常见的物理模型有磁盘存储、内存存储、数据库文 件等。
关系数据库
关系数据结构
关系数据库中的数据以表格的形 式存储,每个表格由行和列组成 ,每一列都有一个唯一的列名, 每一行表示一个记录。
《数据库系统概论》讲义课件
目录
CONTENTS
• 数据库系统概述 • 数据库系统基础知识 • 数据库设计 • 数据库管理系统 • 数据库系统性能优化 • 数据库安全与维护
01 数据库系统概述
CHAPTER
数据库系统的定义与特点
数据库系统的定义
数据库系统是一种用于存储、管理、检索和维护数据的软件系统。它使用数据 库管理系统(DBMS)来管理数据,提供高效、可靠的数据存储和处理功能。
数据库硬件优化
数据库硬件优化是指通过优化数据库服务器的硬件配置,提高数据库系统 的性能。
数据库硬件优化的方法包括选择高性能的CPU、内存、存储设备等,以及 合理配置网络带宽和延迟等。
数据库硬件优化需要综合考虑硬件的性能和成本,以及数据库系统的实际 需求和负载情况。
数据库备份
定期对数据库进行完整备份或增量备 份,确保在数据丢失或损坏时可以恢 复。
备份策略
根据业务需求和数据量,制定合适的 备份策略,包括备份频率、备份存储 位置等。
恢复计划
制定详细的恢复计划,包括恢复流程 、恢复人员和恢复时间等,以便在需 要时快速恢复数据。
测试与演练
定期测试备份和恢复过程,确保备份 文件可用且恢复流程能够顺利执行。
逻辑模型
数据模型的一种,用于描述数据在计算机中的表示和组织 方式。常见的逻辑模型有层次模型、网状模型、关系模型 等。
物理模型
数据模型的一种,用于描述数据在计算机中的存储和访问 方式。常见的物理模型有磁盘存储、内存存储、数据库文 件等。
关系数据库
关系数据结构
关系数据库中的数据以表格的形 式存储,每个表格由行和列组成 ,每一列都有一个唯一的列名, 每一行表示一个记录。
《数据库系统概论》讲义课件
目录
CONTENTS
• 数据库系统概述 • 数据库系统基础知识 • 数据库设计 • 数据库管理系统 • 数据库系统性能优化 • 数据库安全与维护
01 数据库系统概述
CHAPTER
数据库系统的定义与特点
数据库系统的定义
数据库系统是一种用于存储、管理、检索和维护数据的软件系统。它使用数据 库管理系统(DBMS)来管理数据,提供高效、可靠的数据存储和处理功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库原理与应用
数据库系统概论 第四版
王 珊 萨师煊
第7章 数据库设计
数据库设计的基本步骤 概念结构设计和逻辑结构设计的常用方法
7.1 数据库设计概述
数据库设计是建立数据库及其应用系统的技 术,是信息系统开发和建设中的核心技术。 具体说,数据库设计是指对于一个给定的应 用环境,构造最优的数据库模式,建立数据 库及其应用系统,使之能够有效地存储数据, 满足各种用户的应用需求。
使用更符合用户习惯的别名 可以对不同级别的用户定义不同的视图,以保证系 统的安全性。 简化用户对系统的使用。如将一些常用的复杂查询 定义为视图。
示例:
学生包括学号,姓名,性别,年龄等基本信息;课程包括课程 编号,课程名等;教师包括教师代号,姓名,性别,职称等; 上述实体存在如下联系:一个学生可以选修多门课程,一门课 程可为多个学生选修;一个教师可讲授多门课程,一门课程由 一个教师讲授; (1)试画出这个数据库的E-R图。 (2)将E-R模型转化为适当的关系模型,并给出候选关键字。
E1( kБайду номын сангаас a ) E2( h, b ) R( k, h, s ) 或 E1( k, a, h, s ) E2( h, b )
1:N联系
一个1:n联系可以转换为一个独立的关系模式,也可以与n 端对应的关系模式合并,如果转换为一个独立的关系模式, 则与该联系相连的各实体的码以及联系本身的属性均转换 为关系的属性,而关系的码为n端实体的码。
7.3 概念结构设计(续)
3、数据抽象与局部视图设计
数据抽象
1)分类(classificatin) 2)聚集(Aggregation) 3)概括(Generalization)
定义某一类型之间的一种 定义某一类型的组成成分。 定义某一类概念作为现实 子集联系。它抽象了类型 它抽象了对象内部类型和 世界中一组对象的类型, 之间的“is subset of”的 成分之间的“is part of” 这些对象具有某些共同的 语义。 的语义。 特性和行为
课程-教师:{课程号,课序号,教师号} 课程-教科书:{课程号,课序号,教科书} 具有相同的主码,可以合并成一个关系 教学:{课程号,课序号,教师号,教科书}
7.4 逻辑结构设计(续)
2、数据模型的优化
确定数据依赖 对于各个关系模式之间的数据依赖进行极小化处 理,消除冗余的联系。 按照数据依赖的理论对关系模式进行分析,确定 属于第几范式。 按照需求分析的处理要求,确定是否要对某些模 式进行合并或分解。 对关系模式进行必要的分解(水平分解、垂直分 解)
(1) 信息要求。指用户需要从数据库中获得信息的内容与性质。 由信息要求可以导出数据要求,即在数据库中需要存储哪 些数据。 (2) 处理要求。指用户要完成什么处理功能,对处理的响应时 间有什么要求,处理方式是批处理还是联机处理。
(3) 安全性与完整性要求。
7.2 需求分析(续)
2、需求分析的方法
(1)开展调查
逻辑阶段可采用的有效方法
ODL(Object Definition Language)方法
面向对象的数据库设计方法
7.1 数据库设计概述(续)
3、数据库设计的基本步骤
需求分析 概念结构设计 逻辑结构设计
物理结构设计
数据库实施 数据库运行和维护
7.2 需求分析
1、需求分析的任务
1:1联系
一个1:1联系可以转换为一个独立的关系模式,也可以与 任意一端对应的关系模式合并。如果转换为一个独立的关 系模式,则与该联系相连的各实体的码以及联系本身的属 性均转换为关系的属性,每个实体的码均是该关系的候选 码。如果与某一端实体对应的关系模式合并,则需要在该 关系模式的属性中加入另一个关系模式的码和联系本身的 属性。
7.1 数据库设计概述(续)
2、数据库设计方法
在过去相当长的一段时期内,数据库设计主要 采用手工试凑法。长时间以来,人们努力探索, 提出了各种数据库设计方法,这些方法运用软 件工程的思想和方法,提出了各种设计准则和 规程,都属于规范设计方法。
规范设计方法的基本思想是过程迭代和逐步求精。
7.1 数据库设计概述(续)
7.4 逻辑结构设计
逻辑结构设计的任务就是把概念结构设计阶 段设计好的基本E-R图转换为与选用DBMS 所支持的数据模型相符合的逻辑结构。
7.4 逻辑结构设计(续)
1、E-R图向关系模型的转换
一个实体型转换为一个关系模式。实体的属性 就是关系的属性,实体的码就是关系的码。 对于实体的联系则有以下不同的情况:
• 数据流名:选课申请 说明:由学生个人信息,欲选课程信息组成选课申请 来自过程:无 流至过程:身份验证 •输出数据流:课程上课时间 数据描述:课程编号 上课时间 数量:每学期200-300个 存取方式:随机存取 •数据存储:上课时间信息 说明: 说明了每门课的上课时间,一门课可以有多个 上课时间,同一时间可以有多门课程在上课。
7.1 数据库设计概述(续)
1、数据库设计的特点
数据库建设的基本规律
“三分技术,七分管理,十二分基础数据”
结构设计与行为设计相结合
目 前 许 多 计 算 机 辅 助 软 件 工 程 ( Computer Aided Software Engineering,简称CASE)工具已经把数据 库 设 计 作 为 软 件 工 程 设 计 的 一 部 分 。 如 ROSE , UML(Unified Modeling language)等。
7.3 概念结构设计(续)
2)消除不必要的冗余,设计基本E-R图 冗余的数据是指可由基本数据导出的数据,冗余的联系 是指可由其它联系导出的联系。消除了冗余后的初步E-R图称 为基本E-R图。
Q3=Q1*Q2 Q3为冗余数据 Q4=∑Q5 Q4为冗余数据
Q4
删除Q3,多余的联系也应删除
Q4可视实际需要而定,若经常进行统计, 则可以保留,以提高系统查询效率
需求分析的任务是通过详细调查现实世界要处 理的对象(组织、部门、企业等),充分了解 原系统(手工系统或计算机系统)工作概况, 明确用户的各种需求,然后在此基础上确定新 系统的功能。新系统必须充分考虑今后可能的 扩充和改变,不能仅仅按当前应用需求来设计 数据库。
7.2 需求分析(续)
调查的重点是“数据”和“处理”,通过调查、分析,获得用 户对数据库的如下要求:
7.3 概念结构设计(续)
4、视图的集成
视图集成方式:
多个分E-R图一次集成; 逐步集成;
视图集成步骤
合并 修改和重构
7.3 概念结构设计(续)
1)合并分E-R图,生成初步E-R图 合理消除各分E-R图的冲突是合并分E-R图的主要工作与关键所在。
• 属性冲突
属性域冲突,如学号的类型有的采用整型,有的采用字符型。 属性取值单位的冲突,如身高采用米还是厘米。
(1)要考虑到可扩充性 (2)强调用户的参与
7.3 概念结构设计
1、概念结构
(1) 能真实、充分地反映现实世界,包括事物和事物之间 的联系,能满足用户对数据的处理要求。是对现实世 界的一个真实模型。 (2) 易于理解。
(3) 易于更改和扩充。
(4) 易于向关系、网状、层次等各种数据模型转换。 数据库设计的关键:形成独立于具体DBMS的概念模型 描述概念模型的有力工具是E-R模型
•处理过程:身份验证 说明: 对学生输入的帐号,密码进行验证,确定正确, 得到相应的学生编号。 输入:学生帐号;密码;选课的课程编号。 输出:学生编号;选课的课程编号 程序提要说明: (1)对输入的学生个人信息,检查学号和密码是否正确? (2)对身份正确的学生检查要选修的课程是否允许? (3)检查是否正确返回信息。
7.3 概念结构设计(续)
3、数据抽象与局部视图设计
局部视图设计
1)选择局部应用作为设计分E-R图的出发点 2)逐个设计分E-R图 在E-R图设计时,现实世界的事物能作为属性对待的, 尽量作为属性对待。应遵循以下两个原则: • 属性是不可分的数据项,不能包含其他属性 • 属性不能与其他实体具有联系
7.2 需求分析(续)
学生选课系统数据流图和数据字典示例分析:
数据字典描述: •数据项名:学生编号 说明: 标识每个学生身份 类型: CHAR 长度: 8 别名: 学号 取值范围:970000-979999
•数据结构:学生个人信息 说明: 说明了学生的个人情况。 组成: 学号、姓名、性别 密码
7.3 概念结构设计(续)
概念结构设计的步骤:
7.3 概念结构设计(续)
3、数据抽象与局部视图设计
数据抽象
概念结构是对现实世界的一种抽象。所谓抽象是对实 际的人、物、事和概念进行人为处理,抽取所关心的 共同特性,忽略非本质的细节,并把这些特性用各种 概念精确地加以描述,这些概念组成了某种模型。
7.2 需求分析(续)
数据字典是在需求分析阶段建立,在数据库设计过程中不 断修改、充实、完善的。
明确地把需求收集和分析作为数据库设计的第一阶段是十 分重要的。这一阶段收集到的基础数据(用数据字典来表达) 和一组数据流程图(Data Flow Diagram,简称DFD)是下一步 进行概念设计的基础。
2、数据库设计方法
新奥尔良(New Orleans)方法
把数据库设计分为四个阶段: 需求分析(分析用户要求) 概念设计(信息分析和定义) 逻辑设计(设计实现) 物理设计(物理数据库设计)
7.1 数据库设计概述(续)
数据库设计方法
基于E-R模型的数据库设计方法
概念设计阶段广泛采用
3NF(第三范式)的设计方法
多元联系
三个或三个以上实体间的一个多元联系可以转换为一个关 系模式,与该多元联系相连的各实体间的码以及联系本身 的属性均转换为关系的属性,而关系的码为各实体码的组 合。
数据库系统概论 第四版
王 珊 萨师煊
第7章 数据库设计
数据库设计的基本步骤 概念结构设计和逻辑结构设计的常用方法
7.1 数据库设计概述
数据库设计是建立数据库及其应用系统的技 术,是信息系统开发和建设中的核心技术。 具体说,数据库设计是指对于一个给定的应 用环境,构造最优的数据库模式,建立数据 库及其应用系统,使之能够有效地存储数据, 满足各种用户的应用需求。
使用更符合用户习惯的别名 可以对不同级别的用户定义不同的视图,以保证系 统的安全性。 简化用户对系统的使用。如将一些常用的复杂查询 定义为视图。
示例:
学生包括学号,姓名,性别,年龄等基本信息;课程包括课程 编号,课程名等;教师包括教师代号,姓名,性别,职称等; 上述实体存在如下联系:一个学生可以选修多门课程,一门课 程可为多个学生选修;一个教师可讲授多门课程,一门课程由 一个教师讲授; (1)试画出这个数据库的E-R图。 (2)将E-R模型转化为适当的关系模型,并给出候选关键字。
E1( kБайду номын сангаас a ) E2( h, b ) R( k, h, s ) 或 E1( k, a, h, s ) E2( h, b )
1:N联系
一个1:n联系可以转换为一个独立的关系模式,也可以与n 端对应的关系模式合并,如果转换为一个独立的关系模式, 则与该联系相连的各实体的码以及联系本身的属性均转换 为关系的属性,而关系的码为n端实体的码。
7.3 概念结构设计(续)
3、数据抽象与局部视图设计
数据抽象
1)分类(classificatin) 2)聚集(Aggregation) 3)概括(Generalization)
定义某一类型之间的一种 定义某一类型的组成成分。 定义某一类概念作为现实 子集联系。它抽象了类型 它抽象了对象内部类型和 世界中一组对象的类型, 之间的“is subset of”的 成分之间的“is part of” 这些对象具有某些共同的 语义。 的语义。 特性和行为
课程-教师:{课程号,课序号,教师号} 课程-教科书:{课程号,课序号,教科书} 具有相同的主码,可以合并成一个关系 教学:{课程号,课序号,教师号,教科书}
7.4 逻辑结构设计(续)
2、数据模型的优化
确定数据依赖 对于各个关系模式之间的数据依赖进行极小化处 理,消除冗余的联系。 按照数据依赖的理论对关系模式进行分析,确定 属于第几范式。 按照需求分析的处理要求,确定是否要对某些模 式进行合并或分解。 对关系模式进行必要的分解(水平分解、垂直分 解)
(1) 信息要求。指用户需要从数据库中获得信息的内容与性质。 由信息要求可以导出数据要求,即在数据库中需要存储哪 些数据。 (2) 处理要求。指用户要完成什么处理功能,对处理的响应时 间有什么要求,处理方式是批处理还是联机处理。
(3) 安全性与完整性要求。
7.2 需求分析(续)
2、需求分析的方法
(1)开展调查
逻辑阶段可采用的有效方法
ODL(Object Definition Language)方法
面向对象的数据库设计方法
7.1 数据库设计概述(续)
3、数据库设计的基本步骤
需求分析 概念结构设计 逻辑结构设计
物理结构设计
数据库实施 数据库运行和维护
7.2 需求分析
1、需求分析的任务
1:1联系
一个1:1联系可以转换为一个独立的关系模式,也可以与 任意一端对应的关系模式合并。如果转换为一个独立的关 系模式,则与该联系相连的各实体的码以及联系本身的属 性均转换为关系的属性,每个实体的码均是该关系的候选 码。如果与某一端实体对应的关系模式合并,则需要在该 关系模式的属性中加入另一个关系模式的码和联系本身的 属性。
7.1 数据库设计概述(续)
2、数据库设计方法
在过去相当长的一段时期内,数据库设计主要 采用手工试凑法。长时间以来,人们努力探索, 提出了各种数据库设计方法,这些方法运用软 件工程的思想和方法,提出了各种设计准则和 规程,都属于规范设计方法。
规范设计方法的基本思想是过程迭代和逐步求精。
7.1 数据库设计概述(续)
7.4 逻辑结构设计
逻辑结构设计的任务就是把概念结构设计阶 段设计好的基本E-R图转换为与选用DBMS 所支持的数据模型相符合的逻辑结构。
7.4 逻辑结构设计(续)
1、E-R图向关系模型的转换
一个实体型转换为一个关系模式。实体的属性 就是关系的属性,实体的码就是关系的码。 对于实体的联系则有以下不同的情况:
• 数据流名:选课申请 说明:由学生个人信息,欲选课程信息组成选课申请 来自过程:无 流至过程:身份验证 •输出数据流:课程上课时间 数据描述:课程编号 上课时间 数量:每学期200-300个 存取方式:随机存取 •数据存储:上课时间信息 说明: 说明了每门课的上课时间,一门课可以有多个 上课时间,同一时间可以有多门课程在上课。
7.1 数据库设计概述(续)
1、数据库设计的特点
数据库建设的基本规律
“三分技术,七分管理,十二分基础数据”
结构设计与行为设计相结合
目 前 许 多 计 算 机 辅 助 软 件 工 程 ( Computer Aided Software Engineering,简称CASE)工具已经把数据 库 设 计 作 为 软 件 工 程 设 计 的 一 部 分 。 如 ROSE , UML(Unified Modeling language)等。
7.3 概念结构设计(续)
2)消除不必要的冗余,设计基本E-R图 冗余的数据是指可由基本数据导出的数据,冗余的联系 是指可由其它联系导出的联系。消除了冗余后的初步E-R图称 为基本E-R图。
Q3=Q1*Q2 Q3为冗余数据 Q4=∑Q5 Q4为冗余数据
Q4
删除Q3,多余的联系也应删除
Q4可视实际需要而定,若经常进行统计, 则可以保留,以提高系统查询效率
需求分析的任务是通过详细调查现实世界要处 理的对象(组织、部门、企业等),充分了解 原系统(手工系统或计算机系统)工作概况, 明确用户的各种需求,然后在此基础上确定新 系统的功能。新系统必须充分考虑今后可能的 扩充和改变,不能仅仅按当前应用需求来设计 数据库。
7.2 需求分析(续)
调查的重点是“数据”和“处理”,通过调查、分析,获得用 户对数据库的如下要求:
7.3 概念结构设计(续)
4、视图的集成
视图集成方式:
多个分E-R图一次集成; 逐步集成;
视图集成步骤
合并 修改和重构
7.3 概念结构设计(续)
1)合并分E-R图,生成初步E-R图 合理消除各分E-R图的冲突是合并分E-R图的主要工作与关键所在。
• 属性冲突
属性域冲突,如学号的类型有的采用整型,有的采用字符型。 属性取值单位的冲突,如身高采用米还是厘米。
(1)要考虑到可扩充性 (2)强调用户的参与
7.3 概念结构设计
1、概念结构
(1) 能真实、充分地反映现实世界,包括事物和事物之间 的联系,能满足用户对数据的处理要求。是对现实世 界的一个真实模型。 (2) 易于理解。
(3) 易于更改和扩充。
(4) 易于向关系、网状、层次等各种数据模型转换。 数据库设计的关键:形成独立于具体DBMS的概念模型 描述概念模型的有力工具是E-R模型
•处理过程:身份验证 说明: 对学生输入的帐号,密码进行验证,确定正确, 得到相应的学生编号。 输入:学生帐号;密码;选课的课程编号。 输出:学生编号;选课的课程编号 程序提要说明: (1)对输入的学生个人信息,检查学号和密码是否正确? (2)对身份正确的学生检查要选修的课程是否允许? (3)检查是否正确返回信息。
7.3 概念结构设计(续)
3、数据抽象与局部视图设计
局部视图设计
1)选择局部应用作为设计分E-R图的出发点 2)逐个设计分E-R图 在E-R图设计时,现实世界的事物能作为属性对待的, 尽量作为属性对待。应遵循以下两个原则: • 属性是不可分的数据项,不能包含其他属性 • 属性不能与其他实体具有联系
7.2 需求分析(续)
学生选课系统数据流图和数据字典示例分析:
数据字典描述: •数据项名:学生编号 说明: 标识每个学生身份 类型: CHAR 长度: 8 别名: 学号 取值范围:970000-979999
•数据结构:学生个人信息 说明: 说明了学生的个人情况。 组成: 学号、姓名、性别 密码
7.3 概念结构设计(续)
概念结构设计的步骤:
7.3 概念结构设计(续)
3、数据抽象与局部视图设计
数据抽象
概念结构是对现实世界的一种抽象。所谓抽象是对实 际的人、物、事和概念进行人为处理,抽取所关心的 共同特性,忽略非本质的细节,并把这些特性用各种 概念精确地加以描述,这些概念组成了某种模型。
7.2 需求分析(续)
数据字典是在需求分析阶段建立,在数据库设计过程中不 断修改、充实、完善的。
明确地把需求收集和分析作为数据库设计的第一阶段是十 分重要的。这一阶段收集到的基础数据(用数据字典来表达) 和一组数据流程图(Data Flow Diagram,简称DFD)是下一步 进行概念设计的基础。
2、数据库设计方法
新奥尔良(New Orleans)方法
把数据库设计分为四个阶段: 需求分析(分析用户要求) 概念设计(信息分析和定义) 逻辑设计(设计实现) 物理设计(物理数据库设计)
7.1 数据库设计概述(续)
数据库设计方法
基于E-R模型的数据库设计方法
概念设计阶段广泛采用
3NF(第三范式)的设计方法
多元联系
三个或三个以上实体间的一个多元联系可以转换为一个关 系模式,与该多元联系相连的各实体间的码以及联系本身 的属性均转换为关系的属性,而关系的码为各实体码的组 合。