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 નહીં.
- યાદ રાખવાની યુક્તિ: એક વ્યક્તિ (strong) સામે hotel Room 101 (weak, hotel પણ જોઈએ).