当前位置: 首页 > news >正文

数据库体系结构概述

文章目录

  • 1、集中式数据库
  • 2、分布式数据库
    • 2.1、体系结构
    • 2.2、特性
    • 2.3、分片方式
    • 2.4、透明性
    • 2.5、两阶段提交协议 2PC

1、集中式数据库

在这里插入图片描述

  • 三级模式
    • 外模式: 也称用户模式,对应 用户视图
    • 模式(概念模式): 对应数据库表(关系表)
    • 内模式(存储模式): 对应物理文件
  • 两层映射
    • 外模式-模式映射
      逻辑独立性:修改关系表,用户程序不需要随之修改
    • 模式-内模式映射
      物理独立性:修改文件存储,用户程序不需要随之修改
  • 聚簇索引会影响内模式

2、分布式数据库

在这里插入图片描述

2.1、体系结构

  • 全局外模式:
    是对分布式数据库的最高层的抽象。
  • 全局概念模式:
    • 是分布式数据库的整体抽象
    • 包含了系统中全部数据的特性和逻辑结构
    • 描述分布式数据库全局数据的逻辑结构
    • 是分布式数据库的全局概念视图
  • 分片模式:
    • 描述全局数据逻辑划分的视图
    • 是全局数据的逻辑结构根据条件的划分
    • 每一个逻辑划分就是一个片段或者成为分片
  • 分布模式(分配模式):
    • 描述局部逻辑的局部物理结构
    • 是划分后的片段(或分片)的物理分配视图
    • 是全局概念层的内容
  • 局部概念层
    • 由局部概念模式描述
    • 是全局概念模式的子集
    • 全局概念模式经逻辑划分后被分配在各局部场地上

2.2、特性

  • 分布性:数据存放在不同的物理节点上
  • 自治性:各局部的DBMS可以独立的管理局部数据库,具有自治的功能
  • 可用性:当系统中某个节点发生故障时,因为数据有其他副本在非故障场地上,对其他所有场地来说,数据仍然是可用的

2.3、分片方式

  • 水平分片: 按记录分
  • 垂直分片:按字段分
  • 混合分片

2.4、透明性

  • 分片透明:
    指用户不需要关心数据是如何分片的,他们对数据库的操作在全局关系上进行,即如何分片对用户是透明的
  • 复制透明:
    用户不用关心数据库在网络中各个节点的复制情况,被复制的数据的更新都由系统自动完成
  • 位置透明
    指用户不必知道所操作的数据放在何处,即数据分配到哪个或哪些站点存储对用户是透明的
  • 局部映像透明性(逻辑透明)
    是最低层次的透明性,该透明性提供数据到局部数据库的映像,即用户不必关心局部 DBMS 支持哪种数据模型、使用哪种数据操纵语言,数据模型和操纵语言的转换是由系统完成的。因此,局部映像透明性对异构型和同构异质的分布式数据库系统是非常重要的。

2.5、两阶段提交协议 2PC

  • 2PC 事务提交的两个阶段
    • 表决阶段:目的是形成一个共同的决定
    • 执行阶段:目的是实现这个协调者的决定
  • 全局提交规则
    • 只要有一个参与者撤销事务,协调者就必须做出全局撤销的决定
    • 只有所有参与者都同意提交事务,协调者才能做出全局提交决定

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Python实现牛顿法 目录
  • I/O 多路复用:`select`、`poll`、`epoll` 和 `kqueue` 的区别与示例
  • 【代码随想录训练营第42期 Day55打卡 - 图论Part5 - 并查集的应用
  • CCF201912_1
  • Mysql 的查询过慢如何排查以及优化
  • UQpy | 不确定性量化Python工具箱推荐
  • SAP Fiori UI5-环境搭建-2022-2024界面对比
  • HarmonyOS学习(十二)——数据管理(一)分布式数据
  • C#实战|大乐透选号器[7]:设计类和对象的方法
  • 共享单车轨迹数据分析:以厦门市共享单车数据为例(四)
  • 【四】k8s部署 TDengine集群
  • Unity3D Android多渠道极速打包方案详解
  • 【机器学习】使用Numpy实现神经网络训练全流程
  • 【资料分析】平均倍数类
  • 【重学 MySQL】十八、逻辑运算符的使用
  • JavaScript-如何实现克隆(clone)函数
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • Angular2开发踩坑系列-生产环境编译
  • Apache的基本使用
  • Django 博客开发教程 8 - 博客文章详情页
  • Docker下部署自己的LNMP工作环境
  • Iterator 和 for...of 循环
  • JavaScript创建对象的四种方式
  • JavaWeb(学习笔记二)
  • k8s如何管理Pod
  • Protobuf3语言指南
  • scala基础语法(二)
  • Spring Boot快速入门(一):Hello Spring Boot
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • Vue官网教程学习过程中值得记录的一些事情
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 力扣(LeetCode)357
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 主流的CSS水平和垂直居中技术大全
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • Semaphore
  • ​比特币大跌的 2 个原因
  • #### golang中【堆】的使用及底层 ####
  • #NOIP 2014# day.1 T2 联合权值
  • #NOIP 2014#Day.2 T3 解方程
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (js)循环条件满足时终止循环
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (多级缓存)缓存同步
  • (函数)颠倒字符串顺序(C语言)
  • (几何:六边形面积)编写程序,提示用户输入六边形的边长,然后显示它的面积。
  • (六)vue-router+UI组件库
  • (十三)Flask之特殊装饰器详解
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .net 4.0发布后不能正常显示图片问题
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .NET 服务 ServiceController
  • .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况
  • .NET命名规范和开发约定