数据库基础知识笔记(数据库技术基础知识)

数据库基础知识笔记(数据库技术基础知识)数据库基本概念 数据 Data 数据库 Database 数据库管理系统 DBMS 数据库系统 DBS 1 数据 Data 是数据库中存储的基本对象 是描述事物的符号记录 数据的种类 文本 图形 图像 音频 视频等 2 数据库 Database DB 数据库是统一管理的 长期储存在计算机内的 有组织的相关数据的集合 数据库的基本特征 数据按一定的数据模型组织

大家好,我是讯享网,很高兴认识大家。



数据库基本概念

  • 数据(Data)
  • 数据库(Database)
  • 数据库管理系统(DBMS)
  • 数据库系统(DBS)

1.数据(Data)
是数据库中存储的基本对象,是描述事物的符号记录。
数据的种类:




  • 文本、图形、图像、音频、视频等。

2.数据库(Database, DB)
数据库是统一管理的、长期储存在计算机内的,有组织的相关数据的集合。
数据库的基本特征:




  • 数据按一定的数据模型组织、描述和储存
  • 数据间联系密切、冗余度较小
  • 数据独立性较高
  • 易扩展
  • 可为各种用户共享

3.数据库管理系统(DBMS)
DBMS 是数据库系统的核心软件,是由一组相互关联的数据集合和一组用以访问这些数据的软件组成。它是一种解决如何科学地组织和储存数据如何高效地获取和维护数据的系统软件。
主要功能包括:




  • 数据定义功能(DDL)
  • 数据操纵功能(DML)
  • 数据库的运行管理
  • 数据库的建立与维护

4.数据库系统(Database System,DBS)
由数据库及其管理软件组成的系统。
数据库系统的构成:




  • 数据库
  • 硬件平台
  • 软件(应用程序)
  • 数据库管理员

数据模型
数据模型是数据特征的抽象,它从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表示与操作提
供一个抽象的框架。数据模型的三要素:




  • 数据结构:对象类型的集合,是对系统静态特性的描述。
  • 数据操作:对数据库中各种对象的实例(值)允许执行的操作集合,包括操作及操作规则。如检索、插入、删除和修改,操作规则有优先级等。
  • 数据的约束条件:一组完整性规则的集合。对具体的应用数据必须遵循特定的语义约束条件。

常见的基本数据模型:

  • 层次模型
  • 网状模型
  • 关系模型
  • 面向对象数据模型(第三代数据库系统)

数据库管理系统
DBMS 功能主要包括数据定义,数据库操作,数据库运行管理,数据组织、存储和管理,数据库的建立和维护。

(1)数据定义
DBMS 提供数据定义语言 (DDL),可以对数据库的结构进行描述,包括外模式、模式和内模式的定义;数据库的完整性定义;安全保密定义,如口令、级别和存取权限等。这些定义存储在数据字典中,是 DBMS运行的基本依据。

(2)数据库操作
DBMS 向用户提供数据操纵语言 (DML),实现对数据库中数据的基本操作,如检索、插入、修改和删除。

(3)数据库运行管理。
数据库在运行期间,多用户环境下的并发控制、安全性检查和存取控制、完整性检查和执行、运行日志的组织管理、事务管理和自动恢复等都是 DBMS 的重要组成部分。这些功能可以保证数据库系统的正常运行。

数据库三级模式
数据库系统可以分为:

  • 外模式(子模式、用户模式)
  • 模式(概念模式、逻辑模式)
  • 内模式(存储模式)

1.模式(概念模式、逻辑模式)

  • 数据库中全体数据的逻辑结构和特征的描述
  • 所有用户的公共数据视图,综合了所有用户的需求
    一个数据库只有一个模式

  • 2.外模式(子模式、用户模式)
  • 数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述
  • 数据库用户的数据视图,是与某一应用有关的数据的逻辑表示

外模式的地位:介于模式与应用之间

  • 模式与外模式的关系:一对多
    ✓ 外模式通常是模式的子集
    ✓ 一个数据库可以有多个外模式。反映了不同的用户的应用需求、看待数据的方式、对数据保密的要求




