You are on page 1of 66

‫هب انم آنکه جان را فکرت آموخت‬

‫بخش دوم ‪:‬‬


‫مدلسازی معنایی دادهها‬

‫مرتضی امینی‬

‫نیمسال دوم ‪92-91‬‬


‫(محتویات اسالیدها برگرفته از یادداشتهای کالسی استاد محمدتقی روحانی رانکوهی است‪).‬‬
‫مدلسازی معنایی دادهها (‪)Semantic Data Modeling‬‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪2‬‬

‫کاربری‬
‫ابتدا باید مدل شوند‬ ‫‪ ‬داده های ذخیره شدنی در ‪DB‬‬
‫سیستمی‬

‫‪ ‬دادههای کاربری‬
‫‪ ‬موسومند به داده های عملیاتی‬
‫‪ ‬پایا هستند‪ :‬بعد از اجرای برنامه کاربر کماکان در سیستم ماندگارند[حسب تعریف]‬
‫‪ ‬لزوماً همان داده های ‪ I/O‬نیستند‪ .‬هر داده موجود در پایگاه داده لزوما داده ورودی نیست و هر داده‬
‫خروجی از پایگاه لزوما در پایگاه ذخیره شده نیست (مانند دادههای محاسبه شده از دادههای موجود‪-‬‬
‫میانگین نمرات)‬

‫‪ ‬دادههای سیستمی‬
‫‪ ‬سیستم تولید میکند برای انجام وظایفش‬
‫مراحل تولید سیستم اطالعاتی‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪3‬‬

‫نیازهای پردازشی‬
‫محیط شناسی‬

‫مهندسی نیازها‬ ‫نیازهای داده ای‬

‫تحلیل عملکردی‬

‫مدلسازی‬
‫معنایی دادهها‬
‫طراحی ‪AP’s‬‬
‫تعیین تراکنشها‬ ‫طراحی منطقی‬
‫پیادهسازی‬ ‫‪DB‬‬

‫طراحی فیزیکی‬
‫‪DB‬‬

‫‪DB‬‬ ‫پیاده سازی‬


‫مدلسازی معنایی دادهها‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪4‬‬

‫‪ ‬مدلسازی معنایی دادهها‪:‬‬

‫‪ ‬ارائه یک مدل کلی (در باالترین سطح انتزاع) از داده های محیط با استفاده از مفاهیم انتراعی و‬
‫براساس معنایی که کاربر برای دادهها قائل است‪.‬‬

‫مفهوم انتزاعی‪ :‬مفهومی است فراتر از سطح منطقی و طبعاً فراتر از سطح پیادهسازی‬ ‫‪‬‬

‫برای درک مفهوم انتزاع ‪:‬‬


‫در سطح انتزاع‬

‫‪𝑉1 𝑉2‬‬ ‫‪….‬‬ ‫در سطح منطقی‬ ‫نمونه رکورد‬

‫‪ 𝑉1 𝑉2‬بخش کنترلی‬ ‫‪….‬‬ ‫در سطح پیادهسازی‬


‫مدلسازی‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪5‬‬

‫‪ ‬برای مدلسازی نیاز به روش داریم‪:‬‬

‫‪ ‬روش رایج تر در دانش و تکنولوژی پایگاه داده‬


