HCIA-GaussDB学习笔记 第一章 数据库介绍

第一章 数据库介绍

1.1数据库技术概述

学习目标:
1.描述数据库技术相关概念;
2.列举主要的关系型数据库;
3.区别不同的关系型数据架构;
4.描述并识别关系型数据库的主要应用场景。

  • 记录是在计算机中表示和存储数据的一种格式或一种方法。
  • 数据库是存放数据的仓库,是大量数据的集合。(数据库是长期存放在计算机内,有组织的、可共享的,大量数据集合。)
  • 存放在数据库中数据的特点:1.永久存储 2.有组织 3.可共享
  • 数据库管理系统是一个能够科学地组织和存储数据,高效地获取和维护数据的系统软件,是位于用户与操作系统之间的数据管理软件。
  • 数据库管理系统主要功能包括:1.数据定义功能;2.数据组织、存储和管理功能;3.数据操纵功能;4.数据库的事务管理和运行管理功能;5.数据库的建立和维护功能;6.与其他软件系统的通信功能等。
  • 数据库系统是由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员组成的存储、管理、处理和维护数据的系统。

思考题

  1. 存放在数据库中数据的特点是(ABD)A.永久存储 B.有组织 C.独立性 D.可共享
  2. 属于数据库系统这个概念范围的组成部分有(ABCD)A.数据库管理系统 B.数据库 C.应用开发工具 D.应用程序
  3. 数据库应用程序可以不经过数据库管理系统而直接读取数据库文件(False)

1.2数据库技术发展史

1.2.1 数据库系统的优势

  • 整体数据的结构化:数据面向整个系统而不是单个应用,被多个应用共享。
  • 数据的共享性高,冗余度低且易扩充。
  • 数据独立性高:①物理独立性:应用程序与数据库中数据的物理存储是相互独立的。②逻辑独立性:应用程序与数据库的逻辑结构是相互独立的。
  • 统一管理与控制:①数据的安全性保护;②数据的完整性检查;③并发控制;④数据库恢复。

1.2.2 数据库系统发展特点

  • 数据库系统已经成为计算机信息系统和智能应用系统的核心技术之一和重要基础。
  • 数据库系统的发展特点:①数据库的发展集中表现在数据模型的发展上;②与其他计算机技术交叉结合;③面向应用领域发展数据库新技术。

1.2.3 三大经典数据模型:层次、网状、关系模型

  • 层次模型:①有且只有一个节点没有双亲,该节点被称为根节点(root)。②根节点以外的其他节点有且只有一个双亲节点。
  • 网状模型:①允许一个以上的节点无双亲。②一个节点可以有多于一个的双亲。
  • 关系模型:①建立在严格的数据概念基础上。②关系必须是规范化的。③关系的分量必须是一个不可分的数据项。

1.2.4 结构化查询语言(Structured Query Language)

SQL语言:

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

1.2.5 关系型数据库ACID特性:

  • 原子性(Atomicity):事务是数据库的逻辑工作单位,事务中的操作,要么都做,要么都不做。
  • 一致性(Consistency):事物的执行结果必须是使数据库从一个一致性状态转到另一个一致性状态。
  • 隔离性(Isolation):数据库中一个事务的执行不能被其他事务干扰。即一个事物的内部操作及使用的数据对其他事务是隔离的,并发执行的各个事务不能相互干扰。
  • 持久性(Durability):事务一旦提交,对数据库中数据的改变是永久的。提交后的操作或者故障,不会对事务的操作结果产生任何影响。。

1.2.6 其他数据模型

面向对象数据模型(ObjectOrientedDataModel,OO模型):

  1. 将语义数据模型和面向对象程序设计方法结合起来,用一系列面向对象核心概念构成模型基础。
  2. 由于面向对象数据库操作语言过于复杂,没有得到开发人员认可。

XML数据模型:

  1. 随着互联网迅速发展,出现了大量的半结构化和非结构化数据源,XML成为网上交换数据的标准之一以及研究热点,相应地出现了半结构化数据的XML数据模型。
  2. 纯XML数据库基于XML节点树模型,可以支持XML数据管理,但是同样要解决传统关系型数据库所面临的各种问题。

RDF数据模型:

  1. 互联网的信息没有统一表达方式,W3C提出资源描述框架(Resource Description Framework,RDF)来描述和注解互联网资源;
  2. RDF是描述互联网资源的标记语言,结构为(主语,谓词,宾语);
  3. 主要用于语义网、知识库的基础数据模型,是当前知识图谱技术的基石。

1.2.7 数据管理技术的新挑战

