重点:
1 分布式数据库的定义和优缺点
2 分布式数据库的体系结构
3 分布式数据库的查询优化
4 分布式数据库的管理方法
5 WWW技术与数据库技术的结合
6 ,XML
1.分布式数据库(Distributed DataBase System)定义和优缺点
定义:物理上分散逻辑上集中的数据库系统
组成:
- 分布式数据库(DDB)
- 分布式数据库管理系统(DDBMS)
特点:
- 物理分布
- 逻辑整体
- 场地自治:应用程序可直接使用本节点的数据,通过局部数据模式
- 场地之间的协作
- 数据独立性
- 集中与自治相结合的控制机制
- 增加适当冗余度
- 事务管理分布
优点:
- 灵活的体系结构
- 分布式的管理和控制机构
- 经济性能优越
- 系统可靠性、可用性高
- 局部应用的速度快
- 可扩展性好
缺点:
- 开销大
- 复杂的存取结构
- 安全性、保密性难
分类:
- 同构同质DDBS:各个场地都采用同一类型的数据模型,用同样的DBMS
- 同构异质DDBS:同一类型数据模型,不同的DBMS
- 异构DDBS:不同数据模型,不同DBMS
2. 分布式数据库的体系结构
存储:先数据分片再数据分配
- 数据分片
关系:
S(SNO,SNAME,AGE,SEX)
SC(SNO,CNO,GRAGE)
1水平分片:
元组划分为不相交的子集,通过对全局关系进行选择Select获得
DEFINE FRAGMENT SHF1
AS SELECT * FROM S WHERE SEX = "M";
DEFINE FRAGMENT SHF2
AS SELECT * FROM S WHERE SEX = "F";
2垂直分片:
属性集划分为若干子集,在子集上做投影Project可获得全局关系,要求:每个子集都包含全局的键,全局的属性都至少属于一个子集
DEFINE FRAGMENT SVF1
AS SELECT SNO,AGE,SEX FROM S;
DEFINE FRAGMENT SVF2
AS SELECT SNO,SNAME FROM S;
3导出分片:选择条件是别的表里的属性
DEFINE FRAGMENT SHF3
AS SELECT * FROM SC
WHERE SNO IN
(SELECT SNO FROM S WHERE SEX = "M");
4混合分片:上三种的混合
DEFINE FRAGMENT SHF1
AS SELECT SNO,SNAME FROM SHF1
DEFINE FRAGMENT SHF2
AS SELECT * FROM SVF1 WHERE SEX = "M"
划分要求:完备性、可重构性、不相交性(垂直分片的键除外) - 数据分配(数据分布)
方式:集中式、分割式、全复制式、混合式
6层模式的体系结构:
- 全局外模式
- 全局概念模式
- 分片模式
- 分配模式
- 局部概念模式
- 局部内模式
- 局部数据库
6层模式的特征:
- 数据分片与数据分配概念的分离
- 数据冗余的显式控制
- 局部DBMS的独立性
分布透明性:
- 全局外模式-逻辑数据独立性-全局概念模式
- 全局概念模式-分片透明性-分片模式
- 分片模式-位置透明性-分配模式
- 分配模式-局部数据模型透明性-局部概念模式
- 局部概念模式-物理数据独立性-局部内模式
- 局部数据库
- 分片透明性:用户编写程序只需对全局关系进行操作,不许知道分片以及场地
- 位置透明性:用户编写程序时必须指明分片,但无需指明场地
- 局部数据模型透明性:用户编写程序时必须指明分片以及场地,但无需了解场地使用的是何种数据模型
- 复制透明性:部分数据有多个副本,用户不需要知道这些副本的所在
DDBS组成:
- DB:LDB,GDB
- DD:LDD,GDD
- DBMS:LDBMS,GDBMS
- 用户:全局用户,局部用户
- DBA:全局DBA,局部DBA
DDBMS功能:
- 接受用户请求
- 访问网络数据字典DD
- 分布式处理
- 通信接口功能:用户和局部DBMS之间的协调
- 进程移植(异构型系统中)
DDBMS模块:
- 查询处理模块
- 完整性处理模块
- 调度处理模块
- 可靠性处理模块
3 分布式数据库的查询优化
查询代价的估算方法
- 集中式DBS中:QC=CPU代价+I/O代价
- 分布式DBS中:QC=CPU代价+I/O代价+通信代价
- 通信代价 = C0+C1X,其中C0,C1为系统相关的常量,X为传输数据量
联接策略:
- 基于半联接的优化策略
- 基于联接的优化策略
基于半联接的优化策略:
- 思想:网络中只传输参与联接的数据
- 例:场地1有R关系,场地2有S关系,若在场地2要计算S join R,半联接程序如下:
1 场地2计算S在公共关系B上的投影ΠB(S)
2 把ΠB(S)传输给场地1,
3 场地1计算R' = R join ΠB(S)
4 把R'传输给场地2
5 场地2执行R' join S
基于联接的优化策略:
- 两个关系在同一场地:循环嵌套、排序扫描
- 两个关系在不同场地:整体传输、按需传输
4 分布式数据库的管理方法
分布事务管理
分布式数据库中事务一样具有ACID:原子性、一致性、隔离性和耐久性
还需有额外几个特性:
- 执行特性:各个子事务直接的协调
- 操作特性:在存取操作之外增加通信原语,协调各个子事务之间的数据传输
- 控制报文:
分布式数据库的故障:
- 事务故障:错误输入输出等
- 系统故障:死循环、缓冲满等
- 介质故障:磁盘损坏等
- 网络故障:节点故障、通信故障、报文故障
事务故障的恢复和恢复原则
- 日志+档案库+检查点
- 恢复原则:
1孤立和逐步退出事务原则
2成功结束事务原则
3夭折事务原则
两阶段提交协议:
- 系统包括协调负责者和参与者,协调者有权提交或撤销事务
1协调者要求所有参与者准备提交(PREPARE)
2协调者根据参与者的回答进行决定:
只要有一个参与者撤销事务(ABORT),则协调者全局撤销
只有所有参与者都同意提交事务(READY),协调者才全局提交(COMMIT)
三阶段提交协议:
- 前两部与两阶段提交协议一样
- 若有参与者ABORT则进入第三阶段
5 WWW技术与数据库技术的结合
WWW与数据库的交互方法:
- CGi 公共网关接口: 浏览器—WEB服务器—CGI—数据库
缺点:无状态管理功能,效率低 - JDBC:java的数据库访问API
- API
动态Web网页和开发:
- 动态信息包括:1动态数据 2动态页面 3动态内容
- 动态网页的特点:交互性、自动更新、个性化
- 构建技术:CGI、ASP、JSP、Servlet、PHP
6XML
可扩展标记语言,优点:可扩充性、灵活性、自描述性、环境无关性
模板驱动:<SelectStmt></SelectStmt>中嵌入SQL语句,生成文件时其中内容有SQL查询结果替代
数据模型:表格、对象