advanced database systems

40
Sekolah Tinggi Ilmu Statistik (STIS) Advanced Database Systems Sekolah Tinggi Ilmu Statistik (STIS)

Upload: cara

Post on 15-Feb-2016

38 views

Category:

Documents


0 download

DESCRIPTION

Sekolah Tinggi Ilmu Statistik (STIS). Advanced Database Systems. Relational Algebra. Lecture 6. Relational Algebra. Relational algebra operations work on one or more relations to define another relation without changing the original relations. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS)

Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS)

Page 2: Advanced Database Systems

2

Relational AlgebraLecture 6

Dr. Said Mirza Pahlevi, M.Eng.

Page 3: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS) 3

Relational AlgebraRelational algebra operations work on one or

more relations to define another relation without changing the original relations.

Both operands and results are relations, so output from one operation can become input to another operation.

Allows expressions to be nested, just as in arithmetic. This property is called closure.

Dr. Said Mirza Pahlevi, M.Eng.

Page 4: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS) 4

Relational AlgebraFive basic operations in relational algebra:

Selection, Projection, Cartesian product, Union, and Set Difference.

These perform most of the data retrieval operations needed.

Also have Join, Intersection, and Division operations, which can be expressed in terms of 5 basic operations.

Dr. Said Mirza Pahlevi, M.Eng.

Page 5: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS) 5

Relational Algebra Operations

Dr. Said Mirza Pahlevi, M.Eng.

Page 6: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS) 6

Relational Algebra Operations

Dr. Said Mirza Pahlevi, M.Eng.

Page 7: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS) 7

Selection (or Restriction)predicate(R)

Works on a single relation R and defines a relation that contains only those tuples (rows) of R that satisfy the specified condition (predicate).

Dr. Said Mirza Pahlevi, M.Eng.

Page 8: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS)Dr. Said Mirza Pahlevi, M.Eng. 8

Example - Selection (or Restriction)

List all staff with a salary greater than £10,000.

salary > 10000(Staff)

Condition in the WHERE clause

Page 9: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS) 9

Projectioncol1, . . . , coln(R)

Expression in the SELECT clause

Works on a single relation R and defines a relation that contains a vertical subset of R, extracting the values of specified attributes and eliminating duplicates.

Dr. Said Mirza Pahlevi, M.Eng.

Page 10: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS) 10

Example - ProjectionProduce a list of salaries for all staff, showing only

staffNo, fName, lName, and salary details.

staffNo, fName, lName, salary(Staff)

Dr. Said Mirza Pahlevi, M.Eng.

Page 11: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS) 11

UnionR S

Union of two relations R and S defines a relation that contains all the tuples of R, or S, or both R and S, duplicate tuples being eliminated.

R and S must be union-compatible, that is, the two relations must have the same set of attributes.

If R and S have I and J tuples, respectively, union is obtained by concatenating them into one relation with a maximum of (I + J) tuples.

Dr. Said Mirza Pahlevi, M.Eng.

Page 12: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS) 12

Example - UnionList all cities where there is either a branch office

or a property for rent.

city(Branch) city(PropertyForRent)

Dr. Said Mirza Pahlevi, M.Eng.

SELECT city FROM BranchUNIONSELECT city FROM PropertyForRent

Page 13: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS)Dr. Said Mirza Pahlevi, M.Eng. 13

Set DifferenceR – S

Defines a relation consisting of the tuples that are in relation R, but not in S.

R and S must be union-compatible.

Page 14: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS) 14

Example - Set DifferenceList all cities where there is a branch office but no

properties for rent.

city(Branch) – city(PropertyForRent)

Dr. Said Mirza Pahlevi, M.Eng.

SELECT city FROM BranchWHERE city NOT IN (SELECT city FROM PropertyForRent)

Page 15: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS) 15

IntersectionR S

Defines a relation consisting of the set of all tuples that are in both R and S.

R and S must be union-compatible.

Expressed using basic operations: R S = R – (R – S)

Dr. Said Mirza Pahlevi, M.Eng.

Page 16: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS) 16

Example - IntersectionList all cities where there is both a branch office

and at least one property for rent.

city(Branch) city(PropertyForRent)

