Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
46 views

Query Language

A procedural language requires the user to spell out the series of steps needed to satisfy his query. A non-procedural language allows the user to simply specify what he / she wants, with the DBMS figuring out the steps needed to get it. Pure languages form underlying basis of query languages that people use.
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
46 views

Query Language

A procedural language requires the user to spell out the series of steps needed to satisfy his query. A non-procedural language allows the user to simply specify what he / she wants, with the DBMS figuring out the steps needed to get it. Pure languages form underlying basis of query languages that people use.
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 28

Lecture 4 QUERY LANGUAGE

Lecture 4
Mr Mgaya Gervas
Department of Computer Science
Ruaha University College (RUCO)
Silberschatz, Korth and Sudarshan 3.2 Database System Concepts
Query Languages
Language in which user requests information from the database.
Query languages are of two general types: procedural and non-
procedural.
1. A procedural language requires the user to spell out the series of
steps
needed to satisfy his query.
2. A non-procedural language allows the user to simply specify
what
he/she wants, with the DBMS figuring out the steps needed to get
it.

Pure languages:
Relational Algebra
Tuple Relational Calculus
Domain Relational Calculus
Pure languages form underlying basis of query languages that
people use.
Silberschatz, Korth and Sudarshan 3.3 Database System Concepts
Relational Algebra
Procedural language
Six basic operators
select
project
union
set difference
Cartesian product
rename
The operators take two or more relations as inputs and give a
new relation as a result.
Silberschatz, Korth and Sudarshan 3.4 Database System Concepts
continue..
The algebra operations thus produce new relations
These can be further manipulated using operations of the
same algebra
A sequence of relational algebra operations forms a relational
algebra expression
The result of a relational algebra expression is also a relation
that represents the result of a database query (or retrieval
request)

Silberschatz, Korth and Sudarshan 3.5 Database System Concepts
contd..
SELECT Operation Properties
The SELECT operation <selection condition>(R) produces a
relation S that has the same schema (same attributes) as R
SELECT is commutative:
<condition1>( < condition2> (R)) = <condition2> ( <
condition1> (R))
Because of commutativity property, a cascade (sequence) of
SELECT operations may be applied in any order:
<cond1>(<cond2> (<cond3> (R)) = <cond2> (<cond3>
(<cond1> ( R)))
A cascade of SELECT operations may be replaced by a single
selection with a conjunction of all the conditions:
<cond1>(< cond2> (<cond3>(R)) = <cond1> AND < cond2>
AND < cond3>(R)))
The number of tuples in the result of a SELECT is less than (or
equal to) the number of tuples in the input relation R


Silberschatz, Korth and Sudarshan 3.6 Database System Concepts
Relational Algebra Overview
Relational Algebra consists of several groups of operations
1. Unary Relational Operations
SELECT (symbol: (sigma))
PROJECT (symbol: (pi))
RENAME (symbol: (rho))
2.Relational Algebra Operations From Set Theory
UNION ( ), INTERSECTION ( ), DIFFERENCE (or MINUS, )
CARTESIAN PRODUCT ( x )
3.Binary Relational Operations
JOIN (several variations of JOIN exist)
DIVISION
4.Additional Relational Operations
OUTER JOINS, OUTER UNION
AGGREGATE FUNCTIONS (These compute summary of
information: for example, SUM, COUNT, AVG, MIN, MAX)

Silberschatz, Korth and Sudarshan 3.7 Database System Concepts
Database state for a Company

Silberschatz, Korth and Sudarshan 3.8 Database System Concepts
Silberschatz, Korth and Sudarshan 3.9 Database System Concepts
Unary Relational Operations: SELECT
The SELECT operation (denoted by (sigma)) is used to select
a subset of the tuples from a relation based on a selection
condition.
The selection condition acts as a filter
Keeps only those tuples that satisfy the qualifying condition
Tuples satisfying the condition are selected whereas the
other tuples are discarded (filtered out)
Examples:
Select the EMPLOYEE tuples whose department number is 4:
DNO = 4 (EMPLOYEE)
Select the employee tuples whose salary is greater than $30,000:
SALARY > 30,000 (EMPLOYEE)

Silberschatz, Korth and Sudarshan 3.10 Database System Concepts
continue...
In general, the select operation is denoted by
<selection condition>(R) where the symbol (sigma) is used
to denote the select operator
the selection condition is a Boolean (conditional) expression
specified on the attributes of relation R tuples that make the
condition true are selected
appear in the result of the operation
tuples that make the condition false are filtered out
discarded from the result of the operation

Silberschatz, Korth and Sudarshan 3.11 Database System Concepts
Another example










What is the result of the above operation?
Silberschatz, Korth and Sudarshan 3.12 Database System Concepts
Note: Schema of result identical to schema of (only) input
relation.
Silberschatz, Korth and Sudarshan 3.13 Database System Concepts
Unary Relational Operations: PROJECT
PROJECT Operation is denoted by (pi)
This operation keeps certain columns (attributes)from a
relation and discards the other columns.
PROJECT creates a vertical partitioning
The list of specified columns (attributes) is kept in each tuple
The other attributes in each tuple are discarded
Example: To list each employees first and last name and
salary, the following is used:
LNAME, FNAME,SALARY(EMPLOYEE)
Silberschatz, Korth and Sudarshan 3.14 Database System Concepts
The general form of the project operation is:
<attribute list>(R)
(pi) is the symbol used to represent the project operation
<attribute list> is the desired list of attributes from relation R.
The project operation removes any duplicate tuples
This is because the result of the project operation must be a set
of tuples

