高级数据库复习笔记
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
高级数据库复习笔记
2007年1月22日
10:02
对照复习PPT摘下来的一些PPT内容
第一章、第二章
第一章
1、分布式数据库系统
定义: 物理上分散而逻辑上集中的数据库系统
特点:物理分布性、逻辑整体性、站点自治性
分布式数据库系统的分类:同构型、异构型、集中型、分散型、可变型
2、为什么需要OODB
新领域的应用需求...
3、事务处理
第二章
1、分布式数据库的体系结构
2、分布式数据库的问题
分布式DB设计;分布式查询处理;分布式并发控制;分布式数据库的可用性
3、分布数据独立与分布透明访问
分段透明;位置透明;本地映射透明;无透明
第三章、第四章
第三章 DDB设计
1、DDB设计的两个问题
分段和分配
即:如何分割数据及如何分配这些数据到不同站点
2、DDB设计目标
优化响应时间/吞吐量/费用/…
3、数据分段
分段原则:
假若有全局关系R被分段为子关系(片段)集合F = {F1, F2, …, Fn}
则 F满足完整性、不相交性、重构性
水平分段:以关系自身的属性性质为基础,执行“选择”操作,将关系分割成若干个不相交的片段
导出分段:从另一个关系的属性性质或水平分段推导出来
垂直分段:通过“投影”操作把一个全局关系的属性分成若干组
4、数据分配简单模型
设所有的读、写、存储代价都是1,仅比较远程读写次数和单机存储代价,选一个最优的
仿照作业答案中的做法,可以画个表,写出个事务在各方案下的读写总次数来比较哪个较优。一般只考虑远程读写,本地操作忽略。
5、最佳适应方法
片段i在站点j被应用K执行,k在站点j上激活的频率乘以激活一次的读写总次数,计算一个最大值,片段i就应该存放在相应的站点j上
6、所有得益站点方法
假设片段i放在站点j上,计算所有应用对它读的次数和写的次数,如果读的次数比写的次数多,即Bij>0,那么就应该把i放在站点j上
第四章分布式查询处理
1、全局查询:涉及多个站点数据, 优化复杂
局部查询:只涉及本地. 单个站点的数据, 优化同集中式
2、查询变换
下推 PJ(投影), SL(选择),上推UN ;消除公共子表达式;将全局转换为段上查询;消除空关系;分组操作与聚集操作
第五章、第六章
第五章
1、基于半连接操作的连接操作
目标:减少通讯量
执行步骤如下:
从S中选择B这一列,发送到site r Cost = C0+C1*Size(B)*Val(B[S])
在r站点执行SJ, 费用为零,令R’=R SJA=B S (R和S在A=B的关系上做半连接)
发送R’到site s, 费用 Cost = C0+C1*Size( R )*Card (R’)
在r站点计算JN,费用为零。
总费用 CSJ=2*C0+C1*((Size(B)*Val(B[S]) + Size( R)* Card (R’))
2、基于半连接的优化
SJ 不对称
(R SJ S) JN S 的费用CSJ
( S SJ R) JN R 的费用CSJ'
CSJ’=2*C0+C1((Size(A)*Val(A[R]) + Size( S)* Card (S’))
比较CSJ与CSJ’,取最优者
3、SDD-1
算法思想:计算SJ的得益和损失,循环计算各种可能的SJ情况,选一个得益最大或损失最小的SJ优化方案
4、直接查询优化
四种算法:利用站点依赖信息的算法;分片与复制算法;站点依赖和数据复制结合算法;Hash 划分算法
5、分段关系的连接
第六章面向对象模型
1、面向对象模型
借鉴面向对象的设计方法而建立的模型
2、面向对象方法
以客观世界中的客体为注视目标的方法
特点:通过可构造的手段将客观世界表示出来,也即可以用有限的构造手段与有限的步骤建立一个客观世界的模型
3、面向对象数据模型
用对象与类结构以及类间继承与组合关系建立数据间的复杂结构关系
4、面向对象数据库管理系统
OODBMS必须满足两个基本条件:支持核心的面向对象数据模型;支持传统数据库系统所具有的数据库特征
5、对象结构
结构主体由三种基本结构及其组合而成:元组结构(tupe_structure);集合结构
(set_structure);列表结构(list_structure)
6、类型的实例化
GOM类型的实例化过程
第一步说明对象变量第二步执行赋值语句
第三步对空对象的每个属性进行实际值的初始化工作
7、对象标识
标识对象的三种方法:内容标识—关键字标识符;地址标识—物理对象标识符;逻辑对象标识符
8、持久性
持久性Persistence :当程序的执行终止后,其创建的构件和数据仍然存在
GOM中持久化构件:对象类型;对象实例;变量
一个对象实例的持久化可以采用以下几种途径:
按类型持久:一个持久化类型的实例可以自动确认为持久的
按创建持久:将持久操作与初始化操作绑定,即将持久对象与临时对象采用不同的初始化子提供一个持久化操作,即用显式的持久化操作将对象持久化。即将持久化声明延迟到对象创建之后
按引用声明持久:仅对一个(或多个)对象显式的声明为持久对象(根对象)。其他对象的持久化定义为沿着根对象的引用链进行持久化扩展
第七章、第八章
第七章对象行为说明
1、操作分类
实例的构造,销毁:该类操作属函数操作,将返回一个新的对象实例OID
可细分为两类:
原始构造:通过创建函数创建特定类型的新实例例: matrix$create(i)
一般构造:通过执行某些计算而创建新实例。即新实例是对老实例的运算过程中产生的
实例状态的查询:该类操作称为观测函数(observer function),它返回一个相应对象的内部状态
转换操作:该类操作是一个过程,它将按照参数内容改变被激活的对象的内部状态
转换操作会改变DB的状态,因此,设计该类操作时必须考虑DB的一致性状态维护问题
2、类型相关操作
操作说明:
declare
操作定义子句:
define
begin
end
3、对象封装
为了保证对象状态转换的一致性,必须对所有的转换操作进行必要的封装。将可能造成不一致的转换操作私有化,或者,将其增加了维护状态一致性的操作后再放到public序列中
4、重载
提供了在同一个名字空间下,语义相关但操作内容不同的操作名的重用。要求参数类型和个数不同
5、自由操作
用户在类型框架外定义的与类型无关的操作。
Persistent declare distance: Vertex, Vertex → float Code FreeDistanceCode;
Define FreeDistanceCode(p,q) is
return p.distance(q);
自由操作的实现最终是调用类型相关操作来构建