关系数据库的实现
2013-12-31 12:06
260 查看
一: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事务有三个基本特征,即存取模式,诊断大小,孤立级。
孤立级即事务的级别有四个级别:未提交的读、提交的读、可重复的读、可串行化。
当用户输入一个查询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事务有三个基本特征,即存取模式,诊断大小,孤立级。
孤立级即事务的级别有四个级别:未提交的读、提交的读、可重复的读、可串行化。
相关文章推荐
- 对象的继承关系在数据库中的实现方式和PowerDesigner设计
- 使用关系数据库和矩阵,Reporting Service也能实现类似Analysis的分析
- ECMALL数据库关系模型的实现
- Flask中之数据库框架和模型类六:多对多关系的实现
- JDBC上关于数据库中多表操作一对多关系和多对多关系的实现方法
- PHP ORM框架与简单代码实现—让OOP与关系数据库更融洽
- JAVA实现关系数据库的翻页
- 云计算学习笔记---Hadoop简介,hadoop实现原理,NoSQL介绍...与传统关系型数据库对应关系,云计算面临的挑战
- 对象的继承关系在数据库中的实现方式和PowerDesigner设计
- DICOM查询/获取信息模型的研究及关系数据库实现
- 初学反射,实现数据库到对象的关系映射,简陋版!
- 云计算学习笔记---Hadoop简介,hadoop实现原理,NoSQL介绍...与传统关系型数据库对应关系,云计算面临的挑战
- 对象的继承关系在数据库中的实现方式和PowerDesigner设计
- 数据库中多对多关系及其实现
- PHP实现基于PDO扩展连接PostgreSQL对象关系数据库示例
- mybatis“集合嵌套查询”和“集合嵌套结果”两种方法实现数据库一对多关系
- Hibernate基于注解方式配置来实现实体和数据库之间存在某种映射关系
- 云计算学习笔记003---Hadoop简介,hadoop实现原理,NoSQL介绍...与传统关系型数据库对应关系,云计算面临的挑战
- JDBC上关于数据库中多表操作一对多关系和多对多关系的实现方法
- 数据、进程-云计算学习笔记---Hadoop简介,hadoop实现原理,NoSQL介绍...与传统关系型数据库对应关系,云计算面临的挑战-by小雨