一幅长文细学GaussDB(一)——数据库介绍

文章目录

  • 1 数据库介绍
    • 1.1 数据库技术
    • 1.2 数据库技术发展史
        • 数据库技术产生和发展
        • 数据库三个阶段比较
        • 数据库系统优势
        • 层次模型
        • 网状模型
        • 关系模型
        • 关系数据库产品历史
        • 结构化查询语言SQL
        • 面向对象数据模型(OO模型)
        • 数据管理技术的新挑战
        • NoSQL技术特点和类型
        • 主要NoSQL数据库
        • NewSQL
        • 云数据库
        • 云数据库的优势
    • 1.3 关系型数据库架构演进
        • 数据库架构发展
        • 单机架构
        • 分组架构-主备
        • 分组架构-主从
        • 分组架构-多主
        • 共享存储多活架构
        • 分片架构
        • 无共享架构
        • MPP架构
    • 1.4 关系型数据库主流应用场景
        • 联机事务处理
        • 联机分析处理
        • OLTP和OLAP对比分析
        • 数据库性能衡量指标

1 数据库介绍

1.1 数据库技术

数据库技术:数据库管理的有效技术。

数据:描述事物的符号记录。

数据语义:数据的含义。

记录:计算机中表示和存储数据的一种格式或一种方法。

数据库:存放数据的仓库,是大量数据的集合,具有永久存储有组织可共享的特性。

数据库管理系统:一个能够科学地组织和存储数据,高效地获取和维护数据的系统软件,是位于用户与操作系统之间的数据管理软件。

数据库系统:由数据库、数据库管理系统、应用程序和数据库管理员组成的存储、管理、处理和维护数据的系统。


1.2 数据库技术发展史

数据库技术产生和发展

人工管理阶段->文件系统阶段->层次型数据库和网状型数据库->关系型数据库->面向对象数据库->NoSQL->NewSQL


数据库三个阶段比较

image-20220814121855940


数据库系统优势

数据面向整个系统而不是单个应用,被多个应用共享。

数据的共享性高,冗余度低且易扩充

数据独立性高,分为物理独立性和逻辑独立性

统一管理和控制


层次模型

根节点没有双亲

根节点之外的其他节点有且只有一个双亲节点。


网状模型

  • 允许一个以上的节点无双亲。
  • 一个节点可以有多于一个的双亲

关系模型

  • 建立在严格的数据概念基础上
  • 关系必须是规范化的
  • 关系的分量是一个不可分的数据项

image-20220814122746795


关系数据库产品历史

image-20220814122828275


结构化查询语言SQL

  • 高级的非过程化编程语言,允许用户在高层数据结构上工作
  • 不要求用户指定数据存放方法
  • 不需要用户了解具体数据存放方式
  • 底层结构完全不同的各种关系型数据库系统可以使用相同的SQL语言作为数据操作和管理的接口

面向对象数据模型(OO模型)

将语义数据模型和面向对象设计方法结合起来,用一系列面向对象核心概念构成模型基础。

由于面向对象数据库操作语言过于复杂,故没有得到开发人员的认可。


数据管理技术的新挑战

5V特性:数量大、多样性、价值密度低、速度快、真实性

由5V衍生的需求:高可扩展性、高性能、容错性、高伸缩性


NoSQL技术特点和类型

NoSQL(Not Only SQL):非关系型的、分布式的、不保证满足ACID特性的一类数据管理系统

技术特点

对数据进行分区,利用大量节点并行处理获得高性能,同时能够采用横向扩展的方式。

降低ADID一致性约束,允许暂时不一致,接受最终一致性。遵循CAP理论和BASE原则。

各数据分区提供备份(一般是三份),应对节点故障,提高系统可用性。

常见的NoSQL数据库分类:键值数据库、列族数据库、文档型数据库、图数据库


主要NoSQL数据库

NoSQL的出现并不是为了取代RDBMS。它的优势虽然显著,但是缺点也较为明显,其与RDBMS一起构建完整的数据库生态系统。

image-20220814124714206


NewSQL

NewSQL:NewSQL追求NoSQL的可扩展性,又同时支持关系模型的关系型数据库系统,其主要面向OTLP联机事务处理场景,能够支持SQL作为主要的使用语言。

NewSQL的特点

  • 采用了新架构重新构建产品
  • 采用Transparent Sharding中间件技术
  • DAAS(数据库即服务),实际上就是云数据库

云数据库

image-20220814124111051


云数据库的优势

  • 易——易使用易管理,业务敏捷上线
  • 稳——高可靠,业务零中断,跨地域容灾备份
  • 快——数据读写时延低,快速响应业务需求
  • 弹——扩展性好,快速自动弹性伸缩
  • 密——数据安全性好,全同态加密

image-20220814124529593