Dr. Said Mirza Pahlevi, M.Eng.

SELECT city FROM BranchWHERE city IN (SELECT city FROM PropertyForRent)

Page 17: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS) 17

Cartesian ProductR X S

Defines a relation that is the concatenation of every tuple of relation R with every tuple of relation S.

Dr. Said Mirza Pahlevi, M.Eng.

Page 18: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS) 18

Example - Cartesian ProductList the names and comments of all clients who have viewed a property for rent.

(clientNo, fName, lName

(Client)) X (clientNo, propertyNo, comment (Viewing))

Dr. Said Mirza Pahlevi, M.Eng.

SELECT client.clientNo, fName, lName, viewing.clientNo, propertyNo, commentFROM Client, Viewing

SELECT client.clientNo, fName, lName, viewing.clientNo, propertyNo, commentFROM Client CROSS JOIN Viewing

Page 19: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS) 19

Example - Cartesian Product & SelectionUse selection operation to extract those tuples

where Client.clientNo = Viewing.clientNo. Client.clientNo = Viewing.clientNo((clientNo, fName, lName(Client)) (clientNo,

propertyNo, comment(Viewing)))

Cartesian product and Selection can be reduced to a single operation called a Join.

Dr. Said Mirza Pahlevi, M.Eng.

SELECT client.clientNo, fName, lName, viewing.clientNo, propertyNo, commentFROM Client, ViewingWHERE client.clientNo = viewing.clientNo

Page 20: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS) 20

Join OperationsJoin is a derivative of Cartesian product.

Equivalent to performing a Selection, using join predicate as selection formula, over Cartesian product of the two operand relations.

One of the most difficult operations to implement efficiently in an RDBMS and one reason why RDBMSs have intrinsic performance problems.

Dr. Said Mirza Pahlevi, M.Eng.

Page 21: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS) 21

Join OperationsVarious forms of join operation

Theta join Equijoin (a particular type of Theta join) Natural join Outer join Semijoin

Dr. Said Mirza Pahlevi, M.Eng.

Page 22: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS) 22

Theta join (-join)R FS

Defines a relation that contains tuples satisfying the predicate F from the Cartesian product of R and S.

The predicate F is of the form R.ai S.bi where may be one of the comparison operators (<, , >, , =, ).

Dr. Said Mirza Pahlevi, M.Eng.

Page 23: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS) 23

Theta join (-join)Can rewrite Theta join using basic Selection and

Cartesian product operations.

R FS = F(R S)

Degree of a Theta join is sum of degrees of the operand relations R and S.

If predicate F contains only equality (=), the term Equijoin is used.

Dr. Said Mirza Pahlevi, M.Eng.

Page 24: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS) 24

Example - Equijoin List the names and comments of all clients who

have viewed a property for rent.

(clientNo, fName, lName(Client)) Client.clientNo = Viewing.clientNo (clientNo,

propertyNo, comment(Viewing))

Dr. Said Mirza Pahlevi, M.Eng.

Page 25: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS) 25

Natural joinR S

An Equijoin of the two relations R and S over all common attributes x.

One occurrence of each common attribute is eliminated from the result.

Dr. Said Mirza Pahlevi, M.Eng.

Page 26: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS) 26

Example - Natural joinList the names and comments of all clients who

have viewed a property for rent.

(clientNo, fName, lName(Client)) (clientNo, propertyNo, comment(Viewing))

Dr. Said Mirza Pahlevi, M.Eng.

SELECT c.clientNo, fName, lName, propertyNoFROM Client c NATURAL JOIN Viewing v

SELECT c.clientNo, fName, lName, propertyNoFROM Client c JOIN Viewing v USING clientNo

Page 27: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS) 27

Outer joinTo display rows in the result that do not have

matching values in the join column, use Outer join.

R S (Left) outer join is join in which tuples from R that do not

have matching values in common columns of S are also included in result relation.

Dr. Said Mirza Pahlevi, M.Eng.

Page 28: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS) 28

Example - Left Outer joinProduce a status report on property viewings.

propertyNo, street, city(PropertyForRent) Viewing

Dr. Said Mirza Pahlevi, M.Eng.