外模式的用途

  • 保证数据库安全性的一个有力措施
  • 每个用户只能看见和访问所对应的外模式中的数据

(3)内模式(存储模式)

  • 是数据物理结构和存储方式的描述
  • 是数据在数据库内部的表示方式
  • 一个数据库只有一个内模式

例:
采用三级模式结构的数据库系统中,如果对一个表创建聚簇索
引,那么改变的是数据库的( )。
A.外模式
B.模式
C.内模式
D.用户模式
















答案: C

三个级别
与三级模式相对应,数据库系统可以划分为三个抽象级:

  • 1.用户级数据库:最高层抽象,对应于外模式,是用户看到和使用的数据库,又称用户视图。一个数据库可有多个不同的用户视图。
  • 2.概念级数据库:对应于概念模式,是所有用户视图的最小并集,一个数据库应用系统只有一个DBA视图。
  • 3.物理级数据库:对应于内模式,是数据库的低层表示,它描述数据的实际存储组织,是最接近于物理存储的,又称为内部视图。

两级独立性

  • 1.物理独立性
    指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。当数据的物理存储改变了,应用程序不用改变。

  • 2.逻辑独立性
    指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,用户程序也可以不变。
    独立性是由DBMS的二级映像功能来保证的




关系数据库的基本概念
1.关系的基本术语

  • (1)属性(Atribute)
    描述一个事物常常取若干特征来表示。这些特征称为属性。

  • (2)域(Domain)
    每个属性的取值范围对应一个值的集合,称为该属性的域。所有的域都应是原子数据。

  • (3)目或度(Degree)
    指一个关系中属性的个数。

  • (4)候选码(Candidate Key)
    若关系中的某一属性或属性组的值能唯一的标识一个元组叫称该
    属性或属性组为候选码。




  • (5)主码(Primary Key)
    或称主键,若一个关系有多个候选码,则选定其中一个作为主码。

  • (6)主属性(PrimeAttribute)
    包含在任何候选码中的属性称为主属性。不包含在任何候选码中
    的属性称为非主属性。




  • (7)外码 (Foreign Key)
    如果关系中的一个属性是另外一个关系中的主码,则这个属性为
    外码也叫外键。




  • (8)全码(All-key)
    关系模型的所有属性组是这个关系模式的候选码,称为全码。

2.关系数据库模式
关系的描述称为关系模式,关系模式是一个五元组,形式化地表示为: R (U, D, DOM, F)
R 关系名
U 组成该关系的属性名集合
D 属性组U中属性所来自的域
DOM 属性向域的映象集合
F 属性间的数据依赖关系集合
通常简记为R(A1, A2, … , An)。 R为关系名, A1, A2…为属性名。



















3.完整性约束

  • (1)实体完整性
  • (2)参照完整性
  • (3)用户自定义完整性

(1)实体完整性(Entity integrity)
是指关系的主关键字不能重复也不能取”空值”。如主关键字是多个属性的组合,则所有主属性均不得取空值。

(2)参照完整性(Referential integrity)
是指建立关系之间联系的主键与外键引用的约束条件。就是不允许引用不存在的实体。

(3)用户定义完整性(user defined integrity)
则是根据应用环境的要求和实际的需要,对某一具体应用所涉及的数据提出约束性条件。

常用的关系操作 (这个会考选择题 一定要掌握 ☆☆☆☆☆)

  • 查询:选择、投影、连接、除、并、交、差
  • 数据更新:插入、删除、修改

查询的表达能力是其中最主要的部分

  • 传统的集合运算是二目运算,包括并、交、差、广义笛卡儿积
  • 专门的关系运算包括:选择、投影、连接、除4种运算。

1、 并

七、软考-系统架构设计师笔记-数据库设计基础知识_数据库
讯享网

七、软考-系统架构设计师笔记-数据库设计基础知识_数据库_02

2. 差

七、软考-系统架构设计师笔记-数据库设计基础知识_系统架构_03

七、软考-系统架构设计师笔记-数据库设计基础知识_元组_04

