Uploaded by Roshan Charagh (à la mode)

Relations

advertisement
Relations
Rosen 5th ed., ch. 7
1
Relations
• Relationships between elements of sets occur
very often.
– (Employee, Salary)
– (Students, Courses, GPA)
• We use ordered pairs (or n-tuples) of elements
from the sets to represent relationships.
2
Binary Relations
• A binary relation R from set A to set B, written
R:A↔B, is a subset of A×B.
– E.g., let < : N↔N :≡ {(n,m) | n < m}
• The notation aRb means (a,b)R.
– E.g., a < b means (a,b) <
• If aRb we may say
“a is related to b (by relation R)”
3
Example
A: {students at UNR},
B: {courses offered at UNR}
R: “relation of students enrolled in courses”
(Jason, CS365), (Mary, CS201) are in R
If Mary does not take CS365, then (Mary, CS365) is not in R!
If CS480 is not being offered, then (Jason, CS480), (Mary,
CS480) are not in R!
4
Complementary Relations
• Let R:A↔B be any binary relation.
• Then, R:A↔B, the complement of R, is the
binary relation defined by
R :≡ {(a,b) | (a,b)R} = (A×B) − R
Note this is just R if the universe of
discourse is U = A×B; thus the name
complement.
• Note the complement of R is R.
Example: < = {(a,b) | (a,b)<} = {(a,b) | ¬a<b} = ≥
5
Inverse Relations
• Any binary relation R:A↔B has an inverse
relation R−1:B↔A, defined by
R−1 :≡ {(b,a) | (a,b)R}.
E.g., <−1 = {(b,a) | a<b} = {(b,a) | b>a} = >.
6
Functions as Relations
• A function f:AB is a relation from A to B
• A relation from A to B is not always a function
f:AB (e.g., relations could be one-to-many)
• Relations are generalizations of functions!
7
Relations on a Set
• A (binary) relation from a set A to itself is called
a relation on the set A.
A: {1,2,3,4}
R={(a,b) | a divides b}
8
Example
How many relations are there on a set A with n
elements?
9
Reflexivity
• A relation R on A is reflexive if aA, aRa.
– E.g., the relation ≥ :≡ {(a,b) | a≥b} is reflexive.
– Is the “divide” relation on the set of positive
integers reflexive?
10
Symmetry & Antisymmetry
• A binary relation R on A is symmetric iff R
= R−1, that is, if (a,b)R ↔ (b,a)R.
– E.g., = (equality) is symmetric. < is not.
– “is married to” is symmetric, “likes” is not.
• A binary relation R is antisymmetric if
(a,b)R → (b,a)R.
– < is antisymmetric, “likes” is not.
11
Transitivity
• A relation R is transitive iff (for all a,b,c)
(a,b)R  (b,c)R → (a,c)R.
• Examples:
• “is an ancestor of” is transitive.
• Is the “divides” relation on the set of
positive integers transitive?
12
Combining Relations
• Two relations can be combined in a similar
way to combining two sets.
R1  R2
R1  R2
R1  R2
R2  R1
13
Composite Relations
• Let R:A↔B, and S:B↔C. Then the
composite SR of R and S is defined as:
SR = {(a,c) | aRb  bSc}
• Function composition fg is an example.
• The nth power Rn of a relation R on a set A
can be defined recursively by:
R1 :≡ R ;
Rn+1 :≡ RnR for all n≥0.
14
Example
R is a relation from {1,2,3} to {1,2,3,4}
R ={(1,1),(1,4),(2,3),(3,1),(3,4)}
S is a relation from {1,2,3,4} to {0,1,2}
S = {(1,0),(2,0),(3,1),(3,2),(4,1)}
RS = {(1,0),(1,1),(2,1),(2,2),(3,0),(3,1)}
15
§7.2: n-ary Relations
• An n-ary relation R on sets A1,…,An,
written R:A1,…,An, is a subset
R  A1× … × An.
• The degree of R is n.
• Example: R consists of 5-tuples (A,N,S,D,T)
A: airplane flights, N: flight number,
S: starting point, D: destination, T: departure time
16
Databases
• The time required to manipulate information in a
database depends in how this information is stored.
• Operations: add/delete, update, search, combine etc.
• Various methods for representing databases have
been developed.
• We will discuss the “relational model”.
17
Relational Databases
• A database consists of records,
which are n-tuples, made up of
fields.
• A relational database
represents records as an n-ary
relation R.
(STUDENT_NAME, ID,
MAJOR, GPA)
• Relations are also called
“tables” (e.g., displayed as
tables often)
18
Relational Databases
• A domain Ai of an n-ary relation is called
primary key when no two n-tuples have the
same value on this domain (e.g., ID)
• A composite key is a subset of domains {Ai,
Aj, …} such that an n-tuple (…,ai,…,aj,…) is
determined uniquely for each composite value
(ai, aj,…)Ai×Aj×…
19
Selection Operator
• Let R be an n-ary relation and C a condition
that elements in R may satisfy.
• The selection operator sC maps any (n-ary)
relation R on A to the n-ary relation of all ntuples from R that satisfy C.
20
Example
• Suppose we have a domain
A = StudentName × Standing × SocSecNos
• Suppose we define a certain condition on A,
UpperLevel(name,standing,ssn) :≡
[(standing = junior)  (standing = senior)]
• Then, sUpperLevel is the selection operator that takes
any relation R on A (database of students) and
produces a relation consisting of just the upperlevel classes (juniors and seniors).
21
Projection Operators
• The projection operator
n-tuple (a1 ,..., an )
Pi1i2 ...im
maps the
to the m-tuple (ai1 ,..., aim )
• In other words, it deletes n-m of the components
of an n-tuple.
22
Example
Note that fewer rows may result when a projection is applied !
23
More Examples
• Suppose we have a ternary (3-ary) domain
Cars=Model×Year×Color. (note n=3).
• Consider the index sequence {ik}= 1,3. (m=2)
• Then the projection P{i }simply maps each tuple
k
(a1,a2,a3) = (model,year,color) to its image:
(ai1 , ai2 )  (a1 , a3 )  (model, color )
• This operator can be usefully applied to a whole
relation RCars (database of cars) to obtain a list
of model/color combinations available.
24
Join Operator
• Puts two relations together to form a sort of
combined relation.
• If the tuple (A,B) appears in R1, and the
tuple (B,C) appears in R2, then the tuple
(A,B,C) appears in the join J(R1,R2).
– A, B, C can also be sequences of elements
rather than single elements.
25
Example
26
Join Example
• Suppose R1 is a teaching assignment table,
relating Professors to Courses.
• Suppose R2 is a room assignment table
relating Courses to Rooms,Times.
• Then J(R1,R2) is like your class schedule,
listing (professor,course,room,time).
27
SQL Example
SELECT Departure_Time
FROM Flights
WHERE destination=“Detroit”
Find projection P5 of the selection of 5-tuples that satisfy
the constraint “destination=Detroit”
28
§7.3: Representing Relations
• Some ways to represent n-ary relations:
– With an explicit list or table of its tuples.
– With a function from the domain to {T,F}.
• Or with an algorithm for computing this function.
• Some special ways to represent binary
relations:
– With a zero-one matrix.
– With a directed graph.
29
Using Zero-One Matrices
• To represent a relation R by a matrix
MR = [mij], let mij = 1 if (ai,bj)R, else 0.
• E.g., Joe likes Susan and Mary, Fred likes
Mary, and Mark likes Sally.
Susan Mary Sally
• The 0-1 matrix
Joe  1
1
0 
representation
 0

