50
Topic 4: Query Optimization Chapters 12 and 15 of Cow Book Arun Kumar 1 CSE 232A Graduate Database Systems Slide ACKs: Jignesh Patel, Paris Koutris

CSE 232A Graduate Database Systems

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Topic 4: Query Optimization

Chapters 12 and 15 of Cow Book

Arun Kumar

1

CSE 232A Graduate Database Systems

Slide ACKs: Jignesh Patel, Paris Koutris

2

Query

Query Result

Database Server

Select R.text from Report R, Weather W where W.image.rain()

and W.city = R.city and W.date = R.date

and R.text.

matches(“insurance claims”)

QuerySyntax Tree and

Logical Query Plan

Parser

Physical Query Plan

Optimizer

Segments

Query Scheduler |…|……|………..|………..|

|…|……|………..|………..| |…|……|………..|………..| |…|……|………..|………..| |…|……|………..|………..| |…|……|………..|………..| |…|……|………..|………..| |…|……|………..|………..| |…|……|………..|………..| |…|……|………..|………..| |…|……|………..|………..|

Query Result

Execute Operators

Lifecycle of a Query

3

Recall the Netflix Schema

RatingID Stars RateDate UID MID1 3.5 08/27/15 79 20… … … … …

UID Name Age JoinDate79 Alice 23 01/10/1380 Bob 41 05/10/13

MID Name Year Director20 Inception 2010 Christopher Nolan16 Avatar 2009 Jim Cameron

Ratings

Users

Movies

4

Example SQL Query

RatingID Stars RateDate UID MIDUID Name Age JoinDateMID Name Year Director

SELECT M.Year, COUNT(*) AS NumBest FROM Ratings R, Movies M WHERE R.MID = M.MID AND R.Stars = 5 GROUP BY M.Year ORDER BY NumBest DESC

Suppose, we also have a B+Tree Index on Ratings (Stars)

Logical Query Plan

5

SELECT R.stars = 5

Ratings Table

SELECT No predicate

Movies Table

JOIN R.MID = M.MID

GROUP BY AGGREGATE M.Year, COUNT(*)

SORT On NumBest

Result Table

Called “Logical” Operators

From extended RA

Each one has alternate “physical” implementations

6

Indexed Access Use Index on Stars

Ratings Table

File Scan Read heapfile

Movies Table

Index-Nested Loop Join

Sort-based Aggregate

External Merge-Sort In-mem quicksort; B=50

Result Table Physical Query Plan

Called “Physical” Operators

Specifies exact algorithm/code to run for each logical operator, with all parameters (if any)

Aka “Query Evaluation Plan”

7

File Scan Read Index leaf pages

Ratings Table

File Scan Read heapfile

Movies Table

Hash Join

Hash-based Aggregate

External Merge-Sort In-mem quicksort; B=50

Result Table Physical Query Plan

This is also a correct PQP for the given LQP!

Q: Which PQP is faster?

This is a key job of the RDBMS Query Optimizer!

So, what is query optimization and how

does it work?

8

9

Meet Query Optimization

A given LQP could have several possible PQPs with very different runtime performanceBasic Idea:

Get the optimal (fastest) PQP for a given LQPGoal (Ideal):

Goal (Realistic): Fine, just avoid the “clearly awful” PQPs!

Query optimization is a metaphor for life itself! It is often hard to even know what an optimal plan would be, but it is feasible to avoid many obviously bad plans!Jeff Naughton

10

Query Optimization

❖ Overview of Query Optimizer ❖ Physical Query Plan (PQP) Concept: Pipelining Mechanism: Iterator Interface ❖ Enumerating Alternative PQPs Logical: Algebraic Rewrites Physical: Choosing Phy. Op. Impl. ❖ Costing PQPs ❖ Materialized Views

11

Overview of Query Optimizer

SQL Query

Logical Query Plan

Physical Query Plan (Optimized)

Parser

Plan Enumerator

Plan Cost Estimator

Optimizer

To Scheduler/Executor

Catalog

System Catalog

12

❖ Set of pre-defined relations for metadata about DB (schema) ❖ For each Relation: Relation name, File name File structure (heap file vs. clustered B+ tree, etc.) Attribute names and types; Integrity constraints; Indexes ❖ For each Index: Index name, Structure (B+ tree vs. hash, etc.); Index key

❖ For each View: View name, and View definition

Statistics in the System Catalog

13

❖ RDBMS periodically collects stats about DB (instance) ❖ For each Table R: Cardinality, i.e., number of tuples, NTuples (R) Size, i.e., number of pages, NPages (R), or just NR ❖ For each Index X: Cardinality, i.e., number of distinct keys IKeys (X)

Size, i.e., number of pages IPages (X) (for a B+ tree, this is the number of leaf pages only)

Height (for tree indexes) IHeight (X) Min and max keys in index ILow (X), IHigh (X)

14

Query Optimization

❖ Overview of Query Optimizer ❖ Physical Query Plan (PQP) Concept: Pipelining Mechanism: Iterator Interface ❖ Enumerating Alternative PQPs Logical: Algebraic Rewrites Physical: Choosing Phy. Op. Impl. ❖ Costing PQPs ❖ Materialized Views

15

File Scan Read Index leaf pages

Movies Table

File Scan Read heapfile

RatingsTable

Hash Join

Hash-based Aggregate

External Merge-Sort In-mem quicksort; B=50

Result Table Concept: Pipelining

Q: Does the hash-based aggregate have to wait till the entire output of the “upstream” hash join is available?

No! We can “pipeline” the output of the join – pass on a join output tuple as soon as it is obtained!

16

Concept: Pipelining

Do not force “downstream” physical operators to wait till the entire output is availableBasic Idea:

Display output to the user incrementally CPU Parallelism in multi-core systems!Benefits:

Tuples

File Scan

Hash Join

Hash-based Aggregate

17

Concept: Pipelining

❖ Crucial for PQPs with workflow of many phy. ops. ❖ Common feature of almost all RDBMSs ❖ Works for many operators: SCAN, HASH JOIN, etc.

Q: Are all physical operators amenable to pipelining?

No! Some may “stall” the pipeline: “Blocking Op”

Usually, any phy. op. involving sorting is blocking!

A blocking op. requires its output to be Materialized as a temporary table

18

File Scan Read heapfile

Movies Table

File Scan Read heapfile

RatingsTable

Sort-Merge Join

Hash-based Aggregate

External Merge-Sort In-mem quicksort; B=50

Result Table Blocking Op

This phy. op. is blocking because we need to sort Movies and sort Ratings (materialize the output) before we can start any aggregate computations!

19

Query Optimization

❖ Overview of Query Optimizer ❖ Physical Query Plan (PQP) Concept: Pipelining Mechanism: Iterator Interface ❖ Enumerating Alternative PQPs Logical: Algebraic Rewrites Physical: Choosing Phy. Op. Impl. ❖ Costing PQPs ❖ Materialized Views

20

Mechanism: Iterator Interface

❖ Software API to process PQP; makes pipelining easy to impl. ❖ Enables us to abstract away individual phy. op. impl. details ❖ Three main functions in usage interface of each phy. op.: Open(): Initialize the phy. op. “state”, get arguments Allocate input and output buffers GetNext(): Ask the phy. op. impl. to “deliver” next

output tuple; pass it on; if blocking, wait Close(): Clear phy. op. state, free up space

21

Query Optimization

❖ Overview of Query Optimizer ❖ Physical Query Plan (PQP) Concept: Pipelining Mechanism: Iterator Interface ❖ Enumerating Alternative PQPs Logical: Algebraic Rewrites Physical: Choosing Phy. Op. Impl. ❖ Costing PQPs ❖ Materialized Views

22

Overview of Query Optimizer

SQL Query

Logical Query Plan

Physical Query Plan (Optimized)

Parser

Plan Enumerator

Plan Cost Estimator

Optimizer

To Scheduler/Executor

Catalog

23

Enumerating Alternative PQPs

❖ Plan Enumerator explores various PQPs for a given LQP ❖ Challenge: Space of plans is huge! How to make it feasible? ❖ RDBMS Plan Enumerator has Rules to help determine what

plans to enumerate, and also consults Cost models

❖ Two main sources of Rules for enumerating plans: Logical: Algebraic Rewrites: Use relational algebra equivalence to rewrite LQP itself!

Physical: Choosing Phy. Op. Impl.: Use different phy. op. impl. for a given log. op. in LQP

24

Query Optimization

❖ Overview of Query Optimizer ❖ Physical Query Plan (PQP) Concept: Pipelining Mechanism: Iterator Interface ❖ Enumerating Alternative PQPs Logical: Algebraic Rewrites Physical: Choosing Phy. Op. Impl. ❖ Costing PQPs ❖ Materialized Views

25

Algebraic Rewrite Rules

❖ Rewrite a given RA query in to another that is equivalent (a

logical property) but might be faster (a physical property) ❖ RA operators have some formal properties we can exploit ❖ We will cover only a few rewrite rules: Single-operator Rewrites Unary operators Binary operators Cross-operator Rewrites

26

Unary Operator Rewrites

Q: Why are cascading rewrites beneficial?

�p1(�p2(R)) = �p2(�p1(R))

❖ Key unary operators in RA:

❖ Commutativity of

❖ Cascading of

❖ Cascading of

��

�p1(�p2(. . .�pn(R) . . . )) = �p1^p2^···^pn(R)

⇡A1(⇡A2(. . .⇡An(R) . . . )) = ⇡A1(R)

Ai ✓ Ai+18i = 1 . . . (n� 1)

27

Binary Operator Rewrites

Q: Why are these properties beneficial?

Q: What other binary operators in RA satisfy these?

❖ Key binary operator in RA:

❖ Associativity of

❖ Commutativity of R ./ S = S ./ R

./

./

./ (R ./ S) ./ T = R ./ (S ./ T )

28

Cross-Operator Rewrites

❖ Commuting and � ⇡ A ✓ B�p(A)(⇡B(R)) = ⇡B(�p(A)(R))

❖ Combining and � ⇥

❖ “Pushing the select”

❖ Commuting with and

A ✓ R.⇤

⇥⇡ ./

�p(R⇥ S) = R ./p S

�p(A)(R ./ S) = �p(A)(R) ./ S

�p(A)(R⇥ S) = �p(A)(R)⇥ S

⇡A(R⇥ S) = ⇡A\R.⇤(R)⇥ ⇡A\S.⇤(S)

⇡A(R ./p(B) S) = ⇡A\R.⇤(R) ./p(B) ⇡A\S.⇤(S)B ✓ A

29

Review Question 

 

 

 

30

Query Optimization

❖ Overview of Query Optimizer ❖ Physical Query Plan (PQP) Concept: Pipelining Mechanism: Iterator Interface ❖ Enumerating Alternative PQPs Logical: Algebraic Rewrites Physical: Choosing Phy. Op. Impl. ❖ Costing PQPs ❖ Materialized Views

31

Choosing Phy. Op. Impl.

 

3 options 3 options 4 options = 36 PQPs!

Q: With algebraic rewrites?!

❖ Given a (rewritten) LQP, pick phy. op. impl. for each log. op.

❖ Recall various RA op. impl. with their I/O (and CPU costs)

File scan vs Indexed (B+ Tree vs Hash)

Hashing-based vs Sorting-based vs Indexed

BNLJ vs INLJ vs SMJ vs HJ

etc.

�⇡./

32

Phy. Op. Impl.: Other Factors

❖ Are the indexes clustered or unclustered? ❖ Are there multiple matching indexes? Use multiple? ❖ Are index-only access paths possible for some ops? ❖ Are there “interesting orderings” among the inputs? ❖ Would sorted outputs benefit downstream ops? ❖ Estimation of cardinality of intermediate results! ❖ How best to reorder multi-table joins?

Still a hard, open research problem!Query optimizers are complex beasts!

33

Phy. Op. Impl.: Join Orderings❖ Since joins are associative, exponential number of orderings!

 

 

 

 

   

 

 

 

 

 

 

 

   

  

 

       

Left Deep tree Right Deep tree“Bushy” tree

❖ Almost all RDBMSs consider only left deep join trees Enables easy pipelining! Why?

❖ “Interesting orderings” idea from System R optimizer paper ❖ Dynamic program to combine enumeration and costing“Access Path Selection in a Relational Database Management System” SIGMOD’79

34

Query Optimization

❖ Overview of Query Optimizer ❖ Physical Query Plan (PQP) Concept: Pipelining Mechanism: Iterator Interface ❖ Enumerating Alternative PQPs Logical: Algebraic Rewrites Physical: Choosing Phy. Op. Impl. ❖ Costing PQPs ❖ Materialized Views

35

Overview of Query Optimizer

SQL Query

Logical Query Plan

Physical Query Plan (Optimized)

Parser

Plan Enumerator

Plan Cost Estimator

Optimizer

To Scheduler/Executor

Catalog

36

Costing PQPs

❖ For each PQP considered by the Plan Enumerator, the Plan

Cost Estimator computes “Cost” of the PQP Weighted sum of I/O cost and CPU cost (Distributed RDBMSs also include Network cost) ❖ Challenge: Given a PQP, compute overall cost ❖ Issues to consider: Pipelining vs. blocking ops; cannot simply add costs! Cardinality estimation for intermediate tables! Q: What statistics does the catalog have to help?

37

Costing PQPs

❖ Most RDBMSs use various heuristics to make costing tractable; so, it is approximate!

❖ Example: Complex predicates

  

 Not enough info!

But, most RDBMSs use the independence heuristic!

Selectivity of conjunction = Product of selectivities

Thus, ≈ 0.05 * 0.1 = 0.005, i.e., 0.5%

38

Query Optimization: Summary

❖ Plan Enumerator and Cost Estimator work in lock step: Rules determine what PQPs are enumerated Logical: Algebraic rewrites of LQP Physical: Op. Impl. and ordering alternatives Cost models and heuristics help cost the PQPs ❖ Still an active research area! Parametric Q.O., Multi-objective Q.O.,

Multi-objective parametric Q.O., Multiple Q.O., Online/Adaptive Q.O., Dynamic re-optimization, etc.

39

Review Question

RatingID Stars RateDate UID MID

SELECT COUNT(DISTINCT UID) FROM Ratings

Page size 8KB; Buffer memory 4GB; 8B for each field

Propose an efficient physical plan and compute its I/O cost.

10m pages

Q: What if there was an unclustered B+ tree index on UID? (RecordID pointers can be assumed to be 8B too)

40

Review Question

RatingID Stars RateDate UID MID

MID Name Year Director

SELECT AVG(Stars) FROM Ratings R, Movies M WHERE R.MID = M.MID AND

M.Director = “Christopher Nolan” AND R.UID = 1234;

10m pages

100k pages

Page size 8KB; Buffer memory 4GB

Propose an efficient physical plan that does not materialize any intermediate data (fully pipelined) and compute its I/O cost.

41

Query Optimization

❖ Overview of Query Optimizer ❖ Physical Query Plan (PQP) Concept: Pipelining Mechanism: Iterator Interface ❖ Enumerating Alternative PQPs Logical: Algebraic Rewrites Physical: Choosing Phy. Op. Impl. ❖ Costing PQPs ❖ Materialized Views

42

Introducing Materialized Views

❖ A View is a “virtual table” created with an SQL query

❖ A Materialized View is a physically instantiated/stored view

RatingID Stars RateDate UID MIDUID Name Age JoinDate MID Name Year DirectorExample:

SELECT AVG(Stars) FROM Ratings R, Movies M, Users U WHERE R.MID = M.MID AND R.UID = U.UID

M.Director = “Christopher Nolan” AND U.Age >= 20 AND U.Age < 30;

