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

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

قاعده پنجم نرمال سازی می گوید: روابط چند گانه مرتبط درون هر پایگاه داده باید از هم ایزوله شوند. به عبارت دیگر اگر پایگاه داده ای دارای چندید رابطه پیچیده است باید هر کدام از رابطه ها در جدول مستقل قرار گیرد.

لیست زیر روابطی است که در مثال ما وجود دارد:

  • هر استاد می تواند چندین مهارت تدریس کند
  • هر مهارت می تواند توسط چندین استاد تدریس گردد
  • هر اداره ممکن است دارای چندین مهارت قابل تدریس باشد
  • هر اداره ممکن است مایل باشد با استاد خاصی همکاری کند

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

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



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