ER मॉडलिंग और संबंधों की कार्डिनैलिटी
आवश्यकताओं को इकाइयों, संबंधों और जंक्शन तालिकाओं में बदलना
ER मॉडलिंग और संबंधों की कार्डिनैलिटी, CoddyKit पर SQL साक्षात्कार की तैयारी का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह SQL साक्षात्कार की तैयारी सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। SQL साक्षात्कार की तैयारी पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
साक्षात्कारों में ER मॉडल-निर्माण क्यों आता है
सामान्यीकरण के बाद साक्षात्कारकर्ता यह जाँचते हैं कि आप आवश्यकताओं को स्कीमा में बदल सकते हैं या नहीं। प्रश्न आमतौर पर खुला होता है: "वाहन-साझाकरण ऐप के लिए डेटाबेस डिज़ाइन कीजिए" या "पुस्तकालय प्रणाली का मॉडल बनाइए।"
यह इकाई-संबंध (ER) मॉडल-निर्माण का अभ्यास है। वे देखते हैं कि आप इकाइयों, विशेषताओं और उनके बीच के संबंधों की पहचान कैसे करते हैं, जिसमें बहुलता भी शामिल है।
इस कौशल में अंग्रेज़ी संज्ञाओं और क्रियाओं को तालिकाओं और विदेशी कुंजियों में बदलना शामिल है।
इकाइयाँ, विशेषताएँ, संबंध
हर ER मॉडल के तीन आधारभूत घटक होते हैं:
- इकाई: ऐसी वस्तु जिसके बारे में आप डेटा संग्रहीत करते हैं (ग्राहक, ऑर्डर, उत्पाद)। यह आमतौर पर तालिका बन जाती है।
- विशेषता: किसी इकाई का गुण (नाम, कीमत, created_at)। यह आमतौर पर स्तंभ बन जाती है।
- संबंध: इकाइयाँ किस प्रकार जुड़ी हैं (ग्राहक ऑर्डर देता है)। इसे विदेशी कुंजियों या मध्यस्थ तालिकाओं से लागू किया जाता है।
प्रश्न से मिलने वाला संकेत: संज्ञाएँ इकाइयाँ या विशेषताएँ बनती हैं, और क्रियाएँ संबंध बनती हैं।
बहुलता: मुख्य अवधारणा
बहुलता बताती है कि एक इकाई के कितने उदाहरण दूसरी इकाई से संबंधित हैं। इसके तीन मुख्य प्रकार हैं:
- एक-से-एक (1:1): यहाँ की एक पंक्ति वहाँ की अधिकतम एक पंक्ति से मेल खाती है।
- एक-से-अनेक (1:N): यहाँ की एक पंक्ति वहाँ की कई पंक्तियों से मेल खाती है (यह सबसे सामान्य प्रकार है)।
- अनेक-से-अनेक (M:N): दोनों ओर की पंक्तियाँ दूसरी ओर की कई पंक्तियों से मेल खाती हैं।
बहुलता सही निर्धारित करने से यह तय होता है कि विदेशी कुंजियाँ कहाँ जाएँगी और क्या आपको मध्यस्थ तालिका की आवश्यकता है।
एक-से-अनेक संबंध लागू करना
एक-से-अनेक संबंध को "अनेक" वाली ओर विदेशी कुंजी रखकर लागू किया जाता है। एक ग्राहक के कई ऑर्डर होते हैं, इसलिए हर ऑर्डर की पंक्ति में customer_id रहता है।
साक्षात्कार में दिशा हमेशा स्पष्ट रूप से बताइए: "एक ग्राहक से कई ऑर्डर, इसलिए FK ऑर्डर तालिका में रहती है।"
CREATE TABLE customers (
customer_id INT PRIMARY KEY,
name VARCHAR(100)
);
CREATE TABLE orders (
order_id INT PRIMARY KEY,
customer_id INT NOT NULL,
order_date DATE,
FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);अनेक-से-अनेक संबंध लागू करना
संबंधपरक डेटाबेस M:N को सीधे संग्रहीत नहीं कर सकता। साक्षात्कारकर्ता जिस उत्तर की अपेक्षा करते हैं, वह है मध्यस्थ तालिका (जिसे सेतु, संपर्क या संबद्धता तालिका भी कहते हैं)।
विद्यार्थी कई पाठ्यक्रमों में नामांकन कर सकते हैं और प्रत्येक पाठ्यक्रम में कई विद्यार्थी हो सकते हैं। एक enrollments तालिका बनाइए, जिसकी कुंजी दोनों विदेशी कुंजियों को मिलाकर बने। इससे M:N संबंध दो 1:N संबंधों में बदल जाता है।
CREATE TABLE students (
student_id INT PRIMARY KEY,
name VARCHAR(100)
);
CREATE TABLE courses (
course_id INT PRIMARY KEY,
title VARCHAR(100)
);
CREATE TABLE enrollments (
student_id INT,
course_id INT,
enrolled_at DATE,
PRIMARY KEY (student_id, course_id),
FOREIGN KEY (student_id) REFERENCES students(student_id),
FOREIGN KEY (course_id) REFERENCES courses(course_id)
);मध्यस्थ तालिका में डेटा भी रखा जा सकता है
एक सामान्य अगला प्रश्न होता है: "किसी पाठ्यक्रम में विद्यार्थी को मिले प्राप्तांक कहाँ संग्रहीत करेंगे?"
प्राप्तांक केवल विद्यार्थी या केवल पाठ्यक्रम से नहीं, बल्कि संबंध से जुड़े होते हैं। इसलिए उन्हें मध्यस्थ तालिका में रखा जाता है। साक्षात्कारकर्ता इसी समझ की जाँच करते हैं: M:N संबंध की विशेषताएँ सेतु तालिका में रहती हैं।
उदाहरण: नामांकन की तारीख, प्राप्तांक, ऑर्डर की पंक्ति में मात्रा और परियोजना सदस्यता में भूमिका।
ALTER TABLE enrollments
ADD COLUMN grade CHAR(2);
-- grade describes THIS student in THIS course,
-- so it belongs on the junction tableएक-से-एक संबंध लागू करना
1:1 संबंध कम देखने को मिलता है। इसे इस प्रकार लागू किया जाता है कि आश्रित तालिका में ऐसी विदेशी कुंजी हो जो अद्वितीय कुंजी भी हो (अक्सर वही प्राथमिक कुंजी होती है)।
उदाहरण के लिए, user और user_profile में विस्तृत, वैकल्पिक विवरण हो सकते हैं। प्रोफ़ाइल तालिका में user_id को प्राथमिक कुंजी बनाने से हर उपयोगकर्ता के लिए अधिकतम एक प्रोफ़ाइल सुनिश्चित होती है।
CREATE TABLE users (
user_id INT PRIMARY KEY,
email VARCHAR(255)
);
CREATE TABLE user_profiles (
user_id INT PRIMARY KEY, -- 1:1 enforced here
bio TEXT,
avatar_url VARCHAR(255),
FOREIGN KEY (user_id) REFERENCES users(user_id)
);वैकल्पिकता और सहभागिता
बहुलता का एक दूसरा आयाम भी है जिसे साक्षात्कारकर्ता पसंद करते हैं: वैकल्पिकता (जिसे सहभागिता भी कहते हैं)।
- अनिवार्य: हर ऑर्डर में कोई ग्राहक होना चाहिए, इसलिए
customer_idका मानNOT NULLहै। - वैकल्पिक: किसी उपयोगकर्ता की प्रोफ़ाइल हो भी सकती है और नहीं भी, इसलिए संबंध अनुपस्थित हो सकता है।
विदेशी कुंजी पर NOT NULL लगाकर अनिवार्य सहभागिता व्यक्त की जाती है। NULL होने की अनुमति का उल्लेख करना दिखाता है कि आप केवल आकृतियों के बारे में नहीं, बल्कि वास्तविक प्रतिबंधों के बारे में भी सोचते हैं।
आत्म-संदर्भी संबंध
कुछ संबंध किसी इकाई को उसी की ओर संदर्भित करते हैं। किसी कर्मचारी का प्रबंधक भी कर्मचारी होता है; किसी श्रेणी की एक अभिभावक श्रेणी होती है।
आप इसे उसी तालिका को संदर्भित करने वाली विदेशी कुंजी से मॉडल करते हैं। साक्षात्कारकर्ता संगठन-चार्ट और वृक्ष संरचनाओं के लिए इसकी अपेक्षा करते हैं, और इसका उपयोग स्वयं-संयोजनों तथा पुनरावर्ती सामान्य-तालिका अभिव्यक्तियों के साथ स्वाभाविक रूप से किया जाता है।
CREATE TABLE employees (
employee_id INT PRIMARY KEY,
name VARCHAR(100),
manager_id INT NULL,
FOREIGN KEY (manager_id) REFERENCES employees(employee_id)
);
-- manager_id NULL = top of the hierarchy (e.g. CEO)छोटे मॉडल-निर्माण का चरण-दर-चरण उदाहरण
क्रिया-से-संबंध विधि का अभ्यास कीजिए। प्रश्न: "ग्राहक ऑर्डर देते हैं; हर ऑर्डर में कई उत्पाद होते हैं; उत्पाद आपूर्तिकर्ताओं से संबंधित होते हैं।"
- ग्राहक 1:N ऑर्डर (विदेशी कुंजी ग्राहक पहचानकर्ता ऑर्डर तालिका में)।
- ऑर्डर M:N उत्पाद -> मध्यस्थ
order_itemsतालिका (जिसमें मात्रा हो)। - आपूर्तिकर्ता 1:N उत्पाद (विदेशी कुंजी आपूर्तिकर्ता पहचानकर्ता उत्पाद तालिका में)।
हर बहुलता और कुंजी कहाँ रखी जाती है, यह स्पष्ट रूप से बताइए। यही विवरण साक्षात्कार में सफलता दिलाता है।
पूछे जाने वाले स्पष्टीकरण प्रश्न
साक्षात्कारकर्ता उन अभ्यर्थियों को महत्व देते हैं जो डिज़ाइन शुरू करने से पहले प्रश्न पूछते हैं। अच्छे स्पष्टीकरण प्रश्न हैं:
- "क्या कोई उत्पाद एक से अधिक आपूर्तिकर्ताओं से संबंधित हो सकता है?" (1:N और M:N में से तय होता है)।
- "क्या हर ऑर्डर में कम-से-कम एक वस्तु होना आवश्यक है?" (सहभागिता)।
- "क्या हमें इतिहास चाहिए या केवल वर्तमान स्थिति?" (अतिरिक्त तालिकाओं की आवश्यकता तय होती है)।
उत्तर बहुलता और तालिकाओं की संख्या बदल सकते हैं, इसलिए कभी अनुमान न लगाएँ। प्रश्न पूछना वरिष्ठता का संकेत है।
त्वरित जाँच
आप ऐसे विद्यार्थियों और पाठ्यक्रमों का मॉडल बना रहे हैं जहाँ हर विद्यार्थी कई पाठ्यक्रम ले सकता है और हर पाठ्यक्रम में कई विद्यार्थी हो सकते हैं।
पुनरावलोकन: ER मॉडलिंग और कार्डिनैलिटी
अब आप खुले-छोर वाले स्कीमा-रचना संबंधी प्रश्नों को संभाल सकते हैं:
- संज्ञाओं को इकाइयों/विशेषताओं में और क्रियाओं को संबंधों में बदलें।
- 1:N: विदेशी कुंजी कई वाली ओर रखें।
- M:N: दोनों विदेशी कुंजियों और संबंध की अतिरिक्त विशेषताओं वाली जोड़ तालिका रखें।
- 1:1: आश्रित तालिका में साझा/अद्वितीय कुंजी रखें।
- अनिवार्य सहभागिता दर्शाने के लिए
NOT NULLऔर पदानुक्रमों के लिए स्वयं-संदर्भित विदेशी कुंजियों का उपयोग करें। - कार्डिनैलिटी तय करने से पहले स्पष्टीकरण वाले प्रश्न पूछें।
एआई शिक्षक के साथ SQL सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 30
- पाठ
- 120
अक्सर पूछे जाने वाले प्रश्न
क्या “ER मॉडलिंग और संबंधों की कार्डिनैलिटी” पाठ निःशुल्क है?
हाँ—“ER मॉडलिंग और संबंधों की कार्डिनैलिटी” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और SQL साक्षात्कार की तैयारी पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। SQL साक्षात्कार की तैयारी पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“ER मॉडलिंग और संबंधों की कार्डिनैलिटी” में मैं क्या सीखूँगा?
आवश्यकताओं को इकाइयों, संबंधों और जंक्शन तालिकाओं में बदलना आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ SQL साक्षात्कार की तैयारी का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या SQL साक्षात्कार की तैयारी शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर SQL साक्षात्कार की तैयारी शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।
“ER मॉडलिंग और संबंधों की कार्डिनैलिटी” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस SQL साक्षात्कार की तैयारी पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर SQL साक्षात्कार की तैयारी पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- 3NF तक सामान्यीकरण
- ER मॉडलिंग और संबंधों की कार्डिनैलिटी
- स्टार स्कीमा और डेटा वेयरहाउस डिज़ाइन
- पूर्ण मॉक इंटरव्यू समस्या-संग्रह