关系数据库的实现

一:RDBMS系统查询处理的一般过程

    当用户输入一个查询SQl语句时,SQL语句首先回送到解析器,进行解析和编译处理。编译后的查询接着送到查询优化器,优化器将利用数据库存储信息产生一个高效可可执行计划,来决定具体是从索引还是文件扫描取数据,可执行计划被表示为关系代数操作符树的形式——树中的每个节点通常对应一个具体的关系操作符。通过调用下层的计划执行器即可完成查询赋值,得到结果。

:数据的存储与组织管理

      磁盘管理器:

       在DBMS体系结构中,大多数的商用数据库采用磁盘空间管理器实现底层磁盘空间的管理,磁盘空间管理器隐藏了底层硬件与OS文件系统(一般大型DB会让OS分配一个大的OS文件,系统自己管理此文件;小型的系统如嵌入式系统可以使用OS文件系统)的细节,以页为单位代替块为单位实现数据的存储。BD中的文件记录(如一个关系表)可以存储在若干个不同的页中,每个页可以存储多个记录,一个大的记录也可占用多个页。

           文件的页组织形式:

           在关系数据库中关系表、索引等都是一个个的文件组织的,文件所包含的页可以有如下几种组织形式:

          堆文件:堆文件是一个无序文件,文件中每个页的大小相同,由于堆文件是无序的,所以只能反复取下一个记录的方式来取出文件中的所以记录。堆文件中每个记录有一个唯一的标示rid。堆文件组织一般依据页链表或页目录实现。

          排序文件:为实现按搜索键排序记录集而设计。为实现按搜索键快速获取记录,DB系统一般用指针把记录连接起来。

          索引文件:索引一般用于帮助查找满足条件的记录的一种辅助数据结构。从实现观点看,索引是一种特殊的类型的记录文件。

         页的记录标示格式

      页中的记录可以采用定长记录或变长记录

    记录的表示格式

        一般每个记录除了存储字段信息外还有一个记录的首部,用了存储记录层次的一般管理信息,包括记录长度、时间戳、指向记录模式的指针。    

      缓冲区管理

        缓冲区管理主要用于管理缓冲区,缓冲区的置换策略有LRU:最近最久未使用的替换,FIFO:选择最早的替换,MRU:置换策略与LRU相同。

三  数据库索引技术

索引技术主要有:顺序索引,B+树索引,散列索引,位图索引,多维空间索引。

四 关系操作符赋值与查询优化

查询处理的一般过程:


查询优化器会列根据直接扫描或是根据索引,列举出可执行的计划方案,然后根据计划代价评估选出代价最小的计划。查询执行器根据计划方案对关系操作符进行赋值

五 事务的并发控制

事务:是DBMS中一个科执行的,具有一定偏序的动作序列。

事务调度:指对一组来自多个不同的事务动作执行流的一种偏序序列的安排。分为串行调度与非串行调度。

可串行化调度:当一个包含一组提交事务的调度S执行时,如果对任何一致性DB造成的影响,与某个包含同组事务的串行调度相同,就程S是可串行化的调度。

      交替的执行不同事务的动作,是DBMS并发响应多用户请求,提高系统性能的必然要求;一般DBMS必须能确保只允许可串行化和可恢复的调度,以及在撤销事务时,不会导致已提交事务的动作丢失。为实现此目标一般使用基于封锁的并发控制或基于优化的并发控制

基于封锁的并行控制:DBMS跟踪管理事务封锁请求的部分是锁管理器。所管理器维护一个锁表,锁表是一个以DB元素作为键值的散列表,每个表项包含对应DB元素当前的封锁模式、持有当前锁的事务计数和等待锁的事务指针队列。同时还维护一个事务表,每个事务在该表中占一个描述表项,包含了一个事务目前持有的锁的元素列表。

锁包括两阶段封锁协议与拓展的锁协议。

拓展的封锁协议主要有B+树封锁方法的树协议,和多粒度封锁。

基于优化的并发控制:基于封锁的协议时一个悲观保守的协议,基于优化的是一种乐观的协议,即认为绝大部分不会有冲突发生。基于优化的方法主要有基于有效确认和基于时间戳。

SQL事务的基本特征

每个DBMS事务有三个基本特征,即存取模式,诊断大小,孤立级。

孤立级即事务的级别有四个级别:未提交的读、提交的读、可重复的读、可串行化。



          

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值