软考(中级-软件设计师)数据库篇(1101)
第6章 数据库系统基础知识
一、基本概念
1、数据库
数据库(Database ,DB)是指长期存储在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和扩展性,并可为各种用户共享。
2、数据库管理系统
数据库管理系统(Database Management System,DBMS)是数据库系统的核心软件,要在操作系统的支持下工作,解决如何科学地组织和存储数据、如何高效地获取和维护数据的系统软件问题,其主要功能包括数据定义功能、数据操纵功能、数据库的运行管理、数据组织、存储、管理和数据库的建立与维护。
1.1 DBMS的特征与分类
1、DBMS的特征
- 数据结构化且统一管理
- 有较高的数据独立性
- 提供数据控制功能
2、DBMS的分类
- 关心数据库系统:是支持关系模型的数据系统。
- 面向对象的数据库系统:是支持以对象形式对数据建模的数据库系统。
- 对象关系数据库系统:在传统的关系数据模型基础上,提供元组、数组、集合等更丰富的数据类型以及处理新的数据类型操作能力,这样形成的数据模型称为对象关系数据模型,基于对象关系数据模型的DBS称为对象关系数据系统。
二、数据库三级模式两级映像
数据库系统采用三级模式结构,这是数据库管理系统内部的系统结构。
- 外模式:也称用户模式或子模式,是用户与数据库系统的接口是用户用到的那部分数据的描述,由若干个外部记录类型组成。描述外模式的数据定义语言称为外模式DDL。
- 概念模式:也称模式,是数据库中全体数据的逻辑结构和特征的描述,它由若干个概念记录类型组成,只涉及行的描述,不涉及具体的值。概念模式的一个具体值称为模式的一个实例,同一个模式可以由很多实例、
- 内模式:也称存储模式,是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式,定义所有内部记录类型、索引和文件的组织方式,以及数据控制方面的细节。描述内模式的数据定义语言称为内模式DDL。
- 外模式/模式映像:该映像存在于外部级和概念级之间,实现了外模式到概念模式之间的相互转换。
- 模式/内模式映像:该映像存在于概念级和内部级之间,实现了概念模式之间的相互转换。
- DBMS的两级映像功能保证了数据的独立性。
三、数据库的分析与设计过程
四、数据模型
模型就是对现实世界特征的模拟和抽象。
数学模型是对现实世界数据特征的抽象。
数据模型是用来描述数据的一组概念和定义。
数据模型的三要素:
- 数据机构:是所研究的对象类型的集合,是对系统静态特性的描述。
- 数据操作:是对数据库中各种搞对象的实例(值)允许执行的操作的集合,包括操作及操作规则。数据操作时对系统动态特性的描述。
- 数据的约束条件:是一组完整性规则的集合。对于具体的应用数据必须遵循特定的语义约束条件,以保证数据的正确、有效、相容。
4.1 E-R模型
实体-联系模型简称E-R模型,所采用的3个主要概念是实体、联系和属性。
4.2 关系模型
关系数据库系统采用关系模型作为数据的组织方式,在关系模型中用表格结构表达实体集以及实体集之间的联系,其最大特色是描述的一致性。
关系模型是由若干个关系模型组成的集合。一个关系模式相当于一个记录型,对应程序设计语言中类型定义的概念。
关系模型的优点是概念单一,存储路径对用户是透明的,所以具有好的数据独立性和安全保密性,简化了程序的开发和数据库建立工作。
教学数据库的4个关系模式如下:
关系模式中有下划线的属性是主码属性
- 一个实体型转换为一个关系模式
- 1:1联系
- 1:n联系
- m:n联系
- 三个以上实体间的一个多元联系
在数据库逻辑结构的设计中,将E-R模型转换为关系模型应遵循相关原则。对于三个不同实体集和它们之间的多对多联系
m:n:p
,最少可转换为( ) 个关系模式。
>A. 2 B.3 C. 4 D.5
C
五、关系代数
教学数据库的4个关系模式如下:
候选码(键):若关系中的某一属性或属性组的值能唯一标识一个元组,则称该属性或属性组为候选码
主码(键):若一个关系有多个候选码,则选定其中一个主码。
主属性:包含在任何候选码中的诸属性称为主属性。不包含在任何候选码中的属性称为非主属性。
外码(键):如果公共属性在一个关系中是主属性,那么这个公共属性被称为另一个关系的外码。由此可见,外码表示了两个关系之间的相关联系。
全码:若关系模式的所有属性组都是这个关系模式的候选码,则称为全码。
S(Sno,Sname,SD,Sage,Sex)
:学生 S 关系模式,属性为学号、姓名、系、年龄和性别
T (Tno,Tname,Age,Sex)
:教师T关系模式,属性为教师号、姓名、年龄和性别
C (Cno,Cname,Pcno)
:课程C关系模式,属性为课程号、课程名和先修课程号
SC (Sno,Cno,Grade):
学生选课SC 关系模式,属性为学号、课程号和成绩
5.1 关系的三种类型
下面介绍关系的三种类型:
- 基本关系(又称基本表、基表):是实际存在的表,它是实际存储数据的逻辑表示。
- 查询表:查询结构对应的表。
- 视图表:是由基本表或其他视图表导出来的表。由于本身不独立存储在数据库中,数据库中只存放它的定义,所以称为虚表。
数据库系哦推给你通常采用三级模式结构:外模式、模式和内模式。这三级模式分别对应数据库的()。
A. 基本表、存储文件和视图 B.视图、基本表和存储文件
C.基本表、视图和存储文件 D.视图、存储文件和基本表
B
5.2 七种基本运算
连接(Join,也坐联接)分为
θ
\theta
θ连接、等值连接、自然连接3种,连接运算是从两个关系的笛卡尔积中选取满足条件的元组。
-
θ \theta θ连接:从关系R和S的笛卡尔积中选取属性间满足一定条件的元组,记作
-
等值连接:当 θ \theta θ为“=”时称为等值连接,记作
-
自然连接:是一种比较特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且结果集中把重复的属性列去掉。
给定关系R(A,B,C,D)和关系S(A,C,E,F),对其进行自然连接运算, R ⋈ S R\bowtie S R⋈S后属性列位( 1),与 σ R . B > S . E ( R ⋈ S ) \sigma R.B>S.E(R \bowtie S) σR.B>S.E(R⋈S) 等价的关系代数表达式为(2)
(1)A. 4 B. 5 C. 6 D. 8
(2)
KaTeX parse error: Got function '\hskip' with no arguments as superscript at position 1: \̲h̲s̲k̲i̲p̲1em\relax
CB
下列查询B=“大数据”且F=“开发平台”,结果集属性列为A,B,C,D,F的关系代数表达式中查询效率最高的是( )
六、数据库完整性约束
完整性规则提供了一种手段来保证当授权用户对数据库做修改时不会破坏数据的一致性,因此,完整性规则是为了防止对数据的以外破坏。
关系模型的完整性规则是对关系的某种约束条件。完整新共分为3类:
- 实体完整性:规定基本关系R的主属性A不能取空值.
- 参照完整性:若F是基本关系R的外码,它与基本关系S的主码相对应(基本关系R和S不一定是不同的关系,则对于R中的每个元组在F上的值必须为:或者取空值(F 的每个属性值均为空值),或者等于S中某个元组的主码值。
- 用户定义完整性:就是针对某一具体的关系数据库的约束条件,反应某一具体应用所涉及的数据必须满足的语义要求,由应用的环境决定。
S(Sno,Sname,SD,Sage,Sex):学生S关系模式,属性为学号、姓名、系、年龄和性别
T(Tno,Tname,Age,Sex):教师T关系模式,属性为教师号、姓名、年龄和性别
关系代数表达式查询优化的原则如下:
- 最早执行选取运算,对于有选择运算的表达式,应优化尽可能先执行选择运算的等价表达式,以得到较小的中间结果,减少运算量以及从外存读块的次数。
- 合并乘积与其后的选择运算为连接运算。
- 将投影运算与其后的其他运算同时进行,以避免重复扫描关系。
- 将投影运算和其前后的二目运算结合起来,因为没有必要为去掉某些字段再扫描一遍关系。
- 在执行连接前对关系适当地预处理,就能快速地找到要连接的元组。
- 存储公共子表达式,对于有公共子表达式的结果应存于外存(中间结果),这样,当从外存读出它的时间比计算机的时间少时,就可以节约操作时间。
七、关系型数据库SQL
简介
SQL
是在关系数据库中最皮鞭使用的语言,它不仅包含数据查询功能,还包括插入、删除、更新和数据定义功能。
SQL
具有综合统一、高度非过程化、面向集合的操作方式,两个使用方式,语言简洁且易学易用等特点。
SQL
支持关系数据库的三级模式结构:视图对应外模式、基本表对应模式、存储文件对应模式。
1、SQL
数据定义:
- 创建表
- 修改和删除表
- 创建和删除索引
- 创建和删除视图
2、SQL
数据查询
- select查询
- 简单查询
- 连接查询
- 子查询和聚集函数
3、SQL
数据更新
- 插入
- 删除
- 修改
八、关系数据库的规范化
8.1 函数依赖
- 函数依赖:设R(U)是属性集U上的关系模式,X和Y是U的子集。若对R的任何一个可能的关系r,r中不可能存在的两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数决定Y或Y函数依赖于X,记作X->Y.
- 非平凡的函数依赖:如果X->Y,但Y$\not\subset $X,则称X→Y是非平凡的函数依赖。
- 平凡的函数依赖:如果X→Y,但Y$\subset $X,则称X→Y是平凡的函数依赖。
- 完全函数依赖:在R(U)中,如果X→Y,并且对于X的任何一个真子集X’,都有X’不能决定Y,则称Y对X完全函数依赖,记作 X — > f Y X{—>}^fY X—>fY。
- 部分函数依赖:如果X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作X>Y。部分函数依赖也称局部函数依赖。
- 传递依赖:在R(U,F)中,如果X→Y,
Y
⊊
X
Y \subsetneq X
Y⊊X,Y不能函数决定X,Y→Z,则称Z对X传递依赖。
8.2 求候选码(键)
第一步:将关系模式的函数依赖用“有向图”的方式表示。
第二步:找入度为0的属性,并以该属性集合为起点,尝试遍历有向图,若能正常遍历图中的所有结点,则该属性即为关系模式的候选键。
第三步:若入度为0的属性集不能遍历图中所有结点,则需要尝试性的将一些中间节点(既有入度,也有出度的结点)并入入度为0的属性集中,直至该结合能遍历所有结点,集合为候选键。
若给定的关系模式为R,U={A,B,C},F={AB->C,C->B},则关系R( )。
A.有2个候选关键字AC和BC,并且有3个主属性
B.有2个候选关键字AC和AB,并且有3个主属性
C.只有一个候选关键字AC,并且有1个非主属性和2个主属性
D.只有一个候选关键字AB,并且有1个非主属性和2个主属性
解:关系模式R的函数依赖关系表达式为:
B
8.3 规范化理论(非规范化存在的问题)
非规范化的关系模式,可能存在的问题包括:
数据冗余、更新异常、插入异常、删除异常
SNO | SName | DNO | DNAME | LOCATION |
---|---|---|---|---|
S01 | 张三 | D01 | 计算机系 | 1号楼 |
S02 | 李四 | D01 | 计算机系 | 1号楼 |
S03 | 王五 | D01 | 计算机系 | 1号楼 |
S04 | 赵六 | D02 | 信息系 | 2号楼 |
…… | …… | …… | …… | …… |
8.4 规范化理论(概念)
关系数据库设计的方法之一就是满足适当范式的模式。通常可以通过判断分解后的模式达到几范式来评价规范化的程度。
范式有1NF、2NF、3NF、BCNF(巴斯克斯范式)、4NF和5NF,其中1NF级别最低。这几种范式之间有 5 N F ⊂ 4 N F ⊂ B C N F ⊂ 3 N F ⊂ 2 N F ⊂ 1 N F 5NF\subset 4NF \subset BCNF \subset 3NF \subset 2NF \subset 1NF 5NF⊂4NF⊂BCNF⊂3NF⊂2NF⊂1NF成立。
通过分解,可以将一个低一级范式的关系模式转换成若干个高一级范式的关系模式,这种过程叫做规范化。
8.5 规范化理论(范式)
1、1NF(第一范式)
若关系模式R的每一个分量都是不可再分的数据项,则关系模式R属于第一范式(1NF)。
【高级职称人数】可再分
2、 2NF(第二范式)
若关系模式$R\in 1NF , 且每个非主属性完全依赖于主键,则关系模式 ,且每个非主属性完全依赖于主键,则关系模式 ,且每个非主属性完全依赖于主键,则关系模式R\in2NF$.换句话说,当1NF消除了非主属性对码的部分函数依赖,则称为2NF。
学生选课SC关系模式:属性为学号(Sno)、课程号(Cno)、成绩(Grade)和学分(Credit)
3、3NF(第三范式)
若关系模式R(U,F)中不存在这样的码X、属性组Y及非主属性Z(Z不属于Y),使得
成立,则称关系模式R∈3NF。
换句话说,当2NF消除了非主属性对码的传递函数依赖,则称为3NF。3NF的模式必是2NF的模式。产生冗余和异常的两个重要原因是部分依赖和传递依赖
学生S关系模式,属性为学号、姓名、系、年龄和性别
Sno | Sname | SD | Age | Sex |
---|---|---|---|---|
01001 | 贾皓听 | IS | 20 | 男 |
01002 | 姚勇 | IS | 20 | 男 |
01003 | 李晓红 | CS | 19 | 女 |
4、BCNF(巴克斯范式)
【定义7-7】若关系模式REINF,若X→Y,且Y属于X,X必含有码,则关系模式R ∈ \in ∈EBCNF。
换句话说,当3NF消除了主属性对码的部分和传递函数依赖,则称为BCNF。
一个满足BCNF的关系模式应具有以下性质。
- 所有非属性对每一个码都是完全函数依赖。
- 所有非主属性对每一个不包含它的码也是完全函数依赖。
- 没有任何属性完全函数依赖于非码的任何一组属性。
设有关系模式
R(A1,A2,A3,A4,A5,A6)
,其中:函数依赖集F={A1→A2,A1A3→A4,A5A6→A1,A2A5→A6,A3A5→A6}
,则_(55)_是关系模式R的一个主键,R规范化程度最高达
到(56)(55)
A.A1A4 B.A2A4 C. A3A5 D.A4A5
(56)A. INF B.2NF C. 3NF D.BCNF
CB
8.6 关系模式分解
对一个给定的模式进行分解,使得分解后的模式是否与原来的模式等价有3种情况:
- 分解具有无损连接性;
- 分解有要保持函数依赖。
- 分解既要有无损连接性,又要保持函数依赖。
例如:有关系模式R(A,B,C),并且存在函数依赖A->B,B->C
分解为 R 1 ( A , B ) 和 R 2 ( B , C ) R_1(A,B)和R_2(B,C) R1(A,B)和R2(B,C)就是保持了函数依赖
若是分解为 R 3 ( A , C ) R_3(A,C) R3(A,C)就是破坏函数依赖
无损连接分解:指将一个关系模式分解成若干个关系模式后,通过自然连接和投影等运算仍然能还原到原来的关系模式。
有关系模式:成绩(学号,姓名,课程号,课程名,分数)其中函数依赖:学号->姓名,课程号->课程名,(学号,课程号)—>分数
若将其分解为:
成绩(学号,课程号,分数)
学生(学号,姓名)
课程(课程号,课程名)
由于有函数依赖:学号→姓名
所以:成绩(学号,课程号,分数,姓名)
由于有函数依赖:课程号一课程名
所以有:成绩(学号,课程号,分数,姓名,课程名)
九、数据库的控制功能
9.1 事务管理
事务是一个操作序列,是数据库环境中不可分割的逻辑工作单位。
事务的4个特性是:原子性、一致性、隔离性、持久性:
- 原子性:事务的所有操作在数据库中要么全做,要么全都不做。
- 一致性:一个事务的独立执行的结果将保持数据的一致性,即数据不会因为事务的执行而遭受破坏。
- 隔离性:一个事务的执行不能被其他事务干扰。
- 持久性:一个事务一旦提交,它对数据库中数据的改变必须是永久的,即便系统出现故障时也是如此。
9.2 并发控制
并发操作时指在多用户共享的系统中,许多用户可能同时对同一数据进行操作。
并发操作带来问题的原因是事务的并发操作破坏了事务的隔离性。
DBMS的并发控制子系统负责协调并发事务的执行,保证了数据库的完整性不受破坏,避免用户得到不正确的数据。
并发控制的主要技术是封锁。
- 排他锁(X锁):又称写锁,若事务T对数据对象A加上X锁,则只允许T读取和修改A,其他事务都不能再对A加任何类型的锁,直到T释放A上的锁。
- 共享锁(S锁):又称读锁,若事务T对数据对象加上S锁,则只允许T读取A,但不能修改A,其他事务只能再对A加S锁,直到T释放A上的S锁。
若事务T1对数据D1加了共享锁,事务T2、T3分别对数据D2、D3加了排他锁,则事务T1对数据(1);事务T2对数据(2)
(1)
A.D2、D3
加排他锁都成功
B.D2、D3
加共享锁都成功
C.D2加共享锁成功,D3加排他锁失败
D.D2、D3加排他锁和共享锁都失败
(2)
A.D1、D3加共性锁都失败
B.D1、D3加共享锁都成功
C.D1加共享锁成功,D3加排他锁失败
D.D1加排他锁成功,D3加共享锁失败
DC
9.3 备份和恢复
人为错误、硬盘损坏、计算机病毒、断电或是天灾人祸等都有可能造成数据的丢失,所以应该强调备份的重要性。
(1)静态转储和动态转储。静态转储是指在转储期间不允许对数据库进行任何存取、修改操作;动态转储是指在转储期间允许对数据库进行存取、修改操作,因此,转储和用户事务可并发执行。
(2)海量转储和增量转储。海量转储是指每次转储全部数据;增量转储是指每次只转储上次转储后更新过的数据。
(3)日志文件。在事务处理的过程中,DBMS把事务开始、事务结束以及对数据库的插入、删除和修改的每一次操作写入日志文件。一旦发生故障,DBMS的恢复子系统便利用日志文件撤销事务对数据库的改变,回退到事务的初始状态。因此,DBMS利用日志文件来进行事务故障恢复和系统故障恢复,并可协助后备副本进行介质故障恢复。
数据恢复有3个步骤:
- 反向扫描日志文件,查找该事务的更新操作。
- 对事务的更新操作执行逆操作。
- 继续反向扫描日志文件,查找该事务的其他更新操作,并做同样的处理,直到回到事务的开始标志。
十、数据仓库与数据挖掘基础
数据仓库(DataWarehouse),可简写为DW或DWH,数据仓库,是为了企业所有级别的决策制定计划过程,提供所有类型数据类型的战略集合。它出于分析性报告和决策支持的目的而创建。为需要业务智能的企业,为需要指导业务流程改进、监视时间,成本,质量以及控制等。数据仓库是依照分析需求、分析维度、分析指标进行设计的。
数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,它用于支持企业或组织的决策分析处理。是为了便于多维分析和多角度展现而将数据按特定的模式进行存储所建立起来的关系型数据库,它的数据基于OLTP源系统。
数据挖掘(DataMining)就是从大量的数据中,提取隐藏在其中的,事先不知道的但潜在有用的信息的过程。数据挖掘的目标是建立一个决策模型,根据过去的行动数据来预测未来的行为。
分类:
- 关联分析:挖掘出隐藏在数据间的相互关系。
- 序列模式分析:侧重点是分析数据监的前后关系(因果关系)
- 分类分析:为每一个记录赋予一个标记再按标记分类。
- 聚类分析:分类分析法的逆过程。
方法:
- 决策树
- 神经网络
- 遗传算法
- 关联规则挖掘算法
十一、大数据基本概念
大数据:一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流转、多样的数据类型和价值密度低四大特征。
大数据处理系统应该具有的重要特征:
- 高度可扩展性
- 高性能
- 高度容错
- 支持异构环境
- 支持异构环境
- 较短的分析延迟
- 易用且开放的接口
- 较低成本
- 向下兼容性
比较维度 | 传统数据 | 大数据数 |
---|---|---|
数据分析需求 | 现有数据的分析与检测 | PB级或以上 |
数据分析需求 | 现有数据的分析与检测 | 深度分析(关联分析、回归分析) |
硬件凭条 | 高端服务器 | 集群平台 |
数据库完结~~