�AVG(Stars)(R ./ �Director=“Christopher Nolan”(M) ./ �20Age<30(U))<latexit sha1_base64="4hc4knyHFKtKx2FU4HrZUrW2DfY=">AAACeXicbVFNbxMxEPUuXyV8NIUjHEyjog2HardFKgeQCkWCC6h8JK2UjdJZZ7Kxaq9X9iwoWi2/gd/GjT/ChQtOmkjQMJKl5zdvPOM3Wamkozj+GYRXrl67fmPjZuvW7Tt3N9tb9/rOVFZgTxhl7GkGDpUssEeSFJ6WFkFnCk+y86N5/uQLWidN8ZlmJQ415IWcSAHkqVH7e5qD1jBKNdBUUv2y/yb6RGBdt+HRR55m5itJ5KmTuVfVK9lraVGQsc2Ls7MVdzS1fl5TTtF+e28UFM12E73rrr2xF/NU+euqY44Nf873Y9+w1+2O2p14N14EXwfJEnTYMo5H7R/p2IhKY0FCgXODJC5pWIMlKRQ2rbRyWII4hxwHHhag0Q3rhXMN3/HMmE+M9acgvmD/rqhBOzfTmVfOx3WXc3Pyf7lBRZNnw1oWZUVYiItGk0pxMny+Bj5eGKhmHoCw0s/KxRQsCPLLankTkstfXgf9vd3E4w9PO4evlnZssAdsm0UsYQfskL1lx6zHBPsVPAx2gsfB7/BRGIVPLqRhsKy5z/6JcP8PbkK/yg==</latexit><latexit sha1_base64="4hc4knyHFKtKx2FU4HrZUrW2DfY=">AAACeXicbVFNbxMxEPUuXyV8NIUjHEyjog2HardFKgeQCkWCC6h8JK2UjdJZZ7Kxaq9X9iwoWi2/gd/GjT/ChQtOmkjQMJKl5zdvPOM3Wamkozj+GYRXrl67fmPjZuvW7Tt3N9tb9/rOVFZgTxhl7GkGDpUssEeSFJ6WFkFnCk+y86N5/uQLWidN8ZlmJQ415IWcSAHkqVH7e5qD1jBKNdBUUv2y/yb6RGBdt+HRR55m5itJ5KmTuVfVK9lraVGQsc2Ls7MVdzS1fl5TTtF+e28UFM12E73rrr2xF/NU+euqY44Nf873Y9+w1+2O2p14N14EXwfJEnTYMo5H7R/p2IhKY0FCgXODJC5pWIMlKRQ2rbRyWII4hxwHHhag0Q3rhXMN3/HMmE+M9acgvmD/rqhBOzfTmVfOx3WXc3Pyf7lBRZNnw1oWZUVYiItGk0pxMny+Bj5eGKhmHoCw0s/KxRQsCPLLankTkstfXgf9vd3E4w9PO4evlnZssAdsm0UsYQfskL1lx6zHBPsVPAx2gsfB7/BRGIVPLqRhsKy5z/6JcP8PbkK/yg==</latexit><latexit sha1_base64="4hc4knyHFKtKx2FU4HrZUrW2DfY=">AAACeXicbVFNbxMxEPUuXyV8NIUjHEyjog2HardFKgeQCkWCC6h8JK2UjdJZZ7Kxaq9X9iwoWi2/gd/GjT/ChQtOmkjQMJKl5zdvPOM3Wamkozj+GYRXrl67fmPjZuvW7Tt3N9tb9/rOVFZgTxhl7GkGDpUssEeSFJ6WFkFnCk+y86N5/uQLWidN8ZlmJQ415IWcSAHkqVH7e5qD1jBKNdBUUv2y/yb6RGBdt+HRR55m5itJ5KmTuVfVK9lraVGQsc2Ls7MVdzS1fl5TTtF+e28UFM12E73rrr2xF/NU+euqY44Nf873Y9+w1+2O2p14N14EXwfJEnTYMo5H7R/p2IhKY0FCgXODJC5pWIMlKRQ2rbRyWII4hxwHHhag0Q3rhXMN3/HMmE+M9acgvmD/rqhBOzfTmVfOx3WXc3Pyf7lBRZNnw1oWZUVYiItGk0pxMny+Bj5eGKhmHoCw0s/KxRQsCPLLankTkstfXgf9vd3E4w9PO4evlnZssAdsm0UsYQfskL1lx6zHBPsVPAx2gsfB7/BRGIVPLqRhsKy5z/6JcP8PbkK/yg==</latexit><latexit sha1_base64="4hc4knyHFKtKx2FU4HrZUrW2DfY=">AAACeXicbVFNbxMxEPUuXyV8NIUjHEyjog2HardFKgeQCkWCC6h8JK2UjdJZZ7Kxaq9X9iwoWi2/gd/GjT/ChQtOmkjQMJKl5zdvPOM3Wamkozj+GYRXrl67fmPjZuvW7Tt3N9tb9/rOVFZgTxhl7GkGDpUssEeSFJ6WFkFnCk+y86N5/uQLWidN8ZlmJQ415IWcSAHkqVH7e5qD1jBKNdBUUv2y/yb6RGBdt+HRR55m5itJ5KmTuVfVK9lraVGQsc2Ls7MVdzS1fl5TTtF+e28UFM12E73rrr2xF/NU+euqY44Nf873Y9+w1+2O2p14N14EXwfJEnTYMo5H7R/p2IhKY0FCgXODJC5pWIMlKRQ2rbRyWII4hxwHHhag0Q3rhXMN3/HMmE+M9acgvmD/rqhBOzfTmVfOx3WXc3Pyf7lBRZNnw1oWZUVYiItGk0pxMny+Bj5eGKhmHoCw0s/KxRQsCPLLankTkstfXgf9vd3E4w9PO4evlnZssAdsm0UsYQfskL1lx6zHBPsVPAx2gsfB7/BRGIVPLqRhsKy5z/6JcP8PbkK/yg==</latexit>

Requires file scans of R, M, and U and, say, hash joins

43

Materialized Views Example

CREATE MATERIALIZED VIEW NolanRatings AS SELECT RatingID, Stars, UID, MID FROM Ratings R, Movies M WHERE R.MID = M.MID AND

M.Director = “Christopher Nolan”;

�AVG(Stars)(R ./ �Director=“Christopher Nolan”(M) ./ �20Age<30(U))<latexit sha1_base64="4hc4knyHFKtKx2FU4HrZUrW2DfY=">AAACeXicbVFNbxMxEPUuXyV8NIUjHEyjog2HardFKgeQCkWCC6h8JK2UjdJZZ7Kxaq9X9iwoWi2/gd/GjT/ChQtOmkjQMJKl5zdvPOM3Wamkozj+GYRXrl67fmPjZuvW7Tt3N9tb9/rOVFZgTxhl7GkGDpUssEeSFJ6WFkFnCk+y86N5/uQLWidN8ZlmJQ415IWcSAHkqVH7e5qD1jBKNdBUUv2y/yb6RGBdt+HRR55m5itJ5KmTuVfVK9lraVGQsc2Ls7MVdzS1fl5TTtF+e28UFM12E73rrr2xF/NU+euqY44Nf873Y9+w1+2O2p14N14EXwfJEnTYMo5H7R/p2IhKY0FCgXODJC5pWIMlKRQ2rbRyWII4hxwHHhag0Q3rhXMN3/HMmE+M9acgvmD/rqhBOzfTmVfOx3WXc3Pyf7lBRZNnw1oWZUVYiItGk0pxMny+Bj5eGKhmHoCw0s/KxRQsCPLLankTkstfXgf9vd3E4w9PO4evlnZssAdsm0UsYQfskL1lx6zHBPsVPAx2gsfB7/BRGIVPLqRhsKy5z/6JcP8PbkK/yg==</latexit><latexit sha1_base64="4hc4knyHFKtKx2FU4HrZUrW2DfY=">AAACeXicbVFNbxMxEPUuXyV8NIUjHEyjog2HardFKgeQCkWCC6h8JK2UjdJZZ7Kxaq9X9iwoWi2/gd/GjT/ChQtOmkjQMJKl5zdvPOM3Wamkozj+GYRXrl67fmPjZuvW7Tt3N9tb9/rOVFZgTxhl7GkGDpUssEeSFJ6WFkFnCk+y86N5/uQLWidN8ZlmJQ415IWcSAHkqVH7e5qD1jBKNdBUUv2y/yb6RGBdt+HRR55m5itJ5KmTuVfVK9lraVGQsc2Ls7MVdzS1fl5TTtF+e28UFM12E73rrr2xF/NU+euqY44Nf873Y9+w1+2O2p14N14EXwfJEnTYMo5H7R/p2IhKY0FCgXODJC5pWIMlKRQ2rbRyWII4hxwHHhag0Q3rhXMN3/HMmE+M9acgvmD/rqhBOzfTmVfOx3WXc3Pyf7lBRZNnw1oWZUVYiItGk0pxMny+Bj5eGKhmHoCw0s/KxRQsCPLLankTkstfXgf9vd3E4w9PO4evlnZssAdsm0UsYQfskL1lx6zHBPsVPAx2gsfB7/BRGIVPLqRhsKy5z/6JcP8PbkK/yg==</latexit><latexit sha1_base64="4hc4knyHFKtKx2FU4HrZUrW2DfY=">AAACeXicbVFNbxMxEPUuXyV8NIUjHEyjog2HardFKgeQCkWCC6h8JK2UjdJZZ7Kxaq9X9iwoWi2/gd/GjT/ChQtOmkjQMJKl5zdvPOM3Wamkozj+GYRXrl67fmPjZuvW7Tt3N9tb9/rOVFZgTxhl7GkGDpUssEeSFJ6WFkFnCk+y86N5/uQLWidN8ZlmJQ415IWcSAHkqVH7e5qD1jBKNdBUUv2y/yb6RGBdt+HRR55m5itJ5KmTuVfVK9lraVGQsc2Ls7MVdzS1fl5TTtF+e28UFM12E73rrr2xF/NU+euqY44Nf873Y9+w1+2O2p14N14EXwfJEnTYMo5H7R/p2IhKY0FCgXODJC5pWIMlKRQ2rbRyWII4hxwHHhag0Q3rhXMN3/HMmE+M9acgvmD/rqhBOzfTmVfOx3WXc3Pyf7lBRZNnw1oWZUVYiItGk0pxMny+Bj5eGKhmHoCw0s/KxRQsCPLLankTkstfXgf9vd3E4w9PO4evlnZssAdsm0UsYQfskL1lx6zHBPsVPAx2gsfB7/BRGIVPLqRhsKy5z/6JcP8PbkK/yg==</latexit><latexit sha1_base64="4hc4knyHFKtKx2FU4HrZUrW2DfY=">AAACeXicbVFNbxMxEPUuXyV8NIUjHEyjog2HardFKgeQCkWCC6h8JK2UjdJZZ7Kxaq9X9iwoWi2/gd/GjT/ChQtOmkjQMJKl5zdvPOM3Wamkozj+GYRXrl67fmPjZuvW7Tt3N9tb9/rOVFZgTxhl7GkGDpUssEeSFJ6WFkFnCk+y86N5/uQLWidN8ZlmJQ415IWcSAHkqVH7e5qD1jBKNdBUUv2y/yb6RGBdt+HRR55m5itJ5KmTuVfVK9lraVGQsc2Ls7MVdzS1fl5TTtF+e28UFM12E73rrr2xF/NU+euqY44Nf873Y9+w1+2O2p14N14EXwfJEnTYMo5H7R/p2IhKY0FCgXODJC5pWIMlKRQ2rbRyWII4hxwHHhag0Q3rhXMN3/HMmE+M9acgvmD/rqhBOzfTmVfOx3WXc3Pyf7lBRZNnw1oWZUVYiItGk0pxMny+Bj5eGKhmHoCw0s/KxRQsCPLLankTkstfXgf9vd3E4w9PO4evlnZssAdsm0UsYQfskL1lx6zHBPsVPAx2gsfB7/BRGIVPLqRhsKy5z/6JcP8PbkK/yg==</latexit>

RatingID Stars RateDate UID MIDUID Name Age JoinDate MID Name Year Director

Example:

Creates a subset of R with ratings for only Nolan’s moviesV ⇡RatingID,Stars,UID,MID(R ./ �Director=“Christopher Nolan”(M))

<latexit sha1_base64="g7FJnXzvcMJEoRqMazKC0TO5kSk=">AAACZnicbZHBaxNBFMZn16pt1Da2iIdehgYhhVJ2RdCLUNoc7KFSq0kL2ZC+nbxNhs7OLDNvW8Ky/pHePHvxz3A2jaitDwZ+fN97zJtv0kJJR1H0PQgfrDx89Hh1rfXk6bP1jfbzzYEzpRXYF0YZe5GCQyU19kmSwovCIuSpwvP06qjxz6/ROmn0F5oXOMphqmUmBZCXxu16wBOFGYG15oYnhRxXSQ40k1Sd+RY9Pe7t8c/ednu83/DJca+uefeMJ6m5IYk8cXKaw5+xnrQoyNj6/eXlb+1oZv1TTDFD+/WjUaDrnbp7srs7bnei/WhR/D7ES+iwZZ2O29+SiRFljpqEAueGcVTQqAJLUiisW0npsABxBVMcetSQoxtVi5hq/sorE54Z648mvlD/nqggd26ep76z2dvd9Rrxf96wpOzdqJK6KAm1uL0oKxUnw5vM+WQRiZp7AGGl35WLGVgQ5H+m5UOI7z75Pgxe78eeP73pHBwu41hl22yHdVnM3rID9oGdsj4T7EewFmwGW8HPcD18Eb68bQ2D5cwW+6dC/gvzI7i/</latexit><latexit sha1_base64="g7FJnXzvcMJEoRqMazKC0TO5kSk=">AAACZnicbZHBaxNBFMZn16pt1Da2iIdehgYhhVJ2RdCLUNoc7KFSq0kL2ZC+nbxNhs7OLDNvW8Ky/pHePHvxz3A2jaitDwZ+fN97zJtv0kJJR1H0PQgfrDx89Hh1rfXk6bP1jfbzzYEzpRXYF0YZe5GCQyU19kmSwovCIuSpwvP06qjxz6/ROmn0F5oXOMphqmUmBZCXxu16wBOFGYG15oYnhRxXSQ40k1Sd+RY9Pe7t8c/ednu83/DJca+uefeMJ6m5IYk8cXKaw5+xnrQoyNj6/eXlb+1oZv1TTDFD+/WjUaDrnbp7srs7bnei/WhR/D7ES+iwZZ2O29+SiRFljpqEAueGcVTQqAJLUiisW0npsABxBVMcetSQoxtVi5hq/sorE54Z648mvlD/nqggd26ep76z2dvd9Rrxf96wpOzdqJK6KAm1uL0oKxUnw5vM+WQRiZp7AGGl35WLGVgQ5H+m5UOI7z75Pgxe78eeP73pHBwu41hl22yHdVnM3rID9oGdsj4T7EewFmwGW8HPcD18Eb68bQ2D5cwW+6dC/gvzI7i/</latexit><latexit sha1_base64="g7FJnXzvcMJEoRqMazKC0TO5kSk=">AAACZnicbZHBaxNBFMZn16pt1Da2iIdehgYhhVJ2RdCLUNoc7KFSq0kL2ZC+nbxNhs7OLDNvW8Ky/pHePHvxz3A2jaitDwZ+fN97zJtv0kJJR1H0PQgfrDx89Hh1rfXk6bP1jfbzzYEzpRXYF0YZe5GCQyU19kmSwovCIuSpwvP06qjxz6/ROmn0F5oXOMphqmUmBZCXxu16wBOFGYG15oYnhRxXSQ40k1Sd+RY9Pe7t8c/ednu83/DJca+uefeMJ6m5IYk8cXKaw5+xnrQoyNj6/eXlb+1oZv1TTDFD+/WjUaDrnbp7srs7bnei/WhR/D7ES+iwZZ2O29+SiRFljpqEAueGcVTQqAJLUiisW0npsABxBVMcetSQoxtVi5hq/sorE54Z648mvlD/nqggd26ep76z2dvd9Rrxf96wpOzdqJK6KAm1uL0oKxUnw5vM+WQRiZp7AGGl35WLGVgQ5H+m5UOI7z75Pgxe78eeP73pHBwu41hl22yHdVnM3rID9oGdsj4T7EewFmwGW8HPcD18Eb68bQ2D5cwW+6dC/gvzI7i/</latexit><latexit sha1_base64="g7FJnXzvcMJEoRqMazKC0TO5kSk=">AAACZnicbZHBaxNBFMZn16pt1Da2iIdehgYhhVJ2RdCLUNoc7KFSq0kL2ZC+nbxNhs7OLDNvW8Ky/pHePHvxz3A2jaitDwZ+fN97zJtv0kJJR1H0PQgfrDx89Hh1rfXk6bP1jfbzzYEzpRXYF0YZe5GCQyU19kmSwovCIuSpwvP06qjxz6/ROmn0F5oXOMphqmUmBZCXxu16wBOFGYG15oYnhRxXSQ40k1Sd+RY9Pe7t8c/ednu83/DJca+uefeMJ6m5IYk8cXKaw5+xnrQoyNj6/eXlb+1oZv1TTDFD+/WjUaDrnbp7srs7bnei/WhR/D7ES+iwZZ2O29+SiRFljpqEAueGcVTQqAJLUiisW0npsABxBVMcetSQoxtVi5hq/sorE54Z648mvlD/nqggd26ep76z2dvd9Rrxf96wpOzdqJK6KAm1uL0oKxUnw5vM+WQRiZp7AGGl35WLGVgQ5H+m5UOI7z75Pgxe78eeP73pHBwu41hl22yHdVnM3rID9oGdsj4T7EewFmwGW8HPcD18Eb68bQ2D5cwW+6dC/gvzI7i/</latexit>

44

