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

MySQL कार्यक्षेत्र के साथ दृश्य डेटाबेस निर्माण

आज के ट्यूटोरियल में, आप सीखेंगे कि डेटाबेस आरेख बनाने के लिए विज़ुअल डेटाबेस मॉडलिंग उपयोगिता का उपयोग कैसे करें और स्वचालित रूप से SQL उत्पन्न करें। विशेष रूप से, हम समीक्षा करेंगे कि MySQL वर्कबेंच, एक क्रॉस-प्लेटफ़ॉर्म, विज़ुअल डेटाबेस डिज़ाइन टूल का उपयोग कैसे करें।

MySQL कार्यक्षेत्र क्या है?

MySQL वर्कबेंच, MySQL द्वारा विकसित एक शक्तिशाली टूल है जिसमें कार्यक्षमता के तीन प्राथमिक क्षेत्र हैं:

  • एसक्यूएल विकास :MySQL क्वेरी ब्राउज़र को बदल देता है। उपयोगकर्ता को मौजूदा डेटाबेस से कनेक्ट करने और SQL क्वेरी को संपादित और निष्पादित करने की अनुमति देता है।
  • डेटा मॉडलिंग :पूर्ण विज़ुअल डेटाबेस डिज़ाइन और मॉडलिंग।
  • डेटाबेस व्यवस्थापन :MySQL व्यवस्थापक को प्रतिस्थापित करता है। सर्वर शुरू/बंद करने, उपयोगकर्ता खाते बनाने, कॉन्फ़िगरेशन फ़ाइलों को संपादित करने आदि के लिए ग्राफिक इंटरफ़ेस।

इस ट्यूटोरियल में, हम डेटा मॉडलिंग . पर ध्यान केंद्रित करेंगे खरोंच से डेटाबेस बनाने के पहलू, और फिर हमारी जेनरेट की गई SQL स्क्रिप्ट को निष्पादित करने और MySQL के भीतर डेटाबेस बनाने के लिए SQL संपादक पर एक त्वरित नज़र डालें।

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

नोट:यह ट्यूटोरियल समुदाय ओएसएस संस्करण संस्करण 5.2 (5.2.16) पर आधारित है, वर्तमान में लेखन के समय (अप्रैल 2010) बीटा रिलीज में है।

हमारे डेटाबेस की योजना बनाना

MySQL वर्कबेंच का उपयोग करने का तरीका जानने के लिए, हम एक उदाहरण के रूप में ऑनलाइन कक्षाओं के लिए एक बहुत ही सरल डेटाबेस का उपयोग करेंगे। मान लीजिए कि शिक्षकों का एक समूह स्काइप या किसी अन्य वीडियो कॉन्फ्रेंसिंग सॉफ़्टवेयर का उपयोग करके कई विषयों के लिए ऑनलाइन कक्षाएं देना चाहता है। हमारी छोटी परियोजना के लिए, हमने तय किया है कि हमें निम्नलिखित जानकारी संग्रहीत करने की आवश्यकता है:

अपना आरेख बनाते समय, हमें डेटा के इन समूहों के बीच संबंधों को भी जानना होगा; इसलिए अब हम इसके बारे में बेहतर ढंग से सोचें!

  • एक शिक्षक कई विषयों को पढ़ा सकता है
  • एक विषय को कई शिक्षक पढ़ा सकते हैं
  • प्रत्येक कक्षा में केवल एक शिक्षक है
  • एक शिक्षक कई कक्षाओं को पढ़ा सकता है
  • एक छात्र कई कक्षाओं में भाग ले सकता है
  • एक कक्षा में कई छात्र होते हैं
  • एक कक्षा में कई घंटे (एक सप्ताह में) हो सकते हैं
  • एक विशेष दिन और घंटे में, कई कक्षाएं हो सकती हैं
  • कक्षा एक विषय के बारे में है
  • एक विषय कई कक्षाओं में पढ़ाया जा सकता है

इस समय, हमारे पास इस शो के स्टार से मिलने के लिए आवश्यक सभी जानकारी है...

