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

数据库系统(三)

  • 数据库模式与范式
  • 数据库设计
  • 备份与恢复
  • 分布式数据库系统
    • 分布式数据库的概念
      • 特点
      • 分类
      • 目标
    • 分布式数据库的架构
    • 分布式数据库系统与并行数据库系统
  • 数据仓库
  • 数据挖掘
  • 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.mzph.cn/bicheng/48634.shtml

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

相关文章

macbook pro大模型推理

安装与配置 参考github ollama 链接安装ollama。安装完成后,安装常用的模型,下载速度超快。 性能测试 在进行实际测试之前,我首先对模型进行了预处理,以确保其在 M3 Max 上能够高效运行。测试过程中,我主要关注了以下几个方面: 模型加载时间 加载大型模型通常需要较…

粘弹性和机械塑性等力学行为如何影响细胞行为?

组织和细胞外基质(ECM)是细胞生存和功能的关键组成部分,它们不仅提供细胞生长和迁移的结构支撑,还通过其力学特性影响着细胞的形态、功能和行为。组织和ECM并非简单的材料,它们展现出复杂且多样的力学行为,…

农场驿站平台小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,农场资讯管理,卖家管理,用户分享管理,分享类型管理,商品信息管理,商品分类管理,系统管理,订单管…

MATLAB学习日志DAY13

13.矩阵索引(1) 13.1 下标 上图! A 的行 i 和列 j 中的元素通过 A(i,j) 表示。 例如,A(4,2) 表示第四行和第二列中的数字。 在幻方矩阵中, A(4,2) 为 15。 A(1,4) A(2,4) A(3,4) A(4,4) 用来计算 A 第四列中的…

【PB案例学习笔记】-32制作一个简单记事本程序

大家好,我是晓凡。 写在前面 这是PB案例学习笔记系列文章的第32篇,该系列文章适合具有一定PB基础的读者。 通过一个个由浅入深的编程实战案例学习,提高编程技巧,以保证小伙伴们能应付公司的各种开发需求。 文章中设计到的源码…

JVM基本知识——运行空间

JVM(Java Virtual Machine)即Java虚拟机,是负责读取java字节码,并在实际的硬件环境中运行。 JVM可以分为三部分:类装载器(ClassLoader)子系统、内存空间、执行引擎 内存空间(运行时…

“狂飙”过后,大模型未来在何方?

2024年6月14日,第六届“北京智源大会”在中关村展示中心开幕。 开幕现场,智源研究院、OpenAI、百度、零一万物、百川智能、智谱AI、面壁智能等国内主流大模型公司CEO与CTO,人工智能顶尖学者和产业专家,在围绕人工智能关键技术路径…

【计算机网络】计算机网络的性能指标(上篇)

个人主页:【😊个人主页】 系列专栏:【❤️计算机网络】 文章目录 前言计算机网络的性能指标速率数据量速率的定义计算方法与测量影响因素优化方法 带宽带宽的定义影响因素计算方法优化方法 吞吐量定义测量与测试影响因素与带宽的区别提升方法…

数据结构(栈)

文章目录 一、概念与结构 栈:⼀种特殊的线性表,其只允许在固定的⼀端进⾏插⼊和删除元素操作。进⾏数据插⼊和删除操作的⼀端称为栈顶,另⼀端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。 压…

docker compose 容器 编排分组

遇到问题:执行docker compose up -d 后docker compose 创建的容器们 在desktop-docker 中都在docker下一堆 搜索想着能不能把这个docker名字改一下,但是都没有找到这样的一个方案; 最后发现,我执行docker compose up -d 命令所在…

7. LangChain4j如何使用统一api调用?

前言 当我们对接LangChain4j的时候,面对复杂的各种各样的大模型的api的对接,让很多开发者感到力不从心。在每个大模型的api都不一样的时候?该如何快捷的切换模型的使用呢? 这时,One-API应运而生,它以其简洁…

面向初学者和专家的 40 大机器学习问答(2024 年更新)

面向初学者和专家的 40 大机器学习问答(2024 年更新) 一、介绍 机器学习是人工智能的重要组成部分,目前是数据科学中最受欢迎的技能之一。如果你是一名数据科学家,你需要擅长 python、SQL 和机器学习——没有两种方法。作为 DataFest 2017 的一部分,我们组织了各种技能测…

windows ssh的登录,私钥权限太开放 WARNING: UNPROTECTED PRIVATE KEY FILE!

问题描述 ssh -i wang -D localhost:1080 wangsg.ks99.topBad permissions. Try removing permissions for user Permissions for xxx are too open. F:\pms\pms-gpg-key\ssh-key\wang>ssh -i wang -D localhost:1080 wangsg.ks99.top Bad permissions. Try removing perm…

flutter 充电气泡

前言: 之前一直看到 有手机充电的时候 有气泡从Type-C 的位置冒泡上来 慢慢上移, 然后和上面的圆圈 会和,感觉还是挺好看的。今天试了下用 Flutter 实现了一版本。大致效果如下,而且气泡 和 气泡直接还可以粘黏 实现原理&#xff…

【开发实战】QT5 + OpenCV4 开发环境配置应用演示

前言 作为深度学习算法工程师,必须要掌握应用开发技能吗?搞工程肯定是必须要会界面开发,QT就是一个很不错的选择。本文以QT5.15 OpenCV4.8 OpenVINO2023为例,搭建应用开发环境,演示深度学习模型的QT应用案例。 开发…

windows USB 设备驱动开发-开发Type C接口的驱动程序(三)

编写 USB Type C 端口控制器驱动程序 如果 USB Type-C 硬件实现 USB Type-C 或电源传送 (PD) 物理层,但未实现供电所需的状态机,则需要编写 USB Type-C 端口控制器驱动程序。 在 Windows 10 版本 1703 中,USB Type-C 体系结构已得到改进&am…

pytorch学习(十)优化函数

优化函数主要有,SGD, Adam,RMSProp这三种,并且有lr学习率,momentum动量,betas等参数需要设置。 通过这篇文章,可以学到pytorch中的优化函数的使用。 1.代码 代码参考《python深度学习-基于pytorch》&…

Java里的引用详解

1.体验方法引用 方法引用的出现原因 在使用Lambda表达式的时候,我们实际上传递进去的代码就是一种解决方案:拿参数做操作 那么考虑一种情况:如果我们在Lambda中所指定的操作方案,已经有地方存在相同方案,那是否还有必要…

2024最新教程,在docker中安装kali,并配置ssh连接

docker的基本使用:搭建高效攻防靶场vulfocus与Docker仓库管理实战:从听说到入门 拉取kali官方镜像 docker pull kalilinux/kali-rolling 启动一个kali镜像,将容器中的22端口映射到主机100端口,方便ssh直接连接 docker run -it…

Java 集合框架:Java 中的优先级队列 PriorityQueue 的实现

大家好,我是栗筝i,这篇文章是我的 “栗筝i 的 Java 技术栈” 专栏的第 018 篇文章,在 “栗筝i 的 Java 技术栈” 这个专栏中我会持续为大家更新 Java 技术相关全套技术栈内容。专栏的主要目标是已经有一定 Java 开发经验,并希望进…