Need some clarity on Dependent entities
Hi Sachin. The passport example illustrates existence. That is a passport cannot exist without a person.
Weak and strong entities have to do with identification (and not existence).
For example, an Order Line cannot exist without an Order, and in addition, an Order Line is identified by its Order. Order Line #3 can appear on hundreds of Orders, and therefore the Order Number is required for an Order Line's identification. From an implementation perspective, you would use an identifying relationship as you mentioned. However, capturing that Order Line is a weak (dependent) entity is an important business rule, separate from how it is being implemented.
Thanks Steve. Can we conclude that both dependent existence and dependent identification conditions need to be met for classifying an entity as weak.
If an entity has dependent existent but independent identification like passport, is not a weak entity.
Can we also say terms dependent entity and weak entity cannot be used synonymously? I hope I am not splitting hair, but need this clarity of understanding.
Or can we say a dependent (weak) entity can be either (existence dependent & identification independent) or (existence dependent & identification dependent).
In case of former, we don't need an identifying relationship, i.e, we can have a NOT NULL foreign key to take care of this.
In case of latter, we need to have an identifying relationship, where the key of the weak entity can not be derived without using the key of the parent entity, whether we make a composite key or create a surrogate key with every unique combination of keys of two tables.
I agree with your conclusion:
Can we conclude that both dependent existence and dependent identification conditions need to be met for classifying an entity as weak.
I use the terms dependent and weak as synonyms, but I have been told by one of my students (and am starting to agree) that the term dependent is more meaningful and that the term weak is more ambiguous. Just using the term dependent may be the right way to go.