Bcnf in dbms in Hindi, Boyce Codd normal form in dbms in hindi
BCNF in DBMS in hindi
- BCNF, 3NF का advance version है। यह 3NF की तुलना में strict है।
- एक तालिका BCNF में है यदि हर functional dependency X → Y, X table की super key है।
- Bcnf के लिए, table 3NF मे होना चाहिए, और प्रत्येक FD के लिए, LHS super key है।
उदाहरण: मान लें कि एक कंपनी है जहां कर्मचारी एक से अधिक विभागों में काम करते हैं।
Employee table:
EMP_ID | EMP_COUNTRY | EMP_DEPT | DEPT_TYPE | EMP_DEPT_NO |
264 | India | Designing | D394 | 283 |
264 | India | Testing | D394 | 300 |
364 | UK | Stores | D283 | 232 |
364 | UK | Developing | D283 | 549 |
उपरोक्त table में functional dependencies इस प्रकार हैं:
- EMP_ID → EMP_COUNTRY
- EMP_DEPT → {DEPT_TYPE, EMP_DEPT_NO}
Candidate key: {EMP-ID, EMP-DEPT}
तालिका BCNF में नहीं है क्योंकि न तो EMP_DEPT और न ही EMP_ID Table कुंजियाँ हैं।
दी गई तालिका को BCNF में बदलने के लिए, हम इसे तीन तालिकाओं में विघटित (decompose) करते हैं:
EMP_COUNTRY table:
EMP_ID | EMP_COUNTRY |
264 | इंडिया |
264 | इंडिया |
EMP_DEPT table:
EMP_DEPT | DEPT_TYPE | EMP_DEPT_NO |
Designing | D394 | 283 |
Testing | D394 | 300 |
Stores | D283 | 232 |
Developing | D283 | 549 |
EMP_DEPT_MAPPING table:
EMP_ID | EMP_DEPT |
D394 | 283 |
D394 | 300 |
D283 | 232 |
D283 | 549 |
Functional dependencies:
- EMP_ID → EMP_COUNTRY
- EMP_DEPT → {DEPT_TYPE, EMP_DEPT_NO}
candidate key:
पहली तालिका के लिए: EMP_ID
दूसरी तालिका के लिए: EMP_DEPT
तीसरी तालिका के लिए: {EMP_ID, EMP_DEPT}
अब, यह bcnf में है क्योंकि दोनों functional dependencies का left हिस्सा एक key है।