Silberschatz, Korth and Sudarshan 3.15 Database System Concepts
PROJECT Operation Properties

The number of tuples in the result of projection <list>(R) is
always less or equal to the number of tuples in R
If the list of attributes includes a key of R, then the number of
tuples in the result of PROJECT is equal to the number of
tuples in R
PROJECT is not commutative
<list1> ( <list2> (R) ) = <list1> (R) as long as <list2>
contains the attributes in <list1>

Silberschatz, Korth and Sudarshan 3.16 Database System Concepts
Example
Silberschatz, Korth and Sudarshan 3.17 Database System Concepts
Relational Algebra Expressions
We may want to apply several relational algebra operations
one after the other
Either we can write the operations as a single relational algebra
expression by nesting the operations, or
We can apply one operation at a time and create intermediate
result relations.
In the latter case, we must give names to the relations that
hold the intermediate results.

Silberschatz, Korth and Sudarshan 3.18 Database System Concepts
Single expression versus sequence of
relational operations (Example)
To retrieve the first name, last name, and salary of all
employees who work in department number 5, we must apply
a select and a project operation
We can write a single relational algebra expression as
follows:
FNAME, LNAME, SALARY( DNO=5(EMPLOYEE))
OR We can explicitly show the sequence of operations, giving
a name to each intermediate relation:

Silberschatz, Korth and Sudarshan 3.19 Database System Concepts
Unary Relational Operations: RENAME
The RENAME operator is denoted by (rho) In some cases,
we may want to rename the attributes of a relation or the
relation name or both
Useful when a query requires multiple operations
Necessary in some cases (see JOIN operation later)
The general RENAME operation can be expressed by any
of the following forms:
S (B1, B2, ..., Bn )(R) changes both: the relation name to S,
and the column (attribute) names to B1, B1, .....Bn
S(R) changes:
the relation name only to S
(B1, B2, ..., Bn )(R) changes:
the column (attribute) names only to B1, B1, .....Bn


Silberschatz, Korth and Sudarshan 3.20 Database System Concepts
Example for Remaning
For convenience, we also use a shorthand for renaming
attributes in an intermediate relation:
If we write:
RESULT FNAME, LNAME, SALARY (DEP5_EMPS)
RESULT will have the same attribute names as DEP5_EMPS
(same attributes as EMPLOYEE)
If we write:
RESULT (F, M, L, S, B, A, SX, SAL, SU, DNO)
RESULT (F.M.L.S.B,A,SX,SAL,SU, DNO)(DEP5_EMPS)
The 10 attributes of DEP5_EMPS are renamed to F, M, L, S,
B, A, SX, SAL, SU, DNO, respectively

Silberschatz, Korth and Sudarshan 3.21 Database System Concepts
Example contd..
Silberschatz, Korth and Sudarshan 3.22 Database System Concepts
Relational Algebra Operations from
Set Theory: UNION

UNION Operation
Binary operation, denoted by
The result of R S, is a relation that includes all tuples that
are either in R or in S or in both R and S
Duplicate tuples are eliminated
The two operand relations R and S must be type
compatible (or UNION compatible)
R and S must have same number of attributes
Each pair of corresponding attributes must be type
compatible (have same or compatible domains)

Silberschatz, Korth and Sudarshan 3.23 Database System Concepts
Example
To retrieve the social security numbers of all employees who
either work in department 5 (RESULT1 below) or directly
supervise an employee who works in department 5
(RESULT2 below)
We can use the UNION operation as follows:
DEP5_EMPS DNO=5 (EMPLOYEE)
RESULT1 SSN(DEP5_EMPS)
RESULT2(SSN) SUPERSSN(DEP5_EMPS)
RESULT RESULT1 RESULT2
The union operation produces the tuples that are in either
RESULT1 or RESULT2 or both

Silberschatz, Korth and Sudarshan 3.24 Database System Concepts
Example contd..
Silberschatz, Korth and Sudarshan 3.25 Database System Concepts
Type Compatibility
Type Compatibility of operands is required for the binary set
operation UNION , (also for INTERSECTION , and SET
DIFFERENCE , see next slides)
R1(A1, A2, ..., An) and R2(B1, B2, ..., Bn) are type
compatible if:
they have the same number of attributes, and
the domains of corresponding attributes are type
compatible
(i.e. dom(Ai)=dom(Bi) for i=1, 2, ..., n).
The resulting relation for R1R2 (also for R1R2, or R1R2,
see next slides) has the same attribute names as the first
operand relation R1 (by convention)

Silberschatz, Korth and Sudarshan 3.26 Database System Concepts
Relational Algebra Operations from Set
Theory: INTERSECTION

INTERSECTION is denoted by
The result of the operation R S, is a relation that includes all
tuples that are in both R and S
The attribute names in the result will be the same as the attribute
names in R
The two operand relations R and S must be type compatible

Silberschatz, Korth and Sudarshan 3.27 Database System Concepts
Relational Algebra Operations from Set
Theory: SET DIFFERENCE (cont.)

SET DIFFERENCE (also called MINUS orEXCEPT) is
denoted by
The result of R S, is a relation that includes all tuples that
are in R but not in S
The attribute names in the result will be the same as the
attribute names in R
The two operand relations R and S must be type compatible

Silberschatz, Korth and Sudarshan 3.28 Database System Concepts
Example to illustrate the result ofUNION,
INTERSECT, and DIFFERENCE

You might also like