数据库系统实现:数据库实现概论

2012-11-12

  最近想系统的学习DBMS实现方面的知识,并记录学到的一点一滴,于是准备在博客园上发表一系列这方面的知识,主要是根据《数据库实现》这本书,把自己的理解进行总结,希望各位园友不吝赐教,小弟感激不尽。

  王珊老师有云:数据库就是数据的仓库。数据库管理系统就是对数据仓库进行管理。数据库的基本功能就是为了方便用户对数据的存取和操作。普通的文件也可以存储数据,但是不方便对数据进行统一管理。下面从整体上介绍下DBMS应该具有哪些模块。

  一个DBMS首先应该有自己的内存管理模块,如果频繁的和操作系统进行空间的申请和释放,会严重影响一个DBMS的性能,据说QQ也是自己进行管理的。其次需要存储管理,如插入记录或者查询记录,最终都要反映到文件上,再底层就是磁盘上,OS的文件系统已经封装了对磁盘的操作,DBMS又不能仅仅按照OS的文件系统进行存储管理,DBMS应该在OS之上,对存储进行更进一步的管理,记录当然可以在文件中顺序存储,但一般DBMS都是按照B树的方式进行存储,这样对定位数据十分有利。频繁的和磁盘进行交互,严重影响DBMS的性能,于是缓冲区管理模块是必须滴。上面就是几个比较底层的模块:内存管理,存储管理,缓冲区管理。

   用户通过SQL语句进行数据库的管理和操作,SQL语句又分为DDL和DML。所以需要DDL和DML编译器,对SQL语句进行语法分析,并生成执行计划,最后将执行计划送到执行引擎,执行执行计划。DM是SQL中使用最多的语句,SELECT又是DML中使用最多的语句,查询一般是将SELECT语句转化为内部语法树,然后查询优化器根据规则将语法树转化为有效的等价的形式,最后生成执行计划,下面举例说明(http://www.xinx.sdnu.edu.cn/sfzx/jpsykc/wh/wh04.html):

  view sourceprint?

  1、SELECT  Student.Sname 

  2、FROM    Student, SC 

  3、WHERE  Student.Sno=SC.Sno 

  4、AND     SC.Cno='2';

  这条含有JOIN的SELECT语句首先转化为内部的语法树,形式如下:

  语法树然后转化为关系代数语法树,形式如下:

    考试大温馨提示:本内容来源于网络,仅代表作者个人观点,与本站立场无关,仅供您学习交流使用。其中可能有部分文章经过多次转载而造成文章内容缺失、错误或文章作者不详等问题,请您谅解。如有侵犯您的权利,请联系我们,本站会立即予以处理。

    相关推荐

    Delphi5-隔行改变DBGrid网格颜色

    oracle中关于flashback闪回的介绍

    oracle父子关系树递归排序

分享到:
0
相关阅读
友情链接
© 2018 我考网 http://www.woexam.com 中国互联网举报中心 湘ICP备18023104号 京公网安备 11010802020116号
违法和不良信息举报:9447029@qq.com