全国计算机等级考试三级数据库技术(三)

第三章_数据库结构设计

考点分析

在考试中一般情况下会出现在选择题和设计题(ER图表示,关系模型转化)
常考知识点有:
1.掌握数据建模方法中ER、IDEF1X系列的建模方法。
2.掌握数据库逻辑设计–ER图向关系模式转换方法
3.掌握数据库物理设计中物理结构、索引的分类、建立索引的原则。

考点1:数据库概念设计

数据库概念设计主要解决数据需求,即如何准确地理解数据需求,真实地把应用领域中要处理的数据组织,定义描述清楚,以支持数据库设计后续阶段的工作,

1、数据库概念设计阶段的目标
定义和描述应用领域设计的数据范围
获取应用领域或问题域的信息模型
描述数据的属性特征
描述数据之间的关系
定义和描述数据的约束
说明数据的安全性要求
支持用户的各种数据处理需求
保证信息模型能转化成数据库的逻辑结构(即数据库模式),同时也便于为用户理解。

2.概念设计的依据及过程

依据:
  需求分析阶段的文档,包括需求说明书、功能模型(数据流程图或IDEF0图)以及在需求阶段收集到的应用领域或问题域中的各类报表等。

过程:
(1)明确建模目标(模型覆盖范围)
(2)定义实体集(自底向上标识和定义实体集)
(3)定义联系(实体间关联关系)
(4)建立信息模型(构造ER模型)
(5)确定实体集属性(属性描述一个实体集的特征或性质)
(6)对信息模型进行集成与优化(检查和消除命名不一致、结构不一致等)
  概念设计是DB设计的核心环节。概念数据模型是对现实世界的抽象和模拟。

3.数据建模方法

ER模型用简单的图形直观地抽象出现现实世界中客观对象的属性特征及其关系。

数据建模方法的共同特点是:
1.能够真实客观地描述现实世界中的数据及数据之间的关系。
2.组成模型的概念少,语义清楚,容易理解。
3.不同概念的语义不重叠,概念无多义性。
4.用图形方式描述数据,数据直观易懂,有利于数据库设计者和用户交流。
5.这种数据模型容易转换成数据库逻辑设计阶段的数据结构。

ER建模方法:
实体联系(ER)方法面向数据存储需求建模,将现实世界中需要处理的数据抽象组织成某种信息结构。这种结构不依赖于具体的计算机系统,仅从存储需求描述数据的属性特征及数据之间的关系。

与ER模型有关的基本概念:
实体(Entity)或实例(Instance)
  客观存在并可相互区分的事物叫实体。
  如学生张三、工人李四、计算机系、数据库概论。
实体集(Entity Set)
  同型实体的集合称为实体集。
  如全体学生。
属性(Attribute)
  实体所具有的某一特性。一个实体可以由若干个属性来刻画。每个属性的取值范围称为域。
  例如,学生可由学号、姓名、年龄、系、年级等组成。
码(Key):
  实体集中唯一标识每一个实体的属性或属性组合。
  用来区别同一实体集中的不同实体的称作主码。
  一个实体集中任意两个实体在主码上的取值不能相同。
  如学号是学生实体的主码。
联系(Relationship)
  描述实体之间的相互关系。
  如学生与老师间的授课关系,学生与学生间有班长关系。
  联系也可以有属性,如学生与课程之间有选课联系,每个选课联系都有一个成绩作为其属性。
  同类联系的集合称为联系集。

实体间的联系有三类:

实体之间的联系的数量,即一个实体通过一个联系集能与另一实体集相关联的实体的数目。
一对一联系(1:1)
  如:“系”与“系主任”(一个系只有一个系主任,一个系主任只负责管理一个系)
一对多联系(1:n )
  如:“系”与“学生”(一个系招收若干学生,一个学生只属于一个系)
多对多联系(m:n)
  如:“学生”与“课程”(一名学生可选修多门课程,每门课程可被多名学生选修)

ER模型的表示
ER图示例

