【系统架构设计】数据库系统(三)
数据库系统(三)
- 数据库模式与范式
- 数据库设计
- 备份与恢复
- 分布式数据库系统
- 分布式数据库的概念
- 特点
- 分类
- 目标
- 分布式数据库的架构
- 分布式数据库系统与并行数据库系统
- 数据仓库
- 数据挖掘
- NoSQL
- 大数据
数据库模式与范式
数据库设计
备份与恢复
分布式数据库系统
分布式数据库的概念
分布式数据库(Distributed DataBase ,DDB)是由一组数据组成的,这组数据分布在计算机网络的不同计算机上,网络中的每个结点具有独立处理的能力,成为场地自治,它可以执行局部应用,同时,每个结点也能通过网络通信子系统执行全局应用。
负责分布式数据库的建立、查询、更新、复制、管理和维护的软件,称为分布式数据库管理系统(Distributed DataBase Management System ,DDBMS),该系统保证分布式数据库中数据的物理分布对用户的透明性。
一个计算机网络组成的计算机系统,在配置了分布式数据库管理系统,并在其上建立了分布式数据库和相应的应用程序后,就称其为分布式数据库系统(Distributed DataBase System ,DDBS)。分布式数据库管理系统是分布式数据库系统的核心。
ps: 数据库 是一个数据集合,侧重数据;数据库管理系统是一个数据库软件,如MySQL,侧重数据软件;数据系统是整合管理系统和数据库和应用软件的完整系统,侧重数据应用软件。
特点
分布式数据库系统DDBS的特点如下:
- 数据的分布性
- 统一性
- 透明性
与集中式数据库相比,分布式数据库具有下列优点:
- 坚固性好。即系统的可靠性和可用性好
- 可扩充性好。
- 可改善性能。在分布式数据库中可按就近分布,合理地冗余的原则来分布各结点上数据,构造分布式数据库,使大部分数据可以就近访问,避免集中式数据库中的瓶颈问题,减少系统的响应时间,提高系统的效率,而且降低通信费用。
- 自治性好。系统中各结点的数据操作和相互作用是高度自治的,不存在主从控制。
虽然分布式数据库系统与集中式数据库相比有不少优点,但同时也需要解决一些集中式数据库所没有的问题:
- 异构数据库的集成问题是一项比较复杂的技术问题,目前还很难用一个通用的分布式数据库管理系统来解决这个问题;
- 数据库如果设计得不好,数据分布不合理,以致远距离访问过多,尤其是分布连接操作过多,不但不能改善性能,反而会使性能降低。
分类
- 按DDBMS软件同构度来分 :当所有服务器软件和所有客户软件均用相同的软件时称为同构型分布式数据库,反之则称为异构型分布式数据库。
- 按局部自治度来分:当对DDBMS的存取必须通过客户软件,则系统称为无局部自治;当局部事务允许对服务器软件进行直接存取,则系统称为有一定的局部自治.
- 按分布透明度来分,分布透明度的另一个概念时模式集成度:若用户可以对集成模式操作不需要涉及任何片段、重复、分布等信息时,则这类DDBMS称为有高度分布透明(或高度模式集成);若用户必须知道所有关于片段、分配、重复等信息时,则这类DDBMS没有分布透明,没后模式集成度。
客户软件是一种以客户为中心的企业办公软件。
目标
有12条具体规则和目标:
- 局部结点自治性
- 不依赖中心结点,即每个结点具有全局字典管理、查询处理、并发控制和恢复控制等功能。
- 能连续操作。即新场地新增和分离,都不需要中止现有的,可以动态操作。
- 具有位置独立性(或称位置透明性)。即用户不必知道数据的物理存储地,就像集中分布一样处理。
- 分片独立性(或称分片透明性)。分布式系统如果可将给定关系分成若干块或片,可提高系统的处理性能,利用分片将数据存储在最频繁使用它的位置上,使大部分操作为局部操作,减少网络的信息流量。
- 数据复制独立性。即将给定的关系,可在物理级用许多不同存储副本或复制品在许多不同场地上存储。
- 支持分布式查询处理。
- 支持分布事务管理。即在分布式系统中必须保证事务的代理集全部一致交付,或者全部一致回滚。
- 具有硬件独立性。即希望在不同硬件系统上运行同样的DBMS。
- 具有操作系统独立性。即希望在不同操作系统上运行DBMS。
- 具有网络独立性。即能支持各种不同的通信网络。
- 具有DBMS独立性。实现对异构型分布式系统的支持。
分布式数据库的架构
分布式数据库系统的模式结构有6个层次:
- 全局外模式:是全局应用的用户视图,是全局概念模式的子集。
- 全局概念模式:定义分布式数据库中数据的整体逻辑结构。
- 分片模式:每个全局关系可以划分为若干不相交的部分,每部分就是一个片段,即“数据分片”。
- 分布模式:由数据分片得到的片段依旧是DDB的全局数据,是全局关系的逻辑部分,每个分段在物理上可以分配到网络的一个或多个不同结点上,分布模式定义片段的存放结点。分布模式的映像类型确定了分布式数据库是冗余还是非冗余的,若映像是一对多的,即一个片段分配到多个结点上存放,则是冗余的分布数据库,否则是不冗余的分布数据库。
ps:分片模式和分步模式均是全局的,分布式数据库系统中增加的这些模式和相应的映像使分布式数据库系统具有了分布透明性。
- 局部概念模式:一个全局关系经逻辑划分成一个或多个逻辑片段,每个逻辑片段被分配在一个或多个场地上,称为该逻辑片段在某场地上的物理映像或物理片段 。分配在同一场地上的同一全局概念模式的若干片段(物理片段)构成了该全局概念在该场地上的一个物理映像。一个场地上的局部概念模式就是该场地上所有全局概念在该场地上物理映像的集合。因此,全局概念模式与场地独立,而局部概念模式与场地相关。
- 局部内模式:是DDB中关于物理数据库的描述,类似集中式DB中的内模式,但其描述内容不仅包含局部本场地的数据的存储描述,还包括全局数据在本场地的存储描述。
这种分层的模式结构为理解DDB提供了一种通用的概念结构,有三个显著的特征:
- 数据分片和数据分配概念的分离,形成了“数据分布独立型”概念;
- 数据冗余的显示控制。数据在各个场地的分配情况在分配模式中一目了然,便于系统管理;
- 局部DBMS的独立性。这个特征也称为“局部映射透明性”,允许在不考虑局部DBMS专用数据模型的情况下研究DDB管理的有关问题。
分布式数据库系统与并行数据库系统
两者有很多相似点:都是通过网络连接各个数据处理结点的,整个网络中的所有结点构成一个逻辑上统一的整体,用户可以对各个结点上的数据进行透明存取等。
区别主要在以下几方面:
- 应用目标不同。并行数据库系统的目标是充分发挥并行计算机的优势,利用系统中的各个处理机结点并行地完成数据库任务,提高数据库的整体性能。分布式数据库系统主要目的在于实现各个场地自治和数据的全局透明共享,而不要求利用网络中的各个结点来提高系统的整体性能。
- 实现方式不同。在并行数据库中,为了充分发挥各个结点的处理能力,各结点间采用高速通信网络互联,结点间数据传输代价相对较低。当负载不均衡时,可以将工作负载过大的结点上的任务通过高速通信网络送给空闲结点处理,从而实现负载平衡。在分布式数据库系统中,各节点(场地)间一般通过局域网或广域网互联,网络带宽比较低,各场地间的通信开销大,因此在查询处理时一般应该尽量减少结点间的数据传输量。
- 各结点地位不同。在并行数据库中,各结点间不存在全局应用和局部应用的概念,各个结点协同合作,共同处理,而不可能有局部应用。在分布式数据库中,各结点除了能通过网络协同完成全局事务外,还有自己结点场地的自治性,即每个场地又是一个独立的数据库系统,除了拥有自己的硬件系统(CPU、内存和磁盘等)外,还拥有自己的数据库和自己的客户,可运行自己的DBMS,执行局部应用,具有高度的自治性。这是并行数据库与分布式数据库之间最主要的区别。
数据仓库
数据挖掘
NoSQL
大数据
相关文章:

