Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर प्रबंधन स्टूडियो (SSMS) के साथ डेटाबेस डिज़ाइन सीखें - भाग 2

यह SQL सर्वर प्रबंधन स्टूडियो के उपयोग पर केंद्रित श्रृंखला का दूसरा भाग है। आप डेटाबेस डिज़ाइन की मूल अवधारणाओं और मुद्दों को सीखेंगे और SSMS (SQL सर्वर मैनेजमेंट स्टूडियो) के साथ एक साधारण SQL डेटाबेस डिज़ाइन करने के लिए एक पूर्वाभ्यास प्राप्त करेंगे।

आवश्यकताएं

  1. SQL सर्वर 2016/2017/2019 एक्सप्रेस/डेवलपर संस्करण स्थापित है।
  2. एसएसएमएस (एसक्यूएल सर्वर प्रबंधन स्टूडियो) का नवीनतम संस्करण स्थापित है।
  3. पाठकों को SQL डेटाबेस और उपरोक्त टूल का बुनियादी ज्ञान है।
  4. बेसिक डेटाबेस डिजाइन अवधारणाएं स्पष्ट हैं।
  5. पाठक भाग 1 में चर्चा किए गए छात्र-प्रशिक्षक डिजाइन परिदृश्य से परिचित हैं।

कृपया देखें SQL सर्वर प्रबंधन स्टूडियो SSMS भाग 1 के साथ डेटाबेस डिज़ाइन सीखें उपरोक्त आवश्यकताओं के बारे में अधिक जानकारी के लिए।

SSMS के साथ छात्र-प्रशिक्षक डेटाबेस को डिज़ाइन करना

हम SSMS की मदद से अपना सरल SQL डेटाबेस बनाना शुरू करते हैं। हालांकि, इससे पहले कि हम इसे डिजाइन करना शुरू करें, नियोजित डेटाबेस का पुनर्कथन करना बेहतर है।

छात्र-प्रशिक्षक डेटाबेस पुनर्कथन

हमने एक साधारण डेटाबेस के बारे में बात की जिसमें निम्नलिखित तीन टेबल शामिल हैं:

  1. विद्यार्थी . इस तालिका में छात्रों से संबंधित रिकॉर्ड हैं।
  2. प्रशिक्षक . यह तालिका सभी प्रशिक्षकों के बारे में जानकारी संग्रहीत करती है।
  3. विद्यार्थी-प्रशिक्षक . यह हमें बताता है कि कौन सा प्रशिक्षक किस छात्र को सौंपा गया है।

महत्वपूर्ण: एक से अधिक छात्र एक प्रशिक्षक को आवंटित किए जा सकते हैं, और एक से अधिक प्रशिक्षक एक छात्र को (विभिन्न विषयों के लिए) आवंटित किए जा सकते हैं।

दूसरे शब्दों में, कई छात्रों के पास कई प्रशिक्षक हो सकते हैं।

छात्र-प्रशिक्षक तालिका को पाठ्यक्रम तालिका से बदलना

आइए हम छात्र-प्रशिक्षक डेटाबेस को थोड़ा परिष्कृत करें - हम छात्र-प्रशिक्षक तालिका का नाम बदलकर पाठ्यक्रम तालिका कर देते हैं।

इस तरह, यह समझना आसान हो जाता है कि प्रत्येक पाठ्यक्रम में कई छात्र हो सकते हैं, और प्रत्येक प्रशिक्षक के पास एक ही पाठ्यक्रम के लिए कई छात्र हो सकते हैं।

हम इन तालिकाओं के लिए निम्नलिखित स्तंभों की योजना बना रहे हैं:

  1. छात्र:छात्र आईडी, नाम।
  2. प्रशिक्षक:प्रशिक्षक आईडी, नाम।
  3. पाठ्यक्रम:CouseId, Name, StudentId, InstructorId.

एसएसएमएस (एसक्यूएल सर्वर मैनेजमेंट स्टूडियो) शुरू करें

टाइप करें SSMS Windows खोज बॉक्स . में और सॉफ़्टवेयर लॉन्च करने के लिए परिणामों की सूची में इसे क्लिक करें:

ध्यान दें कि आपको वह संस्करण दिखाई देगा जिसे आपने इंस्टॉल किया है। हमारे मामले में, यह SSMS (SQL सर्वर प्रबंधन स्टूडियो) संस्करण 18.0 है।

