خانه/ وبلاگ/ نمادگذاری Chen و Crow's Foot در نمودار ER؛ تفاوت و نحوه‌ی خواندن
طراحی و مدل‌سازی

نمادگذاری Chen و Crow's Foot در نمودار ER؛ تفاوت و نحوه‌ی خواندن

طراحی و مدل‌سازی ۵ آبان ۱۴۰۵ 8 دقیقه مطالعه

نمودار ER را به چند شکل می‌توان کشید. دو نمادگذاری معروف Chen (در کتاب‌های درسی) و Crow's Foot یا «پای کلاغ» (در ابزارهای عملی) هستند. هر دو یک اطلاعات را می‌گویند؛ فقط شکل کشیدنشان فرق دارد. در این مقاله یک مثال را با هر دو می‌کشیم.

نمادگذاری Chen

در Chen هر چیز شکل مخصوص خودش را دارد: موجودیت مستطیل، صفت بیضی، ارتباط لوزی. کلید با زیرخط مشخص می‌شود و روی خطوط ارتباط، نوع نسبت (1، N، M) نوشته می‌شود.

M N Enroll Grade Title CourseId Name StudentId Course Student
Chen: مستطیل = موجودیت، بیضی = صفت (زیرخط‌دار = کلید)، لوزی = ارتباط. صفت Grade متعلق به ارتباط است، نه یکی از دو موجودیت.

نمادگذاری Crow's Foot (پای کلاغ)

در Crow's Foot هر موجودیت یک جعبه‌ی جدول‌مانند است که صفت‌ها داخلش نوشته می‌شوند؛ ارتباط یک خط ساده است و کاردینالیتی با نماد روی دو سر خط نشان داده می‌شود. چون رابطه‌ی چندبه‌چند معمولاً با جدول واسط نمایش داده می‌شود، همین مثال این‌طور دیده می‌شود:

StudentPK StudentIdName EnrollmentFK StudentIdFK CourseIdGrade CoursePK CourseIdTitle

نمادهای کاردینالیتی در Crow's Foot

نماد روی خطمعنیکاردینالیتی
دو خط عمودی ||دقیقاً یکی (اجباری)(1,1)
دایره + یک خط عمودی ○|صفر یا یکی (اختیاری)(0,1)
پنجه + یک خط عمودی (پای کلاغ با |)یک یا چندتا(1,N)
پنجه + دایرهصفر یا چندتا(0,N)
راه حفظ کردن: دایره یعنی «می‌تواند صفر باشد»، خط عمودی یعنی «حداقل یکی»، پنجه یعنی «چندتا».

مقایسه‌ی Chen و Crow's Foot

معیارChenCrow's Foot
شکل صفت‌هابیضی‌های جداردیف‌های داخل جعبه‌ی موجودیت
شکل ارتباطلوزی با نام ارتباطخط ساده (نام اختیاری)
کاردینالیتی1، N، M روی خطنماد پنجه، دایره و خط
فضای اشغال‌شدهزیاد (برای نمودارهای بزرگ شلوغ می‌شود)فشرده
صفت برای ارتباطمستقیم کنار لوزیباید به جدول واسط منتقل شود
کاربردآموزش و کتاب‌های درسیابزارهای عملی و پروژه‌های واقعی

نمادگذاری حداقل–حداکثر (Merise و Power Designer)

در روش‌هایی مثل Merise که ابزار Power Designer هم از آن پیروی می‌کند، روی هر سر ارتباط یک جفت (min,max) نوشته می‌شود؛ مثلاً (0,n) و (1,1). این همان اطلاعات کاردینالیتی در Crow's Foot است، فقط به‌صورت عددی. در مقاله‌ی تفاوت CDM، LDM و PDM نمونه‌ی آن را می‌بینی.

کدام را در پروژه‌ی دانشگاهی استفاده کنم؟

  • اگر استاد نمادگذاری مشخصی خواسته، همان را رعایت کن.
  • برای مدل مفهومی در درس، Chen یا نمادگذاری (min,max) رایج است.
  • برای نمودار جدول‌ها (منطقی/فیزیکی) Crow's Foot خواناتر است.
  • مهم‌تر از انتخاب، یکدست بودن نمادگذاری در کل گزارش است.

برای یادگیری رسم نمودار از صفر، مقاله‌ی آموزش رسم نمودار ER را بخوان.

سوالات متداول درباره‌ی این موضوع

کدام نمادگذاری ER بهتر است: Chen یا Crow's Foot؟

Chen برای آموزش مفاهیم و کتاب‌های درسی مناسب است چون صفت‌ها و ارتباط‌ها را صریح نشان می‌دهد. Crow's Foot فشرده‌تر است و در ابزارهای طراحی واقعی و نمودارهای بزرگ بیشتر استفاده می‌شود. اگر استاد نمادگذاری مشخصی خواسته، همان را رعایت کن.

کاردینالیتی (0,N) یعنی چه؟

جفت (حداقل, حداکثر) مشارکت است: (0,N) یعنی مشارکت اختیاری و بدون سقف؛ (1,1) یعنی دقیقاً یک؛ (1,N) یعنی حداقل یک. این نمادگذاری در روش Merise و ابزارهایی مثل Power Designer رایج است.

مشارکت کامل و جزئی چه فرقی دارند؟

مشارکت کامل (Total) یعنی هر نمونه‌ی موجودیت حتماً در ارتباط شرکت دارد (حداقل ۱)؛ مشارکت جزئی (Partial) یعنی ممکن است شرکت نکند (حداقل ۰).

مصطفی موسویسازنده و نویسنده‌ی SQLFarsi. اگر اشتباهی در مقاله دیدی یا پیشنهادی داری، از طریق mousavi.dev خبر بده.

می‌خوای SQL را از پایه و با تمرین یاد بگیری؟

دوره‌ی رایگان SQLFarsi را با Playground و پروژه‌های واقعی دنبال کن.

شروع یادگیری