高度可扩展性和可伸缩性:

  1. 随着数据获取手段的自动化,多样化和智能化,导致数据量急剧增大。

数据类型多样和异构处理能力:

  1. 结构化数据到半结构化/非结构化数据;
  2. 文本到图形图像,音频视频等多媒体数据;
  3. 流数据、队列数据。

数据处理时效性要求:

  1. 传感、网络和通信技术发展对于数据快速流入和处理,实时性方面提出了更高要求。

大数据时代来临:

  1. 传统关系型数据库面对海量异构、形式繁杂、高速增长、价值密度低的数据问题遇到全面挑战。
  2. NoSQL技术顺应大数据发展的需要,蓬勃发展。

管理需求:

  • 高可扩展性
  • 高性能
  • 容错性
  • 高伸缩性

4V特性:

  • Volume 数量
  • Variety 多样性
  • Veracity 速度
  • Velocity真实

1.2.8 NoSQL技术特点和类型

NoSQL(Not Only SQL):

  1. 非关系型的、分布式的、不保证满足ACID特性的一类数据管理系统。

技术特点:

  1. 对数据进行分区(partitioning),利用大量节点并行处理获得高性能,同时能够采用横向扩展方式(scale out);
  2. 降低ACID一致性约束,允许暂时不一致,接受最终一致性。遵循BASE(Basically Available,Soft state,Eventual consistency)原则;
  3. 各数据分区提供备份(一般是三份),应对节点故障,提高系统可用性。

常见NoSQL数据库技术:
在这里插入图片描述


1.2.9 主要NoSQL数据库简介

在这里插入图片描述


1.2.10 NewSQL浅谈

NewSQL:

  1. 指追求NoSQL的可扩展性同时能够支持关系模型(包括ACID特性)的关系型数据库系统,主要面向OLTP场景。
  2. 能够支持SQL作为主要的使用语言。

NewSQL的分类:

  1. 采用了新架构重新构建产品。
    ①Shared-nothing,多节点并发控制,分布式处理,利用复制实现容错,流式控制等技术架构。
    ②Google Spanner,H-Store,VoltDB等。

  2. 采用Transparent Sharding中间件技术。
    ①数据分片(sharding)的过程对于用户来说是透明的(transparent),用户的应用程序不需要作出变化。
    ②Oracle Mysql Proxy,MariaDB MaxSacle等。

  3. DAAS(Database-as-a-Service,数据库即服务)。
    ①云服务商提供的数据库产品,云服务商提供具备NewSQL特性的数据库产品。
    ②Amazon Aurora,阿里云的Oceanbase,腾讯云的CynosDB。


思考题

  1. 数据管理的发展,历史上经历了哪几个阶段?(ACD)A.人工阶段 B.智能系统C.文件系统 D.数据库系统
  2. 允许一个以上的节点无双亲,一个节点可以有多于一个的双亲,这些特性对应的是哪种数据模型?(D)A.层次模型 B.关系模型 C.面向对象模型 D.网状模型
  3. 下面选项中属于NOSQL数据库的是:(ABCD)A.图数据库 B.文档数据库 C.键值数据库 D.列分组数据库
  4. NOSQL和NewSQL数据库的出现能够彻底颠覆和取代原有的关系型数据库系统。(False)

1.3关系型数据库架构介绍

1.3.1 数据库架构发展

数据库架构变化:

  • 随着业务规模增大,数据库存储的数据量和承载的业务压力也不断增加,数据库的架构需要随之变化,为上层应用提供稳定和高效的数据服务。
    在这里插入图片描述

图片讲解:

  • 按照主机数量划分,可以将数据架构分成单机架构多机架构。所以,一个数据库主机的数据库架构叫单机架构;多于一个数据库主机的数据库架构叫多机架构
  • 多机架构,通过增加服务器数量来增加整个数据库服务的可用性和服务能力。
  • 单机架构进一步划分。数据库应用和数据库都部署在一个主机上,叫单主机架构;数据库应用和数据库部署在不同主机上,叫独立主机架构
  • 按照数据是否拆分成分片状态,可以将多机架构分成分组架构分片架构
  • 因为每个服务器拥有的角色不同,因而分组架构可以进一步划分成主备机架构主从式架构多主架构
  • 无论哪种分组方式,都是多个数据库结构相同,多个库存储的数据也完全相同,本质上是利用同步技术在多个库之间进行数据复制,而分片架构就是通过某种机制,把数据分片后,分散到不同主机里面。

1.3.2 单机架构