3. 交

七、软考-系统架构设计师笔记-数据库设计基础知识_系统架构_05

七、软考-系统架构设计师笔记-数据库设计基础知识_元组_06

4. 笛卡儿积
R: n目关系,k1个元组
S: m目关系,k2个元组
R×S
列:(n+m) 列元组的集合










  • 元组的前n列是关系R的一个元组
  • 后m列是关系S的一个元组
    行:k1×k2 行元组

七、软考-系统架构设计师笔记-数据库设计基础知识_笔记_07

七、软考-系统架构设计师笔记-数据库设计基础知识_元组_08

关系运算
关系数据库还有一些专门的运算,主要有投影、选择、连接、除法和外连接

七、软考-系统架构设计师笔记-数据库设计基础知识_元组_09

1. 投影

七、软考-系统架构设计师笔记-数据库设计基础知识_数据_10

七、软考-系统架构设计师笔记-数据库设计基础知识_笔记_11

七、软考-系统架构设计师笔记-数据库设计基础知识_元组_12

例:

七、软考-系统架构设计师笔记-数据库设计基础知识_笔记_13

七、软考-系统架构设计师笔记-数据库设计基础知识_系统架构_14

注意 其中A 可以是属性名称 也可以是属性列下标 且下标从1开始2. 选择

七、软考-系统架构设计师笔记-数据库设计基础知识_数据_15

七、软考-系统架构设计师笔记-数据库设计基础知识_数据_16

七、软考-系统架构设计师笔记-数据库设计基础知识_数据库_17

例:

七、软考-系统架构设计师笔记-数据库设计基础知识_系统架构_18

七、软考-系统架构设计师笔记-数据库设计基础知识_数据_19

3. 连接
连接分为θ连接、等值连接及自然连接 3 种。
连接运算是指从两个关系R和S的笛卡儿积中选取属性间满足一定条件的元组。




七、软考-系统架构设计师笔记-数据库设计基础知识_数据库_20

θ:比较运算符(1) θ连接

七、软考-系统架构设计师笔记-数据库设计基础知识_元组_21

例:

七、软考-系统架构设计师笔记-数据库设计基础知识_数据_22

七、软考-系统架构设计师笔记-数据库设计基础知识_数据_23

(2) 等值连接(equijoin)

七、软考-系统架构设计师笔记-数据库设计基础知识_笔记_24

例:

七、软考-系统架构设计师笔记-数据库设计基础知识_笔记_25

七、软考-系统架构设计师笔记-数据库设计基础知识_系统架构_26

(3) 自然连接(Natural join)
自然连接是一种特殊的等值连接

  • 两个关系中进行比较的分量必须是相同的属性组
  • 在结果中把重复的属性列去掉
    自然连接的含义
    R和S具有相同的属性组B

    例:
    关系R和关系S 如下所示,自然连接的结果如下:













例:

七、软考-系统架构设计师笔记-数据库设计基础知识_笔记_27

七、软考-系统架构设计师笔记-数据库设计基础知识_数据库_28

答案: B

七、软考-系统架构设计师笔记-数据库设计基础知识_数据库_29

七、软考-系统架构设计师笔记-数据库设计基础知识_笔记_27

七、软考-系统架构设计师笔记-数据库设计基础知识_笔记_31

七、软考-系统架构设计师笔记-数据库设计基础知识_系统架构_32

七、软考-系统架构设计师笔记-数据库设计基础知识_数据_33

C选项和A选项类似的错误 并且比较的是字符串 ‘7’ 错误

D选项和B选项类似 但是比较的是字符串 ‘7’ 错误

4. 外连接(OUTER JOIN)

七、软考-系统架构设计师笔记-数据库设计基础知识_系统架构_34

5. 左外连接

七、软考-系统架构设计师笔记-数据库设计基础知识_元组_35

6. 右外连接

七、软考-系统架构设计师笔记-数据库设计基础知识_笔记_36

7. 除法
给定关系R (X,Y) 和S (Y,Z),其中X,Y,Z为属性组。
R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。




