PostgreSQL के सभी कोर स्कीमा ऑब्जेक्ट — संरचना, टेबल, व्यू, इंडेक्स, टाइप, पहचान, रूटीन, सुरक्षा और रेप्लिकेशन — एक ही सघन रेफरेंस में।
PostgreSQL डेटा को नाम वाले स्कीमा ऑब्जेक्ट्स में रखता है। हर ऑब्जेक्ट का एक ही काम है: टेबल rows रखती है, इंडेक्स खोज को तेज़ करता है, रूटीन लॉजिक रखती है। कौन-सा ऑब्जेक्ट जोड़ना है यह चुनने से पहले जान लें कि हर ऑब्जेक्ट क्या है, और constraint तथा policy को वे नियम मानें जो डेटा को सही बनाए रखते हैं।
संदर्भ तालिका · 45 प्रविष्टियाँ
डेटाबेस ऑब्जेक्टExplained
45 of 45 rows
संरचना
क्लस्टर के अंदर स्कीमाओं का एक अलग कैटलॉग।
ऐसे एप्लिकेशन या एनवायरनमेंट को अलग रखना जिन्हें डेटा शेयर नहीं करना चाहिए।
डेटाबेस के अंदर एक नाम वाला नेमस्पेस जो आपस में जुड़े ऑब्जेक्ट्स को समूह में रखता है।
ऑब्जेक्ट्स को फीचर या मालिक के हिसाब से व्यवस्थित करना और नाम की टक्कर से बचना।
डिस्क पर एक नाम वाली जगह जहाँ टेबल और इंडेक्स फ़ाइलें रखी जाती हैं।
हॉट टेबल को तेज़ स्टोरेज पर भेजना और ठंडे डेटा को सस्ते डिस्क पर रखना।
वह सेटिंग जो तय करती है कि बिना क्वालिफ़ाई किया ऑब्जेक्ट नाम किन स्कीमाओं में रिज़ॉल्व होगा।
सेशन को सही स्कीमा पर पॉइंट करना ताकि क्वेरी छोटे नामों से चल सकें।
COMMENT ON से किसी भी डेटाबेस ऑब्जेक्ट पर संग्रहीत विवरण।
टेबल और कॉलम का दस्तावेज़ीकरण वहीं करना जहाँ अगला क्वेरी लिखने वाला उसे ढूँढेगा।
टेबल और व्यू
नाम वाला रिलेशन जो rows को टाइप वाले कॉलम में रखता है।
स्थायी डेटा का मुख्य कंटेनर।
ऐसी टेबल जिसकी rows सेशन या ट्रांज़ैक्शन के अंत में मिट जाती हैं।
स्क्रैच या स्टेज किया डेटा रखना जो कनेक्शन से आगे न जीए।
पैरेंट टेबल जो घोषित की के आधार पर चाइल्ड पार्टीशन में बँटी होती है।
बहुत बड़ी टेबल को rows को रेंज या लिस्ट के हिसाब से पार्टीशन में बाँटकर प्रबंधनीय रखना।
ऐसी टेबल जिसकी rows बाहरी सिस्टम में रहती हैं और foreign data wrapper से पहुँची जाती हैं।
रिमोट डेटाबेस या फ़ाइल को वैसे ही क्वेरी करना जैसे वह लोकल टेबल हो।
संग्रहीत क्वेरी जो वर्चुअल टेबल की तरह दिखती है।
वही rows अलग-अलग फ़िल्टर या join के ज़रिए दिखाना।
सादा व्यू जो INSERT, UPDATE और DELETE अपनी बेस टेबल तक पहुँचाता है।
टेबल का फ़िल्टर किया या join किया हिस्सा ऐसे दिखाना जो लिखने योग्य बना रहे।
ऐसा व्यू जिसका रिज़ल्ट सेट डिस्क पर लिखा जाता है और ज़रूरत पर रिफ्रेश होता है।
महँगे aggregate या join को कैश करके उन्हें तेज़ी से पढ़ना।
ऐसा फ़ंक्शन जो rows का सेट लौटाता है और जहाँ टेबल फ़िट होती है वहीं इस्तेमाल हो सकता है।
गणना किया सेट वहीं फैलाना, जैसे unnest ऐरे को rows में बदलता है।
इंडेक्स
इक्वैलिटी और रेंज खोज के लिए बैलेंस्ड-ट्री इंडेक्स।
सॉर्ट किए जा सकने वाले कॉलम पर WHERE, JOIN और ORDER BY तेज़ करना।
ऐसा इंडेक्स जो अपनी की में डुप्लिकेट वैल्यू अस्वीकार करता है।
एक कॉलम या कॉलम के संयोजन पर यूनिकनेस लागू करना।
नॉन-स्केलर वैल्यू के लिए इनवर्टेड या जनरलाइज़्ड सर्च-ट्री इंडेक्स।
ऐरे, JSONB, फुल-टेक्स्ट या ज्यामितीय डेटा को इंडेक्स करना।
सिर्फ़ WHERE कंडीशन से मैच होने वाली rows पर बना इंडेक्स।
हॉट सबसेट को इंडेक्स करना और बाकी को छोड़ देना ताकि जगह बचे।
टाइप और एक्सटेंशन
यूज़र-डिफ़ाइंड टाइप जिसकी वैल्यू लेबल की निश्चित सूची से आती हैं।
किसी कॉलम को बंद सेट तक सीमित करना, जैसे स्टेटस कोड।
बेस टाइप प्लस चेक constraint, जिसे कॉलम टाइप की तरह दोबारा इस्तेमाल के लिए नाम दिया गया हो।
एक वैलिडेटेड परिभाषा, जैसे गैर-खाली टेक्स्ट, कई कॉलम के बीच साझा करना।
नियमों का ऐसा सेट जो तय करता है कि स्ट्रिंग की तुलना और सॉर्ट कैसे होती है।
केस, एक्सेंट या किसी खास locale के लिए सही क्रम पाना।
इंस्टॉल की जा सकने वाली पैकेज जो डेटाबेस में फ़ंक्शन, टाइप या ऑपरेटर जोड़ती है।
PostGIS या pg_trgm जैसे जाँचे-परखे टूल एक ही कदम में अपनाना।
पहचान और जनरेटेड वैल्यू
स्टैंडअलोन काउंटर ऑब्जेक्ट जो लगातार पूर्णांक देता है।
सीरियल की चलाना जब कई टेबल एक ही जनरेटर साझा करती हों।
टेबल का कॉलम जिसके पीछे SQL स्टैंडर्ड के अनुसार एक इंटरनल sequence होता है।
आधुनिक ऑटो-इंक्रीमेंटिंग प्राइमरी की, SERIAL से बेहतर विकल्प।
ऐसा कॉलम जिसकी वैल्यू उसी row के दूसरे कॉलम से गणना होकर बनती है।
बिना मैन्युअल लिखे कोई व्युत्पन्न वैल्यू संग्रहित या दिखाना।
रूटीन
SQL का नाम वाला ब्लॉक जो एक वैल्यू या rows लौटाता है।
पुनः प्रयोग योग्य लॉजिक को समेटना और उसे क्वेरी के अंदर कॉल करना।
नाम वाला ब्लॉक जो क्रियाएँ चलाता है और अपना ट्रांज़ैक्शन खुद नियंत्रित करता है।
मल्टी-स्टेप ETL जहाँ रूटीन अंदर ही commit या rollback करती है।
ऐसी रूटीन जो state और final फ़ंक्शन के ज़रिए कई इनपुट rows को एक वैल्यू में समेटती है।
कस्टम रिडक्शन परिभाषित करना, जैसे वेटेड औसत।
खास ऑपरेंड टाइप के लिए एक या अधिक फ़ंक्शन से जुड़ा प्रतीक।
अपने टाइप को स्वाभाविक सिंटैक्स देना, जैसे a + b या @>।
एक टाइप से दूसरे टाइप में घोषित रूपांतरण मार्ग।
यह नियंत्रित करना कि वैल्यू कैसे टाइप बदलती हैं, यह समेत कि कौन-से रूपांतरण अप्रत्यक्ष रूप से होते हैं।
टेबल इवेंट से जुड़ी रूटीन जो अपने आप चल जाती है।
INSERT, UPDATE या DELETE पर बदलावों का ऑडिट, वैलिडेशन या कैस्केड।
ऐसा ट्रिगर जो DDL कमांड जैसे डेटाबेस-स्तर के इवेंट पर चलता है।
पूरे डेटाबेस में स्कीमा बदलावों को लॉग, ब्लॉक या ऑडिट करना।
पार्स की गई क्वेरी जो बाउंड पैरामीटर के साथ बार-बार चलाने के लिए संग्रहीत है।
एक ही क्वेरी के कई रन में एक ही पार्स और प्लान दोबारा इस्तेमाल करना।
ऐसा हैंडल जो रिज़ल्ट सेट को row-दर-row निकालने के लिए खुला रखता है।
बड़े रिज़ल्ट को पेज करना या रूटीन के अंदर rows पर चलना।
सुरक्षा और नियम
नाम वाली पहचान जिसके पास विशेषाधिकार होते हैं; यूज़र वह role है जो लॉगिन कर सकता है।
अनुमतियाँ एक बार समूहबद्ध करना, फिर उन्हें लोगों, सर्विसों या दूसरे role को देना।
वे स्टेटमेंट जो ऑब्जेक्ट पर विशेषाधिकार role को देते हैं या वापस लेते हैं।
यह तय करना कि कौन-सा role किसी ऑब्जेक्ट को पढ़, लिख या चला सकता है।
बनाने वाले का अंतर्निहित अधिकार ऑब्जेक्ट को बदलने या हटाने का, grant से अलग।
किसी ऑब्जेक्ट के जीवनचक्र के लिए ज़िम्मेदार role नाम देना।
स्थायी निर्देश जो आगे बनने वाले ऑब्जेक्ट पर विशेषाधिकार अपने आप दे देता है।
अधिकार पहले से सेट करना ताकि नई टेबल पर ऐप role के लिए मैन्युअल grant की ज़रूरत न पड़े।
ऐसा नियम जो घोषित शर्त का उल्लंघन करने वाले लिखाव को अस्वीकार करता है।
NOT NULL, CHECK, UNIQUE, PRIMARY KEY और FOREIGN KEY की गारंटी लागू करना।
प्रति role ऐसा नियम जो वह rows छिपा देता है जिन्हें सेशन को देखना नहीं चाहिए।
टेनेंट अलगाव या प्रति-यूज़र एक्सेस, ऐप्लिकेशन क्वेरी दोबारा लिखे बिना।
ऐसा उपनाम जो एक नाम को कहीं और के ऑब्जेक्ट से जोड़ता है; Oracle और SQL Server में मूल रूप से मौजूद।
स्कीमा लेआउट पोर्ट करना; PostgreSQL में इसकी जगह search_path इस्तेमाल करें।
यह परिभाषा कि कौन-सी क्रियाएँ समीक्षा के लिए दर्ज होंगी, pgaudit या वेंडर टूलिंग से।
यह सिद्ध करना कि किसने क्या पढ़ा या बदला, अनुपालन और जाँच के लिए।
ऐसा निर्देश जो आने वाली क्वेरी को दूसरे कमांड में फिर से लिखता है।
पुरानी ज़माने की राइट रीडायरेक्शन; PostgreSQL अब ट्रिगर या अपडेटेबल व्यू को तरजीह देता है।
रेप्लिकेशन
भेजने वाले पक्ष की परिभाषा कि कौन-सी टेबल और बदलाव के प्रकार रेप्लिका की ओर जाते हैं।
यह घोषित करना कि डेटाबेस लॉजिकल रेप्लिकेशन के सब्सक्राइबर को क्या देता है।
रिसीवर जो publication से जुड़ता है और उसके बदलाव लोकल टेबल पर लागू करता है।
किसी दूसरे PostgreSQL डेटाबेस के बदलाव इसमें खींचना।
ऐसा मार्कर जिससे primary, WAL को तब तक रोके रखता है जब तक कोई उपभोक्ता उसे पढ़ न ले।
यह गारंटी देना कि standby या सब्सक्राइबर बदलाव खोए बिना फिर से शुरू कर सके।