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

MOOC प्लेटफॉर्म के लिए एक डेटाबेस मॉडल

यदि आप edX या कौरसेरा जैसे MOOC ऑनलाइन लर्निंग प्लेटफॉर्म चलाते हैं, तो आप इसे कैसे व्यवस्थित रखेंगे? इस लेख में, हम एक डेटाबेस मॉडल को देखेंगे जो काम करेगा।

आपने शायद MOOC (मैसिव ओपन ऑनलाइन कोर्स) के बारे में सुना होगा, जो ऑनलाइन सीखने का एक ट्रेंडिंग तरीका है। और यदि आपने ऐसा नहीं किया है, तो एक MOOC कार्यक्रम को विश्वविद्यालय के विषयों के रूप में सोचें, जिसमें सभी सामग्री, परीक्षण और फीडबैक ऑनलाइन उपलब्ध हों। सबसे लोकप्रिय ऑनलाइन एमओओसी प्रदाताओं में से दो कौरसेरा (स्टैनफोर्ड यूनिवर्सिटी द्वारा स्थापित) और एडएक्स (मैसाचुसेट्स इंस्टीट्यूट ऑफ टेक्नोलॉजी और हार्वर्ड यूनिवर्सिटी द्वारा स्थापित) हैं। अन्य विश्वविद्यालयों और भागीदारों के सहयोग से, वे दुनिया भर के लाखों शिक्षार्थियों को सैकड़ों पाठ्यक्रम प्रदान करते हैं।

इस लेख में, हम एक डेटाबेस मॉडल के सरलीकृत संस्करण पर चर्चा करेंगे जिसका उपयोग हम इस प्रकार की सेवा को चलाने के लिए कर सकते हैं। सबसे पहले, आइए बात करते हैं कि एमओओसी वास्तव में गैर-तकनीकी दृष्टिकोण से कैसे काम करता है।

MOOC प्लेटफॉर्म कैसे काम करते हैं?

व्यक्तिगत रूप से, मैंने कौरसेरा का उपयोग किया है और मैं इससे बहुत संतुष्ट था। इसलिए, इस लेख में मेरी टिप्पणियाँ ज्यादातर कौरसेरा के मॉडल से संबंधित हैं, हालाँकि मेरा मानना ​​है कि edX एक समान पैटर्न का अनुसरण करता है।

व्यवसाय मॉडल क्या है?

विचार बहुत सरल है। पार्टनर्स - मुख्य रूप से विश्वविद्यालय - ऑनलाइन पाठ्यक्रमों के लिए सामग्री बनाते हैं, जो आमतौर पर उनके कैंपस प्रसाद पर आधारित होते हैं। इन सामग्रियों में वीडियो लेक्चर, रीडिंग, क्विज़, चर्चा, प्रोजेक्ट, ऑनलाइन टेस्ट और कभी-कभी अंतिम असाइनमेंट शामिल हो सकते हैं। अधिकांश सामग्री वीडियो-आधारित है, इसलिए शिक्षार्थियों को वह "मानवीय स्पर्श" मिलता है। मैंने कुछ पाठ्यक्रमों का आनंद न केवल पढ़ाए जाने के कारण बल्कि व्याख्याताओं के कारण भी लिया।

छात्रों को प्रदान की गई सामग्री को देखने या पढ़ने, असाइनमेंट पूरा करने, क्विज़ का उत्तर देने और परीक्षा देने की आवश्यकता है। आमतौर पर एक या एक से अधिक प्रोजेक्ट असाइनमेंट होते हैं, और इन सभी असाइनमेंट के ग्रेड अंतिम ग्रेड बनाते हैं। यदि उनका अंतिम ग्रेड एक निश्चित स्कोर (जैसे 70%) से ऊपर है, तो छात्र पाठ्यक्रम पास करते हैं और एक प्रमाण पत्र प्राप्त करते हैं। कुछ प्रमाणपत्र निःशुल्क हैं; दूसरों को अपेक्षाकृत छोटे भुगतान की आवश्यकता होती है। वही पाठ्यक्रमों के लिए जाता है।

संबंधित पाठ्यक्रमों को विशेषज्ञताओं के रूप में जानी जाने वाली बड़ी संस्थाओं में व्यवस्थित किया जा सकता है। विशेषज्ञता को पूरा करने से छात्र को एक और प्रमाण पत्र (साथ ही एक अधिक गोल कौशल सेट) मिलता है और प्रत्येक पाठ्यक्रम को अलग से पूरा करने की तुलना में कम खर्चीला हो सकता है।