MySQL वर्कबेंच में भेजें

कार्यक्षेत्र शुरू करने का समय आ गया है। होम स्क्रीन के डेटा मॉडलिंग भाग में, हम 'नया ईईआर मॉडल बनाएं' . पर क्लिक करते हैं , और निम्न स्क्रीन प्रकट होती है:

जब हम एक नया डेटाबेस मॉडल बनाते हैं, तो इसमें डिफ़ॉल्ट mydb स्कीमा होता है। हम इसका नाम बदल सकते हैं और इसे हमारे डीबी स्कीमा के रूप में उपयोग कर सकते हैं। एक डेटाबेस मॉडल में कई अलग-अलग स्कीमा हो सकते हैं।

दाईं ओर कैटलॉग हमारे स्कीमा में प्रत्येक तत्व को दिखाएगा, और यदि आवश्यक हो तो हमें तत्वों को आरेखों में खींचने और छोड़ने की अनुमति देगा।

भौतिक स्कीमा और ईईआर आरेखों के लिए अलग-अलग अनुभाग होने और एक डेटाबेस मॉडल में कई स्कीमाओं को शामिल करने की संभावना भ्रमित करने वाली हो सकती है। अगला खंड इन अवधारणाओं को बताता है और वे कैसे संबंधित हैं।

स्पष्टीकरण अवधारणाएं

भौतिक स्कीमा में डेटाबेस को परिभाषित करने के लिए सभी आवश्यक टुकड़े होते हैं:टेबल, कॉलम, प्रकार, इंडेक्स, बाधाएं इत्यादि। यही वह है जिसे हम वास्तव में परिभाषित कर रहे हैं। ग्राफिकल मॉडल में जोड़ी गई प्रत्येक वस्तु भौतिक स्कीमा में भी दिखाई देती है। वास्तव में, यह हमारे स्कीमा को परिभाषित करने का एक दृश्य तरीका है।

हमारे पास एक ही डेटाबेस मॉडल के लिए कई स्कीमा हो सकते हैं उसी तरह हमारे पास एक MySQL सर्वर में कई डेटाबेस हो सकते हैं। प्रत्येक स्कीमा एक MySQL डेटाबेस होगा। उदाहरण के लिए, अगली स्क्रीन में, हमारे पास दो स्कीमा टैब हैं:

यदि हम SQL स्क्रिप्ट जनरेट करते हैं, तो हमारे पास दो अलग-अलग CREATE DATABASE स्टेटमेंट होंगे - वास्तव में हमारे पास CREATE SCHEMA होगा जो सिर्फ एक पर्यायवाची है।

CREATE SCHEMA IF NOT EXISTS `schema1`;
CREATE SCHEMA IF NOT EXISTS `schema2`;
<ब्लॉकक्वॉट>

"ईईआर का अर्थ है विस्तारित (या उन्नत) इकाई-संबंध . ईईआर आरेख मानक प्रतीकों का उपयोग करके डेटा और डेटा के बीच संबंधों को मॉडल करने का एक तरीका है"

SHOW DATABASES का उपयोग करते समय उन्हें MySQL सर्वर होस्ट के भीतर डेटाबेस के रूप में सूचीबद्ध किया जाएगा।

अब, EER आरेख क्या है?. EER का अर्थ है विस्तारित (या उन्नत) इकाई-संबंध>. ईईआर आरेख मानक प्रतीकों का उपयोग करके डेटा और डेटा के बीच संबंधों को मॉडल करने का एक तरीका है। ईईआर मॉडल जटिल हो सकते हैं, लेकिन MySQL वर्कबेंच सभी संभावित ग्राफिकल तत्वों के केवल एक सबसेट का उपयोग करता है, क्योंकि इस आरेख का उद्देश्य (इस टूल में) प्रत्येक तत्व को भौतिक स्कीमा से मैप करना है।

