PostgreSQL و PostGIS

تاریخ بازبینی ۱۳۹۵/۰۶/۲۰

در این فصل، خواهیم دید چگونه PostgreSQL را روی ویندوز تنظیم و یک پایگاه داده که بتواند داده‌های جغرافیایی را ذخیره کند، ایجاد کنیم. ما در این فصل از QGIS که نرم‌افزار منبع باز GIS است استفاده خواهیم کرد، بنابراین اگر قبلاْ با آن آشنایی دارید، مفید خواهد بود. در فصل بعد خواهیم دید چگونه داده‌های OpenStreetMap را به پایگاه داده PostgreSQL وارد کنیم.

نصب PostgreSQL و PostGIS

در این بخش PostgreSQL را نصب می‌کنیم و سپس پسوندهای PostGIS را اضافه می‌کنیم. با استفاده از نصب‌کننده یک کلیکی این تنظیم بسیار آسان است. با مرورگر وب خود به وبسایت PostgreSQL و صفحه دانلود http://www.postgresql.org/download/ بروید.

postgresql website

از اینجا می‌توانید دستورات نصب برای سیستم عامل‌های مختلف را پیدا کنید. روی لینک “Windows” کلیک کنید.
این صفحه توضیح می‌دهد که برنامه نصاب یک کلیکه چه کار خواهد کرد. سه جزء مختلف نصب خواهد شد:

  • سرور PostgreSQL: نرم‌افزار پایگاه داده، هسته اصلی برنامه
  • pgAdmin III: رابط گرافیکی برای مدیریت پایگاه‌های داده شما
  • StackBuilder: ابزاری برای افزودن برنامه‌های اضافی؛ از این برای افزودن پسوندهای PostGIS استفاده خواهیم کرد

روی دانلود کلیک کنید.

postgresql download

در برنامه نصب‌کننده چندین گزینه مختلف برای نسخه‌های مختلف نرم‌افزار PostgreSQL را مشاهده خواهید کرد. جدیدترین نسخه را دانلود کنید. در زمان نوشتن این مطلب نسخه 9.3.1 است. روی دکمه‌ای که Win x86-32 نوشته کلیک کنید. این نصب‌کننده نسخه ۳۲ بیتی ویندوز است.

postgresql version

با اتمام دانلود برنامه نصب‌کننده یک کلیکه را اجرا کنید.

install 1

روی “Next” کلیک کنید تا وارد جادوگر نصب شوید. گزینه‌های پیش‌فرض باید مناسب باشند. یک رمز عبور برای اولین کاربر پایگاه داده (کاربر postgres) باید بدهید. این کاربر دارای امتیازات کاربری فوق‌العاده است، به این معنی که می‌تواند هر چیزی که بخواهد می‌تواند انجام دهد، بنابرایین رمز عبوری که استفاده می‌کنید را فراموش نکنید!

می‌توانید با استفاده از Postgresql هر تعداد پایگاه داده‌ای که بخواهید ایجاد کنید. ممکن است یک پایگاه داده برای داده‌های جغرافیایی‌تان و پایگاه داده جداگانه‌ای برای سایر پروژه‌هایی که روی آنها کار می‌کنید، بخواهید. و ممکن است بخواهید که افراد مختلف دسترسی‌های مختلفی به این پایگاه‌های اطلاعاتی داشته باشند. برای این منظور، هر پایگاه داده‌ای که ایجاد می‌کنید، از مفهوم کاربران (users) و نقش (roles) استفاده می‌کند. یک پایگاه داده همیشه باید متعلق به یک کاربر باشد و معمولاْ آن کاربر به منظور ایجاد تغییرات در پایگاه داده نیاز به یک رمز عبور دارد. اجازه دسترسی به یک پایگاه داده به کاربران بیشتر می‌تواند داده شود و به آنها می‌توان نقش‌های خاصی را اعطا نمود. به عنوان مثال، ممکن است بخواهید که یک کاربر تنها بتواند اطلاعات را از پایگاه داده بخواند، اما نتواند آنها را تغییر دهد. یا ممکن است بخواهید کاربری بتواند داده را اضافه کند، اما مجوز حذف آنها را نداشته باشد. با استفاده از کاربران و نقشها، این امکان‌پذیر است. در حال حاضر بیش از حد نگران این موضوع نباشید، فقط به یاد داشته باشید که پایگاه داده شما متعلق به کاربر است، و برای دسترسی به پایگاه داده به نام کاربری و رمز عبور کاربر نیاز دارید. اولین کاربر ما (به نام postgres) یک ابَرکاربر (superuser) است، به این معنی که او مجوز انجام همه کاری با پایگاه داده را دارد.