七、软考-系统架构设计师笔记-数据库设计基础知识_数据库_37

例:
设关系R、S分别为下图的(a)和(b),R÷S的结果为下图 (c)
在关系R中,A可以取四个值{a1,a2,a3,a4}




  • a1的象集为 {(b1,c2),(b2,c3),(b2,c1)}
  • a2的象集为 {(b3,c7),(b2,c3)}
  • a3的象集为 {(b4,c6)}
  • a4的象集为 {(b6,c6)}

七、软考-系统架构设计师笔记-数据库设计基础知识_笔记_38

函数依赖
定义:
设R(U) 是属性集 U上的关系模式,X、Y是U的子集。若对R(U) 的任何一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数决定Y,或Y函数依赖于 X,记作:X→Y。




如,学号→姓名 学号决定姓名 或姓名依赖于学号。

函数依赖中还可细分为多种函数依赖

  • 部分函数依赖
  • 完全函数依赖
  • 传递函数依赖

1.部分函数依赖
设R(U)是属性集U上的关系,X、Y是U的子集,X’ 是X的真子集,若X→Y 且 X’→Y,则称Y部分依赖X,记作X→Y。

2.完全函数依赖
设R(U)是属性集U上的关系,X、Y是U的子集,X’是X的真子集。
若对于R(U)的任何一个可能的关系,有X→Y且X’ !→Y,则称Y完全函数依赖于X,记作X→Y。
所谓完全依赖是指在依赖关系的决定项(即依赖关系的左项)中没有多余属性,有多余属性就是部分依赖。







3.传递函数依赖
在关系模式R(U)中,设X,Y,Z是U的不同的属性子集,如果X确定Y、Y确定Z,且有X不包含Y,Y不确定X,(X∪Y)∩Z=空集合,则称Z传递函数依赖于X。

传递函数依赖会导致数据冗余和异常。传递函数依赖的Y和Z子集往往同属于某一个事物,因此可将其合并放到一个表中。

例:学号确定宿舍、宿舍确定费用,且有 学号不包含宿舍,宿舍不确定学号,符合传递函数依赖条件。

规范化理论
设有一个关系模式R(SNAME , CNAME , TNAME , TADDRESS),其属性分别表示学生姓名、课程名、任课教师姓名和任课教师地址。

这个模式存在下列存储异常的问题。

  • (1)数据冗余
  • (2)修改异常
  • (3)插入异常
  • (4)删除异常

把R分解成下列三个关系模式:R1(SNAME, CNAME)和R2(CNAME,TNAME) , R3(TNAME, TADDRESS),则能消除上述的存储异常现象。

模式设计强调“每个联系单独表达”是一条重要的设计原则

范式

1. 第一范式(1NF)
如果关系模式R的每个关系r的属性值都是不可分的原子值,那么称R是第一范式的模式,r是规范化的关系。

说明:在任何一个关系数据库中,第一范式是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。

例如: | 学生姓名 | 课程名 |

2. 第二范式(2NF)
若关系模式R是1NF,且每个非主属性完全函数依赖于候选键,那么称R是2NF模式。

3. 第三范式(3NF)
如果关系模式R是1NF,且每个非主属性都不传递依赖于R的候选码,则称R是3NF。

4.BC范式(BCNF)
若关系模式R是1NF,且每个属性都不传递依赖于R的候选键,那么称R是BCNF模式。
相对于第三范式,BC范式的要求更加严格。第三范式只是要求R为第二范式且非主属性不传递依赖于R的候选键,而BC范式则是对R的每个属性都做要求。
在关系模式STJ(S,T,J)中,S表示学生,T表示教师,J表示课程。
一个教师只教一门课。每门课由一名教师教,某一学生选定某门课,就确定了一个固定的教师。某个学生选修某个教师的课就确定了所选课的名称 : (S,J)→T,(S,T)→J,T→J