【系统架构设计】数据库系统(三)
数据库系统(三) 数据库模式与范式数据库设计备份与恢复分布式数据库系统分布式数据库的概念特点分类目标 分布式数据库的架构分布式数据库系统与并行数据库系统 数据仓库数据挖掘NoSQL大数据 数据库模式与范式 数据库设计 备份与恢复 分布式数据库系统…...

免费视频批量横版转竖版
简介 视频处理器 v1.3 是一款由是貔貅呀开发的视频编辑和处理工具,提供高效便捷的视频批量横转竖,主要功能: 导入与删除文件:轻松导入多个视频文件,删除不必要的文件。暂停与继续处理:随时暂停和继续处理。…...
内存管理(知识点)
c语言与c对于内存管理的区别 c语言中动态内存管理方式 malloc\calloc\realloc\free c内存管理方式 c兼容c语言所以c语言中的方式也可以使用 但是用起来太麻烦 所以通过new和delete操作符竞选动态内存管理 单个对象 c语言: int* p2(int*)malloc(sizeof(int)) c : int*p3 new…...

【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【29】Sentinel
持续学习&持续更新中… 守破离 【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【29】Sentinel 简介熔断降级什么是熔断什么是降级相同点不同点 整合Sentinel自定义sentinel流控返回数据使用Sentinel来保护feign远程调用自定义资源给网关整合Sentinel参考 简介 熔断降…...
防范UDP Flood攻击的策略与实践
UDP Flood攻击是一种常见的分布式拒绝服务(DDoS)攻击手段,通过向目标服务器发送大量无效的UDP数据包,消耗其网络带宽和处理资源,最终导致合法的网络服务无法正常运行。本文将深入探讨UDP Flood攻击的原理、常见的防御策…...

昇思25天学习打卡营第17天 | CycleGAN图像风格迁移互换
通过深入学习CycleGAN模型,我对无监督图像到图像的转换技术有了更深的理解。CycleGAN不仅能在没有成对训练样本的情况下实现域之间的转换,而且在保持内容结构的同时成功转换图像风格,这在许多应用中都非常有用,如艺术风格转换、季…...

