Csc 1302, Honors Principles of Computer Science II (Fall 2021)
Week 4 (17 September 2021)
Pseudo Code for Union, Intersect, and Minus
During class, you will complete coding of the Tuple.clone(), Relation.member(), and the
union, intersect, and minus operators. Pseudo code is given for some of these methods:
public Relation union(Relation r2) {
// Schema part of output relation
Create empty array list for attributes of output relation, call it attrs;
Create empty array list for domains of output relation, call it doms;
Copy values from attributes of "this" relation into attrs;
Copy values from domains of "this" relation into doms;
Create a new Relation object, called rel, with attributes attrs and domains doms, name can be null
//Instance part of output relation
Clone each tuple from the "this" relation and add to rel;
Clone each tuple from r2 and add to rel;
remove duplicates from rel;
return rel;
}
public Relation intersect(Relation r2) {
// Schema part of output relation
Create empty array list for attributes of output relation, call it attrs;
Create empty array list for domains of output relation, call it doms;
Copy values from attributes of "this" relation into attrs;
Copy values from domains of "this" relation into doms;
Create a new Relation object, called rel, with attributes attrs and domains doms, name can be null
//Instance part of output relation
for each tuple in "this" relation:
if tuple also belongs to r2, then
Clone tuple add to rel;
return rel;
}
public Relation minus(Relation r2) {
// Schema part of output relation
Create empty array list for attributes of output relation, call it attrs;
Create empty array list for domains of output relation, call it doms;
Copy values from attributes of "this" relation into attrs;
Copy values from domains of "this" relation into doms;
Create a new Relation object, called rel, with attributes attrs and domains doms, name can be null
//Instance part of output relation
for each tuple in "this" relation:
if tuple does not belong to r2, then
Clone tuple add to rel;
return rel;
}
Please turn in Relation.java and Tuple.java under assignment sep22