پوسٹ گری ایس کیو ایل

**پوسٹ گرے ایس کیو ایل** (PostgreSQL) جسے مختصراً **پوسٹ گریس** (Postgres) بھی کہا جاتا ہے، ایک مفت اور آزاد-مصدر سافٹ ویئر ریلیشنل ڈیٹا بیس (RDBMS) ہے جو وسعت پذیری اور ایس کیو ایل کی پابندی پر زور دیتا ہے۔ پوسٹ گرے ایس کیو ایل میں ایسڈ  خصوصیات کے ساتھ ٹرانزیکشن پراسیسنگ کی سہولتیں شامل ہیں، جن میں ذراتیت، تسلسل، تنہائی اور پائیداری  شامل ہیں۔ اس کے علاوہ، یہ خودکار طور پر اپ ڈیٹ ہونے والے منظر، مادی منظر، محرکات، خارجی کلیدیں اور ذخیرہ شدہ طریقہ کار ) کی خصوصیات بھی فراہم کرتا ہے۔

یہ تمام بڑے آپریٹنگ سسٹمز پر کام کرتا ہے، جن میں مائیکروسافٹ ونڈوز، لینکس، میک او ایس، فری بی ایس ڈی (FreeBSD) اور اوپن بی ایس ڈی (OpenBSD) شامل ہیں۔ یہ سنگل مشینوں سے لے کر ڈیٹا گودام، ڈیٹا لیک (data lakes), یا بہت سے ہم عصر صارفین کے ساتھ ویب سروسز تک مختلف قسم کے ورک لوڈز کو سنبھال سکتا ہے۔

پوسٹ گرے ایس کیو ایل عالمی ترقیاتی گروپ (PostgreSQL Global Development Group) صرف ایک ڈیٹا بیس انجن اور اس سے قریبی متعلقہ اجزاء کی ترقی پر توجہ دیتا ہے۔ تکنیکی طور پر، یہی بنیادی حصہ پوسٹ گرے ایس کیو ایل پر مشتمل ہے، لیکن ایک وسیع ڈویلپر کمیونٹی اور ایکو سسٹم موجود ہے جو دیگر اہم فیچر سیٹ فراہم کرتا ہے جو روایتی طور پر ایک ملکیتی سافٹ ویئر  فراہم کنندہ کی طرف سے فراہم کیے جا سکتے ہیں۔ ان میں خصوصی مقصد کے ڈیٹا بیس انجن کی خصوصیات شامل ہیں، جیسے کہ جغرافیائی یا وقتی ڈیٹا بیس یا دیگر ڈیٹا بیس مصنوعات کی نقل کرنے والی خصوصیات شامل ہیں۔ اس کے علاوہ، تیسرے فریقوں کی جانب سے صارف اور مشین انٹرفیس کی مختلف خصوصیات بھی دستیاب ہیں، جیسے گرافیکل یوزر انٹرفیس یا بوجھ کا توازن (load balancing) اور اعلی دستیابی (high availability) ٹول سیٹ۔ تیسرے فریقوں کا وسیع پوسٹ گرے ایس کیو ایل سپورٹ نیٹ ورک، جو لوگوں، کمپنیوں، مصنوعات اور منصوبوں پر مشتمل ہے، اگرچہ وہ پوسٹ گرے ایس کیو ایل ترقیاتی گروپ کا حصہ نہیں ہیں، لیکن پوسٹ گرے ایس کیو ایل ڈیٹا بیس انجن کو اپنانے اور استعمال کرنے کے لیے ضروری ہیں اور وسیع پوسٹ گرے ایس کیو ایل ایکو سسٹم کی تشکیل کرتے ہیں۔

