一:关系数据库系统的查询处理:查询分析,查询检查,查询优化,查询执行
1: 查询分析
对查询语句进行扫描,词法分析和语法分析;判断查询语句是否符合SQL语法规则。
2: 查询检查
根据数据字典对合法的查询语句进行语义检查,即检查语句中的数据库对象是否存在,是否有效;
根据数据库字典中的用户权限和完整性约束定义对用户的存取权限进行检查。
检查通过后,把SQL查询语句转换成等价的关系代数表达式。
3: 查询优化
即选择一个高效执行的查询处理策略。
代数优化:关系代数表达式的优化,即按照一定规则,改变代数表达式中的操作的次序和组合,是查询执行更高效。
物理优化:指存取路径和底层操作算法的选择。
4: 查询执行:代码生成器生成执行这个查询计划的代码。
二:关系数据库系统的查询优化
1: 选择运算尽可能先做。最重要最基本的一条。
2: 投影运算和选择运算同时进行。
3: 投影同其前或其后的双目运算结合起来,没必要为了去掉某些字段而扫描一遍关系。
4: 把某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算,
连接特别是等值连接运算比同样关系上的笛卡尔积省很多时间。
5: 找出公共子表达式。