सभी पाठ्यक्रमों और विशेषज्ञताओं के अलग-अलग सत्र हो सकते हैं। कुछ में हर महीने नए सत्र होंगे, जबकि अन्य में हर साल एक नया सत्र होगा। ऐसे पाठ्यक्रम भी हैं जो मांग पर उपलब्ध हैं।

ऑनलाइन प्रमाणपत्रों का महत्व अभी तक विश्वविद्यालय प्रमाणपत्र के समान नहीं है, लेकिन वे इसकी आकांक्षा रखते हैं। कुछ पाठ्यक्रम पहले से ही कॉलेज क्रेडिट के लिए स्वीकृत हैं, और ऑनलाइन अध्ययन कार्यक्रम भी अब एक वास्तविकता हैं।

कितने भागीदार, पाठ्यक्रम और छात्र हैं?

सरल उत्तर "बहुत कुछ" है। दुनिया के लगभग किसी भी देश से - पाठ्यक्रमों को हजारों में, भागीदारों को सैकड़ों में और छात्रों को लाखों में मापा जाता है।

MOOC के लिए हम किन बदलावों की उम्मीद कर सकते हैं?

एमओओसी के बारे में सबसे अच्छी बात यह है कि वे जल्दी से बदलाव के लिए अनुकूल हो सकते हैं। वे राज्य या विश्वविद्यालय के नियमों द्वारा सीमित नहीं हैं और उन्हें अनुमोदन की प्रतीक्षा नहीं करनी पड़ती है। यह बहुत महत्वपूर्ण है, खासकर आईटी से संबंधित पाठ्यक्रमों के लिए। कुछ पाठ्यक्रमों और विशेषज्ञताओं में नए सत्र नहीं होंगे:अन्य नए पाठ्यक्रम दिखाई देंगे, और मौजूदा पाठ्यक्रम विभिन्न अपडेट से गुजरेंगे।

MOOC डेटाबेस मॉडल




मैंने MOOC डेटा मॉडल को तीन विषय क्षेत्रों में विभाजित किया है:

  • Course details
  • Specialization details
  • Student participation

और तीन स्टैंडअलोन टेबल हैं:

  • institution
  • lecturer
  • student

विषय क्षेत्रों में विभिन्न तालिकाओं के लिए स्टैंडअलोन तालिकाओं का उपयोग डेटा स्रोतों के रूप में किया जाता है। चूंकि विषय क्षेत्रों में अधिकांश तर्क होते हैं, इसलिए मैं उन्हें पहले समझाता हूं और फिर स्टैंडअलोन टेबल पर जाता हूं।

पाठ्यक्रम और सामग्री

हालांकि आमतौर पर लोग किसी भी लेन-देन का सबसे महत्वपूर्ण हिस्सा होते हैं, मैं यहां एक अपवाद बनाऊंगा। पाठ्यक्रम सामग्री के बिना, कोई पाठ्यक्रम नहीं होगा और इसलिए हमारे एमओओसी प्लेटफॉर्म में कोई दिलचस्पी नहीं होगी। "पाठ्यक्रम विवरण" में, मैंने पाठ्यक्रम, संबंधित संस्थानों, भागीदारों और सामग्रियों का वर्णन करने वाली सभी तालिकाओं को समूहीकृत किया है।

इस खंड में सबसे महत्वपूर्ण तालिका है course टेबल। विशेषताएं हैं:

  • name - एक अनूठा पाठ्यक्रम नाम
  • commitment - संभावित प्रतिबद्धता का पाठ विवरण, उदा। "5 सप्ताह का अध्ययन, 5-7 घंटे/सप्ताह"
  • description - पाठ्यक्रम का विवरण
  • specialization_id - संबंधित विशेषज्ञता का संदर्भ, यदि लागू हो। पाठ्यक्रम केवल एक विशेषज्ञता का हिस्सा हो सकते हैं। कुछ पाठ्यक्रम किसी विशेषज्ञता से संबद्ध नहीं हैं, इसलिए यह विशेषता अनिवार्य नहीं है।
  • min_grade - एक कोर्स पास करने के लिए आवश्यक न्यूनतम ग्रेड। आमतौर पर इसे प्रतिशत के रूप में मापा जाएगा। अधिकांश कौरसेरा पाठ्यक्रमों में, यह 70% है।
  • course_price - वह शुल्क जो आप एक कोर्स के लिए भुगतान करेंगे।
  • active - एक चालू / बंद स्विच जो इंगित करता है कि पाठ्यक्रम में भविष्य के सत्र होंगे या नहीं। सक्रिय पाठ्यक्रमों में नए सत्र होंगे, जबकि निष्क्रिय पाठ्यक्रमों में नहीं होंगे।