Fred
1
0
of that “Likes”


Mark  0
0
1 
relation:
30
Zero-One Reflexive, Symmetric
• Terms: Reflexive, non-Reflexive, symmetric,
and antisymmetric.
– These relation characteristics are very easy to
recognize by inspection of the zero-one matrix.
any-
1
thing
 1



 any- 1 
 thing

1


any- 
0
thing
 1




0 
anything

1


Reflexive:
Non-reflexive:
all 1’s on diagonal some 0’s on diagonal
 1
1



 0

0



Symmetric:
all identical
across diagonal
 0
1



 0

1



Antisymmetric:
all 1’s are across
from 0’s
31
Using Directed Graphs
• A directed graph or digraph G=(VG,EG) is a set VG of
vertices (nodes) with a set EGVG×VG of edges
(arcs,links). Visually represented using dots for nodes, and
arrows for edges. Notice that a relation R:A↔B can be
represented as a graph GR=(VG=AB, EG=R).
MR
Susan
Joe  1
Fred  0
Mark  0
Mary Sally
1
0 
1
0 
0
1 
GR
Edge set EG
(blue arrows)
Joe
Fred
Mark
Susan
Mary
Sally
Node set VG
(black dots)
32
Digraph Reflexive, Symmetric
It is extremely easy to recognize the reflexive/irreflexive/
symmetric/antisymmetric properties by graph inspection.
 



 
Reflexive:
Every node
has a self-loop
 
