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

32
Assignment 3 Solution Introduction to Database Systems DataLab CS, NTHU

Upload: others

Post on 18-Jan-2021

16 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Assignment 3 Solution - GitHub Pages · Assignment 3 Solution Introduction to Database Systems DataLab. CS, NTHU. Modified/Added Classes ... – Parser returns SQL data – In method

Assignment 3 Solution

Introduction to Database SystemsDataLab

CS, NTHU

Page 2: Assignment 3 Solution - GitHub Pages · Assignment 3 Solution Introduction to Database Systems DataLab. CS, NTHU. Modified/Added Classes ... – Parser returns SQL data – In method

Modified/Added Classes• Parse

– Lexer– Parser– queryData

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

GroupByPlan、ProjectPlan• Planner

– BasicQueryPlanner• An example of Experiment Results

2

Page 3: Assignment 3 Solution - GitHub Pages · Assignment 3 Solution Introduction to Database Systems DataLab. CS, NTHU. Modified/Added Classes ... – Parser returns SQL data – In method

Overview

3

createPlan()Planner

eatKeyword()

QueryData()

BasicQueryPlanner

QueryData

queryCommand()

createQueryPlan()

Parser

Lexer

matchKeyword()

Page 4: Assignment 3 Solution - GitHub Pages · Assignment 3 Solution Introduction to Database Systems DataLab. CS, NTHU. Modified/Added Classes ... – Parser returns SQL data – In method

Modified/Added Classes• Parse

– Lexer– Parser– queryData

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

GroupByPlan、ProjectPlan• Planner

– BasicQueryPlanner• Examples of Experiment Results

4

Page 5: Assignment 3 Solution - GitHub Pages · Assignment 3 Solution Introduction to Database Systems DataLab. CS, NTHU. Modified/Added Classes ... – Parser returns SQL data – In method

Lexer

5

createPlan()Planner

eatKeyword()

QueryData()

BasicQueryPlanner

QueryData

queryCommand()

createQueryPlan()

Parser

Lexer

matchKeyword()

Page 6: Assignment 3 Solution - GitHub Pages · Assignment 3 Solution Introduction to Database Systems DataLab. CS, NTHU. Modified/Added Classes ... – Parser returns SQL data – In method

Parse

• Lexer– added “explain” in keywords.

6

Page 7: Assignment 3 Solution - GitHub Pages · Assignment 3 Solution Introduction to Database Systems DataLab. CS, NTHU. Modified/Added Classes ... – Parser returns SQL data – In method

Parser

7

createPlan()Planner

eatKeyword()

QueryData()

BasicQueryPlanner

QueryData

queryCommand()

createQueryPlan()

Parser

Lexer

matchKeyword()

Page 8: Assignment 3 Solution - GitHub Pages · Assignment 3 Solution Introduction to Database Systems DataLab. CS, NTHU. Modified/Added Classes ... – Parser returns SQL data – In method

Parse

• Parser– add isExplain

8

Page 9: Assignment 3 Solution - GitHub Pages · Assignment 3 Solution Introduction to Database Systems DataLab. CS, NTHU. Modified/Added Classes ... – Parser returns SQL data – In method

Parse

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

9

Page 10: Assignment 3 Solution - GitHub Pages · Assignment 3 Solution Introduction to Database Systems DataLab. CS, NTHU. Modified/Added Classes ... – Parser returns SQL data – In method

QueryData

10

createPlan()Planner

eatKeyword()

QueryData()

BasicQueryPlanner

QueryData

queryCommand()

createQueryPlan()

Parser

Lexer

matchKeyword()

Page 11: Assignment 3 Solution - GitHub Pages · Assignment 3 Solution Introduction to Database Systems DataLab. CS, NTHU. Modified/Added Classes ... – Parser returns SQL data – In method

Parse

• QueryData

11

Page 12: Assignment 3 Solution - GitHub Pages · Assignment 3 Solution Introduction to Database Systems DataLab. CS, NTHU. Modified/Added Classes ... – Parser returns SQL data – In method

Parse

• QueryData

12

Page 13: Assignment 3 Solution - GitHub Pages · Assignment 3 Solution Introduction to Database Systems DataLab. CS, NTHU. Modified/Added Classes ... – Parser returns SQL data – In method

Modified/Added Classes• Parse

– Lexer– Parser– queryData

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

GroupByPlan、ProjectPlan• Planner

– BasicQueryPlanner• Examples of Experiment Results

13

Page 14: Assignment 3 Solution - GitHub Pages · Assignment 3 Solution Introduction to Database Systems DataLab. CS, NTHU. Modified/Added Classes ... – Parser returns SQL data – In method

14

ExplainPlan open()

SortPlan open() toString()

ProjectPlan open() toString()

SelectPlan open() toString()

ProductPlan open()