हम संपूर्ण डेटाबेस, या केवल छोटे भागों को परिभाषित करने के लिए EER आरेख का उपयोग कर सकते हैं। उदाहरण के लिए, हमारे पास परिभाषित पांच टेबल के साथ एक स्कीमा हो सकता है, और फिर विजुअल एडिटर का उपयोग करके दो और टेबल को परिभाषित करने के लिए एक नया आरेख बना सकते हैं। आरेख में केवल दो तालिकाएँ होंगी, लेकिन उन दो तालिकाओं को भी पिछले पाँच के साथ, स्कीमा में शामिल किया जाएगा।

हमारे टेबल बनाना

हमारे प्रारंभिक उदाहरण पर वापस; हमें नाम पर डबल क्लिक करके डिफ़ॉल्ट स्कीमा का नाम बदलना होगा। इस बिंदु पर, हमारे पास दो संभावनाएं हैं:हम टेबल जोड़ें आइकन का उपयोग करके अपने भौतिक स्कीमा में टेबल जोड़ना शुरू कर सकते हैं, या हम एक ईईआर आरेख शुरू कर सकते हैं और वहां सभी टेबल जोड़ सकते हैं।

मैं शुरुआत से एक नया आरेख जोड़ना पसंद करता हूं और अपनी स्कीमा को दृष्टिगत रूप से बनाना पसंद करता हूं; हालांकि, यह दिखाने के लिए कि दोनों तरीकों से इसे कैसे करना है, हम स्कीमा टैब में पहले दो टेबल बनाने जा रहे हैं, और फिर ईईआर आरेख के साथ जारी रखें।

जब आप तालिका जोड़ें . पर क्लिक करते हैं आइकन, तालिका संपादक नीचे एक टैब के रूप में खुलता है:

तालिका संपादक का उपयोग करते हुए, हम अपने कॉलम में प्रवेश करने के लिए तालिका का नाम बदलते हैं और कॉलम टैब (संपादक के नीचे के टैब में) पर स्विच करते हैं। हम डेटा प्रकार चुन सकते हैं (सभी MySQL डेटा प्रकारों के साथ एक ड्रॉप-डाउन सूची है), यदि आवश्यक हो, तो डिफ़ॉल्ट मान असाइन करें, और निम्न में से किसी भी गुण को चिह्नित करने के लिए हमारे पास सात चेकबॉक्स हैं:

  • पीके - प्राथमिक कुंजी
  • एनएन - शून्य नहीं
  • यूक्यू - अद्वितीय
  • बिन - बाइनरी
  • संयुक्त राष्ट्र - अहस्ताक्षरित
  • ZF - जीरो फिल
  • एआई - ऑटोइनक्रिकमेंट

विज़ुअल जाएं

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

अगर हम मेनू में जाते हैं, तो कैटलॉग ऑब्जेक्ट्स से मॉडल/डायग्राम बनाएं . चुनें , अब हमारे पास हमारा आरेख है, और जारी रखने के लिए तैयार हैं।

बाईं ओर तालिका चिह्न का चयन करें; सूचक एक छोटी सी मेज के साथ हाथ में बदल जाता है। इसके बाद, नई तालिका बनाने के लिए कैनवास में कहीं भी क्लिक करें।

अब आपको बस टेबल पर डबल क्लिक करना है, और संपादक टैब नाम, कॉलम, प्रकार आदि को संपादित करने के लिए प्रकट होता है- ठीक उसी तरह जैसे हमने पहले किया था।

नई तालिकाओं के लिए कॉलम विवरण दर्ज करने के बाद, हम संबंध बनाना शुरू करने के लिए तैयार होंगे।

रिश्ते बनाना

बाईं ओर लंबवत टूल बार में, संबंध बनाने के लिए हमारे पास छह टूल उपलब्ध हैं।

आखिरी के बारे में चिंता न करें, हम इसे बाद में समझाएंगे। 1:1 और 1:n संबंधों के लिए, हमारे पास दो अलग-अलग प्रकार के प्रतीक हैं:पहचानना और गैर-पहचानना। इसका क्या मतलब है?

<ब्लॉकक्वॉट>

