• مطالب آموزشی
    • تمام مطالب آموزشی
    • Excel
    • Power BI
    • DAX
  • دوره های آموزشی
    • کلاس اکسل پیشرفته
    • کلاس داشبورد با Power BI
    • کلاس DAX و مدلسازی داده‎
    • Power BI Report Server
    • گالری تصاویر
  • پکیج های آموزشی
    • اکسل
    • Power BI
    • SQL
    • سبد خرید
  • معرفی
  • تماس
  • اینستاگرام
  ورود
گروه تحلیلگری
  • مطالب آموزشی
    • تمام مطالب آموزشی
    • Excel
    • Power BI
    • DAX
  • دوره های آموزشی
    • کلاس اکسل پیشرفته
    • کلاس داشبورد با Power BI
    • کلاس DAX و مدلسازی داده‎
    • Power BI Report Server
    • گالری تصاویر
  • پکیج های آموزشی
    • اکسل
    • Power BI
    • SQL
    • سبد خرید
  • معرفی
  • تماس
  • اینستاگرام
0
ثبت نام / ورود

وبلاگ

برقراری رابطه با استفاده از کلید ترکیبی در Power BI

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

چالش

فرض کنید جدولی داریم که در آن میزان بودجه و سال و ماه ذخیره شده است. جدول بودجه را در شکل زیر مشاهده می نمایید.

همان طور که می دانید بُعد زمان (Date Dimension) یکی از مهمترین موارد مورد نیاز در اجرای یک پروژه هوش تجاری است. لذا یک Date Dimension نیز به پروژه اضافه می کنیم. تصویری از DimDate را مشاهده می کنید.

 DimDate حاوی اطلاعات تمامی روزها از چندین سال است. در واقع هر ردیف از جدول حاوی اطلاعات ۱ روز از یک سال خاص می باشد. به طور مثال ردیف اول با کلید ۲۰۱۰۰۷۰۱ نمایانگر سه شنبه، اول ماه july در سال ۲۰۱۰ می باشد. که اطلاعاتی از قبیل نام ماه، شماره ماه، شماره فصل، نیم سال، سال و … از آن در قالب ستون های مختلف استخراج شده است. 

آیا می توانید بین این دو جدول رابطه برقرار کنید؟ قطعا خیر! چرا که ستون های سال و ماه در هیچ کدام از جداول یکتا نیست. حتما می دانید برای ایجاد رابطه در Power BI باید حتما یکی از طرفین رابطه یکتا باشد. به طور مثال برای ایجاد رابطه بر اساس ستون سال باید ستون سال در یکی از جداول مقادیر یکتا داشته باشد. در حالی که هیچ کدام از ستون های روز، ماه و سال در هیچ کدام از ۲ جدول یکتا نیستند و مقادیر تکراری دارند.

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

برای این منظور به Edit Queries می رویم.

از سربرگ Add Column گزینه Custom Column را انتخاب می کنیم.

در پنجره باز شده عدد یک را وارد کرده تا عدد  به کلیه ردیف ها اضافه شود.

جدول نهایی به شکل زیر در خواهد آمد.

در حال حاضر دو جدول ۳ ستون مشترک دارند. سال، ماه و روز در هر دو جدول مشترک است. حال اگر قصد داشته باشیم بین هر یک ازاین ۳ ستون مشترک رابطه برقرار کنیم با اخطاری مواجه می شویم که این ستون ها در هیچ کدام از جداول یکتا نیستند و در صورت برقراری رابطه، رفتار چند به چند (Many to Many) خواهند داشت که مد نظر ما نیست.

مطالعه نمایید.
روابط در Power BI

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

راه حل

مشکل ما انتخاب چندین ستون به عنوان کلید و برقرای رابطه بین آن هاست، کاری که در Power BI امکان پذیر نمی باشد. اما راه حل چیست؟ درست است که ما امکان برقراری رابطه بین چند ستون را نداریم، اما امکان Join کردن جداول بر اساس چندین ستون وجود دارد.

مطالعه نمایید.
Join در Power BI

پس مطابق تصویر زیر به Edit Queries می رویم، و روی جدول Budget کلیک کرده و گزینه Merge را انتخاب می کنیم.

محیطی مشابه تصویر زیر برای ما باز می شود و  از ما می خواهد تعیین کنیم که عمل Merge بر اساس چه ستون هایی صورت پذیرد. ستون های مورد نظرمان را به ترتیب انتخاب می کنیم (اینکار با کمک کلید Ctrl انجام می شود). ستون های مورد نظر ما به ترتیب سال، ماه و روز است. مطابق تصویر زیر عمل Merge را انجام می دهیم.

پس از انجام عمل Join یا همان Merge ستونی به جدول Budget اضافه می شود و از ما می خواهد تعیین کنیم چه ستون هایی به این جدول اضافه شود. ما از تمامی انتخاب های موجود تنها ستون DateKey را انتخاب می کنیم چرا که می خواهیم رابطه را بر اساس این ستون برقرار کنیم. پس مطابق تصویر زیر عمل می کنیم.

در نهایت ستون دلخواه ما مطابق تصویر به جدول اضافه می شود.

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

درباره حسین وثوقی

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

نوشته های بیشتر از حسین وثوقی
در تلگرام
کانال ما را دنبال کنید!
در اینستاگرام
ما را دنبال کنید!
مطالب زیر را حتما بخوانید
  • پروژه مدیریت مواد اولیه و تولید با Power BI

    3.57k بازدید

  • کاربرد پارامتر در پاوربی آی
    کاربرد پارامتر و تحلیل حساسیت در پاور بی آی

    2.23k بازدید

  • پیاده سازی Navigation شرطی در Power BI

    1.69k بازدید

  • امنیت در سطح Object در Power BI

    1.1k بازدید

  • پروژه Power BI خانم یاسمن طاهری

    2.9k بازدید

  • پروژه Power BI آقای محمد آذر

    2.29k بازدید

guest
تعداد ماههای سال به عدد
guest
2 نظر
قدیمی ها
جدید ها بیشترین رای
Inline Feedbacks
View all comments
علی صارمی
علی صارمی

سلام و تشکر از مطلب بسیار آموزندتون، فکر میکنم در مثال بالا باید گزینه فراپیوند راست را انتخاب کنیم یا جداول را بر عکس بزاریم..چون در ستون جدید budget میزان null به وجود میاد که این اشتباه است..یادمان باشد در ستون data key جدول budget نباید میزان null وجود داشته باشد.

0
پاسخ
المیرا کریمی
المیرا کریمی

واقعا آموزنده و عالی.سپاس از اینهمه زحمت

0
پاسخ
جستجو
جستجو برای:
دسته بندی ها
  • Charts
  • DAX
  • Excel
  • Power BI
  • Power Query
  • هوش تجاری
بسته های آموزشی
  • Excel
  • Power BI
  • SQL
درباره گروه تحلیلگری

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

اطلاعات تماس
  • تهران، خیابان مطهری، ابتدای خیابان سنایی، کوچه بیست و یکم
  • 543 30 910 - 021
پیوندها
  • آموزش Power BI
  • آموزش SQL
  • آموزش اکسل
دسته بندی محصولات
Excel Power BI SQL
نماد الکترونیک
wpDiscuz

ورود

رمز عبور را فراموش کرده اید؟

هنوز عضو نشده اید؟ عضویت در سایت