IDEF1X建模方法

IDEFX 侧重分析、抽象和概括应用领域中的数据需求,被称为数据建模方法。
IDEF1X的建模元素:实体集、联系。

实体集
独立标识符实体集或独立实体集:一个实体集的每个实例都能被唯一的标识而不取决于与其他实体集的联系。
从属标识符实体集或从属实体集:实体集的一个实例的唯一依赖于该实体集与其他实体集的联系。
a.独立实体集/编号,b.从属实体集/编号
在IDEF1X中,每个实体集定义有一个唯一的名字和编码,名字和编码之间用斜杠(/)
写在矩形框的上方,编码应该是正整数。

联系
一个“确定型连接联系”(或简称为“父子联系”或“依存联系”),是实体集之间的一种连接或关系。在这种连接联系中,被称为双亲实体集的每一个实例与子女实体集的0个、1个或多个实例相连接。子女实体集中的每个实例精确地同双亲实体集的1个实例相联系。

联系的分类:
1.标定型联系
a.标定型联系示例
2.非标定型联系
b.非标定型联系
3.分类联系
c.分类联系示例
4.非确定联系
d.非确定性联系

IDEF1X与第2章中介绍的IDEF0是一个系列的建模工具。
 IDEF0是功能建模方法。
 IDEF1X是数据建模方法。

5、概念设计实例 (商场经营管理系统)
建模目标:支持顾客管理、采购与库存管理、销售管理、
 人力资源管理、财务管理等多项业务活动。
定义实体集:顾客、会员卡、员工、收银台、销售单据、   
 供应商、商品、采购入库单据(对应教程P43页7个矩形框)
定义联系(难点):依据语义约束定义。
建立信息模型(详见教程P43-44图3.8,3.9)
确认实体属性
对信息模型进行集成与优化

考点2:数据库逻辑设计 (待完善)

逻辑设计的依据:
信息模型和数据库概念设计说明书,也是数据库用户确认数据需求的依据。
逻辑设计的任务:
  将概念模型(如ER图)转化为DBMS支持的数据模型(如关系模型),并对其进行优化。

逻辑设计的依据和阶段目标:
数据库逻辑设计的依据和阶段目标
补充相关概念
关系模型
  有三种主要的数据模型:层次模型、网状模型、关系模型。其中关系模型简单灵活,并有着坚实的理论基础,已成为当前最流行的数据模型。
  关系模型就是用二维表格结构来表示实体及实体之间联系的模型。
  关系的描述称为关系模式(Relation Schema)。关系模式由五部分组成,即它是一个五元组:R(U, D, DOM, F)
  R:关系名 U:组成该关系的属性名集合 D:属性组U中属性所来自的域 DOM:属性到域的映射 F:属性组U上的一组数据依赖
  由于D、DOM对模式设计的关系不大,这里把关系模式简化为一个三元组:
  R<U, F>,当且仅当U上的一个关系R满足F时,R称为关系模式R<U,F>的一个关系。
在这里插入图片描述

1、关系数据库设计的核心:关系模式的设计。
2、关系模式的设计目标:按照一定的原则从数量众多而又相互关联的数据中,构造出一组既能较好地反映现实世界,而又有良好的操作性能的关系模式。
新奥尔良法,数据库设计步骤:
需求分析—〉概念结构设计—〉逻辑结构设计—〉物理结构设计
E-R图 关系模式设计

数据依赖
定义: 
  设R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称“X函数确定Y”或“Y函数依赖于X”,记作X→Y。
数据依赖
  关系内部属性与属性之间的一种约束关系
  是现实世界属性间相互联系的抽象
  数据的内在性质
  语义的体现
完整性约束的表现形式
  限定属性的取值范围,如年龄<60
  定义属性间值的相互关联(主要体现于值的相等与否),这就是数据依赖

