PostgreSQL قویترین پایگاه داده مکانی متن باز
پایگاه داده مکانی با استفاده از PostgreSQL
در نوشته پیشین شما را با پایگاه داده مکانی آشنا کردیم. در این نوشته قصد داریم شما را با پایگاه داده مکانی PostgreSQL آشنا کنیم. با ما همراه باشید…
توسط PostgreSQL و همچنین افزونه مکانی PostGIS، می توانید یک پایگاه داده مکانی ایجاد کرده و نقشه ها و داده های مکانی را در آن بارگزاری نمایید.
این نهمین آموزش از کلاس رایگان آموزش Web GIS است. برای مشاهده آموزش های پیشین و دانلود فیلم و PDF آن ها، می توانید به صفحه کلاس Web GIS، مراجعه نمایید.ثبت نام رایگان در کلاس WEB GIS
پایگاه داده مکانی PostgreSQL
در نوشته پیشین گفتیم که برای شروع برنامه نویسی Web GIS می بایست مقدماتی را فراهم کنید. یکی از این مقدمات، راه اندازی پایگاه داده مکانی می باشد. در نوشته پیشین به شما گفتیم که پایگاه داده مکانی چیست؟ و شما با مبانی و مفاهیم پایگاه داده و همچنین پایگاه داده مکانی آشنا شدید و یاد گرفتید کهGeoDatabase چیست.
از این نوشته می خواهیم آموزش PostgreSQL را شروع کنیم و شما را با پایگاه داده مکانی PostgreSQL آشنا کنیم. شما می توانید با استفاده از نرم افزارهای مختلفی اقدام به طراحی پایگاه داده مکانی نمایید. در این آموزش و آموزش های آتی، به مرور با این نرم افزارها آشنا خواهید شد.
امروزه، نرمافزارهاي مديريت پايگاهداده های بسياري ساخته شدهاند که هر کدام، مزايا و معايب خود را دارند. روند ذخيرهسازي داده از زمان ذخيره دادهها در فايل متني تا پايگاهدادههای پيشرفته، بسيار طولاني و پرفراز و نشيب بوده است. پايگاهدادهها و زبان محاوره پرسوجو از آنها (یا همان SQL)، امروزه قلب تپنده و پايه و بنيان سيستمهاي اطلاعاتي ما را تشکيل ميدهند و به همين دليل، اهميت امنيت، کارايي و پيشرفت آنها بر کسي پوشيده نيست. در نتيجه به منظور برآورده کردن نيازهاي روزافزون بشر به فناويهاي جديد در زمينه ذخيرهسازي دادهها و بازيابي و جستوجوي آنها، پروژههاي بسياري در نقاط مختلف جهان و با اهداف مختلف تعريف شد.
یکی از پروژههای موفق که در دانشگاه Berkeley کالیفورنیا کلید خورد، ایجاد یک سیستم مدیریت پایگاه داده های جدید با نام PostgreSQL بود که به ایجاد یکی از پیشرفتهترین پایگاه داده های آزاد و متنباز جهان منجر شد. این سیستم مدیریت پایگاهداده، علاوه بر داشتن قابلیتهای پیشرفتهای برای رقابت با Oracle، از نظر سرعت نیز رقیب سرسختی برای MySQL ساده و چابک، محسوب میشود.
PostgreSQL یک سیستم مدیریت پایگاه داده های شی رابطهای یا ORDBMS است. این نرمافزار، یک نرمافزار آزاد به شمار میآید. مانند دیگر پروژههای متنباز، شرکت خاصی پیگیر بحث توسعه آن نیست و جامعهای از توسعهدهندگان به توسعه و بهینهسازی آن مشغول هستند.
PostgreSQL، يکي از بهترين نرمافزارهاي پايگاهداده براي حجم عظيمي از دادهها به شمار ميآيد که هر روز شاهد گسترش استفاده از آن هستيم. اين پايگاهداده، با توجه به قابليتهاي جديد و پيشرويي که دارد، از بسياري از راهحلهاي تجاري موجود بهتر بوده و در عين حال، متنباز و رايگان است. به همين دليل، در بحرانهای اقتصادي و در حالي که شرکتهاي بزرگ به دنبال کاهش هزينههاي خود هستند، PostgreSQL ميتواند به يکي از گزينههاي اصلي براي قلب ذخيرهسازي سيستمهاي آنها تبديل شود. به علاوه، با استفاده از افزونههای پيشرفتهاي مانند PostGIS و گسترش روزافزون استفاده از GIS و دادههاي مکاني در دنيا، PostgreSQLبيش از پيش در مقابل رقبا به قدرتنمايي خواهد پرداخت.
تاریخچهPostgreSQL
نخستین مشکلی که کاربران پایگاهداده PostgreSQL با آن روبهرو میشوند، چگونگی تلفظ نام آن است. تلفظ PostgreSQL به صورت (پست جرس.کیو.ال) است که در بیشتر مواقع و برای راحتی از طرف کاربران، Postgres (پست جرس) خوانده میشود. نام نرمافزار، از ایده اولیه ایجاد و توسعه آن یعنی پایگاه داده Post-Ingres گرفته شده است. پایگاهداده Ingres، یک پایگاهداده رابطهای متنباز و تجاری است که توسعه آن توسط شرکت Ingres کنترل میشود.
نرمافزار Postgres در طی توسعه پروژه Ingres که در اواسط دهه 1980 در دانشگاه Berkeley پیگیری میشد، متولد شد.
در سال 1996، مارک فونیه در شرکت Hub.org نخستین سرویسدهنده توسعه غیردانشگاهی Postgres را راهاندازی کرد و با همکاری تنی چند و با پایدارسازی کد موجود، نسخه جدید Postgres را عرضه کرد. همزمان، برای القای اینکه نرمافزار از SQL پشتیبانی میکند، نام آن به PostgreSQL تغییر کرد و اولین عرضه با نام PostgreSQL تحت عنوان نسخه 7 در سال 1997 عرضه شد. پس از آن نیز جامعه متنباز و گروه بزرگی از کاربران، توسعه Postgres را بر عهده گرفتند. نسخه PostgreSQL8.4 در تاریخ یکم ژوئیه 2009 عرضه شده است. از آن به بعد بصورت مرتب، نسخه های جدیدتر از این سیستم مدیریت پایگاهداده، منتشر گردیده است. نسخه 9.6.4 آن در تاریخ 10 آگوست 2016 عرضه شده است.
چگونه با PostgreSQL کار کنیم؟
برای آن که بتوانید یک پایگاه داده بر روی PostgreSQL ایجاد کنید و آن را مدیریت نمایید، می بایست از نرم افزارهای مدیریت پایگاه داده PostgreSQL، استفاده کنید. از آنجایی که در ابتدا، PostgreSQL برای استفاده در سیستم عامل لینوکس، توسعه داده شد، لذا رابط اصلی کار با آن، یک برنامه خط فرمانی با نام psql است که امکان وارد کردن پرسوجوهای SQL یا اجرای آن ها از طریق یک فایل را فراهم میکند.
نرمافزار PgAdmin، یکی دیگر از نرم افزارهای رابط PostgreSQLاست که یک رابط گرافیکی است و نسخههای آن برای Windows, Linux و Mac موجود می باشند. این نرمافزار آزاد بوده و از دوازده زبان پشتیبانی میکند. اولین نسخه از این نرمافزار با نام pgManager، همراه با PostgreSQL6.3.2 در سال 1998 عرضه شد. نسخه بعدی آن در سال 2002 تحت عنوان pgAdmin II عرضه شد و نسخه سوم آن همراه PostgreSQL8.3 عرضه شد و pgAdmin III نام دارد. آخرین نسخه آن تحت عنوان pgAdmin 4 v1.1 به همراه PostgreSQL 9.6 در تاریخ 27 اکتبر 2016 منتشر شده است.
علاوه بر دو نرمافزار فوق، نرمافزاری برای مدیریت PostgreSQL از طریق وب نیز وجود دارد که phpPgAdmin نام دارد. همانطور که از نام آن پیدا است، این رابط به زبان PHP نوشته شده و برپایه رابط وب معروف phpMyAdmin که برای مدیریت MySQL از طریق وب به کار میرود، توسعه داده شده است.
همچنین، در این میان، تعدادی نرمافزار تجاری و اختصاصی (غیر آزاد) برای مدیریت PostgreSQL نیز وجود دارد که از آنها میتوان به Navicat, SQL Maestro و ابزارهای مدلسازی دادهها مانند Dezign for Database یا ModelRight اشاره کرد.
چه کسانی از PostgreSQL استفاده می کنند؟
معروفترین کاربر PostgreSQL، شرکت Yahoo است که ادعا میکند با استفاده از آن، بیش از دو پتابایت اطلاعات ذخیره کرده است. نسخه مورد استفاده Yahoo، نسخهای کاملا اختصاصی و تغییریافته از PostgreSQL است که موتور ذخیرهسازی ستونی و لایه پردازش پرسوجوی آن کاملا متفاوت بوده و بازنویسی شده است.
نقشه Open Street Map که یک پروژه برای ایجاد نقشه مشارکتی جهان است، نیز از دیگر کاربران PostgreSQL است.
از دیگر کاربران PostgreSQL میتوان به Afilias، ثبتکننده دامنههای org و Sony Online, BASF, Info و hi5.com, Skype, Sun xVM, Evergreen, NetBus, Snooth The Weather Channel اشاره کرد. علاوه بر این موارد، ده ها دانشگاه، ده ها پروژه متن باز، ده ها سازمان دولتی در سرتاسر جهان از استفاده کنندگان PostgreSQL می باشند که می توانید لیست آنها را در سایت PostgreSQL مشاهده نمایید.
همچنین، در 10 سال گذشته، ما تجربه به کارگیری PostgreSQL در چندین پروژه بزرگ کشور را داشته ایم. ما در بیشتر این پروژه ها برای اجرای Web GIS، با استفاده از PostgreSQL، اقدام به پیاده سازی پایگاه داده مکانی نموده ایم.
برای کسب اطلاعات بیشتر در این خصوص می توانید از طریق بخش تماس با ما در سایت GISPlus، پرسش های خود را از ما بپرسید.
مقایسهPostgreSQL با رقبا
رقبای PostgreSQL را میتوان به دو دسته تقسیم کرد. رقبای غیررایگان و تجاری نظیر Oracle و رقبای متنباز و رایگان مانند MySQL. در زمینه رقابت با Oracle و دیگر پایگاههایداده تجاری، یکی از مهمترین نقاط قوتPostgreSQL ، متنباز بودن و هزینه بسیار پایین آن برای ایجاد یک سیستم ذخیرهسازی کامل است. به علاوه، توسعهدهندگان آن، مجموعهای بزرگ از کاربران و برنامهنویسانی هستند که خود، از کاربران سیستم به حساب میآیند. به همین دلیل، سرعت رشد و پویایی آن در مقابل مشکلات احتمالی و قابلیتهای جدید، بسیار بالا است. با این حال، Oracle به دلیل خدمات پشتیبانی بهتر و فراگیرتر بودن، از PostgreSQL جلوتر است و به همین دلیل، علاقه به استفاده از آن بیشتر است. شرایط Oracle و PostgreSQL در دنیا، به نوعی مشابه شرایط Windows و Linux است و کاربران و شرکتها طبق عادت، علاقه بیشتری به استفاده از سیستم فراگیرتر دارند.
اما زورآزمایی با رقیب هم جنسی مانند MySQL برای PostgreSQL مشکلتر است. پایگاهداده MySQL مانند PostgreSQL، متنباز بوده و به صورت رایگان، قابل استفاده است. به علاوه، معماری و ساختار آن سادهتر بوده و کاربرانی که با حجم عظیمی از دادهها سروکار ندارند، ترجیح میدهند از آن استفاده کنند. همچنین، MySQL به دلیل سبکی و سادگی، نسبت به PostgreSQL، سریعتر است و همین موضوع، استفاده از آن را گسترش داده است. در مقابل، PostgreSQL به دلیل ماهیت بسیار پیشرفتهتر خود، برای استفاده در محیطهای بزرگ، مناسبتر است و امکانات بسیار بیشتری در اختیار کاربر میگذارد. به علاوه، با اعمال تغییرات در نسخههای اخیر PostgreSQL، سرعت عملکرد آن به شدت در حال بهبود بوده و به نظر میرسد، چیزی از MySQL کم نخواهد داشت. به طور کلی، PostgreSQL در دنیای متنباز معادل Oracle محسوب میشود و به همین دلیل، تنها در محیطهای بزرگ مورد استفاده قرار میگیرد.
در خصوص SQL Server که یکی دیگر از رقبای تجاری PostgreSQL می باشد، ذکر این نکته الزامی است که قدمت و بلوغ PostgreSQL در پشتیبانی و کار با داده های مکانی باعث شده است که استفاده کنندگانی که می خواهند بصورت تخصصی با داده های مکانی کار کنند، بیشتر خواهان استفاده از PostgreSQL می باشند. پشتیبانی از نوع داده های مکانی در SQL Server، از نسخه 2008 به بعد به این سیستم مدیریت پایگاه داده ها اضافه شد و در حال حاضر از نظر تعداد توابع مکانی با Oracle و PostgreSQL قابل مقایسه نمی باشد.
توضیحات ارایه شده بصورت کلی بودند و بدیهی است به منظور بررسی چند محصول، می بایست فاکتورهای متعددی را در مقایسه لحاظ کرد. در این زمینه در آینده، اطلاعات کاملی را از طریق سایت GISPlus، منتشر خواهیم کرد.
جمع بندی
با توجه به آنچه که تا کنون گفته شد و قابلیتهای ذاتی مطرح شده،PostgreSQL یکی از بهترین سیستمهای مدیریت پایگاهداده برای حجم عظیمی از دادهها به شمار میآید که هر روز شاهد گسترش استفاده از آن هستیم.
این پایگاهداده، با توجه به قابلیتهای جدید و پیشرویی که دارد، از بسیاری از راه حل های تجاری موجود بهتر بوده و در عین حال، متنباز و رایگان است. به همین دلیل، در بحرانهای اقتصادی و در حالی که شرکتهای بزرگ به دنبال کاهش هزینههای خود هستند،PostgreSQL میتواند به یکی از گزینههای اصلی برای قلب ذخیرهسازی سیستمهای آنها تبدیل شود. به علاوه، با استفاده از افزونه های پیشرفتهای مانند PostGIS و گسترش روزافزون استفاده از GIS و دادههای مکانی در دنیا، PostgreSQL بیش از پیش در مقابل رقبا به قدرتنمایی خواهد پرداخت. در نوشته بعدی در مورد افزونه مکانی PostGIS به شما آموزش هایی را ارایه خواهیم کرد.
اطلاعات بیشتر
برای کسب اطلاعات بیشتر در مورد PostgreSQL میتوانید به منابع زیر مراجعه نمایید:
- Wiki wiki.postgresql.org
- وب سایت www.postgresql.org www.PostGIS.org www.pgadmin.org
- لیستهای ایمیل postgresql.org/community/lists
سلام نقشه ناحیه ها به همراه جمعیت نواحی رو لازم دارم لطفا برام بفرستید
با سلام کاربر گرامی لطفا از بخش پنل کاربری خود تیکت ارسال فرمایید و مشخصات کامل نقشه در خواستی را ارسال فرمایید تا از همان طریق برایتان ارسال بشود.
بااحترام و تشکر از شما
سلام استاد
خدا قوت
چندماهی هست با PostgreSql کار میکنم و الان مشکل جدی من پیدا نکردن یک سورس کنترل خوب هست
میتونید راهنمایی بفرمایید
متشکرم
درود بر شما
پرسش شما باید دقیق تر شود. سورس کنترل ها معمولا برای مدیریت نسخه های مختلف از سورس کدهایی هستند که با یک زبان برنامه نویسی نوشته می شوند. ارتباط سورس کنترل با PostgreSQL را اینجا متوجه نشدم. لطفا بیشتر توضیح دهید.
جهت آگاهی، برخی از سورس کنترل های معروف: TFS, GIT, SVN و… می باشند.
سپاس