Presentation is loading. Please wait.

Presentation is loading. Please wait.

The Relational Algebra Database System-dww. Slide 6a-2 Database System-dww Chapter Outline Fundamental Operator Deliverable & Additional Operator.

Similar presentations


Presentation on theme: "The Relational Algebra Database System-dww. Slide 6a-2 Database System-dww Chapter Outline Fundamental Operator Deliverable & Additional Operator."— Presentation transcript:

1 The Relational Algebra Database System-dww

2 Slide 6a-2 Database System-dww Chapter Outline Fundamental Operator Deliverable & Additional Operator

3 Slide 6a-3 Database System-dww n Basic Relational Operations: l Unary Operations à SELECT  à PROJECT  or . l Binary Operations à Set operations: F UNION  F INTERSECTION  F DIFFERENCE – à CARTESIAN PRODUCT  à JOIN operations  What is Relational Algebra? Relational Algebra is a Procedural Paradigm You Need to Tell What/How to Construct the Result Consists of a Set of Operators Which, When Applied to Relations, Yield Relations (Closed Algebra)

4 Slide 6a-4 Database System-dww Relational Algebra R  Sunion R  Sintersection R \ Sset difference R  SCartesian product  A1, A2,..., An (R)projection  F (R)selection R Snatural join R   Stheta-join R  Sdivision  [ A 1 B 1,.., An Bn ]rename

5 Slide 6a-5 Database System-dww Selection Selects the Set of Tuples (Rows) From a Relation, Which Satisfy a Selection Condition General Form  selection condition> (R) R is a Relation Selection condition is a Boolean Expression on the Attributes of R Resulting Relation Has the Same Schema as R Select Finds and Retrieves All Relevant Rows (Tuples) of Table/Relation R which Includes ALL of its Columns (Attributes)

6 Slide 6a-6 Database System-dww ENOENAMETITLE E1J. DoeElect. Eng E6L. ChuElect. Eng.  TITLE='Elect. Eng.' (EMP) ENOENAMETITLE E1J. DoeElect. Eng. E2M. SmithSyst. Anal. E3A. LeeMech. Eng. E4J. MillerProgrammer E5B. CaseySyst. Anal. E6L. ChuElect. Eng. E7R. DavisMech. Eng. E8J. JonesSyst. Anal. EMP  TITLE='Elect. Eng.’ OR TITLE=‘Mech.Eng’ (EMP) Selection Example

7 Slide 6a-7 Database System-dww Another Selection Example A S C null W B null

8 Slide 6a-8 Database System-dww A SELECT Condition is a Boolean Expression Form F 1  F 2  F q (Q>=1), Where F i (I=1,…,q) are Atomic Boolean Expressions of the Form a  c or a  b, a, b are Attributes of R and c is a Constant. The Operator  is one of the Arithmetic Comparison Operators :, =, <>  The Operator  is one of the Logical Operators: , , ¬ Nesting: ( ) Selection Condition

9 Slide 6a-9 Database System-dww Select certain Columns (Attributes) Specified in an Attribute List X From a Relation R General Form  (R) R is a Relation Attribute-list is a Subset of the Attributes of R Over Which the Projection is Performed Project Retrieves Specified Columns of Table/Relation R which Includes ALL of its Rows (Tuples) Projection

10 Slide 6a-10 Database System-dww Projection Example  PNO,BUDGET (PROJ) PNOBUDGET P P P P P PROJ PNOBUDGET P P P P PNAME P Instrumentation Database Develop. CAD/CAM Maintenance CAD/CAM

11 Slide 6a-11 Database System-dww Other Projection Examples

