Fourth Normal Form Definition: BCNF की तरह ही Forth Normal Form को भी किसी Relation की एक Special Characteristic को Handle करने के लिए Design किया गया है, जो कि बहुत ही कम परिस्थितियों में Generate होती है। इस स्थिति में जो Special Characteristics होती है, उसे सामान्यतया Multivalued Dependency कहा जाता है। उदाहरण के लिए निम्न Relation को देखिएः
MovieInfo (Title, Star, Producer)
किसी Specify की गई Movie में एक से ज्यादा Stars हो सकते हैं और उसी Movie को एक से ज्यादा Producers ने Produce किया हो सकता है। Same Stars एक से ज्यादा Move में Appear हो सकते हैं और Producer भी एक से ज्यादा Movies में Involved हो सकता है। इसलिए इस Relation के सभी Columns को Composite Primary Key के रूप में Use करना जरूरी हो जाता है। इस उदाहरण को हम निम्न सारणी में देख सकते हैं:
MovieInfo Table
Title | Star | Producer |
Great Film | Lovely Lady | Money Bags |
Great Film | Handsome Man | Money Bags |
Great Film | Lovely Lady | Helen Pursestrings |
Great Film | Handsome Man | Helen Pursestrings |
Boring Movie | Lovely Lady | Helen Pursestrings |
Boring Movie | Precocious Child | Helen Pursestrings |
चूंकि इस Relation में कोई भी Non-Key Attribute नहीं है, इसलिए ये Relation BCNF Normalization Form में है। फिर भी ये Relation निम्नानुसार Insertion, Deletion व Update Anomalies Show करता हैः
- हम कम से कम एक Producer को जाने बिना किसी Movie के Stars को Insert नहीं कर सकते हैं।
- हम कम से कम एक Star को जाने बिना किसी Movie के Producer को Insert नहीं कर सकते हैं।
- यदि हम किसी Only Producer की Information को Delete करते हैं, तो हम उस Movie के Starts को भी Loose कर देते हैं।
- यदि हम किसी Movie से Only Star को Delete करते हैं, तो हम उस Movie के Producer की Information को भी Loose कर देते हैं।
- Movie के हर Star के लिए Producer के नाम का Duplication होता है। इसी तरह से हर Producer के लिए Movie के Star के नाम का Duplication होता है। ये Unnecessary Duplication Modification Anomaly की Situation पैदा करता है।
इस Relation में दो Unrelated Entities हैं। पहला Entity Movie व Stars के बीच की Relationship को Handle करता है और दूसरा Movie व Producer के बीच की Relationship को Handle करता है। Practically देखें तो यही Anomaly का मुख्य कारण है, हालांकि Movie, Star व Producer Entities भी Anomaly में Involved हैं।
फिर भी Theoretically जो Anomalies Create हो रही हैं, वे एक ही Relation में Multivalued Dependency के कारण Create हो रही हैं, जिन्हें Forth Normal Form में Eliminate किया जाता है। Forth Normal Form का नियम ये है कि:
Relation Boyce-Codd Normal Form में हो और उसमें कोई Multi-Valued Dependency ना हो।
किसी Relation में Multivalued Dependency तब Exist होती है, जब किसी Attribute A की हर Value के लिए किसी दूसरे Attribute B की बहुत सारी Values Associated हों और किसी Attribute C की हर Value के लिए Attribute A की बहुत सारी Values Associated हों, जबकि Attribute B व C आपस में Independent हों।
हम जिस उदाहरण को Use कर रहे हैं, उस उदाहरण में इस प्रकार की Dependency है। क्योंकि हर Movie Title के लिए Stars या Actors का एक Group है, जो कि Movie से Associated हैं और हर Movie Title के लिए भी Producers का एक Group है, जिनसे Movie Associated है। फिर भी Actors व Producers एक दूसरे से Independent हैं, क्योंकि इनके बीच कोई Direct Connection नहीं है। इस Multivalued Dependency को निम्नानुसार Represent किया जा सकता हैः
Title ->> Star
Title ->> Producer
और इसे इस तरह पढा जाता है कि “Title Multi-Determines Star and Title Multi-Determines Producer.”
Functional Dependency एक Multivalued Dependency का एक Special प्रकार है, जहां सिर्फ एक मान को Determine किया जाता है, ना कि मानों के एक Group को। Multivalued Dependency को Eliminate करने व इस Relation को Forth Normal Form में लाने के लिए, हमें Relation को Split करना होता है और Relation की Dependency के हर हिस्से को निम्नानुसार उसके स्वयं के Relation में Place करना होता है
MovieStars (Title, Star)
MovieProducers(Title, Producer)
इस Design में हम स्वतंत्र रूप से Stars व Producers को बिना एक दूसरे को प्रभावित किए हुए, Insert व Remove कर सकते हैं। Stars व Producers का नाम भी हर Movie के लिए केवल एक ही बार Appear होता है, जिनसे वे Connected होते हैं।
किसी Database के Relations को Normalize करने पर हर Entity अपने स्वयं के अलग Relation द्वारा Represent होता है और Normalization हमें ये सुविधा देता है कि हम बिना किसी दूसरे Entity को Directly Disturb करते हुए, विभिन्न Relations में Data को Insert कर सकते हैं, Delete कर सकते हैं, Modify कर सकते हैं। हालांकि Normalization की भी अपनी कुछ कमियां हैं।
हम Relations को इसलिए Split करते हैं, ताकि Relationships को Primary Key व Foreign Key के Matching द्वारा Represent किया जा सके। हम जब भी DBMS से किसी Query द्वारा एक से अधिक Tables के Data को प्राप्त करना चाहते हैं, तब हम DBMS को विभिन्न Relations के बीच Matching Operation को Perform करने के लिए बाध्य करते हैं।
उदाहरण के लिए किसी Normalized Database में हम किसी Order के Data को एक Relation में Store करते हैं, Customer के Data को दूसरे Relation में Store करते हैं और Order Lines के Data को तीसरे Relation में Store करते हैं। जब हम Query करते हैं, तब ये Query Operation इन तीनों ही Relations से Required Data को प्राप्त करके एक Single Table के रूप में Prepare करता है। ताकि किसी Invoice के लिए Output Generate किया जा सके। विभिन्न Tables के Data को Combined Form में एक Table के रूप में दिखाने के लिए DBMS एक विशेष Process का प्रयोग करता है। इस प्रक्रिया को Join कहा जाता है।
Theory के रूप में Join Operation दो Relations के बीच Matching Values के आधार पर Records को या Rows को Search करता है और जितनी बार भी उसे Match प्राप्त होता है, वह Resultant Table में एक नया Record या Row Create कर देता है। हालांकि Join Operation को Perform करके एक से ज्यादा Relations से Data को Manipulate किया जाना एक अच्छी प्रक्रिया है। लेकिन जब Join Operations से बहुत ज्यादा Records Access होते हैं, तब DBMS की Performance यानी Data Manipulation की Speed कम हो जाती है।
ये जानने के लिए कि Join Operation से क्या हो सकता है, हमें Join Operation के Algebra को समझना होगा। Relational Algebra, Operations का एक एसा समूह है, जिसका प्रयोग किसी Relation से Data को Manipulate व Extract करने के लिए किया जाता है। हर Operation दो Tables पर, एक Single Manipulation Perform करता है।
किसी Query को Complete करने के लिए DBMS, Relational Algebra Operations का पूरा एक Sequence Use करता है। Relational Algebra एक तरह से Procedural होता है, जबकि SQL, Relational Calculus पर आधारित होता है। SQL में हमें केवल ये बताना होता है कि एक Database Relation से हमें क्या Data चाहिए जबकि हमें ये बताने की जरूरत नहीं होती है, कि हमें Database Relation से वह Data कैसे चाहिए। एक Single SQL Retrieval Command, DBMS को एक या सभी Relational Algebra Operations को Perform करने के लिए प्रेरित कर सकता है। (Fourth Normal Form Definition)
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Oracle 8i/9i SQL/PLSQL in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
Oracle 8i/9i SQL/PLSQL in Hindi | Page: 587 | Format: PDF