�AVG(Stars)(R ./ �Director=“Christopher Nolan”(M) ./ �20Age<30(U))<latexit sha1_base64="4hc4knyHFKtKx2FU4HrZUrW2DfY=">AAACeXicbVFNbxMxEPUuXyV8NIUjHEyjog2HardFKgeQCkWCC6h8JK2UjdJZZ7Kxaq9X9iwoWi2/gd/GjT/ChQtOmkjQMJKl5zdvPOM3Wamkozj+GYRXrl67fmPjZuvW7Tt3N9tb9/rOVFZgTxhl7GkGDpUssEeSFJ6WFkFnCk+y86N5/uQLWidN8ZlmJQ415IWcSAHkqVH7e5qD1jBKNdBUUv2y/yb6RGBdt+HRR55m5itJ5KmTuVfVK9lraVGQsc2Ls7MVdzS1fl5TTtF+e28UFM12E73rrr2xF/NU+euqY44Nf873Y9+w1+2O2p14N14EXwfJEnTYMo5H7R/p2IhKY0FCgXODJC5pWIMlKRQ2rbRyWII4hxwHHhag0Q3rhXMN3/HMmE+M9acgvmD/rqhBOzfTmVfOx3WXc3Pyf7lBRZNnw1oWZUVYiItGk0pxMny+Bj5eGKhmHoCw0s/KxRQsCPLLankTkstfXgf9vd3E4w9PO4evlnZssAdsm0UsYQfskL1lx6zHBPsVPAx2gsfB7/BRGIVPLqRhsKy5z/6JcP8PbkK/yg==</latexit><latexit sha1_base64="4hc4knyHFKtKx2FU4HrZUrW2DfY=">AAACeXicbVFNbxMxEPUuXyV8NIUjHEyjog2HardFKgeQCkWCC6h8JK2UjdJZZ7Kxaq9X9iwoWi2/gd/GjT/ChQtOmkjQMJKl5zdvPOM3Wamkozj+GYRXrl67fmPjZuvW7Tt3N9tb9/rOVFZgTxhl7GkGDpUssEeSFJ6WFkFnCk+y86N5/uQLWidN8ZlmJQ415IWcSAHkqVH7e5qD1jBKNdBUUv2y/yb6RGBdt+HRR55m5itJ5KmTuVfVK9lraVGQsc2Ls7MVdzS1fl5TTtF+e28UFM12E73rrr2xF/NU+euqY44Nf873Y9+w1+2O2p14N14EXwfJEnTYMo5H7R/p2IhKY0FCgXODJC5pWIMlKRQ2rbRyWII4hxwHHhag0Q3rhXMN3/HMmE+M9acgvmD/rqhBOzfTmVfOx3WXc3Pyf7lBRZNnw1oWZUVYiItGk0pxMny+Bj5eGKhmHoCw0s/KxRQsCPLLankTkstfXgf9vd3E4w9PO4evlnZssAdsm0UsYQfskL1lx6zHBPsVPAx2gsfB7/BRGIVPLqRhsKy5z/6JcP8PbkK/yg==</latexit><latexit sha1_base64="4hc4knyHFKtKx2FU4HrZUrW2DfY=">AAACeXicbVFNbxMxEPUuXyV8NIUjHEyjog2HardFKgeQCkWCC6h8JK2UjdJZZ7Kxaq9X9iwoWi2/gd/GjT/ChQtOmkjQMJKl5zdvPOM3Wamkozj+GYRXrl67fmPjZuvW7Tt3N9tb9/rOVFZgTxhl7GkGDpUssEeSFJ6WFkFnCk+y86N5/uQLWidN8ZlmJQ415IWcSAHkqVH7e5qD1jBKNdBUUv2y/yb6RGBdt+HRR55m5itJ5KmTuVfVK9lraVGQsc2Ls7MVdzS1fl5TTtF+e28UFM12E73rrr2xF/NU+euqY44Nf873Y9+w1+2O2p14N14EXwfJEnTYMo5H7R/p2IhKY0FCgXODJC5pWIMlKRQ2rbRyWII4hxwHHhag0Q3rhXMN3/HMmE+M9acgvmD/rqhBOzfTmVfOx3WXc3Pyf7lBRZNnw1oWZUVYiItGk0pxMny+Bj5eGKhmHoCw0s/KxRQsCPLLankTkstfXgf9vd3E4w9PO4evlnZssAdsm0UsYQfskL1lx6zHBPsVPAx2gsfB7/BRGIVPLqRhsKy5z/6JcP8PbkK/yg==</latexit><latexit sha1_base64="4hc4knyHFKtKx2FU4HrZUrW2DfY=">AAACeXicbVFNbxMxEPUuXyV8NIUjHEyjog2HardFKgeQCkWCC6h8JK2UjdJZZ7Kxaq9X9iwoWi2/gd/GjT/ChQtOmkjQMJKl5zdvPOM3Wamkozj+GYRXrl67fmPjZuvW7Tt3N9tb9/rOVFZgTxhl7GkGDpUssEeSFJ6WFkFnCk+y86N5/uQLWidN8ZlmJQ415IWcSAHkqVH7e5qD1jBKNdBUUv2y/yb6RGBdt+HRR55m5itJ5KmTuVfVK9lraVGQsc2Ls7MVdzS1fl5TTtF+e28UFM12E73rrr2xF/NU+euqY44Nf873Y9+w1+2O2p14N14EXwfJEnTYMo5H7R/p2IhKY0FCgXODJC5pWIMlKRQ2rbRyWII4hxwHHhag0Q3rhXMN3/HMmE+M9acgvmD/rqhBOzfTmVfOx3WXc3Pyf7lBRZNnw1oWZUVYiItGk0pxMny+Bj5eGKhmHoCw0s/KxRQsCPLLankTkstfXgf9vd3E4w9PO4evlnZssAdsm0UsYQfskL1lx6zHBPsVPAx2gsfB7/BRGIVPLqRhsKy5z/6JcP8PbkK/yg==</latexit>

RatingID Stars RateDate UID MIDUID Name Age JoinDate MID Name Year Director

Example:

Given the materialized view V, RDBMS optimizer can automatically rewrite to use V to avoid scans of R and M

V ⇡RatingID,Stars,UID,MID(R ./ �Director=“Christopher Nolan”(M))<latexit sha1_base64="g7FJnXzvcMJEoRqMazKC0TO5kSk=">AAACZnicbZHBaxNBFMZn16pt1Da2iIdehgYhhVJ2RdCLUNoc7KFSq0kL2ZC+nbxNhs7OLDNvW8Ky/pHePHvxz3A2jaitDwZ+fN97zJtv0kJJR1H0PQgfrDx89Hh1rfXk6bP1jfbzzYEzpRXYF0YZe5GCQyU19kmSwovCIuSpwvP06qjxz6/ROmn0F5oXOMphqmUmBZCXxu16wBOFGYG15oYnhRxXSQ40k1Sd+RY9Pe7t8c/ednu83/DJca+uefeMJ6m5IYk8cXKaw5+xnrQoyNj6/eXlb+1oZv1TTDFD+/WjUaDrnbp7srs7bnei/WhR/D7ES+iwZZ2O29+SiRFljpqEAueGcVTQqAJLUiisW0npsABxBVMcetSQoxtVi5hq/sorE54Z648mvlD/nqggd26ep76z2dvd9Rrxf96wpOzdqJK6KAm1uL0oKxUnw5vM+WQRiZp7AGGl35WLGVgQ5H+m5UOI7z75Pgxe78eeP73pHBwu41hl22yHdVnM3rID9oGdsj4T7EewFmwGW8HPcD18Eb68bQ2D5cwW+6dC/gvzI7i/</latexit><latexit sha1_base64="g7FJnXzvcMJEoRqMazKC0TO5kSk=">AAACZnicbZHBaxNBFMZn16pt1Da2iIdehgYhhVJ2RdCLUNoc7KFSq0kL2ZC+nbxNhs7OLDNvW8Ky/pHePHvxz3A2jaitDwZ+fN97zJtv0kJJR1H0PQgfrDx89Hh1rfXk6bP1jfbzzYEzpRXYF0YZe5GCQyU19kmSwovCIuSpwvP06qjxz6/ROmn0F5oXOMphqmUmBZCXxu16wBOFGYG15oYnhRxXSQ40k1Sd+RY9Pe7t8c/ednu83/DJca+uefeMJ6m5IYk8cXKaw5+xnrQoyNj6/eXlb+1oZv1TTDFD+/WjUaDrnbp7srs7bnei/WhR/D7ES+iwZZ2O29+SiRFljpqEAueGcVTQqAJLUiisW0npsABxBVMcetSQoxtVi5hq/sorE54Z648mvlD/nqggd26ep76z2dvd9Rrxf96wpOzdqJK6KAm1uL0oKxUnw5vM+WQRiZp7AGGl35WLGVgQ5H+m5UOI7z75Pgxe78eeP73pHBwu41hl22yHdVnM3rID9oGdsj4T7EewFmwGW8HPcD18Eb68bQ2D5cwW+6dC/gvzI7i/</latexit><latexit sha1_base64="g7FJnXzvcMJEoRqMazKC0TO5kSk=">AAACZnicbZHBaxNBFMZn16pt1Da2iIdehgYhhVJ2RdCLUNoc7KFSq0kL2ZC+nbxNhs7OLDNvW8Ky/pHePHvxz3A2jaitDwZ+fN97zJtv0kJJR1H0PQgfrDx89Hh1rfXk6bP1jfbzzYEzpRXYF0YZe5GCQyU19kmSwovCIuSpwvP06qjxz6/ROmn0F5oXOMphqmUmBZCXxu16wBOFGYG15oYnhRxXSQ40k1Sd+RY9Pe7t8c/ednu83/DJca+uefeMJ6m5IYk8cXKaw5+xnrQoyNj6/eXlb+1oZv1TTDFD+/WjUaDrnbp7srs7bnei/WhR/D7ES+iwZZ2O29+SiRFljpqEAueGcVTQqAJLUiisW0npsABxBVMcetSQoxtVi5hq/sorE54Z648mvlD/nqggd26ep76z2dvd9Rrxf96wpOzdqJK6KAm1uL0oKxUnw5vM+WQRiZp7AGGl35WLGVgQ5H+m5UOI7z75Pgxe78eeP73pHBwu41hl22yHdVnM3rID9oGdsj4T7EewFmwGW8HPcD18Eb68bQ2D5cwW+6dC/gvzI7i/</latexit><latexit sha1_base64="g7FJnXzvcMJEoRqMazKC0TO5kSk=">AAACZnicbZHBaxNBFMZn16pt1Da2iIdehgYhhVJ2RdCLUNoc7KFSq0kL2ZC+nbxNhs7OLDNvW8Ky/pHePHvxz3A2jaitDwZ+fN97zJtv0kJJR1H0PQgfrDx89Hh1rfXk6bP1jfbzzYEzpRXYF0YZe5GCQyU19kmSwovCIuSpwvP06qjxz6/ROmn0F5oXOMphqmUmBZCXxu16wBOFGYG15oYnhRxXSQ40k1Sd+RY9Pe7t8c/ednu83/DJca+uefeMJ6m5IYk8cXKaw5+xnrQoyNj6/eXlb+1oZv1TTDFD+/WjUaDrnbp7srs7bnei/WhR/D7ES+iwZZ2O29+SiRFljpqEAueGcVTQqAJLUiisW0npsABxBVMcetSQoxtVi5hq/sorE54Z648mvlD/nqggd26ep76z2dvd9Rrxf96wpOzdqJK6KAm1uL0oKxUnw5vM+WQRiZp7AGGl35WLGVgQ5H+m5UOI7z75Pgxe78eeP73pHBwu41hl22yHdVnM3rID9oGdsj4T7EewFmwGW8HPcD18Eb68bQ2D5cwW+6dC/gvzI7i/</latexit>

�AVG(Stars)(V ./ �20Age<30(U))<latexit sha1_base64="ZkjpKjWfAz7r6dTMfiAbaesJTz0=">AAACNXicbVA9TxtBEN0jfJovJylpVlhIdmPdAVJSUDhJkRQUILBB8lnW3Hp8Xnn37rQ7l8g6+U+lyf+ggoIiCNHyF1gbI/H1pJXevnmjmXlRpqQl37/y5j7MLywuLa+UVtfWNzbLHz+1bJobgU2RqtScR2BRyQSbJEnheWYQdKTwLBr+mNTPfqOxMk1OaZRhR0OcyL4UQE7qlg/DGLSGbqiBBpKKb62f1RMCY2tjXm3xMEr/kEQeWhk7V7Hr81C575M7xjE/4Hu+MzdrtW654tf9KfhbEsxIhc1w1C1fhL1U5BoTEgqsbQd+Rp0CDEmhcFwKc4sZiCHE2HY0AY22U0yvHvMdp/R4PzXuJcSn6vOOArS1Ix0552Rd+7o2Ed+rtXPqf+0UMslywkQ8DurnilPKJxHynjQoSI0cAWGk25WLARgQ5IIuuRCC1ye/Ja3deuD48X6l8X0WxzLbYtusygL2hTXYL3bEmkywv+yS/Wc33j/v2rv17h6tc96s5zN7Ae/+AdQxqYU=</latexit><latexit sha1_base64="ZkjpKjWfAz7r6dTMfiAbaesJTz0=">AAACNXicbVA9TxtBEN0jfJovJylpVlhIdmPdAVJSUDhJkRQUILBB8lnW3Hp8Xnn37rQ7l8g6+U+lyf+ggoIiCNHyF1gbI/H1pJXevnmjmXlRpqQl37/y5j7MLywuLa+UVtfWNzbLHz+1bJobgU2RqtScR2BRyQSbJEnheWYQdKTwLBr+mNTPfqOxMk1OaZRhR0OcyL4UQE7qlg/DGLSGbqiBBpKKb62f1RMCY2tjXm3xMEr/kEQeWhk7V7Hr81C575M7xjE/4Hu+MzdrtW654tf9KfhbEsxIhc1w1C1fhL1U5BoTEgqsbQd+Rp0CDEmhcFwKc4sZiCHE2HY0AY22U0yvHvMdp/R4PzXuJcSn6vOOArS1Ix0552Rd+7o2Ed+rtXPqf+0UMslywkQ8DurnilPKJxHynjQoSI0cAWGk25WLARgQ5IIuuRCC1ye/Ja3deuD48X6l8X0WxzLbYtusygL2hTXYL3bEmkywv+yS/Wc33j/v2rv17h6tc96s5zN7Ae/+AdQxqYU=</latexit><latexit sha1_base64="ZkjpKjWfAz7r6dTMfiAbaesJTz0=">AAACNXicbVA9TxtBEN0jfJovJylpVlhIdmPdAVJSUDhJkRQUILBB8lnW3Hp8Xnn37rQ7l8g6+U+lyf+ggoIiCNHyF1gbI/H1pJXevnmjmXlRpqQl37/y5j7MLywuLa+UVtfWNzbLHz+1bJobgU2RqtScR2BRyQSbJEnheWYQdKTwLBr+mNTPfqOxMk1OaZRhR0OcyL4UQE7qlg/DGLSGbqiBBpKKb62f1RMCY2tjXm3xMEr/kEQeWhk7V7Hr81C575M7xjE/4Hu+MzdrtW654tf9KfhbEsxIhc1w1C1fhL1U5BoTEgqsbQd+Rp0CDEmhcFwKc4sZiCHE2HY0AY22U0yvHvMdp/R4PzXuJcSn6vOOArS1Ix0552Rd+7o2Ed+rtXPqf+0UMslywkQ8DurnilPKJxHynjQoSI0cAWGk25WLARgQ5IIuuRCC1ye/Ja3deuD48X6l8X0WxzLbYtusygL2hTXYL3bEmkywv+yS/Wc33j/v2rv17h6tc96s5zN7Ae/+AdQxqYU=</latexit><latexit sha1_base64="ZkjpKjWfAz7r6dTMfiAbaesJTz0=">AAACNXicbVA9TxtBEN0jfJovJylpVlhIdmPdAVJSUDhJkRQUILBB8lnW3Hp8Xnn37rQ7l8g6+U+lyf+ggoIiCNHyF1gbI/H1pJXevnmjmXlRpqQl37/y5j7MLywuLa+UVtfWNzbLHz+1bJobgU2RqtScR2BRyQSbJEnheWYQdKTwLBr+mNTPfqOxMk1OaZRhR0OcyL4UQE7qlg/DGLSGbqiBBpKKb62f1RMCY2tjXm3xMEr/kEQeWhk7V7Hr81C575M7xjE/4Hu+MzdrtW654tf9KfhbEsxIhc1w1C1fhL1U5BoTEgqsbQd+Rp0CDEmhcFwKc4sZiCHE2HY0AY22U0yvHvMdp/R4PzXuJcSn6vOOArS1Ix0552Rd+7o2Ed+rtXPqf+0UMslywkQ8DurnilPKJxHynjQoSI0cAWGk25WLARgQ5IIuuRCC1ye/Ja3deuD48X6l8X0WxzLbYtusygL2hTXYL3bEmkywv+yS/Wc33j/v2rv17h6tc96s5zN7Ae/+AdQxqYU=</latexit>

Likely much faster since V is likely much smaller than R, but this depends on data statistics; leave it to optimizer!

Q: How did DBA know to materialize a view for Nolan ratings?

Materialized Views Example

45

RatingID Stars RateDate UID MIDUID Name Age JoinDate MID Name Year Director

Example:

We are given this materialized view V over R and M

