डेटाबेस बनाम उपयोगकर्ता बनाम स्कीमा के बीच अंतर


78

मैं वास्तव में शर्तों डेटाबेस, उपयोगकर्ता और स्कीमा के साथ भ्रमित हूँ। क्या कोई समझा सकता है कि वे एक दूसरे से अलग कैसे हैं (यदि वे हैं)?

यदि वे समान हैं, तो उनके बीच क्या समानताएं हैं? हम उनका उपयोग कैसे करते हैं? और हम उन्हें कैसे बनाते हैं?


उम्मीद है कि यह मूल विचार दे देंगे: answers.com/Q/Difference_between_user_and_schema_oracle
Sandun Madola

जवाबों:


77

ओरेकल में, उपयोगकर्ता और स्कीमा अनिवार्य रूप से एक ही चीज हैं। आप विचार कर सकते हैं कि एक उपयोगकर्ता वह खाता है जिसे आप डेटाबेस से कनेक्ट करने के लिए उपयोग करते हैं, और एक स्कीमा उस खाते से संबंधित वस्तुओं (तालिकाओं, विचारों आदि) का सेट है।

स्टैक ओवरफ्लो पर इस पोस्ट को देखें: Oracle में उपयोगकर्ता और स्कीमा के बीच अंतर? अधिक जानकारी और अतिरिक्त लिंक के लिए।

आप create userकथन के साथ उपयोगकर्ताओं को बनाते हैं । यह स्कीमा "शुरू" भी करता है (शुरुआत में खाली) - आप स्कीमा नहीं बना सकते हैं जैसे कि, यह उपयोगकर्ता से जुड़ा हुआ है। एक बार उपयोगकर्ता के निर्माण के बाद, एक व्यवस्थापक उपयोगकर्ता को विशेषाधिकार प्रदान कर सकता है, जो इसे तालिकाओं को बनाने, selectप्रश्नों को निष्पादित करने insert, और बाकी सब कुछ करने में सक्षम करेगा ।

डेटाबेस वह चीज़ है जिसमें आपके द्वारा बनाए गए सभी उपयोगकर्ता और उनका डेटा (और पूर्वनिर्धारित सिस्टम उपयोगकर्ताओं, तालिकाओं, विचारों आदि का एक गुच्छा होता है, जो पूरी चीज़ को काम करते हैं)। आपको कॉन्सेप्ट गाइड में ओरेकल डाटाबेस आर्किटेक्चर के डॉक्यूमेंटेशन को देखना चाहिए (वास्तव में, यह पूरा पेज पढ़ने लायक है - इसमें यूजर्स और स्कीमा के बारे में एक सेक्शन ऊपर पेज पर है) एक डेटाबेस क्या है, और क्या है डेटाबेस का उदाहरण है - दो महत्वपूर्ण अवधारणाएँ।

create databaseओरेकल सॉफ्टवेयर स्टैक इंस्टॉल करने के बाद, आप स्टेटमेंट के साथ एक डेटाबेस बना सकते हैं । लेकिन dbca(डेटाबेस निर्माण सहायक) का उपयोग करना आरंभ करना आसान है।


2

कभी-कभी जिस तरह से शब्दावली का उपयोग किया जाता है , उसके अनुसार , ए USERऔर SCHEMAकुछ समान होते हैं। लेकिन एक बड़ा अंतर यह भी है। एक USERकहा जा सकता है SCHEMAअगर " USER" किसी भी वस्तु का मालिक है, अन्यथा यह केवल एक " USER" रहेगा । एक बार USERउपरोक्त सभी परिभाषाओं के आधार पर कम से कम एक वस्तु के मालिक होने के बाद ... USERअब इसे एक कहा जा सकता है SCHEMA


मुझे लगता है कि आप यहां इशारा कर रहे हैं कि 'स्कीमा' शब्द बहुआयामी है। यह एक ओर डेटाबेस ऑब्जेक्ट के लिए एक नाम स्थान है। इसके अलावा, ओरेकल (और अन्य?) लेकिन PostgreSQL नहीं, यह एक डेटाबेस ऑब्जेक्ट नेमस्पेस है जिसमें उपयोगकर्ता द्वारा स्कीमा का नाम साझा करने के लिए बनाई गई वस्तुओं से युक्त है। एक अन्य दृष्टिकोण से, यह डेटाबेस में वस्तुओं का संबंध और संरचना है, जो अक्सर स्वामित्व और नाम स्थान दोनों की अनदेखी करते हैं।
एंड्रयू वुल्फ

