تفاوت Join و Relate در ArcGIS
مهدی نوایی لواسانی – 2023-08-11تفاوت Join و Relate در ArcGIS چیست ؟
وقتی شناسههای منحصر به فرد ( unique IDs ) منطبق بر هم در دو جدول دارید ، میتوانید یک Join یا Relate بین جداول ایجاد کنید.
Join جداول را بر اساس یک فیلد مشترک ترکیب میکند ، در حالی که Relate یک ارتباط موقت بین دو جدول برقرار میکند تا رابطه بین آنها را بدون ادغام دادهها بررسی کند.
Join همه ستونها را بر اساس شناسه منحصر به فرد ( unique IDs ) از یک جدول به جدول دیگر الحاق میکند.
اما Relate یک جدول کاملاً جدید ایجاد میکند. لذا زمانی که شما رکورد (هایی) را در یک جدول انتخاب میکنید ، یک جدول موقت بر اساس همه شناسههای منحصر به فرد منطبق ایجاد میشود .
چه زمانی از Join وچه زمانی از Relate استفاده کنیم ؟ بیایید با یک مثال یاد بگیریم.
مثال Join با رابطه یک به یک
Join برای روابط یک به یک مناسب است. بنابر این وقتی شما یک رکورد تکی در هر دو جدول دارید که با هم مطابقت میکنند ، این زمان مناسبی برای استفاده از join است.
به عنوان مثال ، ما یک شیپ فایل از شهرهای ایالات متحده داریم . وهمچنین یک فایل اِکسل حاوی اطلاعاتِ تیمهای لیگ فوتبال با نام تیم شهرآن تیم داریم .
تا زمانی که دو شهر با نام یکسان نداریم ، این بدان معناست که فیلد “NAME” در شیپ فایل “US_Cities” منحصر به فرد است ( دو سطر تکراری وجود ندارد) . و نیز بدان معناست که ما یک رابطه یک به یک داریم زیرا سطرهایی با همان ID منحصر به فرد دو یا چند بار تکرار نشده است .
این وضعیت کاملاً مناسب برای انجام یک Join است . وقتی بین این دو جدول یک Join ایجاد میکنید ، ستون “NFL_Team” (ازجدول فایل اِکسل) را به شیپ فایل “US_Cities” الحاق میکند .
در ArcGIS چگونه میتوانیم Joinهایی مانند مثال بالا (الحاق جدول حاوی نام تیمهای لیگ فوتبال به Shapefile شهرهای آمریکا ) را انجام دهیم؟
برای این منظور ابتدا روی دکمه DropDown جدول کلیک کنید و Joins and Relates > Join را انتخاب کنید .در اینجا باید فیلدها را از هر دو جدول با شناسه منحصر به فرد انتخاب کنید . در مثال ما،این فیلدهای منحصر به فرد ، “NAME” و “CITY” هستند.
اگر پس از عملیات Join این جدول را export کنیم ، تبدیل به یک جدول دائمی می شود . این بدان معنی است که ستونهای الحاق شده در جدول یا Feature Class جدیدی که ایجاد شده برای همیشه باقی خواهند ماند و با حذف Join از بین نخواهند رفت .
مثال Relate با رابطه یک به چند
وقتی یک رکورد ( سطر ) چندین شناسه منطبق در جدولِ دیگر دارد ، این یک رابطه یک به چند است (1-M) . و بهتر است برای روابط 1-M از Relate استفاده کنیم .
به عنوان مثال ، فرض کنید ما فهرستی از تیمهای فوتبال و بازیکنان هر تیم داریم . چندین بازیکن برای هر تیم وجود دارد و در عین حال هر تیم منحصر به فرد است . این بدان معناست که رابطه بین بازیکنان یک تیم فوتبال (M) و تیم فوتبال (یک) یک رابطه چند به یک (1-M) است ( هر تیم فوتبال چندین بازیکان دارد ولی هر بازیکن فقط به تیم تعلق دارد ) .
Relate بین جداول ، یک جدول کاملاً جدید ایجاد میکند . بنابراین وقتی شما رکورد (هایی) را در یک جدول انتخاب میکنید ، یک جدول موقت بر اساس همه شناسههای منحصر به فردِ منطبق بر آن چند رکورد انتخابی ایجاد میشود .
مطالعه بیشتر : آشنایی با پایگاه داده مکانی
به عنوان مثال ، اگر ما تیم Houston Texans را انتخاب کنیم ، فقط بازیکنان آن تیم در یک جدول جدید نشان داده میشوند.
برای تنظیم یک Relate ، ما جدول توصیفی لایه “US_Teams” را باز میکنیم . بر روی دکمه Drop Down در بالا سمت چپ جدول توصیفی (مطابق تصویر زیر ) کلیک کنید.
از منوی Drop Down گزینه Joins and Relates > Relate را انتخاب کنید . حالا، ستونهایی را که در هر دو جدول مطابقت میکنند را انتخاب کنید. در مثال ما ، آنها “NAME” و “NAME” هستند . در نهایت ، نام پیشفرض “Relate1” را انتخاب کنید یا نام دیگری به آن بدهید .
حالا که شناسههای منحصر به فرد را در هر دو جدول شناسایی کردهایم ، میتوانیم تیم (های) مورد نظر را در جدول تیمهای فوتبال انتخاب کنیم و پس از کلیک روی “Related tables > Relate1 ، یک جدول جدید باز میشود که حاوی همه رکوردهای مطابق برای تیم (های) انتخاب شده است.
مفهوم کاردینالیتی : روابط یک به یک (1-1) در مقابل یک به چند (M-1)
3 نوع رابطه ( یا کاردینالیتی ) وجود دارد:
- روابط یک به یک (1-1)
- روابط یک به چند (M-1)
- روابط چند به چند (M-N)
برای هر نوع پایگاه دادهای ، در روابط یک به یک ، یک رکورد منطبق در هر دو جدول وجود دارد . در روابط یک به چند ، چندین رکورد در یک جدول با یک رکورد در جدول دیگر مطابقت میکنند . در نهایت ، در روابط چند به چند ، چندین رکورد در جدول اول با چندین رکورد درجدول دوم مطابق هستند .
در تمام موارد ، شناسههای منحصر به فرد(unique ID ) که کلید هم نامیده میشوند باید در هر دو جدول برای هر نوع رابطه ای وجود داشته باشند .
مطالعه بیشتر : تفاوت Personal Geodatabase و File Geodatabase
تفاوت Join و Relate در ArcGIS
در حالی که Join اطلاعات توصیفی را از یک جدول به انتهای جدول دیگر الحاق میکند ، Relate یک جدول موقت برای همه رکوردهای منطبق ایجاد میکند.
همه جداول بر اساس انواع کاردینالیتی (1-1، 1-M و M-N) با یکدیگر مرتبط هستند . هم Join و هم Relate بر اساس اصلِ داشتن شناسههای منحصر به فرد مطابق در دو جدول کار میکنند.
در حالی که Join به خصوص برای رابطه 1-1 مفید است ، Relate برای رابطه M-1 ایدهآل است .
اگر هم هیچ فیلد منحصر به فردی برای ادغام وجود ندارد ، میتوانید از یک Spatial Join استفاده کنید . این فرایند از موقعیت یا مجاورت بین عوارض برای Join استفاده میکند .
دیدگاهتان را بنویسید