assignment 3 solution - github pages
TRANSCRIPT
![Page 1: Assignment 3 Solution - GitHub Pages](https://reader030.vdocuments.site/reader030/viewer/2022012716/61aea3fcef2a26649b23748a/html5/thumbnails/1.jpg)
Assignment 3 Solution
Introduction to Database Systems
DataLab
CS, NTHU
![Page 2: Assignment 3 Solution - GitHub Pages](https://reader030.vdocuments.site/reader030/viewer/2022012716/61aea3fcef2a26649b23748a/html5/thumbnails/2.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022012716/61aea3fcef2a26649b23748a/html5/thumbnails/3.jpg)
Overview
3
createPlan()
Planner
eatKeyword()
QueryData()
BasicQueryPlanner
QueryData
queryCommand()
createQueryPlan()
Parser
Lexer
matchKeyword()
![Page 4: Assignment 3 Solution - GitHub Pages](https://reader030.vdocuments.site/reader030/viewer/2022012716/61aea3fcef2a26649b23748a/html5/thumbnails/4.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022012716/61aea3fcef2a26649b23748a/html5/thumbnails/5.jpg)
Lexer
5
createPlan()
Planner
eatKeyword()
QueryData()
BasicQueryPlanner
QueryData
queryCommand()
createQueryPlan()
Parser
Lexer
matchKeyword()
![Page 6: Assignment 3 Solution - GitHub Pages](https://reader030.vdocuments.site/reader030/viewer/2022012716/61aea3fcef2a26649b23748a/html5/thumbnails/6.jpg)
Parse
• Lexer
– added “explain” in keywords.
6
![Page 7: Assignment 3 Solution - GitHub Pages](https://reader030.vdocuments.site/reader030/viewer/2022012716/61aea3fcef2a26649b23748a/html5/thumbnails/7.jpg)
Parser
7
createPlan()
Planner
eatKeyword()
QueryData()
BasicQueryPlanner
QueryData
queryCommand()
createQueryPlan()
Parser
Lexer
matchKeyword()
![Page 8: Assignment 3 Solution - GitHub Pages](https://reader030.vdocuments.site/reader030/viewer/2022012716/61aea3fcef2a26649b23748a/html5/thumbnails/8.jpg)
Parse
• Parser
– add isExplain
8
![Page 9: Assignment 3 Solution - GitHub Pages](https://reader030.vdocuments.site/reader030/viewer/2022012716/61aea3fcef2a26649b23748a/html5/thumbnails/9.jpg)
Parse
• Parser
– Parser returns SQL data
– In method “queryCommand()”
9
![Page 10: Assignment 3 Solution - GitHub Pages](https://reader030.vdocuments.site/reader030/viewer/2022012716/61aea3fcef2a26649b23748a/html5/thumbnails/10.jpg)
QueryData
10
createPlan()
Planner
eatKeyword()
QueryData()
BasicQueryPlanner
QueryData
queryCommand()
createQueryPlan()
Parser
Lexer
matchKeyword()
![Page 11: Assignment 3 Solution - GitHub Pages](https://reader030.vdocuments.site/reader030/viewer/2022012716/61aea3fcef2a26649b23748a/html5/thumbnails/11.jpg)
Parse
• QueryData
11
![Page 12: Assignment 3 Solution - GitHub Pages](https://reader030.vdocuments.site/reader030/viewer/2022012716/61aea3fcef2a26649b23748a/html5/thumbnails/12.jpg)
Parse
• QueryData
12
![Page 13: Assignment 3 Solution - GitHub Pages](https://reader030.vdocuments.site/reader030/viewer/2022012716/61aea3fcef2a26649b23748a/html5/thumbnails/13.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022012716/61aea3fcef2a26649b23748a/html5/thumbnails/14.jpg)
14
ExplainPlan open()
SortPlan open() toString()
ProjectPlan open() toString()
SelectPlan open() toString()
ProductPlan open()
TablePlan open()
toString()
toString()
getVal()
ExplainScanSP/JDBC Connection
![Page 15: Assignment 3 Solution - GitHub Pages](https://reader030.vdocuments.site/reader030/viewer/2022012716/61aea3fcef2a26649b23748a/html5/thumbnails/15.jpg)
ExplainPlan
15
![Page 16: Assignment 3 Solution - GitHub Pages](https://reader030.vdocuments.site/reader030/viewer/2022012716/61aea3fcef2a26649b23748a/html5/thumbnails/16.jpg)
ExplainScan
• That the result shows once
16
![Page 17: Assignment 3 Solution - GitHub Pages](https://reader030.vdocuments.site/reader030/viewer/2022012716/61aea3fcef2a26649b23748a/html5/thumbnails/17.jpg)
ExplainScan
• Return the result of explain
17
![Page 18: Assignment 3 Solution - GitHub Pages](https://reader030.vdocuments.site/reader030/viewer/2022012716/61aea3fcef2a26649b23748a/html5/thumbnails/18.jpg)
ExplainScan
• Return the number of actual records
18
![Page 19: Assignment 3 Solution - GitHub Pages](https://reader030.vdocuments.site/reader030/viewer/2022012716/61aea3fcef2a26649b23748a/html5/thumbnails/19.jpg)
TablePlan
19
->TablePlan on (warehouse) (#blks=2, #recs=1)
![Page 20: Assignment 3 Solution - GitHub Pages](https://reader030.vdocuments.site/reader030/viewer/2022012716/61aea3fcef2a26649b23748a/html5/thumbnails/20.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022012716/61aea3fcef2a26649b23748a/html5/thumbnails/21.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022012716/61aea3fcef2a26649b23748a/html5/thumbnails/22.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022012716/61aea3fcef2a26649b23748a/html5/thumbnails/23.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022012716/61aea3fcef2a26649b23748a/html5/thumbnails/24.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022012716/61aea3fcef2a26649b23748a/html5/thumbnails/25.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022012716/61aea3fcef2a26649b23748a/html5/thumbnails/26.jpg)
BasicQueryPlanner
26
createPlan()
Planner
eatKeyword()
QueryData()
BasicQueryPlanner
QueryData
queryCommand()
createQueryPlan()
Parser
Lexer
matchKeyword()
![Page 27: Assignment 3 Solution - GitHub Pages](https://reader030.vdocuments.site/reader030/viewer/2022012716/61aea3fcef2a26649b23748a/html5/thumbnails/27.jpg)
BasicQueryPlanner
27
![Page 28: Assignment 3 Solution - GitHub Pages](https://reader030.vdocuments.site/reader030/viewer/2022012716/61aea3fcef2a26649b23748a/html5/thumbnails/28.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022012716/61aea3fcef2a26649b23748a/html5/thumbnails/29.jpg)
Examples of Experiment Results
29
![Page 30: Assignment 3 Solution - GitHub Pages](https://reader030.vdocuments.site/reader030/viewer/2022012716/61aea3fcef2a26649b23748a/html5/thumbnails/30.jpg)
Examples of Experiment Results
30
![Page 31: Assignment 3 Solution - GitHub Pages](https://reader030.vdocuments.site/reader030/viewer/2022012716/61aea3fcef2a26649b23748a/html5/thumbnails/31.jpg)
Examples of Experiment Results
31
![Page 32: Assignment 3 Solution - GitHub Pages](https://reader030.vdocuments.site/reader030/viewer/2022012716/61aea3fcef2a26649b23748a/html5/thumbnails/32.jpg)
Examples of Experiment Results
32
![Page 33: Assignment 3 Solution - GitHub Pages](https://reader030.vdocuments.site/reader030/viewer/2022012716/61aea3fcef2a26649b23748a/html5/thumbnails/33.jpg)
Examples of Experiment Results
33