320 likes | 477 Views
به نام خدا. Managing and Querying Transaction-time Databases under Schema Evolution. اسماعیل خامه یار. 88/2/19. فهرست. مقدمه پایگاه داده های Transaction-time XML و XQuery تحولات schema Query Reformulation (Rewrite) PRIMA خلاصه. 88/2/19. مقدمه.
E N D
به نام خدا • Managing and Querying Transaction-time Databases under Schema Evolution • اسماعیل خامه یار 88/2/19
فهرست • مقدمه • پایگاه داده های Transaction-time • XML و XQuery • تحولات schema • Query Reformulation (Rewrite) • PRIMA • خلاصه 88/2/19
مقدمه • حاد تر شدن مشکل قدیمی کنترل تاریخچه پایگاه داده ها با گسترش سیستم های اطلاعاتی مانند Wikipedia • نیاز به آرشیو سازی داده های قدیمی و ایجاد query روی آن ها • تغییرات schema در Wikipedia بیش از 170 بار در 4/5 سال • تلاش برای حل مشکل با معرفی سیستمی به نام PRIMA • (PantaRhei Information Management & Archival) • متدی برای تبدیل تاریخچه پایگاه داده های رابطه ای به XML • شفافیت تغییرات schema از دید کاربر 88/2/19
پایگاه داده های Transaction-time • پایگاه داده های Transaction-time • حفظ و دسترسی به داده های قدیمی را فراهم می کند • فواید: آنالیز تاریخچه، ترمیم خطاها، پشتیبانی از رسیدگی • Immortal DB، ArchIS 88/2/19
آرشیو سازی با تغییرات schema ؟ • کار های پیشین: راه حل های رابطه ای • single pool و multi pool • مشکل: temporally ungrouped یعنی افزونگی و خلاصه سازی پرهزینه، محدود سازنده ذخیره داده ها و شِمای آن ها • راه حل بررسی شده در این مقاله • نمایش یکپارچه DB و schema تحت مستندات XML به نام MV-document و ایجاد query روی آن ها با XQuery • temporally grouped 88/2/19
XML برای داده های موقتی(temporal) • Multiversion V-document یا MV-document • نمایش سلسله مراتبی با XML 88/2/19
XQery برای query های XML • XQuery یک زبان خوب برای query های XML • یک زبان قدرتمند مبتنی بر XPath • یک نمایش یکپارچه از تاریخچه پایگاه داده ها و شمای آن • یک مدل برای نمایش داده ها و ساده سازی query ها با استفاده از استاندارد XQuery 88/2/19
XQuery برای query های XML (مثال) • XQuery برای Sr. Engineering قبل از سال 2005 • مثالی دیگر Query 1: Temporal projection. Retrieve the title history of employee “Bob” for $t in doc(“emp.xml”)/db/empacct/row [name=“Bob”]/title return $t 88/2/19
تحولات schema • تغییرات schema. چرا؟ • بازشناسی داده ها • طراحی منطقی بهتر، کارایی بالاتر • تغییرات مدل ها • کلکسیون جدید داده ها، بازسازی داده ها، قوانین دولتی • تغییرات schema در پایگاه داده Wikipedia 88/2/19
تعداد جداول در پایگاه داده های Wikipedia 88/2/19
Schema Modification Operators (SMOs) • زبانی برای تغییر schema • مجموعه ای از دستورات برای تغییرات schema 88/2/19
یک مثال از تغییرات schema 88/2/19
یک مثال از تغییرات schema (نمایش 2 XML) • قادر به نمایش محتوا و تاریخچه DB با استفاده از XML 88/2/19
XQuery • تلاش اولیه برای بازیابی لیست نام دپارتمان ها • این query فقط همین ورژن schema را مورد بررسی قرار می دهد. 88/2/19
بازنویسی XQuery • query درست همه ورژن های schema را مورد بررسی قرار می دهد. • این گونه ترجمه باید از دید کاربر شفاف باشد. 88/2/19
بازنویسی XQuery (ادامه) • معماری بازنویسی query 88/2/19
XML Integrity Constraints • چگونگی تولید نگاشت های متفاوت از SMO • ترجمه SMO ها به XIS ها 88/2/19
بازنویسی XQuery (ادامه) • بازنویسی query به ورژن متفاوت کار آسانی نیست • طبقه بندی query برای انواع متفاوت آن 88/2/19
طبقه بندی temporal query • سه رده تقسیم بندی برای query • آیا query از یک نسخه منبع است یا بیشتر؟ • الگوریتم MinSourceFind برای یافتن تعداد نسخه های منبع • query به یک جدول دسترسی دارد یا بیشتر؟ • نوع ارتباط بین جداول query وقتی به بیش از یک جدول نیاز دارد • all temporal joins • all non-temporal joins • هر دو مورد فوق 88/2/19
Query reformulation • فرمول بندی مجدد query های single source • MARS برای موتور بازنویسی query [VLDB03] • قیود جامعیت XML (XISc) • فرمول بندی مجدد query های class-5 • فرمول بندی مجدد query های class-6 • فرمول بندی مجدد query های class-7 • فرمول بندی مجدد query های class-8 88/2/19
MinSourceFind • برای شناسایی کلاس های مشابه و کارا ساختن query • شناسایی مجموعه کمینه از ورژن هایی که query را دربر می گیرد و در نتیجه ورژن های اضافه را هرس می کند. • باعث بالا رفتن کارایی می شود 88/2/19
بهینه سازی بازنویسی query • مشکل: پرهزینه بودن بازنویسی با قیود زیاد • هدف: کمینه سازی قیودی که مورد استفاده در بازنویسی • هرس کردن (prune) SMO • استفاده از SMO هایی که روی query ورودی تأثیر گذارند • فشرده سازی SMO • تبدیل تعدادی از SMO ها به یک SMO 88/2/19
PRIMA • PantaRhei Information Management and Archival • استفاده از پایگاه داده Transactional-time • نمایش یکپارچه پایگاه داده ها و شِمای آن • در ابتدا مبتنی بر پایگاه داده های XML بود • اکنون مبتنی بر H-PRIMA (پایگاه داده های رابطه ای) است 88/2/19
اعمال PRIMA • پیاده سازی XML بر روی DBMS های رابطه ای • ترجمه query، به query معادل تمام ورژم های schema • کارایی هنوز به طور کامل مورد سنجش واقع نشده است 88/2/19
خصوصیات PRIMA • PRIMA: • یک سیستم پایگاه داده ای functional به طور کامل • پشتیبانی از تغییرات schema تحت پایگاه داده مورد نظر • استفاده از XML برای نمایش اطلاعات و تحولات schema • شفافیت تغییرات schema از دید کاربر • هنوز برای برنامه های بزرگ قابل استفاده نیست 88/2/19
معماری PRIMA 88/2/19
نتایج آزمایش ها در PRIMA • زمان بازنویسی query در Wikipedia >100s <0.5s 88/2/19
چالش های تحول schema و PantaRhei Framework • زحمت زیاد در مهاجرت های پایگاه داده ها و تطبیق query • زحمت زیاد در آرشیو سازی و querying تاریخچه داده ها • مدیریت تاریخچه schema توسط خودش 88/2/19
خلاصه • transaction-time DB مسئله مهمی است • ولی schema های در حال رشد را پشتیبانی نمی کند • این مقاله یک راه حل مؤثر و کارا ارائه داده است • مدل temporal data برای تحول schema • پاسخ نسبتا کارا به query با بازنویسی آن • بهینه سازی query و بازنویسی آن 88/2/19
با تشکر سؤال یا پیشنهاد 88/2/19