前言:本篇主要讲解怎么画查询语法树并对其优化,因为我在之前学的时候,在网上其实没怎么找到详细地教程,还是自己一点一点扣书扣出来的,所以想写一篇具体来描述一下这类题的方法技巧。

如题,这是东华大学一年的考研题目:

我们来解决第二问的前提是先写出它的关系表达式:

这一步没什么技巧,学过关系代数就很简单,我们主要讲解如何画查询语法树:

第一步:转化关系表达式:就是将原来的三个表的自然连接转成笛卡尔积形式,在中间再加一个投影和选择即可;L就是指笛卡尔积里的所有属性,选择就是将这三个表连接起来的相同的属性,也比较简单,对照写出来即可;

第二步:画出原始的优化树,这个画出来很简单,就是把刚刚转化的关系表达式化成这样的形式:

最重要的第三步!优化!书上写的原则有很多,但其实只要记住该在哪投影,哪选择即可:

我先把图贴出来:

首先先看最上边,就是先写一个投影一个选择,投影投的就是咱们最后要的什么,选择就是右子树和左子树最后的连接,我们看右子树是Bike,那上面的选择操作一定就是

这样我们上面的树就写好了。

然后我们来到右子树,如果我们的条件是有在Bike里体现的,那一定就是加上Π和,如果我们没有这方面的条件,那就只加一个Π就行,而很明显,在Bike里我们是有条件的,所以就搞成:

这样即可,就是我要用Bname来筛选出来,但我最后只要Bid就行了;下面的都是这个意思:

这也是同理,我们要清楚的就是,条件是什么,我最后要什么就够了,这就是优化过程;

要注意一点的是这一点:

这一步要判断好,这一步输出的可就直接给上边的树了,要确认好上面的树需要什么;

然后就结束啦!其实很简单的,主要是分清条件是什么,每一步只需要什么。

数据库手把手解题——2.如何画语法树及优化相关推荐

  1. Redis数据库(一)——介绍、配置与优化

    Redis数据库(一)--介绍.配置与优化 一.关系数据库与非关系型数据库 1.关系数据库 2.非关系型数据库 3.关系数据库与非关系型数据库区别(三个方向) 数据存储方式不同 扩展方式不同 对事务性 ...

  2. 崔华 oracle简历,2013数据库大会:崔华-基于Oracle的SQL优化案例分析

    2013数据库大会:崔华-基于Oracle的SQL优化案例分析 崔华的新书即将出版,其数据库大会上的演讲也非常精彩,他的新书十分值得期待. 2013年中国数据库技术大会第二天的"Oracle ...

  3. 智能SQL优化工具--SQL Optimizer for SQL Server(帮助提升数据库应用程序性能,最大程度地自动优化你的SQL语句 )...

    SQL Optimizer for SQL Server 帮助提升数据库应用程序性能,最大程度地自动优化你的SQL语句 SQL Optimizer for SQL Server 让 SQL Serve ...

  4. 数据库高并发解决方案(二)部署优化

    数据库高并发解决方案(二)部署优化 参考文章: (1)数据库高并发解决方案(二)部署优化 (2)https://www.cnblogs.com/wanglijun/p/10879332.html 备忘 ...

  5. 2021华为杯数学建模D题解题-抗乳腺癌候选药物的优化建模

    2021华为杯数学建模D题解题-抗乳腺癌候选药物的优化建模 赛题 1. 问题一解题:特征选择 1.1. 赛题分析 1.2. 解题:特征选择方法对比 1.3. 模型评估 2. 问题二解题:预测模型 2. ...

  6. 【Java开源数据库语言】基于SPL如何提高SQL优化效率

    很多大数据计算都是用SQL实现的,跑得慢时就要去优化SQL,但常常碰到让人干瞪眼的情况. 比如,存储过程中有三条大概形如这样的语句执行得很慢: select a,b,sum(x) from T gro ...

  7. 【QT 数据库专辑】【04】WIN7下搭建本地SQL SERVER数据库 - 手把手-登录远程数据库帐号设定问题

    前言: 多次数据库试验经验报名,远程数据库的访问问题,大多数是因为有帐号和访问权限的原因. 本文,通过从安装SQL SERVER开始暂时,我们在远程访问SQL SERVER数据库的时候可能遇到的问题. ...

  8. 详解大中小数据常用数据库的SQL语句、函数以及常见优化

    本篇文章主要介绍目前我在目前项目中使用过的一些数据库的用法,像中小型数据常用的关系型数据库Sql Server,大数据常用的数据库Hive,Hbase. 文章目录 SQL 你必须知道的 SQL网站 关 ...

  9. 面试题: mysql 数据库已看 sql安全性 索引 引擎 sql优化

    总结的一些MySQL数据库面试题 2016年06月16日 11:41:18 阅读数:4950 一.sql语句应该考虑哪些安全性? (1)防止sql注入,对特殊字符进行转义,过滤或者使用预编译的sql语 ...

最新文章

  1. 搞对象的时候走神儿了
  2. UIKeyboardTypeNumberPad 数字键盘添加完成按钮
  3. ubuntu 14.04使用devstack安装openstack mitaka版本
  4. strtotime的几种用法区别
  5. 3-5Tensor创建编程实例
  6. laravel 环境自编译过程
  7. php网站采集器,PHP采网址(列表页处理)插件的开发方法
  8. 超全面的权限系统设计方案!
  9. PHP超级外链工具源码/无后台一键批量外链源码
  10. 主机防火墙与访问控制
  11. linux drupal 7,在CentOS 7下试验Drupal 7
  12. Godot Engine:选择Skeleton节点时出现不停输出“object was deleted while awaiting a callback”并死机问题
  13. 线上配镜新方式:眼镜直通车竞品分析报告
  14. linux主机 asp主机 java主机 区别,计算机中支持asp的主机是什么操作系统
  15. request_threaded_irq与request_irq
  16. 【附源码】计算机毕业设计SSM人脸识别考勤系统
  17. 实现resolv.conf永久设置的方法
  18. 生活集思录-如何创造差异化
  19. LeetCode 第201次周赛 1546. Maximum Number of Non-Overlapping Subarrays With Sum Equals Target
  20. R语言统计分析:bootstrap方法

热门文章

  1. mendeley在word上使用
  2. linux上不了网是因为千兆网卡,求救 千兆网卡不能工作在千兆只能百兆 排除网线问题...
  3. cherry键盘维修记
  4. 史兴国对谈于佳宁:从经济模式到落地应用,Web3的中国之路怎么走?
  5. 应用VAR模型时的15个注意点
  6. 数据仓库知识点总结(数仓分层建模、维度建模等)
  7. html 仿饿了点餐页面,JS实现仿饿了么在浏览器标签页失去焦点时网页Title改变
  8. 【年终总结】2021年终总结
  9. 2021-2025年中国可见光光纤激光器行业市场供需与战略研究报告
  10. 人工智能如何重塑资管业?