DBMS · Module 2 — Data Modeling (ER)
Weak Entities, Generalization & Specialization
A weak entity borrows its identity from a parent (double box + partial key), while generalization lifts shared facts into a common parent linked by IS-A — depending versus sharing.
Aisha's grade is A.
Now delete her enrollment in DBMS 101, but keep the grade.
What is that A now? A grade in what? Given to whom?
Why & what
It's nothing. Just a floating letter.
Some things in your model simply can't stand alone. If you pretend they can, you end up with leftover rows that point to nothing.
There's an opposite problem too. Look at Student and Instructor. Both store a name. Both store an email. You've now written the same two facts twice, in two places.
Two problems, two fixes:
A weak entity can't be identified by its own facts alone. It needs a parent entity to give it identity.
Generalization is the opposite move: take facts that two entities share, and lift them up into one shared parent — so they're written once.
One is about depending on something. One is about sharing something. Both are about not repeating yourself.
How it works
You've just learned cardinality. Now let's use these two ideas on our own data.
- Spot the one that can't stand alone. Grade has one fact: the letter. "A" doesn't identify anything — hundreds of grades are "A". It has no key of its own. So Grade is a weak entity.
- Give it a parent. Grade hangs off Enrollment. That link is called an identifying relationship. In the drawing, the weak entity gets a double box, and the link gets a double line. Delete the enrollment, and the grade goes with it.
- Build its identity. Grade's full identity = the parent's key + a small piece of its own (called a partial key, shown with a dashed underline). So a grade is identified as (roll 101, DBMS 101) + which grade slot it is. Never as just "A".
- Now the opposite problem. Student and Instructor both have a name and an email. Lift those two facts into a new parent called Person. Leave behind only what's different: roll_no stays in Student, dept stays in Instructor. That move is generalization.
- Read the link. The parent connects to its children with an IS-A link, drawn as a triangle. Aisha IS-A Person. Prof. Rao IS-A Person. And if you'd started with Person and split it downward instead, that's called specialization — same drawing, opposite thinking.

Notice: the double box needs a parent; the triangle shares one.
Common confusion
People think "weak entity" means "an entity with a pointer to another table." It doesn't. Almost every entity has a pointer somewhere — that alone doesn't make it weak.
The real test is about identity, not pointers. Ask: can I identify this thing without its parent's key?
- Enrollment points to Student, but if it has its own enrollment ID, it can identify itself. Not weak.
- Grade cannot identify itself at all. Weak.
Generalization vs specialization is the other muddle, and here's the honest answer: they produce the exact same drawing. The only difference is which direction you were thinking.
- You had Student and Instructor, noticed shared facts, made Person → generalization (bottom-up)
- You had Person, split it into Student and Instructor → specialization (top-down)
Don't spend more time on it than that. Just be able to say which direction you took.
Interview angle
- "What is a weak entity? Give an example." — It has no key of its own, so it's identified using its parent's key plus a partial key. Example: Grade depending on Enrollment. Or a line item depending on an order.
- "Generalization vs specialization?" — Same structure, opposite direction. Bottom-up: merge shared facts into a parent. Top-down: split a parent into subtypes. Mention that the diagram is identical — that shows you actually understand it instead of memorizing it.
- "If generalization means an extra join to get a full record, why do it?" — Give the honest trade-off: it stops you defining the same facts twice, and keeps shared rules in one place. The cost is a join. Naming the cost is what makes this answer good.
Recap
A weak entity borrows its identity from a parent (double box + partial key), while generalization lifts shared facts into a common parent linked by IS-A — depending versus sharing.