![Page 1: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/1.jpg)
1
Relational Algebra
� The Relational Model consists of theelements: relations, which are made upof attributes.
![Page 2: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/2.jpg)
2
Relational Algebra
� A relation is a set of attributes with values foreach attribute such that:� Each attribute value must be a single value only
(atomic). � All values for a given attribute must be of the
same type (or domain). � Each attribute name must be unique. � The order of attributes is insignificant� No two rows (tuples) in a relation can be identical. � The order of the rows (tuples) is insignificant.
![Page 3: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/3.jpg)
3
Relational Algebra
� Relational Algebra is a collection of operations on Relations.
� Relations are operands and the result of an operation is another relation.
![Page 4: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/4.jpg)
4
Relational Algebra
� Two main collections of relational operators:
� Set theory operations:� Union, Intersection, Difference and Cartesian product.
� Specific Relational Operations:� Selection, Projection, Join, Division.
![Page 5: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/5.jpg)
5
Set Theoretic Operations
Consider the following relations R and S.R S
32 Jones Tony
23 KeenMary
28 GreenSally
22 Smith Bill
AgeLastFirst
27 DeMarcoDonJuan
28 GreenSally
36 GumpForrest
AgeLastFirst
![Page 6: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/6.jpg)
6
Union: RUS
� Result: Relation with tuples from R and S with duplicates removed.
27 DeMarcoDonJuan
36 GumpForrest
32 Jones Tony
23 KeenMary
28 GreenSally
22 Smith Bill
AgeLastFirst
![Page 7: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/7.jpg)
7
Difference: R - S
� Result: Relation with tuples from R but notfrom S
32 Jones Tony
23 KeenMary
22 Smith Bill
AgeLastFirst
![Page 8: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/8.jpg)
8
Intersection: R∩S
� Result: Relation with tuples that appear inboth R and S.
28 GreenSally
AgeLastFirst
![Page 9: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/9.jpg)
9
Union Compatible Relations
� Attributes of relations need not be identical toperform union, intersection and differenceoperations.
� However, they must have the same numberof attributes or arity and the domains forcorresponding attributes must be identical.
![Page 10: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/10.jpg)
10
Union Compatible Relations
� Domain is the datatype and size of an attribute.
� The degree of relation R is the number of attributes it contains.
� Definition: Two relations R and S are unioncompatible if and only if they have the samedegree and the domains of the correspondingattributes are the same.
![Page 11: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/11.jpg)
11
Additional properties
� Union, Intersection and difference operators may only be applied to Union Compatiblerelations.
� Union and Intersection are commutativeoperations
� Difference operation is NOT commutative.
![Page 12: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/12.jpg)
12
Cartesian Product: R×S
� Produce all combinations of tuples from tworelations.
R S
32 Jones Tony
23 KeenMary
22 Smith Bill
AgeLastFirst
CheesecakeLobster
Ice CreamSteak
DessertDinner
![Page 13: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/13.jpg)
13
Cartesian Product: R×S
� R×S:
CheesecakeLobster32 Jones Tony
Ice CreamSteak 32 Jones Tony
CheesecakeLobster23 KeenMary
Ice CreamSteak 23 KeenMary
CheesecakeLobster22 Smith Bill
Ice CreamSteak 22 Smith Bill
DessertDinnerAgeLastFirst
![Page 14: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/14.jpg)
14
Relational Algebra
� Two main collections of relational operators:
� Set theory operations:� Union, Intersection, Difference and Cartesian product.
� Specific Relational Operations:� Selection, Projection, Join, Division.
![Page 15: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/15.jpg)
15
Selection Operator
� Selection and Projection are unary operators.
� The selection operator is sigma: σ
� The selection operation acts like a filter on a relation by returning only a certain number of tuples.
![Page 16: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/16.jpg)
16
Selection Operator
� The resulting relation will have the samedegree as the original relation.
� The resulting relation may have fewer tuplesthan the original relation.
� The tuples to be returned are dependent on a condition that is part of the selection operator.
![Page 17: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/17.jpg)
17
Selection Operator
� σC(R) Returns only those tuples in R thatsatisfy condition C
� A condition C can be made up of anycombination of comparison or logicaloperators that operate on the attributes of R. � Comparison operators:
� Logical operators:
F F F
F T T
F T ∧
F T F
T T T
F T ∨
T F
F T¬
![Page 18: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/18.jpg)
18
Selection Examples
� Assume the following relation EMP has thefollowing tuples:
AssociateFin 500 Smith
AssociateCS 420 Brown
AssistantEcon160 Green
AdjunctEcon220 Jones
AssistantCS 400 Smith
RankDeptOffice Name
![Page 19: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/19.jpg)
19
Selection Examples
• Select only those Employees in the CS department:σ Dept = 'CS' (EMP)Result:
AssociateCS 420 Brown
AssistantCS 400 Smith
RankDeptOffice Name
![Page 20: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/20.jpg)
20
Selection Examples
� Select only those Employees with last nameSmith who are assistant professors:σ Name = 'Smith' ∧Rank = 'Assistant' (EMP)Result:
AssistantCS 400 Smith
RankDeptOffice Name
![Page 21: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/21.jpg)
21
Selection Examples
� Select only those Employees who are eitherAssistant Professors or in the Economicsdepartment: σ Rank = 'Assistant' ∨ Dept = 'Econ' (EMP)Result:
AssistantEcon160 Green
AdjunctEcon220 Jones
AssistantCS 400 Smith
RankDeptOffice Name
![Page 22: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/22.jpg)
22
Selection Examples
� Select only those Employees who are not inthe CS department or Adjuncts: σ ¬ (Rank = 'Adjunct' ∨ Dept = 'CS') (EMP)Result:
AssociateFin 500 Smith
AssistantEcon160 Green
RankDeptOffice Name
![Page 23: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/23.jpg)
23
Projection Operator
� Projection is also a Unary operator.
� The Projection operator is pi: π� Projection limits the attributes that will be
returned from the original relation.
� The general syntax is: π attributes RWhere attributes is the list of attributes to be displayed and R is the relation.
![Page 24: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/24.jpg)
24
Projection Operator
� The resulting relation will have the samenumber of tuples as the original relation(unless there are duplicate tuples produced).
� The degree of the resulting relation may be equal to or less than that of the originalrelation.
![Page 25: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/25.jpg)
25
Projection Examples
• Project only the names and departments of the employees:π name, dept (EMP)
Results:
Fin Smith
CS Brown
EconGreen
EconJones
CS Smith
DeptName
![Page 26: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/26.jpg)
26
Combining Selection and Projection
� The selection and projection operators canbe combined to perform both operations.
� Show the names of all employees working inthe CS department:π name σ ( Dept = 'CS' (EMP) )
Results:
Brown
Smith
Name
![Page 27: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/27.jpg)
27
Combining Selection and Projection
� Show the name and rank of those Employeeswho are not in the CS department orAdjuncts:
Results:
AssociateSmith
AssistantGreen
RankName
π name, rank σ(¬ (Rank = 'Adjunct'∨ Dept = 'CS') (EMP) )
![Page 28: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/28.jpg)
28
Aggregate Functions
� We can also apply Aggregate functions toattributes and tuples:� SUM � MINIMUM � MAXIMUM � AVERAGE, MEAN, MEDIAN � COUNT
![Page 29: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/29.jpg)
29
Aggregate Functions
� Assume the relation EMP has the followingtuples:
60000 Fin 500 Smith
65000 CS 420 Brown
50000 Econ160 Green
35000 Econ220 Jones
45000 CS 400 Smith
SalaryDeptOffice Name
![Page 30: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/30.jpg)
30
Aggregate Functions Examples
� Find the minimum Salary: F MIN (salary) (EMP)Results:
35000
MIN(salary)
![Page 31: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/31.jpg)
31
Aggregate Functions Examples
� Find the average Salary: F AVG (salary) (EMP)Results:
51000
AVG(salary)
![Page 32: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/32.jpg)
32
Aggregate Functions Examples
� Count the number of employees in the CS department: F COUNT (name) σ ( Dept = 'CS' (EMP) )Results:
2
COUNT(name)
![Page 33: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/33.jpg)
33
Aggregate Functions Examples
� Find the total payroll for the Economicsdepartment: F SUM (salary) σ (Dept = 'Econ' (EMP) )Results:
85000
SUM(salary)
![Page 34: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/34.jpg)
34
Join Operation
� Join operations bring together two relations and combine their attributes and tuples in a specific fashion.
� The generic join operator (called the ThetaJoin is:
� It takes as arguments the attributes from thetwo relations that are to be joined.
![Page 35: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/35.jpg)
35
Join Operation
• For example assume we have the EMP relation asabove and a separate DEPART relation with (Dept, MainOffice, Phone) :EMP EMP.Dept = DEPART.Dept DEPART
� The join condition can be � When the join condition operator is = then we call
this an Equijoin� Note that the attributes in common are repeated.
![Page 36: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/36.jpg)
36
Join Examples
� Assume we have the EMP relation fromabove and the following DEPART relation:
555-9876 100 Hist
555-4321 501 Fin
555-1234 200 Econ
555-1212 404 CS
PhoneMainOfficeDept
60000 Fin 500 Smith
65000 CS 420 Brown
50000 Econ160 Green
35000 Econ220 Jones
45000 CS 400 Smith
SalaryDeptOffice Name
![Page 37: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/37.jpg)
37
Join Examples
� Find all information on every employeeincluding their department info:EMP emp.Dept = depart.Dept DEPART
![Page 38: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/38.jpg)
38
Join Examples
� EMP emp.Dept = depart.Dept DEPART
555-4321 501 Fin 60000 Fin 500 Smith
555-1212 404 CS 65000 CS 420 Brown
555-1234 200 Econ50000 Econ160 Green
555-1234 200 Econ35000 Econ220 Jones
555-1212 404 CS 45000 CS 400 Smith
PhoneMainOfficeDEPART.DeptSalaryEMP.DeptOffice Name
![Page 39: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/39.jpg)
39
Join Examples
� Find all information on every employeeincluding their department info, where theemployee works in an office numbered less than the department main office:EMP (emp.office < depart.mainoffice) ∧ (emp.dept =
depart.dept) DEPART
![Page 40: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/40.jpg)
40
Join Examples
� EMP (emp.office < depart.mainoffice) ∧ (emp.dept =
depart.dept) DEPART
555-4321 501 Fin 60000 Fin 500 Smith
555-1234 200 Econ 50000 Econ 160 Green
555-1212 404 CS 45000 CS 400 Smith
Phone MainOfficeDEPART.DeptSalary EMP.DeptOffice Name
![Page 41: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/41.jpg)
41
Natural Join
� Notice in the generic (Theta) join operation, any attributes in common (such as deptabove) are repeated.
� The Natural Join operation removes theseduplicate attributes.
� The natural join operator is: *� We can also assume using * that the join
condition will be = on the two attributes incommon.
![Page 42: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/42.jpg)
42
Natural Join Example
� Example: EMP * DEPARTResults:
555-4321 501 60000 Fin 500 Smith
555-1212 404 65000 CS 420 Brown
555-1234 200 50000 Econ160 Green
555-1234 200 35000 Econ220 Jones
555-1212 404 45000 CS 400 Smith
PhoneMainOfficeSalaryDeptOffice Name
![Page 43: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/43.jpg)
43
Outer Join
� Often in joining two relations, a tuple in one relation does not have a matching tuple in the other relation: there is no matching value in the join attributes.
� To display rows in the result that do not have matching values in the join column, use Outer join.
� Types of outer joins:� Left Outer Join� Right Outer Join� Full Outer Join
![Page 44: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/44.jpg)
44
Left Outer Join
R S� (Left) outer join is a join in which tuples from R that
do not have matching values in common columns of S are also included in result relation.
� Missing values in the second relation are set to null.
� The advantage of an Outer join is that information is preserved, that is, the Outer join preserves tuplesthat would have been lost by other types of tuples.
![Page 45: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/45.jpg)
45
Outer Join Examples
� Assume we have two relations:PEOPLE: MENU:
Shrimp 19 Dina
Beer 23 Carl
Pizza 24 Bill
Hamburger 21 Alice
Food Age Name
Friday Tacos
Thursday Pasta
WednesdayChicken
Tuesday Hamburger
Monday Pizza
Day Food
![Page 46: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/46.jpg)
46
Left Outer Join
� PEOPLE people.food = menu.food MENU
NULLNULLShrimp 19 Dina
NULLNULLBeer 23 Carl
Monday Pizza Pizza 24 Bill
Tuesday Hamburger Hamburger 21 Alice
Day menu.Foodpeople.FoodAge Name
![Page 47: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/47.jpg)
47
Right Outer Join
� PEOPLE people.food = menu.food MENU
Friday Tacos NULLNULLNULL
Thursday Pasta NULLNULLNULL
WednesdayChicken NULLNULLNULL
Tuesday Hamburger Hamburger 21 Alice
Monday Pizza Pizza 24 Bill
Day menu.Foodpeople.FoodAge Name
![Page 48: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/48.jpg)
48
Full Outer Join
� PEOPLE people.food = menu.food MENU
Friday Tacos NULLNULLNULL
Thursday Pasta NULLNULLNULL
WednesdayChicken NULLNULLNULL
NULLNULLShrimp 19 Dina
NULLNULLBeer 23 Carl
Monday Pizza Pizza 24 Bill
Tuesday Hamburger Hamburger 21 Alice
Day menu.Foodpeople.FoodAge Name
![Page 49: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/49.jpg)
49
Relational algebra and SQL
� SELECT statementSELECT [DISTINCT | ALL]
{* | [columnExpression [AS newName]] [,...] }FROM TableName [alias] [, ...][WHERE condition][GROUP BY columnList] [HAVING condition][ORDER BY columnList]
![Page 50: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/50.jpg)
50
SELECT Statement
FROM Specifies table(s) to be used.WHERE Filters rows.GROUP BY Forms groups of rows with same
column value.HAVING Filters groups subject to some
condition.SELECT Specifies which columns are to
appear in output.ORDER BY Specifies the order of the output.
![Page 51: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/51.jpg)
51
Relational algebra and SQL
� Projection� Example: The table E (for EMPLOYEE)
100Tom7
300Sarah5
100John1
salarynamenr
![Page 52: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/52.jpg)
52
Relational algebra and SQL - Projection
nr, salary(E) select nr, salary from E
salary(E) select distinctsalary from E
Relational algebraResultSQL
300
100
salary
1007
3005
1001
salarynr
![Page 53: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/53.jpg)
53
Relational algebra and SQL - Selection
salary < 200 and nr >= 7(E)
select * fromE where salary< 200 and nr >= 7
salary < 200(E) select * fromE where salary< 200
Relational algebraResultSQL
100Tom7
100John1
salarynamenr
100Tom7
salarynamenr
![Page 54: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/54.jpg)
54
Combination of projection and selection
name, salary ( salary< 200(E))
select name, salary fromE wheresalary < 200
Relational algebraResultSQL
100Tom
100John
salaryname
![Page 55: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/55.jpg)
55
Cartesian Product
table E (for EMPLOYEE) table D (for DEPARTMENT)
AJohn3
CSarah2
ABill1
edeptenameenr
LegalC
SalesB
MarketingA
dnamednr
![Page 56: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/56.jpg)
56
Cartesian Product
E × Dselect*from E, D
Relationalalgebra
ResultSQL
LegalCAJohn3
SalesBAJohn3
MarketingAAJohn3
LegalCCSarah2
SalesBCSarah2
MarketingACSarah2
LegalCABill1
SalesBABill1
MarketingAABill1
dnamednredeptenameenr
![Page 57: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/57.jpg)
57
Join ("inner join")
σdept = dnr (E × D) or, using the equivalent join operationE dept = dnr D
select *from E, Dwheredept = dnr
Relational algebra
ResultSQL
MarketingAAJohn3
LegalCCSarah2
MarketingAABill1
dnamednrdeptenameenr
![Page 58: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/58.jpg)
58
Aggregate functions
� Table E (for EMPLOYEE)
CnullAnne12
A100Tom7
C300Sarah5
A100John1
deptsalarynamenr
![Page 59: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/59.jpg)
59
Sum
� Count: � Duplicates are not eliminated. � Null values are ignored.
Fsum(salary)(E) selectsum(salary)from E
Relational algebraResultSQL
500
sum
![Page 60: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/60.jpg)
60
Count
Fcount(salary)(ππππsalary(E)) selectcount(distinctsalary)from E
Fcount(salary)(E) selectcount(salary)from E
Relational algebraResultSQL
3
count
2
count
![Page 61: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/61.jpg)
61
Aggregate Functions
� We can calculate aggregates "grouped by" something:
deptFsum(salary)(E)
selectsum(salary)from E groupby dept
Relational algebraResultSQL
300C
200A
sumdept
![Page 62: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/62.jpg)
62
Aggregate Functions
� Several aggregates simultaneously:
deptFsum(salary),
count(*)(E)
selectsum(salary), count(*)fromE group bydept
Relational algebra
ResultSQL
1300C
2200A
countsumdept
![Page 63: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/63.jpg)
63
Outer join
� Example: Table E (for EMPLOYEE); table D(for DEPARTMENT)
� List each employee together with the department he or she works at.
AJohn3
BSarah2
ABill1
deptenameenr
LegalC
SalesB
MarketingA
dnamednr
![Page 64: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/64.jpg)
64
Outer join
� What if we want to know the number of employees at each department?
![Page 65: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/65.jpg)
65
Outer join
E edept = dnr D
select *from (E right outerjoin D ondept = dnr)
Relational algebra
ResultSQL
LegalCnullnullnull
MarketingAAJohn3
SalesBBSarah2
MarketingAABill1
dnamednrdeptenameenr
![Page 66: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/66.jpg)
66
Outer Join
dnr, dnameFcount(*)(E dept =
dnr D)
select dnr, dname, count(*)from(E right outerjoin D on dept= dnr)group bydnr, dname
Relational algebraResultSQL
1LegalC
1SalesB
2MarketingA
countdnamednr
![Page 67: The Relational Model consists of the elements: relations ...cir.dcs.uni-pannon.hu/cikkek/DB_relational_algebra_v2.pdf · The Relational Model consists of the elements: relations,](https://reader034.vdocuments.site/reader034/viewer/2022051523/5a76763a7f8b9ad22a8d72fc/html5/thumbnails/67.jpg)
67
Outer Join
dnr, dnameFcount(enr)(E
dept = dnr D)
select dnr, dname, count(enr)from(E right outerjoin D on edept= dnr) group bydnr, dname
Relational algebraResultSQL
0LegalC
1SalesB
2MarketingA
countdnamednr