数据依赖的类型
函数依赖(Functional Dependency,FD)
  普遍存在于生活中,这种依赖关系类似于数学中的函数y=f(x),自变量x确定之后,相应的函数值y也就唯一地确定了。
  如关系:公民(身份证号,姓名,地址,工作单位)
  身份证号一确定,则其地址就唯一确定,因此地址函数依赖身份证号。
  而姓名一确定,不一定能确定地址。

多值依赖(Multivalued Dependency,MD)
  教师号可能多值依赖课程号,因为给定一个(课程号,参考书号)的组合,可能有对应多个教师号。这是因为多个老师可以使用相同或不同的参考书上同一门课。
  简单点讲,函数就是唯一确定的关系;多值依赖却不能唯一确定。

函数依赖的几种特例
1、平凡函数依赖与非平凡函数依赖
  如果X→Y,且Y X,则X→Y 称为非平凡函数依赖。
  若Y X ,则称X→Y为平凡函数依赖。
  由于Y X 时,一定有X→Y,平凡函数依赖必然成立,没有意义,所以一般所说的函数依赖总是指非平凡函数依赖。

例:Sno代表学生的学号,Cno代表课程号,Grade代表成绩。
  在关系 SC(Sno, Cno, Grade)中,
  非平凡函数依赖:(Sno, Cno)→Grade
  平凡函数依赖:(Sno, Cno)→Sno
(Sno, Cno)→Cno

2、完全函数依赖与部分函数依赖
  如果X→Y ,且对于任何X’ X,都有X’      
  Y,则称y完全依赖于x,记作X Y。
  如果X→Y,但Y不完全依赖于X,则称Y部分函数依赖于X,记作X Y。

例:选课(学号,课程号,课程名,成绩)
(学号,课程号) 成绩
(学号,课程号) 课程名 因为课程号→课程名
推论:如果X→Y ,且X是单个属性,则X Y

3、传递函数依赖
  如果X→Y , Y→Z,且Y  X, Y  X,则称Z传递函数依赖于X。记作X 传递→Z 。
例:学生(学号,姓名,系名,系主任)
显然系主任传递函数依赖于学号,
因为学号→系名,系名→系主任

思考题:已知关系模式R(学生学号,课程名,学生专业号,专业名,成绩),说出下面是什么关系?

(学生学号,课程名,学生专业号) 成绩
学生学号 专业名
(学生学号,专业名) 成绩
(学生学号,课程名) 成绩
(课程名,专业名,成绩) (课程名,成绩)

(函数依赖,部分函数依赖)
(函数依赖,传递函数依赖)
(不是函数依赖)
(完全函数依赖)
(平凡函数依赖)

候选码、主码、外码
  我们已经知道,如果某属性组的值能唯一确定整个元组的值,则称该属性组为候选码或侯选关键字。
  例如:(学号,姓名,性别,年龄)中,学号是关键字,(学号,姓名)不是关键字,性别不是关键字。
  候选码如果有多个,可以选其中的一个作为主码(Primary Key) 。

属性或属性组X不是关系模式R的码(既不是主码也不是候选码),但X是另一个关系模式的码,则称X是R的外部码,也称外码( Foreign key ) 。
  例如:在SC(Sno,Cno,Grade)中,Sno不是码,但Sno是关系模式S(Sno,Sdept,Sage)的码,则Sno是关系模式SC的外部码。

数据规范化
  关系数据库的设计主要是关系模式设计。关系模式设计的好坏直接影响到数据库设计的成败。将关系模式规范化,是设计较好的关系模式的惟一途径。
  关系模式的规范化主要是由关系范式来完成的。
  关系模式的规范化:把一个低一级的关系模式分解为高一级关系模式的过程。
  关系数据库的规范化理论是数据库逻辑设计的工具。
  目的:尽量消除插入、删除异常,修改复杂,数据冗余的问题。

范式
  范式:关系模式满足的约束条件称为范式。根据满足规范化的程度不同,范式由低到高分为1NF,2NF,3NF,BCNF,4NF,5NF。
  1NF:如果关系模式R,其所有属性都是不可再分的基本数据项,则称R属于第一范式,R∈1NF。
  2NF:如关系模式R∈1NF,且每个非主属性完全函数依赖于主码,则称R属于第二范式,R∈2NF。
  例:判断R (学号,姓名,年龄,课程名称,成绩,学分)是否属于第二范式。

