计算机四级 - 数据库原理 - 第8章「分布式、对象-关系、NOSQL数据库」

8.1 分布式数据库系统

  1. 分布式数据库:定义为一个分布于计算机网络上的、逻辑上相关的若干数据库的集和;分布式系统的用户的操作与非分布式系统是完全相同的;分布式数据库的所有问题是内部的、实现级别的问题;分布式数据库增加了可靠性和可用性。
  • 主要目标之一就是数据处理的本地化,即将关系中的数据分成若干互不重叠的子集
  • 分布式数据查询将以减少传输的数据量为优化目标
  1. 分布透明性:指用户能够从网络的操作细节中解脱出来,分为位置透明性和命名透明性,其他透明性包括复制透明性、分片透明性、设计透明性和执行透明性

3.数据分片:(对全局关系的分布)

  • 水平分片:将所有元组划分成若干不相交的子集;
  • 垂直分片:关系的垂直片段只保留关系的某些属性,且每一个垂直分片都包含该关系的主键。为了从一个完备垂直分片重构R,需要在垂直分片上使用外部并
  • 混合分片

遵守的原则:

  • 完备性原则:必须把所有数据都映射到片段中
  • 可重构原则:必须保证通过各个片段可以重构全局关系
  • 不相交原则:各个数据片段互不重叠(垂直分片的主键除外)
  1. 在分布式数据库中,查询处理事比较复杂的,在执行分布式查询时,半连接操作比较有效。半连接操作是不可交换的

  2. 并发控制方法负责维护数据项的多个副本之间的一致性。

  3. 基于识别数据项副本的分布式并发控制:

主站点技术:所有的识别副本都被保留在相同的站点上

带有备份站点的主站点:通过指派第二个站点为备份站点

主副本技术:各种数据项的识别副本可以被存储在不同的站点上

  1. 基于投票方法的分布式并发控制:

在投票方法中,没有识别副本,每个副本维护它自己的锁,并且可以授予或拒绝对它的加锁请求。模拟研究表明投票方法在站点间产生的信息通信量比识别副本方法产生的要高

8.2 对象及对象-关系数据库

  1. 一个典型的对象有两个组成部分:状态和行为,OOPL中的对象只在程序执行过程中存在,所以称为临时对象

  2. ODB为存储在数据库中每一个独立的对象提供一个唯一的、由系统生成的对象标识符OID

  3. 三种最基本的构造器是:原子、结构(元组)、汇集,汇集类型的构造器包括集合、列表、包、数组和字典等

  4. 多重继承的一般规则是:如果从某个超类型那里继承了函数,那就只继承一次,这种情况下没有二义性;只有当两个超类型中的同名函数不相同时才会发生二义性。处理二义性的方案:用户明确选择继承哪一个实现、方案由系统默认选择一种函数实现。一些面向对象系统不允许多重继承

  5. ODMG对象模型是对象定义语言(ODL)和对象查询语言(OQL)的基础。ODMG为对象数据库建立了标准数据模型

  6. ODMG中对象可以用五个方面来描述:标识符、名称、生存期、结构和创建

  7. 对象定义语言ODL被设计成支持ODMG对象模型的语义结构,并且独立于任何特定的编程语言,它的主要用途是创建对象说明,也就是类和接口。

  8. 对象查询语言OQL是ODB提供的一种标准查询语,它在设计时要与编程语言紧密配合使用。OQL语法和关系型标准查询语言SQL的语法相似,只是增加了有关ODMG概念的特征

  9. 对象-关系数据库系统以关系数据模型为基础,表不再是传统意义下符合第一范式的简单的二维表。对象数据库的面向对象扩充是在SQL环境中进行的。该系统提供了继承机制

8.3 NOSQL数据库简介

  1. 在内存中使用丰富的数据结构,把它保存到磁盘之前,必须要将其转换为关系形式,于是就发生了"阻抗失谐"

  2. 很多NOSQL不需要串行化一致性,这样可使用放松形式的一致性要求:最终一致性

  3. NOSQL存在两种复制模型:

  4. 主-从复制:需要一个复制为主复制,所有的写操作都必须是对主复制的,通常使用的是最终一致性。

  5. 主-主复制:允许读和写都可以在任意的复制节点进行

  6. CAP原理:代表了具有数据项副本的分布式系统的三个需求:数据项副本之间的一致性、系统读和写操作的可用性,以及由于网路故障系统中节点被分区的分区容忍性 。对于一个计算机系统来说,最多只能同时满足两个。

  7. BASE:

  • 基本可用:分布式系统在出现不可预知故障的时候,允许损失部分可用性,但不等价于系统不可用。
  • 软状态:允许系统在不同节点的数据副本之间进行数据同步的过程存在延时。
  • 最终一致性:强调系统中所有的数据副本在经过一段时间的同步后最终能够达到一个一致的状态。
  1. NOSQL系统的分类:键值存储数据库、文档型数据库、列存储数据库、图形数据库

其余章节进我主页进行查看

相关推荐
博一波4 分钟前
Redis 集群:连锁银行的 “多网点智能协作系统”
数据库·redis·缓存
HashData酷克数据10 分钟前
官宣:Apache Cloudberry (Incubating) 2.0.0 发布!
数据库·开源·apache·cloudberry
秋难降10 分钟前
SQL 索引突然 “罢工”?快来看看为什么
数据库·后端·sql
TDengine (老段)40 分钟前
TDengine 时间函数 TODAY() 用户手册
大数据·数据库·物联网·oracle·时序数据库·tdengine·涛思数据
四谎真好看42 分钟前
Java 学习笔记(进阶篇2)
java·笔记·学习
码界奇点1 小时前
KingbaseES一体化架构与多层防护体系如何保障企业级数据库的持续稳定与弹性扩展
数据库·架构·可用性测试
悟乙己1 小时前
数据科学家如何更好地展示自己的能力
大数据·数据库·数据科学家
皆过客,揽星河2 小时前
mysql进阶语法(视图)
数据库·sql·mysql·mysql基础语法·mysql进阶语法·视图创建修改删除
tuokuac2 小时前
Redis 的相关文件作用
数据库·redis·缓存
Suckerbin3 小时前
DarkHole: 2靶场渗透
笔记·安全·web安全·网络安全