例:
给定关系模式R(U,F),其中:属性集 U={A1, A2, A3, A4, A5,A6}, 函数依赖集F={A1→A2, A1→A3, A3→A4, A1A5→A6}。关系模式 R 的候选码为( ),由于R存在非主属性对码的部分函数依赖,所以R属于( )
A. A1A3 B.A1A4 C.A1 A5 D.A1A6
A.1NF B.2NF C.3NF D.BCNF







答案:C 、A

B选项 A1A4 、 A1→A2 、A1A2A4、 A1→A3、 A1A2A3A4 只能推到这了 排除B选项

C选项 A1 A5 、 A1→A2 、 A1 A2A5, A1→A3, A1 A2A3A5 , A3→A4, A1A2A3A4A5 , A1A5→A6 , A1A2A3A4A5A6 能推出全部的属性集 U={A1, A2, A3, A4, A5,A6} 所以C正确

R存在非主属性对码的部分函数依赖 由于是部分函数依赖 所以 R属于 1NF

数据库设计的基本步骤(阶段)

  • 需求分析
  • 概念结构设计
  • 逻辑结构设计
  • 物理结构设计
  • 数据库实施
  • 数据库运行和维护

需求分析
数据需求分析是在项目确定之后,用户和设计人员对数据库应用系统所要涉及的内容(数据)和功能(行为)的整理和描述,是以用户的角度来认识系统。这一过程是后续开发的基础,因为逻辑设计、物理设计以及应用程序的设计都会以此为依据,是最困难、最耗费时间的一步。

概念结构设计
概念结构设计的目标是产生反映系统信息需求的数据库概念结构,即概念模式。概念结构是独立于支持数据库的 DBMS 和使用的硬件环境的。设计人员从用户的角度看待数据以及数据处理的要求和约束,产生一个反映用户观点的概念模式,然后再把概念模式转换为逻辑模式。
我们采用E-R模型将现实世界的信息加以抽象,由实体属性,以及实体之间的联系(E-R 图)来描述。




E-R模型 (ER图)

  • 实体:用矩形框表示,框内标注实体名称。
  • 属性:用椭圆形表示,并用连线与实体连接起来。
  • 实体之间的联系:用菱形框表示,框内标注联系名称,并用连线将菱形框与有关实体相连,在连线上注明联系类型。

联系的类型
E-R图中的联系归结为三种类型:

  • 一对一联系(1:1)
  • 一对多联系(1:n)
  • 多对多联系(m:n)

七、软考-系统架构设计师笔记-数据库设计基础知识_数据_39

用E-R方法建立概念模型
(1) 选择局部应用
(2) 逐一设计分E-R图
(3) E-R图合并







选择局部应用
数据流图是对业务处理过程从高层到底层的一级级抽象,高层抽象流图一般反映系统的概貌,对数据的引用较为笼统,而底层又可能过于细致,不能体现数据的关联关系,因此要选择适当层次的数据流图,让这一层的每一部分对应一个局部应用,实现某一项功能。从这一层入手,就能很好地设计分 E-R 图

逐一设计分E-R图
对于每一局部应用,其所用到的数据都已经收集在数据字典中了,依照该局部应用的数据流图,从数据字典中提取出数据,使用抽象机制,确定局部应用中的实体、实体的属性、实体标识符及实体间的联系和其类型,就设计出了分E-R图。

E-R图合并
合并E-R图的目的在于在合并过程中解决分 E-R 图中存在的冲突,消除分 E-R 图之间存在的信息冗余,使之成为能够被全系统所有用户共同理解和接受的统一的、精炼的全局概念模型。
合并的方法:
将具有相同实体的两个或多个 E-R 图合二为一,在合成后的 E-R图中把相同实体用一个实体表示,合成后的实体的属性是所有分E-R 图中该实体的属性的并集。







E-R图合并时的冲突:

  • 属性冲突 :属性的类型、取值范围、数据单位的不一致。
  • 命名冲突:相同意义的属性,在不同的分 E-R 图上有着不同的命名(异名同义),或是名称相同的属性在不同的分 E-R 图中代表着不同的意义(同名异义)。
  • 结构冲突 :同一实体在不同的分 E-R 图中有不同的属性;同一对象在某一分 E-R 图中被抽象为实体,而在另一分 E-R 图中被抽象为属性。