پس از اینکه در ساحره نصب چندین کلیک کردید و گزینه‌های پیکربندی پیش‌فرض را پذیرفتید، همه چیز برای شما نصب خواهد شد. ممکن است چند دقیقه طول بکشد.

هنگامی که نصب کامل شد، ساحره نصب از شما می‌خواهد که اگر می‌خواهید StackBuilder را راه‌اندازی کند، این همان ابزاری است که ما را قادر به نصب PostGIS می‌کند. قبل از اینکه روی “Finish” کلیک کنید مطمئن شوید تیک را زده باشید.

install 2

اکنون ما PostgreSQL را با موفقیت نصب کرده‌ایم و باید افزونه‌های PostGIS را اضافه کنیم. هنگامی که ساحره StackBuilder باز می‌شود، نصب PostgresSQL را از منوی کشویی انتخاب کرده و روی Next کلیک کنید. این چیزی شبیه به این خواهد بود:

install 3

زبانه “Extensions Spatial” را باز کنید و کادر کنار PostGIS را علامت بزنید. در زمان این نوشتار جدیدترین نسخه PostGIS 2.1 است.

install 4

برای دانلود و نصب افزونه‌ها روی Next کلیک کنید. هنگام اعلان، برای پذیرفتن شرایط و ضوابط، روی “I Agree” کلیک کنید.

نصب کننده PostGIS سوالات بیشتری را می‌پرسد، اما به طور کلی گزینه‌های پیش‌فرض خوب هستند. شما می‌توانید به آن بگوئید که اولین پایگاه داده را به طور خودکار ایجاد کند، اما ما یاد خواهیم گرفت که چطور بعداْ خودمان اینکار را انجام دهیم. برای شروع نصب PostGIS باید رمز ورود postgres که هنگام نصب PostgreSQL ایجاد کردید را باید بزنید.

install 5

اگر از شما خواسته شد که متغیر محیطی GDAL_DATA را ثبت کنید، روی “Yes” را کلیک کنید.

install 6

وقتی نصب کامل شد، روی “Close” و سپس “Finish” کلیک کنید.

ایجاد پایگاه داده

اکنون که تمام نرم‌افزارهای لازم را نصب کرده‌ایم، یک پایگاه داده ایجاد خواهیم کرد. از pgAdmin III استفاده خواهیم کرد که یک کلاینت گرافیکی پایگاه داده است و برای پرس‌وجو و تغییر پایگاه‌های داده مفید است.

pgadmin3

PgAdmin III کلاینت رسمی PostgreSQL است و به شما اجازه می‌دهد که از زبان SQL برای دستکاری در جداول داده خود استفاده کنید. همچنین امکان ایجاد و دستکاری پایگاه داده از خط فرمان نیز وجود دارد، اما در حال حاضر، pgAdmin III آسان‌ترین راه برای شروع است.

pgAdmin III را باز کنید. در منوی شروع در قسمت All Programs-> PostgreSQL 9.3> pgAdmin III باید قرار داشته باشد.

pgadmin3 start

در پنل سمت چپ در قسمت سرور، روی PostgreSQL راست کلیک کنید و “Connect” را انتخاب کنید.

postgresql connect

گذرواژه کاربر postgres که هنگام نصب نرم‌افزار ایجاد کردید را وارد کنید. به یاد داشته باشید که نام کاربری و رمز عبور مورد نیاز است تا بتوانید یک پایگاه داده ایجاد کرده و به آن دسترسی داشته باشید.

enter password

بر روی Databases کلیک راست کرده و New Database را انتخاب کنید …

new database

برای ایجاد پایگاه داده جدید باید چند قطعه اطلاعات وارد کنید: نام و مالک. در زبانه Properties، به پایگاه داده جدید یک نام اختصاص بدهید. در این مثال، ما پایگاه داده خود را gisdb نامگذاری می‌کنیم. همچنین بایستی به پایگاه داده خود یک مالک هم بدهیم. از آنجاییکه ما در حال حاضر فقط یک کاربر داریم، اجازه دهید postgres را به عنوان مالک پایگاه اطلاعاتی‌مان بگذاریم. (توجه داشته باشید: به دلایل امنیتی معمولاْ بهتر است که کاربران را بدون اجازه ابَرکاربر ایجاد کنیم، اما ما در حال حاضر درباره این موضوع نگرانی نداریم.)

