Theory
जिस line item की अपनी कोई ज़िंदगी नहीं
Meera के design में, एक Customer साफ़ तौर पर अकेला खड़ा होता है: इसे एक customer number दीजिए और यह मौजूद हो जाता है, बस।
पर एक order पर एक अकेली line सोचिए, '2 kg चीनी'। क्या 'line 1' अपने आप में कुछ मायने रखती है? नहीं, किस order की line 1? यह अपने parent order के बिना न तो मौजूद हो सकती है, न पहचानी जा सकती है।
कुछ entities आत्मनिर्भर हैं; कुछ पूरी तरह निर्भर। Databases इसे strong बनाम weak entities कहते हैं, और यह बदल देता है कि आप उन्हें कैसे पहचानते हैं। Meera के orders आपको ठीक-ठीक दिखाएँगे कि क्यों।
Theory
एक व्यक्ति बनाम एक hotel room number
एक व्यक्ति की अपनी एक पहचान होती है, एक Aadhaar number उन्हें कहीं भी पहचानता है (strong entity)। पर 'Room 101'? किस hotel का Room 101? Room number सिर्फ एक ख़ास hotel के अंदर कुछ मायने रखता है; अपने आप में यह अस्पष्ट है (weak entity)। Room को पहचानने के लिए आपको hotel + room number साथ चाहिए। Weak चीज़ें unique होने के लिए अपने parent की पहचान उधार लेती हैं।
Theory
दोनों, ठीक-ठीक
- Strong entity: स्वतंत्र रूप से मौजूद होती है और इसकी अपनी key होती है (एक primary key attribute)। Customer, Item, Order। एक single rectangle के रूप में खींची।
- Weak entity: अपने आप न तो मौजूद हो सकती है न पहचानी जा सकती; यह एक parent (owner) entity पर निर्भर होती है। इसके पास सिर्फ एक partial key (एक discriminator) होती है जो अपने parent के अंदर unique होती है। इसकी पूरी पहचान = parent की key + इसकी अपनी partial key। एक double rectangle के रूप में खींची, एक double-diamond identifying relationship से जुड़ी।
एक Order Item weak है: इसे मौजूद रहने को अपना Order चाहिए, और 'line 1' सिर्फ उस एक order के अंदर unique है।
Quiz
एक 'Order Line Item' को WEAK entity क्यों माना जाता है?
- यह अपने parent Order के बिना न तो मौजूद हो सकती है न uniquely पहचानी जा सकती है
- इसके strong होने के लिए बहुत कम attributes हैं
- यह एक छोटी table में store होती है
- इसके कोई relationships ही नहीं हैं
Show the answer
यह अपने parent Order के बिना न तो मौजूद हो सकती है न uniquely पहचानी जा सकती है
एक weak entity एक parent पर existence-dependent होती है: एक order line का अपने order के बिना कोई मतलब नहीं, और 'line 1' सिर्फ एक दिए order के अंदर unique है, तो इसके अपने attributes इसे अकेले नहीं पहचान सकते। यह unique होने को Order की key उधार लेती है। कमज़ोरी पहचान की निर्भरता के बारे में है, size या attribute की गिनती नहीं, जो ठीक वह ग़लतफ़हमी है जो गलत options रखते हैं।
Think first
एक weak entity को आप कैसे पहचानते हैं?
दो अलग orders में से हर एक की एक 'line 1' है। अगर एक weak Order-Item की partial key सिर्फ line number है, तो database दोनों 'line 1' को अलग कैसे बताता है? यह कौन सी पूरी पहचान इस्तेमाल करता है?
Show the answer
यह parent Order की key + partial key को जोड़ता है: 'Order 5001, line 1' बनाम 'Order 5002, line 1', अब unique। अकेला line number (partial key / discriminator) orders में दोहराता है, तो यह सिर्फ एक order के अंदर unique है। एक weak entity की पूरी पहचान हमेशा owner key + discriminator होती है, ठीक जैसे hotel + room number एक room को पहचानता है।
Watch out
Marks कहाँ कटते हैं
यह सोचना कि 'weak' का मतलब 'छोटा' या 'गैर-महत्वपूर्ण' है, इसका मतलब एक parent पर existence-और-identity निर्भर है। partial key भूलना (सिर्फ parent के अंदर unique) और यह कि पूरी पहचान को parent key + partial key चाहिए। और diagram symbols: strong = single rectangle, weak = double rectangle एक double-diamond identifying relationship के साथ। Exams सही symbols और parent-key पहचान नियम के marks देते हैं।
Theory
इसीलिए आगे keys मायने रखती हैं
विषय पर ध्यान दीजिए: चीज़ों को uniquely पहचानना databases का धड़कता दिल है, एक customer number, एक order number, एक parent key जमा एक partial key। अगला lesson 'पहचान' को keys के पूरे परिवार के साथ सटीक बनाता है: super, candidate, primary, composite, foreign, unique। Weak entities आपका पहला संकेत हैं कि सही key चुनना केंद्रीय design कौशल है। आगे: attribute types, फिर keys ख़ुद।
Summary
Key takeaways
- एक strong entity स्वतंत्र रूप से मौजूद होती है और इसकी अपनी key होती है (Customer, Item); single rectangle।
- एक weak entity एक parent के बिना न तो मौजूद हो सकती है न पहचानी जा सकती है (Order Item को अपना Order चाहिए); double rectangle।
- एक weak entity के पास सिर्फ एक partial key (discriminator) होती है, अपने parent के अंदर unique।
- इसकी पूरी पहचान = parent की key + partial key।
- कमज़ोरी पहचान की निर्भरता के बारे में है, size नहीं।
- याद रखने का hook: एक व्यक्ति (strong) बनाम hotel Room 101 (weak, hotel भी चाहिए)।