例:
在数据库设计的需求分析、概念结构设计、逻辑结构设计和物理结构设计的四个阶段中,基本E-R图是( )。

答案: C

解析: 记忆即可 E-R图是逻辑结构设计阶段形成的文档,并作为概念结构设计阶段的设计依据

七、软考-系统架构设计师笔记-数据库设计基础知识_元组_40

逻辑结构设计
逻辑结构设计就是在概念结构设计的基础上进行数据模型设计,可以是层次模型、网状模型和关系模型。
逻辑结构设计的步骤:




  • 1.确定数据模型
  • 2.将 E-R 图转换成为指定的数据模型
  • 3.确定完整性约束
  • 4.确定用户视图

E-R图转换为关系模型
E-R图是由实体、属性和联系三要素构成,而关系模型中只有唯一的结构–关系模式。
采用以下方法加以转换:
(1)实体向关系模式的转换
(2)联系向关系模式的转换










(1)实体向关系模式的转换

  • 每个实体类型转换成一个关系模式
  • 实体属性即为关系模式的属性
  • 实体标识符即为关系模式的键
    注意:
    得到的关系模式,有些可能会扩充属性。




(2)联系向关系模式的转换

  • 1:1 联系
  • 1:n 联系
  • m:n 联系

1:1 联系
1:1联系,联系两端的实体类型转成两个关系模式,在任一个关系模式中加入另一个关系模式的键(作为外键)和联系的属性.
例:




  • 学校(校名,地址,电话)
  • 校长(姓名,性别,年龄,职称,所在学校,任职年月)


  • 学校(校名,地址,电话,校长姓名,任职年月)
  • 校长(姓名,性别,年龄,职称)

1:n 联系
1:n 联系,在N端实体类型转换成的关系模式中,加入1端实体类型的键(作为外键)和联系的属性。

例:

  • 系(系号,系名,电话)
  • 教师(工号,姓名,性别,年龄,所有系号,聘期)

m:n 联系
m:n 联系,联系类型需转换为关系模式,属性为两端实体类型的键(分别作为外键)加上联系的属性,而键为两端实体键的组合。
例:




  • 学生(学号,姓名,年龄,性别)
  • 课程(课程号,课程名,教师名)
  • 选课(学号,课程号,成绩)

关系模式的规范化
由E-R图转换得来的初始关系模式并不完全符合要求,还会有数据冗余或更新异常存在,需要经过进一步的规范化处理。
步骤如下:
①根据语义确定各关系模式的数据依赖。
②根据数据依赖确定关系模式的范式。
③如果关系模式不符合要求,要根据关系模式的分解算法对其进行分解,达到3NF、BCNF或4NF。
④关系模式的评价及修正。
















确定完整性约束
根据规范化理论确定了关系模式之后,还要对关系模式加以约束,包括数据项的约束、表级约束及表间约束。可以参照SQL标准来确定不同的约束,如检查约束、主码约束以及参照完整性约束,以保证数据的正确性。

用户视图的确定
根据数据流图及用户信息建立视图模式,提高数据的安全性和独立性。

  • 根据数据流图确定处理过程使用的视图
  • 根据用户类别确定不同用户使用的视图

反规范化
反规范化是加速读操作性能(数据检素)的方法,通过有选择地在数据结构标准化后添加特定的冗余数据来增加查询效率。常见的反规范化操作有:冗余列、派生列、表重组和表分割,其中表分割又分为水平分割和垂直分割。反规范化会带来冗余数据不一致问题,常采用数据同步的方法来解决。
方法有:应用程序同步、批量处理同步和触发器同步等。




物理结构设计
物理结构设计就是为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。
物理结构设计的主要工作步骤:




  • 确定数据分布
  • 存储结构
  • 访问方式

数据库实施
运用DBMS提供的数据库语言(如SQL)及宿主语言,根据逻辑设计和物理设计的结果,在计算机上建立起实际的数据库结构,数据加载(装入),进行试运行和评价的过程,叫数据库的实施(实现)。
包括以下三个步骤:




  • 建立数据库结构
  • 数据加载(组织数据入库)
  • 试运行和评价

