分布式数据库:从查询处理到云应用的全面解析
立即解锁
发布时间: 2025-08-23 01:16:52 阅读量: 2 订阅数: 17 

### 分布式数据库:从查询处理到云应用的全面解析
#### 1. 分布式查询处理
在分布式系统中进行查询处理时,与集中式系统不同,除了磁盘访问次数外,还需考虑网络数据传输成本以及多站点并行处理查询部分带来的性能提升。网络和磁盘数据传输的相对成本因网络类型和磁盘速度而异,因此需要在两者之间找到良好的平衡。
##### 1.1 查询转换
以简单查询“查找账户关系中的所有元组”为例,由于账户关系可能被分片、复制或两者皆有,处理该查询并不简单。若账户关系被复制,需选择传输成本最低的副本;若副本被分片,则需计算多个连接或并集来重建账户关系。
例如,对于查询 branch name = “Hillside” (account),已知 account = account1 ∪ account2,经名称翻译后为 branch name = “Hillside” (account1 ∪ account2),利用查询优化技术可简化为 branch name = “Hillside” (account1) ∪ branch name = “Hillside” (account2)。由于 account1 仅包含 Hillside 分支的元组,可消除选择操作;而 branch name = “Hillside” (account2) 经计算为空集。最终策略是 Hillside 站点返回 account1 作为查询结果。
##### 1.2 简单连接处理
对于关系代数表达式 account 1 depositor 1 branch,假设三个关系分别存储在 S1、S2、S3 站点,查询在 SI 站点发出,系统需在 SI 站点产生结果。可能的处理策略有:
- 将三个关系的副本发送到 SI 站点,在 SI 站点本地处理整个查询。
- 将 account 关系的副本发送到 S2 站点,在 S2 站点计算 temp1 = account 1 depositor,再将 temp1 发送到 S3 站点,在 S3 站点计算 temp2 = temp1 1 branch,最后将 temp2 发送到 SI 站点。
- 交换 S1、S2、S3 的角色,设计类似策略。
选择策略时需考虑数据传输量、站点间数据块传输成本以及各站点的相对处理速度。例如,若 S2 和 S3 站点的索引对连接计算有用,将三个关系发送到 SI 站点可能需要重新创建索引或使用更昂贵的连接策略;而第二种策略可能导致更多的网络传输。
##### 1.3 半连接策略
若要计算 r1 1 r2,r1 和 r2 分别存储在 S1 和 S2 站点,希望在 S1 站点获得结果。若 r2 中有许多元组不与 r1 的任何元组连接,将 r2 发送到 S1 会传输对结果无贡献的元组。半连接策略步骤如下:
1. 在 S1 站点计算 temp1 ← R1 ∩ R2 (r1)。
2. 将 temp1 从 S1 站点发送到 S2 站点。
3. 在 S2 站点计算 temp2 ← r2 1 temp1。
4. 将 temp2 从 S2 站点发送到 S1 站点。
5. 在 S1 站点计算 r1 1 temp2,结果与 r1 1 r2 相同。
该策略在 r2 中只有少数元组参与连接时特别有利,可减少网络传输成本。
##### 1.4 利用并行性的连接策略
对于四个关系的连接 r1 1 r2 1 r3 1 r4,关系 ri 存储在 Si 站点,结果需在 S1 站点呈现。一种并行评估策略是:将 r1 发送到 S2 站点,在 S2 站点计算 r1 1 r2;同时将 r3 发送到 S4 站点,在 S4 站点计算 r3 1 r4。S2 和 S4 站点可在计算过程中向 S1 站点发送元组,S1 站点使用流水线连接技术开始计算 (r1 1 r2) 1 (r3 1 r4),实现并行计算。
#### 2. 异构分布式数据库
许多新的数据库应用需要从位于异构软硬件环境中的各种现有数据库获取数据,这就需要在现有数据库系统之上添加一个名为多数据库系统的软件层。该系统可创建逻辑数据库集成的假象,而无需物理数据库集成。
##### 2.1 数据的统一视图
每个本地数据库管理系统可能使用不同的数据模型,如关系模型、网络模型或层次模型。多数据库系统通常使用关系模型和 SQL 作为通用查询语言。此外,还需提供一个公共概念模式,将各个本地系统的概念模式集成到一个公共模式中。但由于语义异构性,模式集成是一项复杂的任务,需考虑属性名称含义、数据类型表示、物理数据表示等差异。
##### 2.2 查询处理
异构数据库中的查询处理较为复杂,存在以下问题:
- 查询需在全局模式和本地模式之间进行转换,可通过编写包装器简化任务,包装器还可提供非关系数据源的关系视图。
- 部分数据源查
0
0
复制全文
相关推荐










