数据库系统的功能不见大致可分为查询处理器部件和存储器管理器部件。另外还有几个必要的数据结构作为系统物理实现的一部分。
查询处理器部件主要由四分部组成,它们分别是DML编译器,嵌入式DML预编译器,DDL解释器,查询计算引擎。
DML编译器负责将查询语言中DML语句翻译成查询计算引擎能理解的低级指令。另外,DML编译器力图将用户请求转换成一个等价的但效率更高的形式,以找到执行查询的更好策略,这就是DBMS的主要功能——查询优化。
有很多时候DML调用嵌套在宿主语言里,如C cobol等。由于DML调用语法与宿主语言的语法明显不同,为了能够产生正确的代码,DML调用常常以一个特殊的字符串为签到,如EXEC SQL。嵌入式DML预编译器,如Oracle数据库中的Pro*c,PCC Sybase数据库中的sqlpp等,将嵌入在宿主语言中的DML语句转换成宿主语言中普通的过程调用语句。预编译器必须桶DML编译器童工发挥作用,才能保证产生正确的代码。
预编译所产生的程序再通过宿主语言的编译器产生正确的目标代码来运行。当然数据库管理系统也支持宿主语言中像调用宿主语言的普通函数和过程一样直接调用那些访问数据库的函数和过程,而且这是实际中最常用的方法之一。如Sybase数据库中的DB-Library/c,oracle调用接口OCI等。这就是我们常说的数据库API.
DDL解释器负责解释DDL语句并将其记录到包含元素数据的一系列表中。
查询计算引擎负责执行由DML编译器产生的低级指令。
存储管理器部件包括以下几个部分:
1.权限及完整性管理器(检查是否满足完整性约束,检查视图访问数据库的用户的权限)
2 事务管理器(保证即发生了故障,数据库也