PostgreSQL و PostGIS

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

نصب PostgreSQL و PostGIS

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

postgresql website

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

  • PostgreSQL server: نرم‌افزار پایگاه‌داده؛ هستهٔ اصلی
  • pgAdmin 4: رابط گرافیکی برای مدیریت پایگاه داده
  • StackBuilder: ابزاری برای افزودن برنامه‌های اضافه‌تر؛ برای اضافه‌کردن extensionهای PostGIS از این استفاده می‌کنیم

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

postgresql download

چندین نصّاب مختلف برای نسخه‌های مختلف نرم‌افزار PostgreSQL مشاهده خواهید کرد. جدیدترین نسخه متناسب با ویرایش ویندوزتان را دانلود کنید.

postgresql version

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

install 1

روی Next کلیک کنید تا مراحل دستیار نصب را طی کنید. گزینه‌های پیش‌فرض باید مناسب باشند. باید برای اولین کاربر پایگاه‌داده (کاربر postgres) یک گذرواژه بدهید. این کاربر دسترسی‌های ابَرکاربر را دارد، به این معنی که می‌تواند هر کاری بخواهد انجام دهد، بنابراین گذرواژه‌ای که به کار می‌برید را فراموش نکنید!

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

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

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

install 2

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

install 3

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

install 4

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

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

install 5

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

install 6

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

ساخت پایگاه‌داده

اکنون که تمام نرم‌افزارهای لازم را نصب کرده‌ایم، یک پایگاه‌داده ایجاد خواهیم کرد. از pgAdmin 4 که یک رابط گرافیکی پایگاه‌داده (graphical database client) است و برای پرس‌وجو و تغییر مفید است استفاده خواهیم کرد پایگاه‌داده‌ها مفید است.

pgadmin3

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

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

pgadmin3 start

در کادر سمت چپ در قسمت Servers، روی PostgreSQL راست‌کلیک کنید و Connect را بزنید.

postgresql connect

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

enter password

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

new database

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

new database form

برای ساخت پایگاه‌داده روی OK کلیک کنید. خواهید دید که پایگاه‌داده‌تان در زیر Databases لیست می‌شود. اکنون باید یک دستور اجرا کنیم تا پایگاه‌داده با extensionهای PostGIS فعال شود. روی دکمهٔ sql button در بالای PgAdmin 4 کلیک کنید.

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

CREATE EXTENSION postgis;

سپس روی دکمهٔ Execute query (اجرای پرس‌وجو) کلیک کنید.

postgis command

بارکردن دادهٔ نمونه (اختیاری)

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

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

shapefile loader

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

add shapefile

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

  • QGIS را باز کنید و روی این دکمه کلیک کنید: qgis add postgis button
  • در قسمت Connections در بالا، روی New کلیک کنید.
  • به اتصال جدید نام بدهید. در قسمت database بنویسید gisdb (یا هر نام دیگری که به پایگاه‌دادهٔ خود داده‌اید). نام کاربری را postgres بنویسید و گذرواژهٔ خود را در وارد کنید:

connection settings

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

your data layer

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

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

خلاصه

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