54
CSC 240 (Blum) 1 Relational Math

Relational Math

  • Upload
    kana

  • View
    19

  • Download
    0

Embed Size (px)

DESCRIPTION

Relational Math. Relational Algebra. The rules for combining one or more numbers (or symbols standing in for numbers) to obtain another number is called algebra . - PowerPoint PPT Presentation

Citation preview

Page 1: Relational Math

CSC 240 (Blum) 1

Relational Math

Page 2: Relational Math

CSC 240 (Blum) 2

Relational Algebra• The rules for combining one or more numbers (or

symbols standing in for numbers) to obtain another number is called algebra.

• For example, the rules for combining one or more Boolean variables (expressions which are either true or false) to obtain another Boolean is called Boolean algebra.

• The rules for combining one or more relations to obtain another relation is called relational algebra.

Page 3: Relational Math

CSC 240 (Blum) 3

Operations

• The specific ways of combining elements are known as operations.– E.g. addition is an algebraic operation

– E.g. ANDing is a Boolean operation

• Operations are called unary if they act on one element and binary if they act on two elements. – E.g square root is a unary algebraic operation.

– E.g. addition is a binary algebraic operation.

Page 4: Relational Math

CSC 240 (Blum) 4

Relation Table

• Relational algebra sounds so abstract. – Recall a representation of a relation is a table.– So relational algebra means that we do stuff to

tables and get other tables out.

• A relational database is made of tables. – Relational algebra tells us how to operate on

tables. – That is, relational algebra tells us what a Data

Manipulation Language (DML) should do.

Page 5: Relational Math

CSC 240 (Blum) 5

Synonym

• Recall our old synonyms– Table Relation File

– Row Tuple Record

– Column Attribute Property Field

• A new synonym pair is – Condition Predicate

– A condition is a Boolean, an expression that is true or false, e.g. Salary > 600000 or Name=“Smith”

Page 6: Relational Math

CSC 240 (Blum) 6

Selection/Restriction

• A selection (a.k.a. restriction) picks out those rows from a table that meet some condition.

• Example: Let us select from the Customer table those people who are from PA.

predicate ( R )

Page 7: Relational Math

CSC 240 (Blum) 7

Selection Example: Actors Only (Design)

Customer.* refers to all of the columns.

The condition (predicate) selecting out particular rows.

Page 8: Relational Math

CSC 240 (Blum) 8

Selection Example: PA Only (DataSheet)

Page 9: Relational Math

CSC 240 (Blum) 9

Selection Example: PA Only (SQL)

Condition

Page 10: Relational Math

CSC 240 (Blum) 10

Condition can be compound.

• The selection condition may be a compound condition. – ConditionA AND ConditionB– ConditionA OR ConditionB

• Example: Let us select from the Customer table those people who from Philadelphia and from PA. (There are other Philadelphias, e.g. in Mississippi)

Page 11: Relational Math

CSC 240 (Blum) 11

Added Some New Customers

Page 12: Relational Math

CSC 240 (Blum) 12

Selection Example: Philadelphia AND PA (Design)

ANDed conditions are entered on the same line.

Page 13: Relational Math

CSC 240 (Blum) 13

Selection Example: Philadelphia AND PA (DataSheet)

Page 14: Relational Math

CSC 240 (Blum) 14

Selection Example: Philadelphia AND PA (SQL)

ANDed conditions

Page 15: Relational Math

CSC 240 (Blum) 15

Selection Example: Customers from PA or NJ (Design)

ORed conditions are entered on separate lines.

Page 16: Relational Math

CSC 240 (Blum) 16

Selection Example: Customers from PA or NJ (DataSheet)

Page 17: Relational Math

CSC 240 (Blum) 17

Selection Example: Customers from PA or NJ (SQL)

ORed Conditions

Page 18: Relational Math

CSC 240 (Blum) 18

Projection

