关系查询处理和查询优化

1.索引扫描方法:
全表扫描法效率很低,可以建立索引。如果选择条件中的属性上有索引(例如B+树或Hash索引),通过索引先找到满足条件的元组主码和元组指针,再通过元组指针直接在查询的基本表中找到元组。
2.连接操作很耗时,可以采用嵌套循环的方法
排序-合并的方法
索引连接方法(对student中每个元组,由sno值通过SC的索引查找到响应的SC元组,把这些SC元组和student元组连接起来)
Hash Join方法:把连接属性作为hash码,用同一个hash函数把R和S的元组散列到同一个hash文件中,第一步:对包含较少元组的表(如R表)进行一遍处理,把它的元组按hash函数分散到hash表的桶中;第二步:连接阶段,对另一个表(S表)进行一遍处理,把S的元组散列到适当的hash桶中,并将元组于桶中所有来自R并与之匹配的元组连接起来。

数据库恢复的实现技术
两个关键问题:1.建立冗余数据 2.利用冗余数据实施数据库恢复
建立冗余数据最常用的技术:数据转储登陆日志文件
数据转储: DBA定期将整个数据库复制到磁带或另一个磁盘上保存起来的过程,以作备份。
转储分为静态转储、动态转储
静态转储:在系统中无运行事务时进行的转储操作,期间不允许对数据库进行存取、修改操作。这会降低数据库的可用性。
动态存储:在转储期间允许对数据库进行存取和修改。不能保证数据存储的数据是最新的,这就需要建立日志文件,能够根据日志文件把数据库恢复到某一时刻的正确状态。
海量转储:每次转储全部数据库
增量转储:每次只转储上一次转出后更新过的数据。
日志文件:用来记录事务对数据库的更新操作的文件,日志文件有两种格式:以记录为单位的日志文件、以数据块为单位的日志文件。
记录为单位的日志文件,日志文件内容包括:
(1)各个事务的开始标记
(2)各个事务的结束标记
(3)各个事务的所有更新操作
每个日志记录的内容:
(1)事务标识(表明哪个事务)
(2)操作类型(插入、删除、修改)
(3)操作对象(记录内部标识)
(4)更新前数据的旧值(对插入操作而言,此项为空值)
(5)更新后数据的新值(对删除操作而言,此项为空值)
日志文件的作用

  • 用来进行事务故障恢复、系统故障恢复
  • 在动态转储方式中建立日志文件。
  • 在静态转储方式中,建立日志文件,利用日志文件,对已完成的事务进行重做处理,对故障发生时尚未完成的事务进行撤销处理。
    登记日志文件的原则
    (1)登记的次序按照:并发事务执行的时间次序
    (2)先写日志文件,再写数据库
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值