First Normal Form (1FN) – पहले Normal Form का मकसद ये होता है कि किसी भी Table से Repeating Fields को Remove कर दिया जाए। वास्तव में एक Pure Relational Database में हर Object का एक Structure होता है। यदि हम Video-Store का Example देखें, तो एक Movie में एक से ज्यादा Actors हो सकते हैं। उस स्थिति में क्या हम एक और Actor को Store करने के लिए Table में एक और Field Create करेंगे।
Excel जैसे Spreadsheet में तो ऐसा करना सम्भव है, लेकिन इसमें भी तब हम क्या करेंगे जब हमें उन सभी Movies को Search करना होगा, जिसमें किसी एक Actor ने ही Role Play किया है। इस स्थिति में हमें दो Query करनी पडेगी और मानलो कि Table में एक तीसरे Actor को भी Store करना हो, तो उस स्थिति में हमें एक और Field Create करना पडेगा साथ ही किसी एक Actor की सभी Movies को Search करने के लिए अब हमें तीन Queries करनी पडेगी।
यानी हम समझ सकते हैं कि Table में Fields की संख्या बढा कर Actors को Store करना व Manage करना एक अच्छा Solution नहीं है।
इस स्थिति में हमें हमारे Movie Table से Actor को Remove करना होता है, क्योंकि ये बार-बार Repeat हो सकता है। इस Removed Field को एक नए Table में Store करके हम केवल Actors की ही Information को इस नए Table में Store कर सकते हैं और इस Table में हम जितने चाहें, उतने Actors की Information को Store कर सकते हैं। Relational Database Theory व SQL में Repeating Columns को Restricted रखा गया है। कई स्थितियों में Data Repetitive होते हैं और हमें Data को इस तरह से Modify करना होता है, ताकि वे Database में Fit हो सकें।
Visual Basic में एक Case ये होता है कि Visual Basic के Class Object को Table में Convert करना पडता है। एक Object में एक या एक से ज्यादा Collections Contained हो सकते हैं। Collection को Table में रखने के लिए हमें Object को Deconstruct करना पडता है और इसे Separate Tables में Place करना पडता है। फिर Object को Recover करने के लिए हमें इसे इससे सम्बंधित Object में Reconstruct करना पडता है।
इस समस्या को Object Oriented Databases द्वारा Solve किया जाता है, जो कि Data Collections को ठीक उसी तरह से Represent करने में सक्षम होते हैं, जिस तरह से Visual Basic करता है। फिर भी Object Oriented Databases की स्वयं की कुछ समस्याएं होती हैं। Oracle8 व इसके बाद के सभी Versions Object Oriented Concept को Support करते हैं। साथ ही Oracle के नए Versions किसी Complex Database के Repeating Columns को Nested Tables व VARRAY प्रकार के नए Data type द्वारा Support करते हैं।
यदि हम Repeating Columns को Use करते हुए कोई Database Design Implement करना चाहें, तो हमें उन Columns को Visual Basic द्वारा अलग करके Use करना पडता है। हालांकि Oracle से पहले SQL में इस प्रकार की कोई सुविधा नहीं थी, कि वह Attributes के एक Array को Handle कर सके, लेकिन यदि हम Visual Basic के Recordset द्वारा Data को Read करना चाहते हैं, तो हम Oracle के ऐसे Fields को एक Field Index द्वारा Access कर सकते हैं।
यदि हम Table में किसी Array को Represent करना चाहें, तो सबसे अच्छा तरीका यही होता है कि हम Array के हर Dimension के लिए एक Column को Setup करें और एक या एक से अधिक Columns को Data Values के लिए Set करें। ऐसे Data को Retrieve करने के लिए हमें Array के Subscript को Choose करना होगा। हालांकि ये तरीका काम करता है, फिर भी हमें इसका एक Alternate Use करना चाहिए, क्योंकि Multi-Valued Data के लिए Table एक Ideal Design या Implementation नहीं होता है।
Repeating Columns के Table से Removal के बाद एक अन्तिम बात ये होती है कि हम एक ही Heading वाली ऐसी Reports को कैसे Develop करें, जिसमें Records की संख्या इतनी होती है कि वे एक Page से ज्यादा में Print होती है, क्योंकि Oracle में Cross-Tabulation Function जैसी कोई सुविधा नहीं है। इसलिए सबसे Best Option यही है कि ऐसे Data को VB में एक Array Format में Hold किया जाए, उसे Stored Procedure में Store किया जाए या Crystal Reports जैसा कोई Report Generator Use किया जाए, जो ये काम कर सके।
First Normal Form के आधार पर Video-Renting Database को Normalize करने पर हमें एक Video Table के स्थान पर Videos व Actors नाम की दो Tables प्राप्त होती हैं। (First Normal Form (1FN))
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Oracle 8i/9i SQL/PLSQL in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
Oracle 8i/9i SQL/PLSQL in Hindi | Page: 587 | Format: PDF