MIDOONY Logo

مدل های داده و مدل سازی داده (بخش دوم - مدل رابطه ای موجودیتی Entity Relationship Data Model)

1399/11/22
مدل های داده و مدل سازی داده (بخش دوم - مدل رابطه ای موجودیتی Entity Relationship Data Model)

#مدل_داده #ER (#Entity_Relationship_Data_Model)

این مدل که بیش از 35 سال قدمت دارد برای مدل سازی داده ها مناسب بوده و به دلیل شرح و تفسیر آسان در #پایگاه_داده مورد استفاده قرار می گیرد. مدل های ER براحتی به روابط ترجمه شده و با نمودارهای ER نشان داده می شوند.

مدل سازی ER بر مبنای دو مفهوم می باشد :

  • #موجودیت (#Entity) به عنوان جداول که اطلاعات و داده های مشخصی را نگهداری می کنند
  • #رابطه (#Relation) به عنوان ارتباط و تعامل بین جداول

در یک مدل داده ER از اجزا زیر استفاده می شود :

  1. Entity, Entity Set and Entity Type

موجودیت (Entity) یک شیء در دنیای واقعی است با خصوصیات مستقل که آنرا از سایر اشیاء متمایز می کند و می تواند به انواع زیر باشد :

  • با خصوصیات فیزیکی : مدرس ، محصل ، ماشین
  • با خصوصیات مفهومی : دوره تحصیلی ، شغل ، جایگاه

موجودیت ها بر اساس قدرت آنها دسته بندی می شوند. یک موجودیت ضعیف است اگر دارای خصوصیات وابسته باشد. یعنی بدون رابطه با موجودیت دیگر نمی تواند وجود داشته باشد مانند سفارش که به محصول وابسته است و هیچ سفارشی بدون محصول نمی تواند موجود باشد. اما یک موجودیت قوی است اگر به تنهایی نیز بتواند وجود داشته باشد حتی اگر موجودیت وابسته آن وجود نداشته باشد مانند محصول که با اینکه به سفارش وابسته هست ولی ممکن است یک محصول هیچ سفارشی نداشته باشد.

#نوع_موجودیت (#Entity_Type) مجموعه ای از موجودیت های مشابه را تعریف می کند مانند کارمند.

#مجموعه_موجودیت (_Entity_Set) مجموعه ای از موجودیت ها از یک نوع و در یک زمان مشخص می باشد مانند کارمندان یک واحد سازمانی در یک زمان خاص.

در نمودار رابطه ای موجودیتی (ERD) یک نوع موجودیت توسط یک نام داخل مستطیل نشان داده می شود مانند کارمند در شکل زیر.

موجودیت ها براساس مستقل بودن ، وابسته بودن و مشخصه خاص داشتن به صورت زیر دسته بندی می شوند :

مستقل – اجزا اصلی پایگاه داده را تشکیل می دهند که وجود آنها وابسته به وجود موجودیت دیگر نیست.

وابسته – وجود آنها به وجود موجودیت وابسته آنها ارتبط دارد.

مشخصه – اطلاعاتی در خصوص موجودیت ها ارائه می دهد و شامل مقادیر ممکن برای ویژگی ها هستند مانند مقادیر مورد نظر برای نوع استخدام.

 

  1. Attributes

هر موجودیت توسط یکسری از ویژگی ها شرح داده می شود مانند کارمند با ویژگی های نام ،آدرس ، تاریخ تولد ، سن و حقوق. هر ویژگی دارای یک نام بوده و مقادیر مجاز در دامنه آن را شامل می شود.

Types of Attributes

چند نوع ویژگی وجود دارد که به صورت زیر می باشند :

ویژگی ساده (Simple attributes) – دارای مقادیر واحد از دامنه می باشند مانند نام ، تاریخ تولد ، حقوق

ویژگی مرکب (Composite attributes)  - دارای سلسله مراتبی از ویژگی های دیگرهستند مانند آدرس که خود شامل اجزای دیگر هست.

