高级数据库-分布式
1并行数据库
-
为什么要分片
-
如何分片
- 垂直分片
- 水平分片
- 主键水平分片
- 衍生水平分片
- 混合分片
-
分多少片
-
如何测试正确性
-
完整性
关系R分解为片段R1, R2,…,当且仅当R中的每个数据项也可以在某个Ri中找到时,Rn是完备的
-
重构行
如果关系R被分解为片段R1, R2,…, Rn,那么应该存在某种关系运算符∇R =∇1≤i≤nRi
-
不相交性
如果关系R被分解为片段R1, R2,…, Rn,且数据项di在Rj中,则di不应该在任何其他片段Rk中(k≠j)。
-
-
如何分配
-
不重复
分区:每个片段只驻留在一个站点上
-
重复
完全重复:每个站点的每个片段
部分重复:部分站点的每个片段
-
-
信息需求
- 数据库信息
- 应用程序信息
- 通信网络信息
- 计算机系统信息
2.2分布式查询处理
sql优化多表连接
嵌套连接、排序合并连接(索引连接)、哈希连接
3.数据库关系运算
基本:笛卡尔积,选择,投影,并,差
交,连接,除
4.为什么用乘
表达更加简洁
并行数据库划分数据的方法
- 轮转法:对关系顺序扫描,将第i个元组存储到标号为Dimod的磁盘上;该方式保证了元组在多个磁盘上均匀分布。
- 散列划分:选定一个值域为{0, 1, …,n-1}的散列函数,对关系中的元组基于划分属性进行散列。如果散列函数返回i,则将其存储到第i个磁盘。
- 范围划分:该策略按照关系中某个属性的取值范围将数据文件划分为几部分,分别存放到磁盘上。由此可见,轮转法最适合于扫描整个关系的应用,并在扫描时可以并行地从几个磁盘读取数据,负载平衡,充分发挥了并行性。
分布式数据库与并行数据库的区别
-
应用研究不同。并行数据库系统的目标是充分发挥并行计算机的优势,利用系统中的各个处理机结点并行完成数据库任务,提高数据库系统的整体性能,分布式数据库系统主要目的在于可以实现场地自治和数据的全局透明共享,而不要求利用网络中的各个结点来提高系统分析处理性能。
-
不同的实现方式。在具体实施中,分布式数据库系统与并行数据库系统也有很大的不同。 在并行数据库系统中,为了充分利用各节点的处理能力,可以在各节点之间采用高速网络连接。节点键的数据传输的成本相对较低,当一些节点处于空闲状态,可以通过高速网络处理工作负载过大的节点,以实现系统负载平衡。
然而,在分布式数据库系统中,为了以满足应用需求,满足了部门分布特点的需求,连接到局域网或广域网的节点中,网络带宽低,颠倒点的通信开销大点。因此,在查询处理中应尽可能减少节点之间的数据传输。
-
各结点的地位不同。在并行数据库管理系统中,各结点是完全非独立的,不存在全局应用和局部应用的概念,在数据处理中只能通过发挥协同作用,而不能有局部应用。在分布式数据库管理系统中,各结点除了能通过网络进行协同工作完成全局事务外,各结点具有场地自治性,每个场地使独立的数据库系统。每个网站都有自己的数据库,客户,CPU和其他资源来运行自己的数据库系统,执行本地应用程序具有高度自治。