डेटाबेस के संदर्भ में, एक स्कीमा (उच्चारण "स्की-मुह" या "स्की-मह") एक डेटाबेस का संगठन और संरचना है। दोनों स्कीमा और स्कीमाटा बहुवचन रूपों के रूप में इस्तेमाल किया जा सकता है।
स्कीमा में स्कीमा ऑब्जेक्ट होते हैं, जो टेबल, कॉलम, डेटा प्रकार, दृश्य, संग्रहीत कार्यविधियाँ, संबंध, प्राथमिक कुंजियाँ, विदेशी कुंजियाँ आदि हो सकते हैं।
एक डेटाबेस स्कीमा को विज़ुअल आरेख में दर्शाया जा सकता है, जो डेटाबेस ऑब्जेक्ट और एक दूसरे के साथ उनके संबंध को दर्शाता है।
ऊपर एक स्कीमा आरेख का एक सरल उदाहरण है। यह तीन तालिकाओं को दिखाता है, उनके डेटा प्रकार, तालिकाओं के बीच संबंधों के साथ-साथ उनकी प्राथमिक कुंजी और विदेशी कुंजी के साथ।
यहाँ एक डेटाबेस स्कीमा का अधिक जटिल उदाहरण दिया गया है:
इस मामले में, स्कीमा आरेख को चार खंडों में विभाजित किया गया है:
- ग्राहक डेटा :ग्राहकों से संबंधित डेटा, जैसे उनका नाम, पता, आदि
- व्यवसाय :व्यवसाय चलाने के लिए आवश्यक डेटा, जैसे कर्मचारी, स्टोर स्थान, भुगतान विवरण, आदि
- इन्वेंटरी :सभी उत्पादों पर विवरण। इस मामले में उत्पाद मूवी हैं, इसलिए इसमें मूवी शीर्षक, इसकी श्रेणी, अभिनेता आदि जैसे डेटा शामिल हैं।
- दृश्यों :मूल्यांकन के लिए उपयोग किए गए डेटा पर विशेष दृश्य।
तो इन स्कीमा आरेखों को देखकर, हम आगे बढ़ सकते हैं और एक डेटाबेस बना सकते हैं। वास्तव में, MySQL कार्यक्षेत्र आपको एक CREATE TABLE
generate उत्पन्न करने की अनुमति देता है आरेख से सीधे स्क्रिप्ट। फिर आप डेटाबेस बनाने के लिए स्क्रिप्ट का उपयोग कर सकते हैं। आप किसी डेटाबेस को डायग्राम में रिवर्स इंजीनियर भी कर सकते हैं।
क्या स्कीमा और डेटाबेस एक ही चीज़ हैं?
जब डेटाबेस की बात आती है तो स्कीमा के बारे में बहुत भ्रम होता है। अक्सर यह सवाल उठता है कि क्या स्कीमा और डेटाबेस में अंतर है और यदि हां, तो क्या अंतर है।
विक्रेता पर निर्भर करता है
भ्रम का एक कारण यह है कि डेटाबेस सिस्टम स्कीमा को अपने तरीके से अपनाते हैं।
- MySQL दस्तावेज़ बताता है कि भौतिक रूप से,
एक स्कीमा एक डेटाबेस का पर्याय है
. इसलिए, एक स्कीमा और एक डेटाबेस एक ही चीज़ हैं । - हालांकि, Oracle डेटाबेस दस्तावेज़ में कहा गया है कि कुछ ऑब्जेक्ट डेटाबेस के अंदर संग्रहीत किए जा सकते हैं लेकिन स्कीमा के अंदर नहीं। इसलिए, एक स्कीमा और एक डेटाबेस दो अलग-अलग चीजें हैं ।
- और इस SQL सर्वर तकनीकी लेख के अनुसार, एक स्कीमा डेटाबेस के अंदर एक अलग इकाई है। तो, वे दो अलग-अलग चीज़ें हैं ।
इसलिए, आपके द्वारा उपयोग किए जाने वाले RDBMS के आधार पर, स्कीमा और डेटाबेस एक ही चीज़ हो सकते हैं या नहीं भी हो सकते हैं।
SQL मानक के बारे में क्या?
ISO/IEC 9075-1 SQL मानक एक स्कीमा को इस प्रकार परिभाषित करता है एक स्थायी, नामित वर्णनकर्ताओं का संग्रह
।
यदि आप पहले भ्रमित थे, तो आशा है कि मैंने इसे अभी और खराब नहीं किया है…
व्यापक अर्थ
भ्रम का दूसरा कारण संभवतः इस तथ्य के कारण है कि स्कीमा . शब्द इतना व्यापक अर्थ है। अलग-अलग संदर्भों में इसके अलग-अलग अर्थ हैं।
स्कीमा शब्द की उत्पत्ति ग्रीक शब्द skhēma . से हुई है , जिसका अर्थ है फ़ॉर्म , आंकड़ा , आकार , या योजना ।
मनोविज्ञान में स्कीमा का उपयोग विचार या व्यवहार के एक संगठित पैटर्न का वर्णन करने के लिए किया जाता है जो सूचनाओं की श्रेणियों और उनके बीच संबंधों को व्यवस्थित करता है।
डेटाबेस को डिज़ाइन करने से पहले, हमें सूचनाओं की श्रेणियों और उनके बीच संबंधों को भी देखना होगा। हमें एक वैचारिक बनाने की जरूरत है इससे पहले कि हम भौतिक . से शुरू करें स्कीमा डीबीएमएस के भीतर स्कीमा।
सॉफ्टवेयर विकास में, स्कीमा पर चर्चा करते समय, कोई वैचारिक पर चर्चा कर सकता है स्कीमा, भौतिक स्कीमा, आंतरिक स्कीमा, बाहरी स्कीमा, तार्किक स्कीमा, आदि। इनमें से प्रत्येक का अपना विशिष्ट अर्थ होता है।
डीबीएमएस द्वारा स्कीमा परिभाषाएं
यहां तीन प्रमुख डेटाबेस सिस्टम से स्कीमा की त्वरित परिभाषा दी गई है:
MySQL
<ब्लॉकक्वॉट>संकल्पनात्मक रूप से, एक स्कीमा परस्पर संबंधित डेटाबेस ऑब्जेक्ट्स का एक सेट है, जैसे टेबल, टेबल कॉलम, कॉलम के डेटा प्रकार, इंडेक्स, विदेशी कुंजी, और इसी तरह।
....
MySQL में, भौतिक रूप से, एक स्कीमा डेटाबेस . का पर्याय है . आप कीवर्ड को SCHEMA
. से बदल सकते हैं इसके बजाय DATABASE
MySQL SQL सिंटैक्स में, उदाहरण के लिए CREATE SCHEMA
. का उपयोग करके इसके बजाय CREATE DATABASE
।
स्रोत: “MySQL शब्दावली”। MySQL 5.7 संदर्भ मैनुअल। माई एसक्यूएल। 6 जून 2016 को लिया गया।
एसक्यूएल सर्वर
<ब्लॉकक्वॉट>डेटाबेस के टेबल, फ़ील्ड, डेटा प्रकार और प्राथमिक और विदेशी कुंजियों के नाम।
"शब्दावली"। SQL सर्वर 2016 तकनीकी दस्तावेज़ीकरण। माइक्रोसॉफ्ट डेवलपर नेटवर्क। 6 जून 2016 को लिया गया।
Oracle डेटाबेस
Oracle डेटाबेस का स्कीमा सिस्टम अन्य सिस्टम से काफी अलग है। Oracle का स्कीमा डेटाबेस उपयोगकर्ता से बहुत अधिक जुड़ा हुआ है।
<ब्लॉकक्वॉट>एक स्कीमा डेटा, या स्कीमा ऑब्जेक्ट्स की तार्किक संरचनाओं का संग्रह है। एक स्कीमा का स्वामित्व डेटाबेस उपयोगकर्ता के पास होता है और उसका नाम उस उपयोगकर्ता के समान होता है। प्रत्येक उपयोगकर्ता के पास एक ही स्कीमा होता है।
स्रोत: “डेटाबेस ऑब्जेक्ट”। Oracle डेटाबेस ऑनलाइन दस्तावेज़ीकरण 12c रिलीज़ 1 (12.1)। ओरेकल सहायता केंद्र। 6 जून 2016 को लिया गया।
डीबीएमएस द्वारा स्कीमा परिभाषाओं पर यह आलेख अधिक विवरण प्रदान करता है।
स्कीमा बनाना
स्कीमा को परिभाषित करने में उनके अंतर के बावजूद, उपरोक्त तीन DBMS में से प्रत्येक CREATE SCHEMA
का समर्थन करता है। बयान।
और यहीं समानता समाप्त होती है।
MySQL
MySQL में, CREATE SCHEMA
एक डेटाबेस बनाता है।
ऐसा इसलिए है क्योंकि CREATE SCHEMA
CREATE DATABASE
. का पर्याय है . दूसरे शब्दों में, आप उपयोग कर सकते हैं CREATE SCHEMA
या CREATE DATABASE
वही काम करने के लिए।
Oracle डेटाबेस
Oracle डेटाबेस में, CREATE SCHEMA
कथन वास्तव में एक स्कीमा नहीं बनाता है। ऐसा इसलिए है क्योंकि प्रत्येक डेटाबेस उपयोगकर्ता के साथ एक स्कीमा पहले से ही बनाया गया है।
Oracle में, CREATE USER
कथन स्कीमा बनाता है।
Oracle में, CREATE SCHEMA
स्टेटमेंट आपको अपने स्कीमा को तालिकाओं और दृश्यों के साथ पॉप्युलेट करने देता है और कई लेन-देन में एकाधिक SQL स्टेटमेंट जारी किए बिना उन ऑब्जेक्ट्स पर विशेषाधिकार प्रदान करता है।
एसक्यूएल सर्वर
SQL सर्वर में, CREATE SCHEMA
आपके द्वारा दिए गए नाम से एक स्कीमा बनाएगा।
MySQL के विपरीत, CREATE SCHEMA
स्टेटमेंट एक स्कीमा बनाता है जिसे डेटाबेस के लिए अलग से परिभाषित किया जाता है।
Oracle के विपरीत, CREATE SCHEMA
कथन वास्तव में स्कीमा बनाता है।
SQL सर्वर में, एक बार जब आप स्कीमा बना लेते हैं, तब आप उसमें उपयोगकर्ता और ऑब्जेक्ट जोड़ सकते हैं।
निष्कर्ष
शब्द स्कीमा कई अलग-अलग संदर्भों में इस्तेमाल किया जा सकता है। एक विशिष्ट डेटाबेस प्रबंधन प्रणाली के भीतर स्कीमा बनाने के संदर्भ में, आपको इसके साथ काम करने की आवश्यकता होगी, हालांकि डीबीएमएस स्कीमा को परिभाषित करता है।
और जब आप किसी नए DBMS पर स्विच करते हैं, तो यह देखना सुनिश्चित करें कि वह सिस्टम स्कीमा को कैसे परिभाषित करता है।