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:AB is a relation from A to B • A relation from A to B is not always a function f:AB (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 aA, 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 SR of R and S is defined as: SR = {(a,c) | aRb bSc} • Function composition fg is an example. • The nth power Rn of a relation R on a set A can be defined recursively by: R1 :≡ R ; Rn+1 :≡ RnR 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)} RS = {(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 RCars (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 anything 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 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). 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 aA. 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 nZ 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