ویژگی چند مقداری (Multivalued attributes) – مجموعه مقادیر یک موجودیت می باشند مانند تحصیلات که شامل کارشناسی ، کارشناسی ارشد و دکترا است.

 

ویژگی مشتق شده (Derived attributes) – شامل مقادیر محاسبه شده از ویژگی های دیگر هستند مانند سن که از تاریخ تولد محاسبه می شود.

این ویژگی ها معمولا در پایگاه داده ذخیره نمی شوند. اما به ویژگی تاریخ تولد که به صورت فیزیکی ذخیره می شود stored attribute هم گفته می شود.

 

Keys (کلیدها)

یک محدودیت مهم روی موجودیت است و شامل یک یا چند ویژگی است که مقادیر جهت یکتا بودن موجودیت از آنها استفاده می نمایند.

Types of Keys (انواع کلیدها)

چندین نوع کلید وجود دارد که به صورت زیر تعریف می گردند :

کلید کاندید (Candidate key) – کلید ساده یا مرکب که یکتا و کمینه می باشد. یکتا چون هیچ دو سطری از جدول مقادیر مشابه از آنرا ندارند و کمینه چون حداقل نیاز جهت یکتا بودن است. مانند شماره کارمندی یا ترکیب نام و نام خانوادگی اگر تکراری نباشد.

کلید مرکب (Composite key) – ترکیبی از دو یا بیشتر ویژگی که باید کمینه باشند. مانند ترکیب نام و نام خانوادگی

کلید اصلی (Primary key) – توسط طراح پایگاه داده از بین کلیدهای کاندید برای کل موجودیت انتخاب می گردد. این کلید یکتا و غیر خالی است که در نمودار ER هم نشان داده میشود. مانند شماره کارمندی

 

Null (تهی)

نماد خاصی که مستقل از نوع داده بوده و نشان دهنده ناشناخته یا غیرکاربردی بودن است. با صفر و فضای خالی فرق دارد و هیچ داده ای را شامل نمی شود.

 

Relationships (روابط)

روابط مانند چسبی هستند که جداول را به هم متصل می نمایند و برای اتصال اطلاعات مرتبط استفاده می شوند. یک رابطه ضعیف است اگر کلید اصلی جدول دوم ترکیبی از کلید اصلی جدول اول نباشد مانند

• Customer(CustID, CustName)

• Order(OrderID, CustID, Date)

یک رابطه قوی است اگر کلید اصلی جدول دوم ترکیبی از کلید اصلی جدول اول باشد مانند

• Course(CrsCode, DeptCode, Description)

• Class(CrsCode, Section, ClassTime…)

 

Types of Relationships (انواع روابط)

رابطه یک به چند (1:M) – یک موجودیت می تواند با چندین موجودیت دیگر در ارتباط باشد مانند واحد سازمانی که دارای چندین کارمند است.

رابطه یک به یک (1:1) – یک موجودیت فقط با یک موجودیت دیگر در ارتباط است مانند واحد سازمانی که فقط یک مسئول دارد.

رابطه چند به چند (M:N) – روابط چندگانه با ویژگی های زیر :

  • در مدل رابطه ای پیاده سازی نمی شوند.
  • به دو یا بیشتر روابط یک به چند تبدیل می شوند.

مانند یک کارمند که در چندین پروژه کار می کند و هر پروژه که دارای چندین کارمند است. از یک جدول واسطه با فیلدهای شماره کارمندی ، کد پروژه و تاریخ فعالیت برای تبدیل آن به روابط یک به چند استفاده می شود.

رابطه سه گانه (Ternary) – روابط چند به چند را بین سه جدول بکار می گیرد مانند رابطه پروژه ها، قطعات و تامین کنندگان که به صورت زیر نشان داده شده است.

محدودیت ها و قواعد یکپارچگی

