文章适用于计算机等级考试NCRE三级数据库技术,内容来源于网络,文章内容侵删,如果文章和个人的理解有出入,请务必以自己的知识储备为准,仅做参考
13.1 分布式数据库技术
13.1.1 分布式数据库概述
- 分布式数据库系统:物理上分散、逻辑上集中的数据库系统
- 分布式数据库:分布式DBS在各个场地上DB的逻辑集合
13.1.2 分布式数据库目标
- 基本特征:本地自治、非集中式管理、高可用性
- 分布透明性:位置独立性、数据分片独立性、数据复制独立性
- 复杂性:分布式查询、事务管理
- 环境独立:硬件独立性、OS独立性、网络独立性、DBMS独立性
13.1.3 数据分布策略
1. 数据分片(从概念到逻辑)
- 水平分片:每个分片是原表中记录的子集
- 垂直分片:每个分片是原表中属性的子集
- 导出分片:导出水平分片
- 混合分片:以上三种的融合
2. 数据分配(从逻辑到物理)
- 集中式分配:所有数据片段安排在一个场地上
- 分割式分配:所有全局数据只有一份,被指定到若干场地
- 全复制式分配:全局数据有多个副本,每个场地上有一个完整的数据副本
- 混合式:介于分割与全复制式之间
13.1.4 透明性
- 分片透明性:用户无需考虑数据分配
- 位置透明性:用户只需考虑分片情况,不需要考虑数据分片位置
- 局部数据模型透明性:用户需要了解分片、副本复制、位置分配情况
13.1.5 分布式数据库相关技术
1. 分布式查询
- 用户与分布式DBS的接口
- 需要考虑:操作执行的顺序、操作的执行算法、不同场地间的数据流动和顺序
2. 分布式事务管理
- 恢复控制:基于两阶段提交协议(准备阶段和提交阶段)
- 并发控制:基于封锁协议
13.2 并行数据库技术
13.2.1 并行数据库概述
- 并行DBS:通过并行实现数据操作,提高系统性能
- 优势:高可用性
13.2.2 并行数据库结构
| 结构类型 | 描述 |
|---|---|
| 共享内存系统 | 多个CPU通过网络访问共同内存,CPU增多容易内存冲突 |
| 共享磁盘系统 | 多个CPU拥有自己的内存,通过网络共享硬盘,增加了通信代价 |
| 无共享资源系统 | 多个CPU拥有自己的内存和磁盘,通过网络通信,通信代价最高 |
| 层次结构 | 前三种体系的结合,分为顶层(无共享)和底层(共享内存或共享硬盘) |
13.2.3 一维数据划分方法
-
一维数据划分:将大数据集水平划分到多个磁盘,以通过并行读写有效利用多磁盘的I/O带宽
-
轮转法:如果系统有n个CPU,将第i条记录划分到第i mod n个CPU的方法
-
散列法:使用特定的哈希函数,作用于选定的属性,将记录划分到不同CPU
-
范围划分法:先排序,后分区,每个区域分配给不同CPU
-
优劣势分析:
- 轮转法可有效应用于需要访问整个关系的查询处理,当需要访问部分记录时,散列法和范围法更优;
- 范围法可能导致数据倾斜,即不同分片含有的记录数目差别很大,造成性能瓶颈;
- 散列法优点:即使数据随时间增加或减少,也能保持均匀分布
13.2.4 并行算法
-
并行排序:
- 用区域划分法将关系的所有记录重新分布再排序
- 每个CPU使用排序算法对分配给它的记录排序,得到有序序列
- 通过按照区域划分的对应次序访问处理机得到完整的有序关系
-
并行连接:
- 对关系A和B重新划分,把连接属性的取值分为k个区域
13.3 云数据库技术
13.3.1 云的概念和类型
- 云 :云计算供应商(一般为网络大厂)的数据中心的软硬兼施
- 公有云:以即用即付的方式提供给大众
- 私有云:不对大众进行公开
- 混合云:公有云和私有云混合
13.3.2 云计算概述
- 云计算:一种商业计算模型,将计算任务分布在大量计算机构成的资源池上,使各种APP能够根据需要获取算力、存储空间和信息服务
13.3.3 云计算来源和组成
- 并行计算:同时使用多种计算资源解决计算问题
- 分布式计算:将大任务分解成小任务,分发给不同计算设备,计算后再汇总
- 网格计算:在动态、多机构参与的虚拟组织中共同解决计算问题
13.3.4 云计算服务类型
- IaaS:Infrastructure as a Service,基础设施作为服务,主要提供硬件设备
- PaaS:Platform as a Service,平台作为服务,将硬件加工为软件平台提供
- SaaS:Software as a Service,软件作为服务,将硬件和平台加工为软件提供
13.3.5 云数据库体结构
- 云数据库:云+数据库
- 主要平台:AWS(Amazon Web Services)、GAE(Google App Engine)、Hadoop
13.3.6 云计算技术体系结构
(文档中此节无具体内容)
13.3.7 谷歌云
- Google File System:文件系统
- Map/Reduce:分布式编程环境
- Chubby:分布式锁机制
- Big Table:大规模分布式数据库
13.3.8 云数据库缺点
- 数据安全问题
- 对云的管理问题
- 对网络的依赖
13.4 XML数据库技术
13.4.1 XML数据库概述
- XML:eXtensible Markup Language,可扩展标识语言,半结构化语言
- XML数据库:可以对XML文档格式进行存储和查询操作的数据库
13.4.2 XML数据库类型
- XML Enabled Database (EXDB):能处理XML的数据库
- Native XML Database (NXDB):纯XML数据库
- Hybird XML Database (HXDB):混合XML数据库
13.4.3 XML数据库优势
- 能够对半结构化数据进行处理
- 能够对标签和路径进行操作
- 能清晰的表达数据的层次特征
13.4.4 SQL SERVER与XML
-
返回XML语句 :
SELECT * FROM table FOR XML -
XML类型字段 :
sqlCREATE table(uid int, content xml) `