new database form

برای ایجاد پایگاه داده روی OK کلیک کنید. خواهید دید که پایگاه داده‌تان در زیر “Databases” لیست شده است. ما اکنون باید یک دستور را اجرا کنیم تا پایگاه داده با پسوند PostGIS را فعال کنیم. روی دکمه sql button در بالای صفحه PgAdmin III کلیک کنید.

در پنجره پرس‌وجو، تایپ کنید:

;CREATE EXTENSION postgis

سپس بر روی دکمه “Execute query” کلیک کنید.

postgis command

بارگیری اطلاعات نمونه (اختیاری)

اگر تا به حال با QGIS آشنا هستید و با آن راحت هستید، همراه ما باشید تا تعدادی داده به پایگاه داده جدیدمان بارگیری کنیم. برای انجام این کار، از ابزاری استفاده می‌کنیم که فایلهای شیپ را تبدیل کرده و آنها را در پایگاه داده بارگذاری میکند.

اطمینان حاصل کنید که پایگاه داده جدیدتان در پنل سمت چپ انتخاب شده است و به Plugins -> PostGIS Shapefile and DBF loader 2.1 ** بروید.

shapefile loader

  • بر روی “Add File” کلیک کنید و یک فایل شیپ در فایل سیستم خود پیدا کنید.
  • اگر هیچ فایل شیپی ندارید، می‌توانید یک نمونه را از اینجا دانلود کنید.
  • هنگامی که یک پرونده را انتخاب کردید، روی “Import” کلیک کنید. اگر همه چیز هموار باشد، در خروجی “Shapefile import complete” خوانده خواهد شد.

add shapefile

اکنون بیایید داده را از پایگاه داده‌مان به برنامه QGIS بارگذاری کنیم. اگر QGIS ندارید می‌توانید آن را در وبسایت QGIS دانلود کنید.

  • QGIS را باز کنید و روی دکمه qgis add postgis button کلیک کنید.
  • در قسمت “Connections” در بالای صفحه، روی “New” کلیک کنید.
  • به اتصال جدید نام بدهید. در قسمت پایگاه داده gisdb بنویسید (و یا هر نام دیگری که به پایگاه داده خود داده‌اید). نام کاربری postgres و رمز عبور خود را در زیر وارد کنید

connection settings

  • بر روی OK کلیک کنید تا تنظیمات اتصال ذخیره شود. سپس برای اتصال به سرور PostgreSQL روی “Connect” کلیک کنید. ممکن است لازم باشد دوباره نام کاربری و رمز عبور خود را وارد کنید.
  • اگر همه چیز موفقیت‌آمیز باشد، می‌توانید لایه فایلهای شیپ (یا لایه‌های متعدد با انواع ویژگی‌های مختلف) را که در پایگاه داده موجود در اینجا بارگیری کرده‌اید را ببینید. یک لایه را انتخاب کنید و روی “Add” کلیک کنید تا آن را به نقشه خود اضافه کنید.

your data layer

هنگامی که لایه را اضافه میکنید، باید یک سیستم مختصات را برای نمایش داده‌ها انتخاب کنید. به احتمال زیاد بخواهید WGS 84 را انتخاب کنید زیراکه سیستم مختصات مورد استفاده در OpenStreetMap است.

این لایه همانند اینکه یک فایل شیپ را مستقیما به QGIS بارگذاری کرده‌اید رفتار می‌کند. تنها تفاوت این است که اگر لایه را ویرایش کنید، تغییرات در پایگاه داده شما ذخیره خواهند شد.

خلاصه

حالا که چگونگی راه‌اندازی PostgreSQL و PostGIS و همچنین نحوه ایجاد یک پایگاه داده جدید را دیدید، آماده‌اید تا ابزارهایی را امتحان کنید که به ما امکان می‌دهد داده‌های خام OSM را به پایگاه داده وارد کنیم. به این موضوع در فصل بعدی نگاهی خواهیم انداخت.

CC0
Official HOT OSM learning materials