Propagation constraint: Difference between revisions

Content deleted Content added
No edit summary
 
(20 intermediate revisions by 19 users not shown)
Line 1:
In database systems, a '''propagation constraint''' "details what should happen to a related table when we update a row or rows of a target table" (Paul Beynon-Davies, 2004, p.108). Tables are linked using [[primary key]] to [[foreign key]] relationships. It is possible for users to update one table in a relationship in such a way that the relationship is no longer consistent and this is known as breaking [[referential integrity]]. An example of breaking referential integrity: if a table of employees includes a department number for 'Housewares' which is a foreign key to a table of departments and a user deletes that department from the department table then Housewares employees records would refer to a non-existent department number.
According to Beynon-Davies (2004, p.108) "''[a] propagation constaint details what should happen to a related table when we update a row or rows of a target table''". He further states that for all [[relationship]]s, one should define how to handle deletions of target and related [[tuple]]s. There are three possibilities:
* Restricted Delete - cannot delete the target row until all rows that point to it (via [[foreign key]]s) have been deleted.
* Cascades Delete - can delete the target row and all rows that point to it (via foreign keys) are also deleted.
* Nullifies Delete - can delete the target row and all foreign keys (pointing to it) are set to [[null]].
 
Propagation constraints are methods used by [[relational database management system]]s (RDBMS) to solve this problem by ensuring that relationships between tables are preserved without error. In his database textbook, Beynon-Davies explains the three ways that RDBMS handle deletions of target and related [[tuple]]s:
Beynon-Davies, P. (2004) ''Database Systems'' Third Edition, Palgrave.
 
* '''Restricted Delete''' - the user cannot delete the target row until all rows that point to it (via [[foreign key]]s) have been deleted. This means that all Housewares employees would need to be deleted, or their departments changed, before removing the department from the departmental table.
* '''Cascades Delete''' - can delete the target row and all rows that point to it (via foreign keys) are also deleted. The process is the same as a restricted delete, except that the RDBMS would delete the Houseware employees automatically before removing the department.
* '''Nullifies Delete''' - can delete the target row and all foreign keys (pointing to it) are set to [[Null (SQL)|null]]. In this case, after removing the housewares department, employees who worked in this department would have a [[Null (SQL)|NULL]] (unknown) value for their department.
 
==Bibliography==
[[Category:Data modeling]]
*Beynon-Davies, P. (2004) ''Database Systems'' Third Edition, [[Palgrave Macmillan]].
 
[[Category:Relational database management systems]]
 
{{Compu-stub}}