Introduction of Data – Field, Record and File
किसी भी समस्या के समाधान के लिए Computer को विभिन्न प्रकार के मानों की जरूरत होती है। Computer में किसी मान या मानों के समूह को Data कहा जाता है और मानों के समूह के किसी Single Item को Data Item कहा जाता है।
जिस Data Item को Sub Item में विभाजित किया जा सकता है, उस Data Item को Group Item या Composite Data Item कहते हैं और जिस Data Item को Sub Item में विभाजित नहीं किया जा सकता, उस Data Item को Elementary Data Item या Primary Data Item कहते हैं। उदाहरण के लिए किसी School में जो विभिन्न Students Study करते हैं उन सभी Students का कोई ना कोई नाम होता है। हर Student का नाम Computer के लिए एक Data है। हम हर Student के नाम को तीन Sub Items First Name, Middle Name व Last Name विभाजित कर सकते हैं। इसलिए Name एक Group Data Item है।
इसी तरह जब भी कोई Student किसी School में Admission लेता है तो उस Student को एक Unique Serial Number प्रदान किया जाता है। एक Student को जो Number Allot किया जाता है वह Number किसी दूसरे Student को Allot नहीं किया जाता। ये Number किसी अमुक विधार्थी की Unique पहचान होती है। विभिन्न Students को दिए जाने वाले Serial Number को हम अन्य Data Items में विभाजित नहीं कर सकते हैं। इसलिए Serial Number एक Elementary Data Item कहलाता है।
Data के किसी समूह को Fields, Records व Files की Hierarchy के रूप में Organize किया जा सकता है। हम जिस किसी भी चीज को Computer में Manage करना चाहते हैं, उसे एक Entity या इकाई के रूप में लेते हैं। दुनिया की हर चीज Computer के लिए एक Object या Entity है। जैसे Table, Chair, Computer, CPU, RAM आदि।
किसी Company के विभिन्न Employees उस Company के लिए Entities या Objects हैं और किसी School के विभिन्न Teachers, उस School के Objects या Entities हैं। इसी तरह किसी Class के विभिन्न Students उस Class के Objects या Entities हैं। यानी दुनिया की हर वस्तु Computer के लिए एक Object या Entity है जिसे Computer में Data Item के रूप में Organize किया जा सकता है।
हर Object या Entity की कुछ विशेषताएं होती हैं, जो उसे अन्य Object या Entity से अलग बनाती है। जैसे एक Student की विभिन्न विशेषताएं उसका नाम, उसका Serial Number, उसकी उम्र, उसका Color उसका Sex आदि हो सकती हैं। इसी तरह से किसी Company के विभिन्न Employees की भी अपनी विशेषताएं हो सकती हैं।
किसी भी Entity या Object की विभिन्न विशेषताओं को Entity की Characteristics या Properties या Attributes कहते हैं। इन Attributes में कोई ना कोई मान Assign किया जा सकता है। ये मान Numeric या Non – Numeric हो सकते हैं। जैसे किसी Student के विभिन्न Attributes को निम्नानुसार मान प्रदान किया जा सकता है-
Sr_No | Name | Age | Sex | Class |
123 | Amit Sharma | 15 | Male | 10 |
234 | Rahul Varma | 16 | Male | 10 |
121 | Salini Bohra | 15 | Female | 9 |
544 | Silpa Roy | 14 | Female | 8 |
534 | Prince Mishra | 13 | Male | 6 |
532 | Devendra Bhati | 14 | Male | 9 |
Entity का वह समूह जो कि Similar Attributes को Share करता है, Entity Set कहलाता है। जैसे उपरोक्त सारणी में विभिन्न Students समान Attributes को Share कर रहे हैं, इसलिए ये समूह Students Entities का एक Set कहलाता है।
Entity के हर Attribute को प्रदान किए जा सकने वाले मान की एक Range होती है। हम उपरोक्त सारणी में देख सकते हैं कि हमें हर Row में किसी Students की विभिन्न जानकारियां प्राप्त हो रही हैं। यहां किसी Attribute को प्रदान किया जाने वाला मान एक Processed Data होता है। इस Table में कई Attributes मिलकर किसी एक Student के बारे में पूरी Information प्रदान कर रहे हैं।
वह तरीका जिसमें Data को Fields, Records व Files के Hierarchy के रूप में Organized करते हैं, Data, Entity व Entity Set के बीच में एक Relationship को Represent करता है।
- Field किसी Single Entity के किसी Attribute को Represent करता है।
- किसी Entity के विभिन्न Attributes को प्रदान किया जाने वाला मान Record को Represent करता है और
- किसी Entity Set के विभिन्न Entities को File Represent करता है।
किसी Record में किसी Entity के कई Fields हो सकते हैं लेकिन जो Field किसी Record को Uniquely Identify करता है उसे Primary Key Field कहते हैं। जैसे किसी School के विभिन्न Students को Uniquely Identify करने के लिए हर Student का एक Serial Number होता है।
Data को Fields, Records व Files के रूप में अच्छी तरह Organized करने के बाद भी Data को Maintain व Process करना काफी जटिल होता है। इस वजह से Data को और अधिक जटिल Structure में Organize किया जाता है। इन विभिन्न प्रकार के Data Organization के तरीकों को ही Data Structure कहा जाता हैा किसी भी Data Structure को समझते समय हमें निम्न बातों पर ध्यान देना होता है-
- Structure की Logical या Mathematical Description
- Structure की Computer पर Processing
- Structure का Analysis जिसके आधार पर ये तय किया जाता है कि कोई Data Structure Memory में कितनी Space लेगा और Data को Process करने में कितना समय लगेगा।
- Memory में सूचनाएं किस प्रकार से संगठित हो कर रहेंगी।
किसी भी Program की सार्थकता सूचनाओं के संगठन के आधार पर निर्भर होती है। प्रोग्राम की योग्यता इस बात पर निर्भर करती है, कि Data Memory में किस प्रकार से संगठित ( Organized ) हैं व उनका आपस में क्या सम्बंध है।
यदि Data सही प्रकार से Memory में संगठित ना हों, तो प्रोग्राम के Execution में अधिक समय लगता है। अतः किसी भी प्रोग्राम के Fast Execution के लिये उचित Data Structure का चयन बहुत ही जरूरी है।
Data का वह समूह, जो Memory में कम से कम स्थान लेता हो और सामुहिक रूप से आपस में सम्बंधित हों तथा प्रोग्राम मे Fast Execution में सहयोग करते हों, Data Structure कहलाते हैं।
Data Structure वास्तव में Program बनाते समय अपनाए जाने वाले विभिन्न तरीकों में से सबसे सरल व अच्छा तरीका उपयोग में लेना होता है। ये उपयोग में लिये जाने वाले तरीके पर निर्भर करता है कि हमारा Program व उस Program के Data Memory में कितना Space लेंगे।
जैसे कि हम एक Array में ढेर सारे Data रख सकते हैं, लेकिन यदि Array की Size अधिक रखी जाए, तो Array द्वारा फालतू में ही Memory का दुरूपयोग होता है। इस Array के स्थान पर यदि Dynamic Memory Allocation का प्रयोग किया जाए, तो ये उतनी ही Memory Use करता है, जितनी जरूरत होती है।
इस प्रकार से Data, Array के बजाय Dynamic Memory Allocation से Memory में अधिक अच्छी तरह से Organized रहते हैं। इसलिये Dynamic Memory Allocation एक अधिक अच्छा Data Structure या Data के साथ प्रक्रिया करने का माध्यम है।
कोई भी Data Structure, Data सदस्यों के बीच Relationship भी प्रदर्शित करता है। जैसे कि एक Telephone Directory में उन सभी व्यक्तियों के नाम, पते व Phone Number लिखे होते हैं, जिनके पास Phone है। ये सभी एक क्रम में होते हैं। ये क्रम ही Data Structure है क्योंकि सभी Phone Numbers को उसके मालिक के नाम व पते के साथ लिखा जाता है, जिससे किसी भी Phone Number से उस Phone के मालिक का नाम पता आदि जल्दी व आसानी से जाना जा सकता है।
इस प्रकार से सभी Phone Numbers का उसके मालिक से सम्बंध है। इसलिये हम कह सकते हैं कि Data Structure के सदस्य आपस में Related होते हैं।
किसी भी Program को दो कसौटियों पर अच्छा या बुरा कहा जा सकता हैः
- Program के Execution द्वारा लिया जाने वाला समय और
- Program द्वारा Memory में लिया जाने वाला स्थान।
यदि Program Execute होने में काफी समय लगाता है, तो Program को अच्छा नहीं कहा जा सकता। साथ ही यदि Program Memory में काफी अधिक स्थान लेता है, तो ये भी Program की कमी है।
एक अच्छा Program Memory में कम से कम स्थान लेता है और कम से कम समय में अच्छा से अच्छा परिणाम प्रदान करता है। हम एक उचित Data Structure का प्रयोग करके यानी एक सरल व उचित तरीका अपना कर ये दोनों जरूरतें पूरी कर सकते हैं।
Data Structures
Data को Organize करने के कई तरीके हो सकते हैं। Data को Organize करने के Logical या Mathematical Model को भी Data Structure कहा जा सकता है। हम किस Data Structure को Choose करें ये बात दो तथ्यों पर निर्भर करती हैः
- Structure इतना सक्षम होना चाहिए कि वह उसी तरह से Logically Data के विभिन्न Elements के बीच Relationship प्रदर्शित कर सके जिस तरह से वास्तविक जीवन में विभिन्न Data Items आपस में Related होते हैं।
- Data Structure इतना सरल होना चाहिए कि कोई भी Programmer किसी भी Computer Language में Coding लिख कर Data को आसानी से Process कर सके।
Linear Data Structure
जब किसी Data Structure के सभी Items एक Continuous Memory Locations पर उपलब्ध हों, तो इसे Linear Data Structure या Linear List कहते हैं।
जैसे कि एक Array के सभी Elements लगातार Memory Locations पर उपलब्ध रहते हैं। विभिन्न Memory Locations पर उपलब्ध विभिन्न Data Items के बीच Relationship Represent करने का एक तरीका ये है कि हम Array का प्रयोग करें। Array एक Linear Data Structure है।
दूसरे तरीके में विभिन्न Data Items के बीच के Relation को एक Linked List के रूप में Represent किया जाता है। इस तरीके के Data Structure में हम Linked Lists का प्रयोग करते हैं।
Non-Linear Data Structure
जब किसी Data Structure में सभी इकाईयां एक Continues Memory Locations पर उपलब्ध ना हों, तो ये एक Non-Linear Data Structure कहलाता है।
Non–Linear Data Structures के रूप में हम Trees व Graphs का प्रयोग करते हैं। किसी भी Data Structure पर हम निम्न क्रियाएं कर सकते हैं-
- नई इकाई जोडना।
- किसी इकाई को Delete करना।
- Processing के लिये हर इकाई पर Move करना।
- किसी मान को सभी इकाईयों में खोजना।
- इकाईयों की Sorting करना।
- दो Structures को जोड कर एक Structure बनाना।
जब हम किसी Data Structure को Choose करते हैं, तब किसी Data Item के साथ किस प्रकार से प्रक्रिया करनी है, ये तथ्य उस Data Structure पर निर्भर करता है कि हमने किस प्रकार का Data Structure Choose किया है।
Array एक सबसे सरल Data Structure है जिस पर विभिन्न प्रकार के Operations करना काफी आसान होता है। Array का प्रयोग तब किया जाता है, जब Data के Permanent Collection पर विभिन्न Operations करने होते हैं।
क्योंकि Array की Size एक ही बार में Set करनी पडती है इसलिए इसमें जो भी Data होते हैं वे Permanent होते हैं। लेकिन जब Data Structure की Size Changeable होती है तब हम Array के स्थान पर Linked List का प्रयोग करते हैं। (What is Data Structure and Algorithms in Hindi)
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Data Structure and Algorithms in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
Data Structure and Algorithms in Hindi | Page: 433 | Format: PDF