1.3 关系型数据库架构演进

数据库架构发展

随着业务规模增大,数据库存储的数据量和承载的业务压力也不断增大,数据库的架构需要随之变化,为上层应用提供稳定和高效地数据服务。

image-20220814135116079


单机架构

概念:单机架构就是使用一台主机。为了避免应用服务和数据库服务对资源的竞争,单机架构也从早期的单主机模式发展到数据库独立主机模式,把应用和数据服务分开。应用服务可以增加服务器数量,进行负载均衡,增大系统并发能力。

image-20220814140403657

优点:部署集中,运维方便

缺点

  • 数据库架构扩展性只有纵向扩展,即通过硬件配置来提高性能,但单台主机的硬件可配置的资源会遇到上限
  • 存在单点故障。当扩容时往往需要停机扩容,服务此时需要停止。硬件故障还会导致整个服务不可用设置数据丢失
  • 单机会遇到性能瓶颈

分组架构-主备

概念:数据库部署在两台服务器,其中承担数据读写服务的服务器称为主机,另一台服务器利用数据同步机制把主机的数据复制过来,称为备机。在同一时刻,只有一台服务器对外提供数据服务。当主机宕机,备机可以代替主机工作,直至主机被修好。

image-20220814140347400

优点

  • 应用不需要针对数据库故障来增加开发量
  • 相对于单机架构提升了数据容错性

缺点

  • 资源浪费,备机和主机同等配置,但是在主机没有坏掉的情况下,备机相当于备份,没有实际作用
  • 性能压力还是集中在单机上,无法解决性能瓶颈问题
  • 当出现故障的时候,主备机切换需要一定的人工干预和监控

分组架构-主从

概念:部署模式和主备机一样,不过不同的是,备机变成了从机,主机负责写操作而从机负责读操作,这样可以将读写分离,缓解主机压力。

优点

  • 提升资源利用率,适合读多写少的应用场景
  • 在大并发读写的使用场景中,可以使用负载均衡在多个从机间进行平衡
  • 从机的扩展性较为灵活,扩容操作不会影响到业务进行

缺点

  • 延迟问题,数据同步到从机数据库会有延迟,在这个延迟过程中从机可能无法读取到最新的数据,所以应用必须能够容忍短暂的不一致性
  • 写操作的性能压力还是集中在主机上
  • 主机出现故障时,需要实现主从切换,人工干预需要反应的时间,自动切换则实现复杂度较高

分组架构-多主

概念:拥有多台数据库服务器,他们互为主从关系,同时对外提供完整的数据服务。

image-20220814141648496

优点:资源利用率较高的同时降低了单点故障的风险

缺点

  • 多主机都接收写数据,要实现数据的双向同步。而双向复制同样会带来延迟问题,极端情况下有可能数据丢失
  • 数据库数量增加会导致数据同步问题变得极为复杂,故多主实际应用中最多是两台主机

共享存储多活架构

概念:是一种特殊的多主架构,但数据库服务器是共享存储的,而多个服务器实现负载均衡。

image-20220814155110726

优点

  • 多个计算服务器提供高可用服务,提供了高级别的可用性。可伸缩性,避免了服务器集群的单点故障问题。
  • 比较方便的横向扩展能够增加整体系统并行处理的能力

缺点

  • 实现技术难度大
  • 虽然服务器越多可以提供高速服务,但多个服务器都连接同一台存储设备,存储设备的IO带宽跟不上高速的服务,故存储IO容易成为整个系统的性能瓶颈。

分片架构

概念:分片架构主要表现形式就是水平数据分片架构,也就是将数据库的数据拆分成许多份,不同份的数据片放在不同的节点上,称为一个shard。多个节点都拥有相同的数据库结构,但不同分片的数据之间没有交集。由于分片是由数据库所有数据划分,故所有分片的并集应该为数据总体。

image-20220814155103520

常见的分片算法:列表值、范围取值、Hash值

优点:数据分散在集群内的各个节点上,所有节点可以独立性工作。


无共享架构

image-20220814155054745

  • 集群中每一个节点都完全拥有自己独立的CPU/内存/存储,不存在共享资源。
  • 各节点处理自己本地的数据,处理结果可以向上层汇总或者通过通信协议在节点间流转。
  • 节点是相互独立的,扩展能力强。整个集群拥有强大的并行处理能力。
  • 其本质上是一个消息传递多处理机。

MPP架构

概念:本质上MPP架构即为大规模并行处理机。MPP是将任务并行的分散到多个服务器和节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到最终的结果。

image-20220814155046668

常见的MPP产品

  • 无共享Master:Vertica,Terdata
  • 共享Master:Greenplum,Netezza

1.4 关系型数据库主流应用场景

联机事务处理