TablePlan open()

toString()

toString()

getVal()ExplainScan

SP/JDBC Connection

Page 15: Assignment 3 Solution - GitHub Pages · Assignment 3 Solution Introduction to Database Systems DataLab. CS, NTHU. Modified/Added Classes ... – Parser returns SQL data – In method

ExplainPlan

15

Page 16: Assignment 3 Solution - GitHub Pages · Assignment 3 Solution Introduction to Database Systems DataLab. CS, NTHU. Modified/Added Classes ... – Parser returns SQL data – In method

ExplainScan

• That the result shows once

16

Page 17: Assignment 3 Solution - GitHub Pages · Assignment 3 Solution Introduction to Database Systems DataLab. CS, NTHU. Modified/Added Classes ... – Parser returns SQL data – In method

ExplainScan

• Return the result of explain

17

Page 18: Assignment 3 Solution - GitHub Pages · Assignment 3 Solution Introduction to Database Systems DataLab. CS, NTHU. Modified/Added Classes ... – Parser returns SQL data – In method

ExplainScan

• Return the number of actual records

18

Page 19: Assignment 3 Solution - GitHub Pages · Assignment 3 Solution Introduction to Database Systems DataLab. CS, NTHU. Modified/Added Classes ... – Parser returns SQL data – In method

TablePlan

19

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

Page 20: Assignment 3 Solution - GitHub Pages · Assignment 3 Solution Introduction to Database Systems DataLab. CS, NTHU. Modified/Added Classes ... – Parser returns SQL data – In method

ProductPlan

20

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

Page 21: Assignment 3 Solution - GitHub Pages · Assignment 3 Solution Introduction to Database Systems DataLab. CS, NTHU. Modified/Added Classes ... – Parser returns SQL data – In method

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)

Page 22: Assignment 3 Solution - GitHub Pages · Assignment 3 Solution Introduction to Database Systems DataLab. CS, NTHU. Modified/Added Classes ... – Parser returns SQL data – In method

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)

Page 23: Assignment 3 Solution - GitHub Pages · Assignment 3 Solution Introduction to Database Systems DataLab. CS, NTHU. Modified/Added Classes ... – Parser returns SQL data – In method

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)

Page 24: Assignment 3 Solution - GitHub Pages · Assignment 3 Solution Introduction to Database Systems DataLab. CS, NTHU. Modified/Added Classes ... – Parser returns SQL data – In method

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)

Page 25: Assignment 3 Solution - GitHub Pages · Assignment 3 Solution Introduction to Database Systems DataLab. CS, NTHU. Modified/Added Classes ... – Parser returns SQL data – In method

Modified/Added Classes• Parse

– Lexer– Parser– queryData

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

GroupByPlan、ProjectPlan• Planner

– BasicQueryPlanner• Examples of Experiment Results

25

Page 26: Assignment 3 Solution - GitHub Pages · Assignment 3 Solution Introduction to Database Systems DataLab. CS, NTHU. Modified/Added Classes ... – Parser returns SQL data – In method

BasicQueryPlanner

26

createPlan()Planner

eatKeyword()

QueryData()

BasicQueryPlanner

QueryData

queryCommand()

createQueryPlan()

Parser

Lexer

matchKeyword()

Page 27: Assignment 3 Solution - GitHub Pages · Assignment 3 Solution Introduction to Database Systems DataLab. CS, NTHU. Modified/Added Classes ... – Parser returns SQL data – In method

BasicQueryPlanner

27

Page 28: Assignment 3 Solution - GitHub Pages · Assignment 3 Solution Introduction to Database Systems DataLab. CS, NTHU. Modified/Added Classes ... – Parser returns SQL data – In method

Modified/Added Classes• Parse

– Lexer– Parser– queryData

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

GroupByPlan、ProjectPlan• Planner

– BasicQueryPlanner• Examples of Experiment Results

28

Page 29: Assignment 3 Solution - GitHub Pages · Assignment 3 Solution Introduction to Database Systems DataLab. CS, NTHU. Modified/Added Classes ... – Parser returns SQL data – In method

Examples of Experiment Results

29

Page 30: Assignment 3 Solution - GitHub Pages · Assignment 3 Solution Introduction to Database Systems DataLab. CS, NTHU. Modified/Added Classes ... – Parser returns SQL data – In method

Examples of Experiment Results

30

Page 31: Assignment 3 Solution - GitHub Pages · Assignment 3 Solution Introduction to Database Systems DataLab. CS, NTHU. Modified/Added Classes ... – Parser returns SQL data – In method

Examples of Experiment Results

31

Page 32: Assignment 3 Solution - GitHub Pages · Assignment 3 Solution Introduction to Database Systems DataLab. CS, NTHU. Modified/Added Classes ... – Parser returns SQL data – In method

Examples of Experiment Results

32