3.1.2数据库系统-数据库体系结构:分布式数据库、分布式数据库特点、分布式数据库结构、数据分片、分布式数据库事务

3.1.2数据库体系结构:分布式数据库、分布式数据库特点、分布式数据库结构、数据分片、分布式数据库事务

分布式数据库

分布式数据库主要和集中式数据库做区别,集中式数据库比如Oracle、SQL Server等这种都是集中式数据库,它会将数据集中化放在一台数据库服务器上,而分布式数据库会考虑将数据物理上分布在不同的物理节点上,这种就是分布式数据库。

对于分布式数据库而言,因为放在了不同的物理节点,在考虑访问数据的时候,可以考虑访问临近的节点访问,效率上比集中式是可以做优化的,可以把数据根据需求来进行分布,同时可以做到负载均衡的一些需求。

在做数据相关分布的时候,还可以存储一些相同的数据副本,可以起到备份作用,从而可以解决数据库可靠性一些安全的问题。

所以分布式数据库相比集中式数据库而言,多了一些功能。

分布式数据库特点

  • 数据独立性
    除了数据的逻辑独立性与物理独立性外,还有数据分布独立性(分布透明性)

  • 集中与自治共享结合的控制结构
    各局部的DBMS(Database Management System,数据库管理系统)可以独立的管理局部数据库,具有自治的功能。同时,系统又设有集中控制机制,协调各局部DBMS的工作,执行全局应用。

  • 适当增加数据冗余度
    在不同的场地存储同一数据的多个副本可以提高系统的可靠性和可用性,同时也能提高系统性能。(提高系统的可用性,当系统某个节点故障,因为数据有其他副本再非故障场地上,对其他所有场地来说,数据让然是可用的,从而保证数据的完备性)

  • 全局的一致性、可串行性和可恢复性

分布式数据库结构

在这里插入图片描述

分布式数据库当中,全局外模式它是全局应用的用户视图,对用户程序直接展示的。

概念模式分为全局概念模式,和局部概念模式,所以从概念模式的层次上可以分成全局和局部的概念。

概念模式对应数据库表,在分布式数据库中,它可以有全局的库表,也可以有切割之后放到局部库表当中,所以分为全局概念模式,和局部概念模式。

分片模式
如何来分?就涉及到如何将一个数据库进行分片,也就有了分片模式。分片模式它可以有垂直分片、水平分片、混合分片模式,分成每一个片段数据之后,这些数据分别放在哪些物理节点,这个放置的过程对应叫做分布模式。

分布模式
如何放到局部的部分中去?放到局部之后,每个局部有自己的概念模式和自己的内模式,局部区域看到的概念模式和内模式与原有的集中式数据库基本上保持一致,具体数据存放在局部数据库的部分,这个就是体现的分布模式。

再整个层次中,会有局部DBMS做局部的数据库管理,还有全局的DBMS负责全局应用。

局部数据库管理系统(LDBMS,Local database management system)
全局数据库管理系统(GDBMS,Global database management system)
通信管理(CM,Communication management)
分布式数据管理系统(DDBMS,Distributed data management system)

分布式数据库管理系统-组成

  • LDBMS
  • GDBMS
  • 全局数据字典
  • 通信管理(CM)

分布式数据库管理系统-结构

  • 全局控制集中的DDBMS
  • 全局控制分散的DDBMS
  • 全局控制部分分散的DDBMS

数据分片

分布透明性

  • 分片透明性
  • 位置透明性
  • 局部数据模型透明性

分片透明性:用户不必关心数据是如何分片的,它们对数据的操作在全局关系上进行,即如何分片对用户是透明的。

复制透明性:用户不关心数据库在网络中各个节点的复制情况,被复制的数据的更新都由系统自动完成。

位置透明性:用户不必知道所操作的数据是放在何处,即数据分配到哪个或哪些站点存储对用户是透明的。

局部映像透明性(逻辑透明):最低层次的透明性,该透明性提供数据到局部数据库的映像,即用户不关心局部DBMS支持哪种数据模型、使用哪种数据操纵语言,数据模型和操纵语言的转换是由系统完成的。因此,局部映像透明性对异构型和同构异质的分布式数据库系统是非常重要的。

分片方式

数据库表怎么分片?三种方式,水平分片、垂直分片、混合分片。

水平分片

水平切割,从水平方向上来看,数据库表的水平方向就是元组,将不同的原子行放置在不同的子集上,再将不同的子集放在不同的物理节点,这就是水平分片。

比如地铁行程记录,按月份可以分为12个月,也可以按省市来划分,分配到离对应城市近的物理节点上,访问路径更近,性能上会更好一些,数据量也会更小一些。

垂直分片

垂直方向,属于列,将不同的属性列分到一个子集,针对同一个库表,不同人所用的库表是不一样的。只需要将某一个部分所需要的数据把它归到同一个子集放到同一个物理节点上,其它不必要的数据可以放在较远的物理节点上,这样也可以提高访问效率。

混合分片

混合分片就是垂直和水平一起来进行分片,一方面限制属性列,另一方面限制元组行,从而形成更小子集来进行分片。

分布式数据库事务

分布式数据库涉及到多个局部数据,二应用通常是全局应用,因此需要读或者写多个局部数据,那么这系列操作,是否有一个节点做完,另一个节点没有做完的情况?

因此在做分布式数据库事务管理的时候,需要以多种方式来进行沟通的。

两阶段提交协议 2PC

2PC事务提交的两个阶段
表决阶段,目的是形成一个共同的决定
执行阶段,目的是实现这个协调者的决定

两条全局提交规则
只要有一个参与者撤销事务,协调者就必须做出全局撤销决定
只有所有参与者都同意提交事务,协调者才能做出全局提交决定

猜你喜欢

转载自blog.csdn.net/qq_41929714/article/details/129635168