PostgreSQL ( POHST-gres-kew-EL), जिसे Postgres के नाम से भी जाना जाता है, एक मुफ्त और ओपन-सोर्स रिलेशनल डेटाबेस प्रबंधन प्रणाली (RDBMS) है जो विस्तारशीलता और SQL अनुपालन पर जोर देती है। डेटाबेस में परमाणुता, संगति, अलगाव और स्थायित्व (ACID) गुणों वाले लेनदेन की सुविधा है, साथ ह स्वचालित रूप से अपडेट होने वाले दृश्य, मटेरियलाइज्ड दृश्य, ट्रिगर, विदेशी कुंजियाँ और संग्रहीत प्रक्रियाएँ भी शामिल हैं। यह Windows, Linux, macOS, FreeBSD और OpenBSD सहित सभी प्रमुख ऑपरेटिंग सिस्टम पर समर्थित है, और एकल मशीनों से लेकर डेटा वेयरहाउस, डेटा लेक, या कई समवर्ती उपयोगकर्ताओं वाली वेब सेवाओं तक विभिन्न प्रकार के कार्यभार संभालता है।
PostgreSQL ग्लोबल डेवलपमेंट ग्रुप केवल एक डेटाबेस इंजन और निकट से संबंधित घटकों को विकसित करने पर ध्यान केंद्रित करता है। यह कोर तकनीकी रूप से वही है जो PostgreSQL को स्वयं बनाता है, लेकिन एक व्यापक डेवलपर समुदाय और पारिस्थितिकी तंत्र अन्य महत्वपूर्ण फीचर सेट प्रदान करता है जो पारंपरिक रूप से एक मालिकाना सॉफ्टवेयर विक्रेता द्वारा प्रदान किए जा सकते हैं। इनमें विशेष-उद्देश्य वाले डेटाबेस इंजन फीचर शामिल हैं, जैसे कि भू-स्थानिक या अस्थायी डेटाबेस का समर्थन करने के लिए आवश्यक, या ऐसे फीचर जो अन्य डेटाबेस उत्पादों का अनुकरण करते हैं। तीसरे पक्षों से उपयोगकर्ता और मशीन इंटरफ़ेस सुविधाओं की एक विस्तृत विविधता भी उपलब्ध है, जैसे ग्राफिकल यूज़र इंटरफ़ेस या लोड संतुलन और उच्च उपलब्धता टूलसेट। लोगों, कंपनियों, उत्पादों और परियोजनाओं का बड़ा तृतीय-पक्ष PostgreSQL समर्थन नेटवर्क, भले ही PostgreSQL डेवलपमेंट ग्रुप का हिस्सा न हो, डेटाबेस इंजन को अपनाने और उपयोग के लिए आवश्यक है और व्यापक रूप से PostgreSQL पारिस्थितिकी तंत्र का निर्माण करता है।
इतिहास
Ingres और विश्वविद्यालय POSTGRES (1982-1994)
PostgreSQL कैलिफोर्निया विश्वविद्यालय, बर्कले में Ingres परियोजना से विकसित हुआ। 1982 में, Ingres टीम के नेता, Michael Stonebraker ने Ingres का एक मालिकाना संस्करण बनाने के लिए बर्कले छोड़ दिया। वह 1985 में बर्कले लौट आए और समकालीन डेटाबेस प्रणालियों की समस्याओं को हल करने के लिए एक पोस्ट-Ingres परियोजना शुरू की, जो 1980 के दशक की शुरुआत में तेजी से स्पष्ट हो गई थीं। उन्होंने इन और अन्य परियोजनाओं के लिए और उनमें अग्रणी तकनीकों के लिए 2014 में ट्यूरिंग अवार्ड जीता।
नई परियोजना, POSTGRES, का उद्देश्य डेटा प्रकारों को पूरी तरह से समर्थन देने के लिए आवश्यक न्यूनतम सुविधाओं को जोड़ना था। इन सुविधाओं में प्रकारों को परिभाषित करने और संबंधों का पूरी तरह से वर्णन करने की क्षमता शामिल थी, जो व्यापक रूप से उपयोग की जाती थी लेकिन पूरी तरह से उपयोगकर्ता द्वारा बनाए रखी जाती थी। POSTGRES में, डेटाबेस संबंधों को समझता था और नियमों का उपयोग करके संबंधित तालिकाओं में जानकारी को स्वाभाविक रूप से पुनर्प्राप्त कर सकता था। POSTGRES ने Ingres के कई विचारों का उपयोग किया लेकिन इसका कोड नहीं।
1986 से शुरू होकर, प्रकाशित पेपरों ने प्रणाली के आधार का वर्णन किया, और एक प्रोटोटाइप संस्करण 1988 के ACM SIGMOD सम्मेलन में दिखाया गया। टीम ने जून 1989 में संस्करण 1 को कुछ उपयोगकर्ताओं के लिए जारी किया, उसके बाद जून 1990 में एक पुनर्लिखित नियम प्रणाली के साथ संस्करण 2 जारी किया। संस्करण 3, जो 1991 में जारी हुआ, ने फिर से नियम प्रणाली को फिर से लिखा और कई स्टोरेज प्रबंधकों के लिए समर्थन और एक बेहतर क्वेरी इंजन जोड़ा। 1993 तक, उपयोगकर्ताओं की संख्या ने समर्थन और सुविधाओं के अनुरोधों के साथ परियोजना को अभिभूत करना शुरू कर दिया। 30 जून 1994 को संस्करण 4.2 जारी करने के बाद, मुख्य रूप से एक सफाई, परियोजना समाप्त हो गई। बर्कले ने POSTGRES को एक MIT लाइसेंस संस्करण के तहत जारी किया, जिसने अन्य डेवलपर्स को किसी भी उपयोग के लिए कोड का उपयोग करने में सक्षम बनाया। उस समय, POSTGRES ने एक Ingres-प्रभावित POSTQUEL क्वेरी भाषा इंटरप्रेटर का उपयोग किया, जिसे monitor नामक कंसोल एप्लिकेशन के साथ इंटरैक्टिव रूप से उपयोग किया जा सकता था।
Postgres95 (1994-1996)
1994 में, बर्कले स्नातक छात्रों Andrew Yu और Jolly Chen ने POSTQUEL क्वेरी भाषा इंटरप्रेटर को SQL क्वेरी भाषा के लिए एक के साथ बदल दिया, जिससे Postgres95 बनाया गया। monitor कंसोल को भी psql द्वारा बदल दिया गया। Yu और Chen ने 5 मई 1995 को बीटा परीक्षकों के लिए पहला संस्करण (0.01) घोषित किया। Postgres95 का संस्करण 1.0 5 सितंबर 1995 को एक अधिक उदार लाइसेंस के साथ घोषित किया गया था जिसने सॉफ्टवेयर को स्वतंत्र रूप से संशोधित करने योग्य बना दिया।
8 जुलाई 1996 को, Hub.org Networking Services में Marc Fournier ने ओपन-सोर्स विकास प्रयास के लिए पहला गैर-विश्वविद्यालय विकास सर्वर प्रदान किया। Bruce Momjian और Vadim B. Mikheev की भागीदारी के साथ, बर्कले से विरासत में मिले कोड को स्थिर करने का काम शुरू हुआ।
PostgreSQL (1996-वर्तमान)
1996 में, SQL के लिए अपने समर्थन को दर्शाने के लिए परियोजना का नाम बदलकर PostgreSQL कर दिया गया। वेबसाइट PostgreSQL.org पर ऑनलाइन उपस्थिति 22 अक्टूबर 1996 को शुरू हुई। पहला PostgreSQL रिलीज़ 29 जनवरी 1997 को संस्करण 6.0 बना। तब से, दुनिया भर के डेवलपर्स और स्वयंसेवकों ने सॉफ्टवेयर को The PostgreSQL Global Development Group के रूप में बनाए रखा है।
परियोजना अपने मुफ्त और ओपन-सोर्स सॉफ्टवेयर PostgreSQL लाइसेंस के तहत रिलीज़ उपलब्ध कराना जारी रखती है। कोड मालिकाना विक्रेताओं, समर्थन कंपनियों और ओपन-सोर्स प्रोग्रामरों के योगदान से आता है।
PostgreSQL 18, जो 25 सितंबर 2025 को जारी हुआ, ने एक नया अतुल्यकालिक I/O (AIO) सबसिस्टम पेश किया, जो डेटाबेस उपयोगकर्ताओं को रीडहेड और अनुक्रमिक स्कैन जैसे समवर्ती I/O कार्य करने में सक्षम बनाता है और कुछ कार्यभार में स्टोरेज रीड के लिए 3x तक प्रदर्शन सुधार प्रदर्शित करता है। रिलीज़ ने प्लानर आँकड़ों को प्रमुख-संस्करण अपग्रेड में बने रहने के लिए समर्थन भी जोड़ा, जिससे प्रदर्शन गिरावट कम हुई जो पहले अपग्रेड के बाद आँकड़ों के पुनर्निर्माण के दौरान होती थी। मध्य-2026 तक, PostgreSQL 19 बीटा परीक्षण में था, जिसकी सामान्य रिलीज़ वर्ष के अंत में होने की उम्मीद थी।
मल्टीवर्जन कंसुरेंसी कंट्रोल (MVCC)
PostgreSQL मल्टीवर्जन कंसुरेंसी कंट्रोल (MVCC) के माध्यम से समवर्तीता का प्रबंधन करता है, जो प्रत्येक लेनदेन को डेटाबेस का एक "स्नैपशॉट" देता है, जिससे अन्य लेनदेन को प्रभावित किए बिना परिवर्तन किए जा सकते हैं। यह काफी हद तक रीड लॉक की आवश्यकता को समाप्त करता है और सुनिश्चित करता है कि डेटाबेस ACID सिद्धांतों को बनाए रखता है। PostgreSQL चार स्तरों के लेनदेन अलगाव प्रदान करता है: Read Uncommitted, Read Committed, Repeatable Read, और Serializable। चूंकि PostgreSQL डर्टी रीड से प्रतिरक्षित है, Read Uncommitted लेनदेन अलगाव स्तर का अनुरोध करने पर Read Committed प्रदान किया जाता है। PostgreSQL सीरियलाइज़ेबल स्नैपशॉट आइसोलेशन (SSI) विधि के माध्यम से पूर्ण सीरियलाइज़ेबिलिटी का समर्थन करता है। PostgreSQL MVCC कार्यान्वयन प्रदर्शन समस्याओं से ग्रस्त है जिसके लिए भारी लेखन लोड के तहत ट्यूनिंग की आवश्यकता होती है जो मौजूदा पंक्तियों को अपडेट करता है।
स्टोरेज और प्रतिकृति
प्रतिकृति
PostgreSQL में अंतर्निहित बाइनरी प्रतिकृति शामिल है जो परिवर्तनों (राइट-अहेड लॉग, या WAL) को अतुल्यकालिक रूप से प्रतिकृति नोड्स तक भेजने पर आधारित है, जिसमें इन प्रतिकृति नोड्स के खिलाफ केवल-पढ़ने के लिए क्वेरी चलाने की क्षमता है। यह कई नोड्स के बीच रीड ट्रैफ़िक को कुशलता से विभाजित करने की अनुमति देता है। पहले का प्रतिकृति सॉफ्टवेयर जो समान रीड स्केलिंग की अनुमति देता था, आमतौर पर ट्रिगर-आधारित समाधानों पर निर्भर करता था, जो कम मजबूत थे। सिंक्रोनस प्रतिकृति भी उपलब्ध है, यह सुनिश्चित करती है कि एक लेनदेन केवल तभी प्रतिबद्ध होता है जब इसे कम से कम एक स्टैंडबाय सर्वर पर लिखा गया हो, उच्च विलंबता की कीमत पर मजबूत स्थायित्व गारंटी प्रदान करता है।
स्टोरेज और अनुक्रमण
PostgreSQL विभिन्न प्रकार की स्टोरेज और अनुक्रमण तकनीकों का समर्थन करता है। डिफ़ॉल्ट हीप स्टोरेज पृष्ठों में पंक्तियों को व्यवस्थित करता है, और कई इंडेक्स प्रकार उपलब्ध हैं, जिनमें B-tree, hash, GiST, SP-GiST, GIN और BRIN शामिल हैं। ये इंडेक्स विभिन्न डेटा प्रकारों और एक्सेस पैटर्न के लिए कुशल क्वेरी का समर्थन करते हैं। तालिका विभाजन, जो पहले के संस्करणों में पेश किया गया था और समय के साथ बढ़ाया गया, बड़ी तालिकाओं को छोटे, अधिक प्रबंधनीय टुकड़ों में विभाजित करने की अनुमति देता है, जिससे क्वेरी प्रदर्शन और रखरखाव संचालन में सुधार होता है। सिस्टम टेबलस्पेस का भी समर्थन करता है, जिससे प्रशासक डिस्क पर भौतिक स्टोरेज प्लेसमेंट को नियंत्रित कर सकते हैं।
विस्तारशीलता और डेटा प्रकार
PostgreSQL की एक परिभाषित विशेषता इसकी विस्तारशीलता है। उपयोगकर्ता कस्टम डेटा प्रकार, ऑपरेटर, इंडेक्स विधियाँ और फ़ंक्शन परिभाषित कर सकते हैं। इस विस्तारशीलता ने भू-स्थानिक डेटा के लिए PostGIS जैसे विशेष एक्सटेंशन के विकास को जन्म दिया है, जो भौगोलिक वस्तुओं और स्थानिक क्वेरी के लिए समर्थन जोड़ता है। अन्य एक्सटेंशन पूर्ण-पाठ खोज क्षमताएँ, कुंजी-मूल्य स्टोर कार्यक्षमता और बाहरी सिस्टम के साथ एकीकरण प्रदान करते हैं। एक्सटेंशन तंत्र तृतीय-पक्ष डेवलपर्स को कोर डेटाबेस इंजन को संशोधित किए बिना सुविधाएँ जोड़ने की अनुमति देता है, जो समृद्ध PostgreSQL पारिस्थितिकी तंत्र में योगदान देता है।
PostgreSQL मूल रूप से संख्यात्मक, स्ट्रिंग, दिनांक/समय, बूलियन और बाइनरी डेटा सहित डेटा प्रकारों की एक विस्तृत श्रृंखला का समर्थन करता है। इसमें सरणियों, JSON और JSONB (बाइनरी JSON), XML और नेटवर्क पता प्रकारों के लिए समर्थन भी शामिल है। JSONB प्रकार, विशेष रूप से, अर्ध-संरचित डेटा के कुशल भंडारण और क्वेरी की अनुमति देता है, जिससे PostgreSQL पारंपरिक रिलेशनल डेटा के साथ दस्तावेज़-उन्मुख कार्यभार के लिए एक व्यवहार्य विकल्प बन जाता है।
SQL अनुपालन और सुविधाएँ
PostgreSQL अपनी उच्च स्तर की SQL अनुपालन के लिए जाना जाता है। यह SQL मानक के एक बड़े हिस्से को लागू करता है, जिसमें जटिल क्वेरी, सबक्वेरी, विंडो फ़ंक्शन, सामान्य तालिका अभिव्यक्तियाँ (CTEs) और पुनरावर्ती क्वेरी शामिल हैं। डेटाबेस डेटा अखंडता को लागू करने के लिए विदेशी कुंजियाँ, चेक बाधाएँ, अद्वितीय बाधाएँ और प्राथमिक कुंजियों का समर्थन करता है। ट्रिगर, जो कई प्रक्रियात्मक भाषाओं में लिखे जा सकते हैं, डेटाबेस घटनाओं के जवाब में फ़ंक्शन के स्वचालित निष्पादन की अनुमति देते हैं।
संग्रहीत प्रक्रियाएँ और फ़ंक्शन कई भाषाओं में लिखे जा सकते हैं, जिनमें PL/pgSQL (अंतर्निहित प्रक्रियात्मक भाषा), PL/Python, PL/Perl और PL/Tcl शामिल हैं। यह लचीलापन डेवलपर्स को व्यावसायिक तर्क को सीधे डेटाबेस में लागू करने में सक्षम बनाता है। PostgreSQL C में लिखे उपयोगकर्ता-परिभाषित फ़ंक्शन का भी समर्थन करता है, जो उच्च-प्रदर्शन कस्टम संचालन की अनुमति देता है। सिस्टम में एक परिष्कृत क्वेरी प्लानर और ऑप्टिमाइज़र शामिल है जो जटिल जॉइन ऑर्डर को संभाल सकता है और कुशल निष्पादन योजनाओं को चुनने के लिए आँकड़ों का उपयोग कर सकता है।
समुदाय और पारिस्थितिकी तंत्र
PostgreSQL ग्लोबल डेवलपमेंट ग्रुप कोर डेटाबेस इंजन के विकास का समन्वय करता है, लेकिन व्यापक पारिस्थितिकी तंत्र विशाल है। कई कंपनियाँ PostgreSQL के लिए वाणिज्यिक समर्थन, परामर्श और प्रशिक्षण प्रदान करती हैं। क्लाउड प्रदाता, जिनमें Amazon Web Services, Microsoft Azure और Google Cloud शामिल हैं, प्रबंधित PostgreSQL सेवाएँ प्रदान करते हैं, जिससे क्लाउड में डेटाबेस को तैनात करना और स्केल करना आसान हो जाता है। ये सेवाएँ बैकअप, पैचिंग और उच्च उपलब्धता जैसे परिचालन कार्यों को संभालती हैं, साथ ही अन्य क्लाउड-नेटिव टूल के साथ एकीकरण प्रदान करती हैं।
तृतीय-पक्ष उपकरण उपयोगिता और कार्यक्षमता को बढ़ाते हैं। pgAdmin जैसे ग्राफिकल यूज़र इंटरफ़ेस दृश्य प्रबंधन और क्वेरी उपकरण प्रदान करते हैं। Patroni और repmgr जैसे उच्च उपलब्धता और लोड संतुलन समाधान फेलओवर और क्लस्टर प्रबंधन को स्वचालित करते हैं। pgBackRest और Barman जैसे बैकअप उपकरण उन्नत बैकअप और पुनर्प्राप्ति सुविधाएँ प्रदान करते हैं। पारिस्थितिकी तंत्र में PgBouncer जैसे कनेक्शन पूलर भी शामिल हैं, जो कई समवर्ती कनेक्शन वाले अनुप्रयोगों के लिए प्रदर्शन में सुधार करते हैं।
उपयोग के मामले और अपनाना
PostgreSQL उद्योगों और अनुप्रयोगों की एक विस्तृत श्रृंखला में उपयोग किया जाता है। यह वेब अनुप्रयोगों, मोबाइल बैकएंड और उद्यम प्रणालियों के लिए प्राथमिक डेटाबेस के रूप में कार्य करता है। JSONB के लिए इसका समर्थन इसे उन अनुप्रयोगों के लिए आकर्षक बनाता है जिन्हें एक हाइब्रिड रिलेशनल और दस्तावेज़ स्टोर की आवश्यकता होती है। PostGIS द्वारा प्रदान की गई भू-स्थानिक क्षमताएँ स्थान-आधारित सेवाओं और भौगोलिक सूचना प्रणालियों (GIS) में व्यापक रूप से उपयोग की जाती हैं।
Artificial intelligence और Machine learning के क्षेत्र में, PostgreSQL तेजी से प्रशिक्षण और अनुमान पाइपलाइनों के लिए डेटा स्टोर के रूप में उपयोग किया जा रहा है। pgvector जैसे एक्सटेंशन वेक्टर एम्बेडिंग के कुशल भंडारण और क्वेरी की अनुमति देते हैं, जो Large language model अनुप्रयोगों और Generative AI प्रणालियों के लिए आवश्यक हैं। यह डेवलपर्स को अलग वेक्टर डेटाबेस की आवश्यकता को कम करते हुए, डेटाबेस के भीतर सीधे अर्थ संबंधी खोज और अनुशंसा प्रणाली बनाने में सक्षम बनाता है। डेटाबेस की मजबूती, विस्तारशीलता और ओपन-सोर्स लाइसेंस ने इसे स्टार्टअप से लेकर बड़े उद्यमों तक के संगठनों के लिए एक लोकप्रिय विकल्प बना दिया है।
लाइसेंसिंग और शासन
PostgreSQL लाइसेंस एक अनुमेय मुफ्त और ओपन-सोर्स लाइसेंस है, जो MIT लाइसेंस के समान है। यह उपयोगकर्ताओं को न्यूनतम प्रतिबंधों के साथ, वाणिज्यिक अनुप्रयोगों सहित किसी भी उद्देश्य के लिए सॉफ्टवेयर का उपयोग, संशोधन और वितरण करने की अनुमति देता है। लाइसेंस के लिए आवश्यक है कि कॉपीराइट नोटिस बनाए रखे जाएं और सॉफ्टवेयर बिना वारंटी के प्रदान किया जाए।
परियोजना डेवलपर्स और उपयोगकर्ताओं के एक समुदाय द्वारा शासित है, जिसमें एक कोर टीम प्रमुख निर्णयों की देखरेख करती है। विकास मेलिंग सूचियों और एक वार्षिक रिलीज़ चक्र द्वारा संचालित होता है, जिसमें प्रमुख संस्करण आमतौर पर पतझड़ में जारी होते हैं। शासन मॉडल पारदर्शिता और आम सहमति पर जोर देता है, जिसमें दुनिया भर के व्यक्तियों और कंपनियों के योगदान शामिल हैं। इस खुले शासन ने एक स्थिर और अभिनव विकास प्रक्रिया को बढ़ावा दिया है, यह सुनिश्चित करते हुए कि PostgreSQL एक अग्रणी डेटाबेस तकनीक बनी रहे।