V ⇡RatingID,Stars,UID,MID(R ./ �Director=“Christopher Nolan”(M))<latexit sha1_base64="g7FJnXzvcMJEoRqMazKC0TO5kSk=">AAACZnicbZHBaxNBFMZn16pt1Da2iIdehgYhhVJ2RdCLUNoc7KFSq0kL2ZC+nbxNhs7OLDNvW8Ky/pHePHvxz3A2jaitDwZ+fN97zJtv0kJJR1H0PQgfrDx89Hh1rfXk6bP1jfbzzYEzpRXYF0YZe5GCQyU19kmSwovCIuSpwvP06qjxz6/ROmn0F5oXOMphqmUmBZCXxu16wBOFGYG15oYnhRxXSQ40k1Sd+RY9Pe7t8c/ednu83/DJca+uefeMJ6m5IYk8cXKaw5+xnrQoyNj6/eXlb+1oZv1TTDFD+/WjUaDrnbp7srs7bnei/WhR/D7ES+iwZZ2O29+SiRFljpqEAueGcVTQqAJLUiisW0npsABxBVMcetSQoxtVi5hq/sorE54Z648mvlD/nqggd26ep76z2dvd9Rrxf96wpOzdqJK6KAm1uL0oKxUnw5vM+WQRiZp7AGGl35WLGVgQ5H+m5UOI7z75Pgxe78eeP73pHBwu41hl22yHdVnM3rID9oGdsj4T7EewFmwGW8HPcD18Eb68bQ2D5cwW+6dC/gvzI7i/</latexit><latexit sha1_base64="g7FJnXzvcMJEoRqMazKC0TO5kSk=">AAACZnicbZHBaxNBFMZn16pt1Da2iIdehgYhhVJ2RdCLUNoc7KFSq0kL2ZC+nbxNhs7OLDNvW8Ky/pHePHvxz3A2jaitDwZ+fN97zJtv0kJJR1H0PQgfrDx89Hh1rfXk6bP1jfbzzYEzpRXYF0YZe5GCQyU19kmSwovCIuSpwvP06qjxz6/ROmn0F5oXOMphqmUmBZCXxu16wBOFGYG15oYnhRxXSQ40k1Sd+RY9Pe7t8c/ednu83/DJca+uefeMJ6m5IYk8cXKaw5+xnrQoyNj6/eXlb+1oZv1TTDFD+/WjUaDrnbp7srs7bnei/WhR/D7ES+iwZZ2O29+SiRFljpqEAueGcVTQqAJLUiisW0npsABxBVMcetSQoxtVi5hq/sorE54Z648mvlD/nqggd26ep76z2dvd9Rrxf96wpOzdqJK6KAm1uL0oKxUnw5vM+WQRiZp7AGGl35WLGVgQ5H+m5UOI7z75Pgxe78eeP73pHBwu41hl22yHdVnM3rID9oGdsj4T7EewFmwGW8HPcD18Eb68bQ2D5cwW+6dC/gvzI7i/</latexit><latexit sha1_base64="g7FJnXzvcMJEoRqMazKC0TO5kSk=">AAACZnicbZHBaxNBFMZn16pt1Da2iIdehgYhhVJ2RdCLUNoc7KFSq0kL2ZC+nbxNhs7OLDNvW8Ky/pHePHvxz3A2jaitDwZ+fN97zJtv0kJJR1H0PQgfrDx89Hh1rfXk6bP1jfbzzYEzpRXYF0YZe5GCQyU19kmSwovCIuSpwvP06qjxz6/ROmn0F5oXOMphqmUmBZCXxu16wBOFGYG15oYnhRxXSQ40k1Sd+RY9Pe7t8c/ednu83/DJca+uefeMJ6m5IYk8cXKaw5+xnrQoyNj6/eXlb+1oZv1TTDFD+/WjUaDrnbp7srs7bnei/WhR/D7ES+iwZZ2O29+SiRFljpqEAueGcVTQqAJLUiisW0npsABxBVMcetSQoxtVi5hq/sorE54Z648mvlD/nqggd26ep76z2dvd9Rrxf96wpOzdqJK6KAm1uL0oKxUnw5vM+WQRiZp7AGGl35WLGVgQ5H+m5UOI7z75Pgxe78eeP73pHBwu41hl22yHdVnM3rID9oGdsj4T7EewFmwGW8HPcD18Eb68bQ2D5cwW+6dC/gvzI7i/</latexit><latexit sha1_base64="g7FJnXzvcMJEoRqMazKC0TO5kSk=">AAACZnicbZHBaxNBFMZn16pt1Da2iIdehgYhhVJ2RdCLUNoc7KFSq0kL2ZC+nbxNhs7OLDNvW8Ky/pHePHvxz3A2jaitDwZ+fN97zJtv0kJJR1H0PQgfrDx89Hh1rfXk6bP1jfbzzYEzpRXYF0YZe5GCQyU19kmSwovCIuSpwvP06qjxz6/ROmn0F5oXOMphqmUmBZCXxu16wBOFGYG15oYnhRxXSQ40k1Sd+RY9Pe7t8c/ednu83/DJca+uefeMJ6m5IYk8cXKaw5+xnrQoyNj6/eXlb+1oZv1TTDFD+/WjUaDrnbp7srs7bnei/WhR/D7ES+iwZZ2O29+SiRFljpqEAueGcVTQqAJLUiisW0npsABxBVMcetSQoxtVi5hq/sorE54Z648mvlD/nqggd26ep76z2dvd9Rrxf96wpOzdqJK6KAm1uL0oKxUnw5vM+WQRiZp7AGGl35WLGVgQ5H+m5UOI7z75Pgxe78eeP73pHBwu41hl22yHdVnM3rID9oGdsj4T7EewFmwGW8HPcD18Eb68bQ2D5cwW+6dC/gvzI7i/</latexit>

Q: What if new ratings are inserted to R for Nolan’s movies?

Materialized View Maintenance

❖ RDBMS will automatically “trigger” updates to V ❖ Such updates are called Materialized View Maintenance ❖ 2 alternatives: Recompute whole view from scratch vs

Incremental View Maintenance (IVM)

46

Recomputing V from scratch may be an overkill Try to incrementally update parts that change

Incremental View Maintenance (IVM)

Basic Idea:

V 0 = Q(D0)<latexit sha1_base64="V/tJ7TUF+7HCIRyXbkTldE8r42w=">AAAB8XicbZDLSgMxFIZPvNZ6q7p0EyzSuikzIuhGKOrCZQv2gu1QMmmmDc1khiQjlKFv4caFIm59G3e+jWk7C239IfDxn3PIOb8fC66N43yjldW19Y3N3FZ+e2d3b79wcNjUUaIoa9BIRKrtE80El6xhuBGsHStGQl+wlj+6ndZbT0xpHskHM46ZF5KB5AGnxFjrsVnC17heviud9QpFp+LMhJfBzaAImWq9wle3H9EkZNJQQbTuuE5svJQow6lgk3w30SwmdEQGrGNRkpBpL51tPMGn1unjIFL2SYNn7u+JlIRaj0PfdobEDPVibWr+V+skJrjyUi7jxDBJ5x8FicAmwtPzcZ8rRo0YWyBUcbsrpkOiCDU2pLwNwV08eRma5xXXcv2iWL3J4sjBMZxAGVy4hCrcQw0aQEHCM7zCG9LoBb2jj3nrCspmjuCP0OcPmRaO5Q==</latexit><latexit sha1_base64="V/tJ7TUF+7HCIRyXbkTldE8r42w=">AAAB8XicbZDLSgMxFIZPvNZ6q7p0EyzSuikzIuhGKOrCZQv2gu1QMmmmDc1khiQjlKFv4caFIm59G3e+jWk7C239IfDxn3PIOb8fC66N43yjldW19Y3N3FZ+e2d3b79wcNjUUaIoa9BIRKrtE80El6xhuBGsHStGQl+wlj+6ndZbT0xpHskHM46ZF5KB5AGnxFjrsVnC17heviud9QpFp+LMhJfBzaAImWq9wle3H9EkZNJQQbTuuE5svJQow6lgk3w30SwmdEQGrGNRkpBpL51tPMGn1unjIFL2SYNn7u+JlIRaj0PfdobEDPVibWr+V+skJrjyUi7jxDBJ5x8FicAmwtPzcZ8rRo0YWyBUcbsrpkOiCDU2pLwNwV08eRma5xXXcv2iWL3J4sjBMZxAGVy4hCrcQw0aQEHCM7zCG9LoBb2jj3nrCspmjuCP0OcPmRaO5Q==</latexit><latexit sha1_base64="V/tJ7TUF+7HCIRyXbkTldE8r42w=">AAAB8XicbZDLSgMxFIZPvNZ6q7p0EyzSuikzIuhGKOrCZQv2gu1QMmmmDc1khiQjlKFv4caFIm59G3e+jWk7C239IfDxn3PIOb8fC66N43yjldW19Y3N3FZ+e2d3b79wcNjUUaIoa9BIRKrtE80El6xhuBGsHStGQl+wlj+6ndZbT0xpHskHM46ZF5KB5AGnxFjrsVnC17heviud9QpFp+LMhJfBzaAImWq9wle3H9EkZNJQQbTuuE5svJQow6lgk3w30SwmdEQGrGNRkpBpL51tPMGn1unjIFL2SYNn7u+JlIRaj0PfdobEDPVibWr+V+skJrjyUi7jxDBJ5x8FicAmwtPzcZ8rRo0YWyBUcbsrpkOiCDU2pLwNwV08eRma5xXXcv2iWL3J4sjBMZxAGVy4hCrcQw0aQEHCM7zCG9LoBb2jj3nrCspmjuCP0OcPmRaO5Q==</latexit><latexit sha1_base64="V/tJ7TUF+7HCIRyXbkTldE8r42w=">AAAB8XicbZDLSgMxFIZPvNZ6q7p0EyzSuikzIuhGKOrCZQv2gu1QMmmmDc1khiQjlKFv4caFIm59G3e+jWk7C239IfDxn3PIOb8fC66N43yjldW19Y3N3FZ+e2d3b79wcNjUUaIoa9BIRKrtE80El6xhuBGsHStGQl+wlj+6ndZbT0xpHskHM46ZF5KB5AGnxFjrsVnC17heviud9QpFp+LMhJfBzaAImWq9wle3H9EkZNJQQbTuuE5svJQow6lgk3w30SwmdEQGrGNRkpBpL51tPMGn1unjIFL2SYNn7u+JlIRaj0PfdobEDPVibWr+V+skJrjyUi7jxDBJ5x8FicAmwtPzcZ8rRo0YWyBUcbsrpkOiCDU2pLwNwV08eRma5xXXcv2iWL3J4sjBMZxAGVy4hCrcQw0aQEHCM7zCG9LoBb2jj3nrCspmjuCP0OcPmRaO5Q==</latexit>

V = Q(D)<latexit sha1_base64="MDDam1hJPkCdqHSi1aGPF+ZdvfA=">AAAB73icbZBNSwMxEIZn/az1q+rRS7AI9VJ2RdCLUNSDxxbsB7RLyabZNjSbXZNZoZT+CS8eFPHq3/HmvzFt96CtLwQe3pkhM2+QSGHQdb+dldW19Y3N3FZ+e2d3b79wcNgwcaoZr7NYxroVUMOlULyOAiVvJZrTKJC8GQxvp/XmE9dGxOoBRwn3I9pXIhSMorVaDXJNaqW7s26h6JbdmcgyeBkUIVO1W/jq9GKWRlwhk9SYtucm6I+pRsEkn+Q7qeEJZUPa522Likbc+OPZvhNyap0eCWNtn0Iyc39PjGlkzCgKbGdEcWAWa1Pzv1o7xfDKHwuVpMgVm38UppJgTKbHk57QnKEcWaBMC7srYQOqKUMbUd6G4C2evAyN87JnuXZRrNxkceTgGE6gBB5cQgXuoQp1YCDhGV7hzXl0Xpx352PeuuJkM0fwR87nD9WkjoM=</latexit><latexit sha1_base64="MDDam1hJPkCdqHSi1aGPF+ZdvfA=">AAAB73icbZBNSwMxEIZn/az1q+rRS7AI9VJ2RdCLUNSDxxbsB7RLyabZNjSbXZNZoZT+CS8eFPHq3/HmvzFt96CtLwQe3pkhM2+QSGHQdb+dldW19Y3N3FZ+e2d3b79wcNgwcaoZr7NYxroVUMOlULyOAiVvJZrTKJC8GQxvp/XmE9dGxOoBRwn3I9pXIhSMorVaDXJNaqW7s26h6JbdmcgyeBkUIVO1W/jq9GKWRlwhk9SYtucm6I+pRsEkn+Q7qeEJZUPa522Likbc+OPZvhNyap0eCWNtn0Iyc39PjGlkzCgKbGdEcWAWa1Pzv1o7xfDKHwuVpMgVm38UppJgTKbHk57QnKEcWaBMC7srYQOqKUMbUd6G4C2evAyN87JnuXZRrNxkceTgGE6gBB5cQgXuoQp1YCDhGV7hzXl0Xpx352PeuuJkM0fwR87nD9WkjoM=</latexit><latexit sha1_base64="MDDam1hJPkCdqHSi1aGPF+ZdvfA=">AAAB73icbZBNSwMxEIZn/az1q+rRS7AI9VJ2RdCLUNSDxxbsB7RLyabZNjSbXZNZoZT+CS8eFPHq3/HmvzFt96CtLwQe3pkhM2+QSGHQdb+dldW19Y3N3FZ+e2d3b79wcNgwcaoZr7NYxroVUMOlULyOAiVvJZrTKJC8GQxvp/XmE9dGxOoBRwn3I9pXIhSMorVaDXJNaqW7s26h6JbdmcgyeBkUIVO1W/jq9GKWRlwhk9SYtucm6I+pRsEkn+Q7qeEJZUPa522Likbc+OPZvhNyap0eCWNtn0Iyc39PjGlkzCgKbGdEcWAWa1Pzv1o7xfDKHwuVpMgVm38UppJgTKbHk57QnKEcWaBMC7srYQOqKUMbUd6G4C2evAyN87JnuXZRrNxkceTgGE6gBB5cQgXuoQp1YCDhGV7hzXl0Xpx352PeuuJkM0fwR87nD9WkjoM=</latexit><latexit sha1_base64="MDDam1hJPkCdqHSi1aGPF+ZdvfA=">AAAB73icbZBNSwMxEIZn/az1q+rRS7AI9VJ2RdCLUNSDxxbsB7RLyabZNjSbXZNZoZT+CS8eFPHq3/HmvzFt96CtLwQe3pkhM2+QSGHQdb+dldW19Y3N3FZ+e2d3b79wcNgwcaoZr7NYxroVUMOlULyOAiVvJZrTKJC8GQxvp/XmE9dGxOoBRwn3I9pXIhSMorVaDXJNaqW7s26h6JbdmcgyeBkUIVO1W/jq9GKWRlwhk9SYtucm6I+pRsEkn+Q7qeEJZUPa522Likbc+OPZvhNyap0eCWNtn0Iyc39PjGlkzCgKbGdEcWAWa1Pzv1o7xfDKHwuVpMgVm38UppJgTKbHk57QnKEcWaBMC7srYQOqKUMbUd6G4C2evAyN87JnuXZRrNxkceTgGE6gBB5cQgXuoQp1YCDhGV7hzXl0Xpx352PeuuJkM0fwR87nD9WkjoM=</latexit>

❖ D’ can be the outcome of inserts and/or deletes to D ❖ Q can be a unary query or involve multiple tables ❖ Computing V’ may require inserts and/or deletes to V;

realized as algebraic rewrite rules at LQP level ❖ Whether or not IVM of V is feasible and/or efficient depends

on form of Q, nature of updates to D, data statistics, etc. ❖ We will focus only on inserts to D triggering inserts to V

47

Incremental View Maintenance (IVM)

Unary IVM for insertions:

