View
61
Download
1
Category
Preview:
Citation preview
Contents
1. Query Processing
2. Translating SQL queries into RA
3. Evaluation Plan
4. Query Execution
5. Query Optimization
6. Translation Rules
7. Cost Estimations
1. Query Processing
▪ Aim of query processing - to find information in one or more databases, - and deliver it to the user quickly and efficiently. - to choose the most cost effective.
▪ Translation of queries - into expressions that can be used at physical level of file system. - Includes query optimization and query evaluation.
1. Query Processing
1. Query Processing ▪ Typical steps when processing a high-level query (e.g. SQL query) Query tree internal representation of the query Execution strategy how to retrieve results of query
1. Query Processing
2. Translating SQL queries into RA
▪ Translate query into its internal form. - This is then translated into Relational Algebra(RA). - The parser checks syntax, verifies relations.
▪ A RA expression may have many equivalent expressions.
▪ Example Σbalance<2500(πbalance(account))
Is equivalent to Πbalance(σbalance<2500(account))
Each relational algebra operation can be evaluated using one of several different algorithms. Correspondingly, a relational-algebra expression can be evaluated in many ways.
2. Translating SQL queries into RA
3. Evaluation Plan ▪ Annotated expression specifying detailed evaluation strategy.
▪ Example Use an index on balance to find accounts with balance < 2500, Or perform complete relation scan and discard accounts with balance ≥ 2500.
Initial canonical query tree
3. Evaluation Plan
Book (access#, title) Member (ticket#, name) Loan(loanedbook,loanedto)
Select member.name rom book, loan, member
where book.title = "dracula" and member.ticket# = loan.loanedto and loan.loanedbook = book.access#
4. Query Execution
For each operation (join, select, project, aggregation …) - Typical algorithms (e.g. Binary search for simple selection) - Specific or not to storage structure and access paths Book (access#, title) Member (ticket#, name) Loan(loanedbook,loanedto) Select member.name From book, loan, member
where book.title = "dracula" and member.ticket# = loan.loanedto and loan.loanedbook = book.access#
4. Query Execution
4. Query Execution
4. Query Execution
Recommended