نقش مهم دیتابیس در ذخیره اطلاعات بر هیچکس پوشیده نیست. پایگاهداده یا دیتابیس همان برنامه یا فضایی است که میتوان در آن دادهها را ذخیره، ویرایش، اضافه یا حذف کرد. بهاینترتیب مدیریت دادهها ساده میشود و شما بهراحتی به دیتایی که میخواهید، دسترسی دارید. پستگرس (PostgreSQL) سیستم پایگاهداده شیءگرا، رابطهای بوده که قدرتمند و متنباز است. این دیتابیس از زبان SQL استفاده کرده و دادهها به بهترین شکل ذخیره و مقیاس میکند.
PostgreSQL چیست؟
پستگرس، سیستم مدیریت پایگاهداده مبتنی بر SQL ،رابطهای، رایگان و متنباز است. این سیستم مدیریت از SQL و JSON و بسیاری از عملگرهای از پیشتعیینشده برای کوئریهای رابطهای و غیررابطهای جهت توسعهپذیری و انطباق SQL پشتیبانی میکند.
این پایگاهداده تقریباً برای لینوکس، ویندوز و macOS دردسترس است و اطلاعات را بهخوبی ذخیره میکند. پستگرس در گذشته «Postgre» نامگذاری شد و حالا کاربردهای زیادی دارد. در ادامه این مقاله به کاربردهای PostgreSQL میپردازیم.
تاریخچه کوتاه پستگرس
تکنولوژی پستگرس (PostgreSQL) را Michael Stonebraker از دانشگاه Berkeley توسعه داد. همانطور که از نام آن پیداست، Postgres در سال 1986 بهعنوان یک تکامل Post-INGRES از یک RDBMS معرفی شد که به دنبال پرکردن شکافهای پیادهسازیهای موجود بود.
پستگرس با هدف ترکیب مدلهای داده شیءگرا (بهعنوانمثال، سیستم مدیریت پایگاهداده رابطهای شی)، برای اضافهکردن انواع پشتیبانی کامل و توانایی تعریف انواع و افزودن توانایی توصیف کامل روابط ایجاد شد. این فناوری، بر خلاف سیستمهای قبلی، روابط را درک میکرد و میتوانست اطلاعات را در جداول مرتبط به روشی طبیعی با استفاده از قوانین بازیابی کند.
Postgres تا سال 1994 از زبان کوئری POSTQUEL استفاده میکرد؛ اما درPostgres95 با پشتیبانی از زبان SQL جایگزین شد. در سال 1996، پروژه PostgreSQL نام خود را تغییر داد تا هم رابطه خود را با پروژه اصلی Postgres و هم قابلیت جدیدتر SQL را نشان دهد. در حال حاضر پروژه PostgreSQL به انتشار عمده ادامه میدهد و همه چیز تحت یک مجوز رایگان و منبعباز در دسترس است.
جدول زمانی برخی از رویدادهای مهم پستگرس (PostgreSQL) برای سیستمهای مدیریت پایگاهداده به شرح زیر است:
- 1969 CODASYL اولین مشخصات مدل پایگاهداده شبکه را منتشر کرد.
- 1970 کار اصلی آن در مورد مدل رابطهای دادهها منتشر شد.
- 1973 IBM کارهایی را منتشر کرد که به SystemR معروف شدند.
- در 1974 SystemR (SQL) ایجاد شد.
- در 1974 INGRES (QUEL) منتشر شد.
- در 1979 Oracle (SQL) ایجاد شد.
- در 1986 POSTGRES (POSTQUEL) منتشر شد.
- در سال 1994 Postgres95 (SQL) منتشر شد.
- و در آخر در 1996 PostgreSQL (SQL) منتشر شد.
پایگاهداده رابطهای چیست؟
یک پایگاهداده رابطهای، دادهها را در ردیفها و ستونها سازماندهی میکند که در مجموع یک جدول را تشکیل میدهد. دادهها معمولاً در چندین جداول ساخته میشوند که میتوانند از طریق یک کلید اولیه یا یک کلید خارجی به یکدیگر متصل شوند.
این شناسههای منحصربهفرد در پستگرس (PostgreSQL) ، روابط مختلفی را که بین جداول وجود دارد، نشان میدهند و این روابط معمولاً از طریق انواع مختلف مدلهای داده نشان داده میشوند. تحلیلگران از کوئریهای SQL برای ترکیب نقاط داده مختلف و خلاصهکردن عملکرد کسبوکار استفاده میکنند و به سازمانها اجازه میدهند بینش به دست آورند، گردش کار را بهینه کنند و فرصتهای جدید را شناسایی کنند.
بهعنوانمثال، تصور کنید شرکت شما یک جدول پایگاهداده با اطلاعات مشتری که حاوی اطلاعات شرکت در سطح حساب است، نگهداری میکند. همچنین ممکن است جدول متفاوتی وجود داشته باشد که تمام تراکنشهای فردی را که با آن حساب هماهنگ میشوند، توصیف میکند. این جداول با هم میتوانند
اطلاعاتی درمورد صنایع مختلفی که یک محصول نرمافزاری خاص را خریداری میکنند ارائه دهند.
ستونها (فیلدهای) جدول مشتری ممکن است شناسه مشتری، نام شرکت، آدرس شرکت، صنعت و غیره باشد. همچنین ستونهای جدول تراکنش ممکن است تاریخ تراکنش، شناسه مشتری، مبلغ تراکنش، روش پرداخت و غیره را در برگیرد.
جداول را میتوان با فیلد مشترک شناسه مشتری به هم متصل کرد؛ بنابراین، میتوانید از جدول جستجو کنید تا گزارشهای ارزشمندی تهیه شود. برای مثال تهیه گزارشهای فروش توسط صنعت یا شرکت که میتواند پیامرسانی به مشتریان احتمالی را اطلاع دهد، با این کار ممکن است.
ارتباط پایگاه دادهها
پایگاههای اطلاعاتی رابطهای نیز معمولاً با پایگاههای داده تراکنشی مرتبط هستند و دستورات یا تراکنشها را بهصورت جمعی اجرا میکنند. یک مثال محبوب که برای نشاندادن این مورد استفاده میشود، انتقال بانکی است. مبلغ تعریف شده از یک حساب برداشت میشود و سپس در حساب دیگری واریز میشود. معاملات دارای ویژگیهای خاصی هستند که با نام اختصاری ACID نشان داده میشود. ویژگیهای آن در پستگرس (PostgreSQL) بهصورت زیر تعریف میشوند:
اتمی: تمام تغییرات دادهها بهگونهای انجام میشود که گویی یک عملیات واحد هستند. یعنی تمام تغییرات انجام میشود یا هیچکدام انجام نمیشود.
سازگاری: دادهها از حالت تا پایان در یک حالت ثابت باقی میمانند و یکپارچگی دادهها را تقویت میکنند.
جداسازی: حالت میانی یک تراکنش برای سایر تراکنشها قابلمشاهده نیست و در نتیجه تراکنشهایی که همزمان اجرا میشوند سریالی به نظر میرسند.
دوام: پس از اتمام موفقیتآمیز تراکنش، تغییرات در دادهها باقی میماند و حتی در صورت خرابی سیستم، لغو نمیشود.
این ویژگیها پردازش تراکنش قابلاعتماد را امکانپذیر میکند.
پستگرس چگونه کار میکند؟
به عبارت ساده، پستگرس (PostgreSQL) سیستمی است که به شما در مدیریت پایگاهدادههای عظیم خود با پنهانکردن جزئیات پیچیده زیرین کمک میکند. بیایید آن را با قیاس یک ماشین درک کنیم. وقتی با ماشین رانندگی میکنید، اگر پدال گاز را فشار دهید و دنده را عوض کنید، سرعت تغییر میکند. در این شرایط نیازی نیست شما بدانید که چه اتفاقی برای موتور و سایر سیستمهای ماشین میافتد.
وقتی صحبت از پایگاههای داده میشود، Postgres همین کار را برای ما انجام میدهد. شما فقط یک کوئری ساده انگلیسی مینویسید و نتایج دلخواه را به شما میدهد؛ درحالیکه تمام فرایندهای پرپیچوخم را پنهان میکند. این بهینهسازی را برای شما انجام میدهد که کار شما را سریع میکند.
وقتی کوئری زیر به Postgres میرود:
INSERT INTO table_name (col_1, col_2) VALUES(val_1, val_2)
فرایند زیر رخ میدهد:
- تجزیه
- تحلیل و بازنویسی
- طرحریزی
- اجراکردن
معماری پستگرس چگونه است؟
برای بررسی این پایگاه داده باید عملکرد سیستم را بررسی کرد. توجه کنید که در این پایگاه داده قبل از هرچیز مشتری درخواستی را به سرور پستگرس (PostgreSQL) ارسال می کند. بعد از آن سرور آن را با استفاده از بافرهای مشترک و فرآیندهای پسزمینه پردازش می کند و سپس فایلهای پردازش شده ارسال، دریافت یا ذخیره میشوند.
ساختار فیزیکی این دیتابیس بسیار ساده است و شامل حافظه مشترک و چند پردازش پس زمینه و فایل داده میشود.
حافظه مشترک
حافظه اشتراکی، به حافظه ای اطلاق می شود که برای کش پایگاه داده و ذخیره گزارش تراکنش ها ایجاد شده است. مهمترین عناصر موجود در حافظه مشترک، بافرهای مشترک و WAL هستند.
بافر مشترک
هدف مشترک بافر، به حداقل رساندن DISK IO است و برای این منظور باید اصول زیر رعایت شود:
- شما باید بهسرعت به بافرهای بسیار بزرگ (دهها، صدها گیگابایت) دسترسی داشته باشید.
- هنگامی که بسیاری از کاربران بهطور همزمان به آن دسترسی دارند، باید اختلاف را به حداقل برسانید.
- بلوکهای پر استفاده باید تا زمانی که ممکن است در بافر باشند.
بافر WAL
بافر WAL بافری است که بهطورموقت تغییرات را در پایگاه داده ذخیره میکند. محتویات ذخیرهشده در بافر WAL در یک زمان از پیش تعیین شده در فایل WAL نوشته می شود. از نظر پشتیبانگیری و بازیابی، بافرهای WAL و فایل های WAL بسیار مهم هستند.
کاربردهای پستگرس
همانطور که گفتیم این دیتابیس یک سیستم پایگاهداده شی – رابطهای قدرتمند و منبع باز است که به دلیل پایداری بالا، عملکرد خوبی ارائه میدهد. پستگرس (PostgreSQL) اولین DBMS بود که ویژگی کنترل همزمان چند نسخه (MVCC) را پیادهسازی کرد. بیایید تا کاربردهای این پایگاهداده را باهم بررسی کنیم:
- به توسعهدهندگان در ساخت اپلیکیشن کمک میکند.
- به مدیران اجازه میدهد تا با محافظت از یکپارچگی دادهها، محیطی مقاوم در برابر خطا ایجاد کنند.
- سازگار با پلتفرمهای مختلف با استفاده از تمام زبانهای اصلی و میان افزار است.
- پیچیدهترین مکانیسم قفل را ارائه میدهد.
- از کنترل همزمان چند نسخه پشتیبانی میکند.
- مطابق با استاندارد ANSI SQL است.
- معماری شبکه مشتری – سرور کاملاً پشتیبانی میکند.
- شی گرا و سازگار با ANSI-SQL2008 است.
- کاملاً در دسترس است.
مزایای پایگاهداده پستگرس
درمورد این پایگاهداده توضیحاتی ارائه دادیم و حالا میخواهیم مزایای آن را باهم بررسی کنیم:
- این دیتابیس میتواند وبسایتها و برنامههای وب پویا را بهعنوان یک گزینه LAMP اجرا کند.
- کد منبع پستگرس (PostgreSQL) بهصورت رایگان تحت مجوز منبعباز در دسترس است. این موضوع به شما اجازه میدهد تا بر اساس نیازهای تجاری خود از آن استفاده کنید، آن را تغییر دهید و اجرا کنید.
- این پایگاهداده از اشیا جغرافیایی پشتیبانی میکند، بنابراین میتوانید از آن برای سرویسهای مبتنی بر مکان و سیستمهای اطلاعات جغرافیایی استفاده کنید.
- برای یادگیری آن به آموزش زیادی نیاز ندارید؛ زیرا استفاده از آن آسان است.
- با پلتفرمهای مختلف با استفاده از تمام زبانهای اصلی و میان افزار سازگاری دارد.
- رایگان است و نیازی نیست شما هزینهای بپردازید.
- یکی از ویژگیهای پستگرس این است که میتواند وبسایتها و برنامههای وب پویا را بهعنوان گزینهای در پشته LAMP اجرا کند.
- همچنین این دیتابیس از دادههای JSON پشتیبانی میکند.
- امنیت بالایی دارد.
- سیستمهای احراز هویت قوی، کنترل دسترسی و مدیریت امتیاز دارد.
- میتوان متن را بهصورت کامل جستجو کرد.
- کامنتها به یکدیگر پیوست داده میشوند.
- شما میتوانید توابع سفارشی بسازید.
شرکتهای بزرگی که از postgresql استفاده میکنند
پستگرس (PostgreSQL) یک پروژه منبعباز است که توسط گروه توسعه جهانی PostgreSQL مدیریت میشود و با استفاده از مجوز Open Source Initiative به رسمیت شناخته شده است. درحالیکه بسیاری از پایگاههای داده رابطهای منبعباز دیگر وجود دارد، PostgreSQL بدون مالک شرکت یا همتای تجاری توسعه و مدیریت میشود. این امر به مشارکتکنندگان کمک میکند مسیر خود را ترسیم کنند و روی ویژگیهایی کار کنند که جامعه بیشتر به آنها اهمیت میدهد.
چند شرکت بزرگی که از این دیتابیس استفاده میکنند:
- Apple
- BioPharm
- Etsy
- IMDB
- Macworld
- Debian
- Fujitsu
- Red Hat
- Sun Microsystem
- Cisco
- Skype
توسعهدهندگان و پستگرس
اگر توسعهدهنده نرمافزار هستید از پستگرس (PostgreSQL) استفاده کنید. این واقعیت که پستگرس منبعباز بوده و استفاده از آن را در هر نوع پروژه، چه تجاری و چه شخصی ممکن است، مقیاسپذیری خوبی را در پروژهها فراهم میکند.
این دیتابیس یک پایگاهداده قابل توسعه است؛ بنابراین اگر بهطور ناگهانی عملکردهای خاصی را نداشته باشد، توسعهدهنده میتواند آنها را برنامهریزی کند. همچنین باتوجه به آنچه گفتیم، این پایگاهداده دارای زبانی به نام PGSQL بوده که نمونهای از PostgreSQL است و نهتنها به ایجاد رویهها بلکه به زبانهای برنامهنویسی دیگر مانند Python نیز اجازه میدهد تا توابع ایجاد کند. این امر برای برنامهنویسها اهمیت زیادی دارد و کاربردهای زیادی برایشان فراهم میکند
PostgreSQL ORDER BY چگونه کار می کند؟
مرتب سازی PostgreSQL ORDER BY بر اساس ترتیب صعودی یا نزولی است. برای بازیابی داده ها به ترتیب مرتب شده می توانیم از یک یا چند ستون در کوئری استفاده کنیم. اگر هیچ تابع مرتبسازی را در یک کوئری تعریف نکرده باشیم، این بند دادهها را بهطور پیشفرض به ترتیب صعودی بازیابی میکند.
تفاوت PostgreSQL با MySQL
MySQL یک ساختار چندبعدی LAMP بسیار مستقر است که شامل یک سیستمعامل مبتنی بر لینوکس، یک وب سرور آپاچی، یک پایگاهداده MySQL و PHP برای پردازش میشود و برای ذخیره اطلاعات در طیف گستردهای از برنامههای کاربردی پیشرو، سایتها مورداستفاده قرار میگیرد. برنامههای کاربردی امنیت دادهها و پشتیبانی پردازش تراکنشها که با جدیدترین نسخه MySQL ارائه میشود که ممکن است برای هر سازمانی حتی شما بسیار سودمند باشد، بهخصوص اگر یک شرکت تجارت الکترونیک با تراکنشهای ارزی داشته باشید!
جمعبندی
در این مقاله بررسی کردیم که پستگرس (PostgreSQL) یک سیستم مدیریت پایگاهداده منبع بازی است که در ابتدا Postgres نامیده میشد. پستگرس توسط استاد علوم کامپیوتر، مایکل استون برکر و تیمش ایجاد شد. همانطور که گفتیم، یکی از مزایای PostgreSQL سازگاریاش با پلتفرمهای مختلف با استفاده از تمام زبانهای اصلی و میان افزار است.
همچنین شما دیگر نیازی به پرداخت هزینه ندارید و با استفاده از این دیتابیس هزینههایتان کاهش مییابد. این پایگاهداده از دادههای JSON پشتیبانی میکند و به همین دلیل اهمیت زیادی مخصوصاً برای توسعهدهندگان نرماپستگرس (PostgreSQL) پایگاه داده رایگان و منبع باز است که به دلیل داشتن کاربردهای متعدد توسعهدهندگان به استفاده از آن روی آوردهاند.