Newly inserted tuplesR0 = R [�R<latexit sha1_base64="1XeBHzMtXPv7C0W2mlvBbLlFEA8=">AAAB/XicbZDLSsNAFIYnXmu9xcvOzWARXZVEBN0IRV24rMVeoAllMj1ph04mYWYi1FB8FTcuFHHre7jzbZy2WWjrDwMf/zmHc+YPEs6Udpxva2FxaXlltbBWXN/Y3Nq2d3YbKk4lhTqNeSxbAVHAmYC6ZppDK5FAooBDMxhcj+vNB5CKxeJeDxPwI9ITLGSUaGN17P3aMb7ENezRNMHeDXBNcK1jl5yyMxGeBzeHEspV7dhfXjemaQRCU06UartOov2MSM0oh1HRSxUkhA5ID9oGBYlA+dnk+hE+Mk4Xh7E0T2g8cX9PZCRSahgFpjMiuq9ma2Pzv1o71eGFnzGRpBoEnS4KU451jMdR4C6TQDUfGiBUMnMrpn0iCdUmsKIJwZ398jw0Tsuu4buzUuUqj6OADtAhOkEuOkcVdIuqqI4oekTP6BW9WU/Wi/VufUxbF6x8Zg/9kfX5A4gHk1c=</latexit><latexit sha1_base64="1XeBHzMtXPv7C0W2mlvBbLlFEA8=">AAAB/XicbZDLSsNAFIYnXmu9xcvOzWARXZVEBN0IRV24rMVeoAllMj1ph04mYWYi1FB8FTcuFHHre7jzbZy2WWjrDwMf/zmHc+YPEs6Udpxva2FxaXlltbBWXN/Y3Nq2d3YbKk4lhTqNeSxbAVHAmYC6ZppDK5FAooBDMxhcj+vNB5CKxeJeDxPwI9ITLGSUaGN17P3aMb7ENezRNMHeDXBNcK1jl5yyMxGeBzeHEspV7dhfXjemaQRCU06UartOov2MSM0oh1HRSxUkhA5ID9oGBYlA+dnk+hE+Mk4Xh7E0T2g8cX9PZCRSahgFpjMiuq9ma2Pzv1o71eGFnzGRpBoEnS4KU451jMdR4C6TQDUfGiBUMnMrpn0iCdUmsKIJwZ398jw0Tsuu4buzUuUqj6OADtAhOkEuOkcVdIuqqI4oekTP6BW9WU/Wi/VufUxbF6x8Zg/9kfX5A4gHk1c=</latexit><latexit sha1_base64="1XeBHzMtXPv7C0W2mlvBbLlFEA8=">AAAB/XicbZDLSsNAFIYnXmu9xcvOzWARXZVEBN0IRV24rMVeoAllMj1ph04mYWYi1FB8FTcuFHHre7jzbZy2WWjrDwMf/zmHc+YPEs6Udpxva2FxaXlltbBWXN/Y3Nq2d3YbKk4lhTqNeSxbAVHAmYC6ZppDK5FAooBDMxhcj+vNB5CKxeJeDxPwI9ITLGSUaGN17P3aMb7ENezRNMHeDXBNcK1jl5yyMxGeBzeHEspV7dhfXjemaQRCU06UartOov2MSM0oh1HRSxUkhA5ID9oGBYlA+dnk+hE+Mk4Xh7E0T2g8cX9PZCRSahgFpjMiuq9ma2Pzv1o71eGFnzGRpBoEnS4KU451jMdR4C6TQDUfGiBUMnMrpn0iCdUmsKIJwZ398jw0Tsuu4buzUuUqj6OADtAhOkEuOkcVdIuqqI4oekTP6BW9WU/Wi/VufUxbF6x8Zg/9kfX5A4gHk1c=</latexit><latexit sha1_base64="1XeBHzMtXPv7C0W2mlvBbLlFEA8=">AAAB/XicbZDLSsNAFIYnXmu9xcvOzWARXZVEBN0IRV24rMVeoAllMj1ph04mYWYi1FB8FTcuFHHre7jzbZy2WWjrDwMf/zmHc+YPEs6Udpxva2FxaXlltbBWXN/Y3Nq2d3YbKk4lhTqNeSxbAVHAmYC6ZppDK5FAooBDMxhcj+vNB5CKxeJeDxPwI9ITLGSUaGN17P3aMb7ENezRNMHeDXBNcK1jl5yyMxGeBzeHEspV7dhfXjemaQRCU06UartOov2MSM0oh1HRSxUkhA5ID9oGBYlA+dnk+hE+Mk4Xh7E0T2g8cX9PZCRSahgFpjMiuq9ma2Pzv1o71eGFnzGRpBoEnS4KU451jMdR4C6TQDUfGiBUMnMrpn0iCdUmsKIJwZ398jw0Tsuu4buzUuUqj6OADtAhOkEuOkcVdIuqqI4oekTP6BW9WU/Wi/VufUxbF6x8Zg/9kfX5A4gHk1c=</latexit>

Select:

Project:

V �SelectCondition(R)<latexit sha1_base64="eXj9dgW6EeNzOHOTIiPjAgtJIKM=">AAACGHicbVDLSgMxFM34rPVVdekmWATd6IwIuix249JXq9ApJZPeqcFMMiR3lDL0M9z4K25cKOLWnX9jpu1CqwcCh3Pu5eacKJXCou9/eVPTM7Nz86WF8uLS8spqZW29aXVmODS4ltrcRMyCFAoaKFDCTWqAJZGE6+iuXvjX92Cs0OoK+ym0E9ZTIhacoZM6lf0mDSXEyIzRDzS0opewTpgwvBWYX4IEjnWtuqKYHuxc7HYqVX/PH4L+JcGYVMkYZ53KZ9jVPEtAIZfM2lbgp9jOmUHBJQzKYWYhZfyO9aDlqGIJ2HY+DDag207p0lgb9xTSofpzI2eJtf0kcpPFl+2kV4j/ea0M4+N2LlSaISg+OhRnkqKmRUu0K4xLLvuOMG5cek75LTOMo+uy7EoIJiP/Jc2DvcDx88Nq7WRcR4lski2yQwJyRGrklJyRBuHkkTyTV/LmPXkv3rv3MRqd8sY7G+QXvM9vZb2gmg==</latexit><latexit sha1_base64="eXj9dgW6EeNzOHOTIiPjAgtJIKM=">AAACGHicbVDLSgMxFM34rPVVdekmWATd6IwIuix249JXq9ApJZPeqcFMMiR3lDL0M9z4K25cKOLWnX9jpu1CqwcCh3Pu5eacKJXCou9/eVPTM7Nz86WF8uLS8spqZW29aXVmODS4ltrcRMyCFAoaKFDCTWqAJZGE6+iuXvjX92Cs0OoK+ym0E9ZTIhacoZM6lf0mDSXEyIzRDzS0opewTpgwvBWYX4IEjnWtuqKYHuxc7HYqVX/PH4L+JcGYVMkYZ53KZ9jVPEtAIZfM2lbgp9jOmUHBJQzKYWYhZfyO9aDlqGIJ2HY+DDag207p0lgb9xTSofpzI2eJtf0kcpPFl+2kV4j/ea0M4+N2LlSaISg+OhRnkqKmRUu0K4xLLvuOMG5cek75LTOMo+uy7EoIJiP/Jc2DvcDx88Nq7WRcR4lski2yQwJyRGrklJyRBuHkkTyTV/LmPXkv3rv3MRqd8sY7G+QXvM9vZb2gmg==</latexit><latexit sha1_base64="eXj9dgW6EeNzOHOTIiPjAgtJIKM=">AAACGHicbVDLSgMxFM34rPVVdekmWATd6IwIuix249JXq9ApJZPeqcFMMiR3lDL0M9z4K25cKOLWnX9jpu1CqwcCh3Pu5eacKJXCou9/eVPTM7Nz86WF8uLS8spqZW29aXVmODS4ltrcRMyCFAoaKFDCTWqAJZGE6+iuXvjX92Cs0OoK+ym0E9ZTIhacoZM6lf0mDSXEyIzRDzS0opewTpgwvBWYX4IEjnWtuqKYHuxc7HYqVX/PH4L+JcGYVMkYZ53KZ9jVPEtAIZfM2lbgp9jOmUHBJQzKYWYhZfyO9aDlqGIJ2HY+DDag207p0lgb9xTSofpzI2eJtf0kcpPFl+2kV4j/ea0M4+N2LlSaISg+OhRnkqKmRUu0K4xLLvuOMG5cek75LTOMo+uy7EoIJiP/Jc2DvcDx88Nq7WRcR4lski2yQwJyRGrklJyRBuHkkTyTV/LmPXkv3rv3MRqd8sY7G+QXvM9vZb2gmg==</latexit><latexit sha1_base64="eXj9dgW6EeNzOHOTIiPjAgtJIKM=">AAACGHicbVDLSgMxFM34rPVVdekmWATd6IwIuix249JXq9ApJZPeqcFMMiR3lDL0M9z4K25cKOLWnX9jpu1CqwcCh3Pu5eacKJXCou9/eVPTM7Nz86WF8uLS8spqZW29aXVmODS4ltrcRMyCFAoaKFDCTWqAJZGE6+iuXvjX92Cs0OoK+ym0E9ZTIhacoZM6lf0mDSXEyIzRDzS0opewTpgwvBWYX4IEjnWtuqKYHuxc7HYqVX/PH4L+JcGYVMkYZ53KZ9jVPEtAIZfM2lbgp9jOmUHBJQzKYWYhZfyO9aDlqGIJ2HY+DDag207p0lgb9xTSofpzI2eJtf0kcpPFl+2kV4j/ea0M4+N2LlSaISg+OhRnkqKmRUu0K4xLLvuOMG5cek75LTOMo+uy7EoIJiP/Jc2DvcDx88Nq7WRcR4lski2yQwJyRGrklJyRBuHkkTyTV/LmPXkv3rv3MRqd8sY7G+QXvM9vZb2gmg==</latexit>

V 0 = V [ �SelectCondition(�R)<latexit sha1_base64="si5+RCDuBX9i9nVd6eTKQZT6Obs=">AAACHnicbVDLSgMxFM3UV62vUZdugkXUjcyIohuhWBcufbUKnVIy6W0bmskMyR2hDP0SN/6KGxeKCK70b8zULnwdCBzOOZebe8JECoOe9+EUJianpmeKs6W5+YXFJXd5pW7iVHOo8VjG+iZkBqRQUEOBEm4SDSwKJVyH/WruX9+CNiJWVzhIoBmxrhIdwRlaqeXu1zfpEa3TgKcJDYzoRqwVRAx7ArNLkMCxGqu2yMPDreAEJDJ6sd1yy96ONwL9S/wxKZMxzlruW9COeRqBQi6ZMQ3fS7CZMY2CSxiWgtRAwnifdaFhqWIRmGY2Om9IN6zSpp1Y26eQjtTvExmLjBlEoU3mPze/vVz8z2uk2DlsZkIlKYLiX4s6qaQY07wr2hbaFiAHljCubQmc8h7TjKNttGRL8H+f/JfUd3d8y8/3ypXjcR1FskbWyRbxyQGpkFNyRmqEkzvyQJ7Is3PvPDovzutXtOCMZ1bJDzjvn79roag=</latexit><latexit sha1_base64="si5+RCDuBX9i9nVd6eTKQZT6Obs=">AAACHnicbVDLSgMxFM3UV62vUZdugkXUjcyIohuhWBcufbUKnVIy6W0bmskMyR2hDP0SN/6KGxeKCK70b8zULnwdCBzOOZebe8JECoOe9+EUJianpmeKs6W5+YXFJXd5pW7iVHOo8VjG+iZkBqRQUEOBEm4SDSwKJVyH/WruX9+CNiJWVzhIoBmxrhIdwRlaqeXu1zfpEa3TgKcJDYzoRqwVRAx7ArNLkMCxGqu2yMPDreAEJDJ6sd1yy96ONwL9S/wxKZMxzlruW9COeRqBQi6ZMQ3fS7CZMY2CSxiWgtRAwnifdaFhqWIRmGY2Om9IN6zSpp1Y26eQjtTvExmLjBlEoU3mPze/vVz8z2uk2DlsZkIlKYLiX4s6qaQY07wr2hbaFiAHljCubQmc8h7TjKNttGRL8H+f/JfUd3d8y8/3ypXjcR1FskbWyRbxyQGpkFNyRmqEkzvyQJ7Is3PvPDovzutXtOCMZ1bJDzjvn79roag=</latexit><latexit sha1_base64="si5+RCDuBX9i9nVd6eTKQZT6Obs=">AAACHnicbVDLSgMxFM3UV62vUZdugkXUjcyIohuhWBcufbUKnVIy6W0bmskMyR2hDP0SN/6KGxeKCK70b8zULnwdCBzOOZebe8JECoOe9+EUJianpmeKs6W5+YXFJXd5pW7iVHOo8VjG+iZkBqRQUEOBEm4SDSwKJVyH/WruX9+CNiJWVzhIoBmxrhIdwRlaqeXu1zfpEa3TgKcJDYzoRqwVRAx7ArNLkMCxGqu2yMPDreAEJDJ6sd1yy96ONwL9S/wxKZMxzlruW9COeRqBQi6ZMQ3fS7CZMY2CSxiWgtRAwnifdaFhqWIRmGY2Om9IN6zSpp1Y26eQjtTvExmLjBlEoU3mPze/vVz8z2uk2DlsZkIlKYLiX4s6qaQY07wr2hbaFiAHljCubQmc8h7TjKNttGRL8H+f/JfUd3d8y8/3ypXjcR1FskbWyRbxyQGpkFNyRmqEkzvyQJ7Is3PvPDovzutXtOCMZ1bJDzjvn79roag=</latexit><latexit sha1_base64="si5+RCDuBX9i9nVd6eTKQZT6Obs=">AAACHnicbVDLSgMxFM3UV62vUZdugkXUjcyIohuhWBcufbUKnVIy6W0bmskMyR2hDP0SN/6KGxeKCK70b8zULnwdCBzOOZebe8JECoOe9+EUJianpmeKs6W5+YXFJXd5pW7iVHOo8VjG+iZkBqRQUEOBEm4SDSwKJVyH/WruX9+CNiJWVzhIoBmxrhIdwRlaqeXu1zfpEa3TgKcJDYzoRqwVRAx7ArNLkMCxGqu2yMPDreAEJDJ6sd1yy96ONwL9S/wxKZMxzlruW9COeRqBQi6ZMQ3fS7CZMY2CSxiWgtRAwnifdaFhqWIRmGY2Om9IN6zSpp1Y26eQjtTvExmLjBlEoU3mPze/vVz8z2uk2DlsZkIlKYLiX4s6qaQY07wr2hbaFiAHljCubQmc8h7TjKNttGRL8H+f/JfUd3d8y8/3ypXjcR1FskbWyRbxyQGpkFNyRmqEkzvyQJ7Is3PvPDovzutXtOCMZ1bJDzjvn79roag=</latexit>

V ⇡ProjectionList(R)<latexit sha1_base64="jB2Y+HCtJvNE1r3cZvsnXR5nbnU=">AAACFHicbVDLSgMxFM3UV62vUZdugkWoCGVGBF0W3bhwUcU+oDMMmTTTxmaSIckoZehHuPFX3LhQxK0Ld/6NmbYLbT0QOJxzL7nnhAmjSjvOt1VYWFxaXimultbWNza37O2dphKpxKSBBROyHSJFGOWkoalmpJ1IguKQkVY4uMj91j2Rigp+q4cJ8WPU4zSiGGkjBfZRE3qMRBpJKR6gl9DAi5HuU53VpbgjOJ+6MmeMKjeHgV12qs4YcJ64U1IGU9QD+8vrCpzGhGvMkFId10m0nyGpKWZkVPJSRRKEB6hHOoZyFBPlZ+NQI3hglC6MhDSPazhWf29kKFZqGIdmMr9YzXq5+J/XSXV05meUJ6kmHE8+ilIGtYB5Q7BLpcnNhoYgLKm5FeI+kghr02PJlODORp4nzeOqa/j1Sbl2Pq2jCPbAPqgAF5yCGrgEddAAGDyCZ/AK3qwn68V6tz4mowVrurML/sD6/AE8dp7s</latexit><latexit sha1_base64="jB2Y+HCtJvNE1r3cZvsnXR5nbnU=">AAACFHicbVDLSgMxFM3UV62vUZdugkWoCGVGBF0W3bhwUcU+oDMMmTTTxmaSIckoZehHuPFX3LhQxK0Ld/6NmbYLbT0QOJxzL7nnhAmjSjvOt1VYWFxaXimultbWNza37O2dphKpxKSBBROyHSJFGOWkoalmpJ1IguKQkVY4uMj91j2Rigp+q4cJ8WPU4zSiGGkjBfZRE3qMRBpJKR6gl9DAi5HuU53VpbgjOJ+6MmeMKjeHgV12qs4YcJ64U1IGU9QD+8vrCpzGhGvMkFId10m0nyGpKWZkVPJSRRKEB6hHOoZyFBPlZ+NQI3hglC6MhDSPazhWf29kKFZqGIdmMr9YzXq5+J/XSXV05meUJ6kmHE8+ilIGtYB5Q7BLpcnNhoYgLKm5FeI+kghr02PJlODORp4nzeOqa/j1Sbl2Pq2jCPbAPqgAF5yCGrgEddAAGDyCZ/AK3qwn68V6tz4mowVrurML/sD6/AE8dp7s</latexit><latexit sha1_base64="jB2Y+HCtJvNE1r3cZvsnXR5nbnU=">AAACFHicbVDLSgMxFM3UV62vUZdugkWoCGVGBF0W3bhwUcU+oDMMmTTTxmaSIckoZehHuPFX3LhQxK0Ld/6NmbYLbT0QOJxzL7nnhAmjSjvOt1VYWFxaXimultbWNza37O2dphKpxKSBBROyHSJFGOWkoalmpJ1IguKQkVY4uMj91j2Rigp+q4cJ8WPU4zSiGGkjBfZRE3qMRBpJKR6gl9DAi5HuU53VpbgjOJ+6MmeMKjeHgV12qs4YcJ64U1IGU9QD+8vrCpzGhGvMkFId10m0nyGpKWZkVPJSRRKEB6hHOoZyFBPlZ+NQI3hglC6MhDSPazhWf29kKFZqGIdmMr9YzXq5+J/XSXV05meUJ6kmHE8+ilIGtYB5Q7BLpcnNhoYgLKm5FeI+kghr02PJlODORp4nzeOqa/j1Sbl2Pq2jCPbAPqgAF5yCGrgEddAAGDyCZ/AK3qwn68V6tz4mowVrurML/sD6/AE8dp7s</latexit><latexit sha1_base64="jB2Y+HCtJvNE1r3cZvsnXR5nbnU=">AAACFHicbVDLSgMxFM3UV62vUZdugkWoCGVGBF0W3bhwUcU+oDMMmTTTxmaSIckoZehHuPFX3LhQxK0Ld/6NmbYLbT0QOJxzL7nnhAmjSjvOt1VYWFxaXimultbWNza37O2dphKpxKSBBROyHSJFGOWkoalmpJ1IguKQkVY4uMj91j2Rigp+q4cJ8WPU4zSiGGkjBfZRE3qMRBpJKR6gl9DAi5HuU53VpbgjOJ+6MmeMKjeHgV12qs4YcJ64U1IGU9QD+8vrCpzGhGvMkFId10m0nyGpKWZkVPJSRRKEB6hHOoZyFBPlZ+NQI3hglC6MhDSPazhWf29kKFZqGIdmMr9YzXq5+J/XSXV05meUJ6kmHE8+ilIGtYB5Q7BLpcnNhoYgLKm5FeI+kghr02PJlODORp4nzeOqa/j1Sbl2Pq2jCPbAPqgAF5yCGrgEddAAGDyCZ/AK3qwn68V6tz4mowVrurML/sD6/AE8dp7s</latexit>

V 0 = V [ ⇡ProjectionList(�R)<latexit sha1_base64="grYid+FzWJ3Q7FIqbHmFF6psNZ8=">AAACGnicbVDNSsNAGNz4W+tf1KOXxSLWS0lE0ItQ1IMHD1VsWmhC2Gw37dpNNuxuhBL6HF58FS8eFPEmXnwbN20O2jqwMMx8H/vNBAmjUlnWtzE3v7C4tFxaKa+urW9smlvbjuSpwKSJOeOiHSBJGI1JU1HFSDsRBEUBI61gcJH7rQciJOXxnRomxItQL6YhxUhpyTdt5wCeQQe6OE2gm1DfjZDqU5U1BL8nOB+61leMqu4lYQrB20PfrFg1aww4S+yCVECBhm9+ul2O04jECjMkZce2EuVlSCiKGRmV3VSSBOEB6pGOpjGKiPSycbQR3NdKF4Zc6BcrOFZ/b2QoknIYBXoyP1xOe7n4n9dJVXjqZTROUkViPPkoTBlUHOY9wS4VOj4baoKwoPpWiPtIIKx0m2Vdgj0deZY4RzVb85vjSv28qKMEdsEeqAIbnIA6uAIN0AQYPIJn8ArejCfjxXg3Piajc0axswP+wPj6AZGan/o=</latexit><latexit sha1_base64="grYid+FzWJ3Q7FIqbHmFF6psNZ8=">AAACGnicbVDNSsNAGNz4W+tf1KOXxSLWS0lE0ItQ1IMHD1VsWmhC2Gw37dpNNuxuhBL6HF58FS8eFPEmXnwbN20O2jqwMMx8H/vNBAmjUlnWtzE3v7C4tFxaKa+urW9smlvbjuSpwKSJOeOiHSBJGI1JU1HFSDsRBEUBI61gcJH7rQciJOXxnRomxItQL6YhxUhpyTdt5wCeQQe6OE2gm1DfjZDqU5U1BL8nOB+61leMqu4lYQrB20PfrFg1aww4S+yCVECBhm9+ul2O04jECjMkZce2EuVlSCiKGRmV3VSSBOEB6pGOpjGKiPSycbQR3NdKF4Zc6BcrOFZ/b2QoknIYBXoyP1xOe7n4n9dJVXjqZTROUkViPPkoTBlUHOY9wS4VOj4baoKwoPpWiPtIIKx0m2Vdgj0deZY4RzVb85vjSv28qKMEdsEeqAIbnIA6uAIN0AQYPIJn8ArejCfjxXg3Piajc0axswP+wPj6AZGan/o=</latexit><latexit sha1_base64="grYid+FzWJ3Q7FIqbHmFF6psNZ8=">AAACGnicbVDNSsNAGNz4W+tf1KOXxSLWS0lE0ItQ1IMHD1VsWmhC2Gw37dpNNuxuhBL6HF58FS8eFPEmXnwbN20O2jqwMMx8H/vNBAmjUlnWtzE3v7C4tFxaKa+urW9smlvbjuSpwKSJOeOiHSBJGI1JU1HFSDsRBEUBI61gcJH7rQciJOXxnRomxItQL6YhxUhpyTdt5wCeQQe6OE2gm1DfjZDqU5U1BL8nOB+61leMqu4lYQrB20PfrFg1aww4S+yCVECBhm9+ul2O04jECjMkZce2EuVlSCiKGRmV3VSSBOEB6pGOpjGKiPSycbQR3NdKF4Zc6BcrOFZ/b2QoknIYBXoyP1xOe7n4n9dJVXjqZTROUkViPPkoTBlUHOY9wS4VOj4baoKwoPpWiPtIIKx0m2Vdgj0deZY4RzVb85vjSv28qKMEdsEeqAIbnIA6uAIN0AQYPIJn8ArejCfjxXg3Piajc0axswP+wPj6AZGan/o=</latexit><latexit sha1_base64="grYid+FzWJ3Q7FIqbHmFF6psNZ8=">AAACGnicbVDNSsNAGNz4W+tf1KOXxSLWS0lE0ItQ1IMHD1VsWmhC2Gw37dpNNuxuhBL6HF58FS8eFPEmXnwbN20O2jqwMMx8H/vNBAmjUlnWtzE3v7C4tFxaKa+urW9smlvbjuSpwKSJOeOiHSBJGI1JU1HFSDsRBEUBI61gcJH7rQciJOXxnRomxItQL6YhxUhpyTdt5wCeQQe6OE2gm1DfjZDqU5U1BL8nOB+61leMqu4lYQrB20PfrFg1aww4S+yCVECBhm9+ul2O04jECjMkZce2EuVlSCiKGRmV3VSSBOEB6pGOpjGKiPSycbQR3NdKF4Zc6BcrOFZ/b2QoknIYBXoyP1xOe7n4n9dJVXjqZTROUkViPPkoTBlUHOY9wS4VOj4baoKwoPpWiPtIIKx0m2Vdgj0deZY4RzVb85vjSv28qKMEdsEeqAIbnIA6uAIN0AQYPIJn8ArejCfjxXg3Piajc0axswP+wPj6AZGan/o=</latexit>

Select and Project can be composed and reordered as before

Can be just an append (union with “bag” semantics)

Requires full set union with V for deduplication

48

Incremental View Maintenance (IVM)

Unary IVM for insertions:

Newly inserted tuplesR0 = R [�R<latexit sha1_base64="1XeBHzMtXPv7C0W2mlvBbLlFEA8=">AAAB/XicbZDLSsNAFIYnXmu9xcvOzWARXZVEBN0IRV24rMVeoAllMj1ph04mYWYi1FB8FTcuFHHre7jzbZy2WWjrDwMf/zmHc+YPEs6Udpxva2FxaXlltbBWXN/Y3Nq2d3YbKk4lhTqNeSxbAVHAmYC6ZppDK5FAooBDMxhcj+vNB5CKxeJeDxPwI9ITLGSUaGN17P3aMb7ENezRNMHeDXBNcK1jl5yyMxGeBzeHEspV7dhfXjemaQRCU06UartOov2MSM0oh1HRSxUkhA5ID9oGBYlA+dnk+hE+Mk4Xh7E0T2g8cX9PZCRSahgFpjMiuq9ma2Pzv1o71eGFnzGRpBoEnS4KU451jMdR4C6TQDUfGiBUMnMrpn0iCdUmsKIJwZ398jw0Tsuu4buzUuUqj6OADtAhOkEuOkcVdIuqqI4oekTP6BW9WU/Wi/VufUxbF6x8Zg/9kfX5A4gHk1c=</latexit><latexit sha1_base64="1XeBHzMtXPv7C0W2mlvBbLlFEA8=">AAAB/XicbZDLSsNAFIYnXmu9xcvOzWARXZVEBN0IRV24rMVeoAllMj1ph04mYWYi1FB8FTcuFHHre7jzbZy2WWjrDwMf/zmHc+YPEs6Udpxva2FxaXlltbBWXN/Y3Nq2d3YbKk4lhTqNeSxbAVHAmYC6ZppDK5FAooBDMxhcj+vNB5CKxeJeDxPwI9ITLGSUaGN17P3aMb7ENezRNMHeDXBNcK1jl5yyMxGeBzeHEspV7dhfXjemaQRCU06UartOov2MSM0oh1HRSxUkhA5ID9oGBYlA+dnk+hE+Mk4Xh7E0T2g8cX9PZCRSahgFpjMiuq9ma2Pzv1o71eGFnzGRpBoEnS4KU451jMdR4C6TQDUfGiBUMnMrpn0iCdUmsKIJwZ398jw0Tsuu4buzUuUqj6OADtAhOkEuOkcVdIuqqI4oekTP6BW9WU/Wi/VufUxbF6x8Zg/9kfX5A4gHk1c=</latexit><latexit sha1_base64="1XeBHzMtXPv7C0W2mlvBbLlFEA8=">AAAB/XicbZDLSsNAFIYnXmu9xcvOzWARXZVEBN0IRV24rMVeoAllMj1ph04mYWYi1FB8FTcuFHHre7jzbZy2WWjrDwMf/zmHc+YPEs6Udpxva2FxaXlltbBWXN/Y3Nq2d3YbKk4lhTqNeSxbAVHAmYC6ZppDK5FAooBDMxhcj+vNB5CKxeJeDxPwI9ITLGSUaGN17P3aMb7ENezRNMHeDXBNcK1jl5yyMxGeBzeHEspV7dhfXjemaQRCU06UartOov2MSM0oh1HRSxUkhA5ID9oGBYlA+dnk+hE+Mk4Xh7E0T2g8cX9PZCRSahgFpjMiuq9ma2Pzv1o71eGFnzGRpBoEnS4KU451jMdR4C6TQDUfGiBUMnMrpn0iCdUmsKIJwZ398jw0Tsuu4buzUuUqj6OADtAhOkEuOkcVdIuqqI4oekTP6BW9WU/Wi/VufUxbF6x8Zg/9kfX5A4gHk1c=</latexit><latexit sha1_base64="1XeBHzMtXPv7C0W2mlvBbLlFEA8=">AAAB/XicbZDLSsNAFIYnXmu9xcvOzWARXZVEBN0IRV24rMVeoAllMj1ph04mYWYi1FB8FTcuFHHre7jzbZy2WWjrDwMf/zmHc+YPEs6Udpxva2FxaXlltbBWXN/Y3Nq2d3YbKk4lhTqNeSxbAVHAmYC6ZppDK5FAooBDMxhcj+vNB5CKxeJeDxPwI9ITLGSUaGN17P3aMb7ENezRNMHeDXBNcK1jl5yyMxGeBzeHEspV7dhfXjemaQRCU06UartOov2MSM0oh1HRSxUkhA5ID9oGBYlA+dnk+hE+Mk4Xh7E0T2g8cX9PZCRSahgFpjMiuq9ma2Pzv1o71eGFnzGRpBoEnS4KU451jMdR4C6TQDUfGiBUMnMrpn0iCdUmsKIJwZ398jw0Tsuu4buzUuUqj6OADtAhOkEuOkcVdIuqqI4oekTP6BW9WU/Wi/VufUxbF6x8Zg/9kfX5A4gHk1c=</latexit>

Group By Agg:

Feasibility of IVM Depends on Agg() function! Rewrite rules exist for SUM, COUNT, and MIN/MAX over bags AVG not possible in general; needs deeper system changes

V �AggList,Agg(Y )(R)<latexit sha1_base64="TA0EqPjhE96xTP4SZSGJuabPDtg=">AAACInicbVDLSsNAFJ34tr6qLt0MFqGCSCKCuvOxceFCxValKeVmOomDM0mYuVFKyLe48VfcuFDUleDHOH0s6uPAwOGce5lzT5BKYdB1P52R0bHxicmp6dLM7Nz8QnlxqW6STDNeY4lM9FUAhksR8xoKlPwq1RxUIPllcHvU9S/vuDYiiS+wk/KmgigWoWCAVmqV9+rUlzxE0Dq5p34ESkEr9xXgjcD8IIpObIZiY0goqtfrRfV8vVWuuJtuD/Qv8QakQgY4bZXf/XbCMsVjZBKMaXhuis0cNAomeVHyM8NTYLcQ8YalMShumnnvxIKuWaVNw0TbFyPtqcMbOShjOiqwk92o5rfXFf/zGhmGu81cxGmGPGb9j8JMUkxoty/aFpozlB1LgGlhs1J2AxoY2lZLtgTv98l/SX1r07P8bLuyfzioY4qskFVSJR7ZIfvkmJySGmHkgTyRF/LqPDrPzpvz0R8dcQY7y+QHnK9voz+kTA==</latexit><latexit sha1_base64="TA0EqPjhE96xTP4SZSGJuabPDtg=">AAACInicbVDLSsNAFJ34tr6qLt0MFqGCSCKCuvOxceFCxValKeVmOomDM0mYuVFKyLe48VfcuFDUleDHOH0s6uPAwOGce5lzT5BKYdB1P52R0bHxicmp6dLM7Nz8QnlxqW6STDNeY4lM9FUAhksR8xoKlPwq1RxUIPllcHvU9S/vuDYiiS+wk/KmgigWoWCAVmqV9+rUlzxE0Dq5p34ESkEr9xXgjcD8IIpObIZiY0goqtfrRfV8vVWuuJtuD/Qv8QakQgY4bZXf/XbCMsVjZBKMaXhuis0cNAomeVHyM8NTYLcQ8YalMShumnnvxIKuWaVNw0TbFyPtqcMbOShjOiqwk92o5rfXFf/zGhmGu81cxGmGPGb9j8JMUkxoty/aFpozlB1LgGlhs1J2AxoY2lZLtgTv98l/SX1r07P8bLuyfzioY4qskFVSJR7ZIfvkmJySGmHkgTyRF/LqPDrPzpvz0R8dcQY7y+QHnK9voz+kTA==</latexit><latexit sha1_base64="TA0EqPjhE96xTP4SZSGJuabPDtg=">AAACInicbVDLSsNAFJ34tr6qLt0MFqGCSCKCuvOxceFCxValKeVmOomDM0mYuVFKyLe48VfcuFDUleDHOH0s6uPAwOGce5lzT5BKYdB1P52R0bHxicmp6dLM7Nz8QnlxqW6STDNeY4lM9FUAhksR8xoKlPwq1RxUIPllcHvU9S/vuDYiiS+wk/KmgigWoWCAVmqV9+rUlzxE0Dq5p34ESkEr9xXgjcD8IIpObIZiY0goqtfrRfV8vVWuuJtuD/Qv8QakQgY4bZXf/XbCMsVjZBKMaXhuis0cNAomeVHyM8NTYLcQ8YalMShumnnvxIKuWaVNw0TbFyPtqcMbOShjOiqwk92o5rfXFf/zGhmGu81cxGmGPGb9j8JMUkxoty/aFpozlB1LgGlhs1J2AxoY2lZLtgTv98l/SX1r07P8bLuyfzioY4qskFVSJR7ZIfvkmJySGmHkgTyRF/LqPDrPzpvz0R8dcQY7y+QHnK9voz+kTA==</latexit><latexit sha1_base64="TA0EqPjhE96xTP4SZSGJuabPDtg=">AAACInicbVDLSsNAFJ34tr6qLt0MFqGCSCKCuvOxceFCxValKeVmOomDM0mYuVFKyLe48VfcuFDUleDHOH0s6uPAwOGce5lzT5BKYdB1P52R0bHxicmp6dLM7Nz8QnlxqW6STDNeY4lM9FUAhksR8xoKlPwq1RxUIPllcHvU9S/vuDYiiS+wk/KmgigWoWCAVmqV9+rUlzxE0Dq5p34ESkEr9xXgjcD8IIpObIZiY0goqtfrRfV8vVWuuJtuD/Qv8QakQgY4bZXf/XbCMsVjZBKMaXhuis0cNAomeVHyM8NTYLcQ8YalMShumnnvxIKuWaVNw0TbFyPtqcMbOShjOiqwk92o5rfXFf/zGhmGu81cxGmGPGb9j8JMUkxoty/aFpozlB1LgGlhs1J2AxoY2lZLtgTv98l/SX1r07P8bLuyfzioY4qskFVSJR7ZIfvkmJySGmHkgTyRF/LqPDrPzpvz0R8dcQY7y+QHnK9voz+kTA==</latexit>

V 0 = �AggList,SUM (Y )(V [ �AggList,SUM (Y )�R)<latexit sha1_base64="J9JSZSiTeNi8meg8CJ4WaxvATmo=">AAACUnicjVLLSgMxFE3rq9ZX1aWbYBEriMyIoBvB18KFQn20Kp1S7qTpNJjMDMkdoQzzjYK48UPcuFDTWsHXwgOBwzn3cm9O4sdSGHScp1x+ZHRsfKIwWZyanpmdK80v1E2UaMZrLJKRvvbBcClCXkOBkl/HmoPyJb/ybw/7/tUd10ZE4SX2Yt5UEISiIxiglVolUV+lu9QLQClopZ4C7ApM94PgxM7O1j+Fi9ppVrlZyyp16rEk/n8D9Y64RKDna61S2dlwBqC/iTskZTJEtVV68NoRSxQPkUkwpuE6MTZT0CiY5FnRSwyPgd1CwBuWhqC4aaaDSDK6YpU27UTanhDpQP3akYIypqd8W9nf2Pz0+uJfXiPBzk4zFWGcIA/Zx6BOIilGtJ8vbQvNGcqeJcC0sLtS1gUNDO0rFG0I7s8r/yb1zQ3X8rOt8t7BMI4CWSLLpEJcsk32yDGpkhph5J48k1fylnvMveTtL/kozeeGPYvkG/LT7ysds+k=</latexit><latexit sha1_base64="J9JSZSiTeNi8meg8CJ4WaxvATmo=">AAACUnicjVLLSgMxFE3rq9ZX1aWbYBEriMyIoBvB18KFQn20Kp1S7qTpNJjMDMkdoQzzjYK48UPcuFDTWsHXwgOBwzn3cm9O4sdSGHScp1x+ZHRsfKIwWZyanpmdK80v1E2UaMZrLJKRvvbBcClCXkOBkl/HmoPyJb/ybw/7/tUd10ZE4SX2Yt5UEISiIxiglVolUV+lu9QLQClopZ4C7ApM94PgxM7O1j+Fi9ppVrlZyyp16rEk/n8D9Y64RKDna61S2dlwBqC/iTskZTJEtVV68NoRSxQPkUkwpuE6MTZT0CiY5FnRSwyPgd1CwBuWhqC4aaaDSDK6YpU27UTanhDpQP3akYIypqd8W9nf2Pz0+uJfXiPBzk4zFWGcIA/Zx6BOIilGtJ8vbQvNGcqeJcC0sLtS1gUNDO0rFG0I7s8r/yb1zQ3X8rOt8t7BMI4CWSLLpEJcsk32yDGpkhph5J48k1fylnvMveTtL/kozeeGPYvkG/LT7ysds+k=</latexit><latexit sha1_base64="J9JSZSiTeNi8meg8CJ4WaxvATmo=">AAACUnicjVLLSgMxFE3rq9ZX1aWbYBEriMyIoBvB18KFQn20Kp1S7qTpNJjMDMkdoQzzjYK48UPcuFDTWsHXwgOBwzn3cm9O4sdSGHScp1x+ZHRsfKIwWZyanpmdK80v1E2UaMZrLJKRvvbBcClCXkOBkl/HmoPyJb/ybw/7/tUd10ZE4SX2Yt5UEISiIxiglVolUV+lu9QLQClopZ4C7ApM94PgxM7O1j+Fi9ppVrlZyyp16rEk/n8D9Y64RKDna61S2dlwBqC/iTskZTJEtVV68NoRSxQPkUkwpuE6MTZT0CiY5FnRSwyPgd1CwBuWhqC4aaaDSDK6YpU27UTanhDpQP3akYIypqd8W9nf2Pz0+uJfXiPBzk4zFWGcIA/Zx6BOIilGtJ8vbQvNGcqeJcC0sLtS1gUNDO0rFG0I7s8r/yb1zQ3X8rOt8t7BMI4CWSLLpEJcsk32yDGpkhph5J48k1fylnvMveTtL/kozeeGPYvkG/LT7ysds+k=</latexit><latexit sha1_base64="J9JSZSiTeNi8meg8CJ4WaxvATmo=">AAACUnicjVLLSgMxFE3rq9ZX1aWbYBEriMyIoBvB18KFQn20Kp1S7qTpNJjMDMkdoQzzjYK48UPcuFDTWsHXwgOBwzn3cm9O4sdSGHScp1x+ZHRsfKIwWZyanpmdK80v1E2UaMZrLJKRvvbBcClCXkOBkl/HmoPyJb/ybw/7/tUd10ZE4SX2Yt5UEISiIxiglVolUV+lu9QLQClopZ4C7ApM94PgxM7O1j+Fi9ppVrlZyyp16rEk/n8D9Y64RKDna61S2dlwBqC/iTskZTJEtVV68NoRSxQPkUkwpuE6MTZT0CiY5FnRSwyPgd1CwBuWhqC4aaaDSDK6YpU27UTanhDpQP3akYIypqd8W9nf2Pz0+uJfXiPBzk4zFWGcIA/Zx6BOIilGtJ8vbQvNGcqeJcC0sLtS1gUNDO0rFG0I7s8r/yb1zQ3X8rOt8t7BMI4CWSLLpEJcsk32yDGpkhph5J48k1fylnvMveTtL/kozeeGPYvkG/LT7ysds+k=</latexit>

V 0 = �AggList,SUM (Y )(V [ �AggList,COUNT(Y )�R)<latexit sha1_base64="Po07Uw9aYUnL5/uWsc6vj2c5HBE=">AAACVHichVFBSxtBFJ5dTdXYpqkevQwGaQIl7BZBL4VYe+hBW6vZmJIN4e1kshkys7vMvC2EZX+kPRT6S3rx4CRGsFrog4GP73sf771vokwKg57323HX1isvNja3qtsvX9Ve19/s9Eyaa8YDlspU9yMwXIqEByhQ8n6mOahI8utodrrQr39wbUSadHGe8aGCOBETwQAtNarPem/pBxrGoBSMilABTgUWJ3F8ZmeX7x6Iq+C8bH5vlc0eDVme/d9w+jX40l1aaPiJSwR62RrVG17bWxZ9DvwVaJBVXYzqP8NxynLFE2QSjBn4XobDAjQKJnlZDXPDM2AziPnAwgQUN8NiGUpJDywzppNU25cgXbKPHQUoY+Yqsp2Lnc1TbUH+SxvkODkeFiLJcuQJux80ySXFlC4SpmOhOUM5twCYFnZXyqaggaH9h6oNwX968nPQe9/2Lf522Oh8XMWxSfbIPmkSnxyRDvlMLkhAGLkhfxziOM4v59Zdcyv3ra6z8uySv8qt3QFPKrKT</latexit><latexit sha1_base64="Po07Uw9aYUnL5/uWsc6vj2c5HBE=">AAACVHichVFBSxtBFJ5dTdXYpqkevQwGaQIl7BZBL4VYe+hBW6vZmJIN4e1kshkys7vMvC2EZX+kPRT6S3rx4CRGsFrog4GP73sf771vokwKg57323HX1isvNja3qtsvX9Ve19/s9Eyaa8YDlspU9yMwXIqEByhQ8n6mOahI8utodrrQr39wbUSadHGe8aGCOBETwQAtNarPem/pBxrGoBSMilABTgUWJ3F8ZmeX7x6Iq+C8bH5vlc0eDVme/d9w+jX40l1aaPiJSwR62RrVG17bWxZ9DvwVaJBVXYzqP8NxynLFE2QSjBn4XobDAjQKJnlZDXPDM2AziPnAwgQUN8NiGUpJDywzppNU25cgXbKPHQUoY+Yqsp2Lnc1TbUH+SxvkODkeFiLJcuQJux80ySXFlC4SpmOhOUM5twCYFnZXyqaggaH9h6oNwX968nPQe9/2Lf522Oh8XMWxSfbIPmkSnxyRDvlMLkhAGLkhfxziOM4v59Zdcyv3ra6z8uySv8qt3QFPKrKT</latexit><latexit sha1_base64="Po07Uw9aYUnL5/uWsc6vj2c5HBE=">AAACVHichVFBSxtBFJ5dTdXYpqkevQwGaQIl7BZBL4VYe+hBW6vZmJIN4e1kshkys7vMvC2EZX+kPRT6S3rx4CRGsFrog4GP73sf771vokwKg57323HX1isvNja3qtsvX9Ve19/s9Eyaa8YDlspU9yMwXIqEByhQ8n6mOahI8utodrrQr39wbUSadHGe8aGCOBETwQAtNarPem/pBxrGoBSMilABTgUWJ3F8ZmeX7x6Iq+C8bH5vlc0eDVme/d9w+jX40l1aaPiJSwR62RrVG17bWxZ9DvwVaJBVXYzqP8NxynLFE2QSjBn4XobDAjQKJnlZDXPDM2AziPnAwgQUN8NiGUpJDywzppNU25cgXbKPHQUoY+Yqsp2Lnc1TbUH+SxvkODkeFiLJcuQJux80ySXFlC4SpmOhOUM5twCYFnZXyqaggaH9h6oNwX968nPQe9/2Lf522Oh8XMWxSfbIPmkSnxyRDvlMLkhAGLkhfxziOM4v59Zdcyv3ra6z8uySv8qt3QFPKrKT</latexit><latexit sha1_base64="Po07Uw9aYUnL5/uWsc6vj2c5HBE=">AAACVHichVFBSxtBFJ5dTdXYpqkevQwGaQIl7BZBL4VYe+hBW6vZmJIN4e1kshkys7vMvC2EZX+kPRT6S3rx4CRGsFrog4GP73sf771vokwKg57323HX1isvNja3qtsvX9Ve19/s9Eyaa8YDlspU9yMwXIqEByhQ8n6mOahI8utodrrQr39wbUSadHGe8aGCOBETwQAtNarPem/pBxrGoBSMilABTgUWJ3F8ZmeX7x6Iq+C8bH5vlc0eDVme/d9w+jX40l1aaPiJSwR62RrVG17bWxZ9DvwVaJBVXYzqP8NxynLFE2QSjBn4XobDAjQKJnlZDXPDM2AziPnAwgQUN8NiGUpJDywzppNU25cgXbKPHQUoY+Yqsp2Lnc1TbUH+SxvkODkeFiLJcuQJux80ySXFlC4SpmOhOUM5twCYFnZXyqaggaH9h6oNwX968nPQe9/2Lf522Oh8XMWxSfbIPmkSnxyRDvlMLkhAGLkhfxziOM4v59Zdcyv3ra6z8uySv8qt3QFPKrKT</latexit>

V 0 = �AggList,MIN (Y )(V [ �AggList,MIN (Y )�R)<latexit sha1_base64="qqwARVHKYintUVEhXD+XXp2gE2w=">AAACUnicjVLLSgMxFE3ru76qLt0Ei1hBZEYE3Qi+FgoqVWxVOqXcSdMxmMwMyR2hDPONgrjxQ9y4UNOH4GvhgcDhnHu5NyfxYykMOs5zLj80PDI6Nj5RmJyanpktzs3XTJRoxqsskpG+9sFwKUJeRYGSX8eag/Ilv/LvDrr+1T3XRkThJXZi3lAQhKItGKCVmkVRW6E71AtAKWimngK8FZjuBcGJnZ2tfQqnx2dZ+WY1K9eox5L4/w3UO+QSgV6sNoslZ93pgf4m7oCUyACVZvHRa0UsUTxEJsGYuuvE2EhBo2CSZwUvMTwGdgcBr1saguKmkfYiyeiyVVq0HWl7QqQ99WtHCsqYjvJtZXdj89Prin959QTb241UhHGCPGT9Qe1EUoxoN1/aEpozlB1LgGlhd6XsFjQwtK9QsCG4P6/8m9Q21l3LzzdLu/uDOMbJIlkiZeKSLbJLjkiFVAkjD+SFvJH33FPuNW9/Sb80nxv0LJBvyE99APIXs8c=</latexit><latexit sha1_base64="qqwARVHKYintUVEhXD+XXp2gE2w=">AAACUnicjVLLSgMxFE3ru76qLt0Ei1hBZEYE3Qi+FgoqVWxVOqXcSdMxmMwMyR2hDPONgrjxQ9y4UNOH4GvhgcDhnHu5NyfxYykMOs5zLj80PDI6Nj5RmJyanpktzs3XTJRoxqsskpG+9sFwKUJeRYGSX8eag/Ilv/LvDrr+1T3XRkThJXZi3lAQhKItGKCVmkVRW6E71AtAKWimngK8FZjuBcGJnZ2tfQqnx2dZ+WY1K9eox5L4/w3UO+QSgV6sNoslZ93pgf4m7oCUyACVZvHRa0UsUTxEJsGYuuvE2EhBo2CSZwUvMTwGdgcBr1saguKmkfYiyeiyVVq0HWl7QqQ99WtHCsqYjvJtZXdj89Prin959QTb241UhHGCPGT9Qe1EUoxoN1/aEpozlB1LgGlhd6XsFjQwtK9QsCG4P6/8m9Q21l3LzzdLu/uDOMbJIlkiZeKSLbJLjkiFVAkjD+SFvJH33FPuNW9/Sb80nxv0LJBvyE99APIXs8c=</latexit><latexit sha1_base64="qqwARVHKYintUVEhXD+XXp2gE2w=">AAACUnicjVLLSgMxFE3ru76qLt0Ei1hBZEYE3Qi+FgoqVWxVOqXcSdMxmMwMyR2hDPONgrjxQ9y4UNOH4GvhgcDhnHu5NyfxYykMOs5zLj80PDI6Nj5RmJyanpktzs3XTJRoxqsskpG+9sFwKUJeRYGSX8eag/Ilv/LvDrr+1T3XRkThJXZi3lAQhKItGKCVmkVRW6E71AtAKWimngK8FZjuBcGJnZ2tfQqnx2dZ+WY1K9eox5L4/w3UO+QSgV6sNoslZ93pgf4m7oCUyACVZvHRa0UsUTxEJsGYuuvE2EhBo2CSZwUvMTwGdgcBr1saguKmkfYiyeiyVVq0HWl7QqQ99WtHCsqYjvJtZXdj89Prin959QTb241UhHGCPGT9Qe1EUoxoN1/aEpozlB1LgGlhd6XsFjQwtK9QsCG4P6/8m9Q21l3LzzdLu/uDOMbJIlkiZeKSLbJLjkiFVAkjD+SFvJH33FPuNW9/Sb80nxv0LJBvyE99APIXs8c=</latexit><latexit sha1_base64="qqwARVHKYintUVEhXD+XXp2gE2w=">AAACUnicjVLLSgMxFE3ru76qLt0Ei1hBZEYE3Qi+FgoqVWxVOqXcSdMxmMwMyR2hDPONgrjxQ9y4UNOH4GvhgcDhnHu5NyfxYykMOs5zLj80PDI6Nj5RmJyanpktzs3XTJRoxqsskpG+9sFwKUJeRYGSX8eag/Ilv/LvDrr+1T3XRkThJXZi3lAQhKItGKCVmkVRW6E71AtAKWimngK8FZjuBcGJnZ2tfQqnx2dZ+WY1K9eox5L4/w3UO+QSgV6sNoslZ93pgf4m7oCUyACVZvHRa0UsUTxEJsGYuuvE2EhBo2CSZwUvMTwGdgcBr1saguKmkfYiyeiyVVq0HWl7QqQ99WtHCsqYjvJtZXdj89Prin959QTb241UhHGCPGT9Qe1EUoxoN1/aEpozlB1LgGlhd6XsFjQwtK9QsCG4P6/8m9Q21l3LzzdLu/uDOMbJIlkiZeKSLbJLjkiFVAkjD+SFvJH33FPuNW9/Sb80nxv0LJBvyE99APIXs8c=</latexit>

49

Incremental View Maintenance (IVM)

Join IVM for insertions:

V A ./ B<latexit sha1_base64="pw669SiEEFo9OAlJjiH5z7yop+s=">AAACAXicbZA9SwNBEIb34leMX1EbwWYxCFbhTgQtY2wsI5gPSELY28wlS/Zuj905Qwix8a/YWChi67+w89+4Sa7QxBcWHt6ZYXZeP5bCoOt+O5mV1bX1jexmbmt7Z3cvv39QMyrRHKpcSaUbPjMgRQRVFCihEWtgoS+h7g9upvX6A2gjVHSPoxjaIetFIhCcobU6+aMabUkIkGmthvSatnw1RAG03MkX3KI7E10GL4UCSVXp5L9aXcWTECLkkhnT9NwY22OmUXAJk1wrMRAzPmA9aFqMWAimPZ5dMKGn1unSQGn7IqQz9/fEmIXGjELfdoYM+2axNjX/qzUTDK7aYxHFCULE54uCRFJUdBoH7QoNHOXIAuNa2L9S3meacbSh5WwI3uLJy1A7L3qW7y4KpXIaR5YckxNyRjxySUrkllRIlXDySJ7JK3lznpwX5935mLdmnHTmkPyR8/kDKmCWDA==</latexit><latexit sha1_base64="pw669SiEEFo9OAlJjiH5z7yop+s=">AAACAXicbZA9SwNBEIb34leMX1EbwWYxCFbhTgQtY2wsI5gPSELY28wlS/Zuj905Qwix8a/YWChi67+w89+4Sa7QxBcWHt6ZYXZeP5bCoOt+O5mV1bX1jexmbmt7Z3cvv39QMyrRHKpcSaUbPjMgRQRVFCihEWtgoS+h7g9upvX6A2gjVHSPoxjaIetFIhCcobU6+aMabUkIkGmthvSatnw1RAG03MkX3KI7E10GL4UCSVXp5L9aXcWTECLkkhnT9NwY22OmUXAJk1wrMRAzPmA9aFqMWAimPZ5dMKGn1unSQGn7IqQz9/fEmIXGjELfdoYM+2axNjX/qzUTDK7aYxHFCULE54uCRFJUdBoH7QoNHOXIAuNa2L9S3meacbSh5WwI3uLJy1A7L3qW7y4KpXIaR5YckxNyRjxySUrkllRIlXDySJ7JK3lznpwX5935mLdmnHTmkPyR8/kDKmCWDA==</latexit><latexit sha1_base64="pw669SiEEFo9OAlJjiH5z7yop+s=">AAACAXicbZA9SwNBEIb34leMX1EbwWYxCFbhTgQtY2wsI5gPSELY28wlS/Zuj905Qwix8a/YWChi67+w89+4Sa7QxBcWHt6ZYXZeP5bCoOt+O5mV1bX1jexmbmt7Z3cvv39QMyrRHKpcSaUbPjMgRQRVFCihEWtgoS+h7g9upvX6A2gjVHSPoxjaIetFIhCcobU6+aMabUkIkGmthvSatnw1RAG03MkX3KI7E10GL4UCSVXp5L9aXcWTECLkkhnT9NwY22OmUXAJk1wrMRAzPmA9aFqMWAimPZ5dMKGn1unSQGn7IqQz9/fEmIXGjELfdoYM+2axNjX/qzUTDK7aYxHFCULE54uCRFJUdBoH7QoNHOXIAuNa2L9S3meacbSh5WwI3uLJy1A7L3qW7y4KpXIaR5YckxNyRjxySUrkllRIlXDySJ7JK3lznpwX5935mLdmnHTmkPyR8/kDKmCWDA==</latexit><latexit sha1_base64="pw669SiEEFo9OAlJjiH5z7yop+s=">AAACAXicbZA9SwNBEIb34leMX1EbwWYxCFbhTgQtY2wsI5gPSELY28wlS/Zuj905Qwix8a/YWChi67+w89+4Sa7QxBcWHt6ZYXZeP5bCoOt+O5mV1bX1jexmbmt7Z3cvv39QMyrRHKpcSaUbPjMgRQRVFCihEWtgoS+h7g9upvX6A2gjVHSPoxjaIetFIhCcobU6+aMabUkIkGmthvSatnw1RAG03MkX3KI7E10GL4UCSVXp5L9aXcWTECLkkhnT9NwY22OmUXAJk1wrMRAzPmA9aFqMWAimPZ5dMKGn1unSQGn7IqQz9/fEmIXGjELfdoYM+2axNjX/qzUTDK7aYxHFCULE54uCRFJUdBoH7QoNHOXIAuNa2L9S3meacbSh5WwI3uLJy1A7L3qW7y4KpXIaR5YckxNyRjxySUrkllRIlXDySJ7JK3lznpwX5935mLdmnHTmkPyR8/kDKmCWDA==</latexit>

A0 = A [�A<latexit sha1_base64="nLK99WSiKQwynE/Gnx6DiqAU79Q=">AAAB/XicbZDLSsNAFIZPvNZ6i5edm8EiuiqJCLoRWnXhsoK9QBPKZDpph04mYWYi1FB8FTcuFHHre7jzbZy2WWjrDwMf/zmHc+YPEs6Udpxva2FxaXlltbBWXN/Y3Nq2d3YbKk4loXUS81i2AqwoZ4LWNdOcthJJcRRw2gwG1+N684FKxWJxr4cJ9SPcEyxkBGtjdez96jG6RFXkkTRB3g3lGqNqxy45ZWciNA9uDiXIVevYX143JmlEhSYcK9V2nUT7GZaaEU5HRS9VNMFkgHu0bVDgiCo/m1w/QkfG6aIwluYJjSbu74kMR0oNo8B0Rlj31WxtbP5Xa6c6vPAzJpJUU0Gmi8KUIx2jcRSoyyQlmg8NYCKZuRWRPpaYaBNY0YTgzn55HhqnZdfw3VmpcpXHUYADOIQTcOEcKnALNagDgUd4hld4s56sF+vd+pi2Llj5zB78kfX5AziKkyQ=</latexit><latexit sha1_base64="nLK99WSiKQwynE/Gnx6DiqAU79Q=">AAAB/XicbZDLSsNAFIZPvNZ6i5edm8EiuiqJCLoRWnXhsoK9QBPKZDpph04mYWYi1FB8FTcuFHHre7jzbZy2WWjrDwMf/zmHc+YPEs6Udpxva2FxaXlltbBWXN/Y3Nq2d3YbKk4loXUS81i2AqwoZ4LWNdOcthJJcRRw2gwG1+N684FKxWJxr4cJ9SPcEyxkBGtjdez96jG6RFXkkTRB3g3lGqNqxy45ZWciNA9uDiXIVevYX143JmlEhSYcK9V2nUT7GZaaEU5HRS9VNMFkgHu0bVDgiCo/m1w/QkfG6aIwluYJjSbu74kMR0oNo8B0Rlj31WxtbP5Xa6c6vPAzJpJUU0Gmi8KUIx2jcRSoyyQlmg8NYCKZuRWRPpaYaBNY0YTgzn55HhqnZdfw3VmpcpXHUYADOIQTcOEcKnALNagDgUd4hld4s56sF+vd+pi2Llj5zB78kfX5AziKkyQ=</latexit><latexit sha1_base64="nLK99WSiKQwynE/Gnx6DiqAU79Q=">AAAB/XicbZDLSsNAFIZPvNZ6i5edm8EiuiqJCLoRWnXhsoK9QBPKZDpph04mYWYi1FB8FTcuFHHre7jzbZy2WWjrDwMf/zmHc+YPEs6Udpxva2FxaXlltbBWXN/Y3Nq2d3YbKk4loXUS81i2AqwoZ4LWNdOcthJJcRRw2gwG1+N684FKxWJxr4cJ9SPcEyxkBGtjdez96jG6RFXkkTRB3g3lGqNqxy45ZWciNA9uDiXIVevYX143JmlEhSYcK9V2nUT7GZaaEU5HRS9VNMFkgHu0bVDgiCo/m1w/QkfG6aIwluYJjSbu74kMR0oNo8B0Rlj31WxtbP5Xa6c6vPAzJpJUU0Gmi8KUIx2jcRSoyyQlmg8NYCKZuRWRPpaYaBNY0YTgzn55HhqnZdfw3VmpcpXHUYADOIQTcOEcKnALNagDgUd4hld4s56sF+vd+pi2Llj5zB78kfX5AziKkyQ=</latexit><latexit sha1_base64="nLK99WSiKQwynE/Gnx6DiqAU79Q=">AAAB/XicbZDLSsNAFIZPvNZ6i5edm8EiuiqJCLoRWnXhsoK9QBPKZDpph04mYWYi1FB8FTcuFHHre7jzbZy2WWjrDwMf/zmHc+YPEs6Udpxva2FxaXlltbBWXN/Y3Nq2d3YbKk4loXUS81i2AqwoZ4LWNdOcthJJcRRw2gwG1+N684FKxWJxr4cJ9SPcEyxkBGtjdez96jG6RFXkkTRB3g3lGqNqxy45ZWciNA9uDiXIVevYX143JmlEhSYcK9V2nUT7GZaaEU5HRS9VNMFkgHu0bVDgiCo/m1w/QkfG6aIwluYJjSbu74kMR0oNo8B0Rlj31WxtbP5Xa6c6vPAzJpJUU0Gmi8KUIx2jcRSoyyQlmg8NYCKZuRWRPpaYaBNY0YTgzn55HhqnZdfw3VmpcpXHUYADOIQTcOEcKnALNagDgUd4hld4s56sF+vd+pi2Llj5zB78kfX5AziKkyQ=</latexit>

B0 = B [�B<latexit sha1_base64="3rsI6ElVwi6Lfo3qZpJsR2daZOU=">AAAB/XicbZDLSsNAFIYn9VbrLV52bgaL6KokIuhGKNGFywr2Ak0ok+m0HTqZhJkToYbiq7hxoYhb38Odb+O0zUJbfxj4+M85nDN/mAiuwXG+rcLS8srqWnG9tLG5tb1j7+41dJwqyuo0FrFqhUQzwSWrAwfBWoliJAoFa4bD60m9+cCU5rG8h1HCgoj0Je9xSsBYHfvAO8FX2MM+TRPs3zABBHsdu+xUnKnwIrg5lFGuWsf+8rsxTSMmgQqiddt1EggyooBTwcYlP9UsIXRI+qxtUJKI6SCbXj/Gx8bp4l6szJOAp+7viYxEWo+i0HRGBAZ6vjYx/6u1U+hdBhmXSQpM0tmiXiowxHgSBe5yxSiIkQFCFTe3YjogilAwgZVMCO78lxehcVZxDd+dl6teHkcRHaIjdIpcdIGq6BbVUB1R9Iie0St6s56sF+vd+pi1Fqx8Zh/9kfX5Az03kyc=</latexit><latexit sha1_base64="3rsI6ElVwi6Lfo3qZpJsR2daZOU=">AAAB/XicbZDLSsNAFIYn9VbrLV52bgaL6KokIuhGKNGFywr2Ak0ok+m0HTqZhJkToYbiq7hxoYhb38Odb+O0zUJbfxj4+M85nDN/mAiuwXG+rcLS8srqWnG9tLG5tb1j7+41dJwqyuo0FrFqhUQzwSWrAwfBWoliJAoFa4bD60m9+cCU5rG8h1HCgoj0Je9xSsBYHfvAO8FX2MM+TRPs3zABBHsdu+xUnKnwIrg5lFGuWsf+8rsxTSMmgQqiddt1EggyooBTwcYlP9UsIXRI+qxtUJKI6SCbXj/Gx8bp4l6szJOAp+7viYxEWo+i0HRGBAZ6vjYx/6u1U+hdBhmXSQpM0tmiXiowxHgSBe5yxSiIkQFCFTe3YjogilAwgZVMCO78lxehcVZxDd+dl6teHkcRHaIjdIpcdIGq6BbVUB1R9Iie0St6s56sF+vd+pi1Fqx8Zh/9kfX5Az03kyc=</latexit><latexit sha1_base64="3rsI6ElVwi6Lfo3qZpJsR2daZOU=">AAAB/XicbZDLSsNAFIYn9VbrLV52bgaL6KokIuhGKNGFywr2Ak0ok+m0HTqZhJkToYbiq7hxoYhb38Odb+O0zUJbfxj4+M85nDN/mAiuwXG+rcLS8srqWnG9tLG5tb1j7+41dJwqyuo0FrFqhUQzwSWrAwfBWoliJAoFa4bD60m9+cCU5rG8h1HCgoj0Je9xSsBYHfvAO8FX2MM+TRPs3zABBHsdu+xUnKnwIrg5lFGuWsf+8rsxTSMmgQqiddt1EggyooBTwcYlP9UsIXRI+qxtUJKI6SCbXj/Gx8bp4l6szJOAp+7viYxEWo+i0HRGBAZ6vjYx/6u1U+hdBhmXSQpM0tmiXiowxHgSBe5yxSiIkQFCFTe3YjogilAwgZVMCO78lxehcVZxDd+dl6teHkcRHaIjdIpcdIGq6BbVUB1R9Iie0St6s56sF+vd+pi1Fqx8Zh/9kfX5Az03kyc=</latexit><latexit sha1_base64="3rsI6ElVwi6Lfo3qZpJsR2daZOU=">AAAB/XicbZDLSsNAFIYn9VbrLV52bgaL6KokIuhGKNGFywr2Ak0ok+m0HTqZhJkToYbiq7hxoYhb38Odb+O0zUJbfxj4+M85nDN/mAiuwXG+rcLS8srqWnG9tLG5tb1j7+41dJwqyuo0FrFqhUQzwSWrAwfBWoliJAoFa4bD60m9+cCU5rG8h1HCgoj0Je9xSsBYHfvAO8FX2MM+TRPs3zABBHsdu+xUnKnwIrg5lFGuWsf+8rsxTSMmgQqiddt1EggyooBTwcYlP9UsIXRI+qxtUJKI6SCbXj/Gx8bp4l6szJOAp+7viYxEWo+i0HRGBAZ6vjYx/6u1U+hdBhmXSQpM0tmiXiowxHgSBe5yxSiIkQFCFTe3YjogilAwgZVMCO78lxehcVZxDd+dl6teHkcRHaIjdIpcdIGq6BbVUB1R9Iie0St6s56sF+vd+pi1Fqx8Zh/9kfX5Az03kyc=</latexit>

Alternatively, we can just append the output of the following query to V (union below is just append too):

IVM for complex queries compose such op-level rewrites

V 0 = V [ (�A ./ B0) [ (A0 ./ �B)<latexit sha1_base64="jeGTXlJ411dIE56XxZzP2PaRVE8=">AAACJXicbVBNS0JBFJ3Xp9mX1bLNkIS5kfciqEWBWouWBqmBT2TeeNXBeR/M3FeI+Gfa9FfatEgiaNVfadRHlHVg4HDOudy5x4uk0GjbH9bC4tLyympqLb2+sbm1ndnZrekwVhyqPJShuvOYBikCqKJACXeRAuZ7Eupe/3Li1+9BaREGtziIoOmzbiA6gjM0UitzXsvRC1qjLo8jeuRegURGS9T1wgcUQMu5fGKVct9ikirnW5msXbCnoH+Jk5AsSVBpZcZuO+SxDwFyybRuOHaEzSFTKLiEUdqNNUSM91kXGoYGzAfdHE6vHNFDo7RpJ1TmBUin6s+JIfO1HvieSfoMe3rem4j/eY0YO2fNoQiiGCHgs0WdWFIM6aQy2hYKOMqBIYwrYf5KeY8pxtEUmzYlOPMn/yW144Jj+M1JtlhO6kiRfXJAjohDTkmRXJMKqRJOHskzeSVj68l6sd6s91l0wUpm9sgvWJ9fyNShKQ==</latexit><latexit sha1_base64="jeGTXlJ411dIE56XxZzP2PaRVE8=">AAACJXicbVBNS0JBFJ3Xp9mX1bLNkIS5kfciqEWBWouWBqmBT2TeeNXBeR/M3FeI+Gfa9FfatEgiaNVfadRHlHVg4HDOudy5x4uk0GjbH9bC4tLyympqLb2+sbm1ndnZrekwVhyqPJShuvOYBikCqKJACXeRAuZ7Eupe/3Li1+9BaREGtziIoOmzbiA6gjM0UitzXsvRC1qjLo8jeuRegURGS9T1wgcUQMu5fGKVct9ikirnW5msXbCnoH+Jk5AsSVBpZcZuO+SxDwFyybRuOHaEzSFTKLiEUdqNNUSM91kXGoYGzAfdHE6vHNFDo7RpJ1TmBUin6s+JIfO1HvieSfoMe3rem4j/eY0YO2fNoQiiGCHgs0WdWFIM6aQy2hYKOMqBIYwrYf5KeY8pxtEUmzYlOPMn/yW144Jj+M1JtlhO6kiRfXJAjohDTkmRXJMKqRJOHskzeSVj68l6sd6s91l0wUpm9sgvWJ9fyNShKQ==</latexit><latexit sha1_base64="jeGTXlJ411dIE56XxZzP2PaRVE8=">AAACJXicbVBNS0JBFJ3Xp9mX1bLNkIS5kfciqEWBWouWBqmBT2TeeNXBeR/M3FeI+Gfa9FfatEgiaNVfadRHlHVg4HDOudy5x4uk0GjbH9bC4tLyympqLb2+sbm1ndnZrekwVhyqPJShuvOYBikCqKJACXeRAuZ7Eupe/3Li1+9BaREGtziIoOmzbiA6gjM0UitzXsvRC1qjLo8jeuRegURGS9T1wgcUQMu5fGKVct9ikirnW5msXbCnoH+Jk5AsSVBpZcZuO+SxDwFyybRuOHaEzSFTKLiEUdqNNUSM91kXGoYGzAfdHE6vHNFDo7RpJ1TmBUin6s+JIfO1HvieSfoMe3rem4j/eY0YO2fNoQiiGCHgs0WdWFIM6aQy2hYKOMqBIYwrYf5KeY8pxtEUmzYlOPMn/yW144Jj+M1JtlhO6kiRfXJAjohDTkmRXJMKqRJOHskzeSVj68l6sd6s91l0wUpm9sgvWJ9fyNShKQ==</latexit><latexit sha1_base64="jeGTXlJ411dIE56XxZzP2PaRVE8=">AAACJXicbVBNS0JBFJ3Xp9mX1bLNkIS5kfciqEWBWouWBqmBT2TeeNXBeR/M3FeI+Gfa9FfatEgiaNVfadRHlHVg4HDOudy5x4uk0GjbH9bC4tLyympqLb2+sbm1ndnZrekwVhyqPJShuvOYBikCqKJACXeRAuZ7Eupe/3Li1+9BaREGtziIoOmzbiA6gjM0UitzXsvRC1qjLo8jeuRegURGS9T1wgcUQMu5fGKVct9ikirnW5msXbCnoH+Jk5AsSVBpZcZuO+SxDwFyybRuOHaEzSFTKLiEUdqNNUSM91kXGoYGzAfdHE6vHNFDo7RpJ1TmBUin6s+JIfO1HvieSfoMe3rem4j/eY0YO2fNoQiiGCHgs0WdWFIM6aQy2hYKOMqBIYwrYf5KeY8pxtEUmzYlOPMn/yW144Jj+M1JtlhO6kiRfXJAjohDTkmRXJMKqRJOHskzeSVj68l6sd6s91l0wUpm9sgvWJ9fyNShKQ==</latexit>

(�A ./ B0) [ (A0 ./ �B)� (�A ./ �B)<latexit sha1_base64="F8+01gWVJT5H2At8fJlGkZcSFrU=">AAACN3icbVDLSgNBEJz1bXxFPXoZDJLkYNgVQY9J9OBJFIwGskuYnXSSIbMPZnqVsPhXXvwNb3rxoIhX/8BJXESNBQNFVTU9XX4shUbbfrSmpmdm5+YXFnNLyyura/n1jUsdJYpDg0cyUk2faZAihAYKlNCMFbDAl3DlD45G/tU1KC2i8AKHMXgB64WiKzhDI7XzpyX3GCQyWqOuH92gAFovlqnLk5iWasVvMUvVy3SXTo58u+18wa7YY9BJ4mSkQDKctfMPbifiSQAhcsm0bjl2jF7KFAou4TbnJhpixgesBy1DQxaA9tLx3bd0xygd2o2UeSHSsfpzImWB1sPAN8mAYV//9Ubif14rwe6hl4owThBC/rWom0iKER2VSDtCAUc5NIRxJcxfKe8zxTiaqnOmBOfvyZPkcq/iGH6+X6jWszoWyBbZJiXikANSJSfkjDQIJ3fkibyQV+veerberPev6JSVzWySX7A+PgEZ46fc</latexit><latexit sha1_base64="F8+01gWVJT5H2At8fJlGkZcSFrU=">AAACN3icbVDLSgNBEJz1bXxFPXoZDJLkYNgVQY9J9OBJFIwGskuYnXSSIbMPZnqVsPhXXvwNb3rxoIhX/8BJXESNBQNFVTU9XX4shUbbfrSmpmdm5+YXFnNLyyura/n1jUsdJYpDg0cyUk2faZAihAYKlNCMFbDAl3DlD45G/tU1KC2i8AKHMXgB64WiKzhDI7XzpyX3GCQyWqOuH92gAFovlqnLk5iWasVvMUvVy3SXTo58u+18wa7YY9BJ4mSkQDKctfMPbifiSQAhcsm0bjl2jF7KFAou4TbnJhpixgesBy1DQxaA9tLx3bd0xygd2o2UeSHSsfpzImWB1sPAN8mAYV//9Ubif14rwe6hl4owThBC/rWom0iKER2VSDtCAUc5NIRxJcxfKe8zxTiaqnOmBOfvyZPkcq/iGH6+X6jWszoWyBbZJiXikANSJSfkjDQIJ3fkibyQV+veerberPev6JSVzWySX7A+PgEZ46fc</latexit><latexit sha1_base64="F8+01gWVJT5H2At8fJlGkZcSFrU=">AAACN3icbVDLSgNBEJz1bXxFPXoZDJLkYNgVQY9J9OBJFIwGskuYnXSSIbMPZnqVsPhXXvwNb3rxoIhX/8BJXESNBQNFVTU9XX4shUbbfrSmpmdm5+YXFnNLyyura/n1jUsdJYpDg0cyUk2faZAihAYKlNCMFbDAl3DlD45G/tU1KC2i8AKHMXgB64WiKzhDI7XzpyX3GCQyWqOuH92gAFovlqnLk5iWasVvMUvVy3SXTo58u+18wa7YY9BJ4mSkQDKctfMPbifiSQAhcsm0bjl2jF7KFAou4TbnJhpixgesBy1DQxaA9tLx3bd0xygd2o2UeSHSsfpzImWB1sPAN8mAYV//9Ubif14rwe6hl4owThBC/rWom0iKER2VSDtCAUc5NIRxJcxfKe8zxTiaqnOmBOfvyZPkcq/iGH6+X6jWszoWyBbZJiXikANSJSfkjDQIJ3fkibyQV+veerberPev6JSVzWySX7A+PgEZ46fc</latexit><latexit sha1_base64="F8+01gWVJT5H2At8fJlGkZcSFrU=">AAACN3icbVDLSgNBEJz1bXxFPXoZDJLkYNgVQY9J9OBJFIwGskuYnXSSIbMPZnqVsPhXXvwNb3rxoIhX/8BJXESNBQNFVTU9XX4shUbbfrSmpmdm5+YXFnNLyyura/n1jUsdJYpDg0cyUk2faZAihAYKlNCMFbDAl3DlD45G/tU1KC2i8AKHMXgB64WiKzhDI7XzpyX3GCQyWqOuH92gAFovlqnLk5iWasVvMUvVy3SXTo58u+18wa7YY9BJ4mSkQDKctfMPbifiSQAhcsm0bjl2jF7KFAou4TbnJhpixgesBy1DQxaA9tLx3bd0xygd2o2UeSHSsfpzImWB1sPAN8mAYV//9Ubif14rwe6hl4owThBC/rWom0iKER2VSDtCAUc5NIRxJcxfKe8zxTiaqnOmBOfvyZPkcq/iGH6+X6jWszoWyBbZJiXikANSJSfkjDQIJ3fkibyQV+veerberPev6JSVzWySX7A+PgEZ46fc</latexit>

Assume no duplicate inserts

50

Query Optimization

❖ Overview of Query Optimizer ❖ Physical Query Plan (PQP) Concept: Pipelining Mechanism: Iterator Interface ❖ Enumerating Alternative PQPs Logical: Algebraic Rewrites Physical: Choosing Phy. Op. Impl. ❖ Costing PQPs ❖ Materialized Views