概念联机事务处理(OnLine Transaction Processing,OLTP)是传统关系数据库的主要应用,面向基本的,日常的事务处理,一般来说时效性要求较高,例如银行储蓄业务的存取交易,转账交易,其要求转账这件事务必须A用户转入B用户必须马上完成。

特点

  • 大吞吐,大量的短在线事务,非常快速的查询处理。
  • 高并发,准实时响应

应用场景

  • 零售系统
  • 金融交易系统
  • 火车票销售系统
  • 秒杀活动

联机分析处理

概念联机分析处理(OnLine Analytical Processing,OLAP)E.F.Codd(那个提出关系型数据库的男人!)于1993年相对于OLTP系统提出的。指对大量的历史数据进行查询和分析操作,涉及到的历史周期比较长,数据量大,在不同层级上的汇总,聚合操作使得事务处理操作比较复杂。

特点

  • 主要面向侧重于复杂查询,回答一些战略性问题。
  • 数据处理方面聚焦与数据的聚合、汇总、分组计算、窗口计算等“分析型”数据的加工和操作
  • 从多维度去使用和分析数据

应用场景

  • 报表系统,CRM系统
  • 反洗钱系统、金融风险预测预警系统
  • 数据仓库、数据集市

OLTP和OLAP对比分析

image-20220814161031441


数据库性能衡量指标

TPC组织(Transaction Processing Performance Council,事务处理性能委员会):

  • 职责是指定商务应用基准测试标准的规范、性能和价格度量,并管理测试结果的发布
  • 指定的是标准规范而不是代码,任何厂家依据规范最优地构造自己系统进行评测
  • 推出了很多基准测试标准,其中针对OLTP和OLAP有两个规范

TPC-C规范

  • 面向OLTP系统,主要包括两个指标
  • tpmc(tpm-transactions per minuete)流量指标,即每分钟测试系统处理的事务数量
  • 性价比指标Price/tpmc

TPC-H规范

  • 面向OLAP类系统
  • qqhH(Query per hour)流量指标,即每分钟处理的复杂查询数量
  • 需要考虑测试数据集合大小,分为不同的测试数据集
  • 测试场景:数据加载、power能力测试和Througput测试。

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

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

相关文章

Unity 通过Unity Admob Plugin插件集成admob教程

原创:officemaster.cn下载Unity Admob Demo,插件里面包含Admob_Unity_Demo.unitypackage 插件文件AdmobPluginRes 是Admob 的ios sdk和插件使用样例代码打开样例代码可以看到代码里面如何使用Unity Admob插件把Admob Unity插件添加进unity工程1. 打开Un…

一幅长文细学华为MRS大数据开发(一)——大数据时代的挑战和机遇

文章目录1 大数据时代的挑战和机遇1.1 大数据基础概念大数据时代的发展大数据定义大数据的4V大数据处理和传统数据处理的差异并行计算相关知识1.2 大数据应用领域大数据金融应用大数据教育应用大数据公共安全应用大数据交通规划应用1.3 大数据计算计算任务的分类大数据应用的主…

一幅长文细学华为MRS大数据开发(二)——HDFS分布式文件系统和ZooKeeper

文章目录2 HDFS分布式文件系统和ZooKeeper2.1 HDFS概述以及应用场景HDFS概述HDFS应用场景HDFS不适合的场景2.2 HDFS相关概念计算机集群结构基本系统架构块NameNode和DataNodes2.3 HDFS体系架构HDFS体系架构概述HDFS命名空间管理通信协议客户端HDFS单名称节点体系结构的局限性心…

BOS12——多对多添加方法,多对多页面需要字段问题(不多的话直接提供get方法),修改Realm中授权方法(查询数据库),缓存Java对象的方法,加载左侧菜单(ztree提供pId)...

