2019-02-11 17:23
Page 1

Databases (TDA357 / DIT621)

Relational algebra and query compilation

Page 2

Last week

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

Page 6
Relational Algebra overview

Operations from set theory

Page 7
Relational Algebra overview

Join operations

Page 8

Relational Algebra as syntax trees

Page 9

From SQL to Relational Algebra

Page 10
From SQL to Relational Algebra

Basic queries

Page 11
From SQL to Relational Algebra

Tables are relations

Page 12
From SQL to Relational Algebra

What happens with expressions?

Page 13
From SQL to Relational Algebra

Renaming columns

Page 14
From SQL to Relational Algebra

Renaming tables (relations)

Page 15
From SQL to Relational Algebra

Sorting

Page 16
From SQL to Relational Algebra

Removing duplicates

Page 17
From SQL to Relational Algebra

Grouping

Page 18
From SQL to Relational Algebra

Grouping with several aggregation functions

Page 19

Query Optimization

Algebraic manipulation

Page 20
Query Optimization

Example: repeated selection

Page 21
Query Optimization

Example: repeated projection

Page 22
Query Optimization → Example: repeated projection
Page 23
Query Optimization

Pushing selection inside a cartesian product

Page 24
Query Optimization

Doing a join instead of a cartesian product

Page 25

Indexes

Page 26

Real-world examples

Page 27

Query optimization example

Page 28
Query optimization example

First step: translate to Relational Algebra

Page 29
Query optimization example
Page 30
Query optimization example
Page 31
Query optimization example
Page 32
Query optimization example