12 Slide 6a-12 Database System-dww Relational Algebra Expression Several Operations can be Combined to form a Relational Algebra Expression (query) Example: Retrieve all Customers over age 60? Method 1:  CNAME, ADDRESS, AGE (  AGE>60 (CUSTOMER) ) Method 2: Senior-CUST(C#, Addr, Age) =  CNAME, ADDRESS, AGE (  AGE>60 (CUSTOMER) ) Method 3:  CNAME, ADDRESS, AGE (C) where  C  AGE>60 (CUSTOMER)

13 Slide 6a-13 Database System-dww ENOENAMETITLE E1J. DoeElect. Eng. E2M. SmithSyst. Anal. E3A. LeeMech. Eng. E4J. MillerProgrammer E5B. CaseySyst. Anal. E6L. ChuElect. Eng. E7R. DavisMech. Eng. E8J. JonesSyst. Anal. EMP  TITLE (PROJ) Elect.Eng Syst.Anal Mech.Eng Programmer TITLE Characteristics of Projection The PROJECT Operation Eliminates Duplicate Tuples in the Resulting Relation Why? Projection Must Maintain a Mathematical Set (No Duplicate Elements)

14 Slide 6a-14 Database System-dww Selection with Projection Example

15 Slide 6a-15 Database System-dww Renaming The RENAME operator gives a new schema to a relation. R1 := RENAME R1(A1,…,An) (R2) makes R1 be a relation with attributes A1,…,An and the same tuples as R2. Simplified notation: R1(A1,…,An) := R2. Other use (  ) notation R2  R1(A1,…,An)

16 Slide 6a-16 Database System-dww Sequences of Assignments Create temporary relation names. Renaming can be implied by giving relations a list of attributes. Example: R3 := R1 JOIN C R2 can be written: R4 := R1 * R2 R3 := SELECT C (R4) OR R4  R1 * R2 R3  SELECT C (R4)

17 Slide 6a-17 Database System-dww General Form R  S where R, S are Relations Result contains Tuples from both R and S Duplications are Removed The two Operands R, S should be union-compatible Example: “find students registered for course C1 or C3”  s# (  CNO=‘C1’ (S-C))  s# (  CNO=‘C3’ (S-C)) Union

18 Slide 6a-18 Database System-dww Union Compatibility Two Relations R 1 (A 1, A 2,..., A n ) and R 2 (B 1, B 2,..., B n ) are said Union-compatible If and Only If They Have The Same Number of Attributes The Domains of Corresponding Attributes are Compatible, i.e., Dom(A i )=dom(B i ) for i=1, 2,..., N Names Do Not Have to be Same! For Relational Union and Difference Operations, the Operand Relations Must Be Union Compatible The Resulting Relation for Relational Set Operations Has the Same Attribute Names as the First Operand Relation R 1 (by Convention)

19 Slide 6a-19 Database System-dww General Form R – S where R and S are Relations Result Contains all tuples that are in R, but not in S. R – S <> S – R Again, there Must be Compatibility Example “Find the students who registered course C1 but not C3”   s# (  CNO=‘C1’ (S-C)) –   s# (  CNO=‘C3’ (S-C)) Set Difference

20 Slide 6a-20 Database System-dww General Form R  S where R and S are Relations Result Contains all Tuples that are in R and S. R  S = R – (R – S) Again, there Must be Compatibility Example “find the students who registered for both C1 and C3”   s# (  CNO=‘C1’ (S-C))    s# (  CNO=‘C3’ (S-C)) Set Intersection

21 Slide 6a-21 Database System-dww Union, Difference, Intersection Examples What are these Other Three Result Tables? STUDENT - INSTRUCTOR STUDENT  INSTRUCTOR INSTRUCTOR - STUDENT

22 Slide 6a-22 Database System-dww Given Relations R of Degree k 1 and Cardinality card 1 S of Degree k 2 and Cardinality card 2 Cartesian Product R  S is a Relation of Degree (k 1 + k 2 ) and Consists of Tuples of Degree (k 1 + k 2 ) where each Tuple is a Concatenation of one Tuple of R with one Tuple of S Cardinality of the Result of the Cartesian Product R  S is card 1 * card 2 What is One Problem with Cartesian Product w.r.t. the Result Set? Cartesian Product

23 Slide 6a-23 Database System-dww Cartesian Product: Example ABC a1 a2 a3 b1 b1 b4 c3 c5 c7 F E f1 f5 e1 e2 ABCE a1 a2 a3 b1 b4 c3 c5 c7 e1 e2 e1 e2 e1 e2 RS R S F f1 f5 f1 f5 f1 f5 

24 Slide 6a-24 Database System-dww Given R(A1, …,An) and S(B1,…,Bm), the result of a Cartesian product R  S is a relation of schema R’(A1, …, An, B1, …, Bm). Example “Get a list containing (S#, C#) for all students who live in Storrs but are not registered for the database course” Cartesian Product (  S# (  city=‘Storrs’ ( STUDENT ))    C# (  CNAME=‘Database’ ( COURSE )))  –  S#, C# ( S-C )

25 Slide 6a-25 Database System-dww Cartesian Product Example ENOENAMETITLE E1J. DoeElect. Eng E2M. SmithSyst. Anal. E3A. LeeMech. Eng. E4J. MillerProgrammer E5B. CaseySyst. Anal. E6L. ChuElect. Eng. E7R. DavisMech. Eng. E8J. Jones Syst. Anal. EMP TITLESAL Elect. Eng Syst. Anal Mech. Eng Programmer24000

26 Slide 6a-26 Database System-dww The Join Operation Used to combine related tuples from two relation into single tuples with some condition Cartesian product all combination of tuples are included in the result, meanwhile in the join operation, only combination of tuples satisfying the join condition appear in the result

27 Slide 6a-27 Database System-dww General Form R  S where R, S are Relations,  is a Boolean Expression, called a Join Condition. A Derivative of Cartesian Product R  S =   (R  S) R(A 1, A 2,..., A m, B 1, B 2,..., B n ) is the Resulting Schema of a  -Join over R 1 and R 2 : R 1 (A 1, A 2,..., A m )  R 2 (B 1, B 2,..., B n ) Theta Join (  -Join)

28 Slide 6a-28 Database System-dww A  -Join Condition is a Boolean Expression of the form F 1  1  F 2  2  n-1  F q (q>=1), where F i (i=1,…,q) are Atomic Boolean Expressions of the form A i  B j, A i, B j are Attributes of R 1 and R 2 Respectively  is one of the Algorithmic Comparison Operators =, <>, >, =, <= The Operator  i ( i=1,…,n-1 ) is Either a Logical AND operator  or a logical OR operator   -Join Condition

29 Slide 6a-29 Database System-dww  -Join Example ENOENAMETITLE E1J. DoeElect. Eng E2M. SmithSyst. Anal. E3A. LeeMech. Eng. E4J. MillerProgrammer E5B. CaseySyst. Anal. E6L. ChuElect. Eng. E7R. DavisMech. Eng. E8J. JonesSyst. Anal. EMP TITLESAL Elect. Eng Syst. Anal Mech. Eng Programmer24000 ENOENAME E1J. Doe M. SmithE2 E3A. Lee E4J. Miller E5B. Casey E6L. Chu E7R. Davis E8J. Jones TITLE Elect. Eng. Analyst Mech. Eng. Programmer Syst. Anal. Elect. Eng. Mech. Eng. Syst. Anal. SAL EMP E.TITLE=SAL.TITLE SAL SAL.TITLE Elect. Eng. Analyst Mech. Eng. Programmer Syst. Anal. Elect. Eng. Mech. Eng. Syst. Anal.

30 Slide 6a-30 Database System-dww Other Types of Join Equi-join (EQUIJOIN) The  Expression only Contains one or more Equality Comparisons Involving Attributes from R 1 and R 2 Natural Join Denoted as R S Special Equi-join of Two Relations R and S Over a Set of Attributes Common to both R and S By Common, it means that each Join Attribute in A has not only Compatible Domains but also the Same Name in both Relations R and S

31 Slide 6a-31 Database System-dww Examples ABC a1 a2 a3 b1 b1 b4 c3 c5 c7 BE b1 b5 e1 e2 RS R R.B=S.B S AR.B a1 a2 b1 CE c3 c5 e1 S.B b1 EQUIJOIN AR.BCE a1 a2 b1 c3 c5 e1 R S Natural Join

32 Slide 6a-32 Database System-dww Natural Join Natural Join Combines Relations on Attributes with the Same Names STUDENT(S#, SN, CITY, ) SC(S#, C#, G) Example Query 1: “list of students with complete course grade info” STUDENT SC

33 Slide 6a-33 Database System-dww Natural Join All Natural Joins can be Expressed by a Combination of Primitive Operators Example Query 2: “print all students info (courses taken and grades)”

34 Slide 6a-34 Database System-dww Natural Join Example ENOENAMETITLE E1J. DoeElect. Eng E2M. SmithSyst. Anal. E3A. LeeMech. Eng. E4J. MillerProgrammer E5B. CaseySyst. Anal. E6L. ChuElect. Eng. E7R. DavisMech. Eng. E8J. JonesSyst. Anal. EMP TITLESAL Elect. Eng Syst. Anal Mech. Eng Programmer60000 ENOENAMEE.TITLE SAL E1J. DoeElect. Eng E2M. SmithSyst. Anal E3A. LeeMech. Eng. E8J. JonesSyst. Anal. EMP SAL E4J. MillerProgrammer E5B.CaseySyst.Anal E6L. ChuElect.Eng E7R.DavisMech.Eng

35 Slide 6a-35 Database System-dww

36 Slide 6a-36 Database System-dww Another Join Example

37 Slide 6a-37 Database System-dww Given Relations R(T,U) of degree r S(U) of degree s The Division of R by S, R ÷ S Results is a Relation of Degree (r  s) Consists of all (r  s)-tuples t such that for all s-tuples u in S, the tuple tu is in R. Quotient (Division)

38 Slide 6a-38 Database System-dww Division Example ENO E3 R ÷ S ENOPNOPNAME E1P1Instrumentation BUDGET E2P1Instrumentation E2P2Database Develop E3P1Instrumentation E3P4Maintenance E4P2Instrumentation E5P2Instrumentation E6P4 E7P3CAD/CAM E8P3CAD/CAM R Maintenance S PNO PNAME BUDGET P1 Instrumentation P4Maintenance Find the employees who work for both project P1 and project P4?

39 Slide 6a-39 Database System-dww

40 Slide 6a-40 Database System-dww

41 Slide 6a-41 Database System-dww Division: Another Example “list the S# of students that have taken all of the courses listed in SC”  S# (SC   C# (SC)) “list the S# of students who have taken all of the courses taught by instructor Smith”  S# (SC   C# (  Instructor=‘Smith’ (SC)))

42 Slide 6a-42 Database System-dww Relational Algebra Fundamental Operators Derivable from the fundamental operators Selection Projection Union Difference Cartesian Product n Intersection n Join, Equi-join, Natural Join n Quotient (Division)

43 Slide 6a-43 Database System-dww A Set of Relational Algebra Operations Is Called a Complete Set, If and Only If Any Relational Algebra Operator in the Set Cannot be Derived in Terms of a Sequence of Others in Set Any Relational Algebra Operator Not in the Set Can Be Derived in Terms of a Sequence of Only the Operators in the Set All Relational Algebra Operations

44 Slide 6a-44 Database System-dww Important Concepts: ¶ The Set of Algebra Operations { , , , –,  } is a Complete Set of Relational Algebra Operations · Any Query Language Equivalent to These Five Operations is Called Relationally Complete All Relational Algebra Operations

45 Slide 6a-45 Database System-dww Additional Relational Operations Aggregate Functions and Grouping A type of request that cannot be expressed in the basic relational algebra is to specify mathematical aggregate functions on collections of values from the database. Examples of such functions include retrieving the average or total salary of all employees or the total number of employee tuples. These functions are used in simple statistical queries that summarize information from the database tuples. Common functions applied to collections of numeric values include SUM, AVERAGE, MAXIMUM, and MINIMUM. The COUNT function is used for counting tuples or values.

46 Slide 6a-46 Database System-dww Additional Relational Operations (cont.)

47 Slide 6a-47 Database System-dww Use of the Functional operator ℱ ℱ MAX Salary (Employee) retrieves the maximum salary value from the Employee relation ℱ MIN Salary (Employee) retrieves the minimum Salary value from the Employee relation ℱ SUM Salary (Employee) retrieves the sum of the Salary from the Employee relation DNO ℱ COUNT SSN, AVERAGE Salary (Employee) groups employees by DNO (department number) and computes the count of employees and average salary per department.[ Note: count just counts the number of rows, without removing duplicates] Additional Relational Operations (cont.)

48 Slide 6a-48 Database System-dww

49 Slide 6a-49 Database System-dww

50 Slide 6a-50 Database System-dww Additional Relational Operations (cont.) Recursive Closure Operations Another type of operation that, in general, cannot be specified in the basic original relational algebra is recursive closure. This operation is applied to a recursive relationship. Example: retrieve all SUPERVISEES of an EMPLOYEE e at all levels—that is, all EMPLOYEE e’ directly supervised by e; all employees e’’ directly supervised by each employee e’; all employees e’’’ directly supervised by each employee e’’; and so on. Although it is possible to retrieve employees at each level and then take their union, we cannot, in general, specify a query such as “retrieve the supervisees of ‘James Borg’ at all levels” without utilizing a looping mechanism. The SQL3 standard includes syntax for recursive closure.

51 Slide 6a-51 Database System-dww Additional Relational Operations (cont.)

52 Slide 6a-52 Database System-dww Additional Relational Operations (cont.) The OUTER JOIN Operation In NATURAL JOIN tuples without a matching (or related) tuple are eliminated from the join result. Tuples with null in the join attributes are also eliminated. This amounts to loss of information. A set of operations, called outer joins, can be used when we want to keep all the tuples in R, or all those in S, or all those in both relations in the result of the join, regardless of whether or not they have matching tuples in the other relation. The left outer join operation keeps every tuple in the first or left relation R in R S; if no matching tuple is found in S, then the attributes of S in the join result are filled or “padded” with null values. A similar operation, right outer join, keeps every tuple in the second or right relation S in the result of R S. A third operation, full outer join, denoted by keeps all tuples in both the left and the right relations when no matching tuples are found, padding them with null values as needed.

53 Slide 6a-53 Database System-dww Additional Relational Operations (cont.) TEMP  (EMPLOYEE SSN=MGRSSN DEPARTMENT RESULT   FNAME, MINIT, LNAME, DNAME (TEMP)

54 Slide 6a-54 Database System-dww Additional Relational Operations (cont.) OUTER UNION Operations The outer union operation was developed to take the union of tuples from two relations if the relations are not union compatible. This operation will take the union of tuples in two relations R(X, Y) and S(X, Z) that are partially compatible, meaning that only some of their attributes, say X, are union compatible. The attributes that are union compatible are represented only once in the result, and those attributes that are not union compatible from either relation are also kept in the result relation T(X, Y, Z).

55 Slide 6a-55 Database System-dww

56 Slide 6a-56 Database System-dww

57 Slide 6a-57 Database System-dww Additional Relational Operations (cont.) OUTER UNION Operations Example: An outer union can be applied to two relations whose schemas are STUDENT(Name, SSN, Department, Advisor) and INSTRUCTOR(Name, SSN, Department, Rank). Tuples from the two relations are matched based on having the same combination of values of the shared attributes—Name, SSN, Department. If a student is also an instructor, both Advisor and Rank will have a value; otherwise, one of these two attributes will be null. The result relation STUDENT_OR_INSTRUCTOR will have the following attributes: STUDENT_OR_INSTRUCTOR (Name, SSN, Department, Advisor, Rank)

58 Slide 6a-58 Database System-dww

59 Slide 6a-59 Database System-dww Q1: Retrieve the name and address of all employees who work for the ‘Research’ department. RESEARCH_DEPT   DNAME=’Research’ (DEPARTMENT) RESEARCH_EMPS  (RESEARCH_DEPT DNUMBER= DNO EMPLOYEE) RESULT   FNAME, LNAME, ADDRESS (RESEARCH_EMPS) This query could be specified in other ways; for example, the order of the JOIN and SELECT could be reversed, or the JOIN could be replaced by a NATURAL JOIN after renaming one of the join attributes. RESULT   FNAME, LNAME, ADDRESS (  DNAME=’Research’ (DEPARTMENT) DNUMBER= DNO EMPLOYEE))

60 Slide 6a-60 Database System-dww Q2: Retrieve the names of employees who have no dependents. ALL_EMPS   SSN (EMPLOYEE) EMPS_WITH_DEPS ( SSN )   ESSN ( DEPENDENT ) EMPS_WITHOUT_DEPS  (ALL_EMPS - EMPS_WITH_DEPS) RESULT   LNAME, FNAME (EMPS_WITHOUT_DEPS * EMPLOYEE) RESULT   LNAME, FNAME ((  SSN (EMPLOYEE) -  ESSN (DEPENDENT)) * EMPLOYEE)

61 Slide 6a-61 Database System-dww Q3: List the name of all employees with two or more dependents T1 (SSN, NO_OF_DEPT)  ESSN ℱ COUNT DEPENDENT_NAME (DEPENDENT) T2   NO_OF_DEPS >= 2 (T1) RESULT   LNAME, FNAME (T2 * EMPLOYEE)

62 Slide 6a-62 Database System-dww Exercises

63 Slide 6a-63 Database System-dww From the above schema, (a) Retrieve the names of employees in department 5 who work more than 10 hours per week on the 'ProductX' project. (b) List the names of employees who have a dependent with the same first name as themselves. (c) Find the names of employees that are directly supervised by 'Franklin Wong'. (d) For each project, list the project name and the total hours per week (by all employees) spent on that project. (e) Retrieve the names of employees who work on every project.

64 Slide 6a-64 Database System-dww Exercises (f) Retrieve the names of employees who do not work on any project. (g) For each department, retrieve the department name, and the average salary of employees working in that department. (h) Retrieve the average salary of all female employees. (i) Find the names and addresses of employees who work on at least one project located in Houston but whose department has no location in Houston. List the last names of department managers who have no dependents.

65 Slide 6a-65 Database System-dww Retrieve the names of employees in department 5 who work more than 10 hours per week on the 'ProductX' project. EMPLOYEE_WORKS_ON_ProductX  (PNAME=‘ProductX’(PROJECT) PNUMBER=PNO(WORKS_ON)) EMPLOYEE_WORKS_MORE_10  ((EMPLOYEE) SSN=ESSN(HOURS>10(EMPLOYEE_WORKS_ON_ProductX))) RESULT  FNAME,LNAME,ADDRESS( EMPLOYEE_WORKS_MORE_10)

66 Slide 6a-66 Database System-dww EMPLOYEE_FNAME_SAME_DEPENDENT_NAME  ((EMPLOYEE) (SSN,FNAME)=(ESSN,DEPENDENT_NAME)(DEPENDENT)) RESULT  FNAME,LNAME(EMPLOYEE_FNAME_SAME_DEPENDENT_NAME) List the names of employees who have a dependent with the same first name as themselves


Download ppt "The Relational Algebra Database System-dww. Slide 6a-2 Database System-dww Chapter Outline Fundamental Operator Deliverable & Additional Operator."

Similar presentations


Ads by Google