ध्यान दें कि course तालिका का नाम है course:Course details . ऐसा इसलिए है क्योंकि मैंने course मॉडल को स्पष्ट करने के लिए अन्यत्र तालिका फिर से। ऐसा करने के लिए, मैंने वर्टाबेलो के "कॉपी" और "शॉर्टकट के रूप में पेस्ट करें" विकल्पों का उपयोग किया।

प्रत्येक पाठ्यक्रम कुछ अध्यायों से बना है। कौरसेरा में, छात्रों के पास आमतौर पर प्रत्येक अध्याय को पूरा करने के लिए एक सप्ताह का समय होता है। सभी पाठ्यक्रम उपखंडों या अध्यायों की सूची chapter टेबल। course_id विशेषता course टेबल; chapter_no उस पाठ्यक्रम में एक अध्याय की क्रमिक संख्या है। ये दोनों विशेषताएँ मिलकर तालिका की वैकल्पिक कुंजी बनाती हैं। अंतिम विशेषता, description , प्रत्येक अध्याय के लिए विस्तृत विवरण संग्रहीत करता है।

प्रत्येक अध्याय वीडियो व्याख्यान, रीडिंग, क्विज़, परीक्षण और परियोजनाओं से बना है। हम विभिन्न सामग्री प्रकारों को संग्रहीत करने के लिए डेटाबेस में अलग-अलग संरचनाएं नहीं बनाएंगे। इसके बजाय, हम इन सामग्रियों के लिंक स्टोर करेंगे। और यहीं पर material तालिका आती है। इस तालिका में विशेषताएँ हैं:

  • chapter_id - संबंधित अध्याय का संदर्भ
  • material_no - विभिन्न अध्याय सामग्री को सौंपी गई एक क्रमिक संख्या। साथ में chapter_id विशेषता, यह विशेषता तालिका की वैकल्पिक (अद्वितीय) कुंजी बनाती है।
  • material_type_id - material_type टेबल
  • mandatory - एक बूलियन मान जो दर्शाता है कि सामग्री की आवश्यकता है या वैकल्पिक (यानी अतिरिक्त क्रेडिट के लिए)
  • max_points - इस सामग्री को पूरा करने के बाद छात्र अधिकतम कितने अंक प्राप्त कर सकता है। यदि कोई अंक नहीं दिया जाएगा, तो हम मान के रूप में केवल "0" का उपयोग करेंगे।

material_type तालिका सभी संभावित सामग्री प्रकारों का एक शब्दकोश है। प्राथमिक कुंजी के पास एकमात्र विशेषता type_name है और निश्चित रूप से इसमें केवल अद्वितीय मान होने चाहिए। कुछ अपेक्षित सामग्री प्रकार हैं “वीडियो व्याख्यान” , “पढ़ना” , “प्रश्नोत्तरी” , “परीक्षण” , “अंतिम परीक्षा” और “प्रोजेक्ट असाइनमेंट”

on_course तालिका प्रत्येक पाठ्यक्रम को उस पाठ्यक्रम को पढ़ाने वाले व्याख्याता (ओं) से संबंधित करती है। इसमें केवल इसकी प्राथमिक कुंजी और एक विदेशी कुंजी जोड़ी होती है (lecturer_id और course_id ) विदेशी कुंजी जोड़ी तालिका के लिए अद्वितीय कुंजी बनाती है।

इसी तरह, course_created_by पाठ्यक्रम को उन सभी संस्थानों से जोड़ता है जो इसे बनाने में शामिल थे।

विशेषज्ञताएं

स्टैंडअलोन पाठ्यक्रम बहुत अच्छे हैं, लेकिन एक नए कौशल में महारत हासिल करने के लिए आपको एक से अधिक पाठ्यक्रमों की आवश्यकता होगी। विशेषज्ञता उसी दिशा में एक कदम है। वे पाठ्यक्रमों की एक श्रृंखला हैं, अक्सर चार या पाँच, और एक अंतिम परियोजना जहाँ आप अपने द्वारा सीखे गए कौशल को लागू कर सकते हैं। विशेषज्ञता से संबंधित सभी तालिकाएं Specialization details में हैं क्षेत्र।

