First page Back Continue Last page Graphics

Inference rules


Notes:

A lot of the database theory we study deals with trying to simplify or even eliminate the verification of constraints.
The bank account example shows that where it was difficult to verify in the large table that every account has only one balance, in the second example this has become trivial since every account number and thus also every balance can only occur once. There is no more need to check whether the duplicates have the same value as there are no more duplicates.
Another approach to reduce the work is to only check changes that are made during an update. We will not investigate this in Databases 1 as it is related to the topic of dynamic constraints that we don't cover.
We sometimes notice that there is redundancy among the constraints. A typical example is transitivity: If for every course there is only one lecturer, and if every lecturer has only one phone number, then for every course there is only one lecturer's phone number. So if we have checked that for every course there is only one lecturer and if we have checked that for every lecturer there is only one phone number we no longer have to check that for every course there is only one lecturer's phone number because that is automatically true. We can thus save time and effort by analyzing whether some constraints already logically imply some other constraints we wish to verify. We use a system of inference rules to find such dependencies between constraints.
To further reduce the amount of work we not only want to eliminate unnecessary constraints, but find the smallest set of constraints, that can be verified with the least amount of effort.