SELECT propertyNo, street, cityFROM PropertyForRent p LEFT OUTER JOIN Viewing v ON p.propertyNo = v.propertyNo

Page 29: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS) 29

SemijoinR S

Defines a relation that contains the tuples of R that participate in the join of R with S.

Can rewrite Semijoin using Projection and Join:R   S = A(R FS),

A is the set of all attributes for R

Dr. Said Mirza Pahlevi, M.Eng.

F

F

Page 30: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS) 30

Example - SemijoinList complete details of all staff who work at the

branch in Glasgow.

Staff (city=‘Glasgow’(Branch))

Dr. Said Mirza Pahlevi, M.Eng.

Staff.branchNo=Branch.branchNo

SELECT s.* FROM Staff s JOIN Branch b ON s.branchNo=b.branchNoWHERE b.city = ‘Glasgow’

Page 31: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS) 31

DivisionR S

Defines a relation over the attributes C that consists of set of tuples from R that match combination of every tuple in S.

C is the set of attributes of R that are not attributes of S

Expressed using basic operations: T1 C(R) T2 C((S X T1) – R) T T1 – T2

Dr. Said Mirza Pahlevi, M.Eng.

Page 32: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS)

Example - DivisionIdentify all clients who have viewed all properties

with three rooms.(clientNo, propertyNo(Viewing)) (propertyNo(rooms = 3 (PropertyForRent)))

32Dr. Said Mirza Pahlevi, M.Eng.

S=R=

clientNo propertyNo

CR56 PG4

CR56 PG36

CR76 PG4

CR76 PG36

CR62 PG4

CR62 PG36

S X T1

clientNo

CR56

CR76

CR62

T1

Page 33: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS)

Rename OperatorS(B1, B2,…, Bn)(R)S(R)(B1, B2,…, Bn )(R)

S is a new relation name for RB1, B2,…, Bn are the new attribute names of

attributes R

Dr. Said Mirza Pahlevi, M.Eng. 33

Page 34: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS) 34

Aggregate OperationsAL(R)

Applies aggregate function list, AL, to R to define a relation over the aggregate list.

AL contains one or more (<aggregate_function>, <attribute>) pairs.

read as “Script F”

Main aggregate functions are: COUNT, SUM, AVG, MIN, and MAX.

Dr. Said Mirza Pahlevi, M.Eng.

Page 35: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS) 35

Example 1 – Aggregate Operations

How many properties cost more than £350 per month to rent?

R(myCount) COUNT propertyNo (σrent > 350 (PropertyForRent))

Page 36: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS) 36

Example 2 – Aggregate Operations

Find the minimum, maximum and average staff salary

R(myMin, myMax, myAverage) MIN salary, MAX salary, AVERAGE salary (Staff)

myMin myMax myAverage

9000 30000 17000

Page 37: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS) 37

Grouping Operation

GAAL(R)

Groups tuples of R by grouping attributes, GA, and then applies aggregate function list, AL, to define a new relation.

AL contains one or more (<aggregate_function>, <attribute>) pairs.

Resulting relation contains the grouping attributes, GA, along with results of each of the aggregate functions.

Dr. Said Mirza Pahlevi, M.Eng.

Page 38: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS) 38

Example – Grouping OperationFind the number of staff working in each branch and the sum of their salaries.

R(branchNo, myCount, mySum)

branchNoCOUNT staffNo, SUM salary (Staff)

SELECT branchNo, COUNT(staffNo) as myCount, SUM (salary) as mySumFROM StaffGROUP BY branchNo

Page 39: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS) 39

Page 40: Advanced Database Systems

Sekolah Tinggi Ilmu Statistik (STIS)

QuizConsider the following schema

works (personName, companyName, salary); lives (personName, street, city); locatedin (companyName, city); managers (personName, managerName); managerName refers to

personName.

Write relational algebra and SQL:1. Find the names of the persons who work for company ’FBC’2. List the names of the persons who work for company ’FBC’ along

with the cities they live in.3. Find the persons who work for company ’FBC’ with a salary of

more than 10000. List the names of these persons along with the streets and cities where they live.

4. Find the names of the persons who live and work in the same city.

40