SQL सर्वर डेटाबेस इंजन से कनेक्ट करें

ऑब्जेक्ट एक्सप्लोरर . में विंडो में, कनेक्ट करें click क्लिक करें , और फिर डेटाबेस इंजन . चुनें :

सर्वर का नाम चुनें (उस SQL ​​​​सर्वर का नाम जिसे आपने अपनी मशीन पर स्थापित किया है)। अपनी डिफ़ॉल्ट सेटिंग्स के आधार पर डेटाबेस इंजन से कनेक्ट करें। हमारे मामले में, हम Windows प्रमाणीकरण मोड का उपयोग करते हैं:

नया स्टूडेंट इंस्ट्रक्टर SQL डेटाबेस बनाएं

कनेक्ट होने के बाद, डेटाबेस . पर राइट-क्लिक करें ऑब्जेक्ट एक्सप्लोरर . में नोड , और नया डेटाबेस… . क्लिक करें जैसा कि नीचे दिखाया गया है:

डेटाबेस का नाम टाइप करें StudentInstructor . ठीक है, . पर क्लिक करें डिफ़ॉल्ट सेटिंग्स को छोड़कर, जब तक कि आपको उन्हें बदलना न पड़े:

डेटाबेस अब बनाया जाना चाहिए।

उसी डेटाबेस का विस्तार करें इसका पता लगाने के लिए नोड:

छात्र तालिका बनाएं

अब हमें स्टूडेंट इंस्ट्रक्टर डेटाबेस में टेबल बनाने की जरूरत है।

विस्तृत करें विद्यार्थी प्रशिक्षक डेटाबेस नोड:उस पर क्लिक करें, और फिर टेबल्स . पर राइट-क्लिक करें

नया पर जाएं -> तालिका… इस प्रकार है:

हम टेबल में एक-एक करके कॉलम जोड़ने जा रहे हैं। हम StudentId . से शुरू करते हैं ।

StudentId . में टाइप करें कॉलम नाम और int . चुनें डेटा प्रकार, क्योंकि यह संख्यात्मक होने जा रहा है (केवल संख्याओं के साथ):

प्राथमिक कुंजी सेट करें

छात्र आईडी कॉलम तालिका की प्राथमिक कुंजी भी होगी। यह हमें एक छात्र (पंक्ति/रिकॉर्ड) को विशिष्ट रूप से पहचानने में मदद करेगा।

StudentId . की ओर इशारा करते हुए तीर पर राइट-क्लिक करें कॉलम और क्लिक करें प्राथमिक कुंजी सेट करें :

प्राथमिक कुंजी (StudentId) में पहचान जोड़ें

कॉलम पर सेट की गई पहचान नए रिकॉर्ड डालने पर स्वचालित रूप से इसके मान को बढ़ा देती है। यह एक सीरियल नंबर की तरह है, जो हर नए रिकॉर्ड के साथ बढ़ता जाता है।

यदि हम प्राथमिक कुंजी कॉलम को पहचान कॉलम के रूप में सेट नहीं करते हैं, तो हम प्रत्येक नए रिकॉर्ड के लिए मैन्युअल रूप से आईडी जोड़ते हैं। यह, इसे सेट अप करना एक अच्छा विचार है।

उदाहरण के लिए, छात्र तालिका में डाला गया पहला रिकॉर्ड एक स्वचालित आईडी 1 होगा, और अगला एक होगा StudentId 2, आदि। अगर हम पहचान सेट करते हैं।

नीचे स्क्रॉल करें कॉलम गुण एक बार विंडो StudentId प्राथमिक कुंजी कॉलम तब तक चुना जाता है जब तक आपको पहचान विशिष्टता . नहीं मिल जाती संपत्ति।

पहचान विशिष्टता को निम्नानुसार सेट करें (पहचान है) से प्रारंभ करें :

पहचान विशिष्टता :हां
(पहचान है) :हां
पहचान वृद्धि :1
पहचान बीज :1

विद्यार्थी तालिका में नाम कॉलम जोड़ें

इसके बाद, एक और कॉलम जोड़ें – नाम मेज पर। वर्कर(45) . का प्रयोग करें डेटा प्रकार और अनचेक करें नल की अनुमति दें इस प्रकार है:

