Entity-Relationship Diagram বাস্তব জগতকে এন্টিটি হিসেবে দেখায়। এটি 1976 সালে P.P.Chen দ্বারা পরিচয় করানো হয়েছিল এবং ER Diagram, E R Model ইত্যাদি নামে পরিচিত। ER Diagram এন্টিটি সেটের সম্পর্কগুলো প্রদর্শন করে।
প্রথমে দেখি এতে কী কী থাকে:
এন্টিটি (Entity)
DBMS-এ এন্টিটি হলো বাস্তব জগতের একটি অবজেক্ট যার অস্তিত্ব রয়েছে। উদাহরণস্বরূপ, একটি School ডাটাবেসে, এন্টিটি হতে পারে Teachers, Students, Courses, ইত্যাদি।

অ্যাট্রিবিউট (Attributes)
এন্টিটির অ্যাট্রিবিউট থাকে, যেগুলো তার বৈশিষ্ট্য বর্ণনা করে, উদাহরণস্বরূপ, Teachers এন্টিটির জন্য অ্যাট্রিবিউট হলো Teacher_Name, Teacher_Address, Teacher_Subject, ইত্যাদি। অ্যাট্রিবিউটের মান ডাটাবেসে সংরক্ষিত হয়।

দুর্বল এন্টিটি (Weak Entity)
DBMS-এ দুর্বল এন্টিটির কোনো প্রাইমারি কি নেই এবং এরা প্যারেন্ট এন্টিটির ওপর নির্ভরশীল। এরা মূলত অন্যান্য এন্টিটির ওপর নির্ভরশীল, উদাহরণস্বরূপ, একটি প্রফেসরের ডিপেন্ডেন্টরা।

শক্তিশালী এন্টিটি (Strong Entity)
শক্তিশালী এন্টিটির একটি প্রাইমারি কি থাকে। এর দুর্বল এন্টিটি থাকে যা শক্তিশালী এন্টিটির ওপর নির্ভরশীল। এর অস্তিত্ব অন্য কোনো এন্টিটির ওপর নির্ভরশীল নয়।
উদাহরণস্বরূপ, Professor একটি শক্তিশালী এন্টিটি:

প্রাইমারি কি (Primary Key)
প্রতিটি টেবিলের একটি প্রাইমারি কি থাকে এবং এর নাল মান থাকতে পারে না। একটি প্রাইমারি কি হতে পারে StudentID, SSN, AccountNumber, ইত্যাদি।

মাল্টিভ্যালুড অ্যাট্রিবিউট (Multivalued Attribute)
একটি অ্যাট্রিবিউট যাতে একই সময়ে একটি এন্টিটির জন্য একাধিক মান থাকে, তাকে মাল্টিভ্যালুড অ্যাট্রিবিউট বলা হয়।
উদাহরণস্বরূপ, একজন ছাত্রের টেকনিক্যাল স্কিল যা হতে পারে প্রোগ্রামিং, ওয়েব ডেভেলপমেন্ট, ইত্যাদি।

কম্পোজিট অ্যাট্রিবিউট (Composite Attribute)
যদি একটি অ্যাট্রিবিউটে দুটি বা ততোধিক অন্য অ্যাট্রিবিউট থাকে, তবে তাকে কম্পোজিট অ্যাট্রিবিউট বলা হয়।
উদাহরণস্বরূপ, ছাত্রের নাম ভাগ করা যেতে পারে ছাত্রের প্রথম নাম, মিডিল নাম, এবং লাস্ট নেম।

ডেরাইভড অ্যাট্রিবিউট (Derived Attribute)
নাম অনুযায়ী, ডেরাইভড অ্যাট্রিবিউট হলো একটি অ্যাট্রিবিউট যার মান অন্য একটি অ্যাট্রিবিউট থেকে গণনা করা যায়।
উদাহরণস্বরূপ, ছাত্রের বয়স তার জন্ম তারিখ থেকে গণনা করা যায়।

ER ডায়াগ্রাম উদাহরণ
এখানে Hospital-এর জন্য একটি ER ডায়াগ্রাম:
- এতে তিনটি এন্টিটি রয়েছে: Patient, Doctor এবং Tests।
- Age হলো Patient Entity-এর একটি ডেরাইভড অ্যাট্রিবিউট
- Tests এন্টিটিতে Name হলো একটি প্রাইমারি কি
- Doctor এন্টিটিতে ID হলো একটি প্রাইমারি কি
- Patient এন্টিটিতে ID হলো একটি প্রাইমারি কি