پوسٹ گرے ایس کیو ایل کا اصل نام **پوسٹ گریس** (POSTGRES) تھا، جو اس کی ابتدا کو جامعہ کیلیفورنیا، برکلی میں تیار کردہ انگریس (Ingres) ڈیٹا بیس کے جانشین کے طور پر ظاہر کرتا ہے۔ 1996 میں، اس منصوبے کا نام تبدیل کر کے پوسٹ گرے ایس کیو ایل رکھا گیا تاکہ ایس کیو ایل کے لیے اس کی حمایت کی عکاسی ہو سکے۔ 2007 میں ایک جائزے کے بعد، ترقیاتی ٹیم نے نام پوسٹ گرے ایس کیو ایل اور عرفی نام پوسٹ گریس کو برقرار رکھنے کا فیصلہ کیا۔

## تاریخ
### انگریس اور یونیورسٹی پوسٹ گریس (1982–1994)
پوسٹ گرے ایس کیو ایل کی ارتقا کیلیفورنیا یونیورسٹی، برکلی میں انگریس منصوبے سے ہوئی۔ 1982 میں، انگریس ٹیم کے رہنما، مائیکل اسٹون بریکر، انگریس کا ملکیتی ورژن بنانے کے لیے برکلی چھوڑ گئے۔ وہ 1985 میں برکلی واپس آئے اور ہم عصر ڈیٹا بیس سسٹمز کے ساتھ پیش آنے والے مسائل کو حل کرنے کے لیے ایک پوسٹ-انگریس منصوبے کا آغاز کیا جو 1980 کی دہائی کے اوائل میں تیزی سے واضح ہو گئے تھے۔ انھوں نے ان اور دیگر منصوبوں کے لیے 2014 میں ٹیورنگ ایوارڈ جیتا، اور ان میں اپنائی گئی تکنیکوں کے لیے۔

نئے منصوبے، پوسٹ گریس، کا مقصد نوع (types) کی مکمل حمایت کے لیے درکار کم سے کم خصوصیات کو شامل کرنا تھا۔ ان خصوصیات میں نوع کی تعریف کرنے اور تعلقات  کو مکمل طور پر بیان کرنے کی صلاحیت شامل تھی—ایک ایسی چیز جو بڑے پیمانے پر استعمال ہوتی تھی، لیکن مکمل طور پر صارف کی طرف سے برقرار رکھی جاتی تھی۔ پوسٹ گریس میں، ڈیٹا بیس تعلقات کو سمجھتا تھا اور 'قواعد' (rules) کا استعمال کرتے ہوئے متعلقہ میزوں میں معلومات کو قدرتی طریقے سے بازیافت (retrieve) کر سکتا تھا۔ پوسٹ گریس نے انگریس کے بہت سے خیالات کو استعمال کیا، لیکن اس کے کوڈ کو نہیں۔

1986 میں شروع ہونے والے، شائع شدہ مقالوں میں اس نظام کی بنیاد کو بیان کیا گیا اور 1988 کے اے سی ایم سگموڈ کانفرنس میں ایک پروٹوٹائپ ورژن دکھایا گیا۔ ٹیم نے جون 1989 میں ورژن 1 کو کم تعداد میں صارفین کے لیے جاری کیا، اس کے بعد جون 1990 میں ایک نئے سرے سے لکھے گئے قواعد کے نظام کے ساتھ ورژن 2 جاری کیا۔ ورژن 3، جو 1991 میں جاری ہوا، نے ایک بار پھر قواعد کے نظام کو دوبارہ لکھا اور متعدد سٹوریج منیجرز اور ایک بہتر کوئری انجن کے لیے حمایت شامل کی۔ 1993 تک، صارفین کی تعداد نے منصوبے کو حمایت اور خصوصیات کی درخواستوں سے مغلوب کرنا شروع کر دیا۔ 30 جون 1994 کو ورژن 4.2 جاری کرنے کے بعد—جو بنیادی طور پر ایک صفائی تھی—یہ منصوبہ ختم ہو گیا۔ برکلی نے پوسٹ گریس کو ایم آئی ٹی لائسنس کے ایک تغیر کے تحت جاری کیا، جس نے دیگر ڈویلپرز کو کسی بھی استعمال کے لیے کوڈ استعمال کرنے کے قابل بنایا۔ اس وقت، پوسٹ گریس ایک انگریس سے متاثرہ پوسٹ کوئل (POSTQUEL) استفسار زبان کے ترجمان کا استعمال کرتا تھا، جسے مانیٹر نامی کنسول ایپلیکیشن کے ساتھ تعاملی طور پر استعمال کیا جا سکتا تھا۔

