यह शायद एक n00blike (या बदतर) सवाल है। लेकिन मैंने हमेशा एक डेटाबेस में एक तालिका परिभाषा के रूप में एक स्कीमा देखा है। यह गलत है या पूरी तरह से सही नहीं है। मुझे अपने डेटाबेस पाठ्यक्रमों से बहुत कुछ याद नहीं है।
यह शायद एक n00blike (या बदतर) सवाल है। लेकिन मैंने हमेशा एक डेटाबेस में एक तालिका परिभाषा के रूप में एक स्कीमा देखा है। यह गलत है या पूरी तरह से सही नहीं है। मुझे अपने डेटाबेस पाठ्यक्रमों से बहुत कुछ याद नहीं है।
जवाबों:
स्कीमा : डेटाबेस : टेबल :: मंजिल योजना : घर : कमरा
एक संबंध स्कीमा तालिका की तार्किक परिभाषा है - यह परिभाषित करता है कि तालिका का नाम क्या है, और प्रत्येक स्तंभ का नाम और प्रकार क्या है। यह एक योजना या एक खाका की तरह है। एक डेटाबेस स्कीमा पूरे डेटाबेस के लिए संबंध स्कीमा का संग्रह है।
एक तालिका पंक्तियों का एक गुच्छा (उर्फ "ट्यूपल्स") के साथ एक संरचना है, जिनमें से प्रत्येक में स्कीमा द्वारा परिभाषित विशेषताएं हैं। कुछ स्तंभों पर मूल्यों को देखने में सहायता करने के लिए तालिकाओं पर भी अनुक्रमित हो सकते हैं।
एक डेटाबेस , औपचारिक रूप से, डेटा का कोई भी संग्रह है। इस संदर्भ में, डेटाबेस तालिकाओं का एक संग्रह होगा। एक DBMS (डेटाबेस मैनेजमेंट सिस्टम) सॉफ्टवेयर है (जैसे MySQL, SQL सर्वर, Oracle, आदि) जो एक डेटाबेस को मैनेज और रन करता है।
संक्षेप में, एक स्कीमा पूरे डेटाबेस के लिए परिभाषा है, इसलिए इसमें टेबल, विचार, संग्रहीत कार्यविधियाँ, अनुक्रमणिका, प्राथमिक और विदेशी कुंजी, आदि शामिल हैं।
इस विशेष पोस्टिंग को केवल ओरेकल से संबंधित दिखाया गया है और दूसरे डीबी के संदर्भ में स्कीमा की परिभाषा बदल जाती है।
संभवत: थोड़े से काम के लिए सिर्फ गूगल ही है लेकिन FYI शब्द उनकी परिभाषाओं में भिन्न प्रतीत होते हैं जो सबसे कष्टप्रद बात है :)
Oracle में एक डेटाबेस एक डेटाबेस है। आपके दिमाग में डेटा फ़ाइलों और रीडो लॉग के रूप में ऐसा लगता है और डेटाबेस की डिस्क पर वास्तविक भौतिक उपस्थिति (यानी उदाहरण)
स्कीमा प्रभावी रूप से एक उपयोगकर्ता है। अधिक विशेष रूप से यह एक उपयोगकर्ता के स्वामित्व वाली तालिकाओं / procs / अनुक्रमित आदि का एक सेट है। एक अन्य उपयोगकर्ता के पास एक अलग स्कीमा है (वह जो वह / वह मालिक है) हालांकि उपयोगकर्ता किसी भी स्कीमा को देख सकता है जिस पर उन्होंने निजीकरण किया है। इसलिए एक डेटाबेस में सैकड़ों स्कीमा और प्रत्येक स्कीमा में सैकड़ों टेबल शामिल हो सकते हैं। आपके पास अलग-अलग स्कीमा में एक ही नाम के साथ टेबल हो सकते हैं, जो एक ही डेटाबेस में हैं।
एक तालिका एक तालिका है, डेटा युक्त पंक्तियों और स्तंभों का एक सेट और स्कीमा में निहित है।
उदाहरण के लिए SQL सर्वर में परिभाषाएँ भिन्न हो सकती हैं। मुझे इसकी जानकारी नहीं है।
स्कीमा व्यवहार एक मूल वस्तु की तरह लगता है जैसा ओओपी दुनिया में देखा जाता है। तो यह एक डेटाबेस ही नहीं है। शायद यह लिंक उपयोगी है।
लेकिन, MySQL में, दोनों बराबर हैं। कीवर्ड DATABASE या DATABASES को SCHEMA या SCHEMAS के साथ प्रतिस्थापित किया जा सकता है जहाँ भी यह दिखाई देता है। उदाहरण:
SCHEMA और DATABASE शब्द कुछ DBMS निर्भर हैं।
एक तालिका डेटा तत्वों (मूल्यों) का एक समूह है जो ऊर्ध्वाधर स्तंभों (जो उनके नाम से पहचाना जाता है) और क्षैतिज पंक्तियों के मॉडल का उपयोग करके आयोजित किया जाता है। एक डेटाबेस में एक या अधिक (आमतौर पर) टेबल्स होते हैं । और आप अपना डेटा इन तालिकाओं में संग्रहीत करते हैं। टेबल एक दूसरे के साथ संबंधित हो सकते हैं ( यहां देखें )।
स्कीमा पर अधिक:
SQL 2005 में एक स्कीमा समूह ऑब्जेक्ट्स का एक तरीका है। यह एक कंटेनर है जिसमें आप वस्तुओं को डाल सकते हैं। लोग इस वस्तु के मालिक हो सकते हैं। आप स्कीमा पर अधिकार प्रदान कर सकते हैं।
2000 में एक स्कीमा एक उपयोगकर्ता के बराबर थी। अब यह मुक्त हो गया है और काफी उपयोगी है। आप अपने सभी उपयोगकर्ता procs को एक निश्चित स्कीमा में फेंक सकते हैं और आपका व्यवस्थापक दूसरे में procs कर सकता है। उपयुक्त उपयोगकर्ता / भूमिका को पूरा करें और आप विशिष्ट प्रक्रियाओं पर EXECUTE देने के साथ हैं। अच्छा लगा।
डॉट नोटेशन इस तरह जाएगा:
Server.Database.Schema.Object
या
myserver01.Adventureworks.Accounting.Beans
ए Schema
डेटाबेस ऑब्जेक्ट्स का एक संग्रह है जिसमें तार्किक संरचनाएं भी शामिल हैं। इसमें उस उपयोगकर्ता का नाम है जो इसका मालिक है। A database
में स्कीमा की कोई भी संख्या हो सकती है। एक डेटाबेस से एक तालिका एक ही नाम के दो अलग-अलग स्कीमा में दिखाई दे सकती है। एक उपयोगकर्ता किसी भी स्कीमा को देख सकता है जिसके लिए उन्हें चुनिंदा विशेषाधिकार दिए गए हैं।
उपरोक्त कुछ उत्तरों के विपरीत, यहां मेरी समझ उनमें से प्रत्येक के साथ अनुभव पर आधारित है:
database/schema :: table
database :: (schema/namespace ::) table
database/schema/user :: (tablespace ::) table
कृपया मुझे इस पर सही करें कि क्या टेबलस्पेस वैकल्पिक है या ओरेकल के साथ नहीं है, यह एक लंबा समय है जब से मुझे उनका उपयोग करना याद है।
एक डेटाबेस में एक या अधिक नामित स्कीमा होते हैं, जो बदले में टेबल होते हैं। स्कीमा में डेटा प्रकार, फ़ंक्शंस, और ऑपरेटर सहित अन्य प्रकार के नामित ऑब्जेक्ट शामिल हैं। एक ही ऑब्जेक्ट नाम का उपयोग विभिन्न स्कीमाओं में बिना संघर्ष के किया जा सकता है; उदाहरण के लिए, स्कीमा 1 और माइस्केमा दोनों में माइएबेट नाम की टेबल हो सकती है। डेटाबेस के विपरीत, स्कीमा को अलग से अलग नहीं किया जाता है: उपयोगकर्ता डेटाबेस में किसी भी स्कीमा में उन वस्तुओं तक पहुंच सकता है, जिनसे वह जुड़ा हुआ है, यदि उसके पास ऐसा करने के लिए विशेषाधिकार हैं।
स्कीमा का उपयोग करने के लिए कई कारण हो सकते हैं:
कई उपयोगकर्ताओं को एक दूसरे के साथ हस्तक्षेप किए बिना एक डेटाबेस का उपयोग करने की अनुमति देने के लिए।
डेटाबेस समूहों को तार्किक समूहों में व्यवस्थित करने के लिए उन्हें अधिक प्रबंधनीय बनाने के लिए।
तृतीय-पक्ष अनुप्रयोगों को अलग-अलग स्कीमा में रखा जा सकता है ताकि वे अन्य वस्तुओं के नाम से न टकराएं।
स्कीमा ऑपरेटिंग सिस्टम स्तर पर निर्देशिकाओं के अनुरूप हैं, सिवाय इसके कि स्कीमा को नस्ट नहीं किया जा सकता है।
आधिकारिक दस्तावेज को https://www.postgresql.org/docs/9.1/ddl-schemas.html कहा जा सकता है
स्कीमा में डेटाबेस होते हैं।
डेटाबेस स्कीमा का हिस्सा हैं।
तो, स्कीमा> डेटाबेस।
स्कीमा में दृश्य, संग्रहीत कार्यविधि (एस), डेटाबेस (एस), ट्रिगर (एस) आदि शामिल हैं।
एक स्कीमा पूरे डेटाबेस के लिए कोई योजना नहीं है। यह एक डेटाबेस के अंदर वस्तुओं (पूर्व वस्तुओं) के सबसेट के लिए एक योजना / कंटेनर है।
यह कहने के लिए जाता है कि आपके पास एक डेटाबेस के अंदर कई ऑब्जेक्ट्स (एक्स टेबल) हो सकते हैं जो एक ही कार्यात्मक श्रेणी के अंतर्गत नहीं आते हैं। तो आप उन्हें विभिन्न स्कीमाओं के तहत समूहित कर सकते हैं और उन्हें अलग-अलग उपयोगकर्ता पहुँच अनुमतियाँ दे सकते हैं।
उस ने कहा, मैं अनिश्चित हूं कि क्या आपके पास कई स्कीमाओं के तहत एक तालिका हो सकती है। प्रबंधन स्टूडियो UI एक स्कीमा को एक टेबल पर असाइन करने के लिए ड्रॉपडाउन देता है, और इसलिए केवल एक स्कीमा का चयन करना संभव बनाता है। मुझे लगता है कि अगर आप इसे TSQL के साथ करते हैं, तो यह अलग ऑब्जेक्ट Ids के साथ 2 (या एकाधिक) विभिन्न ऑब्जेक्ट बना सकता है।
एक डेटाबेस स्कीमा तार्किक रूप से समूह ऑब्जेक्ट्स जैसे टेबल, व्यू, संग्रहीत कार्यविधियाँ आदि है। स्कीमा को ऑब्जेक्ट के कंटेनर के रूप में सोचें। और टेबल पंक्तियों और स्तंभों के संग्रह हैं। सभी तालिकाओं का संयोजन एक db बनाता है।