Skip to content

Entity Set Corelations

Specialisation

Minimal Approach

felinefur_colourcatmeowing_pitchleopardteeth_sharpness

feline(ID, fur_colour) cat(ID, meowing_pitch) leopard(ID, teeth_sharpness)

The ID gives us access to the fur colour attribute of each feline. Two objects exist for each feline, the child class and the parent class

Normalised Approach

catmeowing_pitchwet_catdampness_constantspotted_catspots_size

cat(ID, meowing_pitch) wet_cat(ID, meowing_pitch, dampness_constant) spotted_cat(ID, meowing_pitch, spots_size)

This layout gives us access to all needed attributes directly. But imagine the case in which a cat is both a wet cat and a spotted cat. In a situation like this, we see redundancy. The attribute meowing_pitch is defined for both wet_cat and spotted_cat, but only needs to be used once.

Aggregation

 writerguidereviewerparticipate_inis_givenremarks

Here, is_given has the schema

is_given(writer_id, guide_ID, remarks)