جستجو و پرس و جوها
هدف یادگیری
هدف این پست، توضیح اصول اولیه زبان SQL و درک تکنیکهای مختلف پرسوجو در یک سیستم اطلاعات جغرافیایی (GIS) است.
دسترسی به ابزارهای جستجو و پرسوجوی قوی برای تحلیل روندهای کلی یک مجموعه داده ضروری است. پرسوجوها اساساً سؤالاتی هستند که برای استخراج اطلاعات از یک پایگاه داده مطرح میشوند. نمایش انتخابی و بازیابی اطلاعات بر اساس این پرسوجوها، جزء لاینفک هر سیستم اطلاعات جغرافیایی (GIS) به شمار میروند. بهطور کلی، سه روش اصلی برای جستجو و پرسوجو در دادههای ویژگی وجود دارد: (۱) انتخاب، (۲) پرسوجو با ویژگی، و (۳) پرسوجو بر اساس جغرافیا.
انتخاب
انتخاب، سادهترین روش برای جستجو و پرسوجو از دادههای مکانی در GIS است. با استفاده از این روش، طلاعات مورد نظر هم در نقشه و هم در جدول ویژگیها برای نمایش یا تجزیه و تحلیل بعدی برجسته میشوند. برای انجام این کار، کاربران میتوانند نقاط، خطوط و چندضلعیها را بهسادگی با استفاده از مکاننما برای «نقطه و کلیک کردن» روی ویژگی مورد نظر یا با کشیدن کادری اطراف ویژگیها انتخاب کنند. علاوه بر این، میتوان ویژگیها را با استفاده از اشیاء گرافیکی مانند دایره، خط یا چندضلعی انتخاب کرد تا تمامی ویژگیهایی که درون این اشیاء قرار میگیرند، برجسته شوند. گزینههای پیشرفته برای انتخاب زیرمجموعههای داده از مجموعه دادههای بزرگتر شامل ایجاد انتخاب جدید، انتخاب از میان ویژگیهای انتخاب شده فعلی، افزودن به انتخاب فعلی و حذف از انتخاب فعلی میشود.
پرس و جو بر اساس ویژگی
عوارض نقشه و دادههای مرتبط با آنها میتوانند از طریق پرس و جو اطلاعات ویژگی در جداول داده بازیابی شوند. بهعنوانمثال، ابزارهای جستجو و پرسوجو به کاربر این امکان را میدهند تا تمام بخشهای سرشماری با تراکم جمعیت ۵۰۰ نفر یا بیشتر را نشان دهند، یا تمامی شهرستانهایی که مساحت آنها کمتر یا مساوی ۱۰۰ کیلومتر مربع است، یا تمامی فروشگاههای رفاه را که در فاصله ۱ مایلی یک بزرگراه بین ایالتی قرار دارند، پیدا کنند.
بهطور خاص، SQL (زبان پرسوجوی ساختاریافته) یک زبان برنامهنویسی است که بهطور معمول برای جستجو در دادههای ویژگی در یک سیستم مدیریت پایگاه داده رابطهای (RDBMS) استفاده میشود. SQL که در دهه ۱۹۷۰ توسط IBM توسعه یافت، این امکان را فراهم میآورد که زیرمجموعهای از اطلاعات ویژگیها را بر اساس معیارهای خاص و تعریفشده توسط کاربر جستجو و بازیابی کنیم. اخیراً استفاده از SQL در GIS نیز گسترش یافته است (Shekhar and Chawla 2003). بهعنوانمثال، ANSI SQL نسخه خاصی است که برای پرسوجو از پایگاههای جغرافیایی ArcSDE استفاده میشود، در حالی که Jet SQL برای دسترسی به پایگاههای جغرافیایی شخصی بهکار میرود. بهطور مشابه، فایلها، پوششها و جداول dBASE از نسخهای محدود از SQL استفاده میکنند که از همه ویژگیهای ANSI SQL یا Jet SQL پشتیبانی نمیکند.
همانطور که در پست های پیشین، بخش “مدیریت پایگاهدادههای جغرافیایی” ذکر شد، تمام جداول ویژگیها در یک سیستم مدیریت پایگاه داده رابطهای (RDBMS) که برای پرسوجوهای SQL استفاده میشود، باید حاوی کلیدهای اولیه و/یا خارجی باشند تا استفاده مناسب از آنها ممکن باشد. علاوه بر این کلیدها، SQL بندهایی را برای ساختار پرسوجوهای پایگاه داده پیادهسازی میکند. بند، یک عنصر زبانی است که شامل دستورات SELECT، FROM، WHERE، ORDER BY و HAVING است.
- SELECT: مشخص میکند که کدام فیلدهای جدول باید مشاهده شوند.
- FROM: جدول ویژگی که اطلاعات در آن قرار دارد را نشان میدهد.
- WHERE: معیارهای تعریفشده توسط کاربر را برای انتخاب ویژگیها که باید در مجموعه خروجی گنجانده شوند، مشخص میکند.
- ORDER BY: دنبالهای است که در آن مجموعه خروجی نمایش داده میشود.
- HAVING: برای فیلتر کردن خروجی از عبارت ORDER BY استفاده میشود.
در حالی که بندهای SELECT و FROM دستورات اجباری در یک پرسوجوی SQL هستند، WHERE یک عبارت اختیاری است که برای محدود کردن مجموعه خروجی بهکار میرود. همچنین، ORDER BY و HAVING عبارتهای اختیاری هستند که برای ارائه اطلاعات به شیوهای قابلتفسیر استفاده میشوند.
شکل ۶٫۶ آدرس های شخصی در جدول ویژگی های “ExampleTable”.
موارد زیر مجموعهای از عبارات و نتایج SQL هستند که در شکل ۶٫۶ «آدرسهای شخصی در جدول ویژگی “ExampleTable”» اعمال میشوند. عنوان جدول ویژگی “ExampleTable” است. توجه داشته باشید که ستاره (*) در دستور SELECT نمایانگر حالتی خاص است که در آن تمامی ستونهای یک رکورد مشخص انتخاب میشوند:
SELECT * FROM ExampleTable WHERE City = "Upland"
این عبارت موارد زیر را برمی گرداند:
به عبارت زیر توجه کنید:
SELECT LastName FROM SampleTable WHERE State = "CA" ORDER BY FirstName
این عبارت منجر به جدول زیر میشود که بر اساس ستون FirstName به ترتیب صعودی مرتب شده است (توجه داشته باشید که ستون FirstName طبق دستور SELECT در جدول خروجی گنجانده نشده است):
علاوه بر بندها، SQL این امکان را فراهم میکند که اپراتورهای خاصی را برای محدود کردن بیشتر نتایج پرس و جو استفاده کنید. این اپراتورها میتوانند رابطهای، حسابی یا بولی باشند و معمولاً در داخل عبارات شرطی در عبارت WHERE به کار میروند.
یک عملگر رابطهای از گزارههای برابر با (=)، کمتر از (<)، کمتر یا مساوی (<=)، بزرگتر از (>)، یا بزرگتر یا مساوی (>=) استفاده میکند.
عملگرهای حسابی شامل توابع ریاضی مانند جمع (+)، تفریق (-)، ضرب (*) و تقسیم (/) هستند.
عملگرهای بولی (که گاهی به آنها اتصالدهندههای بولی نیز گفته میشود) شامل عبارات AND، OR، XOR و NOT هستند. رابط AND برای انتخاب رکوردهایی از جدول ویژگی که هر دو عبارت را برآورده میکنند، استفاده میشود. رابط OR رکوردهایی را انتخاب میکند که یکی یا هر دو عبارت را برآورده کنند. رابط XOR رکوردهایی را انتخاب میکند که تنها یکی از عبارات را برآورده میکند (این رابط عکس عملکرد کانکتور AND است). در نهایت، رابط NOT برای نفی (یا لغو انتخاب) عبارتی که در غیر این صورت درست است، به کار میرود.
در زبان احتمال، کانکتور AND برای نشان دادن تقاطع، OR برای نشان دادن اتحاد و NOT برای نشان دادن مکمل استفاده میشود. شکل ۶٫۷ “نمودار ون اپراتورهای SQL” منطق این رابطها را نشان میدهد، جایی که دایرههای A و B دو مجموعه از دادههای متقاطع را نشان میدهند.
به یاد داشته باشید که SQL یک زبان بسیار دقیق است و تناقضات جزئی در عبارت، مانند فضاهای اضافی، میتواند منجر به یک پرس و جوی ناموفق شود.
شکل ۶٫۷ نمودار ون اپراتورهای SQL
این اپراتورها با هم ترکیب میشوند تا گزینههای جستجو و پرسوجوی قدرتمند و انعطافپذیری را در اختیار کاربر GIS قرار دهند. با توجه به این موضوع، آیا میتوانید مجموعه خروجی پرسوجوی SQL زیر را همانطور که در شکل ۶٫۱ “هیستوگرام نمایش توزیع فراوانی نمرات امتحان” اعمال میشود، تعیین کنید؟
نتایج به شرح زیر است:
SELECT LastName, FirstName, StreetNumber
FROM SampleTable
WHERE StreetNumber >= 10000 AND StreetNumber < 100000
ORDER BY LastName;
پرس و جو توسط جغرافیا
پرس و جو بر اساس جغرافیا، که به عنوان “پرس و جو فضایی” نیز شناخته میشود، به فرد این امکان را میدهد که ویژگیهای خاص را با بررسی موقعیت آنها نسبت به سایر ویژگیها برجسته کند. به عنوان مثال، یک GIS ابزارهای قدرتمندی را فراهم میکند که امکان تعیین تعداد مدارس در فاصله ۱۰ مایلی از خانه را فراهم میآورد. چندین گزینه پرس و جوی فضایی در دسترس هستند که در اینجا به آنها اشاره شده است. در این بحث، “لایه هدف” به مجموعه داده ویژگیای اطلاق میشود که ویژگیهای آن انتخاب شدهاند، در حالی که “لایه منبع” به مجموعه داده ویژگیای اشاره دارد که پرس و جوی فضایی روی آن اعمال میشود. به عنوان مثال، اگر بخواهیم از مجموعه داده ویژگی چندضلعی مرزی ایالت برای انتخاب بزرگراهها از مجموعه دادههای ویژگی خط استفاده کنیم (مثلاً همه بزرگراههایی که از ایالت آرکانزاس عبور میکنند را انتخاب کنیم)، لایه ایالت لایه منبع است و لایه بزرگراه لایه هدف خواهد بود.
تقاطع: این تکنیک پرس و جوی فضایی که به طور گستردهای استفاده میشود، تمام ویژگیهای موجود در لایه هدف را که با لایه منبع اشتراک مکانی دارند، انتخاب میکند. پرس و جوی “تقاطع” به شما این امکان را میدهد که از نقاط، خطوط یا لایههای چندضلعی به عنوان لایههای منبع و هدف استفاده کنید( شکل ۶٫۸ ).
شکل ۶٫۸
ویژگیهای آبی و زرد که برجسته شدهاند، به این دلیل انتخاب میشوند که ویژگیهای قرمز را قطع میکنند.
در فاصلهای از: این تکنیک از کاربر میخواهد مقداری فاصله را مشخص کند که سپس برای ایجاد بافر (پست”تحلیل مکانی I: عملیات برداری”، بخش ۷٫۲ “تحلیل چندلایه”) روی لایه منبع استفاده میشود. تمام ویژگیهایی که این بافر را قطع میکنند، در لایه هدف برجسته میشوند. پرس و جوی “در فاصلهای از” به شما این امکان را میدهد که از نقاط، خطوط یا لایههای چندضلعی برای هر دو لایه منبع و هدف استفاده کنید (شکل ۶٫۹).
شکل ۶٫۹
ویژگیهای آبی و زرد برجستهشده به این دلیل انتخاب میشوند که در فاصله انتخابشده از ویژگیهای قرمز قرار دارند. مناطق برنزه نشاندهنده بافرهایی در اطراف ویژگیهای مختلف است.
به طور کامل حاوی: این تکنیک پرس و جوی فضایی آن ویژگیهایی را که کاملاً در لایه منبع قرار دارند، برمیگرداند. ویژگیهایی که مرزهای همپوشان دارند، توسط این نوع پرس و جو انتخاب نمیشوند. پرس و جوی “کاملاً حاوی” به شما این امکان را میدهد که نقاط، خطوط یا چندضلعیها را به عنوان لایه منبع استفاده کنید، اما تنها چندضلعیها میتوانند به عنوان لایه هدف استفاده شوند (شکل ۶٫۱۰).
شکل ۶٫۱۰
ویژگیهای آبی و زرد مشخص شده به این دلیل انتخاب میشوند که کاملاً درون ویژگیهای قرمز قرار دارند.
به طور کامل در داخل هستند: این پرس و جو آن ویژگیهایی را در لایه هدف انتخاب میکند که تمام مساحت فضایی آنها در هندسه لایه منبع قرار دارد. پرس و جوی “کاملاً درون” به شما این امکان را میدهد که نقاط، خطوط یا چندضلعیها را به عنوان لایه هدف استفاده کنید، اما تنها چندضلعیها میتوانند به عنوان لایه منبع استفاده شوند (شکل ۶٫۱۱).
شکل ۶٫۱۱
ویژگیهای آبی و زرد برجسته شده انتخاب شدهاند زیرا کاملاً درون ویژگیهای قرمز قرار دارند.
مرکز خود را در: این تکنیک ویژگیهای هدفی را انتخاب میکند که مرکز یا نقطه مرکزی آنها در مرز مجموعه داده ویژگی منبع قرار دارد. پرس و جوی “دارای مرکز آنها” به شما این امکان را میدهد که از نقاط، خطوط یا لایههای چندضلعی هم به عنوان لایه منبع و هم به عنوان لایه هدف استفاده کنید (شکل ۶٫۱۲).
شکل ۶٫۱۲
ویژگیهای آبی و زرد برجسته شده انتخاب شدهاند زیرا مرکز آنها در ویژگیهای قرمز قرار دارد.
یک بخش خط را به اشتراک بگذارید: این پرس و جوی فضایی ویژگیهای هدفی را انتخاب میکند که هندسههای مرزی آنها حداقل دو رأس مجاور را با لایه منبع مشترک دارند. پرس و جوی “به اشتراک گذاری یک بخش خط” به شما این امکان را میدهد که از لایههای خط یا چندضلعی برای هر دو لایه منبع و هدف استفاده کنید (شکل ۶٫۱۳).
شکل ۶٫۱۳
ویژگیهای آبی و زرد برجستهشده به این دلیل انتخاب میشوند که یک بخش خط را با ویژگیهای قرمز مشترک دارند.
مرزها را لمس کنید: این روش مشابه پرس و جوی فضایی INTERSECT است، با این تفاوت که ویژگیهای خط و چندضلعی را انتخاب میکند که یک مرز مشترک با لایه هدف دارند. پرس و جوی “لمس مرز” به شما این امکان را میدهد که از لایههای خط یا چندضلعی برای هر دو لایه منبع و هدف استفاده کنید (شکل ۶٫۱۴).
شکل ۶٫۱۴
ویژگیهای آبی و زرد برجستهشده به این دلیل انتخاب میشوند که مرز ویژگیهای قرمز را لمس میکنند.
یکسان هستند: این پرس و جوی فضایی ویژگیهایی را برمیگرداند که موقعیت جغرافیایی دقیقاً یکسانی دارند. پرس و جوی “یکسان هستند” را میتوان در نقاط، خطوط یا چندضلعیها استفاده کرد، اما نوع لایه هدف باید با نوع لایه منبع یکسان باشد (شکل ۶٫۱۵).
شکل ۶٫۱۵
ویژگیهای آبی و زرد برجستهشده به این دلیل انتخاب میشوند که با ویژگیهای قرمز یکسان هستند.
توسط طرح کلی عبور داده شده است: این معیار ویژگیهایی را انتخاب میکند که یک راس منفرد را به اشتراک میگذارند، اما یک بخش خط کامل را ندارند. پرس و جوی “توسط طرح کلی عبور داده شده است” اجازه میدهد تا لایههای خط یا چندضلعی به عنوان لایههای منبع و هدف استفاده شوند (شکل ۶٫۱۶).
شکل ۶٫۱۶
ویژگیهای آبی و زرد برجستهشده به این دلیل انتخاب میشوند که با ویژگیهای قرمز یکسان هستند.
توسط طرح کلی عبور داده شده است: این معیار ویژگیهایی را برمیگرداند که یک راس منفرد را به اشتراک میگذارند، اما یک بخش خط کامل ندارند. پرسوجوی “توسط طرح کلی عبور داده شده است” این امکان را میدهد که لایههای خط یا چندضلعی به عنوان لایههای منبع و هدف استفاده شوند (شکل ۶٫۱۶).
شکل ۶٫۱۷
ویژگیهای آبی و زرد برجستهشده به این دلیل انتخاب میشوند که دارای ویژگیهای قرمز هستند.
توسط: این روش مشابه پرسوجوی فضایی “COMPLETELY WITHIN” است. با این حال، در اینجا ویژگیهای لایه هدف انتخاب میشوند حتی اگر مرزها همپوشانی داشته باشند. هنگامی که چندضلعیها به عنوان لایه منبع استفاده میشوند، پرسوجوی “با وجود” اجازه میدهد تا ویژگیهای نقطه، خط یا چندضلعی در لایه هدف وجود داشته باشند. هنگامی که لایههای هدف نقطه و خط با منبع خط همپوشانی دارند و زمانی که فقط لایههای هدف از نوع نقطه با منبع نقطهای همپوشانی دارند (شکل ۶٫۱۸).
شکل ۶٫۱۸
ویژگیهای آبی و زرد برجستهشده به این دلیل انتخاب میشوند که توسط ویژگیهای قرمز وجود دارند.
خوراکی های کلیدی
- سه روش اساسی برای جستجو و پرس و جو داده های ویژگی عبارتند از: انتخاب، پرس و جو به ویژگی و پرس و جو بر اساس جغرافیا.
- SQL یک زبان رایانه ای است که معمولاً مورد استفاده قرار می گیرد که برای پرس و جو با داده های ویژگی در یک سیستم مدیریت پایگاه داده رابطه ای توسعه یافته است.
- جستارهای جغرافیایی به کاربر اجازه می دهد تا ویژگی های مورد نظر خود را با بررسی موقعیت خود نسبت به سایر ویژگی ها برجسته کند. یازده گزینه مختلف پرس و جو بر اساس جغرافیا که در اینجا ذکر شده است در اکثر بسته های نرم افزاری GIS موجود است.
تمرینات
- با استفاده ازشکل ۶٫۱ “هیستوگرام نمایش توزیع فراوانی نمرات امتحان” ، عبارت SQL را ایجاد کنید که نتیجه آن خروجی نام تمام خیابان های افراد ساکن در لس آنجلس است که بر اساس شماره خیابان مرتب شده اند.
- هنگام پرس و جو از طریق جغرافیا، تفاوت بین لایه منبع و لایه هدف چیست؟
- تفاوت بین پرس و جوهای CONTAIN، COMPLETELY CONTAIN و ARE CONTAINED BY چیست؟