【系统架构设计】数据库系统(三)

news2024/12/23 13:56:51

数据库系统(三)

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

数据库模式与范式

数据库设计

备份与恢复

分布式数据库系统

分布式数据库的概念

分布式数据库(Distributed DataBase ,DDB)是由一组数据组成的,这组数据分布在计算机网络的不同计算机上,网络中的每个结点具有独立处理的能力,成为场地自治,它可以执行局部应用,同时,每个结点也能通过网络通信子系统执行全局应用。

负责分布式数据库的建立、查询、更新、复制、管理和维护的软件,称为分布式数据库管理系统(Distributed DataBase Management System ,DDBMS),该系统保证分布式数据库中数据的物理分布对用户的透明性。

一个计算机网络组成的计算机系统,在配置了分布式数据库管理系统,并在其上建立了分布式数据库和相应的应用程序后,就称其为分布式数据库系统(Distributed DataBase System ,DDBS)。分布式数据库管理系统是分布式数据库系统的核心。

ps: 数据库 是一个数据集合,侧重数据;数据库管理系统是一个数据库软件,如MySQL,侧重数据软件;数据系统是整合管理系统和数据库和应用软件的完整系统,侧重数据应用软件

特点

分布式数据库系统DDBS的特点如下:

  1. 数据的分布性
  2. 统一性
  3. 透明性

与集中式数据库相比,分布式数据库具有下列优点:

  1. 坚固性好。即系统的可靠性和可用性好
  2. 可扩充性好。
  3. 可改善性能。在分布式数据库中可按就近分布,合理地冗余的原则来分布各结点上数据,构造分布式数据库,使大部分数据可以就近访问,避免集中式数据库中的瓶颈问题,减少系统的响应时间,提高系统的效率,而且降低通信费用。
  4. 自治性好。系统中各结点的数据操作和相互作用是高度自治的,不存在主从控制。

虽然分布式数据库系统与集中式数据库相比有不少优点,但同时也需要解决一些集中式数据库所没有的问题:

  1. 异构数据库的集成问题是一项比较复杂的技术问题,目前还很难用一个通用的分布式数据库管理系统来解决这个问题;
  2. 数据库如果设计得不好,数据分布不合理,以致远距离访问过多,尤其是分布连接操作过多,不但不能改善性能,反而会使性能降低。

分类

  1. 按DDBMS软件同构度来分 :当所有服务器软件和所有客户软件均用相同的软件时称为同构型分布式数据库,反之则称为异构型分布式数据库
  2. 按局部自治度来分:当对DDBMS的存取必须通过客户软件,则系统称为无局部自治;当局部事务允许对服务器软件进行直接存取,则系统称为有一定的局部自治.
  3. 按分布透明度来分,分布透明度的另一个概念时模式集成度:若用户可以对集成模式操作不需要涉及任何片段、重复、分布等信息时,则这类DDBMS称为有高度分布透明(或高度模式集成);若用户必须知道所有关于片段、分配、重复等信息时,则这类DDBMS没有分布透明,没后模式集成度。

客户软件是一种以客户为中心的企业办公软件。

目标

有12条具体规则和目标:

  • 局部结点自治性
  • 不依赖中心结点,即每个结点具有全局字典管理、查询处理、并发控制和恢复控制等功能。
  • 能连续操作。即新场地新增和分离,都不需要中止现有的,可以动态操作。
  • 具有位置独立性(或称位置透明性)。即用户不必知道数据的物理存储地,就像集中分布一样处理。
  • 分片独立性(或称分片透明性)。分布式系统如果可将给定关系分成若干块或片,可提高系统的处理性能,利用分片将数据存储在最频繁使用它的位置上,使大部分操作为局部操作,减少网络的信息流量。
  • 数据复制独立性。即将给定的关系,可在物理级用许多不同存储副本或复制品在许多不同场地上存储。
  • 支持分布式查询处理
  • 支持分布事务管理。即在分布式系统中必须保证事务的代理集全部一致交付,或者全部一致回滚。
  • 具有硬件独立性。即希望在不同硬件系统上运行同样的DBMS。
  • 具有操作系统独立性。即希望在不同操作系统上运行DBMS。
  • 具有网络独立性。即能支持各种不同的通信网络。
  • 具有DBMS独立性。实现对异构型分布式系统的支持。

分布式数据库的架构

分布式数据库系统的模式结构有6个层次:
在这里插入图片描述

  • 全局外模式:是全局应用的用户视图,是全局概念模式的子集。
  • 全局概念模式:定义分布式数据库中数据的整体逻辑结构。
  • 分片模式:每个全局关系可以划分为若干不相交的部分,每部分就是一个片段,即“数据分片”。
  • 分布模式:由数据分片得到的片段依旧是DDB的全局数据,是全局关系的逻辑部分,每个分段在物理上可以分配到网络的一个或多个不同结点上,分布模式定义片段的存放结点分布模式的映像类型确定了分布式数据库是冗余还是非冗余的,若映像是一对多的,即一个片段分配到多个结点上存放,则是冗余的分布数据库,否则是不冗余的分布数据库。