याद रखें कि VARCHAR(45) कॉलम (नाम) में संग्रहीत किए जाने वाले 45 वर्णों तक वर्ण डेटा (प्रकार) का प्रतिनिधित्व करता है। जब हम नल को अनुमति दें . को अनचेक करते हैं , हमें एक विद्यार्थी . को बचाने के लिए कॉलम में यह मान देना होगा रिकॉर्ड।

टेबल सेव करें (विद्यार्थी)

अपने परिवर्तनों को सहेजना सबसे महत्वपूर्ण कदम है। हमारे मामले में, हम केवल सहेजें . पर क्लिक करके नई बनाई गई तालिका को सहेजते हैं टूलबार पर या कीबोर्ड शॉर्टकट CTRL+S . द्वारा डिस्क आइकन ।

तालिका का नाम टाइप करें – विद्यार्थी - इसे सहेजते समय:

छात्र तालिका देखें (ऑब्जेक्ट एक्सप्लोरर)

तालिका सफलतापूर्वक सहेजे जाने के बाद, तालिकाओं . को विस्तृत करें StudentInstructor . का नोड नई बनाई गई तालिका का पता लगाने के लिए डेटाबेस:

InstrutorId और नाम कॉलम के साथ एक इंस्ट्रक्टर टेबल बनाएं

इसी तरह, टेबल्स . पर राइट-क्लिक करें फिर से नोड। इस बार, प्रशिक्षक . नामक एक नई तालिका बनाएं ।

फिर, InstructorId . नामक एक नया कॉलम जोड़ें int . का डेटा टाइप करें और इसे प्राथमिक कुंजी के रूप में सेट करें जैसा कि नीचे दिखाया गया है:

अगला चरण पहचान adding जोड़ रहा है कॉलम के लिए InstructorId :

इसके बाद नाम जोड़ें VARCHAR(45) . का कॉलम प्रशिक्षक . को डेटा प्रकार तालिका, और इस कॉलम के लिए नल की अनुमति न दें, ठीक वैसे ही जैसे नाम . के लिए विद्यार्थी . का स्तंभ तालिका:

एक प्रशिक्षक तालिका सहेजें और देखें (ऑब्जेक्ट एक्सप्लोरर)

CTRL+S . दबाकर तालिका सहेजें शॉर्टकट या सेव आइकन पर क्लिक करना। तालिका को प्रशिक्षक . के रूप में नाम दें ।

टेबल्स . पर राइट-क्लिक करें StudentInstructor . के अंतर्गत नोड डेटाबेस और ताज़ा करें . क्लिक करें अब दोनों टेबल देखने के लिए:

पहचान के साथ CourseId प्राथमिक कुंजी कॉलम के साथ पाठ्यक्रम तालिका बनाएं

हमें डेटाबेस में एक और तालिका जोड़नी है - पाठ्यक्रम तालिका, जिसमें छात्र और प्रशिक्षक दोनों तालिकाओं के आईडी होंगे। कई-से-अनेक संबंध होंगे (हमारी आवश्यकताओं के अनुसार कई छात्रों को कई प्रशिक्षकों को आवंटित किया जा सकता है)।

एक नई तालिका बनाएं पाठ्यक्रम पाठ्यक्रम आईडी . के साथ प्राथमिक कुंजी:

कॉलम में उसी तरह से पहचान जोड़ें जैसे हमने StudentId . के लिए किया था और प्रशिक्षक आईडी कॉलम।

नाम, छात्र आईडी, और कोर्स आईडी कॉलम जोड़ें

इसके बाद, एक नामजोड़ें प्रकार का स्तंभ VARCHAR(45) पाठ्यक्रम . के लिए तालिका के बाद StudentId . जोड़कर और पाठ्यक्रम आईडी int . के कॉलम डेटा प्रकार:

नल को अनुमति दें . को अनचेक करना न भूलें यह सुनिश्चित करने के लिए कि इन कॉलम मानों को इनपुट किए बिना एक रिकॉर्ड सहेजा नहीं जाएगा।

इस तरह, हम सुनिश्चित करते हैं कि a पाठ्यक्रम एक छात्र . होना चाहिए और एक प्रशिक्षक इससे पहले कि इसे डेटाबेस में सहेजा जा सके। उसके ऊपर, छात्र और प्रशिक्षक उनकी मूल तालिका में मौजूद होना चाहिए।

सहेजें और त्वरित जांच करें

तालिका सहेजें और नाम इस प्रकार है पाठ्यक्रम:

अंत में, रीफ्रेश करें ऑब्जेक्ट एक्सप्लोरर . में सभी टेबल और नई बनाई गई टेबल को अन्य के साथ देखें :

