Data Modelling in DBMS
- Siddharth Sharma
- Feb 18
- 6 min read
Database Management System (DBMS) में डेटा को स्टोर करने से पहले यह तय करना बहुत जरूरी होता है कि डेटा का Structure कैसा होगा, डेटा के बीच Relationship क्या होंगे, और डेटा को कैसे Access किया जाएगा। इसी प्रक्रिया (Process) को Data Modeling कहा जाता है।
Definition (परिभाषा):
Data Model एक Abstract Model है जो डेटा के विवरण (Description), डेटा के शब्दार्थ (Semantics) और डेटा पर लागू होने वाले Constraints (नियमों) का वर्णन करता है। आसान शब्दों में, यह एक Blueprint या Architectural Plan की तरह है। जैसे घर बनाने से पहले नक्शा (Map) बनाया जाता है, वैसे ही डेटाबेस बनाने से पहले Data Model तैयार किया जाता है।
डेटा मॉडल्स का मुख्य उद्देश्य (Main Purpose) यह सुनिश्चित करना है कि डेटा को Efficiently स्टोर किया जा सके और यूजर की Requirements पूरी हो सकें।
इतिहास में डेटा को व्यवस्थित (Organize) करने के लिए कई तरह के मॉडल्स विकसित किए गए। इनमें सबसे प्रमुख तीन मॉडल्स हैं:
Hierarchical Model
Network Model
Relational Model
आइए इन तीनों को विस्तार से समझते हैं।
1. Hierarchical Model (हाइरार्किकल मॉडल)
Hierarchical Model सबसे पुराना डेटा मॉडल है। इसे 1960 के दशक में IBM द्वारा विकसित किया गया था (मुख्य रूप से उनके IMS - Information Management System के लिए)।
Structure (संरचना)
इस मॉडल में डेटा को एक Tree-like Structure (पेड़ जैसी संरचना) में व्यवस्थित किया जाता है। इसमें डेटा Records के रूप में स्टोर होता है और ये रिकॉर्ड्स एक-दूसरे से Links के माध्यम से जुड़े होते हैं।
Root Node: सबसे ऊपर वाले रिकॉर्ड को Root कहा जाता है।
Parent-Child Relationship: इसमें रिकॉर्ड्स के बीच Parent-Child का संबंध होता है।
एक Parent के कई Children हो सकते हैं।
लेकिन एक Child का केवल एक ही Parent हो सकता है।
यह One-to-Many (1:N) Relationship को सपोर्ट करता है।
Real-Life Example
अपने कंप्यूटर के File System को देखिए।
Drive (C:) एक Root है।
उसके अंदर Folders (Parent) हैं।
Folders के अंदर Sub-folders और Files (Children) हैं।
एक फाइल केवल एक ही फोल्डर में हो सकती है (One Parent), लेकिन एक फोल्डर में कई फाइलें हो सकती हैं (Many Children)।
Operations
इसमें डेटा को एक्सेस करने के लिए Top-to-Bottom (ऊपर से नीचे) नेविगेट करना पड़ता है। अगर आपको किसी Child record को ढूंढना है, तो आपको Root से शुरू करके उसके Parent तक जाना होगा।
Advantages (फायदे)
Simplicity: इसका स्ट्रक्चर बहुत सरल और समझने में आसान है।
Data Security: इसमें डेटा बहुत सुरक्षित रहता है क्योंकि किसी Child record को एक्सेस करने के लिए Parent से गुजरना अनिवार्य (Mandatory) है।
Performance: अगर 1:N Relationship है (जैसे Department और Employees), तो इसमें Searching बहुत फास्ट होती है।
Disadvantages (कमियां)
Inflexibility: यह Many-to-Many (M:N) रिलेशनशिप को सपोर्ट नहीं करता। उदाहरण के लिए, एक स्टूडेंट कई कोर्सेस में एनरोल हो सकता है और एक कोर्स में कई स्टूडेंट्स हो सकते हैं। इसे Hierarchical Model में दिखाना बहुत मुश्किल है।
Data Redundancy: अगर एक ही इनफॉर्मेशन को दो अलग-अलग जगहों पर यूज करना है, तो उसे दो बार स्टोर करना पड़ता है (Duplicate Data), क्योंकि एक Child के दो Parents नहीं हो सकते।
Complex Deletion: अगर आप किसी Parent Node को डिलीट करते हैं, तो उसके सभी Child Nodes भी ऑटोमैटिकली डिलीट हो जाते हैं। इससे जरूरी डेटा खो सकता है।
2. Network Model (नेटवर्क मॉडल)
Hierarchical Model की कमियों (खासकर Many-to-Many रिलेशनशिप की कमी) को दूर करने के लिए Network Model विकसित किया गया। इसे CODASYL (Conference on Data Systems Languages) ग्रुप द्वारा मानकीकृत (Standardize) किया गया था।
Structure (संरचना)
यह मॉडल Hierarchical Model का ही एक विस्तार (Extension) है, लेकिन इसमें डेटा को Tree के बजाय Graph Structure में व्यवस्थित किया जाता है।
Nodes and Edges: इसमें रिकॉर्ड्स को Nodes और उनके बीच के रिलेशन्स को Edges (Links) से दर्शाया जाता है।
Multiple Parents: इस मॉडल की सबसे बड़ी खासियत यह है कि इसमें एक Child Node (जिसे यहाँ Member कहा जाता है) के एक से अधिक Parent Nodes (जिसे यहाँ Owner कहा जाता है) हो सकते हैं।
यह One-to-One (1:1), One-to-Many (1:N), और Many-to-Many (M:N) तीनों प्रकार के रिलेशनशिप को सपोर्ट करता है।
Real-Life Example
सोचिए एक कॉलेज का सिस्टम है:
Entities: Students, Teachers, और Courses.
Relationship:
एक Teacher कई Subject पढ़ा सकता है।
एक Student कई Courses पढ़ सकता है।
एक Course में कई Students हो सकते हैं।
यह एक जाल (Web या Network) जैसा स्ट्रक्चर बनाता है जहाँ सब एक-दूसरे से जुड़े हैं।
Operations
Network Model में डेटा को एक्सेस करने के लिए Pointers का उपयोग किया जाता है। रिकॉर्ड्स फिजिकली डिस्क पर कहीं भी हो सकते हैं, लेकिन वे Circular Linked Lists या Pointers के जरिए लॉजिकली जुड़े होते हैं। प्रोग्रामर को डेटा स्ट्रक्चर का पूरा ज्ञान होना चाहिए ताकि वह इन लिंक्स को नेविगेट कर सके।
Advantages (फायदे)
Many-to-Many Support: यह M:N रिलेशनशिप को आसानी से हैंडल कर सकता है, जो Hierarchical मॉडल नहीं कर सकता था।
Data Access Flexibility: डेटा को एक्सेस करना ज्यादा फ्लेक्सिबल है क्योंकि एक रिकॉर्ड तक पहुँचने के कई रास्ते (Paths) हो सकते हैं (Multiple Parents होने के कारण)।
Data Integrity: चूंकि यह Parent-Child (Owner-Member) रिलेशनशिप पर आधारित है, यह डेटा की अखंडता (Integrity) बनाए रखता है।
Disadvantages (कमियां)
Complexity: इसका स्ट्रक्चर बहुत जटिल (Complex) होता है। इसमें बहुत सारे Pointers होते हैं जिन्हें मैनेज करना मुश्किल होता है।
No Structural Independence: अगर आप डेटाबेस के स्ट्रक्चर में थोड़ा भी बदलाव (Change) करते हैं, तो आपको उन सभी एप्लिकेशन प्रोग्राम्स को भी बदलना होगा जो उस डेटाबेस को एक्सेस कर रहे हैं।
Difficult Implementation: इसे डिजाइन और इम्प्लीमेंट करना आसान नहीं है।
3. Relational Model (रिलेशनल मॉडल)
Relational Model आज के समय में सबसे लोकप्रिय और व्यापक रूप से उपयोग किया जाने वाला डेटा मॉडल है। इसे 1970 में Dr. E.F. Codd (IBM के एक साइंटिस्ट) ने प्रस्तावित किया था। यह मॉडल गणितीय Set Theory और Predicate Logic पर आधारित है।
आज के सभी आधुनिक DBMS (जैसे MySQL, Oracle, SQL Server, PostgreSQL) इसी मॉडल पर काम करते हैं।
Structure (संरचना)
इस मॉडल में डेटा को Tables (तालिकाओं) के रूप में स्टोर किया जाता है। टेक्निकल भाषा में Table को Relation कहा जाता है (इसीलिए इसका नाम Relational Model है)।
इसमें Tree या Graph जैसा कोई जटिल स्ट्रक्चर नहीं होता। इसमें डेटा Rows और Columns में व्यवस्थित होता है।
Relation (Table): डेटा का कलेक्शन जो टेबल फॉर्म में हो।
Tuple (Row/Record): टेबल की हर एक पंक्ति (Line) जो एक पूरे रिकॉर्ड को दर्शाती है।
Attribute (Column/Field): टेबल का हर कॉलम जो डेटा की किसी विशेषता (Property) को बताता है (जैसे Name, Age, Salary)।
Domain: किसी Attribute में आने वाली संभावित वैल्यूज (Possible Values) का सेट।
Key Concepts (कुंजी अवधारणाएं)
Relational Model की शक्ति Keys में छिपी है:
Primary Key: यह एक ऐसा कॉलम है जो हर रिकॉर्ड को Uniquely Identify करता है (जैसे Roll Number या Aadhar Number)। यह कभी खाली (Null) नहीं हो सकता और इसमें डुप्लीकेट वैल्यू नहीं हो सकती।
Foreign Key: यह दो टेबल्स के बीच Relationship स्थापित करने के लिए उपयोग की जाती है। एक टेबल की Primary Key दूसरी टेबल में Foreign Key बनकर जाती है।
Example
मान लीजिए दो टेबल्स हैं: Student Table और Course Table।
Student Table: (Roll_No [PK], Name, Age)
Course Table: (Course_ID [PK], Course_Name, Roll_No [FK])
यहाँ Roll_No के जरिए हमें पता चल जाएगा कि कौन सा स्टूडेंट किस कोर्स में है। यहाँ कोई Pointer नहीं है, सिर्फ वैल्यूज मैच की जाती हैं।
Operations (SQL)
Relational Model में डेटा को मैनेज करने के लिए एक स्टैंडर्ड लैंग्वेज का उपयोग होता है जिसे SQL
(Structured Query Language) कहते हैं। यूजर को यह जानने की जरूरत नहीं है कि डेटा फिजिकली कैसे स्टोर है; उसे बस यह बताना होता है कि उसे "क्या" (What) चाहिए, न कि "कैसे" (How) निकालना है।
Advantages (फायदे)
Simplicity: टेबल्स को समझना और बनाना बहुत आसान है। यह यूजर-फ्रेंडली है।
Data Independence: यह इस मॉडल का सबसे बड़ा फायदा है। डेटाबेस के लॉजिकल स्ट्रक्चर को बदलने पर एप्लिकेशन प्रोग्राम्स को बदलने की जरूरत नहीं पड़ती।
Scalability: इसमें नई टेबल्स या नया डेटा ऐड करना बहुत आसान है बिना पुराने सिस्टम को डिस्टर्ब किए।
Flexible Queries: SQL की मदद से हम बहुत जटिल (Complex) से जटिल डेटा भी आसानी से निकाल सकते हैं (जैसे Joining multiple tables)।
Disadvantages (कमियां)
Hardware Overhead: रिलेशनल डेटाबेस को चलाने के लिए शक्तिशाली हार्डवेयर (ज्यादा RAM और Storage) की जरूरत होती है क्योंकि यह फिजिकल स्टोरेज को यूजर से छिपाता है (Abstraction), जिसमें प्रोसेसिंग पावर लगती है।
Performance: बहुत जटिल (Complex) रिलेशनशिप्स में कभी-कभी यह Network Model से धीमा हो सकता है, क्योंकि इसे बार-बार टेबल्स को Join करना पड़ता है।
Comparison Summary (तुलनात्मक सारांश)
परीक्षा (Exams) में अक्सर इन तीनों के बीच अंतर पूछा जाता है। इसे नीचे दी गई टेबल से आसानी से समझा जा सकता है:
Feature | Hierarchical Model | Network Model | Relational Model |
Structure | Tree (पेड़ जैसा) | Graph (जाल जैसा) | Table (तालिका) |
Relationship | One-to-Many (1:N) | Many-to-Many (M:N) | Many-to-Many (M:N) |
Access Method | Navigation (ऊपर से नीचे) | Navigation (पॉइंटर्स के जरिए) | SQL (Non-procedural) |
Simplicity | Simple | Very Complex | Very Simple |
Flexibility | Low | Medium | High |
Data Independence | No | No | Yes (High) |
Example | Windows Registry, XML | CODASYL DB | Oracle, MySQL, SQL Server |
Conclusion (निष्कर्ष)
Data Modeling डेटाबेस डिजाइन का सबसे महत्वपूर्ण चरण है।
Hierarchical Model ने हमें डेटा स्टोरेज की शुरुआत दी लेकिन यह बहुत सख्त (Rigid) था।
Network Model ने फ्लेक्सिबिलिटी दी लेकिन यह बहुत जटिल (Complex) था।
Relational Model ने इन दोनों की कमियों को दूर किया। इसने डेटा को Tables में रखकर और SQL जैसी भाषा देकर डेटा मैनेजमेंट को बहुत आसान बना दिया।
यही कारण है कि आज लगभग 90% कमर्शियल एप्लीकेशन्स (बैंकिंग, रेलवे रिजर्वेशन, ई-कॉमर्स)
Relational Model (RDBMS) का ही उपयोग करती हैं। हालांकि, आजकल NoSQL Databases (जैसे MongoDB) भी आ रहे हैं जो अनस्ट्रक्चर्ड डेटा (Unstructured Data) के लिए Hierarchical और Network मॉडल के कुछ आधुनिक रूपों का उपयोग करते हैं, लेकिन रिलेशनल मॉडल आज भी डेटाबेस की दुनिया का राजा (King) है।




Comments