Irreflexive:
No node
links to itself
Asymmetric, non-antisymmetric
Symmetric:
Every link is
bidirectional
 
Antisymmetric:
No link is
bidirectional
Non-reflexive, non-irreflexive
33
§7.4: Closures of Relations
• For any property X, the “X closure” of a set A is defined as
the “smallest” superset of A that has the given property.
• The reflexive closure of a relation R on A is obtained by
adding (a,a) to R for each aA. I.e., it is R  IA
• The symmetric closure of R is obtained by adding (b,a) to
R for each (a,b) in R. I.e., it is R  R−1
• The transitive closure or connectivity relation of R is
obtained by repeatedly adding (a,c) to R for each
(a,b),(b,c) in R.
– I.e., it is
R 
*
R
n
nZ 
34
Paths in Digraphs/Binary Relations
• A path of length n from node a to b in the directed
graph G (or the binary relation R) is a sequence
(a,x1), (x1,x2), …, (xn−1,b) of n ordered pairs in EG
(or R).
– An empty sequence of edges is considered a path of
length 0 from a to a.
– If any path from a to b exists, then we say that a is
connected to b. (“You can get there from here.”)
• A path of length n≥1 from a to a is called a circuit
or a cycle.
• Note that there exists a path of length n from a to
b in R if and only if (a,b)Rn.
35
Simple Transitive Closure Alg.
A procedure to compute R* with 0-1 matrices.
procedure transClosure(MR:rank-n 0-1 mat.)
A := B := MR;
for i := 2 to n begin
A := A⊙MR; B := B  A {join}
{note A represents Ri}
end
return B
{Alg. takes Θ(n4) time}
36
Roy-Warshall Algorithm
• Uses only Θ(n3) operations!
Procedure Warshall(MR : rank-n 0-1 matrix)
W := MR
for k := 1 to n
for i := 1 to n
for j := 1 to n
wij := wij  (wik  wkj)
return W {this represents R*}
wij = 1 means there is a path from i to j going only through nodes ≤k
37
§7.5: Equivalence Relations
• An equivalence relation (e.r.) on a set A is
simply any binary relation on A that is
reflexive, symmetric, and transitive.
– E.g., = itself is an equivalence relation.
– For any function f:A→B, the relation “have the
same f value”, or =f :≡ {(a1,a2) | f(a1)=f(a2)}
is an equivalence relation, e.g., let m=“mother
of” then =m = “have the same mother” is an e.r.
38
Equivalence Relation Examples
• “Strings a and b are the same length.”
• “Integers a and b have the same absolute
value.”
• “Real numbers a and b have the same
fractional part (i.e., a − b  Z).”
39
Equivalence Classes
• Let R be any equiv. rel. on a set A.
• The equivalence class of a,
[a]R :≡ { b | aRb }
(optional subscript R)
– It is the set of all elements of A that are “equivalent” to
a according to the eq.rel. R.
– Each such b (including a itself) is called a
representative of [a]R.
• Since f(a)=[a]R is a function of a, any equivalence
relation R be defined using aRb :≡ “a and b have
the same f value”, given that f.
40
Equivalence Class Examples
• “Strings a and b are the same length.”
– [a] = the set of all strings of the same length as a.
• “Integers a and b have the same absolute value.”
– [a] = the set {a, −a}
• “Real numbers a and b have the same fractional
part (i.e., a − b  Z).”
– [a] = the set {…, a−2, a−1, a, a+1, a+2, …}
41
Partitions
• A partition of a set A is the set of all the
equivalence classes {A1, A2, … } for some
e.r. on A.
• The Ai’s are all disjoint and their union = A.
• They “partition” the set into pieces. Within
each piece, all members of the set are
equivalent to each other.
42
Download