ps:分片模式和分步模式均是全局的,分布式数据库系统中增加的这些模式和相应的映像使分布式数据库系统具有了分布透明性。

  • 局部概念模式:一个全局关系经逻辑划分成一个或多个逻辑片段,每个逻辑片段被分配在一个或多个场地上,称为该逻辑片段在某场地上的物理映像或物理片段 。分配在同一场地上的同一全局概念模式的若干片段(物理片段)构成了该全局概念在该场地上的一个物理映像。一个场地上的局部概念模式就是该场地上所有全局概念在该场地上物理映像的集合。因此,全局概念模式与场地独立,而局部概念模式与场地相关
  • 局部内模式:是DDB中关于物理数据库的描述,类似集中式DB中的内模式,但其描述内容不仅包含局部本场地的数据的存储描述,还包括全局数据在本场地的存储描述。

这种分层的模式结构为理解DDB提供了一种通用的概念结构,有三个显著的特征

  1. 数据分片和数据分配概念的分离,形成了“数据分布独立型”概念;
  2. 数据冗余的显示控制。数据在各个场地的分配情况在分配模式中一目了然,便于系统管理;
  3. 局部DBMS的独立性。这个特征也称为“局部映射透明性”,允许在不考虑局部DBMS专用数据模型的情况下研究DDB管理的有关问题。

分布式数据库系统与并行数据库系统

两者有很多相似点:都是通过网络连接各个数据处理结点的,整个网络中的所有结点构成一个逻辑上统一的整体,用户可以对各个结点上的数据进行透明存取等

区别主要在以下几方面:

  1. 应用目标不同。并行数据库系统的目标是充分发挥并行计算机的优势,利用系统中的各个处理机结点并行地完成数据库任务,提高数据库的整体性能。分布式数据库系统主要目的在于实现各个场地自治和数据的全局透明共享,而不要求利用网络中的各个结点来提高系统的整体性能。
  2. 实现方式不同。在并行数据库中,为了充分发挥各个结点的处理能力,各结点间采用高速通信网络互联,结点间数据传输代价相对较低。当负载不均衡时,可以将工作负载过大的结点上的任务通过高速通信网络送给空闲结点处理,从而实现负载平衡。在分布式数据库系统中,各节点(场地)间一般通过局域网或广域网互联,网络带宽比较低,各场地间的通信开销大,因此在查询处理时一般应该尽量减少结点间的数据传输量。
  3. 各结点地位不同。在并行数据库中,各结点间不存在全局应用和局部应用的概念,各个结点协同合作,共同处理,而不可能有局部应用。在分布式数据库中,各结点除了能通过网络协同完成全局事务外,还有自己结点场地的自治性,即每个场地又是一个独立的数据库系统,除了拥有自己的硬件系统(CPU、内存和磁盘等)外,还拥有自己的数据库和自己的客户,可运行自己的DBMS,执行局部应用,具有高度的自治性。这是并行数据库与分布式数据库之间最主要的区别

数据仓库

数据挖掘

NoSQL

大数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1936557.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

生活中生智慧

【 圣人多过 小人无过 】 觉得自己做得不够才能做得更好,互相成全;反求诸己是致良知的第一步;有苦难才能超越自己,开胸怀和智慧;不浪费任何一次困苦,危机中寻找智慧,成长自己。 把困苦当作当下…

自动驾驶三维车道线检测系列—LATR: 3D Lane Detection from Monocular Images with Transformer

文章目录 1. 概述2. 背景介绍3. 方法3.1 整体结构3.2 车道感知查询生成器3.3 动态3D地面位置嵌入3.4 预测头和损失 4. 实验评测4.1 数据集和评估指标4.2 实验设置4.3 主要结果 5. 讨论和总结 1. 概述 3D 车道线检测是自动驾驶中的一个基础但具有挑战性的任务。最近的进展主要依…

【NetTopologySuite类库】GeometryFixer几何自动修复,解决几何自相交等问题

介绍 NetTopologySuite 2.x 提供了GeometryFixer类,该类能够将几何体修复为有效几何体,同时尽可能保留输入的形状和位置。几何的IsValid属性,反映了几何是否是有效的。 输入的几何图形始终会被处理,因此即使是有效的输入也可能会…

特征工程方法总结

方法有以下这些 首先看数据有没有重复值、缺失值情况 离散:独热 连续变量:离散化(也成为分箱) 作用:1.消除异常值影响 2.引入非线性因素,提升模型表现能力 3.缺点是会损失一些信息 怎么分:…

pdf太大了怎么变小 pdf太大了如何变小一点

在数字化时代,pdf文件已成为工作与学习的重要工具。然而,有时我们可能会遇到pdf文件过大的问题,这会导致传输困难或者存储不便。别担心,下面我将为你介绍一些实用的技巧和工具,帮助你轻松减小pdf文件的大小。 方法一、…

