Relational algebr
-
Upload
lbs-institute-of-technology-for-women -
Category
Education
-
view
295 -
download
3
description
Transcript of Relational algebr
•Two formal language for the relational model
(a)Relational Algebra
(b)Relational calculus
RELATIONAL ALGEBRA
• Basic set of operation for the relational model.
• These operation enable a user to specify basic retrieval requests.
• The result of a retrieval is a new relation, which can be further manipulated using operations of same algebra.
•it is important for several reasons: provides formal foundation for relational
model used as basis for implementing and
optimizing queries in RDMS
No commercial RDBMS in use today provides an interface for the relational queries.
•Relational algebra operations can be divided into
UNION INTERSECTION SET DIFFERENCECARTESIAN PRODUCT
SELECTPROJECTJOIN etc.
Unary relational operations
•SELECT : s•PROJECT: p
:Operate on a single relation
(a)SELECT : s
Syntax :
s <selection condition> (R)
<selection condition> is made up of number of clauses of the form
<attribute name > <comparison op> <attribute name> OR<attribute name > <comparison op> <constant value>
{ =,<,>,<=,>=,!= }
It select certain rows
Ex : s(DNO=4 ) (EMPLOYEE)
Ex : s(SALARY>25000) (EMPLOYEE)
Lets try. . .
Clauses can be connected by the Boolean operators and, or ,not to from a general selection condition.
s(DNO=4 AND SALARY>25000) OR (DNO=5 AND SALARY>30000) (EMPLOYEE)
Answer?????
SELECT operation is commutative :
s <cond1> ( s <cond2> (R)) = s <cond2> ( s <cond1> (R))
Cascade of SELECT operation:
s<cond1> ( s <cond2> (… ( s <condn> (R)). . . ))
=( s <cond1> AND <cond2> AND . . . AND <condn> (R)
(b)PROJECT :p
Syntax :
p <attribute list > (R)
It select certain columns
Duplicate elimination : it removes any duplicate tuples , and we get a valid relation .
•pSEX, SALARY(EMPLOYEE)•p,Lname,Fname,SALARY(EMPLOYEE)
What is the resultant table ???
Duplicate elimination
pFNAME, LNAME, SALARY(sDNO=5(EMPLOYEE))
I WANT ANSWERS. . NOT QUESTIONS.
Sequence of operations &
RENAME operation
We can write the operations as a single algebra expression by nesting the operation or we can apply one operation at a time and create intermediate result relations.
pFNAME, LNAME, SALARY(sDNO=5(EMPLOYEE))
Can replace with
DEPCS2 sDNO=5(EMPLOYEE)RESULT pFNAME, LNAME, SALARY (DEPCS2)
Renaming of attribute TEMP sDNO=5(EMPLOYEE)R(FIRSTNAME,LASTNAME,SALARY) pFNAME, LNAME, SALARY (TEMP)
A formal RENAME r(rho) operations:• rename either relation name, attribute name or both
r (B1,B2,…Bn) (R)r s (R)
r s(B1,B2,…Bn) (R)S: new table name;Bn: new attribute name
UNION ,INTERSECTION & SET DIFFERENCE
UNION
INTERSECTION
SET DIFFERENCE
: R S: Include all tuples:Duplicates are eliminated
: R S: include all tuples that are in both R & S
: R - S: include all tuples that are in R but not in S
Example:Union compatible• same degree• corresponding pair have same number
A BA B
A - B B - A
Q. Retrieve the social security Number of all employees who either work in department 5 or directly supervise an employee who works department 5.
•UNION and INTERSECTION are commutative but SET DIFFERENCE is not.
R S =R S – (R-S )-(S-R)
HELLOOOOOOO. .
CARTESIAN PRODUCT
• Also known as CROSS PRODUCT or CROSS JOIN• Denoted by X• syntax :
• tab1 X tab2• also binary set operations.• if A has m tuples and B has n tuples then A X B has m * n tuples .• Cartesian product followed by SELECT is used to identify and select related tuples from two relation.
EMP_ID DESIGNATION SALARY
101 PROFESSOR 1.25000
102 ASSOCIATE PROF 90000
103 ASSISTANT PROF 40000
E_ID F_NAME M_NAME
L_NAME AGE
102 SURESH KUMAR S 43
103 SUMI M MOL 23
101 SHREELEKSHMI R S 40
TAB2
TAB1
FIND salary ,name AND designation OF EACH EMPLOYEE?????
DESIGNATION SALARY
EMP_ID E_ID F_NAME M_NAME L_NAME AGE
PROFESSOR 1.25000
101 102 SURESH KUMAR S 43
PROFESSOR 1.25000
101 103 SUMI M MOL 23
PROFESSOR 1.25000
101 101 SHREELEKSHMI
R S 40
ASSOCIATE PROF
90000 102 102 SURESH KUMAR S 43
ASSOCIATE PROF
90000 102 103 SUMI M MOL 23
ASSOCIATE PROF
90000 102 101 SHREELEKSHMI
R S 40
ASSISTANT PROF
40000 103 102 SURESH KUMAR S 43
ASSISTANT PROF
40000 103 103 SUMI M MOL 23
ASSISTANT PROF
40000 103 101 SHREELEKSHMI
R S 40
DESIGNATION
SALARY EMP_ID E_ID F_NAME M_NAME L_NAME AGE
PROFESSOR
1.25000 101 101 SHREELEKSHMI
R S 40
ASSOCIATE PROF
90000 102 102 ANIL S GANESH 28
ASSISTANT PROF
40000 103 103 SUMI M MOL 23
SALARY F_NAME M_NAME L_NAME DESIGNATION
1.25000 RAMESH R VINOD PROFESSOR
90000 ANIL S GANESH ASSOCIATE PROF
40000 SUNIL A NARAYAN ASSISTANT PROF
Write relational algebra expression Retrieve a list of names of each employee’s dependents.
• Combine related tuples from two relation into single tuples.• denoted by • R <JOIN CONDITION> S .• Consider previous example
JOIN
RESULT EMPLOYEE X DEPENDENTFINAL sSSN= ESSN (RESULT)
The above can be replaced with
FINAL EMPLOYEE SSN=ESSN DEPENDENT .
Retrieve the name of manager of each department
• A general join condition is of the form <condition>AND<condition>AND. . . AND <condition>
Each condition of the form
Ai Biᶱ Comparison operator {=,!=,<,>,<=,>=}
•A JOIN operation with such a general join condition is called a THETA JOIN
Variations of JOIN
•EQUIJOIN , =•NATURAL JOIN , *
EQUIJOIN• The JOIN where the only comparison operator used is ‘ = ‘
NATURAL JOIN • It requires that two JOIN attributes have the same name in both relation .• if this is not the case then renaming operation done first.• This is basically an EQUIJOIN followed by removal of unnecessary attributes•Ex: DEPT_LOCS DEPARTMENT * DEPT_LOCATIONS.
Join attribute
•A JOIN operation used to combine data from multiple relations so that related information can be presented in a single table. This operations are also known as inner joins.
DIVISION •Denoted by
R S
YEAR TOUR_PART_EM_ID
2003 1001
2004 1001
2013 1001
2008 1004
2009 1003
2008 1003
2004 1004
2011 1004
2003 1004
2003 1002
2004 1002
2011 1002
2013 1002
2012 1002
EMP_id NAME ADDRESS
1001 SURESH AAAA
1002 LALAN BBBB
1003 JC CCCC
1004 ANVAR DDDD
Retrieve the name & address of employees who participated in all tour that ‘Suresh ‘sir attended .
faculty
tour
Retrieve the names of employees who work on all the project that ‘John Smith’ works on
Additional Relational operations
•GENERALIZED PROJECTION• allowing functions of attributes to be included in the projection•EX: •pSALARY-DEDUCTION, SALARY * 0.25(sDNO=5(EMPLOYEE))
•AGGREGATE FUNCTIONS & GROUPING
• SUM•AVERAGE •MAXIMUM•MINIMUM•COUNT
•Aggregate function operation using the symbol
<grouping attribute> <function list>(R)
Calligraphic G
.a r R(DNO,NO_OF_EMPLOYEES,AVERAGE_SAL) (Dno COUNT ssn, AVERAGE salary(EMPLOYEE))b. Dno COUNT ssn, AVERAGE salary(EMPLOYEE)c. COUNT ssn, AVERAGE salary(EMPLOYEE)
•OUTER JOIN
• Used when we want to keep all the tuples in R• three main variation are • LEFT OUTER JOIN• RIGHT OUTER JOIN• FULL OUTER JOIN
• Relation instructor1
• Relation teaches1ID course_id
101011212176766
CS-101APL-101BIO-101
Comp. Sci.Applied
PED
ID dept_name
101011212115151
name
SreejithSureshSreeja
• Join
instructor teachesID dept_name
1010112121
Comp. Sci.Applied
course_id
CS-101 APL-201
name
SreejithSuresh
Left Outer Join
instructor teaches
ID dept_name
101011212115151
Comp. Sci.Applied
PED
course_id
CS-101 APL-201 null
name
SreejithSureshSreeja
ID course_id
101011212176766
CS-101APL-101BIO-101
Comp. Sci.Applied
PED
ID dept_name
101011212115151
name
SreejithSureshSreeja
Right Outer Join
instructor teaches
ID dept_name
101011212176766
Comp. Sci.Applied
null
course_id
CS-101 APL-201 BIO-101
name
SreejithSureshnull
ID course_id
101011212176766
CS-101APL-101BIO-101
Comp. Sci.Applied
PED
ID dept_name
101011212115151
name
SreejithSureshSreeja
Full Outer Join
instructor teaches
ID dept_name
10101121211515176766
Comp. Sci.Applied
PED null
course_id
CS-101 APL-201 null BIO-101
name
SreejithSureshSreejanull
ID course_id
101011212176766
CS-101APL-101BIO-101
Comp. Sci.Applied
PED
ID dept_name
101011212115151
name
SreejithSureshSreeja
Additional• semi join• left semi join.• Right semi join:
Rno Name AGE
1 Mahati 40
2 Manjusha 42
3 Meenu 38
R_no Phone
1 9865321245
3 9764316598
5 9598946532
cs2 Tour_cs2
•left semi join.• Right semi join:
Rno Name AGE
1 Mahati 40
3 Meenu 38
R_no Phone
1 9865321245
3 9764316598
Thank you