یکپارچگی ارجاعی (Referential Integrity) برای اتصالها در Tableau Desktop
گزینهی Assume Referential Integrity یا به اصطلاح یکپارچگی ارجاعی در Tableau Desktop برای بهبود عملکرد پیوندها استفاده میشود.
زمانی که این گزینه فعال باشد، Tableau تنها جداولی را در پرسوجو وارد میکند که فیلدهایشان در نما استفاده شده باشند. این قابلیت زمانی مناسب است که مطمئن باشید دادهها دارای Referential Integrity هستند، اما پایگاه داده آن را enforce نمیکند. در چنین شرایطی، فعالسازی این گزینه باعث کاهش حجم دادههای پردازششده و افزایش سرعت اجرای کوئریها میشود. البته اگر امکان تعریف Referential Integrity در خود پایگاه داده وجود داشته باشد، بهتر است از همان روش استفاده شود تا هم در سطح پایگاه داده و هم در Tableau کارایی بهبود یابد.
در برخی موارد، میتوانید با انتخاب گزینه فرض یکپارچگی ارجاعی از منوی Data، عملکرد پرسوجو برای اتصالها را بهبود بخشید. وقتی از این گزینه استفاده میکنید، Tableau جدول اتصالیافته را تنها در صورتی در پرسوجو لحاظ میکند که بهطور خاص توسط فیلدهایی در نما به آن ارجاع داده شده باشد.
استفاده از این تنظیم زمانی مناسب است که میدانید دادههای شما دارای یکپارچگی ارجاعی هستند (به تعریف زیر مراجعه کنید) اما پایگاه داده شما یکپارچگی ارجاعی را اعمال نمیکند یا نمیتواند اعمال کند. اگر گزینه پیکربندی یکپارچگی ارجاعی را در پایگاه داده خود دارید، این گزینه بهتر از استفاده از این تنظیم است زیرا میتواند عملکرد را هم در پایگاه داده و هم در Tableau بهبود بخشد. گزینه Assume Referential Integrity در Tableau فقط میتواند بر عملکرد در سمت Tableau تأثیر بگذارد. اگر دادههای شما یکپارچگی ارجاعی نداشته باشند و این تنظیم را فعال کنید، نتایج پرس و جو ممکن است قابل اعتماد نباشند.
Assume Referential Integrity
برای درک اینکه یکپارچگی ارجاعی چیست، تصور کنید که به دادههای فروش که دارای دو جدول است متصل میشوید: Sales و Product Catalog. این دو جدول در زیر نشان داده شدهاند:
Sales
|
Product Catalog
|
از آنجا که تمام محصولاتی که فروخته میشوند باید در کاتالوگ محصولات فهرست شوند، هر ردیف در جدول فروش، یک ردیف منطبق در جدول کاتالوگ محصولات دارد. وقتی این دو جدول بر اساس شناسه محصول به هم متصل شوند، در نهایت جدولی مانند این خواهید داشت:
| Product ID | Product Name | Product ID | Sale Amount | Transaction Date |
| 1 | 10 Inch Tablet | 1 | 100 | 10/1/2012 |
| 1 | 10 Inch Tablet | 1 | 2000 | 10/2/2012 |
| 2 | Smart Phone | 2 | 50 | 9/30/2012 |
| 3 | Desk Lamp | 3 | 10 | 8/21/2012 |
Referential Integrity for Joins
حالا فرض کنید شما یک نما (view) برای مشاهدهی مبلغ فروش بر اساس منطقه (Region) ایجاد کردهاید. به طور پیشفرض، کشیدن فیلد مبلغ فروش به نما ممکن است یک پرسوجو (query) مانند این ایجاد کند:
SELECT SUM([Sales Amount]) FROM [Sales] S INNER JOIN [Product Catalog] P ON S.ProductID = P.ProductID
با انتخاب Assume Referential Integrity، به Tableau میگویید که جداول متصل شده دارای یکپارچگی ارجاعی هستند. به عبارت دیگر، شما تأیید میکنید که جدول فروش همیشه یک ردیف منطبق در جدول کاتالوگ محصول خواهد داشت. از آنجا که این موضوع درست است، Tableau برای بازگرداندن این نتایج به هیچ اطلاعاتی از جدول کاتالوگ محصول نیاز ندارد. وقتی فیلد Sales Amount را به داخل نما میکشانید، Tableau میتواند پرسوجو را به صورت زیر ساده کند:
SELECT SUM([Sales Amount]) FROM [Sales]
این کوئری سادهشده اغلب میتواند نتایج سریعتری را برگرداند زیرا عملیات اتصال (join) را حذف میکند. این گزینه فقط اتصالات داخلی را تحت تأثیر قرار میدهد و بر منابع دادهای که یک جدول واحد دارند، تأثیری ندارد.
برای خرید لایسنس نرم افزار Tableau ، میتوانید از خدمات ما استفاده نموده و درخواست خود را از طریق فرم زیر ثبت نمایید.


بدون دیدگاه