एक रिश्ते की पहचान तब मानी जाती है जब एक टेबल पूरी तरह से दूसरे पर निर्भर हो।

एक रिश्ते की पहचान तब मानी जाती है जब एक टेबल पूरी तरह से दूसरे पर निर्भर हो। उस तालिका में एक पंक्ति दूसरी तालिका में एक पंक्ति पर निर्भर करती है। उपयोगकर्ताओं के लिए फोन स्टोर करने के लिए एक अलग टेबल रखना एक सामान्य उदाहरण है। इसे किसी अन्य तालिका में रखना आवश्यक हो सकता है, क्योंकि एक उपयोगकर्ता के लिए कई फ़ोन हो सकते हैं, लेकिन उस तालिका में प्रत्येक पंक्ति पूरी तरह से उपयोगकर्ता पर निर्भर है - यह संबंधित है उपयोगकर्ता के लिए।

आपको पता होना चाहिए कि रिश्तों के कुछ निहितार्थ होते हैं। यदि हम MySQL में फिजिकल टेबल बनाना चाहते हैं, तो रिश्तों को किसी तरह से मैप किया जाना चाहिए। संबंधों को तालिकाओं में मैप करने के कुछ नियम हैं:

  • 1:1 संबंध . किसी एक तालिका की प्राथमिक कुंजी को दूसरी तालिका में विदेशी कुंजी के रूप में शामिल किया गया है।
  • 1:n संबंध . '1' साइड में टेबल की प्राइमरी की को 'n' साइड में टेबल में फॉरेन की के रूप में जोड़ा जाता है।
  • n:m संबंध . एक नई तालिका (तालिका में शामिल हों) बनाई गई है। प्राथमिक कुंजी दो मूल तालिकाओं की प्राथमिक कुंजियों से बनी होती है।

रिश्तों की पहचान आम तौर पर कई-से-अनेक संबंधों से बनाई गई तालिका में शामिल होने के लिए उपयोग की जाती है। ये नई तालिकाएं पूरी तरह से दो मूल तालिकाओं पर निर्भर हैं।

साथ ही, 1:1 और 1:n संबंधों की पहचान करने के मामले में, शुरू की गई विदेशी कुंजी उस तालिका के लिए प्राथमिक कुंजी का हिस्सा होगी, जो एक समग्र प्राथमिक कुंजी बनाती है।

अच्छी खबर यह है कि MySQL वर्कबेंच इन नियमों को हम में से अधिकांश से बेहतर जानता है। हम बस अपनी रेखाएँ खींचते हैं, और विदेशी कुंजियाँ या जॉइन टेबल अपने आप बन जाएँगी। हम इसे मैन्युअल रूप से करना भी चुन सकते हैं, जैसा कि हम जल्द ही देखेंगे।

संबंध बनाने के लिए, आइकन पर क्लिक करें, और फिर संबंधित करने के लिए दो तालिकाओं पर क्लिक करें। एक-से-अनेक संबंधों के लिए, पहले "कई" साइड टेबल पर क्लिक करें, और फिर "एक" साइड टेबल पर। आइए देखें कि इसे n:m शिक्षक-विषय संबंध और 1:n शिक्षक-कक्षाओं के लिए कैसे करें।

विदेशी कुंजियों और जॉइन टेबल के लिए निर्दिष्ट डिफ़ॉल्ट नाम को संपादित करें/प्राथमिकताएं/मॉडल टैब में वैश्विक रूप से बदला जा सकता है , या केवल मॉडल/मॉडल विकल्प . में वर्तमान प्रोजेक्ट के लिए ।

यदि हम नहीं चाहते कि टेबल और विदेशी कुंजियाँ इस तरह से उत्पन्न हों, तो हम रहस्यमय "छठे प्रतीक" का उपयोग कर सकते हैं।

