Upcoming SlideShare
×

# Relational algebr

559 views

Published on

It include the topic Relational algebra, which is very useful for the beginners.

0 Likes
Statistics
Notes
• Full Name
Comment goes here.

Are you sure you want to Yes No
• Be the first to comment

• Be the first to like this

Views
Total views
559
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
21
0
Likes
0
Embeds 0
No embeds

No notes for slide

### Relational algebr

1. 1. •Two formal language for the relational model
2. 2. • 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
3. 3. No commercial RDBMS in use today provides an interface for the relational queries. •Relational algebra operations can be divided into UNION INTERSECTION SET DIFFERENCE CARTESIAN PRODUCT SELECT PROJECT JOIN etc.
4. 4. :Operate on a single relation
5. 5. It select certain rows Syntax : <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> { =,<,>,<=,>=,!= }
6. 6. Lets try. . . Ex : (DNO=4 ) (EMPLOYEE) Ex : (SALARY>25000) (EMPLOYEE)
7. 7. Clauses can be connected by the Boolean operators and, or ,not to from a general selection condition. (DNO=4 AND SALARY>25000) OR (DNO=5 AND SALARY>30000) Answer????? (EMPLOYEE)
8. 8. SELECT operation is commutative : <cond1> ( <cond2> (R)) = <cond2> ( <cond1> Cascade of SELECT operation: <cond1> ( <cond2> (… ( <condn> (R)). . . )) = ( <cond1> AND <cond2> AND . . . AND <condn> (R) (R))
9. 9. It select certain columns Syntax : <attribute list > (R) Duplicate elimination : it removes any duplicate tuples , and we get a valid relation .
10. 10. What is the resultant table ??? • • SEX, SALARY(EMPLOYEE) ,Lname,Fname,SALARY(EMPLOYEE)
11. 11. Duplicate elimination I WANT ANSWERS. . NOT QUESTIONS. FNAME, LNAME, SALARY( DNO=5(EMPLOYEE))
12. 12. 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. FNAME, LNAME, SALARY( DNO=5(EMPLOYEE)) Can replace with DEPCS2  RESULT  DNO=5(EMPLOYEE) FNAME, LNAME, SALARY (DEPCS2)
13. 13. Renaming of attribute TEMP  DNO=5(EMPLOYEE) R(FIRSTNAME,LASTNAME,SALARY) FNAME, LNAME, SALARY (TEMP)
14. 14. A formal RENAME (rho) operations: • rename either relation name, attribute name or both s (R) (B1,B2,…Bn) S: new table name; Bn: new attribute name (R) s(B1,B2,…Bn) (R)
15. 15. :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
16. 16. Example: Union compatible • same degree • corresponding pair have same number
17. 17. Q. Retrieve the social security Number of all employees who either work in department 5 or directly supervise an employee who works department 5.
18. 18. •UNION and INTERSECTION are commutative but SET DIFFERENCE is not. R S =R S – (R-S )-(S-R)
19. 19. • 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.
20. 20. EMP_ID DESIGNATION SALARY 101 PROFESSOR 1.25000 102 ASSOCIATE PROF 90000 103 ASSISTANT PROF 40000 TAB1 E_ID F_NAME M_NA ME L_NAME AGE 102 SURESH KUMAR S 43 103 SUMI M MOL 23 101 SHREELEKSHMI R S 40 FIND salary ,name AND designation OF EACH EMPLOYEE?????
21. 21. DESIGNATION SALAR Y EMP_ID E_ID F_NAME M_NAME L_NAME AGE PROFESSOR 1.2500 0 101 102 SURESH KUMAR S 43 PROFESSOR 1.2500 0 101 103 SUMI M MOL 23 PROFESSOR 1.2500 0 101 101 SHREELEK R SHMI 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 SHREELEK R SHMI 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 SHREELEK R SHMI S 40
22. 22. DESIGNATI SALARY ON EMP_ID E_ID F_NAME PROFESSO R 101 101 SHREELEK R SHMI S 40 ASSOCIATE 90000 PROF 102 102 ANIL S GANESH 28 ASSISTANT PROF 103 103 SUMI M MOL 23 1.25000 40000 M_NAME L_NAME AGE 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
23. 23. Write relational algebra expression Retrieve a list of names of each employee’s dependents.
24. 24. • Combine related tuples from two relation into single tuples. • denoted by •R <JOIN CONDITION> S . • Consider previous example RESULT EMPLOYEE X DEPENDENT FINAL  SSN= ESSN (RESULT) The above can be replaced with FINAL EMPLOYEE SSN=ESSN DEPENDENT .
25. 25. Retrieve the name of manager of each department
26. 26. •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
27. 27. • The JOIN where the only comparison operator used is ‘ = ‘ • 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.
28. 28. Join attribute
29. 29. •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.
30. 30. •Denoted by
31. 31. R S
32. 32. 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 EMP_id NAME ADDRESS 2004 1002 1001 SURESH AAAA 2011 1002 1002 LALAN BBBB 2013 1002 1003 JC CCCC 2012 1002 1004 ANVAR DDDD Retrieve the name & address of employees who participated in all tour that ‘Suresh ‘sir attended .
33. 33. Retrieve the names of employees who work on all the project that ‘John Smith’ works on
34. 34. • allowing functions of attributes to be included in the projection •EX: • SALARY-DEDUCTION, SALARY * 0.25( DNO=5(EMPLOYEE))
35. 35. • SUM •AVERAGE •MAXIMUM •MINIMUM •COUNT Calligraphic G •Aggregate function operation using the symbol <grouping attribute> <function list> (R)
36. 36. R(DNO,NO_OF_EMPLOYEES,AVERAGE_SAL) COUNT ssn, AVERAGE salary(EMPLOYEE)) (EMPLOYEE) COUNT ssn, AVERAGE salary(EMPLOYEE) b. Dno c. (Dno COUNT ssn, AVERAGE salary
37. 37. • Used when we want to keep all the tuples in R • three main variation are • LEFT OUTER JOIN • RIGHT OUTER JOIN • FULL OUTER JOIN
38. 38. • Relation instructor1 name ID Sreejith Suresh Sreeja 10101 12121 15151 dept_name Comp. Sci. Applied PED • Relation teaches1 ID 10101 12121 76766 course_id CS-101 APL-101 BIO-101
39. 39. • Join instructor ID 10101 12121 teaches name Sreejith Suresh dept_name Comp. Sci. Applied course_id CS-101 APL-201
40. 40. name ID 10101 12121 15151 Sreejith Suresh Sreeja dept_name Comp. Sci. Applied PED ID 10101 12121 76766 CS-101 APL-101 BIO-101  Left Outer Join instructor ID 10101 12121 15151 teaches name Sreejith Suresh Sreeja course_id dept_name course_id Comp. Sci. Applied PED CS-101 APL-201 null
41. 41. name ID 10101 12121 15151 Sreejith Suresh Sreeja dept_name Comp. Sci. Applied PED ID 10101 12121 76766 course_id CS-101 APL-101 BIO-101  Right Outer Join instructor teaches ID 10101 12121 76766 name Sreejith Suresh null dept_name course_id Comp. Sci. Applied null CS-101 APL-201 BIO-101
42. 42. name ID dept_name Sreejith Suresh Sreeja 10101 12121 15151 Comp. Sci. Applied PED ID 10101 12121 76766 CS-101 APL-101 BIO-101  Full Outer Join instructor teaches ID 10101 12121 15151 76766 name Sreejith Suresh Sreeja null course_id dept_name course_id Comp. Sci. Applied PED null CS-101 APL-201 null BIO-101
43. 43. Additional • semi join • left semi join. • Right semi join: Rno Name AGE R_no Phone 1 Mahati 40 1 9865321245 2 Manjusha 42 3 9764316598 3 Meenu 38 5 9598946532
44. 44. Rno Name AGE 1 Mahati 40 3 Meenu 38 •left semi join. • Right semi join: R_no Phone 1 9865321245 3 9764316598