डेटाबेस आरेख में सभी तालिकाएं जोड़ें

अब, हमें तालिकाओं के बीच संबंध बनाने की आवश्यकता है ताकि दोनों विद्यार्थी और प्रशिक्षक टेबल पाठ्यक्रम . से जुड़ गए उनकी प्राथमिक कुंजी के माध्यम से तालिका।

उदाहरण के लिए, StudentId विद्यार्थी . में तालिका StudentId . से जुड़ी है पाठ्यक्रम . में टेबल। इसी तरह, InstructorId प्रशिक्षक . में तालिका InstructorId . से जुड़ी है पाठ्यक्रम . में टेबल।

हम इसे डेटाबेस आरेख के साथ प्राप्त कर सकते हैं।

विद्यार्थी प्रशिक्षक के पास जाएं ऑब्जेक्ट एक्सप्लोरर . में डेटाबेस और डेटाबेस आरेख पर राइट-क्लिक करें -> नया डेटाबेस आरेख :

हां Click क्लिक करें :

CTRL . का उपयोग करें सभी मौजूदा तालिकाओं का चयन करने और उन्हें डेटाबेस आरेख . में जोड़ने के लिए कुंजी :

डेटाबेस आरेख देखें और पाठ्यक्रम बनाने के लिए तालिकाओं को पुनर्व्यवस्थित करें (तालिका पर क्लिक करें और इसे स्थानांतरित करें) टेबल स्टैंड बीच में, विद्यार्थी . के बीच में और प्रशिक्षक टेबल:

छात्र तालिका को पाठ्यक्रम तालिका से लिंक करें

हमें विद्यार्थी . के बीच संबंध बनाने की आवश्यकता है और पाठ्यक्रम StudentId . को जोड़कर विद्यार्थी . में StudentId . के साथ तालिका पाठ्यक्रम . में कॉलम टेबल।

StudentId key . को खीचें और इसे StudentId कॉलम . में छोड़ दें पाठ्यक्रम तालिका . में . ठीकक्लिक करें :

यह एक विदेशी कुंजी संबंध create बनाएगा पाठ्यक्रम और छात्र तालिकाओं के बीच - यह सुनिश्चित करता है कि केवल छात्र तालिका में सहेजे गए छात्र ही पाठ्यक्रम तालिका में सहेजे जाएंगे:

प्रशिक्षक तालिका को पाठ्यक्रम तालिका से लिंक करें

इसी तरह, आपको प्रशिक्षक . को लिंक करना होगा पाठ्यक्रम . के साथ तालिका तालिका ताकि InstructorId प्रशिक्षक . का प्राथमिक कुंजी स्तंभ तालिका InstructorId . को पास कर दी जाएगी पाठ्यक्रम . में टेबल।

इस प्रकार, हम सुनिश्चित करते हैं कि InstructorId प्राथमिक कुंजी विदेशी कुंजी . के रूप में मौजूद है पाठ्यक्रम . में टेबल। इसका मतलब है कि हम किसी भी प्रशिक्षक के . को स्टोर कर सकते हैं पाठ्यक्रम . से पंक्ति तालिका केवल तभी जब वह प्रशिक्षक मूल प्रशिक्षक . में मौजूद हो टेबल। इस तरह, हम मानक अभ्यास के अनुसार डेटाबेस की स्थिरता और अखंडता बनाए रखते हैं।

डेटाबेस आरेख सहेजें

अंत में, सहेजें . पर क्लिक करके डेटाबेस आरेख को सहेजें टूलबार पर आइकन:

छात्र तालिका में डेटा जोड़ें

छात्र तालिका से शुरू करके, बनाई गई तालिकाओं में कुछ डेटा जोड़ने का समय आ गया है। हम तालिका में तीन छात्रों के रिकॉर्ड जोड़ेंगे।

विद्यार्थी . पर राइट-क्लिक करें तालिका और शीर्ष 200 पंक्तियों को संपादित करें . पर क्लिक करें (चिंता न करें, आप 200 पंक्तियों को संपादित नहीं करने जा रहे हैं):

निम्नलिखित नाम टाइप करें और दर्ज करें . क्लिक करें इन अभिलेखों को सहेजने के लिए:

फिर, विंडो बंद करें - ऊपर दाईं ओर क्रॉस पर क्लिक करें या CTRL+F4 दबाएं।