"छठा प्रतीक" मौजूदा कॉलम का उपयोग करके एक संबंध बनाता है, जिसका अर्थ है कि आपने पहले से ही अपनी तालिकाओं में आवश्यक विदेशी कुंजी शामिल कर ली है और आवश्यक जॉइन टेबल (एन:एम मैपिंग टेबल) बनाया है। चूंकि हमने पहले ही ये जॉइन टेबल बना लिए हैं, इसलिए हमें n:m संबंधों की आवश्यकता नहीं है; केवल 1:n उपलब्ध है।

जब हम अपने सभी रिश्तों को परिभाषित कर लेते हैं, तो हमारा आरेख इस तरह दिखना चाहिए:

ध्यान रखें कि हम डायग्राम के लिए डिफ़ॉल्ट MySQL वर्कबेंच नोटेशन का उपयोग कर रहे हैं, लेकिन आप इसे मॉडल/ऑब्जेक्ट नोटेशन में बदल सकते हैं। और मॉडल/रिलेशनशिप नोटेशन। यह क्लासिक नोटेशन में हमारे मॉडल का एक उदाहरण है:

इस बिंदु पर, हमारा मॉडल तैयार है, और हम MySQL डेटाबेस बनाने के लिए SQL उत्पन्न कर सकते हैं।

एसक्यूएल बनाना

फ़ाइल/निर्यात/अग्रेषित इंजीनियर SQL क्रिएट स्क्रिप्ट चुनें . हम अपनी फ़ाइल जनरेट करने से केवल तीन विज़ार्ड स्क्रीन दूर हैं!


हमारे पास जेनरेट किए गए SQL को सहेजने से पहले उसकी समीक्षा करने और उसे संपादित करने का विकल्प भी है:

और बस। फिनिश पर क्लिक करने पर, SQL स्क्रिप्ट जेनरेट और सेव हो जाएगी। अब, हम इसे अपनी इच्छानुसार किसी भी तरह से उपयोग कर सकते हैं। हम इसे कमांड-लाइन mysql क्लाइंट का उपयोग करके लोड कर सकते हैं:

mysql> स्रोत scriptName.sql

या, हम काम खत्म करने के लिए MySQL वर्कबेंच का उपयोग कर सकते हैं, हमारे MySQL सर्वर से जुड़ सकते हैं और स्क्रिप्ट चला सकते हैं।

MySQL सर्वर से कनेक्ट करना

डेटाबेस/कनेक्शन प्रबंधित करें . चुनें मेनू से, और नया . क्लिक करें ।

यदि आप यहां पासवर्ड सेट नहीं करना चाहते हैं, तो जरूरत पड़ने पर आपको इसके लिए कहा जाएगा। आपके पैरामीटर सही हैं या नहीं, यह जांचने के लिए "कनेक्शन का परीक्षण करें" पर क्लिक करें और फिर बंद करें पर क्लिक करें।

अब, स्क्रिप्ट लोड करने के लिए, हम SQL संपादक का उपयोग करेंगे। मुख्य मेनू में डेटाबेस/क्वेरी डेटाबेस select चुनें; एक विंडो आपको एक कनेक्शन चुनने के लिए प्रेरित करती है, और फिर SQL संपादक टैब खुल जाता है।

अब SQL स्क्रिप्ट को निष्पादित करने के लिए लाइटनिंग आइकन पर क्लिक करें, और आपका डेटाबेस जेनरेट हो जाएगा!

हम डेटाबेस/फॉरवर्ड इंजीनियर का उपयोग करके वास्तविक फ़ाइल को संदर्भित किए बिना सीधे मॉडल से MySQL डेटाबेस भी उत्पन्न कर सकते थे। मेनू से; हालांकि, मुझे स्क्रिप्ट जेनरेट करना और फिर अपनी इच्छानुसार इसका उपयोग करना उपयोगी लगता है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL 'user_id' जहां क्लॉज अस्पष्ट समस्या है

  2. MySQL में UPPER () फ़ंक्शन कैसे काम करता है

  3. MySQL में utf8mb4 और utf8 चारसेट में क्या अंतर है?

  4. MySQL में प्राथमिक कुंजी निकालें

  5. MySQL में तिथियों की तुलना करें