Module #18: Relations, part I Rosen 5 th ed., ch. 7.
-
Upload
francine-carson -
Category
Documents
-
view
221 -
download
2
Transcript of Module #18: Relations, part I Rosen 5 th ed., ch. 7.
![Page 1: Module #18: Relations, part I Rosen 5 th ed., ch. 7.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e9e5503460f94b9f75c/html5/thumbnails/1.jpg)
Module #18:Relations, part I
Rosen 5th ed., ch. 7
![Page 2: Module #18: Relations, part I Rosen 5 th ed., ch. 7.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e9e5503460f94b9f75c/html5/thumbnails/2.jpg)
Binary Relations• Let A, B be any two sets.• A binary relation R from A to B, written (with signature)
R:A↔B, is a subset of A×B. – E.g., let < : N↔N :≡ {(n,m) | n < m}
• The notation a R b or 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)”, or “a relates to b (under relation R)”.
• A binary relation R corresponds to a predicate function PR:A×B→{T,F} defined over the 2 sets A,B; e.g., “eats” :≡ {(a,b)| animal a eats food b}
Relationship?
![Page 3: Module #18: Relations, part I Rosen 5 th ed., ch. 7.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e9e5503460f94b9f75c/html5/thumbnails/3.jpg)
Complementary Relations
• Let R:A↔B be any binary relation.• Then, R:A↔B, the complement of R, is the
binary relation defined byR :≡ {(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)<<} = {(} = {(aa,,bb) | ¬) | ¬aa<<bb} = } = ≥≥
![Page 4: Module #18: Relations, part I Rosen 5 th ed., ch. 7.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e9e5503460f94b9f75c/html5/thumbnails/4.jpg)
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} = >.
• E.g., if R:People→Foods is defined by aRb a eats b, then: b R−1
a b is eaten by a. (Passive voice.)
![Page 5: Module #18: Relations, part I Rosen 5 th ed., ch. 7.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e9e5503460f94b9f75c/html5/thumbnails/5.jpg)
Relations on a Set
• A (binary) relation from a set A to itself is called a relation on the set A.
• E.g., the “<” relation from earlier was defined as a relation on the set N of natural numbers.
• The identity relation IA on a set A is the set {(a,a)|aA}.
![Page 6: Module #18: Relations, part I Rosen 5 th ed., ch. 7.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e9e5503460f94b9f75c/html5/thumbnails/6.jpg)
Reflexivity
• A relation R on A is reflexive if aA, aRa.– E.g., the relation ≥ :≡ {(a,b) | a≥b} is reflexive.
• A relation is irreflexive iff its complementary relation is reflexive.– Note “irreflexive” ≠ “not reflexive”!
– Example: < is irreflexive. (is it not reflexive?)
– Note: “likes” between people is not reflexive, but not irreflexive either. (Not everyone likes themselves, but not everyone dislikes themselves either.)
![Page 7: Module #18: Relations, part I Rosen 5 th ed., ch. 7.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e9e5503460f94b9f75c/html5/thumbnails/7.jpg)
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 on A such that (a,b)R and (b,a)R only if a=b, for all (a,b) A, is antisymmetric – < is antisymmetric, “likes” is not.– “divides” relation: not symmetric, but antisymmetric– Doesn’t care about whether reflexive or irreflexive
• A relation R is called asymmetric if (a,b)R → (b,a)R– Antisymmetric and irreflexive
![Page 8: Module #18: Relations, part I Rosen 5 th ed., ch. 7.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e9e5503460f94b9f75c/html5/thumbnails/8.jpg)
Transitivity
• A relation R is transitive iff (for all a,b,c)(a,b)R (b,c)R → (a,c)R.
• A relation is intransitive if it is not transitive.
• Examples: “is an ancestor of” is transitive.
• “likes” is intransitive.
• “is within 1 mile of” is… ?
![Page 9: Module #18: Relations, part I Rosen 5 th ed., ch. 7.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e9e5503460f94b9f75c/html5/thumbnails/9.jpg)
Totality
• A relation R:A↔B is total if for every aA, there is at least one bB such that (a,b)R.
• If R is not total, then it is called strictly partial.
• A partial relation is a relation that might be strictly partial. Or, it might be total. (In other words, all relations are considered “partial.”)
![Page 10: Module #18: Relations, part I Rosen 5 th ed., ch. 7.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e9e5503460f94b9f75c/html5/thumbnails/10.jpg)
Functionality
• A relation R:A↔B is functional (that is, it is also a partial function R:A→B) if, for any aA, there is at most one bB such that (a,b)R.
• R is antifunctional if its inverse relation R−1 is functional. – Note: A functional relation (partial function) that is also
antifunctional is an invertible partial function.• R is a total function R:A→B if it is both functional
and total, that is, for any aA, there is exactly one b such that (a,b)R. If R is functional but not total, then it is a strictly partial function.
![Page 11: Module #18: Relations, part I Rosen 5 th ed., ch. 7.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e9e5503460f94b9f75c/html5/thumbnails/11.jpg)
Composite Relations
• Let R:A↔B, and S:B↔C. Then the composite SR of R and S is defined as:
SR = {(a,c) | aRb bSc}• Note function composition fg is an example.• The nth power Rn of a relation R on a set A can be
defined recursively by:R0 :≡ IA ; Rn+1 :≡ RnR for all n≥0.
– Negative powers of R can also be defined if desired, by R−n :≡ (R−1)n.
![Page 12: Module #18: Relations, part I Rosen 5 th ed., ch. 7.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e9e5503460f94b9f75c/html5/thumbnails/12.jpg)
§7.2: n-ary Relations
• An n-ary relation R on sets A1,…,An, written R:A1,…,An, is a subsetR A1× … × An.
• The sets Ai are called the domains of R.• The degree (arity) of R is n.
– nullary, unary, binary, ternary, …, n-ary
• R is functional in domain Ai if it contains at most one n-tuple (…, ai ,…) for any value ai within domain Ai.
![Page 13: Module #18: Relations, part I Rosen 5 th ed., ch. 7.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e9e5503460f94b9f75c/html5/thumbnails/13.jpg)
Relational Databases
• A relational database is essentially an n-ary relation R.
• A domain Ai is a primary key for the database if the relation R is functional in Ai.
• A composite key for the database is a set of domains {Ai, Aj, …} such that R contains at most 1 n-tuple (…,ai,…,aj,…) for each composite value (ai, aj,…)Ai×Aj×…
학번 이름 출신고 고교졸업석차학점학생리스트 : 고졸년도
![Page 14: Module #18: Relations, part I Rosen 5 th ed., ch. 7.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e9e5503460f94b9f75c/html5/thumbnails/14.jpg)
Selection Operators
• Let A be any n-ary domain A=A1×…×An, and let C:A→{T,F} be any condition (predicate) on elements (n-tuples) of A.
• Then, the selection operator sC is the operator that maps any (n-ary) relation R on A to the n-ary relation of all n-tuples from R that satisfy C. – I.e., RA, sC(R) = R{aA | sC(a) = T}
![Page 15: Module #18: Relations, part I Rosen 5 th ed., ch. 7.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e9e5503460f94b9f75c/html5/thumbnails/15.jpg)
Selection Operator 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 upper-level classes (juniors and seniors).
![Page 16: Module #18: Relations, part I Rosen 5 th ed., ch. 7.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e9e5503460f94b9f75c/html5/thumbnails/16.jpg)
Projection Operators
• Let A = A1×…×An be any n-ary domain, and
let {ik}=(i1,…,im) be a sequence of indices
all falling in the range 1 to n,
– That is, where 1 ≤ ik ≤ n for all 1 ≤ k ≤ m.
• Then the projection operator on n-tuples
is defined by:
mk iii AAAP 1
:}{
),...,(),...,(11}{ mk iini aaaaP
![Page 17: Module #18: Relations, part I Rosen 5 th ed., ch. 7.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e9e5503460f94b9f75c/html5/thumbnails/17.jpg)
Projection Example
• 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 simply maps each tuple (a1,a2,a3) = (model,year,color) to its image:
• This operator can be usefully applied to a whole relation RCars (database of cars) to obtain a list of model/color combinations available.
{ik}
),(),(),( 3121colormodelaaaa ii
![Page 18: Module #18: Relations, part I Rosen 5 th ed., ch. 7.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e9e5503460f94b9f75c/html5/thumbnails/18.jpg)
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.
![Page 19: Module #18: Relations, part I Rosen 5 th ed., ch. 7.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e9e5503460f94b9f75c/html5/thumbnails/19.jpg)
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).
![Page 20: Module #18: Relations, part I Rosen 5 th ed., ch. 7.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e9e5503460f94b9f75c/html5/thumbnails/20.jpg)
§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.
![Page 21: Module #18: Relations, part I Rosen 5 th ed., ch. 7.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e9e5503460f94b9f75c/html5/thumbnails/21.jpg)
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.
• The 0-1 matrix representationof that “Likes”relation:
1 00
010
0 1 1
Mark
Fred
JoeSallyMarySusan
![Page 22: Module #18: Relations, part I Rosen 5 th ed., ch. 7.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e9e5503460f94b9f75c/html5/thumbnails/22.jpg)
Zero-One Reflexive, Symmetric
• Terms: Reflexive, non-Reflexive, irreflexive,symmetric, asymmetric, and antisymmetric.– These relation characteristics are very easy to
recognize by inspection of the zero-one matrix.
0
0
101
0
0
01
1
0
0
0
0
1
1
1
1
Reflexive:all 1’s on diagonal
Irreflexive:all 0’s on diagonal
Symmetric:all identical
across diagonal
Antisymmetric:all 1’s are across
from 0’s
any-thing
any-thing
any-thing
any-thing anything
anything
![Page 23: Module #18: Relations, part I Rosen 5 th ed., ch. 7.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e9e5503460f94b9f75c/html5/thumbnails/23.jpg)
Using Directed Graphs
• A directed graph or digraph G=(VG,EG) is a set VG of vertices (nodes) with a set EGVG×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=AB, EG=R).
1 00
010
0 1 1
Mark
Fred
JoeSallyMarySusanMR
GR
Joe
Fred
Mark
Susan
Mary
Sally
Node set VG
(black dots)
Edge set EG
(blue arrows)
![Page 24: Module #18: Relations, part I Rosen 5 th ed., ch. 7.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e9e5503460f94b9f75c/html5/thumbnails/24.jpg)
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
Symmetric:Every link isbidirectional
Antisymmetric:
No link isbidirectional
non-antisymmetric Non-reflexive, non-irreflexive
How about asymmetric?