What do you mean by a Weak Entity? Give an example.
উত্তর: DBMS বা Database Management System-এর ER Model-এ Weak Entity বা উইক এন্টিটি বলতে এমন একটি entity-কে বোঝায়, যাকে তার নিজের attribute দ্বারা এককভাবে বা uniquely শনাক্ত করা যায় না। এই ধরনের entity নিজের অস্তিত্ব ও পরিচয়ের জন্য অন্য একটি শক্তিশালী entity বা Strong Entity-এর উপর নির্ভরশীল থাকে।
অর্থাৎ, Weak Entity-এর নিজস্ব সম্পূর্ণ Primary Key থাকে না। তাই তাকে শনাক্ত করার জন্য Strong Entity-এর Primary Key এবং Weak Entity-এর নিজের কোনো আংশিক key বা Partial Key একসাথে ব্যবহার করা হয়।
সহজ ভাষায়: যে entity নিজে নিজে সম্পূর্ণভাবে চিহ্নিত হতে পারে না এবং অন্য entity-এর সাহায্য ছাড়া যার অস্তিত্ব বোঝা যায় না, তাকে Weak Entity বলা হয়।
Weak Entity হলো এমন একটি entity, যার নিজস্ব Primary Key থাকে না এবং যাকে uniquely identify করার জন্য একটি Strong Entity-এর উপর নির্ভর করতে হয়। Weak Entity সাধারণত Strong Entity-এর Primary Key এবং নিজের Partial Key-এর সাহায্যে শনাক্ত হয়। ER Diagram-এ Weak Entity-কে double rectangle দ্বারা দেখানো হয়।
ডেটাবেজে অনেক entity থাকে। কিছু entity নিজের attribute-এর সাহায্যে আলাদাভাবে শনাক্ত করা যায়। এগুলোকে Strong Entity বলা হয়। আবার কিছু entity আছে যাদের নিজস্ব কোনো পূর্ণাঙ্গ Primary Key থাকে না। তাই তারা অন্য entity-এর উপর নির্ভর করে। এগুলোই Weak Entity।
যেমন, কোনো কোম্পানির database-এ Employee একটি Strong Entity হতে পারে, কারণ প্রত্যেক employee-কে Employee_ID দ্বারা আলাদাভাবে শনাক্ত করা যায়। কিন্তু Dependent entity, যেমন employee-এর ছেলে, মেয়ে, স্ত্রী বা বাবা-মা—এরা employee ছাড়া আলাদাভাবে database-এ অর্থপূর্ণ নয়। তাই Dependent entity-কে Weak Entity বলা যায়।
ধরা যাক, একটি কোম্পানির database-এ Employee এবং Dependent নামে দুটি entity আছে।
এখানে Employee হলো Strong Entity, কারণ Employee_ID দ্বারা প্রত্যেক employee-কে আলাদাভাবে শনাক্ত করা যায়।
কিন্তু Dependent entity-এর নিজস্ব কোনো Primary Key নেই। একই নামের dependent একাধিক employee-এর থাকতে পারে। তাই Dependent-কে শনাক্ত করার জন্য Employee_ID-এর সাহায্য দরকার হয়।
তাই এই ক্ষেত্রে Dependent হলো Weak Entity এবং Employee হলো Strong Entity।
| Employee_ID | Employee_Name | Dependent_Name | Relation |
|---|---|---|---|
| 101 | Rahul | Amit | Son |
| 102 | Sima | Amit | Brother |
উপরের table-এ দেখা যাচ্ছে, Amit নামটি দুইজন employee-এর dependent হিসেবে থাকতে পারে। শুধু Dependent_Name দেখে তাকে uniquely identify করা যাচ্ছে না। কিন্তু Employee_ID-এর সাথে Dependent_Name মিলিয়ে দেখলে বোঝা যায় কোন dependent কোন employee-এর সাথে সম্পর্কিত।
তাই Dependent_Name একা যথেষ্ট নয়; Employee_ID-এর সাহায্য দরকার। এই কারণেই Dependent একটি Weak Entity।
Partial Key হলো Weak Entity-এর এমন একটি attribute, যা একা Weak Entity-কে uniquely identify করতে পারে না, কিন্তু Strong Entity-এর Primary Key-এর সাথে যুক্ত হলে Weak Entity-কে identify করতে সাহায্য করে।
উদাহরণ: Dependent entity-তে Dependent_Name একটি partial key হতে পারে। কিন্তু শুধু Dependent_Name যথেষ্ট নয়। Employee_ID + Dependent_Name একসাথে ব্যবহার করলে dependent-কে শনাক্ত করা যায়।
Weak Entity এবং Strong Entity-এর মধ্যে যে relationship Weak Entity-কে identify করতে সাহায্য করে, তাকে Identifying Relationship বলা হয়।
এই relationship-এর মাধ্যমে বোঝা যায় যে Weak Entity কোনো Strong Entity-এর উপর নির্ভরশীল। ER Diagram-এ Identifying Relationship সাধারণত double diamond দ্বারা দেখানো হয়।
উদাহরণ: Employee এবং Dependent-এর মধ্যে relationship হতে পারে has dependent। এই relationship-এর মাধ্যমে Dependent entity Employee entity-এর সাথে যুক্ত হয়।
| উপাদান | ER Diagram-এ প্রকাশ | অর্থ |
|---|---|---|
| Weak Entity | Double Rectangle | নিজে নিজে uniquely identify হতে পারে না |
| Strong Entity | Single Rectangle | নিজস্ব Primary Key থাকে |
| Identifying Relationship | Double Diamond | Strong Entity ও Weak Entity-এর সম্পর্ক |
| Partial Key | Dashed Underline | Weak Entity শনাক্ত করতে সাহায্য করে |
| বিষয় | Strong Entity | Weak Entity |
|---|---|---|
| Primary Key | নিজস্ব Primary Key থাকে | নিজস্ব সম্পূর্ণ Primary Key থাকে না |
| নির্ভরশীলতা | অন্য entity-এর উপর নির্ভর করে না | Strong Entity-এর উপর নির্ভরশীল |
| অস্তিত্ব | স্বাধীনভাবে exist করতে পারে | Strong Entity ছাড়া সাধারণত exist করতে পারে না |
| ER Diagram Symbol | Single Rectangle | Double Rectangle |
| উদাহরণ | Employee, Student, Customer | Dependent, Order_Item, Section |
ধরা যাক, একটি online shopping database-এ Order এবং Order_Item entity আছে।
এখানে Order হলো Strong Entity, কারণ Order_ID দ্বারা order শনাক্ত করা যায়।
কিন্তু Order_Item entity নিজে একা সম্পূর্ণভাবে শনাক্ত হতে পারে না। কারণ Item_No একাধিক order-এ একই হতে পারে। তাই Order_Item শনাক্ত করতে Order_ID-এর সাহায্য দরকার হয়।
সুতরাং, Order_Item হলো Weak Entity।
শিক্ষক ছাত্রদের এভাবে বোঝাতে পারেন:
ধরা যাক, একটি স্কুলে ছাত্রদের তথ্য রাখা হচ্ছে। Student entity-তে Roll Number আছে, তাই প্রত্যেক ছাত্রকে Roll Number দিয়ে আলাদাভাবে শনাক্ত করা যায়। তাই Student একটি Strong Entity।
কিন্তু যদি ছাত্রের guardian-এর তথ্য রাখা হয়, যেমন Guardian_Name, Relation, Phone Number—তাহলে শুধু Guardian_Name দেখে বোঝা যাবে না সে কোন ছাত্রের guardian। একই নামের guardian অনেক ছাত্রের থাকতে পারে। তাই Guardian entity-কে শনাক্ত করতে Student-এর Roll Number দরকার হবে।
এই ধরনের dependent entity-ই হলো Weak Entity।
প্রথমে Weak Entity-এর সংজ্ঞা লিখবে।
তারপর লিখবে যে Weak Entity-এর নিজস্ব Primary Key থাকে না।
এরপর Strong Entity-এর উপর নির্ভরশীলতার কথা লিখবে।
Partial Key এবং Identifying Relationship-এর কথা উল্লেখ করবে।
শেষে Employee-Dependent বা Order-Order_Item-এর উদাহরণ দিলে উত্তরটি পূর্ণাঙ্গ হবে।
Weak Entity হলো এমন entity, যার নিজের Primary Key নেই এবং যাকে identify করতে Strong Entity-এর সাহায্য লাগে।
DBMS-এর ER Model-এ Weak Entity হলো এমন একটি entity, যার নিজস্ব Primary Key থাকে না এবং যাকে তার নিজের attribute দ্বারা uniquely identify করা যায় না। Weak Entity নিজের অস্তিত্ব ও পরিচয়ের জন্য Strong Entity-এর উপর নির্ভরশীল থাকে। Weak Entity শনাক্ত করার জন্য Strong Entity-এর Primary Key এবং Weak Entity-এর Partial Key একসাথে ব্যবহার করা হয়। ER Diagram-এ Weak Entity-কে double rectangle দ্বারা দেখানো হয় এবং Strong Entity-এর সাথে তার identifying relationship double diamond দ্বারা দেখানো হয়। উদাহরণস্বরূপ, Employee entity-এর ক্ষেত্রে Dependent entity একটি Weak Entity, কারণ Dependent employee ছাড়া স্বাধীনভাবে শনাক্ত করা যায় না।