specialization तालिका इस खंड की केंद्रीय तालिका है। प्रत्येक विशेषज्ञता के लिए, हम एक अद्वितीय name संग्रहित करेंगे और description . specialization_discount वह राशि है जो एक छात्र व्यक्तिगत रूप से स्टैंडअलोन पाठ्यक्रमों के बजाय संपूर्ण विशेषज्ञता में नामांकन करने पर बचाएगा। पहले की तरह, active विशेषता एक सरल चालू/बंद स्विच है जो इंगित करता है कि विशेषज्ञता के भविष्य के सत्र होंगे या नहीं।

ध्यान दें कि specialization तालिका भी हमारे मॉडल में दो बार दिखाई देती है। इस क्षेत्र के अंदर, इसका नाम है specialization:Specialization details

on_specialization और specialization_created_by तालिकाओं का एक ही उद्देश्य होता है और on_course और course_created_by टेबल। बेशक, इस बार वे पाठ्यक्रमों के बजाय विशेषज्ञताओं को संभालेंगे।

छात्र

और अंत में हम छात्र अनुभाग में आते हैं। Student participation . में क्षेत्र, हम छात्रों, सत्रों और छात्रों के प्रदर्शन के रिकॉर्ड संग्रहीत करेंगे।

प्रत्येक पाठ्यक्रम और विशेषज्ञता में एक से अधिक सत्र हो सकते हैं, इसलिए हमें प्रत्येक पाठ्यक्रम और विशेषज्ञता के प्रारंभ होने और समाप्त होने पर संग्रहीत करने की आवश्यकता होगी। पाठ्यक्रमों के लिए, यह बहुत आसान है। प्रत्येक नया सत्र उसी पाठ्यक्रम का एक नया उदाहरण है। एक नया विशेषज्ञता सत्र संपूर्ण विशेषज्ञता और उसके सभी पाठ्यक्रमों का एक नया उदाहरण है।

याद रखें कि छात्र किसी एक कोर्स में विशेषज्ञता से या उन सभी में दाखिला ले सकते हैं। course_sessions और specialization_session टेबल हमें वह जानकारी प्रदान करते हैं। तिथियों के अलावा, उनमें course और specialization_table टेबल। एक विदेशी कुंजी-प्रारंभ तिथि जोड़ी दोनों तालिकाओं में अद्वितीय कुंजी बनाती है।

पाठ्यक्रम सत्र भी विशेषज्ञता सत्रों का हिस्सा हो सकते हैं, इसलिए हमें एक (गैर-अनिवार्य) विदेशी कुंजी जोड़ने की आवश्यकता होगी।

status शब्दकोश एक पाठ्यक्रम के दौरान छात्र के प्रदर्शन से संबंधित सभी संभावित स्थितियों को सूचीबद्ध करता है। कुछ संभावित स्थितियां हैं “छोड़ दी गई” , “उत्तीर्ण” और “विफल”

हम enrolled_course किसी भी पाठ्यक्रम सत्र में प्रत्येक नामांकन को संग्रहीत करने के लिए तालिका। इस तालिका में दो विदेशी कुंजियाँ हैं, student_id और course_session_id , और साथ में वे तालिका के लिए वैकल्पिक (अद्वितीय) कुंजी बनाते हैं। तालिका में अन्य विशेषताएं हैं:

  • enrollment_date - वह तारीख जब किसी छात्र ने उस पाठ्यक्रम में दाखिला लिया हो
  • status_id - status शब्दकोश; यह रिकॉर्ड करता है कि एक छात्र ने उस पाठ्यक्रम में कैसा प्रदर्शन किया है
  • status_date - वह तारीख जब कोई दर्जा दिया गया था
  • final_grade - ग्रेड (प्रतिशत के रूप में) जो छात्र ने उस पाठ्यक्रम के लिए हासिल किया
  • certificate_ID - एक प्रमाणपत्र पहचान संख्या जो छात्र के पाठ्यक्रम पास करने पर मंच उत्पन्न करता है
  • certificate_location - उस सटीक स्थान का लिंक जहां प्रमाणपत्र संग्रहीत है

enrolled_specialization तालिका enrolled_course टेबल। अंतर यह है कि यह छात्रों को पाठ्यक्रमों के बजाय विशेषज्ञता से जोड़ता है।

हम student_results विशिष्ट पाठ्यक्रम सामग्री पर छात्रों के प्रदर्शन को संग्रहीत करने के लिए तालिका। प्रत्येक सामग्री के लिए (material_id ) और प्रत्येक छात्र का नामांकन (enrolled_course_id ) हमारे पास एक से अधिक प्रयास हो सकते हैं। इसलिए, attempt विशेषता प्रत्येक छात्र के प्रयास की क्रमिक संख्या है। ये तीनों विशेषताएँ मिलकर तालिका की वैकल्पिक कुंजी बनाती हैं।

