परिचय
यह ट्यूटोरियल Oracle SQL डेवलपर डेटा मॉडल टूल का परिचय देता है जिसका उपयोग किसी मौजूदा डेटाबेस स्कीमा को एक रिलेशनल और लॉजिकल मॉडल में रिवर्स इंजीनियर करने के लिए किया जा सकता है। एक विशिष्ट डेटाबेस विकास प्रक्रिया पर विचार करें जो व्यावसायिक उपयोगकर्ता आवश्यकताओं के साथ शुरू होती है जो कि एंटिटी रिलेशनशिप मॉडल के रूप में तैयार की जाती है जिसमें एंटिटीज, एट्रीब्यूट्स, आइडेंटिफायर और रिलेशनशिप शामिल होते हैं। यह ई-आर मॉडल तब एक रिलेशनल मॉडल में तब्दील हो जाता है जिसमें संबंध, गुण, कुंजी और विदेशी कुंजी शामिल होते हैं। रिलेशनल मॉडल उन्हें एक रिलेशनल डेटाबेस में टेबल्स, कॉलम और बाधाओं के एक सेट के रूप में लागू किया जा सकता है जिसमें अद्वितीय, प्राथमिक कुंजी और विदेशी कुंजी बाधाएं शामिल हैं।
हम ऐसी स्थितियों में आ सकते हैं जहां हमारे पास पहले से लागू एक रिलेशनल डेटाबेस स्कीमा है लेकिन मूल रिलेशनल मॉडल या एंटिटी रिलेशनशिप मॉडल की कमी है जिसका उपयोग डेटाबेस को डिजाइन करने के लिए किया गया था। इन स्थितियों में, हम रिवर्स इंजीनियरिंग . द्वारा ई-आर मॉडल को फिर से बनाने में सक्षम हो सकते हैं डेटाबेस स्कीमा से मॉडल। इसे पूरा करने के लिए हमें निम्नलिखित कदम उठाने होंगे:
- डेटाबेस स्कीमा कनेक्ट करें और सभी मौजूदा तालिकाओं, उनके स्तंभों और उनकी प्राथमिक और विदेशी कुंजी बाधाओं की पहचान करें।
- रिलेशनल मॉडल का निर्माण करें जो तालिकाओं और बाधाओं के मौजूदा सेट से मेल खाता हो।
- रिलेशनल मॉडल से ई-आर मॉडल का अनुमान लगाएं।
डेटा मॉडल शब्दावली
Oracle SQL डेवलपर उन शब्दों का उपयोग करता है जो आमतौर पर अकादमिक डेटाबेस पाठ्यक्रमों में उपयोग किए जाने वाले शब्दों से थोड़े भिन्न होते हैं। डेटाबेस स्कीमा से निकाले गए भौतिक मॉडल (कुंजी, विदेशी कुंजी संबंध और अनुक्रमणिका के साथ) को Oracle SQL डेवलपर द्वारा "रिलेशनल मॉडल" कहा जाता है। संबंध रेखाओं वाली संस्थाओं के सेट को Oracle SQL डेवलपर द्वारा "लॉजिकल मॉडल" कहा जाता है।
आवश्यकताएं
इस ट्यूटोरियल को शुरू करने से पहले, सुनिश्चित करें कि आप Oracle SQL डेवलपर संस्करण 4.x या नए के साथ काम कर रहे हैं। दुर्भाग्य से, Oracle 12c अभी भी SQL डेवलपर के संस्करण 3.x के साथ शिपिंग कर सकता है जिसमें डेटा मॉडलिंग टूल की कमी है।
यदि आपको SQL डेवलपर प्राप्त करने और स्थापित करने की आवश्यकता है, या SQL डेवलपर के साथ आरंभ करने के बारे में कुछ सुझाव चाहते हैं, तो कृपया ट्यूटोरियल देखें।
आपको 'HR' (या अन्य) नमूना स्कीमा के लिए क्रेडेंशियल (होस्ट नाम, पोर्ट, सेवा का नाम, उपयोगकर्ता नाम और पासवर्ड) की भी आवश्यकता होगी जो Oracle 11g और Oracle 12c के साथ शिप करता है।
Oracle 12c डेटाबेस में उदाहरण स्कीमा 'HR' से जुड़े विंडोज 7 पर SQL डेवलपर 4.1 का उपयोग करके निम्नलिखित कदम उठाए गए।
डेटाबेस स्कीमा से रिलेशनल मॉडल को रिवर्स इंजीनियरिंग करें
- Oracle SQL Developer चलाएँ और उस डेटाबेस स्कीमा से एक कनेक्शन बनाएँ जिसके साथ आप काम करेंगे। इस उदाहरण में हमने 'HR' स्कीमा से एक कनेक्शन बनाया जो मानव संसाधन उदाहरण डेटाबेस है जो Oracle 11g और Oracle 12c के साथ आता है।
- फ़ाइल मेनू को नीचे खींचें, डेटा मॉडलर और फिर आयात उप-मेनू चुनें। फ़्लाई-आउट मेनू से डेटा डिक्शनरी चयन पर क्लिक करें जैसा कि नीचे दिखाया गया है। यह डेटा डिक्शनरी आयात विज़ार्ड लॉन्च करेगा:
- उस कनेक्शन का चयन करें जिसके साथ आप काम करना चाहते हैं। नया कनेक्शन जोड़ने के लिए आप Add बटन पर भी क्लिक कर सकते हैं। एक बार जब आप अपने कनेक्शन को हाइलाइट कर लें, तो जारी रखने के लिए अगला> बटन क्लिक करें।
- अगला चरण आयात करने के लिए स्कीमा का चयन करना है। इस उदाहरण के लिए हमने नीचे दिखाए गए अनुसार 'एचआर' स्कीमा के लिए बॉक्स को चेक किया है। ध्यान दें कि "इसमें आयात करें:" चयन नया संबंधपरक मॉडल दिखाता है और डेटाबेस प्रकार Oracle 12c है। जारी रखने के लिए अगला> बटन क्लिक करें:
अगले पृष्ठ पर चरणों के अगले सेट में मॉडल में आयात करने के लिए डेटाबेस ऑब्जेक्ट का चयन करना शामिल है।
- अगला चरण यह चुनना है कि किस डेटाबेस ऑब्जेक्ट को आयात करना है। इस अभ्यास के लिए, हम आयात की जाने वाली सभी तालिकाओं का चयन करेंगे। ध्यान दें कि अन्य डेटाबेस ऑब्जेक्ट हैं जैसे कि दृश्य, अनुक्रम, भूमिकाएं, संग्रहीत कार्यविधियाँ, आदि जिन्हें संभावित रूप से आयात भी किया जा सकता है। इस अभ्यास के लिए, हम इसे सरल रखेंगे और केवल तालिकाओं को देखेंगे। तालिकाओं का चयन करने के बाद, जारी रखने के लिए अगला> बटन क्लिक करें।
- आयात विज़ार्ड का अंतिम चरण आयात किए जाने वाले डेटाबेस ऑब्जेक्ट की समीक्षा करना है। यदि सब कुछ अच्छा लगता है, तो आयात शुरू करने के लिए समाप्त करें बटन पर क्लिक करें।
- इस बिंदु पर, आप कितनी तालिकाएँ आयात कर रहे हैं, इस पर निर्भर करते हुए, आप एक प्रगति पट्टी देख सकते हैं जैसे:
- पूर्ण होने पर, एक सारांश लॉग विंडो दिखाई देगी:
यदि कोई विफल कथन हैं, तो डिबगिंग में सहायता के लिए इस लॉग को सहेजें।
- यह मानते हुए कि आयात प्रक्रिया बिना किसी त्रुटि के पूरी हुई, विंडो में एक नया रिलेशनल मॉडल दिखाई देगा। आप एक अच्छी व्यवस्था करने के लिए टेबल के चारों ओर घूमना चाह सकते हैं। मॉडल "कौवा का पैर" संकेतन का उपयोग करता है जहां "कौवा का पैर" रिश्ते के "कई" पक्ष का प्रतिनिधित्व करता है। तो उदाहरण के लिए, एक "क्षेत्र" में कई "देश" हैं। एक "देश" में कई "स्थान" होते हैं, और इसी तरह।
- आप कैनवास पर राइट-क्लिक करके और विवरण देखें मेनू आइटम का चयन करके संबंधपरक मॉडल में दिखाए गए विवरण के स्तर को बदल सकते हैं।
एक अनुस्मारक के रूप में, अधिकांश चिकित्सक आमतौर पर इसे "भौतिक डेटाबेस मॉडल" कहते हैं क्योंकि इसमें डेटा प्रकार, कुंजियाँ, विदेशी कुंजियाँ और अनुक्रमणिकाएँ शामिल होती हैं जिन्हें डेटाबेस स्कीमा में लागू किया जाता है।
मॉडल को सहेजने के चरण अगले पृष्ठ पर प्रस्तुत किए गए हैं।
- इस बिंदु पर मॉडल को एक अस्थायी नाम दिया जाता है जैसे शीर्षकहीन_1. इस मॉडल को "ब्राउज़र" में देखने के लिए, व्यू मेनू को नीचे खींचें, डेटा मॉडलर और फिर ब्राउज़र चुनें। शीर्षक रहित_1 डिज़ाइन खोलें और फिर संबंधपरक मॉडल और अंत में आपके कनेक्शन के नाम पर मॉडल खोलें जैसा कि नीचे दिखाया गया है:
- शीर्षक रहित_1 डिज़ाइन पर राइट-क्लिक करें और डिज़ाइन सहेजें मेनू आइटम पर क्लिक करें। अपने काम को सहेजने के लिए एक उपयुक्त फ़ोल्डर में नेविगेट करें और डिज़ाइन को एक फ़ाइल नाम दें। इसके तैयार होने के बाद सेव बटन पर क्लिक करें:
इस बिंदु पर अब हमारे पास एक रिलेशनल मॉडल (जिसे Oracle कॉल करता है) है जो अनिवार्य रूप से रिलेशनल डेटाबेस स्कीमा का एक दर्पण है जिसे हमने अभी आयात किया है। वास्तव में, SQL डेवलपर इन दोनों को सिंक्रोनाइज़ करता है ताकि यदि डेटाबेस स्कीमा बदलता है, तो यह रिलेशनल मॉडल में परिलक्षित होगा, और यदि रिलेशनल मॉडल में परिवर्तन किए जाते हैं, तो उन्हें डेटाबेस स्कीमा में (कार्यान्वित) किया जा सकता है।पी>
यह मॉडल सभी टेबल्स (रिलेशन्स), कीज़, फॉरेन कीज़, चेक बाधाओं और इंडेक्स को दिखाएगा जो विशिष्टता को लागू कर सकते हैं या नहीं। उदाहरण के लिए, नीचे दिए गए कर्मचारी संबंध में प्राथमिक कुंजी EMPLOYEE_ID, तीन विदेशी कुंजी (JOB_ID, MANAGER_ID और DEPARTMENT_ID) और EMAIL कॉलम पर एक अद्वितीय बाधा है:
अगले पृष्ठ पर चरणों का अगला सेट कवर करता है कि लॉजिकल मॉडल बनाने के लिए रिवर्स इंजीनियरिंग प्रक्रिया को कैसे जारी रखा जाए।
रिवर्स इंजीनियरिंग द एंटिटी रिलेशनशिप मॉडल
इस बिंदु पर हमने एक डेटाबेस स्कीमा को एक रिलेशनल मॉडल में रिवर्स इंजीनियर किया है जो काफी सीधी आगे की प्रक्रिया है। अंतिम चरण इकाई संबंध मॉडल का निर्माण करने के लिए रिवर्स इंजीनियरिंग जारी रखना है। ध्यान दें कि Oracle इसे "तार्किक मॉडल" कहते हैं।
- डेटा मॉडल ब्राउज़र पर लौटकर, नीचे दिखाए गए अनुसार रिलेशनल मॉडल और लॉजिकल मॉडल के लिए फ़ोल्डर खोलें:
- रिलेशनल मॉडल पर राइट-क्लिक करें (हमारा नाम sfscdb_pdb2_hr है) और नीचे दिखाए गए पॉप-अप मेनू से इंजीनियर टू लॉजिकल मॉडल का चयन करें:
- द इंजीनियर से लॉजिकल मॉडल डायलॉग बॉक्स नीचे जैसा दिखना चाहिए। प्रत्येक तालिका और संदर्भ की जाँच की जानी चाहिए। प्रत्येक तालिका को एक इकाई के लिए मैप किया जाएगा और प्रत्येक विदेशी कुंजी संदर्भ को संस्थाओं के बीच संबंध के लिए मैप किया जाना चाहिए। एक बार जब सभी उपयुक्त तत्वों का चयन बाईं ओर की विंडो से हो जाए, तो तार्किक (ईआर) मॉडल बनाने के लिए इंजीनियर बटन पर क्लिक करें।
- नया निकाय संबंध मॉडल नीचे दिखाए अनुसार प्रदर्शित होना चाहिए। डिफ़ॉल्ट रूप से "कौवा का पैर" या बार्कर के अंकन का उपयोग किया जाता है।
संबंधों का विवरण (जिसे Oracle भ्रमित रूप से "संबंध" कहता है) संबंध रेखा पर डबल-क्लिक करके देखा जा सकता है। नीचे दिए गए उदाहरण में कर्मचारी और नौकरी संस्थाओं के बीच संबंध खुला है। "स्रोत पर नाम" और "लक्ष्य पर नाम" फ़ील्ड के लिए क्रिया वाक्यांश निर्दिष्ट करके, प्रत्येक संबंध पूरी तरह से विस्तार के एक महान स्तर में निर्दिष्ट किया जा सकता है।
नीचे दिया गया आंकड़ा पूरी तरह से परिभाषित संबंध को दर्शाता है जो पढ़ेगा:
One JOB may be a job performed by One or More EMPLOYEES One EMPLOYEE must be performing One and Only One JOB
ईआर मॉडल के लिए डिफ़ॉल्ट संकेतन कौवा का पैर या बार्कर संकेतन है। नोटेशन को बच्चन या इंफॉर्मेशन इंजीनियरिंग नोटेशन में बदलने के लिए, आरेख पर कहीं भी राइट-क्लिक करें और नोटेशन मेनू आइटम को हाइलाइट करें। पॉप अप होने वाली सूची में से कोई भी उपलब्ध नोटेशन चुनें।
आप नए नोट टूल का उपयोग करके ईआर मॉडल में एक शीर्षक और अन्य विवरण जोड़ सकते हैं