时间:2022-12-14 08:30:02 | 来源:信息时代
时间:2022-12-14 08:30:02 来源:信息时代
查询语法树 : 在DBMS 内部表示用户查询的方法,也是DBMS进行查询优化的依据。
DBMS的语法分析器对SQL查询进行词法和语法分析后,生成语法分析树。语法树由结点和边组成,结点表示语法类,边表示结点间的输入输出关系。语法树只是查询的一种内部表达方式,其具体形式由具体的数据库管理系统进行定义,不同数据库管理系统其语法树的形式不完全一样,但通常比较相似。
例如,有两个关系模式: 图书表BOOK记录了每本图书的编号、书名、作者等信息。借阅表BR记录了图书借阅的历史信息,包括图书编号、借阅人代码、姓名、借阅时间等信息。如果想查询“DB”一书所有借阅人的姓名及借阅时间,用SQL语言可以表达为:
SELECT BR.name,time
FROM BR,BOOK
WHERE BR.bookno=BOOK.bookno
AND BOOK.bname=‘DB’;
该SQL语句的查询语法树可以用图1表示。它包括两类结点: 第一类结点表示词法成分,包括关键字(SELECT、FROM、WHERE等)、关系名、属性名、常数、操作符等,方法是直接表示。第二类结点表示语法类,即查询子成分,包括〈Query〉、〈Condition〉、〈Attribute〉、〈Sel_list〉、〈Rel_list〉、〈Rel_name〉等,表示方法是用尖括号括起来。
图1 SQL查询语法树示例