कृपया ध्यान दें कि छात्र आईडी 1,2 और 3 स्वचालित रूप से रिकॉर्ड में आवंटित कर दिए जाते हैं। हम उनका बाद में पाठ्यक्रम . में उपयोग करेंगे टेबल।

निर्देशक तालिका में डेटा जोड़ें

अब, हमें मार्टिन . नामक दो प्रशिक्षकों को जोड़ने की आवश्यकता है और असद . इस प्रकार, निम्न डेटा को प्रशिक्षक . में जोड़ें तालिका:

इसी तरह, इन आईडी 1 और 2 को ध्यान में रखें। आप अभी के लिए इस विंडो को बंद कर सकते हैं।

पाठ्यक्रम तालिका में डेटा जोड़ें

हमारे पास एक तरफ छात्र हैं और दूसरी तरफ प्रशिक्षक हैं। लेकिन हम केवल उन्हीं छात्रों को जोड़ सकते हैं जो पहले से ही छात्र तालिका में हैं, और यही बात प्रशिक्षकों पर भी लागू होती है।

आइए हम तीनों छात्रों को डेटाबेस . में नामांकित करें पाठ्यक्रम और इस पाठ्यक्रम . के लिए एक प्रशिक्षक नियुक्त करें साथ ही:

पाठ्यक्रम तालिका सामग्री देखें

डेटा देखने के लिए, पाठ्यक्रम . पर राइट-क्लिक करें तालिका -> शीर्ष 1000 पंक्तियों का चयन करें:

बधाई हो! आपने एसएसएमएस (एसक्यूएल सर्वर मैनेजमेंट स्टूडियो) के साथ एक साधारण डेटाबेस डिजाइन करना सफलतापूर्वक सीख लिया है। साथ ही हमने नए रिकॉर्ड डालने और सम्मिलित डेटा देखने के लिए प्रशिक्षित किया है।

करने के लिए चीज़ें

अब जब आप SSMS के साथ एक डेटाबेस डिज़ाइन कर सकते हैं, तो अपने कौशल को और बेहतर बनाने के लिए निम्न चीज़ें आज़माएँ:

  1. विद्यार्थी और प्रशिक्षक तालिका की सामग्री देखने का प्रयास करें।
  2. व्यावसायिक इंटेलिजेंस called नामक एक अन्य पाठ्यक्रम जोड़ने का प्रयास करें और उस पाठ्यक्रम में सभी तीन छात्रों को नामांकित करें, साथ ही प्रशिक्षक असद (InstructorId:2)
  3. को नियुक्त करें।
  4. याद रखें कि आप लेख से वास्तविक डेटाबेस डिज़ाइन को निम्नलिखित बातों से सुधार सकते हैं:
    • पाठ्यक्रम का नाम बदलना कक्षा . के रूप में तालिका टेबल;
    • नाम को हटाया जा रहा है कक्षा . से कॉलम टेबल;
    • पाठ्यक्रम आईडी को बदलना ClassId . के साथ कॉलम;
    • एक अलग पाठ्यक्रम बनाना कोर्स आईडी और नाम कॉलम के साथ टेबल, ठीक वैसे ही जैसे स्टूडेंट और इंस्ट्रक्टर टेबल के लिए;
    • एक नया पाठ्यक्रम आईडी जोड़ना कक्षा तालिका में कॉलम और CourseId . को लिंक करना पाठ्यक्रम . के पाठ्यक्रम आईडी . के साथ तालिका कक्षा . में कॉलम टेबल, बिल्कुल स्टूडेंट और इंस्ट्रक्टर की तरह।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कॉलम नाम के लिए एक पैरामीटर का उपयोग करके ऑर्डर करें

  2. SQL सर्वर में अल्पविराम से अलग की गई सूची के रूप में क्वेरी परिणाम कैसे लौटाएं - STRING_AGG ()

  3. SQL सर्वर में संदर्भित निकाय खोजें:sys.dm_sql_referenced_entities

  4. विभिन्न SQL सर्वर उदाहरणों के लिए SSMS में स्थिति पट्टी का रंग कैसे सेट करें - SQL सर्वर / TSQL ट्यूटोरियल भाग 6

  5. संदेश 8672, स्तर 16, राज्य 1, पंक्ति 1 MERGE कथन ने एक ही पंक्ति को एक से अधिक बार अद्यतन या हटाने का प्रयास किया