赞
踩
数据库基本概念
1.数据(Data)
是数据库中存储的基本对象,是描述事物的符号记录。
数据的种类:
2.数据库(Database, DB)
数据库是统一管理的、长期储存在计算机内的,有组织的相关数据的集合。
数据库的基本特征:
3.数据库管理系统(DBMS)
DBMS 是数据库系统的核心软件,是由一组相互关联的数据集合和一组用以访问这些数据的软件组成。它是一种解决如何科学地组织和储存数据如何高效地获取和维护数据的系统软件。
主要功能包括:
4.数据库系统(Database System,DBS)
由数据库及其管理软件组成的系统。
数据库系统的构成:
数据模型
数据模型是数据特征的抽象,它从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表示与操作提
供一个抽象的框架。数据模型的三要素:
常见的基本数据模型:
数据库管理系统
DBMS 功能主要包括数据定义,数据库操作,数据库运行管理,数据组织、存储和管理,数据库的建立和维护。
(1)数据定义
DBMS 提供数据定义语言 (DDL),可以对数据库的结构进行描述,包括外模式、模式和内模式的定义;数据库的完整性定义;安全保密定义,如口令、级别和存取权限等。这些定义存储在数据字典中,是 DBMS运行的基本依据。
(2)数据库操作
DBMS 向用户提供数据操纵语言 (DML),实现对数据库中数据的基本操作,如检索、插入、修改和删除。
(3)数据库运行管理。
数据库在运行期间,多用户环境下的并发控制、安全性检查和存取控制、完整性检查和执行、运行日志的组织管理、事务管理和自动恢复等都是 DBMS 的重要组成部分。这些功能可以保证数据库系统的正常运行。
数据库三级模式
数据库系统可以分为:
1.模式(概念模式、逻辑模式)
数据库中全体数据的逻辑结构和特征的描述
所有用户的公共数据视图,综合了所有用户的需求
一个数据库只有一个模式
2.外模式(子模式、用户模式)
数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述
数据库用户的数据视图,是与某一应用有关的数据的逻辑表示
外模式的地位:介于模式与应用之间
外模式的用途
(3)内模式(存储模式)
例:
采用三级模式结构的数据库系统中,如果对一个表创建聚簇索
引,那么改变的是数据库的( )。
A.外模式
B.模式
C.内模式
D.用户模式
答案: C
解析:
在一个三级模式结构的数据库系统中,数据库的结构被分为三个层次:外模式(外部模式)、模式(概念模式)和内模式(物理模式)。
外模式是用户对数据库的可见部分,它定义了用户可以看到和操作的数据的逻辑结构和访问路径。
模式定义了数据库的全局逻辑结构和组织方式,它定义了数据库中的表、属性、关系等概念,并描述了它们之间的关系。
内模式定义了数据库在存储介质上的物理结构和存储方式,它描述了数据在磁盘上的存储细节,如数据的排列方式、索引结构等。
当对一个表创建聚簇索引时,改变的是数据库的内部物理存储结构,即内模式。
三个级别
与三级模式相对应,数据库系统可以划分为三个抽象级:
两级独立性
关系数据库的基本概念
1.关系的基本术语
2.关系数据库模式
关系的描述称为关系模式,关系模式是一个五元组,形式化地表示为: R (U, D, DOM, F)
R 关系名
U 组成该关系的属性名集合
D 属性组U中属性所来自的域
DOM 属性向域的映象集合
F 属性间的数据依赖关系集合
通常简记为R(A1, A2, … , An)。 R为关系名, A1, A2…为属性名。
3.完整性约束
(1)实体完整性(Entity integrity)
是指关系的主关键字不能重复也不能取"空值"。如主关键字是多个属性的组合,则所有主属性均不得取空值。
(2)参照完整性(Referential integrity)
是指建立关系之间联系的主键与外键引用的约束条件。就是不允许引用不存在的实体。
(3)用户定义完整性(user defined integrity)
则是根据应用环境的要求和实际的需要,对某一具体应用所涉及的数据提出约束性条件。
常用的关系操作 (这个会考选择题 一定要掌握 ☆☆☆☆☆)
查询的表达能力是其中最主要的部分
1、 并
关系R和S具有相同的目n(两个关系都有n个属性),R和S的并是由属于R或属于S的元组组成的集合,记为RUS。
形式定义如下:
式中t是元组变量。
RUS = SUR
2. 差
关系R和S具有相同的目n,R和S的差是由属于R 但不属于S的元组组成的集合,记为R-S。
形式定义如下:
式中t是元组变量。
3. 交
关系R和S具有相同的目n,R和S的交是由既属于R 又属于S的元组组成的集合,记为R ∩ S。
形式定义如下:
式中t是元组变量。
R∩S = R – (R-S)或者 R∩S = S – (S-R)
4. 笛卡儿积
R: n目关系,k1个元组
S: m目关系,k2个元组
R×S
列:(n+m) 列元组的集合
式中t是元组变量。
关系运算
关系数据库还有一些专门的运算,主要有投影、选择、连接、除法和外连接。
在关系代数中,由五种基本代数操作经过有限次复合的式子称为关系代数运算表达式。
表达式的运算结果仍是一个关系。
1. 投影
投影操作从关系R中选择出若干属性列组成新的关系,该操作对关系进行垂直分割,消去某些列,并重新安排列的顺序,再删去
重复元组。记作:
形式定义 :
式中t是元组变量。
其中A为R的属性列
注意:
投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)。
例:
查询学生的姓名和所在系即求Student关系上学生姓名和所在系两个属性上的投影。
注意 其中A 可以是属性名称 也可以是属性列下标 且下标从1开始
2. 选择
选择操作在关系R中选择满足给定条件的所有元组,记作
其形式定义 :
式中t是元组变量。
其中F表示选择条件,是一个逻辑表达式(逻辑运算符+算术表达式)。选择运算是从行的角度进行的运算。
例:
查询信息系(IS系)全体学生。
3. 连接
连接分为θ连接、等值连接及自然连接 3 种。
连接运算是指从两个关系R和S的笛卡儿积中选取属性间满足一定条件的元组。
记作:
A和B:分别为R和S上度数相等且可比的属性组
θ:比较运算符
(1) θ连接
θ连接是从R与S的笛卡尔积中选取属性满足一定条件的元组。
其形式定义如下:
例:
关系R和关系S 如下所示,一般连接 的结果如下:
(2) 等值连接(equijoin)
θ为"="时的连接运算称为等值连接。
等值连接的含义是指从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:
例:
关系R和关系S 如下所示,等值连接
的结果如下:
(3) 自然连接(Natural join)
自然连接是一种特殊的等值连接
例:
给定关系R(A, B, C, D)和S(A, C, E, F),以下( )与
等价。
答案: B
解析: 题目中
是关系R和关系S的自然连接 其中R(A, B, C, D)和S(A, C, E, F) 有相同属性列 A 、 C
并且在 R和S 自然连接后 选择 R的B列的值 大于S的E列的值 的过程
其中R的B列 可以用下标2表示 S的E列可以用下标 7表示 如果是带 单引号的 ‘7’ 表示字符串7 而不是第7列
选项A中 RXS 只是R和S的笛卡尔积 并没有选择 R和S中 进行比较的分量必须是相同的属性组,在结果中把重复的属性列去掉
所以A错误
选项B
先把R和S求笛卡尔积 然后 选择 相同的属性组 并且 符合题目中
R.B > S.E的选择条件
最后使用投影
在结果中把重复的属性列去掉 所以B选项正确
C选项和A选项类似的错误 并且比较的是字符串 ‘7’ 错误
D选项和B选项类似 但是比较的是字符串 ‘7’ 错误
4. 外连接(OUTER JOIN)
关系R、S 进行自然连接时,如果把舍弃的元组也保存在结果关系中,而在其他属性上填空值(Null),这种连接就叫做外连接。
5. 左外连接
关系R、S 进行自然连接时,如果只把左边关系R中要舍弃的元组保留就叫做左外连接(LEFT OUTER JOIN或LEFT JOIN)
6. 右外连接
关系R、S 进行自然连接时,如果只把右边关系S中要舍弃的元组保留就叫做右外连接(RIGHT OUTER JOIN或RIGHT JOIN)
7. 除法
给定关系R (X,Y) 和S (Y,Z),其中X,Y,Z为属性组。
R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。
R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在 X 属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合,记作:
例:
设关系R、S分别为下图的(a)和(b),R÷S的结果为下图 (c)
在关系R中,A可以取四个值{a1,a2,a3,a4}
S在(B,C)上的投影为{(b1,c2),(b2,c1),(b2,c3) }
只有a1的象集包含了S在(B,C)属性组上的投影。
所以 R÷S ={a1}
函数依赖
定义:
设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。
如: (学号,年龄)→学生姓名
学号→姓名 学生姓名依赖于主键–学号,因此学生姓名部分函数依赖于(学号,年龄)。
显然,当且仅当X为复合属性组时,才有可能出现部分函数依赖。
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),其属性分别表示学生姓名、课程名、任课教师姓名和任课教师地址。
学生姓名 | 课程名 | 教师名 | 教师办公室 |
---|---|---|---|
秀逗 | 信号与系统 | 老张 | 301 |
四眼 | 嵌入式系统 | 老六 | 302 |
大黄 | 操作系统 | 老张 | 301 |
豆豆 | 计算机网络 | 老六 | 302 |
这个模式存在下列存储异常的问题。
把R分解成下列三个关系模式:R1(SNAME, CNAME)和R2(CNAME,TNAME) , R3(TNAME, TADDRESS),则能消除上述的存储异常现象。
模式设计强调“每个联系单独表达”是一条重要的设计原则
学生姓名 | 课程名 |
---|---|
秀逗 | 信号与系统 |
四眼 | 嵌入式系统 |
大黄 | 操作系统 |
豆豆 | 计算机网络 |
课程名 | 教师名 |
---|---|
信号与系统 | 老张 |
嵌入式系统 | 老六 |
操作系统 | 老张 |
计算机网络 | 老六 |
教师名 | 教师办公室 |
---|---|
老张 | 301 |
老六 | 302 |
老张 | 301 |
老六 | 302 |
范式
1. 第一范式(1NF)
如果关系模式R的每个关系r的属性值都是不可分的原子值,那么称R是第一范式的模式,r是规范化的关系。
说明:在任何一个关系数据库中,第一范式是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。
例如: | 学生姓名 | 课程名 |
2. 第二范式(2NF)
若关系模式R是1NF,且每个非主属性完全函数依赖于候选键,那么称R是2NF模式。
简单的说,是表中的属性必须完全依赖于全部主键,而不是部分主键。所以只有一个主键的表如果符合第一范式,那一定是第二
范式。
例如员工信息表中加上了"员工号"列,因为每个员工的员工编号是惟一的,因此每个员工可以被唯一区分。
3. 第三范式(3NF)
如果关系模式R是1NF,且每个非主属性都不传递依赖于R的候选码,则称R是3NF。
例如,存在一个部门信息表,其中每个部门有部门号、部门名称、部门简介等信息。那么在员工信息表中列出部门号后就不能再将部门名称、部门简介等与部门有关的信息再加入员工信息表中。
如果不存在部门信息表,则根据第三范式(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
解析:
候选码: 若关系中的某一属性或属性组的值能唯一的标识一个元组叫称该属性或属性组为候选码
这种题目的技巧 很简单 根据选项去计算闭包 不用理解闭包的概念 记住计算规则就行
A选项 A1A3 先看函数依赖集F={A1→A2, A1→A3, A3→A4, A1A5→A6} A1能推出A2 就把A2写上去
得到 A1A2A3 , A3能推出A4 得到 A1A2A3A4 , 只能推到这了 由于只能推出A1A2A3A4 而不是全部的属性集 U={A1, A2, A3, A4, A5,A6}
所以候选码不是 A1A3
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图中的联系归结为三种类型:
用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图是( )。
A.需求分析阶段形成的文档,并作为概念结构设计阶段的设计依据
B.逻辑结构设计阶段形成的文档,并作为概念结构设计阶段的设计依据
C.概念结构设计阶段形成的文档,并作为逻辑结构设计阶段的设计依据
D.概念结构设计阶段形成的文档,并作为物理设计阶段的设计依据
答案: C
解析: 记忆即可 E-R图是逻辑结构设计阶段形成的文档,并作为概念结构设计阶段的设计依据
逻辑结构设计
逻辑结构设计就是在概念结构设计的基础上进行数据模型设计,可以是层次模型、网状模型和关系模型。
逻辑结构设计的步骤:
E-R图转换为关系模型
E-R图是由实体、属性和联系三要素构成,而关系模型中只有唯一的结构–关系模式。
采用以下方法加以转换:
(1)实体向关系模式的转换
(2)联系向关系模式的转换
(1)实体向关系模式的转换
(2)联系向关系模式的转换
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
应用系统中,用户不能直接访问后台的数据库,需要高级程序语言来完成与用户之间的交互,因此数据库管理系统需要提供程序
级别的接口来访问数据。
常见的应用程序与数据库的交互方式:
常见的NoSQL数据库按存储方式,可分为文档存储、键值存储、列存储和图存储。
分 类 | 典型产品 | 应用场景 | 优点 | 缺点 |
---|---|---|---|---|
文档存储 | MongoDB、CouchDB | Web 应用,存储面向文档和半结构化数据 | 结构灵活,可以根据 value 构建索引 | 缺乏统一的查询语法:无事务处理能力 |
键值存储 | MMemcached、Redis | 内容缓存,如会话、配置文件、参数等 | 扩展性好,灵活性强,大量操作时性能高 | 数据无结构化,通常被当成字符串或者二进制数据,通过键查询值 |
列存储 | Bigtable、HBase、Cassandra | 分布式数据存储和管理 | 可扩展性强,查找速度快,复杂性低 | 功能局限;不支持事务的强一致性 |
图存储 | Neo4i、OrientDB | 社交网络、推荐系统专注于构建系统图谱 | 支持复杂的图形算法 | 复杂性高,只能支持一定的数据规模 |
文档存储
在文档存储中,文档可以很长,很复杂,无结构,可以是任意结构的字段,并且数据具有物理和逻辑上的独立性,这就和具有高度结构化的表存储(关系型数据库的主要存储结构)有很大的不同,而最大的不同则在于它不提供对参数完整性和分布事务的支持。
关系型数据库用语 | 数据库 | 表 | 记录 |
---|---|---|---|
文档型数据库用语 | 数据库 | 集合 | 文档 |
当前主流的文档型数据库:
名称 | 查 询 语 言 | 注释 |
---|---|---|
BaseX | Xquery, Java | XML 型数据库 |
CouchDB | Erlang | 集合 |
MongoDB | C++ | JSON 型数据库 |
Lotus Notes | LotusScript, Java, others | 多键值 |
MarkLogic Server | Xquery | XML 型数据库 |
文档数据库MongoDB
MongoDB是一个基于分布式文件存储的数据库,它的最大特点就是无表结构。在保存数据和数据结构的时候,会把数据和数据结构都完整地以BSON的形式保存起来,并把它作为值和特定的键进行关联。正是由于这种设计,使得它不需要表结构,而被称为文档型数据库。
MongoDB的特征:
键值存储
键值存储使用简单的键值方法来存储数据。键值数据库将数据存储为键值对集合,其中键作为唯一标识符。键和值都可以是从简单对象到复杂复合对象的任何内容。
类型 | 键 | 值 |
---|---|---|
图片名称 | 123.jpg | Binary image file |
网页 URL | https:///www.google.com | HTML of a web page |
文件路径名 | C:/usr/Zhang/file1.doc | WORD document |
MDS 哈希 | 9689e3612ioifej23ERFT93089r3456P | This is a test. |
REST Web 服务调用 | View-person?person-id=12334&format=xml | <Person><id>12334</id></Person> |
SQL 查询 | SELECT * FROM STUDENT | * |
数据操作方式
键值存储中存在三种操作:put、get 和 delete。开发者使用put、get 和 delete函数访问和操作键值存储:
数据保存方式
键值存储产品
键值存储产品主要有:亚马逊的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 适合的场景主要局限在较小数据量的高性能操作和运算上、和需要快速响应和处理大量读写操作的场景。
比 较 内 容 | 传统关系型数据库 | MongoDB | Redis |
---|---|---|---|
读写速度 | 一般。基于硬盘读写,约束很强 | 较快。基于内存读写,约束很弱 | 最快。主要基于内存读写,约束弱 |
应用范围 | 最广,不能很好处理大数据和高并发访问 | 互联网应用为主,可以处理大数据和高并发访问 | 互联网特定应用为主,擅长处理高响应和高并发的访问的数据 |
列存储
面向列的数据库是以列作为单位来进行数据的存储的,擅长进行以列为单位的数据处理。
列存储数据库主要有Google的Bigtable、由Bigtable衍生的Hypertable和HBase、 Cassandra。
类型 | 数据存储方式 | 特点 |
---|---|---|
面向行的数据库 | 以行为单位进行存储 | 对少量行进行数据读取和更新 |
面向列的数据库 | 以列为单位进行存储 | 对大量行少数列进行读取,对所有行的指定列进行同时更新 |
HBase
HBase(Hadoop Database)是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server 上搭建起大规模结构化存储集群
图存储
图存储是一个包含一连串的节点和关系的系统,当它们结合在一起时,就构成了一个图。图存储有三个字段:节点、关系和属性。
图数据库对于那些对象之间具有复杂关系的业务问题很有用,如社交网路、规则引擎、生成组合和那些需要快速分析复杂网络结果并从中找出模式的图系统。
名 称 | 查询语言 | 注释 |
---|---|---|
AllegroGraph | SPARQL | RDF GraphStore |
DEX | Java,C# | High-performance Graph Database |
Neo4j | Java | – |
FlockDB | Scala | – |
其它存储模式
1.多值数据库
多值数据库系统提供了一个通用的数据集成与访问平台,屏蔽了现有各数据库系统不同的访问方法和用户界面,给用户呈现出一个访问多种数据库的公共接口。
常见的多值数据库有Rocket U2、Extensible Storage Engin(ESE/NT)、 OpenInsight 和OpenQM等。
2.时间序列与流数据库
时间序列数据库是指具有处理时间序列数据,能对时间数据数组建立索引的优化数据库系统。
流数据库又被称为实时数据库,是一种使用实时处理数据的方式来处理状态不断变化的数据库系统。对时间序列的数据库提出实时的
处理要求,那么时间数据库就是流数据库。例如股票的价格、自动驾驶汽车的数据曲线等都需要实时计算处理,此时流数据库发挥巨
大作用。
常见的时间序列数据库:InfluxDB、OpenTSDB
3.网格和云数据库
网格和云数据库(Grid & Cloud Database)是基于网格计算或者云
计算的数据库。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。