主码:(学号,课程名称)
  非主属性:姓名,年龄,成绩,学分
存在如下决定关系:  (学号, 课程名称)→(姓名,年龄,成绩,学分)  但(课程名称)→(学分)
  (学号)→(姓名, 年龄)
  3NF:如果关系模式R为2NF,并且R中的每个非主属性不传递依赖于R的主码,则称关系R是属于第3范式的,R∈3NF。
  例:判断R(学号,姓名, 年龄,所在学院,学院地点,学院电话)是否属于第三范式。
主码:(学号)
  非主属性:姓名,年龄,所在学院 ,学院地点,学院电话
  存在非关键字段“学院地点”、“学院电话”对关键字段“学号”的传递函数依赖

考点3:数据库物理设计
1.物理设计概述
通过数据库概念设计和逻辑设计已得到规范化的关系模式。数据库物理设计的目的是将数据的逻辑描述转换为实现技术规范,其目标是设计数据存储方案,以便提供足够好的性能并确保数据库数据的完整性、安全性和可恢复性。

在这个阶段,将根据数据库中存储的数据量、用户对数据库的使用要求和使用方式,选择数据存储方案以加快数据检索速度。

在物理设计时需要了解不同文件组织方式、索引技术及其使用方案。

2.数据库的物理结构

数据库的应用数据是以文件形式存储在外设存储介质(如磁盘)上的,文件在逻辑上被组成记录的序列 -每个DB文件可以看作是逻辑记录的集合。

物理文件可以看作是由存放文件记录的一系列磁盘块组成的,文件的逻辑记录与磁盘间的映射关系是由操作系统或DBMS来管理的。

从数据库物理结构角度需要解决的问题:
文件的组织
文件的结构
文件的存取
索引技术

3.索引
(1)索引技术
索引技术是一种快速数据访问技术,它将一个文件的每个记录在某个或某些域上的取值与该记录的物理地址直接联系起来,提供一种根据记录域的取值快速访问文件记录的机制,索引技术的关键是建立记录域取值到记录的物理地址间的映射关系(这种映射关系称为索引)。
(2)索引技术分类
2.1有序索引(索引文件机制)
  索引文件机制,利用索引文件(索引记录组成)实现记录域(查找码,排序域)取值到记录物理地址间的映射关系。
  数据文件(索引文件或主文件)和索引文件(索引记录或索引项的集合)是有序索引技术中的两个主体,数据文件常采用顺序文件结构。

有序索引作为基于索引文件的索引技术,需要考虑的两个关键问题是:
1.如何组织索引文件中的索引记录;
2.如何从索引文件出发,访问数据文件中的数据记录;

索引文件建立文件如下:
1.首先选定数据文件中的某个或某些记录域作为查找码
2.然后在建立起数据记录在查找码上的取值与该记录的物理地址间的映射关系,组成索引项
3.索引文件根据某个特定的查找值的升序和降序存储索引记录,并且也组织为顺序文件。

索引建立在查找码上,对一个数据文件需要从几个方面去查询文件记录,可以定义多个查找码,针对每个查找码建立相应的索引文件 --一个数据文件可以有多个查找码和多个索引文件。
索引
(1)聚集索引(索引项与数据记录排列顺序一致)和非聚集索引(索引项与数据记录排列顺序不一致)。一个数据文件只可建立一个聚集索引,但可建立多个非聚集索引。
(2)稠密索引(数据文件中每个查找码都对应索引记录)和稀疏索引(部分查找码的值对应索引记录)。
(3)主索引(主码属性集上建立的索引)与辅索引(非主属性上建立的索引)。
(4)唯一索引(索引列不包含重复值)
(5)单层索引(线性索引,每个索引项顺序排列直接指向数据文件中的数据记录)和多层索引(大数据量文件中的采用多层树型(B,B+树)索引快速定位)。