单机架构:

  • 为了避免应用服务和数据库服务对资源的竞争,单机架构也从早期的单主机模式发展到数据库独立主机模式,把应用和数据服务分开。应用服务可以增加服务器数量,进行负载均衡,增大系统并发能力。
    优点:
  • 部署集中,运维方便。
    缺点:
  • 可扩展性:数据库单机架构扩展性只有纵向扩展(Scale-up)。通过增加硬件配置来提升性能,但单台主机的硬件可配置的资源会遇到上限。
  • 存在单点故障:①扩容的时候往往需要停机扩容,服务停止。②硬件故障导致整个服务不可用,甚至数据丢失。③单机会遇到性能瓶颈。

在这里啊啊啊


1.3.3 分组架构——主备

主备机架构:

  • 由单机架构衍生而来,主要为了解决单点故障问题。
  • 数据库部署在两台服务器,其中承担数据读写服务的服务器称为“主机”。
  • 另外一台服务器利用数据同步机制把主机的数据复制过来,称为“备机”。
  • 同一时点,只有一台服务器对外提供数据服务。

优点:

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

缺点:

  • 资源浪费,备机和主机同等配置,但长期范围内基本上资源限制,无法利用。
  • 性能压力还是集中在单机上,无法解决性能瓶颈问题。
  • 当出现故障时候,主备机切换需要一定的人工干预或者监控。
  • 主备机模式只是解决了数据高可用性问题,无法解决性能瓶颈,性能依然受制于单排(台)服务器的硬件配置。增加服务器数量不助于性能的整体提升。
    在这里插入图片描述

1.3.4 分组架构——主从

主从式架构:

  • 部署模式和主备机模式相似,备机(Backup)上升为从机(Slave),对外提供一定的数据服务。
  • (需要稍微改变一下应用程序的设计)通过读写分离方式分散压力:①写入、修改、删除操作,在写库(主机)上完成;
  • 把查询请求,分配到读库(从机)。

优点:

  • 提升资源利用率,适合读多写少的应用场景。
  • 在大并发读的使用场景,可以使用负载均衡在多个主机间进行平衡。
  • 从机的扩展性比较灵活,扩容操作不会影响到业务进行。
    缺点:
  • 延迟问题,数据同步到从机数据库时会有延迟,所以应用必须能够容忍短暂的不一致性。对于一致性要求非常高的场景是不适合的。
  • 写操作的性能压力还是集中在主机上。
  • 主机出现故障,需要实现主从切换,人工干预需要响应时间,自动切换复杂度较高。
    在这里插入图片描述

1.3.5 分组架构——多主

多主架构:

  • 数据库服务器互为主从,同时对外提供完整的数据服务。多主架构也称双活、多活架构。

优点:

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

缺点:

  • 双主机都接受写数据,要实现数据双向同步。双向复制同样会带来延迟问题,极端情况下有可能数据丢失。
  • 数据库数量增加会导致数据同步问题变得极为复杂,实际应用中多见双机模式。
    在这里插入图片描述

1.3.6 共享存储多活架构

共享存储的多活架构(SharedDisk):

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

优点:

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

缺点:

  • 实现技术难度大。
  • 当存储器接口带宽达到饱和的时候,增加节点并不能获得更高的性能,存储IO容易成为整个系统的性能瓶颈。
    在这里插入图片描述

1.3.7 分片(Sharding)架构

分片架构主要表现形式就是水平数据分片架构:

  • 把数据分散在多个节点上的分片方案,每一个分片包括数据库的一部分,称为一个shard。
  • 多个节点都拥有相同的数据库结构,但不同分片的数据之间没有交集,所有分区数据的并集构成数据总体。
  • 常见的分片算法有:根据列表值,范围取值和Hash值进行数据分片。

优点:

  • 数据分散在集群内的各个节点上,所有节点可以独立性工作。
  • 充分发挥了集群的并行优势。
    在这里插入图片描述

1.3.8 无共享(Share-Nothing)架构

无共享架构:

  • 集群中每一个节点(处理单元)都完全拥有自己独立的CPU/内存/存储,不存在共享资源。
  • 各节点(处理单元)处理自己本地的数据,处理结果可以向上层汇总或者通过通信协议在节点间流转。
  • 节点是相互独立的,扩展能力强。整个集群拥有强大的并行处理能力。
  • 在硬件发展到当前时代,一个节点或一个物理主机上,可以部署多个处理单元,所以Share-Nothing最小单元可能不是物理主机,而是逻辑上的虚拟处理单元,比如一个物理主机具有4核cpu可以部署四个数据库实例,也是相当于拥有4个处理单元。
    在这里插入图片描述

1.3.9 MPP架构(Massively Parallel Processing)

