1 / 59

Temporal Queries in OLAP

Temporal Queries in OLAP. سارا مصباح بهار 88. مقدمه. سازماندهي كردن داده ها در جداول dimension و fact داده ها در fact tabe ها بعد ديناميك data warehouse را منعكس ميكنند. Dimension ها اطلاعات استاتيك را نمايش مي دهند به روز كردن dimention ها غالبا مورد نياز است

ann
Download Presentation

Temporal Queries in OLAP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Temporal Queries in OLAP سارا مصباح بهار 88

  2. مقدمه • سازماندهي كردن داده ها در جداولdimension و fact • داده ها در fact tabeها بعد ديناميك data warehouse را منعكس ميكنند. • Dimensionها اطلاعات استاتيك را نمايش مي دهند • به روز كردن dimentionها غالبا مورد نياز است • مثال:تغيير كردن بعد Store • بسته شدن يا باز شدن Store جديد • تغيير محل • تغيير ساختار سلسله مراتبي

  3. مشكل • Retail data warehouse: • ابعاد: Time, Product, Customer, Salesperson • سلسله مراتب • تابع rollup از itemId بهitem type

  4. مشكل (ادامه) • Fact table: • كل فروش ها براي هر نوع محصول و براي هر فروشنده

  5. مشكل (ادامه) • بعد از d4 ، محصول i1 به نوع t2 نسبت داده شود • شماي برف دانه اي يا استار non-temporal، مقدار < i1, t2> را ذخيره خواهد كرد • براي همان query قبل از اصلاح: • همان جواب برگرداننده نمي شود!!!! • در نظر نگرفتن itemهاي نوع t1

  6. راه حل • معرفي كردن temporal multidimensional data model و temporal query language براي پشتيباني آن (TOLAP) • تركيب كردن خصوصياتlanguage temporal queryهايي(مانند TSQL2(SQL/T ,با زباني مثل HiLog • ليست كردن مقدار فروش ها به وسيله نوع محصول، با توجه به categorizationي كه هر item در زماني كه فروخته شده، داشته است

  7. Data model • در temporal dimention model • قرار دادن timstamped در سطح شما يا نمونه • نگه داري دنباله اي از update ها • در نظر گرفتن زمان به صورت گسسته

  8. Temporal dimension • L: مجموعه اي از نام سطوح • A: مجموعه اي از نام صفات • TD: مجموعه اي از نام temporal dimensionها • F: مجموعه اي از نام fact tableها

  9. تعريف 1 (Temporal Dimension Schema) • temporal dimension Schema: <dname, L,λ,≤, A, ≫,μ> • dname ∊ TD • μ: يك سطح در Time dimension • L: مجموعه متناهي از سطوح • λ: يك تابع با امضاء dom(μ) L • ≤: يك تابع با امضاء dom(μ) 2L*L is a relation)s.t ∀t ∊ dom(μ • A: مجموعه متناهي از attributeها • ≫: تابعي با امضاي dom(μ) ×A L

  10. Temporal dimension(ادامه..) • Temporal dimension يك گراف است: • هر نود يك سطح را نمايش مي دهد • هر يال با يك فاصله زماني برچسب گذاري مي شود • هر يال تنها در آن فاصله زماني معتبر بوده/ است

  11. مثال • Store dimension: • dname: Store • μ: month • L: {StoreId,city, region} • λ(t): ,L∀t ≥ t0 • : • قرار گرفتن يك سطح جديد( StoreType) در بالاي StoreId در زمان t1

  12. مثال (ادامه...) (a) Temporal dimension shema b) Temporal dimension instance • برچسب ti : يال براي همه t >= ti معتبر است • بر چسب ti*: يال به ازاي همه t < ti معتبر بوده است. • اگر يال برچسب نداشته باشد: براي همه زمان ها معتبر است.

  13. تعريف 2 (Temporal Dimension instance) • Tmporal Dimension Instance: <D, TRUP,TDESC> • D: temporal dimension schema • TRUP (Temporal rollup) ∀t ∊ dom (μ), exists a rollup function • تابعي كه به ازاي هر snapshot گرفته شده به ازاي هر t∊ dom(μ) تعريف مي شود • TDESC(temporal description): تابعي با امضاي

  14. مثال A temporal dimension instance for dimension • براي هر جفت سطوح كه به وسيله يال به هم متصل شده اند تابعيrollup(p) به صورت زير وجود دارد: • تابع rollup از سطح L1 به سطح L2 در زمان t

  15. تعريف 3Temporal fact table) ) • Temporal fact table: <fname,f,m,μ> • : m معيار fact table • F: تابعي با امضاي • داده ها در temporal fact table ذخيره ميشوند • به ازاي هر بعد در D يه ستون در temporal fact table وجود دارد. • به ازاي هر معيار يك ستون در temporal fact table وجود دارد. • در هر temporal fact table يك ستون براي بعد time وجود دارد.

  16. تعريف 4(Temporal base fact table) • :Base fact table • يك fact table كه attributeهايش پايين ترين سطوح هر يك از ابعاد در D هستند • <fname, fD,m,μ> S.t ∀t ∊ dom(μ), every level in fD Is a bottom level of its dimension • پايين ترين سطوح ممكن است در طول عمر data warehouse متغيير باشند • شماي base fact table مي تواند تغيير كند • Schema versioning : نگه داري دنباله اي از وژن هاي مختلف fact tableها

  17. تعريف 5(multidimentional data base) • Temporal multidimensional database schema (Bs) : <Ds, Fs> • :Dsمجموعه اي از temporal dimension schema • Fs: مجموعه اي از temporal fact table schema • مجموعه اي از temporal dimensionها و temporal fact tableها • Temporal multidimensional database instance (I(B)): <DI, FI> • Instance :DI هاي dimension • Instance: FI هاي fact table

  18. مثال • D = {Store, Product} • Temporal base fact table براي D: • {StoreId, itemId, m , t} • : m معيار • t: زمان

  19. مثال (medical data warehouse) • Procedures: هر بيمار سرويس هاي مختلفي را دريافت مي كند مثلا: راديو گرافي، دارو و .... • داده ها از جداول مختلفي در پايگاه داده operational كلينيك جمع آوري شده اند • ابعاد:

  20. مثال (ادامه..) • بعد procedure: • پايين ترين سطح: ProcedureId • سطوح: ProcedureType، subgroup، group • توصيف كردن procedureهاي مختلف قابل دسترس براي بيماران • بعد patiant • پايين ترين سطح: patiantId • سطوح: yearOfBirth، gender و ..... • نمايش اطلاعات شخص تحت درمان • بيماران بر اساس وضعيت موسسه بيمه گروه بندي مي شوند • موسسات نوع دارند (instType) موسسات خصوصي، كارگري و........

  21. مثال (ادامه....) • بعد دكتر: • اطلاعاتي درباره دكترها (DoctorId)و تخصص آن ها(speciality) • بعد زمان (user-defined): • با سطوح: day، week و month • Fact table اطلاعاتي در مورد procedureهايي كه به بيمار توسط يك دكتر خاص در يك تاريخ خاص داده شده است را نگه داري مي كند (Services) • Services(doctorID, procedureId, patientId, day, quality, t)

  22. Temporal OLAP Queries • در OLAP براي پاسخ به queryها نياز به محاسبه • aggregateها روي base fact table است • براي كارايي بهتر از پيش محاسبه كردن aggregateها بر روي گروه هاي مختلف از attributeها • ابعاد با سطوح سلسله مراتب محاسبه كردن aggregateها روي سطوح بعد • تغيير كردن dimension به مرور زمان

  23. مثال • Retail data warehouse: • Dimensions: {Product, Store} • Fact table: (Sales, f, sales, day) • به روز كردن شما اتفاق نيافتد • F هر نمونه را به {itemId, storeId} نگاشت مي كند • نمونه dimension Store

  24. مثال (ادامه...) • نمونه dimension Product: • زمان:

  25. مثال (ادامه...) • Sales fact table • قرار دادن زمان براي وضوح بيشتر و مي تواند حذف گردد (مثل TSQL2 ) • Query:” ليست هفتگي فروش كل بر اساس شهر و item type“

  26. مثال (ادامه) • دو تعبير براي اين query: • كل فروش با در نظر گرفتن نوعي كه يك item در زماني كه فروخته شده، داشته • جمع 3 سطر اول و قراردان چندتايي {T1,C1, w1} با جمع كل 800 • نتايج:

  27. مثال (ادامه..) • دومين تعبير • سيستم non-temporal: در نظر گرفتن نوع جاري براي هر item فروخته شده • تابع roll up براي هر رخداد ايتم i1 هست: • نتايج:

  28. مثال (TOLAP) • تركيب كردن برخي از ويژگي هاي temporal Query languageها مانند TSQL2 يا SQL/TP را با برخي از ويژگي هاي زبان هايي مانند Hilog • زبانRule-based • Query: ”برگرداندن تمام procedureهاي داده شده به بيمار با instype = ‘union’“ (بدون aggregate) • Rollup atom: • Fact atom:

  29. مثال TOLAP (ادامه...) • Query با aggregate: ”تعداد كل سرويس ها به ازاي هر procedure type و هفته“ • استفاده از descriptive attributeهاي سطوح بعد در queryهاي TOLAP • مثال: تعداد كل سرويس هايي كه به وسيله DR.Robert هر هفته داده مي شود • Descriptive atom:

  30. مثال TOLAP (ادامه...) • metaQuery: queryهايي كه fact table در بدنه قوانين نيست. • اين query ها در TOLAP، Support مي شوند • Query: ”ليست كردن دوره هايي كه هيچ جراحي قلبي نبوده“ • Negated rollup atom: • مشخص كردن نام بعد و سطح براي متغيير proc • زيرا fact table در بدنه قانون براي تعيين proc نيست

  31. TOLAP(syntax) • Bs = (Ds, Fs): multi dimensional database schema • I(B): instance • VL: مجموعه اي از متغيير هاي سطوح • VD: مجموعه اي از متغيير هاي داده • :CL مجموعه اي از ثابت هاي سطوح • :CD مجموعه اي از ثابت هاي داده • FF: مجموعه اي از نام توابع aggregate

  32. TOLAP (terms) • Data term: يك متغيير در VD يا يك ثابت در CD • Rollup term: عبارتي به صورت d:X:x , X:x يا x • X: يك متغيير در VL يا يك ثابت در CL • x : data term • d : يك ثابت در CL • Descriptive term: عبارتي به صورت x.a • x و a : data term • Aggregate term: عبارتي به شكل f(d) • نام تابع در FF • انواع term: data، rollup، descriptive و aggregate

  33. TOLAP (َAtom) • Fact atom: عبارتي به فرم F(x1, x2,…xn, M, t) • F: fact table • x1, x2,…xn, M, t: data term • Rollup Atom: عبارتي به فرم يا • X و Y : rollup term • t: data term • Descriptive atom: عبارتي به فرم • X: descriptive term • Y و t: data term

  34. TOLAP : Atom(ادامه..) • Constraint atom: عبارتي به فرم • t1 و data term: t2 • Θ ∊ {<, =} • Negated Atom: عبارتي به فرم ┒t1 • t1 : يك atom • انواع Atom: Fact، Rollup، descriptive، constraint و negate

  35. TOLAP(Rule) • TOLAP-rule: به فرم • يك متغيير كه در سمت چپ قانون ظاهر شود بايد در بدنه آن هم ظاهر شود • هر مكان در يك fact Atom متناظر با همان بعد است • سمت راست ترين مكان هميشه متناظر با time dimension است • اگر x.a در بدنه يك قانون باشد آنگاه حداقل يك rollup term در بدنه به شكل d:X:x , X:x هست • TOLAP program: مجموعه متناهي از TOLAP-rule ها

  36. پياده سازي • پياده سازي كردن به دو روش: • انتقال Queryهاي TOLAP به SQL • استفاده از temporal query language (TSQL2) • ساختار داده اي براي نمايش dimensionها: • Fixed schema • Non-fixed schema • Relation schemaهمه ابعاد data warehouse را با ساختار زير توصيف مي كند:

  37. پياده سازي(ادامه...) • مثال: • ذخيره كردن instanceهاي ابعاد • Fixed schema • هر چندتايي در اينجا هست:

  38. پياده سازي (ادامه..) • مثال: • اضافه شدن سطوح جديد به dimension • اضافه شدن tupleهاي جديد • تغيير نكردن شماي relation • مثال: اضافه كردن سطح جديد priceRange بالاي procedureId • اضافه كردن tuple:

  39. پياده سازي (ادامه) • مزيت: • به سادگي پياده سازي كردن updateهاي dimension به جز: • اضافه يا حذف كردن يال هاي بين سطوح (Relate و Unrelate) • Self-join كردن relation • Non-fixed schema • هر سطح dimension به يك attribute در relation، map شده است • يك tuple شامل همه مسيرهاي ممكن هر يك عنصر در پايين ترين سطح تا all • دو صفت From و to: نشان مي دهند فاصله زماني كه tuple معتبر است

  40. پياده سازي (ادامه) • Non-fixed schema • به الگوريتم هاي پيچيده تري براي support كردن به روز شدن dimensionها نياز دارد • اضافه كردن سطح:اضافه كردن يك ستون جديد به relation • سطح حذف شود: schema update اتفاق نمي افتد • اضافه كردن سطح priceRange: اضافه كردن يك ستون فرآيند انتقال راحتتر و كارايي بهتر محاسبه كردن بستار تراگذاري توابع rollup فقط به اسكن يك relation كاهش مي يابد

  41. انتقال به SQL • Query: ”كل procedureها به ازاي هر گروه“ • در TOLAP: • SQL معادل در روش fixed schema:

  42. انتقال به SQL • SQL معدل در روش non-fixed schema: • روش non-fixed: محاسبه كردن rollup از procedureId و group به صورت مستقيم • در روش fixed: نياز به self-join جدول procedure است انتخاب كردن روش non-fixed

  43. انتقال دادن TOLAP Atoms • ساختن يك selection Clause به صورت زير براي هر rollup atom به فرم • يا • rollup Atomي به فرم به EXISTS clause تبديل مي شود

  44. انتقال دادن TOLAP Atoms (ادامه..) • براي rollup Atomي به فرم داريم: • Constraint Atomي به فرم • C: constant term • تبديل به يك عبارت selection با قرار شرط در قسمت where آن مي شود • Negated rollup atom تبديل به Not EXISTS مي شود

  45. انتقال TOLAP rules • قرار دادن همه شرط ها باهم در قسمت where • استفاده كردن از aggregation و projection براي rollup از پايين ترين سطوح ابعاد Di , Dj به سطوح li و lj

  46. حذف كردن Join • در برخي موارد join بين ابعاد و fact table ها مورد نياز نيست • Query: ”كل procedureها به ازاي procedureId و تخصص دكتر“ • Fact table service : services_1, services_2 • Services_1 قبل از t5 و services_2 بعد از t5 ذخيره شده • پايين ترين سطوح در services_1: procedureId و Speciality • پايين ترين سطوح در services_2: ProcedureId و doctorId

  47. حذف كردن Join (ادامه) • چون Speciality و procedureId پايين ترين سطوح Services_1 بودند در subQuery اول نياز به join نيست

  48. حرص كردن subquery • Fact table ممكنه است نسخه هاي مختلفي داشته باشد • اگر در TOLAP Rule يك constraint rule روي زمان داشته باشيم • اگر طول عمر نسخه هايي از fact table آن محدوديت را برآورده نكنند • Subqueryهاي متناظر با آن نسخه هاي fact table به وسيله translator توليد نمي شوند • در مثال قبل اضافه كردن محدوديت t > d6 از توليد شدن subquery اول جلوگيري مي كند

  49. TSQL2 • BCDM • يك temporal relational data model ساده • Valid time(VT) و (TT)transaction time با اضافه كردن timeatampها به هر tuple نمايش داده مي شوند • Timestamp: مجموعه اي از time intervalها • هر tuple مجموعه اي از زوج هاي (TT, VT) دارد

  50. TSQL2 (ادامه..) • يك temporal query language است كه بر اساس SQL-92 و بر روي مدل BCDM كار مي كند • Data type، SQL-92 را به ارث مي برد (DATE, TIME, TIMESTAMP,INTERVAL) • مثال: • INSERT INTO X VALUES(’Super Bowl’, ’First Quarter’, INTERVAL ’60’ SECOND, ’Frosty Bottle’) VALID TIMESTAMP ’1994-01-30 22’;

More Related