2

अंतर को समझने के लिए मुझे लगता है कि हमें यह कहना शुरू करना चाहिए कि यह नामकरण ओरेकल से एक गलती थी।

मुझे लगता है कि यदि आपके पास TRITON नामक ERP है, तो आप चाहते हैं कि आपके डेटाबेस का नाम TRITON हो, या अगर मेरी कंपनी इसे JENNY EXPORT कहती है, तो मैं अपने डेटाबेस को JENNYEXP या ऐसा कुछ कह सकता हूं, जिसे उसी नाम के किसी भी उपयोगकर्ता की आवश्यकता नहीं है ।

ओरेकल में, आपको तालिकाओं को बनाने से पहले एक USER बनाने की आवश्यकता है और पर्याप्त रूप से TABLES के इस संग्रह को SCHEMA कहा जाता है।

फिर आप वास्तविक उपयोगकर्ताओं को बना सकते हैं और इस तरह के डेटाबेस के साथ TRITON के रूप में काम करने के लिए उचित अनुमति दे सकते हैं, उदाहरण के लिए, यदि आप SQL DEVELOPER को कनेक्ट करते हैं तो आपको NAME A CONNECTION चाहिए।

मुझे पता है कि मैं निराश हूँ, लेकिन यह मेरे लिए ज्यादा मायने रखता है कि MS SQL SERVER नामकरण सम्मेलन है और मैं जोड़ सकता हूँ कि मैंने SQL सर्वर से पहले Oracle के साथ काम किया था।


1

डेटाबेस।

डेटा बेस डेटा का एक संग्रह है, जहां वास्तव में डेटा संग्रहीत होता है। उस मेमोरी घटक में डेटा में हेरफेर करने के लिए DBMS सॉफ्टवेयर के साथ स्थापित कंप्यूटर से जुड़ा हुआ एक भौतिक मेमोरी घटक, उस मेमोरी घटक में स्थापित कंप्यूटर को सर्वर या डेटाबेस सर्वर कहा जाता है। सर्वर (कंप्यूटर) और डेटाबेस (मेमोरी घटक) दोनों अलग-अलग हैं, लेकिन ज्यादातर बार स्थिति के आधार पर समान के रूप में संदर्भित किया जाता है।

USER और SCHEMA

उपयोगकर्ता और स्कीमा दोनों शब्द, विनिमेय हैं, यही कारण है कि अधिकांश लोग इन शब्दों पर भ्रमित हो जाते हैं।

उपयोगकर्ता

उपयोगकर्ता डेटाबेस (सर्वर) को जोड़ने के लिए एक खाता है। हम सृजित उपयोगकर्ता आईडी का उपयोग करके उपयोगकर्ता बना सकते हैं।

योजना

दरअसल ओरेकल डेटाबेस में डेटा को प्रोसेस करने के लिए तार्किक और शारीरिक संरचना होती है। स्कीमा डेटाबेस (मेमोरी घटक) में डेटा को संसाधित करने के लिए तार्किक संरचना भी। उपयोगकर्ता द्वारा बनाए जाने पर यह Oracle द्वारा स्वचालित रूप से बनाया जाता है। इसमें उस स्कीमा से जुड़े उपयोगकर्ता द्वारा बनाई गई सभी ऑब्जेक्ट होते हैं। उदाहरण के लिए, अगर मैंने नाम के साथ एक उपयोगकर्ता बनाया है, santhoshतो ऑरेकल नामक स्कीमा बनाता है santhosh, ओरेकल स्कीमा santhoshमें उपयोगकर्ता द्वारा बनाई गई सभी वस्तुओं को संग्रहीत करता है santhosh

हम CREATE SCHEMAस्टेटमेंट का उपयोग करके स्कीमा बना सकते हैं , लेकिन ओरेकल स्वचालित रूप से उस स्कीमा के लिए एक उपयोगकर्ता बनाता है।

