Oracle में:
- सर्वर इंस्टेंस ==डेटाबेस ==कैटलॉग ==एक ही निष्पादन इंजन द्वारा प्रबंधित सभी डेटा
- स्कीमा ==डेटाबेस के भीतर नाम स्थान, उपयोगकर्ता खाते के समान
- उपयोगकर्ता ==स्कीमा स्वामी ==नामित खाता, स्कीमा के समान, जो डेटाबेस से जुड़ सकता है, जो स्कीमा का स्वामी है और संभवतः अन्य स्कीमा में वस्तुओं का उपयोग करता है
- चल रहे सर्वर में किसी भी वस्तु की पहचान करने के लिए, आपको (स्कीमा नाम + वस्तु का नाम) चाहिए
PostgreSQL में:
- सर्वर इंस्टेंस ==डीबी क्लस्टर ==एक ही निष्पादन इंजन द्वारा प्रबंधित सभी डेटा
- डेटाबेस ==कैटलॉग ==डीबी क्लस्टर के भीतर एकल डेटाबेस, एक ही डीबी क्लस्टर में अन्य डेटाबेस से अलग
- स्कीमा ==डेटाबेस के भीतर नाम स्थान
- उपयोगकर्ता ==नामित खाता, जो डेटाबेस से जुड़ सकता है, प्रत्येक अनुमत डेटाबेस में वस्तुओं का स्वामित्व और उपयोग अलग से कर सकता है
- चल रहे सर्वर में किसी ऑब्जेक्ट की पहचान करने के लिए, आपको (डेटाबेस नाम + स्कीमा नाम + ऑब्जेक्ट नाम) की आवश्यकता है
MySQL में:
- सर्वर इंस्टेंस ==कैटलॉग के साथ पहचाना नहीं गया, केवल डेटाबेस का एक सेट
- डेटाबेस ==स्कीमा ==कैटलॉग ==सर्वर के भीतर एक नाम स्थान।
- उपयोगकर्ता ==नामित खाता, जो सर्वर से जुड़ सकता है और उपयोग कर सकता है (लेकिन स्वामित्व नहीं कर सकता - स्वामित्व की कोई अवधारणा नहीं) एक या अधिक डेटाबेस में ऑब्जेक्ट
- चल रहे सर्वर में किसी भी वस्तु की पहचान करने के लिए, आपको (डेटाबेस नाम + वस्तु का नाम) चाहिए
माइक्रोसॉफ्ट एसक्यूएल सर्वर में:
- सर्वर इंस्टेंस ==प्रबंधित डेटाबेस का सेट
- डेटाबेस ==सर्वर के भीतर नेमस्पेस क्वालिफायर, जिसे शायद ही कभी कैटलॉग के रूप में संदर्भित किया जाता है
- स्कीमा ==स्वामी ==डेटाबेस के भीतर नाम स्थान, डेटाबेस भूमिकाओं से बंधा हुआ, डिफ़ॉल्ट रूप से केवल
dbo
उपयोग किया जाता है - उपयोगकर्ता ==नामित खाता, जो सर्वर से जुड़ सकता है और उपयोग कर सकता है (लेकिन स्वामित्व नहीं कर सकता - स्कीमा स्वामी के रूप में कार्य करती है) एक या अधिक डेटाबेस में ऑब्जेक्ट
- चल रहे सर्वर में किसी भी वस्तु की पहचान करने के लिए, आपको (डेटाबेस नाम + स्वामी + वस्तु का नाम) की आवश्यकता है
तो मुझे लगता है कि आपके सवालों का जवाब है:
-
यह कार्यान्वयन पर निर्भर करता है कि वस्तुओं की पहचान के लिए कैटलॉग नाम की आवश्यकता है या नहीं। "कैटलॉग", "स्कीमा" और "डेटाबेस" का अर्थ एक कार्यान्वयन से दूसरे कार्यान्वयन में भिन्न होता है।
-
हाँ, कैटलॉग डेटा संग्रहण का एक सार है। मुझे लगता है कि इसे एक स्व-निहित पृथक नामस्थान के रूप में भी परिभाषित किया जाना चाहिए, लेकिन सभी SQL इंजन ऐसा नहीं करते हैं।
-
डेटाबेस और स्कीमा सभी विक्रेताओं द्वारा बहुत अच्छी तरह से परिभाषित किया गया है। सूची कभी-कभी "डेटाबेस" (कम से कम Oracle और Postgres में) का पर्याय बन जाता है, कभी-कभी "स्कीमा" का पर्याय बन जाता है, और कभी-कभी दोनों का पर्याय बन जाता है। शब्द कैटलॉग इसका अर्थ अक्सर मेटाडेटा संग्रह (उर्फ सिस्टम टेबल) होता है।