数据库三级--第三章
第三章 数据库结构设计
数据库概念设计
-
核心环节 独立于具体DBMS的概念模型
-
目标:
- 定义和描述应用领域设计的数据范围
- 获取信息模型
- 描述数据的属性特征
- 描述数据之间的关系
- 定义和描述数据的约束
- 说明数据的安全性需求
- 支持用户的各种数据处理需求 事务
- 保证信息模型能转化成数据库的逻辑结构(即数据库模式)
-
概念设计的依据及过程
- 依据:以需求分析的结果为依据 即需求说明书DFD图各类文件报表等
- 结果:概念模型(ER)以及概念设计说明书
- 过程:
- 明确建模目标(模型覆盖范围)
- 定义实体集(自底向上标识和定义实体集)
- 定义联系(实体间联系)
- 建立信息模型(构造ER模型)
- 确定实体属性(属性描述一个实体集的特征或性质)
- 对信息模型进行集成与优化(检查和消除命名不一致,结构不一致)
-
概念模型设计:
- 广泛使用ER建模方法 E-R模型(Entity-Relationship Model)
- 实体或实例:客观存在并互相区分的事物:如 学生张三
- 实体集:同型实体的集合称为实体集 :如 全体学生
- 属性:实体说具有的一个特性,一个实体可以由若干个属性,每个属性的取值范围称为域
- 码(key) 键 :实体集中唯一标识每一个实体的属性或属性组合,主键(码):一个实体集中任意两个实体主键取值不能相同
- 联系(属性):描述实体间的相互关系
- 实体间的联系:
- 一对一 1:1联系:
- 联系转换为独立的关系模式;模式的属性由联系本身的属性及两个实体的键构成,主键由两个实体中的任意一个键构成
- 联系与一端的实体的关系模式合并,即将联系的属性加入到实体的关系模式内,主键不变
- 一对多 1:m联系:
- 联系转换为独立的关系模式;模式的属性由联系本身的属性及两个实体的键构成,主键由n端实体的键构成
- 与n端实体的关系模式合并,即将联系的属性加入到实体的关系模式内,主键不变
- 多对多 m:n联系:多对多联系转换为新的独立模式时,模式的属性由联系本身的属性及两个实体的键构成,主键由两端实体的键组合而成
- 一对一 1:1联系:
- E-R模型的表示
- 实体——矩形
- 联系——菱形
- 属性——椭圆
- 主键——属性椭圆中属性名带有下划线
- IDEF1X建模方法——数据建模方法
- 广泛使用ER建模方法 E-R模型(Entity-Relationship Model)
数据库逻辑设计
-
任务:概念模型(ER)图转化为关系模型
-
依概念补充
-
关系模型
- 数据模型 二维表格结构
- 关系模式 关系的描述 由五部分组成
- R(U,D,DOM,F) → 关系名(该关系的属性名的集合U,属性组U所来自的域,属性到域的映射,U上的一组数据依赖)
- 简化为三元组R(U,F)
-
数据依赖
- 定义:R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称 X函数确定Y 或 Y函数依赖于X 记作 X→Y
- 关系的内部属性与属性之间的一种约束关系 语义的体现
- 完整性约束的表现形式:限定属性的取值范围,定义属性值的相互关联(主要体现于值的相等与否)
- 类型
- 函数依赖 唯一确定的关系
- 平凡函数依赖
- 完全函数依赖 部分函数依赖
- 传递函数依赖
- 多值依赖 不能唯一确定
- 函数依赖 唯一确定的关系
-
候选码 候选关键字
- 候选码有多个 可以选其中一个作为主码
-
外部码
-
数据规范化
- 关系模式设计的好坏
- 关系模式的范式化(数据库逻辑设计的工具)
- 目的:尽量消除插入、删除异常、修改负载、数据冗余的问题
- 泛式:关系模式满足的约束条件
- 第一范式 1NF : 关系模式中所有属性都是不可再分的数据项 每个字段对应单一属性
- 第二范式 2NF : 每个非主属性完全依赖于主键
- 第三范式 3NF : 首先满足第二泛式,并且属性中每个非主属性不传递函数依赖于主键 也就是说 第三范式中不存在传递函数依赖
- 关系模式规范化的基本步骤:
- 1NF到2NF:消除非主属性对码的部分函数依赖
- 2NF到3NF:消除非主属性对主键的传递函数依赖
- 3NF到BCNF: 消除主属性对码的部分和传递函数依赖
- BCNF到4BF:消除非平凡且非函数依赖的多值依赖
-
设计逻辑结构分三步:
- 概念结构转化为一般的关系模型
- 将转化来的关系模型向特定的DBMS支持下的数据模型转换
- 对数据模型进行优化
-
概念模型按照如下规则转换为数据模型:
- 一个实体转换成一个关系模式
- 一个1:1联系转换为一个独立的关系模式,也可以与任一端对应的关系模式合并
- 一个1:n 联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并
- 一个m:n联系转换为一个关系模式
- 三个或三个以上实体间的一个多元联系转换为一个关系模式
- 同一实体集的实体间的联系,也可以按照三种情况分别处理
-
数据模型的三个要素
- 数据结构:所研究的对象类型的集合,表述客观世界中数据对象本身结构和数据对象之间的关系,是对系统静态特征的描述
- 数据操作:对数据库中的对象的实例允许执行操作的集合,主要指检索和更新(插入、删除、修改)两类操作,数据模型必须定义这些操作的确切含义,操作符号、操作规格以及实现操作的语言。数据操作是对系统动态特性的描述
- 数据完整性约束:是一组完整性规则的集合,规定数据库状态及状态变化所对应满足的条件,以保证数据的正确性、有效性和相容性
-
模式分解:
- 无损连接性:分解的若干连接重组时可以精确恢复到原来的数据表,数据记录既没有增加也没有减少
- 保持函数依赖:原关系模式含有的属性之间的隐含关系在分解后不能丢失
- 分解使得一个关系变为多个关系,常用于关系模式规范化。一般情况下可以减少部分数据冗余,但不恰当的分解,也可能增加冗余
-
ER图向关系模式转换涉及到两方面:
- 实体的转换:一个实体转换成一个关系模式,实体的属性就是关系模式的属性,实体的键就是关系的主键
- 实体间联系的转换:实体间存在三种联系:一对一,一对多,多对多联系,转换模式规则如下:
- 1:1联系:
- 联系转换为独立的关系模式;模式的属性由联系本身的属性及两个实体的键构成,主键由两个实体中的任意一个键构成
- 联系与一端的实体的关系模式合并,即将联系的属性加入到实体的关系模式内,主键不变
- 1:m联系:
- 联系转换为独立的关系模式;模式的属性由联系本身的属性及两个实体的键构成,主键由n端实体的键构成
- 与n端实体的关系模式合并,即将联系的属性加入到实体的关系模式内,主键不变
- m:n联系:多对多联系转换为新的独立模式时,模式的属性由联系本身的属性及两个实体的键构成,主键由两端实体的键组合而成
- 1:1联系:
- 实体和联系转换成关系模式的规则:
- 每一个实体集转换为一个关系模式
- 一对一、一对多联系中一端并入多端的实体关系模式中
- 每一个多对多联系转换成一个关系模式
数据库物理设计
-
概述:
- 是设计数据库的存储结构和物理实现方法
- 目的:将数据的逻辑描述转换为实现技术规范,设计数据存储方案,以便提供足够好的性能并确保数据库数据的完整性、安全性、可靠性
-
数据库的物理结构
- 物理设备上的存储结构与存取方法
- 数据库中的数据以文件形式存储在外设存储介质上
- 一个文件可以物理上看作是存放记录的一系列磁盘块组成的,成为物理文件
- 物理结构需要解决的问题:文件组织、文件结构、文件存取、索引技术
-
索引:
- 是数据库中独立的存储结构,其作用是提供一种无需扫描整个页面(存储表格数据的物理块)而快速访问数据页的方案
- 索引技:是一种快速数据访问技术
- 索引技术的关键
- 建立记录域取值(如图书术语)到记录的物理地址(如页码)间的映射关系即索引
- 索引能提高性能,但有代价的(空间换时间)
- 设计和创建索引时,应确保对性能的提高程度大于在存储空间和处理资源方面的代价
- 索引技术分类:
- 有序索引:索引文件机制,利用索引文件(索引记录组成)实现记录域(查找码,排序域)取值到记录物理地址间的映射关系
- 数据文件(主文件)和索引文件(索引记录或索引项的集合)是有序索引技术中两个主体,数据文件常采用顺序文件结构
- 几种主要的有序索引:
- 聚集索引和非聚集索引,一个数据文件只可建立一个聚集索引,但可建立多个非聚集索引
- 稠密索引(数据文件中每个查找码都有对应索引记录)和稀疏索引(部分查找码有对应索引记录)
- 主索引与辅索引
- 唯一索引
- 单层索引(线性文件)和多层索引(多层树形)
- 有序索引:索引文件机制,利用索引文件(索引记录组成)实现记录域(查找码,排序域)取值到记录物理地址间的映射关系
-
数据库物理设计:
-
目标:得到存储空间占用少,数据访问效率高,维护代价低
-
5个主要环节:
-
逻辑模式描述:根据数据库逻辑结构信息设计目标DBMS可支持的关系表(基本表)的模式信息
SQL server 采用T-SQL语言
为基本表选择合适的文件结构(堆文件、顺序文件、聚集文件、索引文件和散列文件) -
文件组织与存取设计
-
基本原则:根据应用情况将易变部分与稳定部分、存取频率较高部分与存取频率较低部分分开存放,以提高系统性能
-
分析理解数据库事务访问特性:使用事务-基本表交叉引用矩阵;估计各事务执行频率;汇总每张基本表各事务操作频率信息;根据结果设计文件结构
-
影响文件存储结构的因素:
存取时间、存储空间利用率、维护代价
解决方法:适当冗余、增加聚簇功能 -
存取路径:主要指确定如何建立索引
-
DBMS常用存取方法: 索引方法(B+树索引)、聚簇方法、HSAH方法
-
建立索引原则:
一个属性经常在操作条件中出现一个属性经常在连接操作的连接条件中出现
一个属性经常作为聚集函数的参数 -
建立聚集索引原则:
检索数据时,常以某个属性作为排序、分组条件
检索数据时,常以某个属性作为检索限制条件,并返回大量数据
表中某个属性的值重复性较大
-
-
数据分布设计:不同类型数据的物理分布
将应用数据(基本表)、索引、日志、数据库备份数据等合理安排在不同介质中
应用数据的划分与分布:- 根据数据的使用特征划分(频繁使用与非频繁使用分区)
- 根据时间、地点划分(时间或地点相同的属于同一分区)
- 分布式数据库系统(DDBS)中的数据划分(水平划分或垂直划分)
- 水平划分:将基本表划分为多张具有相同属性、结构完全相同的子表,子表包含的元组是基本表中元组的子集
- 垂直划分: 将基本表划分为多张子表,每张子表包括的属性是原基本表的子集
- 派生属性数据分布(增加派生列或不定义派生属性)
- 关系模式的去规范化(降低规范化提高查询效率)
-
确定系统配置
配置参数:用户数、对象数、使用的缓冲器长度、个数,时间片大小,数据库大小,装填因子,锁的数目... -
物理模式评估:
对数据库物理设计结果从存取时间、存储空间、维护代价等方面进行评估,重点是时间和空间效率
-
-
-