‫‪ ER‬مبنایی‬
‫‪ ‬روش ‪:)Entity Relationship( ER‬‬
‫‪ ER‬گسترش یافته (‪)Extended or Enhanced ER‬‬

‫‪ ‬روش ‪ :)Unified Modeling Language( UML‬خاصّ مدلسازی معنایی داده ها نیست بلکه برای‬
‫مدلسازی و طراحی سیستم های نرمافزاری است‪ .‬لذا با آن میتوان پایگاه داده را مدل کرد‪.‬‬
‫روش ‪ ER‬مبنایی‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪6‬‬

‫‪ -‬نوع موجودیت ‪Entity Type‬‬

‫‪ ‬سه مفهوم اساسی داریم‪ - :‬صفت (خصیصه – ویژگی) ‪Attribute‬‬


‫‪ -‬نوع ارتباط ‪Relationship Type‬‬

‫‪ ‬نمودار ‪:ER‬‬
‫‪ ‬نموداری است که سه مفهوم اساسی نوع موجودیت‪ ،‬صفت و نوع ارتباط در آن نمایش داده میشوند‪.‬‬
‫در واقع این نمودار امکانی است برای نمایش مدلسازی و اولین طرح پایگاه دادهها در باالترین سطح‬
‫انتزاع‪.‬‬

‫‪ ‬برای رسم این نمودار به نمادهایی نیاز داریم‪ .‬در این درس از نمادهای چِن استفاده میشود‪.‬‬
‫نمادهای نمودار ‪ ER‬مبنایی‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪7‬‬

‫[نام نوع موجودیت]‬ ‫‪ ‬نوع موجودیت‬

‫[نام نوع موجودیت]‬ ‫‪ ‬نوع موجودیت ضعیف‬

‫[نام نوع‬
‫ارتباط]‬ ‫‪ ‬نوع ارتباط‬

‫[نام نوع‬
‫ارتباط]‬ ‫‪ ‬نوع ارتباط موجودیت ضعیف با قوی‬

‫[نام نوع‬
‫[نام نوع موجودیت]‬ ‫ارتباط]‬ ‫‪ ‬مشارکت نوع موجودیت در نوع ارتباط‬

‫[نام نوع موجودیت]‬


‫[نام نوع‬ ‫‪ ‬مشارکت الزامی‬
‫ارتباط]‬
‫نمادهای نمودار ‪ ER‬مبنایی (ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪8‬‬

‫[نام صفت]‬ ‫‪ ‬صفت‬

‫[نام صفت]‬ ‫‪ ‬صفت شناسه اول‬

‫[نام صفت]‬ ‫‪ ‬صفت شناسه دوم (در صورت وجود)‬

‫[نام صفت]‬ ‫[نام صفت]‬ ‫‪ ‬صفت شناسه مرکب (مثال دو صفتی)‬

‫[نام صفت]‬ ‫‪ ‬صفت چندمقداری‬


‫نمادهای نمودار ‪ ER‬مبنایی (ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪9‬‬

‫‪ ‬صفت مرکب‬
‫[نام صفت]‬

‫[نام صفت]‬ ‫‪ ‬صفت مشتق (مجازی یا محاسبهشدنی)‬

‫‪ 1‬نوع موجودیت ‪2‬‬ ‫ارتباط‬ ‫نوع موجودیت ‪N 1‬‬ ‫‪ ‬چندی ارتباط‬


‫‪1‬‬ ‫‪1‬‬
‫‪N‬‬ ‫‪M‬‬
‫‪ ER‬مبنایی ‪ -‬نوع موجودیت‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪10‬‬

‫‪ ‬نوع موجودیت‪:‬‬
‫‪ ‬مفهوم کلی شیئ‪ ،‬چیز‪ ،‬پدیده و به طور کلی آنچه از یک محیط که میخواهیم در موردش اطالع‬
‫داشته باشیم‪.‬‬

‫خرد جهان واقع ‪Micro Real World‬‬ ‫‪-‬‬


‫‪Mini World‬‬ ‫‪-‬‬
‫‪ -1‬دانشجو‬
‫جهان مطرح )‪Universe of Discourse(UOD‬‬ ‫‪-‬‬
‫‪ -2‬درس‬
‫محیط عملیاتی ‪ :‬دانشگاه‬
‫‪ -3‬استاد‬
‫‪ -4‬کارمند‬ ‫‪ ‬نوع موجودیتها‬

‫‪...‬‬
‫‪ ‬تذکر‪ :‬اولین قدم در مدلسازی معنایی تشخیص درست نوع موجودیتهاست‪.‬‬
‫در مثال فوق آیا دانشگاه یک نوع موجودیت در نظر گرفته میشود یا خیر؟‬
‫‪ ER‬مبنایی ‪ -‬نوع موجودیت (ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪11‬‬

‫نام‬
‫دانشجو‬ ‫‪ ‬هر نوع موجودیت‪:‬‬
‫شماره‬ ‫‪ ‬یک نام دارد‪.‬‬

‫‪ ‬یک معنا دارد‪.‬‬


‫در چه حالتی بهتر است نوع موجودیت تک صفتی را نوع موجودیت‬
‫بگیریم؟ در چه حالتی نگیریم؟‬
‫‪ ‬مجموعه ای از صفات دارد (حداقل یکی)‪.‬‬

‫در چه حالتی نوع موجودیت تک نمونهای را موجودیت در نظر میگیریم؟‬ ‫‪ ‬نمونه هایی دارد (حداقل یک نمونه)‪.‬‬

‫آیا نوع موجودیت ایزوله داریم؟‬ ‫‪ ‬ارتباط (هایی) با نوع موجودیت (های) دیگر دارد‪.‬‬

‫قوی (مستقل) ‪Strong‬‬


‫‪ ‬نوع موجودیت دو گونه است‪.‬‬
‫ضعیف (وابسته) ‪Weak‬‬
‫‪ ER‬مبنایی ‪ -‬نوع موجودیت (ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪12‬‬

‫‪ ‬تعریف موجودیت قوی‪:‬‬


‫‪ ‬نوع موجودیت ‪ E‬را قوی گوییم هرگاه خود مستقالً در محیط مطرح باشد‪.‬‬

‫‪ ‬تعریف موجودیت ضعیف‪:‬‬


‫‪ ‬نوع موجودیت ‪ F‬را ضعیفِ نوع موجودیت ‪ E‬گوییم هرگاه به آن «وابستگی وجودی» داشته باشد‪( .‬اگر ‪E‬‬
‫مطرح نباشد ‪ F‬هم مطرح نیست) به عبارتی ‪ F‬در مدلسازی دیده میشود به اعتبار ‪.E‬‬
‫‪ ‬تذکر‪ :‬قوی و ضعیف بودن نسبی است‪.‬‬
‫کارمند‬

‫عضو خانواده وابسته‬


‫به نوع موجودیت کارمند است‪.‬‬
‫دارد‬

‫عضو خانواده‬
‫‪ ER‬مبنایی ‪ -‬صفت‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪13‬‬

‫‪ ‬صفت‪:‬‬

‫‪ ‬خصیصه یا ویژگی نوع موجودیت و هر نوع موجودیت مجموعهای از صفات دارد که حالت یا وضع آن را‬
‫توصیف میکند‪.‬‬

‫‪ ‬محیط عملیاتی‪ :‬دانشگاه‬

‫‪ ‬نوع موجودیت‪ :‬درس‬

‫‪ ‬صفات‪ :‬شماره‪ ،‬نام‪ ،‬تعداد واحد‪ ،‬زمان برگزاری‪ ،‬تاریخ امتحان‪ ،‬نوع درس (پایه‪ ،‬تخصصی‪ ،‬اختیاری‪،)...،‬‬
‫سطح درس (کارشناسی‪ ،‬کارشناسی ارشد‪ ،‬دکترا)‪ ،‬ماهیت درس (نظری‪ ،‬عملی‪ ،‬ترکیبی)‬
‫‪ ER‬مبنایی – صفت (ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪14‬‬

‫‪ ‬هر صفت‪:‬‬
‫‪ ‬یک نام دارد‪.‬‬
‫محدودیت میدانی یا دامنهای‬
‫‪ ‬یک معنا دارد (معنای مشخص در حیطه معنایی مشخص)‪.‬‬
‫‪ ‬یک دامنه یا میدان (‪ )Domain‬دارد‪.‬‬
‫معنای‬
‫‪ ‬محدودیتهای صفت‪:‬‬
‫صفت را مشخص میکند‪ .‬و نه لزوماً نام صفت را‪.‬‬ ‫نوع‬
‫طیف مقادیر‬ ‫‪ -1‬محدودیت میدانی‬
‫‪ -2‬محدودیت نمایشی‪ .‬مثال‪ :‬قالب تاریخ ‪yyyy/mm/dd‬‬
‫‪ -3‬محدودیت پردازشی ناشی از نوع صفت یا ناشی از قواعد محیط [غیر از آنچه ناشی از میدان است]‬
‫مثال‪ :‬عدم جمع دو آدرس ‪ :‬محدودیت ناشی از میدان است‪.‬‬ ‫مثال‪ :‬سن کاهش نمییابد‪.‬‬
‫‪ -4‬محدودیت وابستگی به یک صفت دیگر‪ .‬مثال‪ :‬وابستگی شمول به صفت دیگر }‪B{values}  A{values‬‬

‫‪ -5‬محدودیت یکتایی مقدار‪ .‬مثال‪ :‬شماره دانشجویی‬

‫آیا صفت محدودیت های دیگری هم دارد؟‬


‫‪ ER‬مبنایی – صفت (ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪15‬‬
‫نوع ‪Real :‬‬
‫از دامنه ‪Grade‬‬ ‫نمره دانشجو ‪GR‬‬
‫طیف مقادیر ‪[0,..,20] :‬‬

‫‪ ‬رده بندی صفت‪:‬‬


‫‪ -1‬یکتایی مقدار ‪Uniqueness‬‬
‫ویژگی‬
‫ذاتی‬ ‫‪ -2‬مقادیرش همیشه معلوم باشد (هیچمقدارناپذیر)‬
‫‪ -1‬شناسه )‪Entity Identifier (EID‬‬
‫‪ ‬صفت‬
‫‪--------------------------‬‬
‫‪ -2‬ناشناسه‬
‫بهتر است که‬ ‫‪ -3‬طول کد نمایش حتیاالمکان کوتاه‬
‫داشته باشد‪.‬‬ ‫‪ -4‬مقادیرش حتیاالمکان تغییر ناپذیر‬

‫‪ -1‬ساده – تجزیه ناپذیر‪ :‬از نظر معنایی در یک محیط مشخص ‪ -‬اگر صفت را تجزیه کنیم‪ ،‬خودِ تکه ها مقداری‬
‫‪ ‬صفت‬
‫از صفت در آن محیط نشود‪ .‬مثال‪ :‬عنوان درس‬
‫‪ -2‬مرکّب‪ :‬از چند صفت ساده (و می تواند ساختار سلسله مراتبی هم داشته باشد) مثال‪ :‬آدرس (ترکیبی از‬
‫استان‪ ،‬شهر‪ ،‬خیابان‪)... ،‬‬
‫‪ ER‬مبنایی – صفت (ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪16‬‬

‫‪ ‬توجه‪ :‬ساده یا مرکب بودن نسبی است و نه مطلق‪ .‬بستگی به حیطه معنایی و کاربرد دارد‪( .‬مثال‪ :‬آدرس از دید نشریه‬
‫(ساده) یا از دید شهرداری (مرکب)‪.‬‬
‫اینکه صفت مرکّب را در یک فیلد ذخیره کنیم یا اجزا را در فیلد های مجزا به چه عواملی بستگی دارد؟‬

‫‪ -1‬تک مقداری‪ :‬به ازای یک نمونه از نوع موجودیت ‪ ،E‬حدّاکثر یک مقدار میگیرد‪ .‬مثال‪ :‬نام درس‬
‫‪‬صفت‬
‫‪ -2‬چند مقداری‪ :‬حدّاقل برای یک نمونه از نوع موجودیت ‪ ،E‬بیش از یک مقدار ‪ .‬مثال‪ :‬شماره تلفن استاد‬
‫ساده – تک مقداری‬
‫مرکب ‪ -‬تک مقداری‬
‫ساده ‪ -‬چند مقداری‬ ‫‪‬توجه‬
‫مرکب ‪ -‬چند مقداری‬
‫‪ -1‬هیچمقدار پذیر ( ‪ Nullable‬یا ‪ :)Nullvalue‬مقدار صفت می تواند ناشناخته‪ ،‬ناموجود‪ ،‬تعریف نشده یا غیر قابل‬
‫اعمال باشد‪ .‬مثال‪ :‬شماره تلفن دانشجو‬ ‫‪‬صفت‬
‫‪ -2‬هیچمقدارناپذیر (‪ :)Not nullabe‬حتما مقدار صفت برای هر نمونه موجودیت باید معلوم باشد‪ .‬مثال‪ :‬شماره درس‬

‫مشکالت هیچمقدار؟ ‪ package‬ها با آن چه برخوردی دارند؟‬


‫‪ ER‬مبنایی – صفت (ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪17‬‬

‫‪ -1‬واقعی (‪ :)Real‬مقدار ذخیره شده در ‪ DB‬دارد‪ .‬مثال‪ :‬نمره درس‬


‫‪‬صفت‬
‫‪ -2‬مجازی ‪ -‬مشتق (‪ :)Virtual‬مقدار ذخیره شده در ‪ DB‬ندارد‪ ،‬سیستم با پردازشی معموالً‬
‫محاسبه و مقدارش را در اختیار کاربر قرار می دهد‪ .‬مثال‪ :‬میانگین نمرات درس‬

‫‪‬تذکر‪ :‬اگر صفتی ماهیت محاسبه شوندگی داشته باشد لزوما مجازی نیست و ممکن است برای افزایش سرعت و‬
‫در صورتی که بسامد (فرکانس) ارجاع زیاد باشد مقدار ذخیره شده داشته باشد‪.‬‬
‫‪ ER‬مبنایی – نوع ارتباط‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪18‬‬

‫‪ ‬نوع ارتباط ‪:Relationship Type‬‬

‫‪ 𝑁 = 1‬ارتباط با خود ‪ -‬بازگشتی (‪)self-relationship‬‬ ‫‪ ‬رابطه‪ ،‬اندرکنش و یا تعامل بین 𝟏 ≥ 𝑵 نوع موجودیت‬

‫ارتباط نوع موجودیتهای دانشجو و درس‬


‫‪ ‬دانشجو درس را انتخاب میکند‪.‬‬

‫‪ ‬دانشجو درس را حذف میکند‪.‬‬


‫‪ ER‬مبنایی – نوع ارتباط (ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪19‬‬

‫نام‬ ‫عنوان‬

‫شماره‬ ‫شماره‬
‫دانشجو‬ ‫انتخاب‬ ‫درس‬

‫⋮‬ ‫تعداد واحد‬

‫حذف‬
‫نوع‬

‫طرز نمایش نوع موجودیت زمانی که یکبار دیگر در نمودار‬


‫⋮‬
‫درس‬
‫‪ ER‬آمده باشد‪( .‬به خاطر اجتناب از شلوغ شدن نمودار)‬
‫‪ ‬مثال‪ :‬ارتباط موجودیت با خود ‪:‬‬

‫پیشنیازی‬

‫مفهوم پیشنیازی درس را به چند روش دیگر میتوان مدل کرد؟‬


‫‪ ER‬مبنایی – نوع ارتباط (ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪20‬‬

‫‪ ‬نوع ارتباط‪:‬‬
‫اصطالح‬ ‫‪N‬‬
‫‪ ‬یک نام دارد‪.‬‬
‫ارتباط یگانی‬ ‫‪1‬‬
‫ارتباط دوگانی‬ ‫‪2‬‬ ‫‪ ‬یک معنا دارد‪.‬‬
‫ارتباط سهگانی‬ ‫‪3‬‬
‫‪ ‬شرکت کنندگانی (‪ )participants‬دارد (𝟏 ≥ 𝑵)‪.‬‬
‫ارتباط ‪-n‬گانی‬ ‫‪n‬‬
‫(‪)n-ary‬‬ ‫‪ ‬به تعداد شرکت کنندگان درجه (‪ )arity‬ارتباط گویند‪.‬‬

‫درجه یک و دو‪ :‬مثالهای پیش دیده‬

‫دانشجو‬ ‫د‪.‬ا‪.‬د‪.‬‬ ‫درس‬


‫درجه سه‪ :‬ارتباط درس‪ ،‬استاد‪ ،‬دانشجو‬

‫استاد‬ ‫‪ ‬تذکر‪ :‬در عمل به ندرت ‪ 𝑁 ≥ 4‬پیش میآید‪.‬‬


‫‪ ER‬مبنایی – نوع ارتباط (ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪21‬‬

‫‪ ‬مشارکت نوع موجودیت ‪ E‬در نوع ارتباط ‪R‬‬


‫‪ ‬الزامی (کامل)‬

‫‪ ‬غیر الزامی (ناقص)‬

‫هر دانشجو لزوماً درسی را انتخاب میکند ولی همه دروس لزوماً توسط دانشجویان انتخاب نمیشوند‪.‬‬

‫دانشجو‬ ‫انتخاب‬ ‫درس‬

‫‪ ‬الزامی بودن مشارکت از محدودیتهای معنایی محیط است ناظر به نوع ارتباط‪.‬‬
‫‪ ER‬مبنایی – نوع ارتباط (ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪22‬‬

‫‪ ‬هر نوع ارتباط‪:‬‬

‫‪ ‬میتواند صفت(هایی) داشته باشد‪.‬‬

‫دانشجوی ‪ x‬درس ‪ y‬را در چه ترم و سالی انتخاب میکند؟‬

‫ترم‬ ‫سال‬

‫دانشجو‬ ‫انتخاب‬ ‫درس‬

‫آیا نوع ارتباط میتواند صفت چند مقداری داشته باشد؟‬


‫‪ ER‬مبنایی – نوع ارتباط (ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪23‬‬

‫‪ ‬چندی ارتباط ‪ Multiplicity‬یا ‪:Cardinality Ratio‬‬


‫تناظر‬
‫‪1:1‬‬ ‫‪ ‬چندی ارتباط بین دو نوع موجودیت ‪ E‬و ‪ F‬عبارت است از چگونگی تناظر بین‬
‫‪1:N‬‬ ‫عناصر مجموعه نمونههای موجودیت ‪ E‬و عناصر مجموعه نمونههای موجودیت ‪.F‬‬
‫‪M:N‬‬ ‫‪ ‬اگر دو نوع موجودیت ‪ E‬و ‪ F‬را در نظر بگیریم‪:‬‬
‫‪ ‬در ارتباط یک به یک‪ ،‬یک نمونه از ‪ E‬حداکثر با یک نمونه از ‪ F‬ارتباط دارد و برعکس‪.‬‬
‫‪ ‬در ارتباط یک به چند (از ‪ E‬به ‪ ،)F‬یک نمونه از ‪ E‬با ‪ n‬نمونه از ‪ n>1( F‬و در صورت مشارکت‬
‫غیرالزامی‪ )n=0 ،‬ارتباط دارد‪ ،‬ولی یک نمونه از ‪ F‬حداکثر با یک نمونه از ‪ E‬ارتباط دارد‪.‬‬
‫‪ ‬در ارتباط چند به چند‪ ،‬یک نمونه از ‪ E‬با ‪ n‬نمونه از ‪ )n>1( F‬ارتباط دارد و برعکس‪.‬‬
‫‪ ‬نکته‪ :‬چندی نوع ارتباط چندگانی (‪ )n>2‬عبارت است از تعداد نمونههای یک نوع موجودیت شرکت کننده‬
‫در آن نوع ار تباط‪ ،‬وقتی که تعداد نمونههای ‪ n-1‬نوع موجودیت دیگر شرکت کننده در نوع ارتباط را ثابت‬
‫فرض کنیم‪.‬‬
‫‪ ER‬مبنایی – نوع ارتباط (ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪24‬‬

‫با فرض اینکه هر دانشجو چند درس میتواند انتخاب کند ولی فقط یک درس را میتواند حذف‬
‫اضطراری کند‪ ،‬چندی ارتباطات به صورت زیر خواهد بود‪.‬‬

‫‪M‬‬ ‫‪N‬‬
‫دانشجو‬ ‫انتخاب‬ ‫درس‬

‫‪N‬‬ ‫‪1‬‬
‫حذف‬
‫اضطراری‬
‫‪ ER‬مبنایی – نوع ارتباط (ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪25‬‬

‫ترم‪ -‬سال‬ ‫شماره درس‬


‫مثالی دیگر از چندی ارتباط‬
‫مدعو‬
‫بودن‬
‫‪M‬‬ ‫‪N‬‬

‫‪1‬‬ ‫‪N‬‬
‫گروه آموزشی‬ ‫عضویت‬ ‫استاد‬

‫‪1‬‬ ‫‪1‬‬
‫مدیریت‬

‫‪ ‬تذکر‪ :‬اگر به ارتباط صفت هایی از جنس زمان بدهیم‪ ،‬چندی ارتباط میتواند بسته به قواعد معنایی محیط‬

‫‪1‬‬ ‫‪N‬‬ ‫تغییر کند‪.‬‬


‫گروه آموزشی‬ ‫مدیریت‬ ‫استاد‬

‫از‬ ‫تا‬
‫‪ ER‬مبنایی – نوع ارتباط (ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪26‬‬

‫گونههای دیگر مدل کردن نوع ارتباط مدعو بودن چیست؟‬

‫شماره‬
‫ترم ‪ -‬سال‬
‫درس‬

‫‪M‬‬ ‫مدعو‬ ‫‪N‬‬


‫گروه آموزشی‬ ‫بودن‬
‫استاد‬

‫‪ ‬با استفاده از نوع ارتباط سه گانی‪:‬‬

‫گروه آموزشی‬ ‫د‪.‬ا‪.‬گ‪.‬‬ ‫استاد‬

‫ترم ‪ -‬سال‬
‫درس‬
‫‪ ER‬مبنایی – نوع ارتباط (ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪27‬‬

‫‪ ‬تذکر‪ :‬طرز دیگر نمایش چندی ارتباط‬


‫)’‪(Min’,Max‬‬ ‫)‪(Min,Max‬‬
‫‪F‬‬ ‫‪R‬‬ ‫‪E‬‬

‫‪ ‬هر نمونه ‪ e‬از نوع موجودیت ‪ E‬باید حداقل در ‪ Min‬و حداکثر در ‪ Max‬نمونه از ارتباط ‪ R‬شرکت‬
‫داشته باشد‪.‬‬

‫رابطه انتخاب درس توسط دانشجو‬


‫ترم‬ ‫سال‬

‫)‪(1,N‬‬ ‫)‪(0,M‬‬
‫دانشجو‬ ‫انتخاب‬ ‫درس‬

‫مزایای این روش نمایش چندی؟‬


‫‪ ER‬مبنایی – نوع ارتباط (ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪28‬‬

‫‪ ‬نکته مهم در مورد ارتباط بین سه نوع موجودیت‪:‬‬

‫ترم‬ ‫سال‬ ‫‪ ‬مدل یک‪ :‬سه ارتباط دوگانی‬

‫دانشجو‬ ‫د‪.‬د‪.‬‬ ‫درس‬


‫‪M‬‬ ‫‪N‬‬
‫‪N‬‬ ‫‪N‬‬
‫د‪.‬ا‬
‫ا‪.‬د‪.‬‬ ‫سال‬
‫سال‬
‫‪M‬‬ ‫‪M‬‬
‫ترم‬
‫ترم‬ ‫استاد‬ ‫‪ ‬سه فقره اطالع‪:‬‬
‫‪ ‬دانشجو ’‪ ‘s‬درس ’‪ ‘c‬را در ترم ‪ t1‬سال ‪ y1‬اخذ کرده است‪.‬‬
‫‪ ‬استاد ’‪ ‘p‬درس ’‪ ‘c‬را در ترم ‪ t1‬سال ‪ y1‬ارایه کرده است‪.‬‬
‫‪ ‬دانشجو ’‪ ‘s‬دانشجوی استاد ’‪ ‘p‬است‪.‬‬
‫‪ ‬از این سه فقره اطالع لزوماً همیشه نمیتوان نتیجه گرفت که دانشجو ’‪ ‘s‬درس ’‪ ‘c‬را با استاد ’‪‘p‬‬
‫گذرانده است‪.‬‬
‫‪ ER‬مبنایی – نوع ارتباط (ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪29‬‬

‫‪ ‬مدل دوم ‪ :‬ارتباط سه گانی‬


‫دانشجو‬ ‫د‪.‬ا‪.‬د‪.‬‬ ‫درس‬

‫سال‬
‫ترم‬
‫استاد‬

‫‪ ‬در حالت سه ارتباط دوگانی اگر از فقره اطالع های دوگانی فقره اطالع سه گانی را استنتاج کنیم در‬
‫شرایطی که از لحاظ معنایی این استنتاج درست نباشد می گوییم دچار دام پیوندی حلقهای شدهایم‪.‬‬

‫انواع دیگر دام چیست؟ (دام پیوند ‪ ...‬دام گسل ‪) ...‬‬


‫مثال‪ :‬محیط دانشکده‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪30‬‬

‫ترم‬ ‫سال‬ ‫‪ ‬مثال‪ :‬فعالیت هایی از محیط دانشکده‬


‫‪M‬‬ ‫‪N‬‬
‫دانشجو‬ ‫د‪.‬ا‪.‬د‪.‬‬ ‫درس‬
‫‪ ‬بعضی از نوع موجودیتهای ممکن‪:‬‬
‫ترم‬ ‫‪N‬‬
‫شروع‬ ‫‪1‬‬
‫‪N‬‬ ‫‪M‬‬
‫‪ ‬دانشجو‬
‫‪1‬‬ ‫پیشنیازی‬
‫راهنمایی‬ ‫استاد‬ ‫‪ ‬استاد‬
‫مدت‬ ‫‪N‬‬ ‫‪N‬‬ ‫‪N‬‬ ‫‪ ‬درس‬
‫ترم‪-‬‬
‫از‬
‫مدیریت‬ ‫عضویت‬ ‫مدعو‬ ‫سال‬
‫‪ ‬کارمند‬

‫تا‬
‫از‬ ‫عنوان‬ ‫‪ ‬گروه آموزشی‬
‫‪1‬‬ ‫درس‬
‫‪1‬‬ ‫‪M‬‬
‫‪ ‬کتاب‬
‫‪1‬‬ ‫‪1‬‬ ‫‪N‬‬
‫تحصیل‬ ‫گروه آموزشی‬ ‫اشتغال‬ ‫کارمند‬
‫‪... ‬‬
‫‪M‬‬
‫‪N‬‬

‫‪N‬‬ ‫مبدا‬
‫دانشجو‬ ‫مهمان‬

‫از ترم‬
‫مثال‪ :‬محیط دانشکده (ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪31‬‬

‫‪1‬‬ ‫منبع‬ ‫‪1‬‬


‫کتاب‬ ‫درس‬ ‫پیشنیازی‬
‫اصلی‬

‫دارد‬

‫شماره‬
‫‪M‬‬ ‫‪N‬‬
‫دانشجو‬ ‫انتخاب‬ ‫گروه درس‬
‫روز‬
‫‪N‬‬
‫ساعات‬
‫ارائه‬
‫میشود‬ ‫سال‬

‫‪1‬‬ ‫ترم‬
‫استاد‬
‫مثال‪ :‬محیط تولید‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪32‬‬

‫‪ ‬مثال‪ :‬محیط تولیدی‪-‬کارگاهی (‪ .)manufacturing‬مثال کتاب ‪.DATE‬‬


‫‪Quantity‬‬
‫‪ ‬نوع موجودیت ها‪:‬‬
‫‪SPJ‬‬
‫‪Supplier‬‬ ‫‪:S ‬‬

‫‪S‬‬
‫‪S#‬‬
‫‪P‬‬
‫‪P#‬‬
‫‪J‬‬
‫‪J#‬‬ ‫‪Part‬‬ ‫‪:P ‬‬
‫⋮‬ ‫⋮‬ ‫⋮‬
‫‪N‬‬ ‫‪N‬‬ ‫‪N‬‬ ‫‪M‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪Project‬‬ ‫‪:J ‬‬
‫‪P-P‬‬
‫‪Employee‬‬ ‫‪:E ‬‬
‫‪SC‬‬ ‫‪PW‬‬ ‫مدیریت‬ ‫اشتغال‬
‫تعداد‬
‫‪City‬‬ ‫‪:C ‬‬
‫‪1‬‬ ‫‪M‬‬ ‫‪1‬‬ ‫‪N‬‬
‫‪Warehouse‬‬ ‫‪:W ‬‬
‫‪1‬‬ ‫‪N‬‬ ‫‪1‬‬ ‫کار‬ ‫‪N‬‬
‫‪C‬‬ ‫‪CW‬‬ ‫‪W‬‬ ‫کردن‬ ‫‪E‬‬

‫گسترش داده شود‪.‬‬


‫بحث تکمیلی ‪ :‬نوع موجودیت ضعیف‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪33‬‬

‫نوع موجودیت ضعیف‪:‬‬ ‫‪‬‬


‫‪ ‬نوع موجودیت ‪ F‬را ضعیف نوع موجودیت ‪ E‬گوییم هرگاه ‪ F‬با ‪« E‬وابستگی وجودی» داشته باشد‪( .‬یعنی‬
‫اگر ‪ E‬در مدلسازی مطرح نشود‪ F ،‬هم مطرح نباشد)‪ .‬عالوهبراین نوع موجودیت ضعیف از خود شناسه ندارد‪.‬‬
‫‪ ‬طرز نمایش‪:‬‬
‫‪E‬‬ ‫‪R‬‬ ‫‪F‬‬

‫‪ ‬تاکید‪ :‬قوی و ضعیف بودن نسبی است‪.‬‬


‫‪ ‬نوع ضعیف از خود شناسه ندارد‪ .‬بلکه از خود حداقل یک صفت ممیزه‪-‬جداساز ( ‪ )Discriminator‬دارد‪.‬‬
‫‪ ‬صفت ممیزه (کلید جزئی)‪:‬‬
‫‪ ‬صفتی که یکتایی مقدار دارد اما نه در تمام نمونه های نوع ضعیف بلکه در بین مجموعه تمام نوع ضعیفهای‬
‫وابسته به یک نمونه از نوع موجودیت قوی (به صورت نسبی یکتاست)‪.‬‬
‫‪ ‬در عمل اگر یک نوع موجودیت وابستگی وجودی به نوع موجودیت دیگر داشته باشد و از خود شناسه داشته باشد‬
‫دیگر ضعیف دیده نمیشود‪.‬‬
‫بحث تکمیلی ‪ :‬نوع موجودیت ضعیف (ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪34‬‬

‫عضو خانواده به عنوان یک موجودیت ضعیف‬


‫نام‬

‫عضو‬
‫کارمند‬ ‫دارد‬ ‫تاریخ تولد‬
‫خانواده‬ ‫صفت ممیزه‬

‫جنسیت‬

‫اگر در نظر گرفته شود دیگر نباید ضعیف دیده شود‪.‬‬ ‫کد ملی‬ ‫⋮‬

‫نام‬ ‫شماره کارمند‬


‫گلی‬
‫سلی‬ ‫‪100‬‬
‫قلی‬
‫ناجی‬
‫تاجی‬ ‫‪200‬‬
‫سلی‬
‫بحث تکمیلی ‪ :‬نوع موجودیت ضعیف (ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪35‬‬

‫‪ ‬به ارتباط قوی‪-‬ضعیف‪ ،‬ارتباط شناسا (‪ )Identifying Relation‬گویند‪.‬‬

‫‪ ‬مشارکت نوع ضعیف در ارتباط شناسا الزامی است‪.‬‬

‫‪ ‬چندی ارتباط معموال ‪( 1:N‬در حالت خاص ‪ 1:1‬تمرین‪ :‬مثال قید شود)‪.‬‬
‫بحث تکمیلی ‪ :‬نوع موجودیت ضعیف (ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪36‬‬

‫تاریخ‬
‫‪ ‬درجه ارتباط شناسا معموال ‪ 2‬و گاه بیشتر است‪.‬‬
‫کد‬ ‫نام‬ ‫شماره‬
‫تاسیس‬

‫موسسه‬ ‫کارمند‬
‫کارمند‬
‫آموزشی‬
‫نیاز به اطالعات بیشتر از موسسه‬ ‫صفت ممیزه‬
‫آموزشی‬
‫دارد‬
‫دارد‬

‫نام‬ ‫عنوان‬
‫عنوان‬ ‫موسسه‬
‫آموزشی‬ ‫تاریخ‬
‫مدرک‬ ‫اخذ‬
‫مدرک‬
‫تاریخ‬ ‫تحصیلی‬
‫تحصیلی‬ ‫⋮‬
‫اخذ‬

‫در این مدل آیا صفت ممیزه نسبت به دو قوی لزوما واحد است؟‬

‫آیا این محیط را میتوان به گونهای دیگر مدل کرد؟‬


‫بحث تکمیلی ‪ :‬نوع موجودیت ضعیف (ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪37‬‬

‫‪ ‬نوع موجودیت ضعیف میتواند خود قوی برای نوع موجودیت ضعیف دیگر باشد‪.‬‬

‫عنوان‬
‫تاریخ شروع‬

‫عضو‬ ‫سابقه‬
‫دارد‬ ‫سابقه درمان‬
‫خانواده‬ ‫بیماری‬

‫نوع درمان‬

‫⋮‬

‫اگر بخواهیم برای کارمند سابقه بیماریاش را نگه داریم چه کارکنیم؟‬


‫بحث تکمیلی ‪ :‬نوع موجودیت ضعیف (ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪38‬‬

‫‪ ‬صفت چند مقداری (به خصوص مرکب) را همیشه میتوان با مفهوم نوع موجودیت ضعیف مدل کرد‬
‫(نمایش داد) اما عکس این تکنیک توصیه نمیشود‪.‬‬

‫‪ ‬دلیل‪ :‬انعطاف پذیری مدل را از نظر گسترش پذیری کاهش میدهد‪ ،‬زیرا نوع ضعیف میتواند خود نوع‬
‫ارتباطهایی داشته باشد با دیگر نوع موجودیتها‪ ،‬اما وجود ارتباط با صفت معنا ندارد‪.‬‬
‫کارمند‬

‫صفت ممیزه‬
‫عنوان‬
‫مدرک‬
‫دارد‬ ‫کارمند‬
‫تحصیلی‬
‫تاریخ‬
‫عنوان‬ ‫اخذ‬

‫نام‬ ‫تاریخ‬
‫⋮‬
‫موسسه‬ ‫مدرک‬ ‫اخذ‬
‫آموزشی‬ ‫تحصیلی‬
‫⋮‬

‫…‬ ‫…‬
‫بحث تکمیلی ‪ :‬نوع موجودیت ضعیف (ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪39‬‬

‫‪ ‬مفهوم نوع موجودیت ضعیف به ویژه برای مدل کردن پدیدههای تکرار شونده (در زمان) و وابسته به‬
‫مفهوم دیگر استفاده میشود‪.‬‬
‫شماره‬
‫حکم‬
‫کارگزینی‬
‫دارد‬ ‫⋮‬
‫کارمند‬

‫دارد‬ ‫دارد‬ ‫دارد‬

‫عنوان‬

‫مدرک‬
‫سابقه‬ ‫سابقه‬ ‫تاریخ‬
‫تحصیلی‬
‫ماموریت‬ ‫تشویق‬ ‫اخذ‬
‫⋮‬
‫موضوع‬ ‫مدت‬ ‫تاریخ‬ ‫…‬ ‫علت‬ ‫نوع‬ ‫تاریخ‬ ‫…‬
‫بحث تکمیلی ‪ :‬نوع موجودیت ضعیف (ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪40‬‬

‫‪ ‬تبدیل ارتباط سهگانی به ارتباطات دوگانی‬

‫‪ ‬از مفهوم نوع موجودیت ضعیف میتوان برای تبدیل یک ارتباط سهگانی (یا ‪-n‬گانی) به ارتباطات‬
‫دوگانی استفاده کرد‪.‬‬

‫‪ ‬اغلب ابزارهای طراحی مبتنی بر روش ‪ ER‬فقط ارتباطات دوگانی را پشتیبانی میکنند‪.‬‬

‫تبدیل رابطه سهگانه انتخاب به سه رابطه دوگانی‪.‬‬

‫دانشجو‬ ‫دارد‬ ‫انتخاب‬ ‫دارد‬ ‫درس‬


‫درس‬

‫دارد‬ ‫دانشجو‬ ‫انتخاب‬

‫استاد‬ ‫استاد‬
‫بحث تکمیلی ‪ :‬نوع موجودیت ضعیف (ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪41‬‬

‫‪ ‬میتوان چند ارتباط شناسا بین یک نوع موجودت قوی و یک نوع موجودیت ضعیف داشت‪.‬‬
‫‪E‬‬

‫مثالی از مطلب فوق بیاورید‪.‬‬


‫𝟏𝑹‬ ‫𝟐𝑹‬

‫‪F‬‬

‫‪ ‬یک نوع موجودیت ضعیف میتواند در یک نوع ارتباط دیگر با نوع موجودیت قوی دیگر شرکت داشته باشد‪.‬‬
‫‪E1‬‬ ‫‪E2‬‬

‫مثالی از مطلب فوق بیاورید‪.‬‬


‫𝟏𝑹‬ ‫𝟐𝑹‬

‫‪F‬‬
‫نکات راهنمای تدوین نمودار ‪ER‬‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪42‬‬

‫‪ ‬مشکل تصمیمگیری در مورد اینکه یک مفهوم‪ ،‬نوع موجودیت در نظر گرفته شود یا صفت یا نوع ارتباط باید‬
‫در یک فرآیند تدریجی در مدلسازی معنایی دادهها اصالح شود‪.‬‬

‫‪ ‬اگر یک مفهوم‪ ،‬صفت به نظر آید‪ ،‬آنرا صفت میگیریم‪ ،‬اما اگر به نوع موجودیت دیگری ارجاع داشته‬
‫باشد‪ ،‬آنرا به یک نوع ارتباط در نظر میگیریم‪.‬‬

‫‪ ‬اگر یک (چند) صفت در چند نوع موجودیت‪ ،‬مشترک باشند‪ ،‬آنرا به عنوان یک نوع موجودیت مستقل‬
‫منظور میکنیم‪.‬‬

‫‪ ‬اگر یک نوع موجودیت‪ ،‬تنها یک صفت داشته باشد و تنها با یک نوع موجودیت دیگر مرتبط باشد‪ ،‬آن‬
‫را صفت در نظر میگیریم‪.‬‬

‫‪ ‬اگر مجموعهای از صفات مستقال قابل شناسایی نباشند‪ ،‬آنرا به صورت نوع موجودیت ضعیف در نظر‬
‫میگیریم‪.‬‬
‫‪ ER‬گسترش یافته‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪43‬‬

‫‪ Extended ER :EER ‬یا ‪Enhanced ER‬‬

‫‪ ER ‬مبنایی کمداشت هایی داشت در نمایش بعض نوع ارتباطها (که بعدا در حیطه شیگرایی مطرح‬
‫شد)‬

‫تکنیک تخصیص‪ -‬ویژه نمایی ‪Specialization‬‬


‫”‪“IS A‬‬ ‫‪ -1‬ارتباط‬
‫تکنیک تعمیم ‪Generalization‬‬ ‫‪ER‬‬
‫«گونه ایست» ‪« /‬هست یک»‬
‫‪+‬‬
‫تکنیک تجزیه‬ ‫بعض نوع ارتباطهای دیگر‬
‫‪ -2‬ارتباط ”‪“IS A PART OF‬‬
‫تکنیک ترکیب‬

‫تکنیک تجمیع ‪Aggregation‬‬ ‫‪ -3‬ارتباط با ارتباط‬


‫ارتباط ”‪“IS A‬‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪44‬‬

‫‪ ‬ارتباط ‪ :IS A‬ارتبباط بین یک نوع موجودیت عام است با نوع موجودیت (های) خاص آن که بر‬

‫زیرنوع‬ ‫زبرنوع‬
‫(‪)SubType‬‬ ‫(‪)Supertype‬‬

‫اساس یک ضابطه مشخص بازشناسی میشود‪.‬‬

‫صفت معرف‬
‫‪Defining Attribute‬‬

‫‪“F IS-A‬‬ ‫”‪E‬‬ ‫‪ ‬طرز نوشتن‪:‬‬


‫‪ ‬وقتی نوع های خاص یک نوع عام را بازشناسی میکنیم به آن تکنیک ویژه نمایی‪-‬تخصیص یا‬
‫‪ Specialization‬گوییم‪.‬‬

‫‪ ‬عکس این تکنیک را تعمیم یا ‪ Generalization‬گوییم‪.‬‬


‫ارتباط ”‪( “IS A‬ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪45‬‬

‫انواع موجودات زنده‬


‫موجود زنده‬

‫نبات‬ ‫حیوان‬ ‫انسان‬

‫شماره‬ ‫نام‬

‫کارمند‬
‫انواع کارمندان‬

‫کارمند‬ ‫کارمند‬
‫مونث‬ ‫مذکر‬

‫‪A‬‬ ‫‪B‬‬ ‫…‬ ‫‪C‬‬ ‫…‬


‫ارتباط ”‪( “IS A‬ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪46‬‬

‫‪ ‬نکات‪:‬‬
‫‪ ‬زبرنوع مجموعه صفاتی دارد مشترک در تمام زیرنوع ها‬
‫‪ ‬درنتیجه زیرنوع تمام صفات زبرنوع را به ارث میبرد (وراثت صفات از نوع ساختاری)‪.‬‬

‫‪ ‬مفهوم ارثبری با تکنیک ارتباط ‪ IS-A‬مدلسازی میشود‪.‬‬

‫وراثت ممکن است ساختاری باشد یا رفتاری‪.‬‬ ‫‪‬‬

‫‪ ‬زیرنوع مجموعه صفات خاص خود را هم دارد [حداقل یک صفت]‬

‫‪ ‬اگر ‪ m‬تعداد شاخه های تخصیص منشعب از یک زبرنوع باشد داریم‪𝒎 ≥ 𝟏 :‬‬
‫ارتباط ”‪ - “IS A‬تخصیص‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪47‬‬
‫‪ -1‬کامل‪ :‬تمام زیرنوع های زبرنوع با توجه به ضابطه در مدلسازی دخالت داده میشود‪ .‬هر نمونه از‬
‫زبرنوع‪ ،‬جزء مجموعه نمونههای حداقل یکی از زیرنوعها است‪.‬‬ ‫‪ ‬تخصیص‬
‫‪ -2‬ناقص‪ :‬براساس ضابطه تمام زیرنوع های زیرنوع در نظر گرفته نمیشوند‪ .‬هر نمونه از زبرنوع لزوما‬
‫جزء مجموعه نمونههای یکی از زیرنوعها نیست‪.‬‬

‫تخصیص ناقص‪ :‬براساس مهارت کارمند فقط برنامه سازان را جدا کرده ایم‪.‬‬
‫شماره‬ ‫نام‬

‫کارمند‬

‫تخصیص کامل‬
‫برنامه ساز‬ ‫کارمند‬

‫نوع‬ ‫سطح‬ ‫…‬

‫کارمند‬ ‫کارمند‬
‫مونث‬ ‫مذکر‬
‫ارتباط ”‪ – “IS A‬تخصیص (ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪48‬‬

‫‪ -1‬مجزا‪ :‬یک نمونه از زبرنوع جزء مجموعه نمونههای حداکثر یک زیرنوع است‪.‬‬
‫‪ ‬تخصیص‬
‫‪ -2‬همپوشا‪ :‬یک نمونه از زبرنوع جزء مجموعه نمونههای حداقل دو زیرنوع است‪.‬‬

‫کارمند‬
‫تخصیص مجزا‬

‫‪D‬‬

‫کارمند‬ ‫کارمند‬
‫مونث‬ ‫مذکر‬

‫برنامه ساز‬
‫تخصیص همپوشا‬
‫‪O‬‬

‫سیستم نویس‬ ‫‪ AP‬نویس‬


‫ارتباط ”‪ – “IS A‬تخصیص (ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪49‬‬

‫‪ ‬براساس این دو ویژگی چهارگونه تخصیص داریم‪:‬‬

‫‪E‬‬ ‫‪E‬‬ ‫‪E‬‬ ‫‪E‬‬

‫کامل‬ ‫ناقص‬

‫‪D‬‬ ‫‪D‬‬ ‫‪O‬‬ ‫‪O‬‬


‫‪...‬‬ ‫‪...‬‬ ‫‪...‬‬ ‫‪...‬‬
‫مجزا‬ ‫همپوشا‬
‫‪Disjoint‬‬ ‫‪overlapping‬‬
‫ارتباط ”‪( “IS A‬ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪50‬‬

‫‪ ‬ادامه نکات‪:‬‬

‫‪ ‬زیرنوع میتواند خود زیرنوعهایی داشته باشد‪.‬‬

‫کارمند‬ ‫‪ ‬یعنی ژرفای (عمق) درخت تخصیص میتواند بیش از یک باشد‪.‬‬

‫‪D‬‬

‫برنامه ساز‬ ‫نابرنامه ساز‬

‫ابزارساز‬ ‫‪O‬‬

‫کاربردساز‬ ‫سیستمساز‬
‫ارتباط ”‪( “IS A‬ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪51‬‬

‫‪ ‬زیرنوع میتواند بیش از یک زبرنوع داشته باشد‪.‬‬


‫‪E‬‬ ‫‪F‬‬
‫‪ G ‬صفات را هم از ‪ E‬و هم صفات ‪ F‬را به ارث میبرد‬

‫‪ ‬وراثت چندگانه (‪ )Multiple Inheritance‬را میتوان اینگونه مدل کرد‪.‬‬


‫‪G‬‬
‫آیا ‪ G‬میتواند از خود نیز صفاتی داشته باشد‪.‬‬

‫نام‬ ‫نام‬ ‫ارثبری چندگانه‬


‫کد ملی‬ ‫کارمند‬ ‫دانشجو‬ ‫کد ملی‬

‫شماره‬ ‫شماره‬
‫کارگزینی‬ ‫دانشجویی‬

‫سال‬
‫سال ورود‬
‫استخدام‬ ‫داکا‬
‫⋮‬ ‫⋮‬
‫کد ملی و نام را فقط یک بار‬
‫برای «داکا» محاسبه میکند‪.‬‬
‫زیرنوع اجتماع (‪)U-Type‬‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪52‬‬

‫‪ ‬زیرنوع اجتماع (‪ )U-Type‬یا ‪« Category‬دسته»‬

‫‪ ‬زیرنوع موجودیت ‪ G‬را زیرنوع ‪ U-Type‬زبرنوعهای …‪ E,F,‬گوییم هرگاه در مجموعه نمونههای ‪G‬‬
‫نمونههایی از …‪ E,F,‬وجود داشته باشد‪ .‬در واقع نمایانگر اجتماعی از نمونهها از انواع مختلف است‪.‬‬

‫دسته کامل‬ ‫اگر همه نمونهها‬


‫دسته ناقص‬ ‫اگر بعض نمونهها‬

‫‪ ‬یک نمونه از زیرنوع اجتماع (دسته)‪ ،‬بسته به اینکه از نوع کدام زبرنوع باشد‪ ،‬صفات همان زبرنوع را به‬
‫ارث میبرد‪.‬‬
‫‪E‬‬ ‫‪F‬‬ ‫‪E‬‬ ‫‪F‬‬

‫‪U‬‬ ‫‪U‬‬

‫دسته کامل‬ ‫دسته ناقص‬

‫‪G‬‬ ‫‪G‬‬
‫زیرنوع اجتماع (ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪53‬‬

‫‪ ‬شناسه های زبرنوع ها میتواند از دامنه های متفاوت باشد‪.‬‬


‫‪ ‬متفاوت‪ :‬شناسه زیرنوع شناسه ایست که خود باید در نظر بگیریم‪.‬‬
‫‪ ‬یکسان‪ :‬شناسه زیرنوع همان شناسه زبرنوعها است‪.‬‬
‫‪PID‬‬ ‫‪CID‬‬ ‫‪BID‬‬
‫از ‪ELMASARI‬‬
‫⋮‬ ‫⋮‬ ‫⋮‬
‫شخص‬ ‫شرکت‬ ‫بانک‬

‫‪VID‬‬ ‫‪VID‬‬

‫⋮‬
‫ظرفیت‬ ‫سواری‬ ‫باری‬
‫‪U‬‬
‫‪VID‬‬ ‫⋮‬
‫از‬ ‫تا‬

‫‪OID‬‬ ‫⋮‬
‫‪M‬‬ ‫‪N‬‬ ‫وسیله‬
‫⋮‬
‫مالک‬ ‫مالکیت‬
‫نقلیه‬ ‫‪U‬‬

‫در چه صورت مدلسازی با ‪ U-Type‬را میتوان با تکنیک تخصیص (ویژهنمایی) معمولی مدل کرد؟ در چه شرایطی کدام یک‬
‫بهتر است؟‬
‫زیرنوع اجتماع (ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪54‬‬

‫‪ ‬تمرین ‪ :‬برای محیط با مفاهیم زیر‪ ،‬هم با ‪ U-Type‬و هم بدون ‪ U-Type‬یک مدلسازی ارایه دهید‪:‬‬
‫‪ ‬بانک ‪ -‬دانشگاه‬

‫‪ ‬شخص (دانشجو – استاد – کارمند و متفرقه)‬

‫‪ ‬حساب بانکی ( کوتاه مدت – بلند مدت – قرض الحسنه و‪)...‬‬

‫‪ ‬عملیات واریز – برداشت ‪ -‬انتقال وجه‬


‫تعمیم (‪)Generalization‬‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪55‬‬

‫‪ ‬تعمیم عبارت است از تشخیص یک نوع موجودیت جدید از روی [با داشتن] 𝟐 ≥ 𝒏 نوع موجودیت از‬
‫پیش دیده که ماهیتا از یک نوع باشند‪( .‬احیانا به منظور ادغام ‪ ERD‬های جدا)‬

‫فرض‪ :‬در یک مدلسازی یا در دو مدلسازی جدا برای دو زیر محیط‪:‬‬

‫شماره‬ ‫شماره‬
‫کارمند‬ ‫کارمند‬
‫روزمزد‬ ‫رسمی‬
‫نام‬ ‫نام‬

‫تاریخ شروع‬ ‫مزد‬ ‫…‬ ‫سال‬ ‫حقوق‬ ‫…‬


‫قرارداد‬ ‫مدت‬ ‫روز‬ ‫استخدام‬ ‫پایه‬
‫مبنا‬
‫تعمیم (ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪56‬‬

‫ادامه‪:‬‬

‫‪ ‬یک نوع موجودیت (کارمند) در سطح انتزاعی‬


‫باالتر دیده میشود‪:‬‬
‫شماره‬ ‫نام‬

‫کارمند‬

‫روزمزد‬ ‫رسمی‬

‫سال‬ ‫حقوق‬ ‫…‬


‫…‬ ‫تاریخ شروع‬
‫مدت‬
‫مزد‬ ‫پایه‬
‫قرارداد‬ ‫روز‬ ‫استخدام‬ ‫مبنا‬
‫تعمیم (ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪57‬‬

‫‪ ‬شرایط تعمیم‪:‬‬

‫‪ ‬داشتن شناسه مشترک [یعنی از یک دامنه]‬

‫‪ ‬حداقل وجود دو نوع زیرنوع‬

‫‪ ‬هرچه صفات مشترک بیشتر‪ ،‬تعمیم توجیه پذیرتر است [شرطِ الزم نیست ولی شرطِ ارجحیت است]‪.‬‬

‫ارتباطها؟‬
‫ارتباط ”‪ “IS-A-PART Of‬یا ”‪ “Has-A‬یا ”‪“Contains‬‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪58‬‬

‫‪ ‬تعریف‪ :‬ارتباط بین نوع موجودیت کل است با نوع موجودیتهای جزء آن (تشکیل دهنده آن)‬

‫‪F is a part of E ‬‬


‫‪ E ‬شامل ‪ F‬است‪.‬‬

‫‪ E ‬دارد ‪.F‬‬
‫‪ ‬نکته‪ :‬نوع کل مجموعه صفات خاص خود را دارد‪.‬‬
‫‪VID‬‬

‫⋮‬ ‫وسیله نقلیه‬ ‫‪ ‬نکته‪ :‬نوع جزء هم مجموعه صفات خاص خود‬
‫را دارد [از جمله شناسه]‪.‬‬
‫…‬
‫ارتباط شاسی و موتور با وسیله نقلیه‬

‫موتور‬ ‫شاسی‬ ‫…‬


‫‪MID‬‬ ‫‪SID‬‬

‫⋮‬ ‫⋮‬
‫ارتباط ”‪( “IS-A-PART Of‬ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪59‬‬

‫‪ ‬تفاوت های نوع ضعیف با نوع جزء‪:‬‬

‫‪ ‬نوع جزء از خود شناسه دارد ولی نوع ضعیف نه‪.‬‬

‫‪ ‬با حذف نوع کل لزوما نوع جزء حذف نمیشود (به عبارتی وابستگی وجودی لزوما نداریم‪).‬‬

‫‪... ‬؟‬

‫تکنیک تجزیه‪ :‬دیدن نوع موجودیتهای جزء از روی نوع موجودیت کل‬
‫‪ ‬در ارتباط ”‪“IS-A-PART Of‬‬
‫تکنیک ترکیب‪ :‬دیدن نوع موجودیت کل از روی اجزاء‬
‫ارتباط با ارتباط‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪60‬‬

‫‪ ‬تکنیک تجمیع (‪ :)Aggregation‬دیدن 𝟏 ≥ 𝑵 نوع موجودیت شرکت کننده در ارتباط ‪ ،R‬به صورت‬
‫یک نوع موجودیت انتزاعی‪ :‬به منظور مدلسازی ارتباط با ارتباط (به ویژه زمانی که نوع موجودیت ‪R‬‬
‫صفاتی هم داشته باشد)‪.‬‬

‫‪ ‬ارتباط با ارتباط حیطه معنایی خاص خود را دارد‪.‬‬

‫‪E‬‬ ‫𝟏𝑹‬ ‫‪F‬‬

‫وقتی از این تکنیک استفاده میشود‪ ،‬معنایش این‬ ‫𝟐𝑹‬

‫است که قبل از هر چیز به ارتباط ‪ R1‬نیاز است‪.‬‬


‫آنگاه ارتباط با ارتباط مطرح شده است‪.‬‬
‫‪G‬‬
‫ارتباط با ارتباط (ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪61‬‬

‫چرا ؟‬ ‫‪ ‬معموال از این تکنیک به ویژه زمانی استفاده میشود که چندی ارتباط ‪ M:N‬باشد‪.‬‬
‫طرز دیگر مدلسازی برای برای محیط دانشجو – درس – استاد‪:‬‬

‫…‬ ‫شماره‬
‫گروه‬

‫‪M‬‬ ‫‪N‬‬
‫دانشجو‬ ‫انتخاب‬ ‫درس‬

‫سال‬

‫ارایه‬
‫ترم‬

‫⋮‬

‫استاد‬ ‫‪ ‬نکته‪ :‬هر ‪ Aggregation‬برای یک ارتباط است و نه بیشتر‪.‬‬


‫ارتباط با ارتباط (ادامه)‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪62‬‬

‫ارزیابی راهنمایی پروژه پژوهشی دانشجو توسط استاد‬

‫پروژه‬

‫راهنمایی‬
‫استاد‬ ‫پروژه‬
‫دانشجو‬

‫ارزیابی‬

‫ارزیاب‬
‫مدلسازی معنایی داده ها‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪63‬‬

‫‪ ‬نکات زیر بررسی شود‪:‬‬

‫‪ ‬ویژگی های عمومی روش مدلسازی‬

‫‪ ‬کمداشت های روش ‪[E]ER‬‬

‫‪ ‬تناظر بین مفاهیم روش ‪[E]ER‬و روش ‪[ UML‬در نمودار رده ‪]Class diagram‬‬
‫مراحل مدلسازی معنایی دادهها‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪64‬‬

‫‪ -1‬مطالعه‪ ،‬تحلیل و شناخت محیط‬


‫‪ -2‬برآورد خواستهها و نیازهای اطالعاتی و پردازشی همه کاربران ذیربط محیط (مهندسی نیازها) و تشخیص‬
‫محدودیتهای معنایی و قواعد فعالیتهای محیط‬
‫‪ -3‬بازشناسی نوعموجودیتهای مطرح و تعیین وضع هر نوعموجودیت‬
‫‪ -4‬تعیین مجموعه صفات هر نوعموجودیت‪ ،‬میدان و جنبههای هر صفت‬
‫‪ -5‬بازشناسی نوعارتباطهای بین نوعموجودیتها‪ ،‬تشخیص الزامی بودن یا نبودن مشارکت در آنها و تشخیص‬
‫چندی هر ارتباط‬
‫‪ -6‬رسم نمودار ‪( ER‬یا ‪ )EER‬به صورت واضح‪ ،‬خوانا و حتیاالمکان با کمترین افزونگی‬
‫‪ -7‬فهرست کردن پرسشهایی که پاسخ آنها از نمودار به دست میآید (بر حسب گزارشهای مورد نیاز و کال‬
‫نیازهای دادهای کاربران)‬
‫‪ -8‬وارسی مدلسازی انجام شده‪ ،‬برای اطمینان از پاسخگو بودن به نیازهای کاربران‪.‬‬
‫یکپارچهسازی نمودارهای جزیی‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪65‬‬

‫‪ ‬گاه به علت وسعت محیط عملیاتی و تعدد کاربران آن الزم است مدلساز به ازای هر زیرمحیط و یا حتی یک‬
‫کاربر نمودار ‪ ER‬رسم کند‪.‬‬

‫‪ ‬در این صورت نیازمند ادغام و یکپارچهسازی نمودارهای ‪ ER‬هستیم‪.‬‬

‫‪ ‬در ادغام چند نمودار ‪ ER‬باید به تعارضهای (ماهیتا معنایی) بین نمودارها توجه کرد‪ .‬از جمله موارد زیر‪:‬‬
‫‪ ‬مدلهای نایکسان برای ایده واحد‬

‫‪ ‬تعارض در نامگذاری یک مفهوم (از لحاظ معنایی) واحد‬

‫‪ ‬تعارض معنایی دو مفهوم ظاهرا یکسان‬

‫‪ ‬تعارض در میدان صفتها‬

‫‪ ‬تعارض در رفتارها و محدودیتها‬

‫‪ ‬تحلیل این تعارضها قبل از تصمیمگیری درباره ادغام ‪ER‬ها باید انجام شود‪.‬‬
‫بخش دوم‪ :‬مدلسازی معنایی داده ها‬ ‫‪66‬‬

‫پرسش و پاسخ ‪. . .‬‬

‫‪amini@sharif.edu‬‬

You might also like