इस तालिका में, attempt_link छात्रों द्वारा प्रस्तुत परीक्षणों या परियोजनाओं के प्रत्येक उदाहरण का स्थान है। हम मान सकते हैं कि प्रत्येक प्रयास के लिए हम बेतरतीब ढंग से चुने गए प्रश्नों के साथ एक "नया" परीक्षण तैयार करेंगे। यदि सामग्री के लिए विद्यार्थी के उत्तरों की आवश्यकता नहीं है, तो लिंक मौजूद नहीं होगा और हम यहां एक NULL मान संग्रहीत करेंगे।

अंत में, student_results जब कोई छात्र started . तब टेबल स्टोर करता है और ended एक प्रयास और score हासिल। यह गैर-वर्गीकृत असाइनमेंट पर प्रदर्शन परिणामों को भी संग्रहीत कर सकता है और साथ ही रिकॉर्ड भी कर सकता है कि उन्होंने कौन से वीडियो देखे और कब, कौन सी सामग्री पढ़ी, आदि।

संस्थान

institution तालिका एक सरल कैटलॉग है जो उन सभी संस्थानों को सूचीबद्ध करती है जिन्होंने पाठ्यक्रम बनाए हैं या जिनके व्याख्याता पाठ्यक्रमों में शामिल हैं।

व्याख्याता

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

छात्र

मैं student टेबल। एक बार फिर, हमें यहां केवल बुनियादी विशेषताओं की आवश्यकता है, और उन्हें स्वयं व्याख्यात्मक होना चाहिए।

हम इस मॉडल को कैसे बेहतर बना सकते हैं?

यह मॉडल MOOC प्लेटफॉर्म बनाने के लिए आवश्यक बुनियादी कार्यात्मकताओं का समर्थन करता है। फिर भी, आप शायद आसानी से कई उपयोगी परिवर्धन के बारे में सोच सकते हैं। यहां कुछ ऐसे हैं जिनके साथ मैं आया हूं:

  • वीडियो व्याख्यान के लिए पाठ्यक्रम की भाषा और उपशीर्षक
  • मशीन ग्रेडिंग
  • विद्यार्थी एक-दूसरे के असाइनमेंट की समीक्षा और ग्रेडिंग करते हैं
  • वित्तीय सहायता
  • एक विकल्प जो छात्रों को पाठ्यक्रम छोड़ने के बाद फिर से शुरू करने की अनुमति देता है

यह भी उल्लेखनीय है कि, विकिपीडिया के अनुसार "... कौरसेरा के डेटाबेस सर्वर (आरडीएस पर चल रहे) 10 अरब एसक्यूएल प्रश्नों का उत्तर देते हैं, और कौरसेरा प्रति माह लगभग 500 टीबी ट्रैफ़िक प्रदान करता है।" यह 2013 में था। एक वास्तविक एमओओसी डेटाबेस मॉडल इस आलेख में प्रस्तुत किए गए जैसा दिख सकता है, लेकिन मॉडलिंग और आधारभूत संरचना पर बहुत अधिक काम किया जाना है!

इस लेख में मैंने MOOC प्लेटफॉर्म के पीछे मौजूद मॉडल की जटिलता को दिखाने की कोशिश की है। मैंने अपने उदाहरणों के रूप में मुख्य रूप से कौरसेरा और एडएक्स पर ध्यान केंद्रित किया। इस मॉडल में 18 टेबल हैं, लेकिन यह केवल सतह को खरोंचता है। बेझिझक टिप्पणी करें और उन सुधारों को साझा करें जिन्हें आप मॉडल में लागू करेंगे। अगर आपको लगता है कि मैंने कुछ महत्वपूर्ण याद किया है, तो कृपया मुझे बताएं!

ऑनलाइन सीखना पसंद है? आपके ब्राउज़र में उपलब्ध LearnSQL.com - इंटरैक्टिव SQL पाठ्यक्रम आज़माएँ।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Transact-SQL का उपयोग करके दृश्य की परिभाषा प्राप्त करने के 4 तरीके

  2. Azure SQL डेटाबेस में ट्यूनिंग प्रदर्शन प्रारंभ करना

  3. पेपैल ओडीबीसी चालक

  4. एआई सॉफ्टवेयर विकास और परीक्षण को कैसे बदलेगा

  5. डेटाबेस टेस्टिंग क्या है और इसे कैसे करें?