در این قسمت چند قاعده ساده برای تبدیل نمودار er به بانک اطلاعاتی را ارائه آموزش می دهیم، با استفاده از این قواعد می توان یک بانک اطلاعاتی نسبتاً نرمال ایجاد کرد. براي تبديل نمودار ER به بانك اطلاعاتي قواعد زير را استفاده مي كنيم :
قاعده اول:
هر نهاد قوی به یک جدول تبدیل می شود که دارای ستون هایی برای هر کدام از صفات خاصه بوده و هر بخش از صفات خاصه مرکب بصورت يك ستون جداگانه پياده سازي مي گردد.
قاعده دوم:
هر موجوديت ضعیف تبدیل به یک جدول شده و این جدول دارای یک کلید خارجی متناظر با کلید اصلی در جدول مربوط به موجوديت قوی است.
مثال:
Personal:کارمند Family:اعضای خانواده کارمند
Family یک نهاد ضعیف است چون وجودش وابسته به نهاد Personal می باشد.یعنی اگر کارمندی وجود نداشته باشد اعضای خانواده ی او هم نمی توانند وجود داشته باشند. پياده سازي آن بصورت زير خواهد بود:
قاعده سوم:
برای یک رابطه ی درجه یک (رابطه ای که بین بك موجوديت و خودش است)، یک ستون اضافی به عنوان کلید خارجی در آن ایجاد کرده که در ارتباط با کلید اصلی جدول مي باشد.
مثال:
Salary | Name | Mng_Code | Code |
200 | ali | 0 | 1 |
150 | reza | 1 | 2 |
120 | sara | 1 | 3 |
110 | hadi | 3 | 4 |
150 | zahra | 3 | 5 |
قاعده چهارم:
برای یک رابطه درجه ی 2 و با کاردینالیتی 1:1 برای هر نهاد یک جدول ایجاد کرده و کلید اصلی آن دو جدول با هم متناظر خواهد بود.
قاعده پنجم:
برای یک رابطه درجه2 باکاردینالیتی1:N نهادطرف یک تبدیل به یک جدول می شود و نهاد طرف چند(N) تبدیل به یک جدول با کلید خارجی متناظر با کلید اصلی جدول دیگری می شود.به عنوان مثال براي نهادهاي كارمند و پروژه ، به شرط اینکه بر روي هر پروژه فقط یک کارمند كار كند و هر كارمندي بتواند چند پروژه را انجام دهد، خواهيم داشت:
قاعده ششم:
در رابطه ی درجه ی 2 با کاردینالیتی M:N (چند به چند) هر کدام از نهادها به صورت یک جدول پیاده سازی شده و خود رابطه نيز به صورت یک جدول جداگانه ایجاد می شود که دو کلید خارجی متناظر با کلیدهای اصلی در دو جدول نهاد دارد. ضمن اینکه ترکیب کلیدهای خارجی در جدول رابطه می تواند کلید اصلی آن باشد.
مثال: رابطه دانشجو با درس كه هر دانشجو مي تواند چند درس را انتخاب كرده و هر درس مي تواند توسط چند دانشجو انتخاب شود.
قاعده هفتم:
برای صفاتی که می توانند مقدار آنها از این چند مقدار معین انتخاب شوند.
مثل رشته در جدول درس ها یا جدول دانشجو و يا استان محل سکونت در جدول دانشجویان و غیره. یک جدول برای نگهداری مقادیر قابل انتخاب ایجاد می کنیم مثلا جدول رشته ها ودر جدولی که دارای آن صفت است ،صفت به صورت کلید خارجی متناظر با كليد اصلي این جدول پیاده سازی می شود.
قاعده هشتم:
برای صفات چند مقداری مثل صفت فعالیت علمی دانشجو یا مدارک استاد یک جدول جداگانه ای برای نگهداری فعالیت ها و مقادیر آن صفت ایجاد می کنیم که دارای یک کلید خارجی مرتبط با کلید اصلی درجدول نهاد است.
مثال :جدول دانشجويان و فعاليت هاي آنها
Students
Avg | Name | Id |
17 | Ali | 100 |
14 | Sara | 101 |
Activities
Title | Id | ACode |
رتبه اول مسابقات ورزشي | 100 | 1 |
رتبه اول مسابقات علمي | 101 | 2 |
برگزاري سمينار آموزشي | 100 | 3 |
قاعده نهم:
یک رابطه تخصیص به صورت دو جدول که جدول اصلی دارای اطلاعات نهاد اصلی(پايه) و جدول مشتق دارای اطلاعات نهادهای خاص(مشتق) مي باشد. در جدول مشتق يك ستون به عنوان كليد خارجي مرتبط با كليد اصلي در جدول پايه خواهد بود و بازاي هر سطر در جدول مشتق بايد يك سطر در جدول پايه وجود داشته باشد.
Spay: شروع قرارداد
Epay: پایان قرارداد
Semp: شروع استخدام
Numday: تعداد روزهای کارکرد
قاعده دهم :
رابطه تجمیع مثل رابطه بین کامپیوتر و قطعات آن. یک جدول ايجاد مي كنيم که دارای ستونهایی برای صفات خاصه نهاد اصلی است و یک جدول برای هرکدام از نهادهایی جزئي كه دارای ستونهایی برای نگهداری مشخصات آنها بعلاوه یک ستون بعنوان کلید خارجی مرتبط با کلید اصلی در جدول اصلي هستند.
مثال:نمودار زیر را به بانک اطلاعاتی تبدیل کنید.
پاسخ – جدول ها :
1- جدول پزشک ها
Doctors
ردیف | نام ستون | نوع داده |
1 | Dcode | عددی |
2 | Nezam | عددی |
3 | Name | کاراکتری |
2- جدول بیمه ها
Insurance
ردیف | نام ستون | نوع داده |
1 | Icode | عددی |
2 | Addr | متنی |
3 | Tel | عددی |
3- جدول بیماران
Bimaran
ردیف | نام ستون | نوع داده |
1 | Bcode | عددی |
2 | Name | کاراکتری |
3 | Addr | کاراکتری |
4 | Icode | عددی |
4- جدول بیماریها
Bymary
ردیف | نام ستون | نوع داده |
1 | Ycode | عددی |
2 | Name | کاراکتری |
3 | Sharh | کاراکتری |
- جدول رابطه – پزشک ، بیمار ، بیماری
Vizits
ردیف | ستون | نوع داده |
1 | Dcode | عددی |
2 | Bcode | عددی |
3 | Ycode | عددی |
4 | Vdate | تاریخ |
رابطه بین جداول بصورت زیر است: