امتیاز دهید
در این آموزش به سراغ کارکردن با روابط و کاردینالیتی خواهیم رفت. پاور بی آی برخلاف سایر سیستم های مدیریت دیتابیس، دارای مفهوم جهت گیری نسبت به یک رابطه می باشد. این جهت گیری یا کاردینالیتی نقش مهمی در فیلتر کردن داده های موجود مابین چند جدول دارد. زمانیکه داده ها را بارگزاری می کنید، پاور بی آی از طریق مطابقت دادن اسامی ستون ها، به صورت خودکار دنبال روابطی می گردد که در داده ها وجود دارد. همچنین شما بمنظور ویرایش این گزینه ها بصورت دستی می توانید از Manage Relationships استفاده نمایید.

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

مثالی از دیتا مدل

برای دیدن تمام آموزش های پاور بی آی به لینک زیر مراجعه کنید:

دوره رایگان و فیلم آموزش پاور بی آی (power BI)

کاردینالیتی

موارد زیر چند نوع از کاردینالیتی می باشند که شما در پاور بی آی پیدا خواهید کرد.

کاردینالیتی چند به یک (*:1) یا یک به چند (1:*):

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

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

کاردینالیتی چند به یک

کاردینالیتی یک به یک (1:1):

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

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

مثال رابطه یک به یک

کاردینالیتی چند به چند  (.):

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

مثال رابطه چند به چند

برای مثال تصویر پایین یک رابطه چند به چند را مابین جدوال Sales و Order در ستون OrderDate نشان می دهد چرا که فروش های مختلف می توانند سفارشات مرتبط مختلفی داشته باشند. به دلیل اینکه هر دو جدول می توانند تاریخ سفارش یکسانی داشته باشند، ابهام ایجاد می شود.

چند به چند

جهت فیلتر متقاطع

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

در جهت فیلتر متقاطع منحصر به فرد:

برای فیلتر کردن داده ها فقط یک مورد از جداول موجود در رابطه می تواند مورد استفاده قرار گیرد. برای مثال، Table 1 می تواند توسط Table 2 فیلتر شود، ولی Table 2 نمی تواند توسط Table 1 فیلتر شود.

توصیه: جهت پیکان رابطه موجود مابین جداول را دنبال کنید تا متوجه شوید که فیلتر کدام جهت را دنبال خواهد کرد. معمولا شما می خواهید که این پیکان به جدول واقعیت اشاره کند.

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

در جهت های فیلتر متقاطع یا فیلتر متقاطع دو جهته:

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

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

کاردینالیتی و جهت فیلتر متقاطع

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

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

به همین دلیل روابط چند به چند و / یا روابط دو طرفه پیچیده می باشند. بغیر از مواردی که شما در مورد شکل داده های خودتان در حین یکپارچه سازی مطمئن می باشید، این روابط بدون انتها همراه با جهت های فیلتر متفاوت می توانند مسیرهای متفاوتی را در داده ها نشان دهند.

ایجاد روابط چند به چند

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

رابطه چند به چند

به منظور ایجاد این رابطه به Manage Relationships و بعد از آن New بروید. در پنجره ظاهر شده یک رابطه ای را مابین ستون Customer ID در CustomerTable و AccountTable ایجاد کنید. کاردینالیتی به صورت چند به چند تنظیم شده است و نوع فیلتر در هر دو جهت می باشد. بلافاصله به شما هشدار داده می شود که در صورتیکه پیشبینی شما عبارت از وجود نداشتن مقادیر منحصر بفرد در ستون ها باشد، فقط باید از این نوع رابطه استفاده کنید چرا که ممکن است مقادیر غیرمنتظره دریافت کنید. به دلیل اینکه می خواهید در هر دو سمت فیلتر کنید، باید فیلتر متقاطع دوطرفه را انتخاب نمایید.

OK را انتخاب کنید. در حال حاضر توانستید یک رابطه چند به چند ایجاد کنید.

مدیریت روابط

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

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

مشترک شدن
Notify of
guest

2 نظرات
نظردهی درون متنی
مشاهده همه نظرات
سروش

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

امیر دایی

هر کسی بنا به نیازش از یک مطلب استفاده میکنه. هدف این مطالب هم ترجمه عین مطالبی هست که در سایت مایکروسافت منتشر شده. هدف ما انتقال مطلب هست، حال اینکه مخاطب فهمید یا نه خیلی هدف این مطالب نیست. آموزش های ویدئویی که در این لینک هست هدفشون آموزش هست، اگر اونها رو ببینید قاعدتا تفاوت بین مطالب رو متوجه خواهید شد: https://skillpro.ir/pbi اون مدل آموزشی که مد نظر شما هست رو می تونید از سایت زیر تهیه کنید و قاعدتا رایگان در اختیارتون قرار نمی گیره: https://www.sqlbi.com/training/ هزینه یک دوره فرمول نویسی dax حدودا 340 دلار. (10 میلیون… مطالعه بیشتر »