```
### پوسٹ گریس 95 (1994–1996)
1994 میں، برکلی کے گریجویٹ طلبہ اینڈریو یو (Andrew Yu) اور جولی چن (Jolly Chen) نے پوسٹ کوئل (POSTQUEL) استفسار زبان کے ترجمان کو ایس کیو ایل (SQL) استفسار زبان کے ترجمان سے تبدیل کر دیا، جس سے پوسٹ گریس 95 (Postgres95) وجود میں آیا۔ مانیٹر کنسول کو بھی پی ایس کیو ایل (psql) سے تبدیل کر دیا گیا۔ یو اور چن نے 5 مئی 1995 کو سافٹ ویئر کی اشاعت کے مراحل کے لیے پہلا ورژن (0.01) کا اعلان کیا۔ پوسٹ گریس 95 کے ورژن 1.0 کا اعلان 5 ستمبر 1995 کو کیا گیا، جس میں ایک زیادہ لبرل لائسنس شامل تھا جو سافٹ ویئر کو آزادانہ طور پر قابل ترمیم بناتا تھا۔

8 جولائی 1996 کو، ہب ڈاٹ آرگ نیٹ ورکنگ سروسز (Hub.org Networking Services) کے مارک فورنیئر (Marc Fournier) نے اوپن سورس ترقیاتی کوشش کے لیے پہلا غیر یونیورسٹی ترقیاتی سرور فراہم کیا۔ بروس مومجیان (Bruce Momjian) اور وادیم بی میخائیف (Vadim B. Mikheev) کی شرکت سے، برکلی سے وراثت میں ملے کوڈ کو مستحکم کرنے کا کام شروع ہوا۔

### پوسٹ گرے ایس کیو ایل (1996–تاحال)
1996 میں، اس منصوبے کا نام بدل کر پوسٹ گرے ایس کیو ایل (PostgreSQL) رکھ دیا گیا تاکہ ایس کیو ایل کے لیے اس کی حمایت کی عکاسی ہو۔ ویب گاہ PostgreSQL.org پر آن لائن موجودگی کا آغاز 22 اکتوبر 1996 کو ہوا۔ پہلی پوسٹ گرے ایس کیو ایل ریلیز 29 جنوری 1997 کو ورژن 6.0 کی صورت میں بنی۔ تب سے دنیا بھر کے ڈویلپرز اور رضاکاروں نے اس سافٹ ویئر کو پوسٹ گرے ایس کیو ایل عالمی ترقیاتی گروپ کے طور پر برقرار رکھا ہے۔

یہ منصوبہ اپنے مفت اور آزاد-مصدر سافٹ ویئر پوسٹ گرے ایس کیو ایل لائسنس کے تحت ریلیز دستیاب کرنا جاری رکھے ہوئے ہے۔ کوڈ ملکیتی وینڈرز، سپورٹ کمپنیوں اور اوپن سورس پروگرامرز کے تعاون سے آتا ہے۔

2025 تک، پوسٹ گرے ایس کیو ایل بڑے ریلیز ورژن 18 پر ہے جو غیر ہم وقت ساز I/O (Asynchronous I/O - AIO) کو لاگو کرنے میں قابل ذکر ہے، جو ڈیٹا بیس صارفین کو ہم وقت ساز I/O کام انجام دینے کے قابل بناتا ہے جیسے ریڈ ہیڈ (readahead) اور ترتیب وار اسکین (sequential scan)۔

## کثیر ورژنی ہم وقتی کنٹرول (MVCC)
پوسٹ گرے ایس کیو ایل کثیر ورژنی ہم وقتی کنٹرول (Multiversion concurrency control - MVCC) کے ذریعے ہم وقتی کنٹرول کا انتظام کرتا ہے، جو ہر ٹرانزیکشن کو ڈیٹا بیس کا ایک "سنیپ شاٹ" دیتا ہے، جس سے دیگر ٹرانزیکشنز کو متاثر کیے بغیر تبدیلیاں کی جا سکتی ہیں۔ یہ بڑی حد تک ریڈ لاکس (read locks) کی ضرورت کو ختم کرتا ہے اور یقینی بناتا ہے کہ ڈیٹا بیس ایسڈ (ACID) اصولوں کو برقرار رکھے۔ پوسٹ گرے ایس کیو ایل ٹرانزیکشن تنہائی (transaction isolation) کی چار سطحیں پیش کرتا ہے: ریڈ ان کمٹڈ (Read Uncommitted)، ریڈ کمٹڈ (Read Committed)، ریپیٹیبل ریڈ (Repeatable Read) اور سیریلائز ایبل (Serializable)۔ چونکہ پوسٹ گرے ایس کیو ایل ڈرٹی ریڈز (dirty reads) سے محفوظ ہے، ریڈ ان کمٹڈ ٹرانزیکشن تنہائی کی سطح کی درخواست کرنے پر اس کی بجائے ریڈ کمٹڈ فراہم کی جاتی ہے۔ پوسٹ گرے ایس کیو ایل سیریلائز ایبل سنیپ شاٹ تنہائی (snapshot isolation - SSI) طریقہ کے ذریعے مکمل سیریلائزایبلٹی (serializability) کی حمایت کرتا ہے۔ پوسٹ گرے ایس کیو ایل MVCC کا نفاذ کارکردگی کے مسائل کا شکار ہوتا ہے جن کے لیے موجودہ قطاروں کو اپ ڈیٹ کرنے والے بھاری رائٹ لوڈ کے تحت ٹیوننگ کی ضرورت ہوتی ہے۔

## اسٹوریج اور نقل
### نقل
پوسٹ گرے ایس کیو ایل میں بلٹ ان بائنری نقل شامل ہے جو تبدیلیوں (رائٹ-ا ہیڈ لاگز (WAL)) کو ریپلیکا نوڈز پر غیر ہم وقت ساز طریقے سے بھیجنے پر مبنی ہے، جس میں ان نقل شدہ نوڈز کے خلاف ریڈ اونلی کوئریز چلانے کی صلاحیت ہوتی ہے۔ یہ ریڈ ٹریفک کو متعدد نوڈز کے درمیان مؤثر طریقے سے تقسیم کرنے کی اجازت دیتا ہے۔ ابتدائی نقل کا سافٹ ویئر جو اسی طرح کی ریڈ اسکیلنگ کی اجازت دیتا تھا وہ عام طور پر ماسٹر میں نقل کے محرکات (replication triggers) کو شامل کرنے پر انحصار کرتا تھا، جس سے بوجھ بڑھتا تھا۔

پوسٹ گرے ایس کیو ایل میں بلٹ ان ہم وقت ساز نقل شامل ہے جو یقینی بناتی ہے کہ ہر رائٹ ٹرانزیکشن کے لیے، ماسٹر اس وقت تک انتظار کرتا ہے جب تک کہ کم از کم ایک ریپلیکا نوڈ نے ڈیٹا کو اپنے ٹرانزیکشن لاگ میں نہ لکھ دیا ہو۔ دیگر ڈیٹا بیس سسٹمز کے برعکس، کسی ٹرانزیکشن کی پائیداری (خواہ وہ غیر ہم وقت ساز ہو یا ہم وقت ساز) کی وضاحت فی ڈیٹا بیس، فی صارف، فی سیشن یا حتیٰ کہ فی ٹرانزیکشن بھی کی جا سکتی ہے۔ یہ ان ورک لوڈز کے لیے مفید ہو سکتا ہے جن کو اس طرح کی گارنٹی کی ضرورت نہیں ہوتی اور تمام ڈیٹا کے لیے مطلوب نہیں ہو سکتا کیونکہ یہ ہم وقت ساز اسٹینڈ بائی تک ٹرانزیکشن پہنچنے کی تصدیق کی ضرورت کی وجہ سے کارکردگی کو سست کر دیتا ہے۔

اسٹینڈ بائی سرورز ہم وقت ساز یا غیر ہم وقت ساز ہو سکتے ہیں۔ ہم وقت ساز اسٹینڈ بائی سرورز کی ترتیب میں وضاحت کی جا سکتی ہے جو یہ طے کرتی ہے کہ کون سے سرورز ہم وقت ساز نقل کے لیے امیدوار ہیں۔ فہرست میں پہلا جو فعال طور پر اسٹریمنگ کر رہا ہے اسے موجودہ ہم وقت ساز سرور کے طور پر استعمال کیا جائے گا۔ جب یہ ناکام ہوتا ہے، تو نظام لائن میں اگلے پر فیل اوور ہو جاتا ہے۔

پوسٹ گرے ایس کیو ایل کی نقل پرائمری اور اسٹینڈ بائی سرورز کے درمیان تنازعات کو متحرک کر سکتی ہے، خاص طور پر جب جاری کوئریز ان تک رسائی حاصل کر رہی ہوں تب بھی ٹیپلز کو اسٹینڈ بائی سرور سے وقت سے پہلے حذف کر دیا جاتا ہے۔ اس کو حل کرنے کے لیے، پوسٹ گرے ایس کیو ایل میں ایک فیڈ بیک فلیگ شامل ہے جہاں اسٹینڈ بائی سرور اس قسم کے تنازع کو کم کرنے کے لیے جاری کوئریز کے بارے میں پرائمری سرور کو فعال طور پر مطلع کرتا ہے۔

ہم وقت ساز ملٹی-ماسٹر نقل پوسٹ گرے ایس کیو ایل کے کور میں شامل نہیں ہے۔ پوسٹ گرے ایس کیو ایل پر مبنی پوسٹ گریس-ایکس سی (Postgres-XC) قابل توسیع ہم وقت ساز ملٹی-ماسٹر نقل فراہم کرتا ہے۔ یہ پوسٹ گرے ایس کیو ایل جیسا لائسنس یافتہ ہے۔ ایک متعلقہ منصوبہ پوسٹ گریس-ایکس ایل (Postgres-XL) کہلاتا ہے۔ پوسٹ گریس-آر (Postgres-R) ایک اور فورک ہے۔ بائی ڈائریکشنل ریپلیکیشن (BDR) پوسٹ گرے ایس کیو ایل کے لیے ایک غیر ہم وقت ساز ملٹی-ماسٹر نقل کا نظام ہے۔

repmgr جیسے ٹولز نقل کے کلسٹرز کا انتظام آسان بناتے ہیں۔

متعدد غیر ہم وقت ساز ٹرگر پر مبنی نقل کے پیکیجز دستیاب ہیں۔ یہ مکمل ڈیٹا بیس کلسٹر کی بائنری نقل کے لیے نامناسب حالات میں، توسیع شدہ بنیادی صلاحیتوں کے تعارف کے بعد بھی کارآمد رہتے ہیں:
* سلونی-آئی (Slony-I)
* لونڈیسٹے (Londiste)، جو اسکائی ٹولز (SkyTools) کا حصہ ہے (جسے سکائپ نے تیار کیا)
* بوکارڈو (Bucardo) ملٹی-ماسٹر نقل (جسے Backcountry.com نے تیار کیا)
* سیمیٹرک ڈی ایس (SymmetricDS) ملٹی-ماسٹر، ملٹی ٹیر نقل

## حوالہ جات

## بیرونی روابط

* , and wiki
* A Software Catalog of related projects and products
* The official Main Source Code Repository (for browsing), and the Developer FAQ
* The official Reference for PostgreSQL Documentation Authors
* All official PostgreSQL Source Code Repositories
* 

زمرہ:سی میں پروگرام شدہ مفت سافٹویئر
زمرہ:کراس پلیٹ فارم سافٹ ویئر
زمرہ:1996ء کے سافٹ ویئر