डेटा मॉडलिंग पर पहले के एक लेख में हमने आपको संस्थाओं और विशेषताओं को खोजने का अभ्यास करने के लिए अभ्यास का एक सेट देने का वादा किया था। यहाँ हमारे समस्या सेट की दूसरी किस्त है। आनंद लें।
समस्या 1:देश
विवरण:
दुनिया के सभी देशों, उनके आंतरिक क्षेत्रों (जिन्हें राज्य, प्रांत या क्षेत्र कहा जा सकता है) और उनके शहरों का प्रतिनिधित्व करने के लिए सही संस्थाओं और उनकी विशेषताओं का पता लगाएं। हम प्रत्येक देश के नाम, महाद्वीप, स्वतंत्रता की तारीख, सरकार के प्रकार और जनसंख्या का प्रतिनिधित्व करना चाहते हैं। प्रत्येक क्षेत्र (या प्रांत, राज्य, आदि) के लिए हम राजधानी शहर, राज्यपाल का नाम और जनसंख्या को संग्रहीत करना चाहते हैं। अंत में, प्रत्येक शहर के लिए हम नाम, स्थापना तिथि, जनसंख्या और प्रति निवासी स्कूलों की संख्या रखना चाहते हैं। हम यह भी प्रस्तुत करना चाहेंगे कि प्रत्येक देश अपने आंतरिक क्षेत्रों को क्या कहता है।
समाधान:
डोमेन समस्या विवरण से, हम स्पष्ट रूप से 3 संस्थाओं की पहचान कर सकते हैं:Country
, Region
और City
।
Country
इकाई हमें निम्नलिखित विशेषताएँ मिलती हैं:name
, governmentType
, population
और independenceDay
।
Region
इकाई, हम विशेषताओं की खोज करते हैं name
, governorName
, population
और capitalCity
।
City
, हमारे पास name
है , foundationDate
, population
और schoolsPerHabitant
।
डेटा मॉडलिंग चरणों में किया जाता है जिसे पुनरावृत्ति कहा जाता है। इस बिंदु पर, हम पुनरावृति करते हैं। हम वापस जाते हैं Country
इकाई और एक नई विशेषता जोड़ें। विवरण के अंतिम वाक्य ने हमें अपने आंतरिक क्षेत्रों के लिए प्रत्येक देश के नाम का प्रतिनिधित्व करने के लिए कहा। वह नाम देश स्तर पर होना चाहिए, इसलिए हम categoryRegion
नामक एक नई विशेषता जोड़ेंगे Country
इकाई।
प्रश्न:
जनसंख्या का प्रतिनिधित्व Country
, Region
और City
स्तर। क्या आपको लगता है कि ये सही है? क्या डुप्लिकेट जानकारी संग्रहीत की जा रही है? आप इसकी अनुमति कैसे देते हैं?
↑ अपने ब्राउज़र में मॉडल का पूर्वावलोकन करने के लिए लोगो पर क्लिक करें | मॉडल को png फ़ाइल के रूप में डाउनलोड करें
समस्या 2:विमान
विवरण:
एक नई बजट एयरलाइन बाजार में प्रवेश करना चाहती है और उसे अपनी संपत्ति के प्रबंधन के लिए एक सरल प्रणाली की आवश्यकता है। सही प्रणाली बनाने में हमारी मदद करने के लिए, हमने कुछ लोगों से किसी भी नई एयरलाइन के लिए महत्वपूर्ण जानकारी को परिभाषित करने के लिए कहा। नीचे दी गई टिप्पणियों के आधार पर, हवाई जहाज प्रबंधन प्रणाली के लिए विशेषताओं वाली कुछ इकाइयों का सुझाव दें।
एक अनुभवी पायलट:
मैंने काफ़ी एयरलाइनों में काम किया है और मैंने हज़ारों घंटे हवा में बिताए हैं। जब मैं नियोक्ता बदलता हूं तो वे हमेशा वही जानकारी मांगते हैं। सबसे पहले, वे मेरा नाम, मेरा जन्मदिन जानना चाहते हैं - कई एयरलाइंस केवल एक निश्चित आयु सीमा के भीतर पायलटों को नियुक्त करती हैं। और उन्हें हमेशा मेरे प्रमाणीकरण की जांच करने की आवश्यकता होती है - मेरे पास एक विशेष लाइसेंस नंबर है जो उन्हें ऐसा करने में मदद करता है। उड़ने वाले घंटों की संख्या भी बहुत महत्वपूर्ण है; यह उन्हें पायलट के बारे में बहुत कुछ बताता है। मुझे भाग्यशाली है कि मैं इतना अनुभवी हूँ! और, ज़ाहिर है, मुझे हमेशा एक कर्मचारी संख्या दी जाती है - मुझे पता नहीं क्यों, लेकिन वे मेरे उपनाम के बजाय नंबर का उपयोग करके मुझे संदर्भित करते हैं।
विमान निर्माता का प्रतिनिधि:
हर एयरलाइन को विमान चाहिए। किसी भी हवाई जहाज का पूरा विवरण बहुत जटिल है और मैं उम्र के लिए अपने उत्पादों का वर्णन करता रह सकता हूं, लेकिन एयरलाइंस के सफेदपोश लोग आमतौर पर केवल मूल जानकारी में रुचि रखते हैं। बेशक, वे जानना चाहते हैं कि एक हवाई जहाज में कितने यात्री उड़ सकते हैं - उन्हें लागत, लाभ आदि की गणना करने में मदद मिलती है। और वे हमेशा क्रूज़िंग रेंज के बारे में पूछते हैं ताकि वे जान सकें कि प्रत्येक विमान कितनी दूर उड़ सकता है। बेशक, उन्हें अपनी किताबों में निर्माता का नाम और मॉडल का नाम डालना होगा। ओह, और जो मैंने सुना है, वे हमेशा अपने द्वारा खरीदे जाने वाले किसी भी विमान को विशेष आंतरिक नंबर देते हैं।
एक हवाई यातायात नियंत्रक:
कुछ बुनियादी तथ्य हैं जो हम अपने हवाई अड्डे पर प्रत्येक उड़ान के बारे में रखते हैं। पहचान के कारणों के लिए उड़ान में एक निश्चित संख्या होनी चाहिए, (जैसे FG 432)। हमें प्रस्थान और आगमन हवाई अड्डों को जानना होगा। और समय भी बहुत महत्वपूर्ण है। हम न केवल निर्धारित प्रस्थान और आगमन समय, बल्कि वास्तविक समय भी संग्रहीत करते हैं - हवाई जहाज देर से आ सकते हैं या समय से पहले भी पहुंच सकते हैं।
समाधान:
हमारे विवरण में, हम स्पष्ट रूप से 3 संस्थाओं की पहचान करते हैं:Aircraft
, Pilot
और Flight
. तब हम प्रत्येक इकाई की विशेषताएँ खोजते हैं।
Aircraft
इकाई हमारे पास manufacturer
. है , model
, passengerCapacity
, cruisingRangeMiles
और internalNumber
।
Pilot
इकाई हम निम्नलिखित विशेषताओं की खोज करते हैं:employeeNumber
, firstName
, lastName
, birthDate
, licenseNumber
और flownHours
।
अंत में, Flight
हम flightNumber
. की पहचान करते हैं , departureAirport
, destinationAirport
, scheduledDepartureTime
, scheduledArrivalTime
, realDepartureTime
, और realArrivalTime
।
इस डेटा मॉडल को सरल बनाने के लिए, हम यह अनुमान लगाते हैं कि सभी उड़ानें सप्ताह के सभी दिनों में निर्धारित हैं।
↑ अपने ब्राउज़र में मॉडल का पूर्वावलोकन करने के लिए लोगो पर क्लिक करें | मॉडल को png फ़ाइल के रूप में डाउनलोड करें
कुछ मामलों में, हमारे डोमेन विवरण में वे विशेषताएँ शामिल होती हैं जिन्हें हमें अनदेखा करना चाहिए। उदाहरण के लिए, हमने उड़ान अवधि . को बाहर करने का निर्णय लिया है इस डेटा मॉडल से क्योंकि हम इसकी गणना वास्तविक आगमन और वास्तविक प्रस्थान समय से कर सकते हैं।
समस्या 3:रेस्टोरेंट गाइड
विवरण:
सैमुअल एक ऑनलाइन रेस्टोरेंट गाइड बनाना चाहता है। ऐसी कई वेबसाइटें पहले से ही हैं, लेकिन वह खुद रेस्तरां के बजाय उपलब्ध विशेष व्यंजनों पर ध्यान देना चाहते हैं। वह वास्तव में अपने विचार को लेकर उत्साहित हैं और इस तरह उन्होंने हमें इसका वर्णन किया:
मैं अपनी साइट पर रेस्तरां का विस्तार से वर्णन करना चाहता हूं, इसलिए मुझे उनके नाम और पते जैसी बुनियादी सामग्री की आवश्यकता है। पता सटीक होना चाहिए:न केवल सड़क और संख्या, बल्कि शहर, राज्य और देश भी। हाँ, देश; मैं अंतरराष्ट्रीय जाना चाहता हूँ! इसके अलावा, मैं चाहता हूं कि उनमें से प्रत्येक को एक विशेष शैली दी जाए, जैसे, आप जानते हैं, चीनी, इतालवी, या ऐसा ही कुछ। उनमें से प्रत्येक को एक निश्चित संख्या में सितारों के साथ स्थान दिया जाएगा।
अधिक महत्वपूर्ण बात, मैं भोजन पर ध्यान देना चाहता हूं! रेस्तरां हजारों भोजन परोसते हैं, और उनमें से प्रत्येक के लिए, मुझे पकवान का नाम और प्रकार चाहिए - क्षुधावर्धक, मुख्य पाठ्यक्रम, या मिठाई। विभिन्न देशों में विभिन्न ऐपेटाइज़र हैं, इसलिए मुझे ऐपेटाइज़र उत्पत्ति के बारे में भी जानकारी संग्रहीत करने की आवश्यकता है। और मुख्य पाठ्यक्रमों के लिए… ठीक है, मुझे लगता है कि आहार पर लोगों के लिए कैलोरी की संख्या प्रदान करना अच्छा होगा। डेसर्ट में भी इस प्रकार की जानकारी होनी चाहिए।
और मैं चाहता हूं कि प्रत्येक डिश को उसकी वर्तमान कीमत के साथ दिखाया जाए! ओह, यह मुझे याद दिलाता है:चलो वहाँ भी पेय पदार्थ डालते हैं। नाम, कीमत... और शायद शराब के स्तर के बारे में सोचें।
उपरोक्त विवरण के आधार पर, सैमुअल के ऑनलाइन रेस्तरां गाइड के लिए कुछ संस्थाओं और उनकी विशेषताओं का सुझाव दें।
समाधान:
हमारे पास पहली इकाई है Restaurant
name
. की विशेषताओं के साथ , addressStreet
, addressNumber
, city
, state
और country
. Restaurant
हैं:stars
और style
।
हमारा अगला विचार Meal
और इसे विशेषताएँ दें name
, type
और price
. हालाँकि, यदि हम समस्या का पूरा विवरण पढ़ते हैं, तो हमें डेसर्ट, मुख्य पाठ्यक्रम और ऐपेटाइज़र के लिए विशिष्ट विशेषताएँ मिलेंगी। इसलिए हम Meal
और 3 इकाइयों के साथ जाएं:Main_course
, Appetizer
और Dessert
.
MainCourse
, हमारे पास निम्नलिखित विशेषताएं होंगी:name
, category
और price
।
Appetizer
इकाई, हमारे पास name
. नामक विशेषताएँ हैं , country
और price
।
Dessert
हमें विशेषताएँ मिलती हैं name
, calories
और price
।
अंत में, Beverage
इकाई के पास name
. विशेषताएँ हैं , alcoholLevel
और price
।
↑ अपने ब्राउज़र में मॉडल का पूर्वावलोकन करने के लिए लोगो पर क्लिक करें | मॉडल को png फ़ाइल के रूप में डाउनलोड करें
समस्या 4:संगीत बैंड
विवरण:
एक म्यूजिक प्रोडक्शन कंपनी म्यूजिक बैंड की दुनिया को मॉडल बनाना चाहती है। हम इसके एक प्रतिनिधि से मिले और उनसे कुछ सवाल पूछे। नीचे दिए गए साक्षात्कार को पढ़ें और संगीत बैंड के मॉडल के लिए सही संस्थाओं और उनकी विशेषताओं का पता लगाएं।
वर्टेबेलो: संगीत की दुनिया में किस तरह के लोग हैं?
प्रतिनिधि: कई, लेकिन मुझे लगता है कि हमें बस कुछ की जरूरत है। बैंड में गायक और संगीतकार होते हैं। और, ज़ाहिर है, उनके प्रबंधक। उन सभी के लिए, हम सिस्टम में उनके पहले और अंतिम नाम चाहते हैं। गायकों और संगीतकारों का आमतौर पर एक उपनाम भी होता है। संगीतकार एक निश्चित वाद्य यंत्र बजाते हैं और गायकों की एक विशेष प्रकार की आवाज होती है, जैसे सोप्रानो या टेनोर।
वी: प्रबंधकों के बारे में क्या? आप उनसे कैसे संपर्क में रहते हैं?
आर: निर्भर करता है। उनमें से कुछ त्वरित संचार के लिए सेल फोन पसंद करते हैं, अन्य ईमेल भेजना पसंद करते हैं ताकि वे सब कुछ सोच सकें। मुझे लगता है कि हमें यहां दोनों तरह की जानकारी चाहिए।
वी: और ये सभी लोग…
आर: ... संगीत बैंड बनाएं, हां। बेशक, प्रत्येक बैंड का एक नाम होता है। वे आम तौर पर विभिन्न प्रकार के संगीत बजाते हैं, लेकिन हम हमेशा उन्हें केवल एक शैली, जैसे रॉक या धातु के लिए असाइन करते हैं। वह महत्वपूर्ण है। हमें यह जानने की जरूरत है कि वे कितने समय तक एक साथ खेले हैं, क्योंकि युवा बैंड में आने और बहुत जल्दी गायब होने की प्रवृत्ति होती है। हम आमतौर पर जानना चाहते हैं कि उन्होंने अपना सबसे हालिया संगीत कार्यक्रम कब खेला और टिकट की कीमत क्या थी।
वी: क्या आपको और कुछ चाहिए?
आर: हमें गानों के बारे में जानकारी संग्रहीत करने की आवश्यकता है। वाह, गाने जटिल हैं। उनके पास विशिष्ट प्रकार के गीत हैं, एक निश्चित कुंजी, कई उपकरण शामिल हैं... वास्तव में जटिल चीजें हैं।
V:और क्या यह सब आपके लिए महत्वपूर्ण है?
आर: ठीक है, हाँ, लेकिन हमारे पास वास्तव में गानों के लिए पहले से ही एक प्रणाली है, इसलिए यहाँ हम कर सकते हैं… ठीक है, मुझे लगता है कि हम केवल गीत के नाम और अवधि के साथ अच्छे होंगे। और शायद निर्माण तिथि।
प्रश्न:
किसी गीत को देखते हुए, क्या हम इस डेटा मॉडल का उपयोग उसके बैंड से मिलान करने के लिए कर सकते हैं? या कुछ कमी है?
समाधान:
पहली इकाई जो हमें मिलती है वह है MusicBand
विशेषताओं के साथ name
, mainStyle
, foundationDate
, lastShowDate
और lastShowPlace
।
अगली इकाई है Musician
, जहां हमारे पास निम्नलिखित विशेषताएं हैं:firstName
, lastName
, nickName
और instrument
।
Singer
इकाई एक समान पैटर्न का अनुसरण करती है:हमारे पास गायक के firstName
. विशेषताएँ हैं , lastName
, nickName
, और voiceLevel
।
हमारी अगली इकाई है Song
, जिसमें निम्नलिखित विशेषताएं हैं:name
, duration
और creationDate
।
अंत में, हमने आखिरी इकाई की पहचान की Manager
; इसमें firstName
. की विशेषताएं हैं , lastName
, emailAddress
और cellPhone
।
↑ अपने ब्राउज़र में मॉडल का पूर्वावलोकन करने के लिए लोगो पर क्लिक करें | मॉडल को png फ़ाइल के रूप में डाउनलोड करें