330 likes | 503 Views
انتخاب دید ذخیره شده در پایگاه داده های تحلیلی. ارائه دهندگان : محمد رضا شمس محمد تقی صفار استاد مربوطه: دکتر رهگذر پاییز 88. رئوس مطالب. معرفی پایگاه داده تحلیلی ( Data Warehousing ) معرفی جداول بعد و واقعیت دید ذخیره شده ( Materialized View ) محاسبه هزینه دید ذخیره شده
E N D
انتخاب دید ذخیره شده در پایگاه داده های تحلیلی ارائه دهندگان : محمد رضا شمس محمد تقی صفار استاد مربوطه: دکتر رهگذر پاییز 88
پایگاه داده پیشرفته رئوس مطالب • معرفی پایگاه داده تحلیلی (Data Warehousing) • معرفی جداول بعد و واقعیت • دید ذخیره شده (Materialized View) • محاسبه هزینه دید ذخیره شده • ساختار شبکه در مجموعه دیدها • الگوریتم های انتخاب مجموعه دید های ذخیره شده
پایگاه داده پیشرفته معرفی پایگاه داده تحلیلی • مقدمه • تعریف پایگاه داده تحلیلی از نظر Bill Inmon: • مجموعه ای از داده های موضوع گرا، مجتمع، متغیر با زمان و پایدار • کمک به تصمیم گیری های مدیریتی و پیش بینی آینده • تفاوت پایگاه داده تحلیلی با پایگاه داده • از دید مدل داده: استفاده از سیستم پردازش تحلیلی بر خط(OLAP) به جای سیستم های پردازش تراکنش • عملیات قابل اجرا • حجم داده • زمان پرس وجو
پایگاه داده پیشرفته مولفه های یک پایگاه داده تحلیلی • مولفه های یک پایگاه داده تحلیلی: • مولفه داده منبع: داده تولید شده، داخلی، آرشیو و خارجی • مولفه انتقال داده: استخراج، تغییر شکل و بارگذاری داده • مولفه پایگاه داده • مولفه متاداده: داده درباره داده • مولفه مدیریت و کنترل • مدل داده چند بعدی: مدل کردن داده به شکل یک مکعب داده(Cube) • بعد(Dimension) • واقعیت (Fact)
پایگاه داده پیشرفته ساختار جداول بعد و واقعیت • انواع ساختارها: ستاره ای، دانه برفی و کهکشانی • انتخاب ساختار مناسب برای طراحی پایگاه داده تحلیلی ؟ ؟ ؟
پایگاه داده پیشرفته معرفی دید ذخیره شده • تفاوت دید معمولی با دید ذخیره شده: • دید معمولی: ذخیره تعریف دید و اجرای آن در هر بار فراخوانی • دید ذخیره شده: ذخیره نتایج حاصل از اجرای دید • اهمیت استفاده از دید ذخیره شده: ایجاد دید بر روی اطلاعات جمع بندی و طبقه بندی شده به جای اجرای مرتب یک پرس و جو بر روی یک پایگاه داده • مسئله مهم: وجود روش های متفاوت ایجاد یک دید ذخیره شده، نحوه مقایسه و در نهایت انتخاب بهترین روش در شرایط متفاوت !!!
پایگاه داده پیشرفته محاسبه هزینه ایجاد دید ذخیره شده • وجود محدودیت های (constraint) مختلف و نیاز به روش های گوناگون • دو عامل مهم در محاسبه هزینه • هزینه اجرای یک پرس و جو(query) بر روی پایگاه داده تحلیلی • هزینه نگهداری یک دید ذخیره شده • رابطه معکوس دو عامل و نیاز به روشی جهت ارزیابی همزمان آن ها • رابطه Linear cost model بر مبنای حاصل جمع دو عامل
پایگاه داده پیشرفته Query DAG • DAG: Directed acyclic graph • نمونه از DAG
پایگاه داده پیشرفته مدل محاسبه خطی • مجوعه ای از پرس و جوها Q=(Q1,Q2, …,Qm) • مجموعه ای از جداول منبع S=(S1,S2 , …,Sn) • query DAG :GQi • گراف G: گرافی از پرس و جوها(multi query graph) هزینه اجرای همه پرس و جوها تکرار پرس و جو هزینه اجرای iمین پرس و جو
پایگاه داده پیشرفته مدل محاسبه خطی • مجوعه ای از پرس و جوها Q=(Q1,Q2, …,Qm) • مجموعه ای از جداول منبع S=(S1,S2 , …,Sn) • :GSiانتشار تغییر DAG ها برای هر پرس و جو هزینه نگهداری کل هزینه انتشار تغییر i مین جدول بر دید تعداد تغییر جداول منبع
پایگاه داده پیشرفته مدل محاسبه خطی روی دید ذخیره شده • محاسبه فرمول ها بر مبنای دید های ذخیره شده • هزینه نهایی هر دید ذخیره شده: Total cost(v)=E(G(v)) + M(G(v)) • سر جمع هزینه ها برای یک مجموعه M عضوی از دیدهای ذخیره شده:
پایگاه داده پیشرفته ویژگی های انتخاب دید • محدودیت های موجود • بهینه سازی زمان پاسخ به پرسش ها • محدودیت در استفاده از حافظه • بهینه سازی هزینه به روز رسانی دید های ذخیره شده • انتخاب دید • NP- Complete مسئله در حالت کلی • بدون جواب بهینه در بعضی حالات • روش های مختلف برای پاسخ گویی به زیر مجموعه هایی از محدودیت ها • تقریبی از جواب بهینه در همه روش ها • کمینه کردن مجموع چند هزینه
پایگاه داده پیشرفته مکعب داده ای • ALL علاوه بر مقادیر موجود در دامنه ابعاد • مقدار خاصی است که نشانگر تجمیع تمامی مقادیر موجود در راستای آن بعد است. • معادل GROUP-BY در زبان SQL. • مثال: مکعب داده ای سه بعد: فروشنده، قطعه و خریدار. مقادیر هر سلول: تعداد فروش (supplier1, part1, customer1) = 50 (supplier1, ALL, customer1) = 75
پایگاه داده پیشرفته مکعب داده ای • هر مجموعه سلول های مکعب داده ای به شکل ( _ , ALL, _ ) معادل با یک جدول داده ای یا یک پرس و جو است. • ویژگی های دارای مقدار ALL در لیست GROUP-BY قرار نمی گیرند. • هر پرس و جوی تجمعی را می توان با مجموعه ویژگی هایی که در GROUP-BY نمایش داد. • می توان نتیجه بعضی از این پرس و جو ها را از نتیجه پرس و جو های کلی تر استخراج کرد. ( به جای مراجعه به اصل داده ها) • کدامین سلول های این مکعب ذخیره شده باشند؟ (materialized view selection)
پایگاه داده پیشرفته شبکه دیدها • هر پرس و جو معادل یک دید است. • پرس و جو ها در انباره داده معمولاً پرس و جو های تجمعی هستند و آنها را با لیست GROUP-BY نمایش می دهیم. • رابطه ترتیب جزئی روی مجموعه دیدها: • اگر و فقط اگر A را بتوان از روی B ساختA ≤ B به عبارت دیگر A ≤ B iff A is a subset of B • مثال: {supplier} ≤ {supplier, part}
پایگاه داده پیشرفته شبکه دید ها • رابطه ترتیب جزئی روی مجموعه دیدهای قابل تعریف = شبکه • شبکه دارای دو عملگر LUB و GLB است. • می توان آن را با lattice diagram نمایش داد. {p, s, c} {p, c} {s, c} {p, s} {c} {s} {p} none
پایگاه داده پیشرفته سلسله مراتب ابعاد مکعب داده ای • یک بعد شامل چند صفت یا ویژگی است. • این صفات یک سلسله مراتب را تشکیل می دهند. • مثال: زمان شامل روز، ماه و سال می باشد. • پرس و جوی تجمیع شده {time} می تواند با 3 حالت درشت دانگی {day}, {month} و {year} اجرا شود. • پرس و جوی {month} از روی {day} و {year} از روی {month} یا {day} قابل پاسخ گویی هستند. {year} ≤ {month} ≤ {day}
پایگاه داده پیشرفته سلسله مراتب ابعاد مکعب داده ای • سلسله مراتب روی ابعاد، یک ترتیب جزئی ایجاد می کند. • مثال: روز ماه هفته سال none
پایگاه داده پیشرفته شبکه ابعاد سلسله مراتبی • وابستگی پرس و جوها • ناشی از ارتباط ابعاد مختلف با یکدیگر • {supplier} ≤ {supplier, part} • ناشی از ارتباط سلسله مراتبی اجزای یک بعد • {year} ≤ {month} • در حالت کلی رابطه ترتیب جزئی به شکل زیر مطرح می شود. • N بعد داریم و هر پرس و جو یک جز از سلسله مراتب هر بعد را انتخاب می کند. • (a1, a2, …, an) ≤ (b1, b2, …, bn) if for all iai ≤ bi
پایگاه داده پیشرفته تخمین هزینه و فضای پرس و جو • هزینه یک پرس و جو رابطه مستقیم با اندازه جدول دارد. • استفاده از ساختارهای ایندکس هزینه پرس و جو را پایین می آورد. • برای سادگی فرض می کنیم هزینه پرس و جو معادل است با تعداد سطور جدول. • فضای مورد نیاز برای ذخیره کردن یک دید: • قبل از اینکه عملاً اجرا شود نیاز داریم آن را تخمین بزنیم. • برای تخمین: • می توان آن را روی مجموعه کوچکی از داده اصلی اجرا کرد. • مقادیر غیر تکراری بعضی از صفات نیاز است.
پایگاه داده پیشرفته انتخاب دیدهای ذخیره شده • دو محدودیت را در نظر می گیریم • زمان پاسخ کمینه شود • تعداد K دید ذخیره شده انتخاب شود. • برای انتخاب دیدهای ذخیره شده لازم است اندازه تمام دیدهای موجود در شبکه دیدها را تخمین بزنیم. • C(x) برابر است با اندازه دید x. • اگر دید v ذخیره شده نباشد، می توان آن را از دید u با هزینه C(u) ساخت به شرطی که: • دید u ذخیره شده باشد. • v ≤ u.
پایگاه داده پیشرفته انتخاب دیدهای ذخیره شده • الگوریتم حریصانه: • مجموعه دیدهای S تا کنون انتخاب شده است. • تابع B(v, S) برای دید v خارج از S اینگونه تعریف می شود: برای هر w ≤ v مقدار Bw را اینگونه تعریف می کنیم: فرض کنید u یک دید با کمترین هزینه متعلق به S و w ≤ u اگر C(v) ≤ C(u) آنگاه Bw = C(u) – C(v) در غیر اینصورت صفر. B(v, S) = ∑ Bw • در هر مرحله v را انتخاب می کنیم که در آن B(v, S) بیشینه باشد تا اینکه K دید را انتخاب کرده باشیم
پایگاه داده پیشرفته انتخاب دیدهای ذخیره شده S = {top view} for i = 1 to k do begin select that view v not in S such that B(v, S) is maximized S = S union {v} end; resulting S is the greedy selection
پایگاه داده پیشرفته انتخاب دیدهای ذخیره شده • مثال: در شبکه زیر می خواهیم 4 دید ذخیره شده انتخاب کنیم.
پایگاه داده پیشرفته انتخاب دیدهای ذخیره شده
پایگاه داده پیشرفته انتخاب دیدهای ذخیره شده • در عمل باید تعداد دیدهای ذخیره شده را به گونه ای انتخاب کنیم که علاوه بر بهبود زمان پاسخ به پرس و جوها، در فضای حافظه نیز صرفه جویی کنیم. • هر چه تعداد دید ها بیشتر شود، فضای بیشتری احتیاج دارد و در بهبود زمان پاسخ نیز تاثیر کمتری دارد.
پایگاه داده پیشرفته گسترش روش انتخاب دید • مشکلات عمده روش انتخاب دید قبلی: • تمام دیدها با احتمال یکسان مورد پرس و جو قرار نمی گیرند. هر دید می تواند دارای احتمال مورد پرس و جو قرار گرفتن باشد. • محدودیت انتخاب دید را فضای حافظه مشخص می کند نه تعداد دید های ذخیره شده. • الگوریتم حریصانه را می توان با تغییراتی برای موارد بالا نیز به کار برد.
پایگاه داده پیشرفته گسترش روش انتخاب دید • اگر هر دید یک احتمال مورد پرس و جو قرار گرفتن داشته باشد: • در الگوریتم حریصانه، زمان محاسبه Bw این احتمال را در مقدار Bw ضرب می کنیم و روش انتخاب را مانند قبل ادامه می دهیم. • اگر محدودیت فضای حافظه داشته باشیم: • در الگوریتم حریصانه، انتخاب دید ذخیره شده را بر اساس بیشینه شدن B(v, S) / C(v) انجام می دهیم. این روش همیشه خوب کار نمی کند. ممکن است یک دید کوچک ولی با ارزش را انتخاب کنیم و دیگر برای دید بزرگتر ولی با ارزش تقریباً برابر، فضا نداشته باشیم.
پایگاه داده پیشرفته خلاصه • سیستم های پشتیبان تصمیم گیری به داده های تاریخی نیاز دارند و معمولاً به دنبال یافتن گرایشات و جهت گیری های کلی داده ها هستند تا اطلاعات یک رکورد. • برای بهبود زمان پاسخ گویی در این سیستم ها از انباره داده استفاده می شود. در این انباره ها معمولاً پاسخ تعدادی از پرس و جوها از قبل محاسبه و ذخیره می شوند. • در حالت کلی به دنبال پیدا کردن مجموعه دیدهای ذخیره شده بهینه برای یک انباره هستیم به طوری که زمان پرس و جو ها و همچنین فضای حافظه مورد نیاز را کمینه کند.
پایگاه داده پیشرفته منابع • C.A. Dothe, M.S. Ali, “Materialized View Selection in Data Warehousing: A Survey”, Journal of Applied Sciences 9 (3): 401 – 414, 2009. • V. Harinayaran, A. Rajaraman, J.D. Ullman, “Implementing Data Cubes Effieciently”, ACM SIGMOD Record, 25: 205 – 216, 1996. • B. Ashadevi, R. Balasubramanian, “Cost Effective Approach for Materialized Views Selection in Data Warehousing Environment”, IJCSNS 8 (10): 236 – 242, 2008. • B. Inmon, “Data Warehousing Fundamentals”, John Wiley & Sons, Inc., 2001