I'm really confused on the difference between disjoint and overlapping design constraints in relational databases. I've looked around, but have had a hard time finding an understandable example. Could someone please explain this to me via an example?
Thanks!
Disjoint events, or mutually exclusive events, are events that have no outcomes in common. Overlapping events are events that have one or more outcomes in common.
Two or more instances of the super class are participating in two or more sub classes then it is called overlapping constraints.
There are three constraints that may apply to a specialization/generalization: membership constraints, disjoint constraints and completeness constraints.
In a disjoint specialization, also called an exclusive specialization, an individual of the parent class may be a member of only one specialized subclass. In an overlapping specialization, an individual of of the parent class may be a member of more than one of the specialized subclasses.
Say you have a super class 'musician' then two sub classes 'singer' and 'guitar player'.
In a disjoint constraint you would have to put the musician in either one or the other sub classes. In an overlapping constraint the musician can be put in both.
Let's say you have a super class 'account' with sub classes 'Savings Account' and 'Current Account'. This is a disjoint constraint situation because a bank account can either be Savings or Current. It cant be both at the same time.
For an overlapping constraint situation, let's say we have a super class 'Person' and subclasses 'Customer' and 'Employee'. In this case, a person can be Customer and Employee both. Therefore, overlapping.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With