Semijoin and Composition - SQL
For semijoin, the dyadic relational operator MATCHING, defined thus:
r1 MATCHING r2, where r1 and r2 are relations such that r1 JOIN r2 is defined, is equivalent to
(r1 JOIN r2) {r1-attrs}
where r1-attrs is a commalist containing all and only the attribute names of r1.
and the example
COURSE MATCHING EXAM_MARK
is given as a relational expression for the predicate, "There exist a student StudentId and a mark Mark such that StudentId sat the exam and scored Mark marks for course CourseId and CourseId is entitled Title" (which could be abbreviated to "At least one student sat the exam for Course CourseId, entitled Title"). The resulting relation consists of just those tuples in COURSE that have at least one matching tuple in EXAM_MARK.