0% found this document useful (0 votes)
33 views41 pages

DB BRT Chapter 6 2015

This document discusses relational query languages and physical database design. It covers topics like relational algebra, relational calculus, join operations, and the steps involved in physical database design. The document provides detailed explanations and examples of relational operations and query languages.

Uploaded by

yonasante2121
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views41 pages

DB BRT Chapter 6 2015

This document discusses relational query languages and physical database design. It covers topics like relational algebra, relational calculus, join operations, and the steps involved in physical database design. The document provides detailed explanations and examples of relational operations and query languages.

Uploaded by

yonasante2121
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 41

Chapter 6

Relational Query Languages


Introduction QLs
Query languages: Allow manipulation and
retrieval of data from a database.
◦ „„QLs support easy, efficient access to large data
sets.
„Relational model supports simple, powerful
query languages.
Bases for relational query languages
◦ Relational Algebra(procedural ):-how and what
◦ Relational Calculus( non-procedural )-what ?
Both are non-user friendly languages.
◦ basis for other, higher-level data manipulation
languages for relational databases.
Relational algebra
 Basic operations that could be applied on relations on a
database based on the requirement.
 „Selection ( σ ) Selects a subset of rows from a relation.
 „Projection ( π ) Deletes unwanted columns from a
relation.
 „Renaming: assigning intermediate relation for a single
operation
 „Cross-Product (x ) Allows us to combine two relations.
 „Set-Difference ( - ) Tuples in relation1, but not in
relation2.
 Union (∪ ) Tuples in relation1 or in relation2.
 Intersection (∩) Tuples in relation1 and in relation2
 Join ( ) Tuples joined from two relations based on a
condition
Cont…
Example:Table1

Sample table used to show different kinds


of relational operations.

The relation contains information about


employees, IT skills they have and the
school where they attend each skill
Employee table
Selection

Selects subset of rows in a relation that satisfy


selection condition.
◦ „unary operator (it is applied to a single relation)

 Thisquery will extract every tuple from a relation called


Employee with all the attributes where the SkillType attribute
with a value of “Database”.
Cont…

The resulting relation will be the following.


• If the query is
all employees with a SkillType “Database” and
School is “Bit”
the relational algebra operation and
the resulting relation will be
Projection

 Selects certain attributes while discarding the other from the


base relation.
Cont…

If we want to have the


◦ Name, Skill, and Skill Level of an employee
with
◦ Skill SQL and SkillLevel greater than 5 the
query will be:
Rename Operation
We may want to apply several relational algebra
operations one after the other.
The query could be written in two different forms:

1. Write the operations as a single relational


algebra expression by nesting the operations.
2. 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 Rename Operation
Cont..
 If we want to have the
◦ Name, Skill, and Skill Level of an employee with
◦ Salary greater than1500 and working for department 5, two
alternatives to write the query:
 Using an intermediate relation by the Rename Operation:

 Then Result will be equivalent with the relation we get


using the first alternative.
UNION Operation

The result of this operation, denoted by R U S,


◦ All tuples that are either in R or in S or in both R and S.
◦ Duplicate tuples are eliminated.
◦ The two operands must be “type compatible”.
◦ The same number of attributes
Cont..
Consider table A and B

The result of A U B looks


Cont…
The resulting relation for;
◦ R1 ∪ R2, R1 ∩ R2, or R1-R2 has the same
attribute names as the first operand relation R1
(by convention).

INTERSECTION Operation
The result of this operation, denoted by R ∩ S,
◦ All tuples that are in both R and S.
◦ The two operands must be "type compatible"
Cont..
By considering table A and B,

The result of A intersection B is


Cont…
Set Difference (or MINUS) Operation

The result of this operation, denoted by R - S,


◦ all tuples that are in R but not in S.
◦ The two operands must be "type compatible”.
Cont..
By considering table A and B,

The result of A-B


Cont…
Some Properties of the Set Operators (∩ , ∪ , - )

 both union and intersection are commutative; that is


◦ R ∪ S = S ∪ R, and R ∩ S = S ∩ R
 Both union and intersection can be treated as n-nary
operations; that is
◦ R ∪ (S ∪ T) = (R ∪ S) ∪ T, and (R ∩ S) ∩ T = R ∩ (S ∩ T)
 The minus operation is not commutative; that is, in general
◦ R-S≠S–R
CARTESIAN (cross product) Operation
Combine tuples from two relations.
◦ Every tuple in Relation1(R) one will be related with
every other tuple in Relation2 (S).

 Ingeneral, the result of R(A1, A2, . . ., An) x S(B1,B2, . . .,


Bm) is a relation Q with degree n + m attributes Q(A1,
A2, . . ., An, B1, B2, . . ., Bm), in that order.