محدودیت ها از ویژگی های مهم مدل رابطه ای بوده و درواقع قواعدی هستند که توسط طراح برای داده ها تعریف شده و باید توسط پایگاه داده اعمال شوند.

محدودیت دامنه - محدودیت هایی نظیر محدودیت تعریف دامنه که محدوده مقادیر مجاز برای فیلدها را مشخص می کند ، محدودیت تعریف کلید اصلی در جدول و محدودیت تعریف رابطه بین جداول که به آنها محدودیت های یکپارچگی.گفته می شود.

محدودیت سازمانی - قواعد سازمانی که مشخصا وجود دارند و توسط کاربران یا راهبران پایگاه داده باید لحاظ شوند مانند اینکه یک کلاس نمی تواند بیشتر از 30 دانش آموز داشته باشد یا حقوق یک کارمند نمی تواند از حقوق مدیرش بیشتر باشد.

قواعد کسب و کاری - قواعدی هستند که حین جمع آوری نیازهای کاربران بدست می آیند و بسیار مهم می باشند به عنوان نمونه می توان به مثال های قبلی اشاره کرد.

Cardinality and Connectivity

دو ویژگی مورد استفاده برای ترسیم روابط در نمودارهای ER هستند که توسط قوانین کسب وکاری تعیین می شوند. Cardinality به تعداد موجودیت های درگیر در هر سمت یک رابطه اشاره می کند در حالیکه Connectivity نوع رابطه بین دو جدول را بیان می نماید مانند یک به یک یا یک به چند. همانطور که در شکل زیر مشاهده می شود در سمت چپ Connectivity یک و Cardinality  هم یک است و در سمت راست Connectivity چند وCardinality  صفر است.

 

به عنوان نمونه در این شکل فقط Connectivity نشان داده شده است

در حالیکه در شکل زیر علائم داخلی Cardinality و علائم بیرونی Connectivity نشان داده شده اند.

 

سایر علائم و نحوه کاربرد آنها جهت استفاده در نمودارهای ER بصورت زیر می باشند :

 

 

 یک نظریه مهم در مدل ER به نام وابستگی کارکردی (FD = functional dependency) مطرح می باشد که نحوه ارتباط فیلدها را بیان می نماید یعنی نوعی محدودیت برای فیلدها هستند که در ترسیم صحیح روابط بکار می روند.

افزونگی (#Redundancy)

طراحی پایگاه داده باید به گونه ای باشد که جهت تامین نیازها ، اطلاعات به میزان حداقلی و بدون تکرار ذخیره گردند. تکرار یا افزونگی باعث مشکل ناسازگاری اطلاعات پس از بروزرسانی ها می گردند.

ناهنجاری در افزودن (Insertion Anomaly) – هنگام افزودن اطلاعات ناسازگار

ناهنجاری در بروزرسانی (Update Anomaly) – هنگام بروزرسانی ناقص اطلاعات

ناهنجاری در حذف (Deletion Anomaly) – هنگام حذف اطلاعات وابسته

نحوه اجتناب از ناهنجاری ها

بهترین روش برای ایجاد جداول بدون ناهنجاری ، نرمال سازی جداول می باشد که با درک کامل وایستگی عملکردی انجام می شود. FD تضمین می کند که تمام ویژگی های یک جدول متعلق به آن جدول و موجودیت می باشد به عبارت دیگر افزونگی و ناهنجاری را رفع می نماید.  

این کار جداول را به چندین جدول با حداقل میزان هم پوشانی تجزیه می کند مثلا جدول قبلی به دو جدول شعبه و مشتری به صورت زیر تقسیم می شود.

مثال دیگر جدول کارکرد کارمندان در پروژه ها می باشد

که باید به دو جدول کارمند و پروژه به صورت زیر تقسیم شود.

1 701
دیدگاه کاربران
0 دیدگاه
شما هم دیدگاه خود را ارسال کنید