1、多对多添加方法 Override public void add(Role model, String functionIds) {// 1.先将角色保存到数据库roleDao.save(model);// 2.为角色添加权限(一定要坚持映射文件中是否inverse)if (StringUtils.isNotBlank(functionIds)){String[] functionIdL…

一幅长文细学JavaScript(七)——Ajax

文章目录7 Ajax7.1 概述7.1.1 基本概念7.1.2 网络通信开发者工具7.1.3 网页请求数据的方式7.1.4 资源的请求方式7.2 JQuery中的Ajax7.2.1 基本知识7.2.2 了解jQuery的Ajax7.2.3 $.get()7.2.4 $.post()7.2.5 $.ajax()7.3 接口7.3.1 接口概念7.3.2 接口测试工具7.4 form表单7.4.1…

Linux系统检查查看桌面环境

Linux的桌面系统系统多达十几种,像gnome、kde、mate、cinnamon、lxde、xfce、jwm等。比较常用的一般是gnome、kde、xfce等。那么如何判断Linux系统安装了哪种桌面环境组件呢?下面总结了一些检查桌面环境的方法: 方法1:env | grep…

一幅长文细学JavaScript(二)——ECMAScript

2 基本程序设计结构 摘要 ​ 对于学习JS的程序员来说,一定是具备了一定的编程功底的,故在下面的概述中,我们不再提及一些简单的概念。 声明:在使用本文的代码时,为了避免文章冗长,我只附上了script标签内的…

HashMap源码剖析

无论是在平时的练习还是项目当中,HashMap用的是非常的广,真可谓无处不在。平时用的时候只知道HashMap是用来存储键值对的,却不知道它的底层是如何实现的。 一、HashMap概述 HashMap基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作…

Android成长日记-Android监听事件的方法

1. Button鼠标点击的监听事件 --setOnClickListener 2. CheckBox, ToggleButton , RadioGroup的改变事件 --setOnCheckedChangeListener Eg: 3. onPageChangeListener() ----用来监控ViewPager滑到第几页转载于:https://www.cnblogs.com/boy1025/p/4301956.html

XSS攻击(出现的原因、预防措施......)

验证XSS攻击重点不是去查找可输入哪些内容会出现什么样的bug就是测试XSS攻击,重点是了解它出现的原理,为什么会出现XSS攻击,导致一些问题出现?如何防御与解决XSS攻击?以下我将简单介绍以上提出的问题。 如何判定没有被…

一幅长文细学JavaScript(三)——DOM

文章目录3 JavaScript DOM3.1 DOM基本术语DOM模型及其作用文档对象模型节点节点的属性文档对象3.2 DOM文档操作3.2.1 查找网页元素3.2.2 获取元素内容新的策略——修改样式更好的策略——修改样式3.2.3 改变元素内容3.2.4 操作网页元素3.2.5 获取元素偏移offset和style的区别3.…

2016国内移动广告平台排行榜

为什么80%的码农都做不了架构师?>>> 移动营销的发展可追溯至第一台便携式手机的诞生,并随着移动终端的更新迭代和广告技术的发展创新;随着移动互联网的技术与商业模式的迅速发展,移动营销领域面临着种种创新与改革&am…

Planning Strategy 和Requirement type的思考

Planning Strategy 和 requirement type的联系 1. 当需要对一个material进行计划的时候 ,我们会自然的考虑到plant的 production方式 ( MTO production or MTS production) ,如果能确定下来是MTO 还是MTS 的方式 , 那就可以确定了计划策略的选择 。 而计…

【摄影】田子坊

图片发自简书App图片发自简书App图片发自简书App图片发自简书App图片发自简书App图片发自简书App图片发自简书App图片发自简书App转载于:https://www.cnblogs.com/wangting888/p/9701627.html

selenium RC 环境配置

在网上搜索了许久,没找到有具体的配置,只是简单了写了几个步骤,自己琢磨了一下,于是,就想整理一篇文章,便于以后温习。 本文是参照官网的步骤进行了,当然了,也不完成相同。在这里我要…

一幅长文细学GaussDB(二)——数据库基础知识

文章目录2 数据库基础知识2.1 数据库管理简介数据库管理数据库管理工作范围对象管理制定数据库对象命名规范备份和恢复灾难恢复备份方式数据库安装数据库卸载数据库迁移数据库扩容例行维护工作2.2 数据库重要概念数据库和数据库实例数据库连接和会话数据库连接池模式表空间表数…

hive如何处理not in和in的问题

2019独角兽企业重金招聘Python工程师标准>>> 首先我们先创建两个表和测试数据。建表语句如下: create table table1(uid STRING, dayTimes BIGINT) PARTITIONED BY (dt STRING); create table table2(uid STRING, monTimes BIGINT) PARTITIONED BY (dt S…

一幅长文细学GaussDB(三)——SQL语法

文章目录3 SQL语法3.1 SQL语句概述SQL语句介绍SQL语句分类3.2 数据类型常用数据类型非常用数据类型3.3 系统函数概述数值计算函数字符处理函数时间日期函数类型转换函数系统信息函数3.4 操作符概述逻辑操作符比较操作符算术操作符测试操作符其他操作符3 SQL语法 华为GaussDB(f…

从网络获取数据显示到TableViewCell容易犯的错

2019独角兽企业重金招聘Python工程师标准>>> 昨晚第一次做用网络接口获取的数据,显示到自己的cell上,犯了很多的错, 总结如下; 1.数据源数组必须首先初始化,一般使用的是懒加载; 2.异步获取网络…

第二学期-第一次作业

1-1. 计算两数的和与差 1.设计思路 第一步:设出被调用函数 op1, op2, *psum, *pdiff ,利用被调函数计算*psum的值和*pdiff的值; 第二步:代入到主函数就是计算a、b的和与差; 第三部:对所得到数值进行输出&a…