数据库运行维护
数据库维护工作的主要内容:

  • 数据库性能的监测和改善
  • 数据库备份及故障恢复
  • 数据库重组和重构

数据库备份及故障恢复
数据备份是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其它的存储介质的过程。
备份可分为:




  • 冷备份(静态备份)是在数据库正常关闭的情况下进行的,所以备份过程中不允许对数据库进行任何存取、修改活动。
  • 热备份(动态备份)热备份是指备份期间允许对数据库进行存取或修改,即备份和用户事务可以并发执行。

按备份的内容分类

  • 完全备份:备份全部文件,并不依赖文件的存档属性来确定备份那些文件。
  • 差分备份:备份自上一次完全备份以来变化过的文件。
  • 增量备份:备份上一次备份后(无论是哪种备份),所有发生变化的文件。

日志文件的作用

  • 故障恢复必须用日志文件。
  • 在动态备份方式中必须建立日志文件,备份和日志文件综合起来才能有效地恢复数据库。

例:
假设系统中有正在运行的事务,若要转储全部数据库,则应采用( )方式。
A.静态全局转储
B.动态增量转储
C.静态增量转储
D.动态全局转储













答案: D

  • 库函数,如Oracle的OCI(Oracle调用接口)。
  • 嵌入式 SQL,将SQL语句直接写入某种高级程序语言。
  • 通用数据接口标准,如ODBC、JDBC、DAO、RDO、ADO等。
  • 对象关系映射 (ORM),是一种为了解决面向对象与关系数据库不匹配的技术。就是将Java中的对象与数据库中的表关联对应起来。

常见的NoSQL数据库按存储方式,可分为文档存储、键值存储、列存储和图存储。

文档存储
在文档存储中,文档可以很长,很复杂,无结构,可以是任意结构的字段,并且数据具有物理和逻辑上的独立性,这就和具有高度结构化的表存储(关系型数据库的主要存储结构)有很大的不同,而最大的不同则在于它不提供对参数完整性和分布事务的支持。

当前主流的文档型数据库:

文档数据库MongoDB
MongoDB是一个基于分布式文件存储的数据库,它的最大特点就是无表结构。在保存数据和数据结构的时候,会把数据和数据结构都完整地以BSON的形式保存起来,并把它作为值和特定的键进行关联。正是由于这种设计,使得它不需要表结构,而被称为文档型数据库。

MongoDB的特征:

  • 高性能:提供JSON、XML等可嵌入数据快速处理功能;提供文档的索引功能,大大提高了查询速度。
  • 丰富的查询语言:为数据聚合、结构文档,地理空间提供丰富的查询功能。
  • 高可用性:提供数据冗余处理和故障自动转移的功能。
  • 水平扩展能力:通过集群将数据分布到多台机器,而不是只提升单个节点的性能。具体处理分为主从和权衡两种处理模式。

键值存储
键值存储使用简单的键值方法来存储数据。键值数据库将数据存储为键值对集合,其中键作为唯一标识符。键和值都可以是从简单对象到复杂复合对象的任何内容。

数据操作方式
键值存储中存在三种操作:put、get 和 delete。开发者使用put、get 和 delete函数访问和操作键值存储:

  • put(\(key as xs:string, \)value as item())对表添加一个新的键值对,并且当键存在时,更新键对应的值。
  • get(\(key as xs:string) as item()根据给出的任意键返回键对应的值,如果键值存储中没有该键,将返回一个错误信息。</li><li>delete(\)key as xs:string)将键和对应的值从表中删除,如果键值存储中没有该键,将返回一个错误信息。

