Database Normalization में जब हम 1NF, 2NF, 3NF, BCNF और 5NF तक पहुँच जाते है, तो उसके बाद एक और advanced level आता है Domain Key Normal Form (DKNF)
यह Normal Form बाकी सभी forms से अलग और अधिक कठोर (strict) होती है। इसका उद्देश्य database में सभी types की anomalies (विसंगतियों) को पूरी तरह खत्म करना है।
Domain Key Normal Form (DKNF) क्या है?
Domain Key Normal Form (DKNF) एक ऐसी highest-level normalization form है, जिसे Ronald Fagin ने 1981 में प्रस्तावित किया था। DKNF यह सुनिश्चित करती है कि database में जो भी constraint (सीमाएँ) हो वे सिर्फ दो चीज़ो से संबंधित हो –
- Domain constraints
- Key constraints
यानी कि अगर किसी टेबल में कोई भी rule या restriction है, तो वह या तो किसी column (domain) से संबंधित हो या किसी key से।
DKNF की परिभाषा –
कोई relation (टेबल) Domain Key Normal Form में तब होती है, जब उसके सभी constraints सिर्फ domain और key definitions से निकले हो।
इसका मतलब है कि –
- Table में कोई ऐसा constraint मौजूद न हो जो domain या key के बाहर define किया गया हो।
- हर dependency या rule domain और key के आधार पर explain किया जा सके।
Domain और Key Constraints क्या है?
Domain Constraints
Domain constraints यह तय करते है कि किसी column में किस प्रकार का data store किया जा सकता है।
उदाहरण –
- Age column में केवल संख्यात्मक (numeric) value हो।
- Email column में ‘@’ symbol ज़रूर हो।
- Date_of_Birth केवल valid date format में हो।
Key Constraints
Key constraints यह तय करते हैं कि कौन सा attribute (column) unique होगा और null नही हो सकता।
उदाहरण –
- Student_ID primary key है, इसलिए दो students का ID एक जैसा नहीं हो सकता।
- Employee_ID हर row में unique रहेगा।
DKNF का उद्देश्य
DKNF का मुख्य उद्देश्य यह है कि –
- Database में किसी भी प्रकार की Insert, Update या Delete anomalies न रहे।
- सभी नियम (constraints) स्पष्ट रूप से keys और domains द्वारा नियंत्रित हो।
- किसी भी dependency को manually define करने की जरूरत न पड़े।
DKNF Example
मान लीजिए हमारे पास एक टेबल है –
| Student_ID | Name | Course | Fee |
|---|---|---|---|
| 101 | Ram | BCA | 25000 |
| 102 | Priya | MCA | 40000 |
अब मान लीजिए हमारे database में यह नियम है कि BCA course की fee हमेशा 25000 और MCA की 40000 होनी चाहिए। यह नियम न तो key constraint है और न ही domain constraint, यह एक business rule constraint है।
इसलिए यह table DKNF में नही है, क्योंकि इसमें ऐसा rule है जो domain और key से बाहर है।अगर हम इस rule को remove कर दे या इसे domain के अंदर define कर दे (जैसे Course के लिए fee domain में specify कर दे),
तो table DKNF में आ जाएगा।
DKNF की Conditions
किसी relation को DKNF में होने के लिए निम्न conditions पूरी करनी होती है –
- Relation के सभी constraints domain और key से derive होने चाहिए।
- कोई non-key dependency या business rule constraint नहीं होना चाहिए।
- Table में सभी dependencies logic के अनुसार key/domain से explain होनी चाहिए।
DKNF के फायदे
- Anomalies समाप्त होती हैं – Insert, Delete और Update समस्याएँ खत्म होती है।
- Data Integrity बेहतर रहती है।
- Constraints का नियंत्रण आसान हो जाता है।
- Database Clean और Logical बन जाता है।
इन्हें भी पढ़े –
- DBMS क्या है DBMS के प्रकार और कार्य की पूरी जानकारी | DBMS In Hindi
- डेटाबेस यूजर्स क्या है?
- डेटा इंडिपेंडेंस क्या है
- DBMS के लाभ
- Characteristics Of DBMS In Hindi
- डेटा मॉडल क्या है?
- डेटाबेस स्कीमा क्या है
- इंस्टैंस क्या है
- डेटाबेस इंटरफ़ेस क्या है
- डेटाबेस लैंग्वेज क्या है
- Classification of DBMS in Hindi
- Entity Set in DBMS
- DBMS Architecture in Hindi
- Types of Data Models in Hindi
- Attributes in DBMS in Hindi
- Entity Set in DBMS (Hindi)
- Entity Types in DBMS (Hindi)
- Types of Attributes in DBMS
- ER Model in DBMS (E-R मॉडल) क्या है?
- Entities के बीच संबंध
- Domain in DBMS
- Tuples in DBMS
- SQL में Joins क्या हैं?
- Primary Key in DBMS
- DBMS Keys in Hindi
- DBMS Data Integrity in Hindi
- Relational Algebra in DBMS
- Normalization in DBMS क्या है?
- BCNF (Boyce-Codd Normal Form) in DBMS
- Functional Dependency in DBMS
- Non-Loss Decomposition in DBMS
- SQL Data Types in Hindi
- Create Table in SQL in Hindi
- SQL DROP TABLE और ALTER TABLE in Hindi
- SQL Indexes in Hindi
- SDLC in Hindi
- DBLC in Hindi
- SQL Views in Hindi
- PL/SQL PROCEDURES in hindi
निष्कर्ष (Conclusion)
Domain Key Normal Form (DKNF) normalization का सबसे ऊँचा स्तर है। इसका उद्देश्य है database को पूरी तरह error-free और logically consistent बनाना। हालांकि practically, ज़्यादातर databases 3NF या BCNF तक normalize किए जाते है, लेकिन DKNF एक ideal स्थिति है जहाँ हर rule domain और key से नियंत्रित होता है।