• The projection operator picks out a set of columns that will belong to the resulting table. – Recall the concept of views in which certain

fields would be hidden from certain users.

• Example: Let us project from the Customer table the first and last names.

column1,column2,… ( R )

Page 19: Relational Math

CSC 240 (Blum) 19

Projection Example: Customer’s first and last names (Design)

Choose columns and check to show them.

Page 20: Relational Math

CSC 240 (Blum) 20

Projection Example: Customer’s first and last names (DataSheet)

Page 21: Relational Math

CSC 240 (Blum) 21

Projection Example: Customer’s first and last names (SQL)

Columns that will appear.

Page 22: Relational Math

CSC 240 (Blum) 22

Union Compatible

• Think of the records in a table as elements of a set. • If two sets have the same sorts of records, that is,

the same fields in the same order or minimally the same type fields in the same order, then the sets are said to be union-compatible.

• Then you can consider forming – The union of the two sets– The intersection of the two sets – The set difference

Page 23: Relational Math

CSC 240 (Blum) 23

A Simpsons Database

Page 24: Relational Math

CSC 240 (Blum) 24

Union• The union of set A and set B contains all of the

elements of set A as well as all of the elements of set B– If an element belongs to set A and set B, the union

contains only one copy of it.

• Example: let us make a table containing all of the names from the Character and RealPerson tables

FirstName,LastName(Character) FirstName,LastName(RealPerson)

Page 25: Relational Math

CSC 240 (Blum) 25

Union Example: Character and

RealPerson names

Step 1 would be to create union-compatible tables using projection. Step 2 would be to take the union of these tables.

Page 26: Relational Math

CSC 240 (Blum) 26

Union Example: Character and RealPerson names (DataSheet)

Page 27: Relational Math

CSC 240 (Blum) 27

Union Example: Character and RealPerson names (DataSheet)

Page 28: Relational Math

CSC 240 (Blum) 28

Union Example: Character and RealPerson names (No Design )

• Query-By-Example (QEB) which is what we do in Design View takes the join as its principle binary operation.

• While the union is a more fundamental binary operation in Relational algebra, the join is the more common operation in querying.

• SQL does have the union operation!

Page 29: Relational Math

CSC 240 (Blum) 29

Union Example: Character and RealPerson names

Page 30: Relational Math

CSC 240 (Blum) 30

Intersection• The intersection of set A and set B contains

only the elements that belong both to set A and to set B.

• Example: let us make a table containing all of the names of people who play themselves on the Simpsons.

FirstName,LastName(Character) FirstName,LastName(RealPerson)

• Again the first step is to make union-compatible tables.

Page 31: Relational Math

CSC 240 (Blum) 31

Intersection Example: People playing themselves (DataSheet)

Page 32: Relational Math

CSC 240 (Blum) 32

Intersection Example: People playing themselves (Design, step 1)

Page 33: Relational Math

CSC 240 (Blum) 33

Intersection Example: People playing themselves (Design, step 2)

Dragging a field icon from one table to another establishes a relationship. Right click on a line to remove a relationship from the query.

Page 34: Relational Math

CSC 240 (Blum) 34

Intersection Example: People playing themselves (SQL)

SQL has an INTERSECT operation like its UNION operation, but it is not supported by Access.

Page 35: Relational Math

CSC 240 (Blum) 35

Intersection Example: People playing themselves (Design, version 2)

concatenation

Uses concatenation and a subquery.

subquery

Page 36: Relational Math

CSC 240 (Blum) 36

Intersection Example: People playing themselves (SQL, version 2)

Note: Access adds lots of parentheses.

Page 37: Relational Math

CSC 240 (Blum) 37

Set Difference

• The set difference of Set A and Set B is all of the elements in Set A that are not also elements of set B.

• Example: Simpsons characters who are not real people.

FirstName,LastName(Character) - FirstName,LastName(RealPerson)

• Again the first step is to make union-compatible tables.

Page 38: Relational Math