docker的学习(一):docker的基本概念和命令

简介 docker的学习,基本概念,以及镜像命令和容器命令的使用 docker docker的基本概念 一次镜像,处处运行。 在部署程序的过程中,往往是很繁琐的,要保证运行的环境,软件的版本,配置文件&…

SQLite数据库在Android中的使用

目录 一,SQLite简介 二,SQLIte在Android中的使用 1,打开或者创建数据库 2,创建表 3,插入数据 4,删除数据 5,修改数据 6,查询数据 三,SQLiteOpenHelper类 四&…

信弘智能与图为科技共探科技合作新蓝图

本期导读 近日,图为信息科技(深圳)有限公司迎来上海信弘智能科技有限公司代表的到访,双方共同探讨英伟达生态系统在人工智能领域的发展。 在科技日新月异的今天,跨界合作与技术交流成为了推动行业发展的重要驱动。7月…

使用JWT双令牌机制进行接口请求鉴权

在前后端分离的开发过程中,前端发起请求,调用后端接口,后端在接收请求时,首先需要对收到的请求鉴权,在这种情况先我们可以采用JWT机制来鉴权。 JWT有两种机制,单令牌机制和双令牌机制。 单令牌机制服务端…

JAVA 异步编程(线程安全)二

1、线程安全 线程安全是指你的代码所在的进程中有多个线程同时运行,而这些线程可能会同时运行这段代码,如果每次运行的代码结果和单线程运行的结果是一样的,且其他变量的值和预期的也是一样的,那么就是线程安全的。 一个类或者程序…

Linux驱动开发-06蜂鸣器和多组GPIO控制

一、控制蜂鸣器 1.1 控制原理 我们可以看到SNVS_TAMPER1是这个端口在控制着蜂鸣器,同时这是一个PNP型的三极管,在端口输出为低电平时,蜂鸣器响,在高电平时,蜂鸣器不响 1.2 在Linux中端口号的控制 gpiochipX:当前SoC所包含的GPIO控制器,我们知道I.MX6UL/I.MX6ULL一共包…

整顿职场?安全体系建设

本文由 ChatMoney团队出品 00后整顿职场,职场到底怎么了?无压力、无忧虑的00后可以直接开整,那绝大部分打工人寒窗苦读、闯过高考,艰辛毕业,几轮面试杀入职场,结婚买房、上有老下有小,就活该再被…

怎么剪辑音频文件?4款适合新的音频剪辑软件

是谁还不会音频剪辑?无论是个人音乐爱好者,还是专业音频工作者,我们都希望能找到一款操作简便、功能强大且稳定可靠的音频剪辑工具。今天,我就要为大家带来四款热门音频剪辑软件的体验感分享。 一、福昕音频剪辑 福昕音频剪辑是…

JUnit 单元测试

JUnit 测试是程序员测试,就是白盒测试,可以让程序员知道被测试的软件如何 (How)完成功能和完成什么样(What)的功能。 下载junit-4.12和hamcrest-core-1.3依赖包 相关链接 junit-4.12:Central …

【JavaScript 算法】最长公共子序列:字符串问题的经典解法

🔥 个人主页:空白诗 文章目录 一、算法原理状态转移方程初始条件 二、算法实现注释说明: 三、应用场景四、总结 最长公共子序列(Longest Common Subsequence,LCS)是字符串处理中的经典问题。给定两个字符串…

Go语言之参数传递

文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 修改参数 假设你定义了一个函数,并在函数里对参数进行…

string相关

int main() {// world替换成 xxxxxxxxxxxxxxxxxxxxxxstring s1("hello world hello bit");s1.replace(6, 5, "xxxxxxxxxxxxxxxxxxxxxx");cout << s1 << endl;s1.replace(6, 23, "yyyyy");cout << s1 << endl;// 所有空格…

C++ | Leetcode C++题解之第260题只出现一次的数字III

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<int> singleNumber(vector<int>& nums) {int xorsum 0;for (int num: nums) {xorsum ^ num;}// 防止溢出int lsb (xorsum INT_MIN ? xorsum : xorsum & (-xorsum));int type1 0, …

类和对象:构造函数

构造函数是特殊的成员函数&#xff0c;需要注意的是&#xff0c;构造函数虽然名称叫构造&#xff0c;但是构造函数的主要任务并不是开空间创建对象(我们常使⽤的局部对象是栈帧创建时&#xff0c;空间就开好了)&#xff0c;⽽是对象实例化时初始化对象。构造函数的本质是要替代…

通过splunk web服务将服务器上文件下载到本地

1. 需求说明 工作中经常遇到需要将服务器上的文件下载到本地&#xff0c;但是由于各种网络环境限制&#xff0c;没办法使用winscp或者xftp工具&#xff0c;那么如何将服务器上的文件下载下来呢&#xff1f; 这里提供一种思路: 如果服务器上安装有web服务&#xff0c;可将待下…