2020-03-02 11:43
Page 1

Databases

Lecture 11: Relational algebra and query compilation

Page 2

Earlier

Relational data modelling (Notes: chapter 4)

Relational databases are based on ideas from discrete math

Page 3

Today

Page 4

SQL Query processing

A DBMS processes a query in several steps

Page 5

Relational Algebra overview

Operators that transform a relation

Page 6
Relational Algebra overview

Operations from set theory that combine two relations

Page 7
Relational Algebra overview

Join operations

Page 8

Relational Algebra as syntax trees

Page 9

Presentation

To make large relational algebra expressions more readable

Page 10

From SQL to Relational Algebra

Page 11
From SQL to Relational Algebra

Basic queries

Page 12
From SQL to Relational Algebra

Tables are relations

Page 13
From SQL to Relational Algebra

What happens with expressions?

Page 14
From SQL to Relational Algebra

Renaming columns

Page 15
From SQL to Relational Algebra

Renaming tables (relations)

Page 16
From SQL to Relational Algebra

Sorting

Page 17
From SQL to Relational Algebra

Removing duplicates

Page 18
From SQL to Relational Algebra

Grouping

Page 19
From SQL to Relational Algebra

Grouping with several aggregation functions

Page 20

SQL Query processing

A DBMS processes a query in several steps

Page 21

Query Optimization

Algebraic laws and algebraic manipulation

Page 22
Query Optimization

Practical benefits of query optimization

Page 23
Query Optimization

Example: repeated selection

Page 24
Query Optimization

Example: repeated projection

Page 25
Query Optimization → Example: repeated projection
Page 26
Query Optimization

Pushing selection inside a cartesian product

Page 27
Query Optimization

Doing a join instead of a cartesian product

Page 28

Real-world example

Page 29

Query optimization example

Page 30
Query optimization example

First step: translate to Relational Algebra

Page 31
Query optimization example
Page 32
Query optimization example
Page 33
Query optimization example
Page 34
Query optimization example
Page 35
Query optimization example

Translating back to SQL

Page 36
Query optimization example

Another way to write the same query in SQL

Page 37

The end