assignment 3 solution - github pages · assignment 3 solution introduction to database systems...

Post on 18-Jan-2021

17 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Assignment 3 Solution

Introduction to Database SystemsDataLab

CS, NTHU

Modified/Added Classes• Parse

– Lexer– Parser– queryData

• Algebra– ExplainPlan、ExplainScan– TablePlan、ProductPlan、SelectPlan、 SortPlan、

GroupByPlan、ProjectPlan• Planner

– BasicQueryPlanner• An example of Experiment Results

2

Overview

3

createPlan()Planner

eatKeyword()

QueryData()

BasicQueryPlanner

QueryData

queryCommand()

createQueryPlan()

Parser

Lexer

matchKeyword()

Modified/Added Classes• Parse

– Lexer– Parser– queryData

• Algebra– ExplainPlan、ExplainScan– TablePlan、ProductPlan、SelectPlan、 SortPlan、

GroupByPlan、ProjectPlan• Planner

– BasicQueryPlanner• Examples of Experiment Results

4

Lexer

5

createPlan()Planner

eatKeyword()

QueryData()

BasicQueryPlanner

QueryData

queryCommand()

createQueryPlan()

Parser

Lexer

matchKeyword()

Parse

• Lexer– added “explain” in keywords.

6

Parser

7

createPlan()Planner

eatKeyword()

QueryData()

BasicQueryPlanner

QueryData

queryCommand()

createQueryPlan()

Parser

Lexer

matchKeyword()

Parse

• Parser– add isExplain

8

Parse

• Parser– Parser returns SQL data– In method “queryCommand()”

9

QueryData

10

createPlan()Planner

eatKeyword()

QueryData()

BasicQueryPlanner

QueryData

queryCommand()

createQueryPlan()

Parser

Lexer

matchKeyword()

Parse

• QueryData

11

Parse

• QueryData

12

Modified/Added Classes• Parse

– Lexer– Parser– queryData

• Algebra– ExplainPlan、ExplainScan– TablePlan、ProductPlan、SelectPlan、 SortPlan、

GroupByPlan、ProjectPlan• Planner

– BasicQueryPlanner• Examples of Experiment Results

13

14

ExplainPlan open()

SortPlan open() toString()

ProjectPlan open() toString()

SelectPlan open() toString()

ProductPlan open()

TablePlan open()

toString()

toString()

getVal()ExplainScan

SP/JDBC Connection

ExplainPlan

15

ExplainScan

• That the result shows once

16

ExplainScan

• Return the result of explain

17

ExplainScan

• Return the number of actual records

18

TablePlan

19

->TablePlan on (warehouse) (#blks=2, #recs=1)

ProductPlan

20

->ProductPlan (#blks=22, #recs=10)->TablePlan on (warehouse) (#blks=2, #recs=1)->TablePlan on (district) (#blks=2, #recs=10)

SelectPlan

21

->SelectPlan pred:(d_w_id=w_id) (#blks=22, #recs=10)->ProductPlan (#blks=22, #recs=10)

->TablePlan on (warehouse) (#blks=2, #recs=1)->TablePlan on (district) (#blks=2, #recs=10)

SortPlan

22

->SortPlan (#blks=2, #recs=10)->SelectPlan pred:(d_w_id=w_id) (#blks=22, #recs=10)

->ProductPlan (#blks=22, #recs=10)->TablePlan on (warehouse) (#blks=2, #recs=1)->TablePlan on (district) (#blks=2, #recs=10)

GroupByPlan

23

->GroupByPlan: (#blks=2, #recs=1)->SortPlan (#blks=2, #recs=10)

->SelectPlan pred:(d_w_id=w_id) (#blks=22, #recs=10)->ProductPlan (#blks=22, #recs=10)

->TablePlan on (warehouse) (#blks=2, #recs=1)->TablePlan on (district) (#blks=2, #recs=10)

ProjectPlan

24

->ProjectPlan (#blks=2, #recs=1)->GroupByPlan: (#blks=2, #recs=1)

->SortPlan (#blks=2, #recs=10)->SelectPlan pred:(d_w_id=w_id) (#blks=22, #recs=10)

->ProductPlan (#blks=22, #recs=10)->TablePlan on (warehouse) (#blks=2, #recs=1)->TablePlan on (district) (#blks=2, #recs=10)

Modified/Added Classes• Parse

– Lexer– Parser– queryData

• Algebra– ExplainPlan、ExplainScan– TablePlan、ProductPlan、SelectPlan、 SortPlan、

GroupByPlan、ProjectPlan• Planner

– BasicQueryPlanner• Examples of Experiment Results

25

BasicQueryPlanner

26

createPlan()Planner

eatKeyword()

QueryData()

BasicQueryPlanner

QueryData

queryCommand()

createQueryPlan()

Parser

Lexer

matchKeyword()

BasicQueryPlanner

27

Modified/Added Classes• Parse

– Lexer– Parser– queryData

• Algebra– ExplainPlan、ExplainScan– TablePlan、ProductPlan、SelectPlan、 SortPlan、

GroupByPlan、ProjectPlan• Planner

– BasicQueryPlanner• Examples of Experiment Results

28

Examples of Experiment Results

29

Examples of Experiment Results

30

Examples of Experiment Results

31

Examples of Experiment Results

32

top related