1 / 34

Spatial Join

Spatial Join. سجاد سروش 88131028. پاییز 1388. اهداف. شناسایی انواع مختلف (جنبه ها) از Join تشخیص زمان استفاده از جنبه های Join برای حل مسائل توانایی بکار بردن Join برای پاسخ به سوالات جغرافیایی معرفی تعدادی از الگوریتم های Join. تعریف Join. جدول مقصد. جدول مبدا.

makana
Download Presentation

Spatial Join

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. Spatial Join سجاد سروش 88131028 پاییز 1388

  2. اهداف • شناسایی انواع مختلف (جنبه ها) از Join • تشخیص زمان استفاده از جنبه های Join برای حل مسائل • توانایی بکار بردن Join برای پاسخ به سوالات جغرافیایی • معرفی تعدادی از الگوریتم های Join

  3. تعریف Join جدول مقصد جدول مبدا پیوند جدول ها براساس فیلد مشترک جدول پیوند شده

  4. تعریف Spatial Join • برعکس پیوند به شرط تساوی در رابطه هایDBMSدر انجا پیوند براساس اشتراک می باشد. • نتیجه پیوند: (x2, y1), (x2, y2) x1 y1 y3 x2 y2

  5. شرایطSpatial Join • پیوند دو جدول براساس رابطه فضایی مشترک • بر اساس ویژگی Inside (شامل بودن) • براساس ویژگی distance(فاصله)

  6. Spatial join (inside) پیوند رکورد چاه های منابع تامین آب شهر(point ) با رکوردهای محدوده بخش های(polygon) که در آن قرار دارند.

  7. Spatial join (distance) برای هر بخش نزدیکترین بیمارستان به آن با میزان فاصله اش را مشخص کنید.

  8. Spatial Join Cardinality قوانینی که در پیوندها موجود بوده در Spatial Join ها هم بکار برده می شود. • Simple joins • One-to-one cardinality • Summarized joins • One-to-many or many-to-many

  9. Simple spatial join در Simple spatial join برای تخصیص فیلدها ابهامی وجود ندارد. می توان هم در inside join و یا در distance join استفاده گردد.

  10. Summarized join جدول مقصد مربوط به بخش ها است. جدول مبدا مربوط به مدارس است. جدول خروجی تعداد کل مدارس در هر بخش را می دهد. فیلد Count همیشه بصورت اتوماتیک تولید می شود. می توان عملیات آماری انجام داد. برای مثال کاربران می توانند مجموع تعداد کل دانش آموزان در هر بخش را بدست آورند.

  11. مقایسه SimpleباSummarizedفقط از جنبهDistance joins مقایسه SimpleباSummarized بستگی به سوال درخواست شده دارد. به هر هتل کدام منطقه گردش گری نزدیکتر است؟ Simple چندتا منطقه گردش گری به یک هتل نزدیکتر هستند تا دیگر هتل ها؟ summarize

  12. Simple Summarized Inside مدارس بخش ها بخش ها  مدارس هر مدرسه در کدام بخش قرار دارد؟ در هر بخش چندتا مدرسه وجود دارد؟ Distance هتلمنطقه گردش گری هتلمنطقه گردش گری به هر هتل کدام منطقه گردش گری نزدیکترین است؟ فاصله تا آنجا چقدر است؟ چندتا منطقه گردش گری به یک هتل نزدیکتر هستند تا دیگر هتل ها؟

  13. مراحلspatial join • spatial join شامل 2 مرحله ی زیر است: 1- مرحله فیلتر 2- مرحله تصفیه مرحله فیلتر: این مرحله وظیفه تشخیص اشتراک دو مستطیل با هم را دارد. • محاسبات سنگینی ندارد. • تعداد اشیای که این مرحله بر روی آنها پروسس انجام می شود زیاد است. مرحله تصفیه: اشیای که از مرحله فیلتر عبور می کنند به عنوان ورودی این مرحله شناخته می شوند. مباحث فضایی در این مرحله بر روی اشیا چک می شوند. • محاسبات سنگینی دارد. • تعداد اشیای که این مرحله بر روی آنها پروسس انجام می شود کم است.

  14. دسته بندی الگوریتم های Spatial Join • الگوریتم های Spatial join را می توان در سه دسته کلاس بندی کرد: • nested loop • tree matching • partition based • با فرض اینکه می خواهیم Spatial Join را بر روی دو رابطه R1 و R2 وتمرکز بر intersection join انجام دهیم.

  15. nested loop • در این دسته از الگوریتم ها همه سطرهای R2 برای هر سطر R1 اسکن می شوند. • هر جفت سطر از R1 و R2 که شروط Spatial join را داشته باشد به مجموعه نتیجه اضافه می کنیم. • الگوریتم پایه: 1- for all tuple r1 ∈ R1 2-for all tuple r2 ∈ R2 3-if pair (r1, r2) satisfies the spatial join predicate 4- add <r1, r2> to result برای زمانی که رابطه ها کوچک و برای آن هیچ شاخصی وجود نداشته باشد بسیار موثر است.

  16. tree matching • در این دسته از الگوریتم زمانی که شاخص (R-Tree) برای هر دو رابطه موجود باشد بکار برده می شود. • پیمایش بکار برده depth-first است که بصورت همزمان بر روی هر دو شاخص رابطه ها انجام می شود. • در سطح ریشه: همه ی فرزندان ریشه ی R-Tree اولی را با همه ی فرزندان ریشه ی R-Tree دوم پیوند می دهیم. • اگر هیچ اشتراکی برای پیوند وجود نداشته باشد. در نتیجه هیچ یک از اشیاء با هم اشتراک ندارند و متوقف می شویم. • آنقدر این عمل را بصورت بازگشتی ادامه می دهیم تا به سطح برگ ها برسیم.

  17. tree matching (Cont.) فضای مورد نظر مجموع اشیاء A مجموع اشیاء B نحوی قرار گیری 2 مجموعه در فضای • . از این دسته زمانی استفاده می کنیم که برای هر دو رابطه شاخص داشته باشیم. کاملا واضح است که فقط جفت های (a1, b1 ) و (a3,b3 )

  18. partition based • در این الگوریتم زمانی که نتوانیم رابطه های که می خواهیم روی آنها عمل Spatial join انجام دهیم به حافظه اصلی ببریم. • در این رویکرد رابطه ها به P قسمت تقسیم می شوند. • قسمت i (<=i<=P1) از رابطه R1را با قسمت i متناظر در R2 مقایسه می کنیم. • مرحله فیلتر در این روش با روش های دیگر تاحدودی متفاوت می باشد که شامل مراحل زیر است: 1- رابطه های R1 و R2 را در قالب رابطه های جدید R1’ و R2’ درمی آوریم که در هر سطر یک شماره شناسایی برای اشیاء بصورت یکتا دارد. 2- اگر بتوانیم R1’ و R2’ را در حافظه اصلی بگنجانیم با استفاده از الگوریتم plane-sweep عمل پیوند را انجام می دهیم. 3- در غیر اینصورت رابطه ها را به P قسمت تقسیم می کنیم (R1’1,….R1’pوR2’1,….R2’p) بطوریکه هر جفت قسمت (R1’i,R2’i) در حافظه اصلی قرار گیرد. برای هر قسمت الگوریتم plane-sweepرا انجام می دهیم. زمانیکه هیچ یک از دو رابطه شاخص نداشته باشند و نتوان هردوی انهارا در حافظه اصلی جای داد. spatial hash join یکی از انواع این ها هست

  19. الگوریتم های Spatial Join • R-tree join • spatial hash joins • slot index hash join • є-distance join query • iceberg distances join • Multi -Way spatial join • sort-merge spatial join • Size Separation Spatial Join • ….. مثال: ”همه شهرهای که کنار رودخانهMississippi و زمین گلف دارند “ توضیحی مختصر ؟

  20. مثال • جدولی که نزدیکترین آتشفشان به هر شهر در US را نشان می دهد ایجاد کنید و فاصله مابین آنها چقدر است؟

  21. دانش آموزان می توانند نزدیکترین آتشفشان به شهرشان را پیدا کنند و میزان فاصله را ببیند.

  22. کارهای جدید در حوزه Spatial Join • “Retrieval of Spatial Join Pattern Instances from Sensor Networks” by Man Lung Yiu & Nikos Mamoulis & Spiridon Bakiras • “Spatial joins based on NA-trees” by Hue-Ling Chen & Ye-In Chang. • “A Non-blocking Parallel Spatial Join Algorithm” by Jeffrey F. Naughton & Curt J. Ellmann. • “Optimizing distributed spatial joins using Rtrees” by Orlando Karam & Fred Petry. • …..

  23. نتیجه گیری • پیوند دو جدول براساس رابطه فضایی مشترک بر حسب ویژگی های: • بر اساس ویژگی Inside (شامل بودن) • براساس ویژگی distance(فاصله) • چندی Spatial Join: • Simple joins • Summarized joins • دسته بندی الگوریتم های Spatial Join • nested loop • tree matching • partition based برای زمانی که رابطه ها کوچک و برای آن هیچ شاخصی وجود نداشته باشد بسیار موثر است. از این دسته زمانی استفاده می کنیم که برای هر دو رابطه شاخص داشته باشیم. زمانیکه هیچ یک از دو رابطه شاخص نداشته باشند و نتوان هردوی انهارا در حافظه اصلی جای داد.

  24. مراجع [1] Jacox, E. H. and Samet, H. 2007. Spatial join techniques. ACM Trans. Database Syst. 32,1, Article 7 (Mar. 2007), 44 pages. DOI = 10.1145/1206049.1206056 http://doi.acm.org /10.1145/1206049.1206056 [2] Debnath. B. K. ; “ SPATIAL JOIN ” ; Department of Electrical and Computer Engineering, University of Minnesota [3] Zhu.H., Su. J. , Oscar H.; “Toward Spatial Joins for Polygons’”; 0-7695-0686-0/00 $10.00 2000 IEEE [4] M-L Lo and C. V. Ravishankar,“Spatial Hash-Joins”, Proc. SIGMOD, 1996. [5] N. Koudas and K. C. Sevcik, “Size Separation Spatial Joins”, Proc. SIGMOD, 1997.

  25. loan-number branch-name amount customer-name L-170 L-230 Downtown Redwood 3000 4000 Jones Smith پیشنهاد • اگر 2 رابطه با نام های loan و borrower داشته باشیم. • Inner Joinloan Borrower branch-name customer-name loan-number loan-number amount Downtown Redwood Perryridge Jones Smith Hayes L-170 L-230 L-155 L-170 L-230 L-260 3000 4000 1700 • Left Outer Join loan borrower loan-number branch-name amount customer-name L-170 L-230 L-260 Downtown Redwood Perryridge 3000 4000 1700 Jones Smith null

  26. پیشنهاد (ادامه) • Right Outer Join loanborrower loan-number branch-name amount customer-name L-170 L-230 L-155 Downtown Redwood null 3000 4000 null Jones Smith Hayes • Full Outer Join loan borrower loan-number branch-name amount customer-name L-170 L-230 L-260 L-155 Downtown Redwood Perryridge null 3000 4000 1700 null Jones Smith null Hayes

  27. با تشکر

  28. Spatial Hash Join • Motivation: if all objects fit in memory, then trivial. But size of input is large. • Basic idea: partition input into smaller buckets that fit in memory. • Difficulty: an object may intersect multiple partitions!

  29. Multiple Assignment Approach 3. Spatial Hash Join • Partition both input using regular grid. • Assign an object to all buckets it intersects. • One bucket in X needs to join with only one bucket in Y. • Drawback: objects are duplicated, which leads to increase of space.

  30. Multiple Matching Approach 3. Spatial Hash Join • Partitioning: start with regular grid, but bucket extent may increase to fully cover all objects assigned to it. • Assign an object to a single bucket (the one which contains it, or need least enlargement). • One bucket in X needs to join with all buckets in Y that intersect it. • Drawback: extensive join of buckets.

  31. Spatial Hash Join • Assign every object in X to a single bucket. Bucket extent may increase accordingly. • Using the same partitioning, assign objects in Y to all buckets that it intersects. • Join corresponding bucket pairs (a bucket of X joins with a single bucket of Y). • Better than both previous approaches!

  32. Size Separation Spatial Join Overview • Partition both object sets by object size into L+1 levels. • Each level is logically partitioned. • Join the partitions synchronously.

  33. Partitioning • Level l contains 2l regular grid cells. • If an object intersects the grid of level l, assign it to level l-1. • Result: partition (roughly) by size; each object belongs to a single partition at some level.

  34. Joining • A bucket in Y needs to join with a single bucket of X at each level.

More Related