MPP:大规模并行处理(MassivelyParallelProcessing):

  • MPP是将任务并行的分散到多个服务器和节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到最终的结果。

特征:

  • 任务并行执行,分布式计算。

常见的MPP产品:

  • 无共享Master:Vertica,Teradata。
  • 共享Master:Greenplum,Netezza

无共享Master:

  • 所有节点对等;
  • 可以通过任意节点查询或加载数据;
  • 不存在性能瓶颈和单点风险。
    在这里插入图片描述

1.3.10 数据库架构特点对比

在这里插入图片描述


思考题

  1. 主备架构可以通过读写分离方式来提高整体的读写并发能力(B)
    A.True B.False

解析:主从架构可以提供读写分离,主备架构中的“备”只是提高数据高可用性,不保证服务的性能提升。

  1. 哪种数据库架构具有良好的线性扩展能力?(B)
    A.主从架构 B.Shared-nothing架构 C.Shared-disk架构 D.主备架构
  2. 分片架构的特点就是通过一定的算法把数据分散在集群的各个数据库节点上,利用集群内服务器数量的优势进行并行计算。(A)
    A.True B.False

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

1.4.1 联机事务处理(OnLineTransaction Processing):

OLTP是传统关系数据库的主要应用:

  • 面向基本的,日常的事务处理,例如银行储蓄业务的存取交易,转账交易等。

特点:

  • 大吞吐量:大量的短在线事务(插入、更新、删除),非常快速的查询处理。
  • 高并发,(准)实时响应。
  • 每个事务的数据量都非常小,比如一条客户信息,一个订单信息发生插入、更新、删除操作的时候影响的数据是有限的,OLTP场景对响应的时效性要求非常高,要求数据库系统能对大量的并发事务操作进行快速处理,每个事务的响应级别都是毫秒级别的,甚至更低,而且业务并发量很大,高并发是OLTP场景下最显著的特征之一。

典型的OLTP场景:

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

1.4.2 联机分析处理(OnLine Analytical Processing)

OLAP

  • 联机分析处理的概念最早是E.F.Codd于1993年相对于OLTP系统而提出的。
  • 是指对数据的查询和分析操作,通常对大量的历史数据查询和分析。涉及到的历史周期比较长,数据量大,在不同层级上的汇总,聚合操作使得事务处理操作比较复杂。

特点:

  • 主要面向侧重于复杂查询,回答一些“战略性”的问题。
  • 数据处理方面聚焦于数据的聚合,汇总,分组计算,窗口计算等“分析型”数据加工和操作。
  • 从多维度去使用和分析数据。
  • 相较于OLTP, OLAP更侧重于大数据量的事务型操作,通常是较为复杂的查询数据处理方面,则聚焦于数据的聚合,汇总,分组计算,窗口计算等“分析型”数据加工和操作,这种查询涉及到的数据历史周期比较长,数据量很大,而且一般会在不同层级上进行汇总、聚合、排序等操作,使得事务处理操作非常复杂,对于这种事故的查询,一般要求响应时间在秒级,甚至分钟级,常见的OLAP的使用场景就是常说的数据仓库,数据集市系统。

典型的OLAP场景:

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

1.4.3 数据库性能衡量指标

TPC(TransactionProcessingPerformanceCouncil,事务处理性能委员会):

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

TPC-C规范:

  • 面向OLTP系统,主要包括两个指标:
    ①流量指标:tpmC(tpm–transactions per minuete, 即每分钟测试系统处理的事务数量)。
    ②性价比指标:Price(测试系统价格)/tmpC。即达到基本单位需要达到的成本。

TPC-H规范:

  • 面向OLAP类系统:
    ①流量指标:qphH–Query per hour,即每小时处理的复杂查询数量。
    ②需要考虑测试数据集合大小,分为不同的测试数据集,指定了22个查询语句,可以根据产品微调。
    ③测试场景:数据加载,Power能力测试和Througput测试。

1.4.4 OLTP和OLAP对比分析

在这里插入图片描述


思考题

  1. 衡量OLTP系统的测试指标包括:(AB)
    A.tpmC B.Price/tmpC C.qphH D.qps
  2. OLAP系统适用下面哪些场景(ACD)
    A.报表系统 B.在线交易系统 C.多维分析,数据挖掘系统 D.数据仓库
  3. OLAP系统能够对大量数据进行分析处理,所以同样能够满足OLTP对于小数据量处理的性能需求(B)
    A.True B.False

HTAP目标是使用一套系统能同时承载OLTP和OLAP两种应用场景。
OLTP和OLAP都遵循关系型数据库ACID特性。

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值