2.2散列索引(哈希索引机制)
  哈希(Hash)索引机制,利用散列函数实现记录域取值到记录物理地址间的直接映射关系。

3、数据库的物理设计内容
  数据库物理结构设计是在具体的硬件环境、操作系统和DBMS约束下,根据数据库的逻辑设计结果设计合适的数据库物理结构。 目标是得到存储空间占用少,数据访问效率高和维护代价低的数据库物理模式。

数据库物理设计主要包括5个环节。
(1)数据库逻辑模式描述
数据库逻辑设计产生了数据库的逻辑结构,其中有数据库的关系模式、关系模式上的完整性约束和面向具体应用的业务规则。这些内容都是独立于DBAS所采用的具体目标DBMS平台的。

数据库物理设计需要根据数据库逻辑结构信息设计目标DBMS可支持的关系表(这里称为基本表)的模式信息,这些模式信息代表了所要开发的具体目标数据库的结构。
  
逻辑模式描述主要设计内容:
面向目标数据库描述基本表和视图
采用目标DBMS所支持的建表语法,描述基本表及满足应用要求的完整性约束。
设计基本表业务规则
利用目标DBMS提供的完整性控制机制设计基本表应遵守的面向应用的完整性约束。

SQL Server 采用T-SQL语言。
  为基本表选择合适的文件结构(堆文件、顺序文件、聚集文件、索引文件和散列文件)。
(2)文件组织与存取设计
  基本原则
  根据应用情况将易变部分与稳定部分、存取频率较高部分与存取频率较低部分分开存放,以提高系统性能。
  
分析理解数据库事务访问特性:
使用事务-基本表交叉引用矩阵
估计各事务执行频率
汇总每张基本表各事务操作频率信息

可以考虑将表和索引分别放在不同的磁盘上。在查询时,由于两个磁盘驱动器分别在工作,因而可以保证物理读写速度比较快。

数据库文件结构
基本表可以在一些属性上建立索引

(3)数据分布设计
不同类型数据的物理分布
  将应用数据(基本表)、索引、日志、数据库备份数据等合理安排在不同介质中。
在这里插入图片描述

应用数据的划分与分布
 根据数据的使用特征划分(频繁使用分区和非频繁使用分区)
 根据时间、地点划分(时间或地点相同的属于同一分区)
 分布式数据库系统(DDBS)中的数据划分(水平划分或垂直划分)
 派生属性数据分布(增加派生列或不定义派生属性)
 关系模式的去规范化(降低规范化提高查询效率)
在这里插入图片描述

将基本表划分为多张具有相同属性、结构完全相同的子表,子表包含的元组是基本表中元组的子集。
  例如,对商品按照商品的生产年份进行划分就属于水平划分。

垂直划分
  将基本表划分为多张子表,每张子表包含的属性是原基本表的子集。
  例如,商品表(商品编号、品名、单价、库存量、销售单价、备注)
  可垂直划分为两张子表:
  商品表(商品编号、品名、销售单价)
  商品表(商品编号、单价、库存量、备注)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(4)确定系统配置
DBMS产品一般都提供了一些存储分配参数
  同时使用数据库的用户数
  同时打开的数据库对象数
  使用的缓冲区长度、个数
  时间片大小
  数据库的大小
  装填因子
  锁的数目……

需要根据应用环境确定这些参数值
  系统都为这些变量赋予了合理的缺省值。
  但不一定适合每一种应用环境。
  根据具体情况确定这些参数值以使系统性能最优。

(5)物理模式评估
  对数据库物理设计结果从存取时间、存储空间、维护代价等方面进行评估,重点是时间和空间效率。
  如果评价结果满足原设计要求则可进入到物理实施阶段,否则,就需要重新设计或修改物理结构,有时甚至要返回逻辑设计阶段修改数据模型。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_47288291/article/details/123519370