हम DROP SCHEMA <name> RESTRICTस्टेटमेंट का उपयोग करके स्कीमा को छोड़ सकते हैं , लेकिन यह स्कीमा में निहित वस्तुओं को हटा नहीं सकता है, इसलिए स्कीमा को छोड़ने के लिए, इसे खाली होना चाहिए। यहाँ प्रतिबंधित शब्द आपको उस स्कीमा को बाहर की वस्तुओं के साथ निर्दिष्ट करने के लिए मजबूर करता है।

यदि हम किसी उपयोगकर्ता को उसके स्कीमा में ऑब्जेक्ट्स को छोड़ने का प्रयास करते हैं, तो हमें CASCADEशब्द निर्दिष्ट करना होगा क्योंकि Oracle आपको ऑब्जेक्ट वाले उपयोगकर्ता को हटाने की अनुमति नहीं देता है।

DROP USER <name> CASCADE

इसलिए ओरेकल स्कीमा में वस्तुओं को हटाता है और फिर यह उपयोगकर्ता को स्वचालित रूप से छोड़ देता है, इन स्कीमा वस्तुओं को अन्य स्कीमा जैसे दृश्य और निजी समानार्थी से संदर्भित वस्तुओं को अमान्य स्थिति में जाता है।


-2

मुझे लगता है कि ऊपर दिए गए बयान ओरेकल के कार्यान्वयन पर लागू होते हैं, लेकिन SQL सर्वर और PostgreSQL सहित अन्य डेटाबेस स्कीमा का उपयोग केवल नामस्थान, यानी समूह ऑब्जेक्ट्स के लिए एक तरह से करते हैं। उदाहरण के लिए, स्टेजिंग स्कीमा डेटा के उपयोग में आने वाली सभी ऑब्जेक्ट को समूहित कर सकता है, अकाउंटिंग स्कीमा लेखांकन से संबंधित सभी वस्तुओं को समूहित कर सकता है।


जब आप "ऊपर दिए गए कथन" का उल्लेख नहीं करते हैं, लेकिन SQL और स्कीमा में स्कीमा एक अनुमतियाँ समूहीकरण है। दूसरे शब्दों में, यह केवल वस्तुओं को एक साथ समूहित करने का एक तरीका नहीं है, बल्कि वस्तुओं को समूहीकृत करने का एक तरीका है जो अनुमतियों के प्रबंधन को कम करेगा क्योंकि आप स्कीमा को अनुमति दे सकते हैं और इसलिए स्कीमा के भीतर प्रत्येक ऑब्जेक्ट को अनुमति देने से बचें।
थ्रोंक

-4

उपयोगकर्ता! = स्कीमा, उपयोगकर्ता और स्कीमा समान नहीं हैं, लेकिन उनका उपयोग परस्पर किया जाता है


2
कृपया विवरण जोड़ें कि वे कैसे भिन्न हैं।
एरिक

-4

मैं आपको उन अवधारणाओं के अनुसार बता रहा हूं जो आपके द्वारा उपयोग किए जा रहे किसी भी प्रकार के डेटाबेस प्रबंधन प्रणाली पर आधारित नहीं हैं।

वैचारिक रूप से: डेटाबेस: डेटा का एक ढेर है, ज्यादातर अन-प्रबंधित संबंधित या असंबंधित डेटा।

स्कीमा: स्कीमा का तात्पर्य अप्रबंधित / असंबंधित डेटा को औपचारिक रूप से संरचित करना है ताकि इसे कुछ प्रबंधन प्रणाली द्वारा प्रबंधित किया जा सके जो स्कीमा द्वारा प्रदान की गई औपचारिक परिभाषा को समझता है। स्कीमा मूल रूप से अवलोकन प्रदान करने वाली एक योजना है। उदाहरण के लिए आपके पास XSD है जो XML बनाने के लिए स्कीमा को परिभाषित करता है। आपके पास RDBMS है जो अपने स्वयं के स्कीमा को परिभाषित करता है जो कि Codd Rules पर आधारित होते हैं जो मूल रूप से RDBMS बनाने के लिए योजनाओं को परिभाषित करते हैं।

अब यदि आप इसके बारे में अधिक जानना चाहते हैं तो इस लिंक को देखें ।

उपयोगकर्ता डेटाबेस का उपयोग करने के लिए स्कीमा द्वारा निर्दिष्ट औपचारिक भाषा का उपयोग करते हैं

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.