分布式数据库原理与应用-1


第一章 绪论

数据库基本知识

什么是数据库?

什么是数据模型?

有哪些数据模型?

1
数据库技术发展至今,传统数据库根据不同的数据模型,主要有以下几种:层次型、网状型和关系型。

image-20230417165719863

image-20230417170008924

1
2
3
4
5
6
7
8
9
10
关系模型要点回顾   
1. 数据结构:
现实世界的实体以及实体之间的各种联系均用关系来表示
数据逻辑结构:二维表

2. 完整性约束条件
域完整性,实体完整性,参照完整性

3. 关系操作
选择,投影,连接 等等关系运算;操作对象和结果都是集合

关系型数据库的优点

1
2
3
4
关系型数据库的特点
(1)容易理解:用二维表表示
(2)使用方便:通用的SQL语言。
(3)易于维护:丰富的完整性约束大大减低了数据冗余和数据不一致的可能性。

关系型数据库的不足

1
2
3
4
5
6
7
8
对海量数据的读写效率低
表中有大量数据时,数据的读写速率非常的缓慢
无法适应多变的数据结构
现代网络中存在大量的半结构化、非结构化数据,针对结构化数据而设计的关系型数据库系统来说,对这些不断变化的数据结构,很难进行高效的处理。
高并发读写的瓶颈
当数据量达到一定规模时由于关系型数据库的系统逻辑非常复杂,使得在并发处理时非常容易发生死锁,导致其读写速度下滑严重。
可扩展性的限制
由于关系型数据库存在类似的join操作,使得数据库在扩展方面很困难。

NOSQL数据库理论基础

什么是NoSQL

image-20230417170659240

分布式数据库的特征

1
2
3
4
分布式数据库必须具有如下特征,才能应对不断增长的海量数据。
● 高可扩展性:分布式数据库必须具有高可扩展性,能够动态地增添存储节点以实现存储容量的线性扩展
● 高并发性:分布式数据库必须及时响应大规模用户的读/写请求,能对海量数据进行随机读写
● 高可用性:分布式数据库必须提供容错机制,能够实现对数据的冗余备份,保证数据和服务的高度可靠性

NoSQL的特点

image-20230417171305105

分布式数据库的数据管理

什么是数据库系统?

1
数据库系统  =  数据库管理系统     +     数据库

什么是数据库管理系统?

1
数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。主要任务就是对外提供数据,对内要管理数据。

数据处理方式:集中式VS分布式

1
集中式数据库是指数据库中的数据集中存储在一台计算机上,数据的处理也集中在一台机器上完成。
1
分布式数据库是指利用高速计算机网络将物理上分散的多个数据存储单元连接起来组成一个逻辑上统一的数据库。

CAP理论

1
2
3
4
5
6
7
8
C:一致性(consistency)(强一致性)
它是指任何一个读操作总是能够读到之前完成的写操作的结果。所有节点在同一时间具有相同的数据。

A:可用性(Availability)(高可用性)
每个请求都能在确定时间内返回一个响应,无论请求是成功或失败。

P:分区容忍性(Partition Tolerance)
它是指在一个集群,即系统中的一部分节点无法和其他节点进行通信,系统也能正常运行。也就是说,系统中部分信息的丢失或失败不会影响系统的继续运作。
1
2
3
4
当处理CAP的问题时,可以有几个明显的选择:
CA:也就是强调一致性(C)和可用性(A),放弃分区容忍性(P),最简单的做法是把所有与事务相关的内容都放到同一台机器上。
CP:也就是强调一致性(C)和分区容忍性(P),放弃可用性(A),当出现网络分区的情况时,受影响的服务需要等待数据一致,因此在等待期间就无法对外提供服务
AP:也就是强调可用性(A)和分区容忍性(P),放弃一致性(C),允许系统返回不一致的数据
设计原则:在C、A、P之中取舍

image-20230417172155421

ACID、BASE与一致性

ACID与BASE

为什么会出现ACID、BASE ?

1
2
3
CAP理论定义了分布式存储的根本问题,但并没有指出一致性和可用性之间到底应该如何权衡。于是出现了ACID、BASE ,给出了权衡A与C的一种可行方案。
ACID和BASE代表了在一致性-可用性两点之间进行选择的设计哲学
ACID强调一致性被关系数据库使用,BASE强调可用性被大多数Nosql使用

ACID是什么?

1
指数据库事务正确执行的四个基本要素的缩写。包含:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。
1
2
3
4
5
6
7
原子性:一个事务的所有系列操作步骤被看成是一个动作,所有的步骤要么全部完成要么都不会完成。

一致性:事务执行前后,数据库的状态都满足所有的完整性约束。不能发生表与表之间存在外键约束,但是有数据却违背这种约束性。

隔离性:并发执行的事务是隔离的,保证多个事务互不影响,隔离能够确保并发执行的事务能够顺序一个接一个执行,通过隔离,一个未完成事务不会影响另外一个未完成事务。

持久性:一个事务一旦提交,它对数据库中数据的改变就应该是永久性的,不会因为和其他操作冲突而取消这个事务。

BASE原则又是什么?

1
BASE原则 = 基本可用性(Basically Available)+软状态(Soft state)+最终一致性(Eventuallyconsistent)
1
2
3
4
5
基本可用性:分布式系统在出现故障的时候,允许损失部分可用性,即保证核心功能或者当前最重要功能可用,但是其他功能会被削弱。

软状态:允许系统数据存在中间状态,但不会影响到系统的整体可用性,即允许系统在不同节点的数据副本之间进行数据同步时存在延时。

最终一致性:要求系统数据副本最终能够一致,而不需要实时保证数据副本一致。最终一致性是弱一致性的一种特殊情况。

NoSQL数据库分类

image-20230417173132275


本文标题:分布式数据库原理与应用-1

文章作者:TTYONG

发布时间:2023年04月17日 - 16:04

最后更新:2023年06月22日 - 15:06

原始链接:http://tianyong.fun/%E5%88%86%E5%B8%83%E5%BC%8F%E6%95%B0%E6%8D%AE%E5%BA%93%E5%8E%9F%E7%90%86%E4%B8%8E%E5%BA%94%E7%94%A8-1.html

许可协议: 转载请保留原文链接及作者。

多少都是爱
0%