#include #include #include "Attribute.h" //Functional class Relation { string name; //The title the user gives it vector att; //A vector of the columns itn size; public: Relation(string n, vector a) { name = n; att = a; size = 0; } int getSize() { return size; } void addTuple(vector tuple) { //Loop through the attribute columns for(int i = 0; i < att.size(); i++) { //Loop through the elements in the i'th column for(int j = 0; j < att[i].values.size(); j++){ //In this column, at this element's spot, assign an element from the tuple vector to this spot att[i].addRow(tuple[i]); size++; } } } void removeTuple(int tupleNum) { if (tupleNum > att[0].getSize() || tupleNum < 0) { cout<<"ERROR! index out of bound"< getAttributes() { return att; } void projectQuery(string input) { cout << "-----------Initiated Query Projection---------" << endl; for(int i = 0; i < att.size(); i++) { if(att[i].getName() == input) { cout << "Column Title: " << input << endl; for(int j = 0; j < att[i].getSize(); j++) { cout << att[i].values[j] << endl; } break; } else cout << "Attribute input not valid" << endl; } } void display() { cout<<"\n\nDisplay of relation--------------------------------"<