The Schema

The database schema consists of three valid-time relation schemas, Emp, Skills, and Dept. They are defined as follows.

Relation Emp uses the attributes Name, Salary, and Dept for recording the salaries of employees and the departments where they work. In addition, it contains attributes Gender and D-birth which indicate the gender and date of birth of an employee. While the name, salary, and department of an employee varies over time, both Gender and D-birth are time-invariant.

Relation Skills records the association of employees with skills via the two attributes Name and Skill. The skills of an employee may vary over time. For example, employees are considered to have the skill ``driving'' only during those interval(s) when they hold valid licenses.

Relation Dept records the association of employees, as managers, with departments, and it contains three attributes, Department, recording a department name, Manager, recording the manager of the department, and Budget, recording the budget of the department.

Attributes Name, Dept, Department, Skill, and Manager are of type textString; attribute Gender is one of F (female) and M (male); Salary and Budget are of type integer; and D-birth is a user-defined time value which may be compared with valid times.

The relation schemas obey the following snapshot functional and multivalued dependencies:


For Emp: 

Name Salary
Name Dept
Name Gender
Name D-birth
For Skills:
Name $\mbox{$\rightarrow \!\!\! \rightarrow \;$}$ Skill (and Name $\not\rightarrow$Skills)
For Dept:
Department Manager
Manager Department
Department Budget

Note that Name is the primary key of Emp (it is the only candidate key). For Skills, there is no non-trivial key. For Dept, each of Department and Manager is a candidate key, and Department is selected as the primark key.

Each of the relation schemas are in snapshot Boyce-Codd normal form.

It is emphasized that the notion of key does not capture correspondence between attribute values and the real-world objects they represent. As one consequence, it is possible in this schema, e.g., for a person to change Name attribute value over time.

The attribute Manager of Dept is a foreign key for the attribute Name of Emp. Thus, a tuple is allowed to exist in the Dept relation only if, for each non-empty snapshots of this tuple, the Manager attribute value exists as a Name value of some tuple in the simultaneous snapshot of the Emp relation.