◦ Where R has n attributes and S has m attributes. Then


Q( | R x S | )will haves(n+m) attributes
◦ Hence, if R has n tuples, and S has m tuples,
 then | R x S | will have n* m tuples.
Cont…
 The two operands do NOT have to be "type compatible”

 Then Employee X Dept will be of the form:


Cont..
Then to extract employees ID, Fname,
Lname, DepName of managers of the
departments,
◦ The algebra query and the resulting relation will
be.
JOIN OPERATION
JOIN Operation is denoted by a
symbol .
Important for any RDB with more than a
single relation.
allows us to process relationships among
relations
Thus in JOIN operation, the Cartesian
Operation and the Selection Operations
are used together.
Cont…
The general form of a join operation on two
relations
R(A1, A2,. . ., An) and S(B1, B2, . . ., Bm) is:

Where R and S can be any relations that result


from general relational algebra expressions.
Since JOIN function is in two relation, it is a Binary
operation.
Cont..

Example:
◦ Thus in the above example we want to extract
employee information about managers of the
departments, the algebra query using the JOIN
operation will be.
NATURAL JOIN Operation
requires the two join attributes, have the
same name in both relations.
If this is not the case, a renaming
operation on the attributes is applied first.
OUTER JOIN Operation

Outerjoin :-non matching tuples from one of


the Relations are also included in the result

Left Outer join :-non matching tuples from


the left Relation are also included in the result

Right Outer join :-non matching tuples from


the right Relation are also included in the
result
SEMIJOIN Operation
Result only contains the columns from
one of the joined tables.
Relational Calculus

A relational calculus expression


creates a new relation, which is
specified in terms of variables that
range over rows or over columns of
the stored relations
Tuple-oriented Relational Calculus
 Used for selecting tuple that satisfy the given condition
 If E is a tuple that ranges over a relation employee, then
it is represented as EMPLOYEE(E) i.e. Range of E is
EMPLOYEE

 Then to extract all tuples that satisfy a certain condition,


we will represent as all tuples E such that COND(E) is
evaluated to be true.

 The predicates can be connected using the Boolean


operators:
Cont…
Example (Tuple Relational Calculus)
Extract all employees whose skill level is
greater than or equal to 8
{E | Employee(E) ∧ E.SkillLevel >= 8}
Cont…
To find only the EmpId, FName, LName, Skill
and the School where employees with skill level
greater than or equal to 8, the tuple based
relational calculus expression will be:

{E.EmpId, E.FName, E.LName, E.Skill, E.School |


Employee(E) ∧ E.SkillLevel >= 8}
Quantifiers in Relation Calculus
To tell how many instances the predicate
applies to, we can use the two quantifiers in
the predicate logic.
One relational calculus expressed using
Existential Quantifier can also be
expressed using Universal Quantifier.
Existential quantifier ∃ (‘there exists’)
Existential quantifier used in saying that
must be true for at least one instance, such
as:
An employee with skill level greater than or
equal to 8 will be:
{E | Employee(E) ∧ (∃E)(E.SkillLevel >= 8)}

This means, there exist at least one tuple of


the relation employee where the value for
the SkillLevel is greater than or equal to 8
Universal quantifier ∀ (‘for all’)
Universal quantifier is used in statements
about every instance, such as:
An employee with skill level greater than
or equal to 8 will be:
{E | Employee(E) ∧ (∀E)(E.SkillLevel >= 8)}
◦ This means, for all tuples of relation employee
where value for the SkillLevel attribute is
greater than or equal to 8.
Chapter 5
Physical Database Design
Physical database design
ƒProduces a description of the
implementation of the DB on secondary
storage.

Itdescribes the base relations, file


organization, and indexes.

37
Steps in physical database design
1. Translate logical data model for target DBMS
ƒ To determine the file organizations and
access methods;
◦ i.e. the way in which relations and tuples will be
held on secondary storage
ƒDesign enterprise constraints for target
DBMS
1.1. Design base relation
1.2. Design representation of derived data
1.3. Design enterprise constraint
38
Cont…
2. Design physical representation
2.1 Analyze transactions
◦ To understand the functionality of the
transactions that will run on the database and to
analyze the important transactions
2.2 Choose file organization
◦ To determine an efficient file organization for
each base relation
2.3 Choose indexes
2.4 Estimate disk space and system requirement
◦ To estimate the amount of disk space that will be
required by the database 39
Cont…
3. Design user view
 To design the user views that were identified in the
conceptual database design methodology
4. Design security mechanisms
5. Consider controlled redundancy
 To determine whether introducing redundancy in a
controlled manner by relaxing the normalization rules
will improve the performance of the system.
6. Monitor and adjust the operational system
Design access rules
 To design the access rules to the base relations and
user views
40
End

You might also like