CSC 240 (Blum) 38

Set Difference Example: Characters that are not real people (DataSheet)

Ernest Borgnine and James Brown removed.

Page 39: Relational Math

CSC 240 (Blum) 39

Set Difference Example: Characters that are not real people (Design)

Same as the second version of the Intersection query except IN NOT IN

Page 40: Relational Math

CSC 240 (Blum) 40

Set Difference Example: Characters that are not real people (SQL)

Page 41: Relational Math

CSC 240 (Blum) 41

Cartesian Product

• A row in the Cartesian product of Table A and Table B is the concatenation of a row from Table A and a row from Table B.

• All possible combinations of a row from A and a row from B are made.

• A B• On its own the Cartesian product is not very

useful, but it is the first ingredient in a join, which is very useful in querying relational databases.

Page 42: Relational Math

CSC 240 (Blum) 42

How big is the Cartesian product?

A B C

D E F

G H I

J K L

Degree(A)

Car

dina

lity

(A) A N

G O

D U

D E

J VC

ardi

nali

ty(B

)

Degree(B)

Cardinality(AB) = Cardinality(A) * Cardinality(B)

Degree(AB) = Degree(A) + Degree(B)

Page 43: Relational Math

CSC 240 (Blum) 43

A B C A N

A B C G O

A B C D U

A B C D E

A B C J V

D E F A N

D E F G O

D E F D U

D E F D E

D E F J V

G H I A N

G H I G O

G H I D U

G H I D E

G H I J V

J K L A N

J K L G O

J K L D U

J K L D E

J K L J V

Page 44: Relational Math

CSC 240 (Blum) 44

Perform a Selection on the Cartesian Product

• Recall that – (Most of) our tables correspond to entities. – Entities have relationships. – Relationships are realized by having fields in

two tables take values from the same domain. • E.g. That a Character is voiced by a Real Person is

represented by having the PersonID (which identifies a person in the RealPerson Table) appear the Character Table.

Page 45: Relational Math

CSC 240 (Blum) 45

Page 46: Relational Math

CSC 240 (Blum) 46

Perform a Selection on the Cartesian Product (Cont.)

• The Cartesian product of the Character and RealPerson Tables has rows in which the person voices the character and rows in which the person does not voice the character.

• What distinguishes the former is that the Character.PersonID matches the RealPerson.PersonID.

• We can use this condition (predicate) to select out the meaningful rows.

Page 47: Relational Math

CSC 240 (Blum) 47

A B C A N

A B C G O

A B C D U

A B C D E

A B C J V

D E F A N

D E F G O

D E F D U

D E F D E

D E F J V

G H I A N

G H I G O

G H I D U

G H I D E

G H I J V

J K L A N

J K L G O

J K L D U

J K L D E

J K L J V

match

Page 48: Relational Math

CSC 240 (Blum) 48

After the selection

A B C A N

D E F D U

D E F D E

G H I G O

J K L J V

Now we have a table with two identical columns. We can eliminate one (or both) by projecting.

Page 49: Relational Math

CSC 240 (Blum) 49

After projection

A B C N

D E F U

D E F E

G H I O

J K L V

• The combination of Cartesian product, selection and projection allows you to bring together the related information that was placed in different tables.

• This is the key operation in querying.

• It is called a join.

Page 50: Relational Math

CSC 240 (Blum) 50

RealPerson Table

Page 51: Relational Math

CSC 240 (Blum) 51

Credential Table

Page 52: Relational Math

CSC 240 (Blum) 52

Cartesian Product of Character and Credential Tables (in Excel)

The credentials belong to Groening.

Page 53: Relational Math

CSC 240 (Blum) 53

Question

Do I throw out people even if I don’t have any credentials for them?

There are different types of joins.

Page 54: Relational Math

CSC 240 (Blum) 54

References

• Database Systems, Rob and Coronel

• Database Systems, Connolly and Begg