See also slides
A relation is a table
Relations are unordered ⇒ relations are sets
tuple and domain constraints
- tuple: expresses conditions on the values of each tuple
- domain constraint: tuple constrain that involves a single attributes
unique identifier
A superkey is a set of attributes for a relation if cannot contain two distinct tuples and such that
A (candidate) key for if is a minimal superkey
ex: superkey of RegNum
primary value
handles null
value
Presence of nulls in keys
definition
Each relation must have a primary key on which nulls are not allowed.
notation: the attributes of the primary keys are underlined
⇒ references between relations are realised through primary keys
Remark
A set of fields is a key for a relation if:
- No two distinct tuples can have same values in all key fields
- This is not true for any subset of the key (minimal)
If #2 is false, then a superkey
If there’s > 1 key for a relation, one of the keys is chosen to be primary key
Example:
requirements:
- For a given student and course, there is a single grade.
- Students can take only one course, and received a single grade for that courses; further, no two students in a course receive the grade
IC are validated when data is updated
interpolation constraints (foreign keys)
Referential integrity constraints are imposed in order to guarantee values refer to existing tuples
Definition
A foreign key requires that the values on a set of attributes of a relation must appear as values for the primary key of another relation
Ex: sid is a foreign key referring to Students
If al foreign key constraints are enforced ⇒ referential integrity is enforced
enforcing referential integrity
See also source