Leetcode 2520. 统计能整除数字的位数
问题描述: 给你一个整数 num ,返回 num 中能整除 num 的数位的数目。 如果满足 nums % val 0 ,则认为整数 val 可以整除 nums 。 示例 1: 输入:num 7 输出:1 解释:7 被自己整除࿰…...

WEB前端08-综合案例(动态表格)
使用 HTML、CSS 和 JavaScript 创建动态表格 在本教程中,我们将创建一个动态表格,允许用户添加行、选择项目,并执行批量操作,如全选或删除选中的行。我们将通过 HTML、CSS 和 JavaScript 来实现这一功能。让我们逐步了解每个部分…...

【面试题】Redo log和Undo log
Redo log 介绍Redo log之前我们需要了解一下,mysql数据操作的流程: 上述就是数据操作的流程图,可以发现sql语句并不是直接操作的磁盘而是通过操作内存,然后进行内存到磁盘的一个同步。这里我们必须要了解一些区域: 缓…...

开发实战经验分享:互联网医院系统源码与在线问诊APP搭建
作为一名软件开发者,笔者有幸参与了多个互联网医院系统的开发项目,并在此过程中积累了丰富的实战经验。本文将结合我的开发经验,分享互联网医院系统源码的设计与在线问诊APP的搭建过程。 一、需求分析 在开发任何系统之前,首先要…...
springboot系列教程(十六):配置Actuator组件,实现系统监控
一、Actuator简介 1、监控组件作用 在生产环境中,需要实时或定期监控服务的可用性。Spring Boot的actuator(健康监控)功能提供了很多监控所需的接口,可以对应用系统进行配置查看、相关功能统计等。 2、监控分类 Actuator 提供…...

单臂路由组网实验,单臂路由的定义、适用情况、作用
一、定义 单臂路由是指通过在路由器的一个接口上配置许多子接口,从而实现原来相互隔离的不同VLAN之间的互通。 子接口:把路由器上的实际的物理接口划分为多个逻辑上的接口,这些被划分的逻辑接口就是子接口。 二、适用情况 用在没有三层交换机,却要实现不同VLAN之间的互…...

【数据结构初阶】顺序表三道经典算法题(详解+图例)
Hello!很高兴又见到你了~~~ 看看今天要学点什么来充实大脑吧—— 目录 1、移除元素 【思路图解】 【总结】 2、删除有序数组中的重复项 【思路图解】 【总结】 3、合并两个有序数组 【思路图解】 【总结】 至此结束,Show Time! 1、…...
SpringBoot接入JPA连接数据库H2或MySQL例子
一,JPA相关的常用注解和对象 Entity,用于实体类声明语句之前,指出该Java类为实体类,将映射到指定的数据库表;Table,当实体类与其映射的数据库表名不同名时需要使用。该标注与Entity标注并列使用&…...

持续集成05--Gogs的安装与使用
前言 在持续集成/持续部署(CI/CD)的旅程中,版本控制系统是不可或缺的一环。当我们在使用jenkins,想要达到测试脚本有更新,就让项目自动去进行构建,或者当开发脚本有更新,也可以自动去构建的效果…...
C++--fill
把[first,last)之间的元素填充为val。 template<class ForwardIterator, class Type> void fill( ForwardIterator first, //起始迭代器 ForwardIterator last, //结束迭代器 const Type& val //设置的值 );源码剖析 template<class ForwardIterator, c…...
Java:对比一个对象更新前后具体被修改了哪些值
Java:对比一个对象更新前后具体被修改了哪些值 Zyyyyu 的个人博客 遇到一个需求就是要记录每行数据被修改更新后,要记录下当前值和修改前的值 那有人就会说写个if去判断值是否被修改了,然后记录下来不就行了,这是一个思路&#x…...
GO——GMP 好文整理
GMP相关好文推荐: Golang 调度器设计思想、GMP 协程调度模型详解 Golang的协程调度器原理及GMP设计思想 Golang调度器GMP原理与调度全分析...

园区AR导航系统构建详解:从三维地图构建到AR融合导航的实现
随着现代园区规模的不断扩大与功能的日益复杂,传统的二维地图导航已难以满足访客高效、精准定位的需求。园区内部错综复杂的布局、频繁变更的商户位置常常让访客感到迷茫,造成寻路上的时间浪费。园区AR导航系统以创新的技术手段,破解了私域地…...
接口测试总结(非标准)
为什么要做接口测试? 答:接口测试是为了检测系统组件间接口的正确性和稳定性,以及检查数据的交换、传递和控制管理过程,以及系统间的相互逻辑依赖关系等。接口测试可以帮助我们发现系统中的潜在问题,确保系统的稳定性…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...

工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...

23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
Spring AI与Spring Modulith核心技术解析
Spring AI核心架构解析 Spring AI(https://spring.io/projects/spring-ai)作为Spring生态中的AI集成框架,其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似,但特别为多语…...

3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...

HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...