数据保存方式

  • 临时性保存类型:这类数据库把数据都保存在内存中,读和写速度非常快,但当数据库停止或机器重启后,数据就不存在了。
  • 永久性保存类型:这类数据库把数据保存在硬盘上。由于牵扯到对硬盘的IO操作,所以读写性能慢,优势是不会丢失数据。
  • 两者兼具型:兼具临时性保存和永久性保存的优点。如Redis系统,它首先把数据存在内存中,在内存中进行读和写操作。在满足特定条件时,将数据写入到硬盘保存。既确保了内存中数据处理的高速性,又通过写入硬盘来保证数据的永久性

键值存储产品
键值存储产品主要有:亚马逊的Memcached、Redis、 Dynamo、Project Voldemort、Tokyo Tyrant、Riak、 Scalaries 等。

(1)Memcached
Memcached 属于临时性保存类型,是高性能的分布式内存对象缓存系统。通过缓存数据库查询结果,减少数据库访问次数,以提高动态 Web应用的速度、提高可扩展性。Memcached 常作为数据库前段 Cache 使用。因为它比数据库少了很多 SQL解析、磁盘操作等开销,而且它是使用内存来管理数据的,所以它可以提供比直接读取数据库更好的性能。
Memcached 也常作为服务器直接数据共享的存储媒介,例如SSO 系统中保持系统单点登录状态的数据就可以保持在Memcached中,被多个应用共享。




(2)Redis
Redis是一种主要基于内存存储和运行,能够快速响应的键值数据库,属于临时和永久兼具类型,有点像 Memcached,整个数据库系统加载在内存当中进行操作,但是通过定期异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过10万次读写操作。其主要缺点是数据库容易受到物理内存的限制,不能用作海量数据的高性能读写,Redis没有内建的原生扩展机制,这意味着它不会自动水平扩展以处理更多的负载。要实现分布式读写,需要依赖客户端库(如Redis Cluster集群、Redis Sentinel等)来处理分片、复制和故障转移等操作因此 Redis 适合的场景主要局限在较小数据量的高性能操作和运算上、和需要快速响应和处理大量读写操作的场景。

列存储
面向列的数据库是以列作为单位来进行数据的存储的,擅长进行以列为单位的数据处理。
列存储数据库主要有Google的Bigtable、由Bigtable衍生的Hypertable和HBase、 Cassandra。




HBase
HBase(Hadoop Database)是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server 上搭建起大规模结构化存储集群

七、软考-系统架构设计师笔记-数据库设计基础知识_元组_41

图存储
图存储是一个包含一连串的节点和关系的系统,当它们结合在一起时,就构成了一个图。图存储有三个字段:节点、关系和属性。
图数据库对于那些对象之间具有复杂关系的业务问题很有用,如社交网路、规则引擎、生成组合和那些需要快速分析复杂网络结果并从中找出模式的图系统。




其它存储模式
1.多值数据库
多值数据库系统提供了一个通用的数据集成与访问平台,屏蔽了现有各数据库系统不同的访问方法和用户界面,给用户呈现出一个访问多种数据库的公共接口。
常见的多值数据库有Rocket U2、Extensible Storage Engin(ESE/NT)、 OpenInsight 和OpenQM等。







2.时间序列与流数据库
时间序列数据库是指具有处理时间序列数据,能对时间数据数组建立索引的优化数据库系统。
流数据库又被称为实时数据库,是一种使用实时处理数据的方式来处理状态不断变化的数据库系统。对时间序列的数据库提出实时的
处理要求,那么时间数据库就是流数据库。例如股票的价格、自动驾驶汽车的数据曲线等都需要实时计算处理,此时流数据库发挥巨
大作用。
常见的时间序列数据库:InfluxDB、OpenTSDB













3.网格和云数据库
网格和云数据库(Grid & Cloud Database)是基于网格计算或者云
计算的数据库。




  • 云计算是一种随需计算或者效用计算,允许用户无需了解底层IT基础设施架构,就能通过互联网访问各种基于IT资源的服务。
  • 网格计算可以理解为“虚拟超级计算机”,以松耦合的方式将大量的计算资源连接在一起提供单个计算资源无法完成的计算能力。
    主流数据库产品:GridGain和CrateDB。

小讯
上一篇 2025-06-03 17:32
下一篇 2025-06-06 14:39

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/175317.html