数据库查询编译与物理设计基础
1 引言
数据库系统的核心任务之一是将用户的逻辑查询转换为高效的物理查询计划。查询编译和物理设计是实现这一任务的关键。本文将深入探讨如何利用一阶逻辑(FOL)来表达逻辑设计、物理设计以及查询计划,从而实现高效的查询编译。我们将通过一个假设的ACME公司工资单系统的情景来逐步解释这些概念,并展示如何将这些理论应用于实际的数据库系统设计中。
1.1 逻辑与物理设计
数据库系统中的信息大致可以分为数据和元数据。例如,ACME公司需要管理其员工的重要信息,如员工编号、姓名和薪水。元数据则包括实体和属性的定义,如员工实体、员工编号属性等。ACME公司开发了一个基于关系型数据库技术的工资单系统,该系统包括一个带有大容量存储的计算机系统和两个独立的部门:APS(应用程序)和DBA(数据库管理)。APS负责工资单本身,而DBA负责管理计算机系统资源。
为了提高生产力,DBA需要选择文件格式和数据结构来物理编码工资单数据,以最佳方式利用计算机系统。这需要对工资单元数据、数据量和典型工作负载有所了解。例如,DBA可能会选择一个名为 emp-file
的记录文件,该文件以B树数据结构组织,支持给定员工编号属性值的 emp-lookup
操作。文件 emp-file
中的记录与员工实体一一对应,记录字段编码了员工实体对应的属性值,如 emp-num
编码员工编号。
相比之下,APS需要对员工的概念、薪水的概念、如何通过员工编号引用员工等有全面的理解。最重要的是,APS人员编写的涉及工资单数据查询的所有代码将不包含