रिकॉर्ड (कंप्यूटर विज्ञान): Difference between revisions

From Vigyanwiki
(Created page with "{{More citations needed|date=September 2021}} {{short description|Information block that is part of a database (data row)}} कंप्यूटर विज्ञान...")
 
No edit summary
 
(7 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{More citations needed|date=September 2021}}
{{short description|Information block that is part of a database (data row)}}
{{short description|Information block that is part of a database (data row)}}
[[कंप्यूटर विज्ञान]] में, एक रिकॉर्ड (जिसे संरचना, [[संरचना (सी प्रोग्रामिंग भाषा)]] या यौगिक डेटा भी कहा जाता है) एक बुनियादी [[डेटा संरचना]] है। [[डेटाबेस]] या [[स्प्रेडशीट]] में रिकॉर्ड्स को आमतौर पर [[पंक्ति (डेटाबेस)]] कहा जाता है।<ref>{{cite web|title=Computer Science Dictionary Definitions|url=http://www.computingstudents.com/dictionary/?word=Record|website=Computing Students|access-date=Jan 22, 2018}}</ref><ref name="Radványi">{{cite book |last1=Radványi |first1=Tibor |title=डेटाबेस प्रबंधन तंत्र|date=2014 |publisher=Eszterházy Károly College |page=19 |url=https://www.tankonyvtar.hu/en/tartalom/tamop412A/2011-0038_49_radvanyi_en/index.html |archive-url=https://web.archive.org/web/20180923085530/https://www.tankonyvtar.hu/en/tartalom/tamop412A/2011-0038_49_radvanyi_en/index.html |archive-date=2018-09-23 |access-date=23 September 2018}}</रेफरी><ref name="Kahate">{{cite book |last1=Kahate |first1=Atul |title=Introduction to Database Management Systems |date=2006 |publisher=Pearson |isbn=978-81-317-0078-5 |page=3 |url=https://books.google.com/books?id=mxYESolfLfoC |access-date=23 September 2018}}</ref><ref>{{cite book |last1=Connolly |first1=Thomas |title=Database Solutions: A Step by Step Guide to Building Databases |url=https://archive.org/details/databasesolution00conn_535 |url-access=registration |date=2004 |publisher=Pearson |isbn=978-0-321-17350-8 |page=[https://archive.org/details/databasesolution00conn_535/page/n19 7] |edition=2nd }}</ref>
[[कंप्यूटर विज्ञान]] में, रिकॉर्ड (जिसे संरचना, [[संरचना (सी प्रोग्रामिंग भाषा)]] या यौगिक डेटा भी कहा जाता है) मौलिक [[डेटा संरचना]] है। [[डेटाबेस]] या [[स्प्रेडशीट]] में रिकॉर्ड्स को सामान्यतः [[पंक्ति (डेटाबेस)]] कहा जाता है।<ref>{{cite web|title=Computer Science Dictionary Definitions|url=http://www.computingstudents.com/dictionary/?word=Record|website=Computing Students|access-date=Jan 22, 2018}}</ref><ref name="Radványi">{{cite book |last1=Radványi |first1=Tibor |title=डेटाबेस प्रबंधन तंत्र|date=2014 |publisher=Eszterházy Károly College |page=19 |url=https://www.tankonyvtar.hu/en/tartalom/tamop412A/2011-0038_49_radvanyi_en/index.html |archive-url=https://web.archive.org/web/20180923085530/https://www.tankonyvtar.hu/en/tartalom/tamop412A/2011-0038_49_radvanyi_en/index.html |archive-date=2018-09-23 |access-date=23 September 2018}}</ref><ref name="Kahate">{{cite book |last1=Kahate |first1=Atul |title=Introduction to Database Management Systems |date=2006 |publisher=Pearson |isbn=978-81-317-0078-5 |page=3 |url=https://books.google.com/books?id=mxYESolfLfoC |access-date=23 September 2018}}</ref><ref>{{cite book |last1=Connolly |first1=Thomas |title=Database Solutions: A Step by Step Guide to Building Databases |url=https://archive.org/details/databasesolution00conn_535 |url-access=registration |date=2004 |publisher=Pearson |isbn=978-0-321-17350-8 |page=[https://archive.org/details/databasesolution00conn_535/page/n19 7] |edition=2nd }}</ref>
एक रिकॉर्ड फ़ील्ड (कंप्यूटर विज्ञान) का एक संग्रह है, संभवतः विभिन्न डेटा प्रकारों का, आमतौर पर एक निश्चित संख्या और अनुक्रम में।<ref>{{cite book |last1=Felleisen |first1=Matthias |title=How To Design Programs |url=https://archive.org/details/howtodesignprogr00fell_231 |url-access=registration |date=2001 |publisher=MIT Press |isbn=978-0262062183 |pages=[https://archive.org/details/howtodesignprogr00fell_231/page/n528 53], 60 }}</ref> रिकॉर्ड के क्षेत्र को सदस्य भी कहा जा सकता है, विशेष रूप से वस्तु-उन्मुख प्रोग्रामिंग में; फ़ील्ड को तत्व भी कहा जा सकता है, हालांकि यह [[संग्रह (सार डेटा प्रकार)]] के तत्वों के साथ भ्रम का जोखिम उठाता है।


उदाहरण के लिए, एक दिनांक को एक रिकॉर्ड के रूप में संग्रहीत किया जा सकता है जिसमें एक संख्यात्मक <var>वर्ष</var> फ़ील्ड, एक <var>महीना</var> फ़ील्ड एक स्ट्रिंग के रूप में दर्शाया जाता है, और एक संख्यात्मक <var>दिन-दर-माह </var> क्षेत्र। कार्मिक रिकॉर्ड में <var>नाम</var>, <var>वेतन</var> और <var>रैंक</var> शामिल हो सकते हैं। एक मंडली रिकॉर्ड में एक <var>केंद्र</var> और <var>त्रिज्या</var> हो सकता है—इस उदाहरण में, केंद्र को ही <var>युक्त <var>बिंदु</var> रिकॉर्ड के रूप में दर्शाया जा सकता है x</var> और <var>y</var> निर्देशांक।
रिकॉर्ड फ़ील्ड (कंप्यूटर विज्ञान) मुख्य रूप से संग्रह यूक्ति है, जिसे संभवतः विभिन्न डेटा प्रकारों का, सामान्यतः निश्चित संख्या और अनुक्रम में उपयोग किया जाता हैं।<ref>{{cite book |last1=Felleisen |first1=Matthias |title=How To Design Programs |url=https://archive.org/details/howtodesignprogr00fell_231 |url-access=registration |date=2001 |publisher=MIT Press |isbn=978-0262062183 |pages=[https://archive.org/details/howtodesignprogr00fell_231/page/n528 53], 60 }}</ref> इस प्रकार रिकॉर्ड के क्षेत्र को सदस्य भी कहा जाता हैं, विशेष रूप से वस्तु-उन्मुख प्रोग्रामिंग में, फ़ील्ड को तत्व भी कहा जाता है, चूंकि यह [[संग्रह (सार डेटा प्रकार)]] के तत्वों के साथ भ्रम का खतरा उठाता है।


रिकॉर्ड्स को एरे डेटा प्रकार से इस तथ्य से अलग किया जाता है कि उनके फ़ील्ड की संख्या रिकॉर्ड की परिभाषा में निर्धारित होती है, और तथ्य यह है कि रिकॉर्ड एक विषम डेटा प्रकार हैं; सभी फ़ील्ड में एक ही प्रकार का डेटा नहीं होना चाहिए।<ref>{{Cite journal |last1=Pape |first1=Tobias |last2=Kirilichev |first2=Vasily |last3=Bolz |first3=Carl Friedrich |last4=Hirschfeld |first4=Robert |date=2017-01-13 |title=Record data structures in racket: usage analysis and optimization |url=https://dl.acm.org/doi/10.1145/3040575.3040578 |journal=ACM SIGAPP Applied Computing Review |language=en |volume=16 |issue=4 |pages=25–37 |doi=10.1145/3040575.3040578 |s2cid=14306162 |issn=1559-6915}}</ref>
उदाहरण के लिए, दिनांक को रिकॉर्ड के रूप में संग्रहीत किया जाता है, जिसमें संख्यात्मक <var>वर्ष</var> फ़ील्ड, <var>महीना</var> फ़ील्ड स्ट्रिंग को और संख्यात्मक क्षेत्र के रूप में दर्शाया जाता है। कार्मिक रिकॉर्ड में <var>नाम</var>, <var>वेतन</var> और <var>रैंक</var> सम्मलित हो सकते हैं। मंडली रिकॉर्ड में <var>केंद्र</var> और <var>त्रिज्या</var> हो सकता है—इस उदाहरण में, केंद्र को ही <var>युक्त <var>बिंदु</var> रिकॉर्ड x और y निर्देशांक के रूप में दर्शाया जाता है</var>।
एक रिकॉर्ड प्रकार एक [[डेटा प्रकार]] है जो ऐसे मूल्यों और चर का वर्णन करता है। अधिकांश आधुनिक कंप्यूटर भाषाएँ प्रोग्रामर को नए रिकॉर्ड प्रकारों को परिभाषित करने की अनुमति देती हैं। परिभाषा में प्रत्येक फ़ील्ड के डेटा प्रकार और [[पहचानकर्ता]] (नाम या लेबल) को निर्दिष्ट करना शामिल है जिसके द्वारा इसे एक्सेस किया जा सकता है। [[प्रकार सिद्धांत]] में, उत्पाद प्रकार (कोई फ़ील्ड नाम नहीं) आमतौर पर उनकी सादगी के कारण पसंद किए जाते हैं, लेकिन [[सिस्टम एफ-उप]] जैसी भाषाओं में उचित रिकॉर्ड प्रकार का अध्ययन किया जाता है। चूंकि टाइप-सैद्धांतिक रिकॉर्ड में डेटा के अलावा प्रथम श्रेणी के फ़ंक्शन-टाइप किए गए फ़ील्ड शामिल हो सकते हैं, वे [[वस्तु के उन्मुख]] प्रोग्रामिंग की कई विशेषताओं को व्यक्त कर सकते हैं।


रिकॉर्ड्स किसी भी स्टोरेज माध्यम में मौजूद हो सकते हैं, जिसमें मुख्य मेमोरी और [[मास स्टोरेज डिवाइस]] जैसे [[चुंबकीय टेप]] या [[हार्ड डिस्क]] शामिल हैं। रिकॉर्ड्स अधिकांश डेटा संरचनाओं, विशेष रूप से [[लिंक्ड डेटा संरचना]]ओं का एक मूलभूत घटक हैं। कई [[कम्प्यूटर फाइल]] को [[भंडारण रिकॉर्ड]] के एरे के रूप में व्यवस्थित किया जाता है, जिन्हें दक्षता के लिए अक्सर बड़े भौतिक रिकॉर्ड या ब्लॉक (डेटा स्टोरेज) में समूहीकृत किया जाता है।
इस प्रकार रिकॉर्ड्स को एरे डेटा प्रकार से इस तथ्य से अलग किया जाता है कि उनके फ़ील्ड की संख्या रिकॉर्ड की परिभाषा में निर्धारित होती है, और तथ्य यह है कि रिकॉर्ड विषम डेटा प्रकार हैं, सभी फ़ील्ड में ही प्रकार का डेटा नहीं होना चाहिए।<ref>{{Cite journal |last1=Pape |first1=Tobias |last2=Kirilichev |first2=Vasily |last3=Bolz |first3=Carl Friedrich |last4=Hirschfeld |first4=Robert |date=2017-01-13 |title=Record data structures in racket: usage analysis and optimization |url=https://dl.acm.org/doi/10.1145/3040575.3040578 |journal=ACM SIGAPP Applied Computing Review |language=en |volume=16 |issue=4 |pages=25–37 |doi=10.1145/3040575.3040578 |s2cid=14306162 |issn=1559-6915}}</ref>


उपनेमका के पैरामीटर को अक्सर रिकॉर्ड चर के क्षेत्र के रूप में देखा जा सकता है; और उस फ़ंक्शन को पास किए गए तर्कों को एक रिकॉर्ड मान के रूप में देखा जा सकता है जो कॉल के समय उस वेरिएबल को [[असाइनमेंट (कंप्यूटर विज्ञान)]] प्राप्त करता है। इसके अलावा, [[कॉल स्टैक]] में जो अक्सर प्रक्रिया कॉल को लागू करने के लिए उपयोग किया जाता है, प्रत्येक प्रविष्टि एक सक्रियण रिकॉर्ड या कॉल फ़्रेम होती है, जिसमें प्रक्रिया पैरामीटर और स्थानीय चर, वापसी पता और अन्य आंतरिक फ़ील्ड होते हैं।
एक रिकॉर्ड प्रकार [[डेटा प्रकार]] है जो ऐसे मूल्यों और चर का वर्णन करता है। इस प्रकार अधिकांश आधुनिक कंप्यूटर भाषाएँ प्रोग्रामर को नए रिकॉर्ड प्रकारों को परिभाषित करने की अनुमति देती हैं। परिभाषा में प्रत्येक फ़ील्ड के डेटा प्रकार और [[पहचानकर्ता]] (नाम या लेबल) को निर्दिष्ट करना सम्मलित है जिसके द्वारा इसे एक्सेस किया जा सकता है। [[प्रकार सिद्धांत]] में, उत्पाद प्रकार (कोई फ़ील्ड नाम नहीं) सामान्यतः इसके कारण यह उपयोग किए जाते हैं, किन्तु [[सिस्टम एफ-उप]] जैसी भाषाओं में उचित रिकॉर्ड प्रकार का अध्ययन किया जाता है। चूंकि टाइप-सैद्धांतिक रिकॉर्ड में डेटा के अतिरिक्त प्रथम श्रेणी के फ़ंक्शन-टाइप किए गए फ़ील्ड सम्मलित हो सकते हैं, वे [[वस्तु के उन्मुख]] प्रोग्रामिंग की कई विशेषताओं को व्यक्त कर सकते हैं।


वस्तु-उन्मुख भाषा में एक वस्तु अनिवार्य रूप से एक रिकॉर्ड है जिसमें उस रिकॉर्ड को संभालने के लिए विशेष प्रक्रियाएं शामिल हैं; और वस्तु प्रकार रिकॉर्ड प्रकारों का विस्तार है। वास्तव में, अधिकांश वस्तु-उन्मुख भाषाओं में, रिकॉर्ड केवल वस्तुओं के विशेष मामले होते हैं, और ओओ सुविधाओं का उपयोग करने वाली वस्तुओं के विपरीत सादे पुराने डेटा संरचनाओं (पीओडीएस) के रूप में जाने जाते हैं।
इस प्रकार रिकॉर्ड्स किसी भी स्टोरेज माध्यम में सम्मलित हो सकते हैं, जिसमें मुख्य मेमोरी और [[मास स्टोरेज डिवाइस]] जैसे [[चुंबकीय टेप]] या [[हार्ड डिस्क]] सम्मलित करता हैं। रिकॉर्ड्स अधिकांश डेटा संरचनाओं, विशेष रूप से [[लिंक्ड डेटा संरचना]]ओं का मूलभूत घटक हैं। कई [[कम्प्यूटर फाइल]] को [[भंडारण रिकॉर्ड]] के एरे के रूप में व्यवस्थित किया जाता है, जिन्हें दक्षता के लिए अधिकांशतः बड़े भौतिक रिकॉर्ड या ब्लॉक (डेटा स्टोरेज) में समूहीकृत किया जाता है।


एक रिकॉर्ड को गणित के [[टपल]] के कंप्यूटर एनालॉग के रूप में देखा जा सकता है, हालांकि एक टपल को एक रिकॉर्ड माना जा सकता है या नहीं, और इसके विपरीत, सम्मेलनों और विशिष्ट प्रोग्रामिंग भाषा पर निर्भर करता है। एक ही नस में, एक रिकॉर्ड प्रकार को दो या दो से अधिक [[सेट (गणित)]] के कार्टेशियन उत्पाद के कंप्यूटर भाषा एनालॉग के रूप में देखा जा सकता है, या एक विशिष्ट भाषा में एक सार उत्पाद प्रकार के कार्यान्वयन के रूप में देखा जा सकता है।
उपनेमका के पैरामीटर को अधिकांशतः रिकॉर्ड चर के क्षेत्र के रूप में देखा जा सकता है, और इस प्रकार उस फ़ंक्शन को पास किए गए तर्कों को रिकॉर्ड मान के रूप में देखा जा सकता है जो कॉल के समय उस वेरिएबल को [[असाइनमेंट (कंप्यूटर विज्ञान)]] प्राप्त करता है। इसके अतिरिक्त, [[कॉल स्टैक]] में जो अधिकांशतः प्रक्रिया कॉल को लागू करने के लिए उपयोग किया जाता है, तथा प्रत्येक प्रविष्टि सक्रियण रिकॉर्ड या कॉल फ़्रेम होती है, जिसमें प्रक्रिया पैरामीटर और स्थानीय चर, वापसी पता और अन्य आंतरिक फ़ील्ड होते हैं।
 
वस्तु-उन्मुख भाषा में वस्तु अनिवार्य रूप से रिकॉर्ड है जिसमें उस रिकॉर्ड को संभालने के लिए विशेष प्रक्रियाएं सम्मलित हैं, और इस प्रकार वस्तु प्रकार रिकॉर्ड प्रकारों का विस्तार होता है। वास्तव में, अधिकांश वस्तु-उन्मुख भाषाओं में, रिकॉर्ड केवल वस्तुओं के विशेष स्थिति होते हैं, और ओओ सुविधाओं का उपयोग करने वाली वस्तुओं के विपरीत सादे पुराने डेटा संरचनाओं (पीओडीएस) के रूप में जाने जाते हैं।
 
एक रिकॉर्ड को गणित के [[टपल]] के कंप्यूटर एनालॉग के रूप में देखा जा सकता है, चूंकि इस प्रकार टपल को रिकॉर्ड माना जा सकता है या नहीं, और इसके विपरीत, सम्मेलनों और विशिष्ट प्रोग्रामिंग भाषा पर निर्भर करता है। इन रिकॉर्ड के प्रकारों को दो या दो से अधिक [[सेट (गणित)]] के कार्टेशियन उत्पाद के कंप्यूटर भाषा एनालॉग के रूप में देखा जा सकता है, या विशिष्ट भाषा में सार उत्पाद प्रकार के कार्यान्वयन के रूप में देखा जा सकता है।


== कुंजी ==
== कुंजी ==


एक रिकॉर्ड में शून्य या अधिक कुंजियाँ हो सकती हैं। कुंजी एक व्यंजक को रिकॉर्ड में एक मान, या मानों के एक सेट पर मैप करती है। एक प्राथमिक कुंजी एक कुंजी है यह सभी संग्रहीत अभिलेखों में अद्वितीय है; केवल एक अगर यह कुंजी मौजूद है।<ref>{{Cite web |title=Add or change a table's primary key in Access |url=https://support.microsoft.com/en-us/office/add-or-change-a-table-s-primary-key-in-access-07b4a84b-0063-4d56-8b00-65f2975e4379?ui=en-us&rs=en-us&ad=us |access-date=2022-03-01 |website=support.microsoft.com}}</ref> दूसरे शब्दों में, किसी भी प्राथमिक कुंजी के लिए कोई डुप्लिकेट मौजूद नहीं हो सकता है। उदाहरण के लिए एक कर्मचारी फ़ाइल में कर्मचारी संख्या, नाम, विभाग और वेतन हो सकता है। कर्मचारी संख्या संगठन में अद्वितीय होगी और प्राथमिक कुंजी होगी। भंडारण माध्यम और फ़ाइल संगठन के आधार पर कर्मचारी संख्या [[अनुक्रमित फ़ाइल]] हो सकती है - जो लुकअप को तेज़ बनाने के लिए एक अलग फ़ाइल में भी संग्रहीत होती है। विभाग कोड आवश्यक रूप से अद्वितीय नहीं है; इसे अनुक्रमित भी किया जा सकता है, जिस स्थिति में इसे द्वितीयक कुंजी या वैकल्पिक कुंजी माना जाएगा।<ref>{{Cite web |title=Alternate key - Oracle FAQ |url=http://www.orafaq.com/wiki/Alternate_key |access-date=2022-03-01 |website=www.orafaq.com}}</ref> यदि इसे अनुक्रमित नहीं किया गया है तो एक विशिष्ट विभाग में सभी कर्मचारियों की सूची तैयार करने के लिए संपूर्ण कर्मचारी फ़ाइल को स्कैन करना होगा। कुंजियों को आमतौर पर इस तरह से चुना जाता है कि एक कुंजी द्वारा संभवतः मैप किए जाने वाले कई मानों की संभावना कम हो जाती है। उदाहरण के लिए, वेतन क्षेत्र को आमतौर पर एक कुंजी के रूप में प्रयोग करने योग्य नहीं माना जाएगा क्योंकि कई कर्मचारियों के समान वेतन होने की संभावना होगी। फ़ाइल डिज़ाइन करते समय इंडेक्सिंग एक कारक माना जाता है।
एक रिकॉर्ड में शून्य या अधिक कुंजियाँ हो सकती हैं। कुंजी व्यंजक को रिकॉर्ड में मान, या मानों के सेट पर मैप करती है। प्राथमिक कुंजी कुंजी है यह सभी संग्रहीत अभिलेखों में अद्वितीय है, केवल यदि यह कुंजी सम्मलित है।<ref>{{Cite web |title=Add or change a table's primary key in Access |url=https://support.microsoft.com/en-us/office/add-or-change-a-table-s-primary-key-in-access-07b4a84b-0063-4d56-8b00-65f2975e4379?ui=en-us&rs=en-us&ad=us |access-date=2022-03-01 |website=support.microsoft.com}}</ref> दूसरे शब्दों में, किसी भी प्राथमिक कुंजी के लिए कोई डुप्लिकेट सम्मलित नहीं होता है। उदाहरण के लिए कर्मचारी फ़ाइल में कर्मचारी संख्या, नाम, विभाग और वेतन हो सकता है। कर्मचारी संख्या संगठन में अद्वितीय होगी और प्राथमिक कुंजी होगी। इस प्रकार भंडारण माध्यम और फ़ाइल संगठन के आधार पर कर्मचारी संख्या [[अनुक्रमित फ़ाइल]] हो सकती है- जो लुकअप को तेज़ बनाने के लिए अलग फ़ाइल में भी संग्रहीत होती है। विभाग कोड आवश्यक रूप से अद्वितीय नहीं है, इसे अनुक्रमित भी किया जाता है, जिस इस स्थिति में द्वितीयक कुंजी या वैकल्पिक कुंजी माना जाता हैं।<ref>{{Cite web |title=Alternate key - Oracle FAQ |url=http://www.orafaq.com/wiki/Alternate_key |access-date=2022-03-01 |website=www.orafaq.com}}</ref> इस प्रकार यदि इसे अनुक्रमित नहीं किया गया है तो विशिष्ट विभाग में सभी कर्मचारियों की सूची तैयार करने के लिए संपूर्ण कर्मचारी फ़ाइल को स्कैन करना होगा। कुंजियों को सामान्यतः इस प्रकार से चुना जाता है कि कुंजी द्वारा संभवतः मैप किए जाने वाले कई मानों की संभावना कम हो जाती है। उदाहरण के लिए, वेतन क्षेत्र को सामान्यतः कुंजी के रूप में प्रयोग करने योग्य नहीं माना जाएगा क्योंकि कई कर्मचारियों के समान वेतन होने की संभावना होगी। इस प्रकार फ़ाइल डिज़ाइन करते समय इंडेक्सिंग कारक माना जाता है।


== इतिहास ==
== इतिहास ==


[[File:1880 census Edison.gif|thumb|upright|[[1880 संयुक्त राज्य अमेरिका की जनगणना]] से जर्नल शीट, डेटा की पंक्तियों के साथ सारणीबद्ध डेटा दिखा रहा है, प्रत्येक रिकॉर्ड एक व्यक्ति के अनुरूप है।]]एक रिकॉर्ड की अवधारणा को दूरस्थ समय से [[लेखांकन]] में उपयोग की जाने वाली विभिन्न प्रकार की [[तालिका (सूचना)]] और [[खाता बही]] में खोजा जा सकता है। कंप्यूटर विज्ञान में रिकॉर्ड की आधुनिक धारणा, अच्छी तरह से परिभाषित प्रकार और आकार के क्षेत्रों के साथ, 19वीं सदी के यांत्रिक कैलकुलेटर, जैसे [[चार्ल्स बैबेज]] के [[विश्लेषणात्मक इंजन]] में पहले से ही अंतर्निहित थी।<ref>{{cite journal |last1=Bromley |first1=Allan |title=Charles Babbage's Analytical Engine, 1838 |journal=IEEE Annals of the History of Computing |date=October 1998 |volume=20 |issue=4 |pages=29–45 |doi=10.1109/85.728228 |s2cid=2285332 |url=https://dl.acm.org/citation.cfm?id=612744 |access-date=23 September 2018}}</ref><ref>{{cite web |last1=Swade |first1=Doron |title=Automatic Computation: Charles Babbage and Computational Method |url=http://www.rutherfordjournal.org/article030106.html |website=The Rutherford Journal |publisher=The Rutherford Journal |access-date=23 September 2018}}</ref>
[[File:1880 census Edison.gif|thumb|upright|[[1880 संयुक्त राज्य अमेरिका की जनगणना]] से जर्नल शीट, डेटा की पंक्तियों के साथ सारणीबद्ध डेटा दिखा रहा है, प्रत्येक रिकॉर्ड व्यक्ति के अनुरूप है।]]एक रिकॉर्ड की अवधारणा को दूरस्थ समय से [[लेखांकन]] में उपयोग की जाने वाली विभिन्न प्रकार की [[तालिका (सूचना)]] और [[खाता बही]] में खोजा जा सकता है। कंप्यूटर विज्ञान में रिकॉर्ड की आधुनिक धारणा के अनुसार अच्छी तरह से परिभाषित प्रकार और आकार के क्षेत्रों के साथ, 19वीं सदी के यांत्रिक कैलकुलेटर, जैसे [[चार्ल्स बैबेज]] के [[विश्लेषणात्मक इंजन]] में पहले से ही अंतर्निहित थी।<ref>{{cite journal |last1=Bromley |first1=Allan |title=Charles Babbage's Analytical Engine, 1838 |journal=IEEE Annals of the History of Computing |date=October 1998 |volume=20 |issue=4 |pages=29–45 |doi=10.1109/85.728228 |s2cid=2285332 |url=https://dl.acm.org/citation.cfm?id=612744 |access-date=23 September 2018}}</ref><ref>{{cite web |last1=Swade |first1=Doron |title=Automatic Computation: Charles Babbage and Computational Method |url=http://www.rutherfordjournal.org/article030106.html |website=The Rutherford Journal |publisher=The Rutherford Journal |access-date=23 September 2018}}</ref>


[[File:Hollerith Punched Card.jpg|thumb|होलेरिथ [[छिद्रित कार्ड]] (1895)]]डेटा के लिए उपयोग किया जाने वाला मूल मशीन-पठनीय माध्यम (नियंत्रण के विपरीत) [[1890 संयुक्त राज्य अमेरिका की जनगणना]] में रिकॉर्ड के लिए उपयोग किया जाने वाला [[छिद्र पत्रक]] था: प्रत्येक पंच कार्ड एक एकल रिकॉर्ड था। 1880 से जर्नल प्रविष्टि और 1895 से पंच कार्ड की तुलना करें। रिकॉर्ड 20वीं सदी के पहले भाग में अच्छी तरह से स्थापित थे, जब अधिकांश डेटा प्रोसेसिंग पंच कार्ड का उपयोग करके किया जाता था। आमतौर पर एक डेटा फ़ाइल का प्रत्येक रिकॉर्ड एक पंच कार्ड में दर्ज किया जाएगा, जिसमें विशिष्ट क्षेत्रों को निर्दिष्ट कॉलम होंगे। आम तौर पर, एक रिकॉर्ड सबसे छोटी इकाई होती थी जिसे बाहरी भंडारण (जैसे कार्ड रीडर, टेप या डिस्क) से पढ़ा जा सकता था। पंचकार्ड-शैली के रिकॉर्ड की सामग्री को मूल रूप से यूनिट रिकॉर्ड कहा जाता था क्योंकि पंचकार्ड में दस्तावेज़ की पूर्व-निर्धारित लंबाई होती थी।<ref name=":0">{{Cite book |title=Encyclopedia of computer science |date=2003 |publisher=Wiley |editor=Edwin D. Reilly |editor2=Anthony Ralston |editor3=David Hemmendinger |isbn=978-1-84972-160-8 |edition=4th |location=Chichester, UK |oclc=436846454}}</ref> जब [[हार्ड डिस्क ड्राइव]] और चुंबकीय टेप के उपयोग से भंडारण प्रणालियां अधिक उन्नत हो गईं, तो चर-लंबाई के रिकॉर्ड मानक बन गए। एक चर-लंबाई रिकॉर्ड एक रिकॉर्ड है जिसमें बाइट्स में रिकॉर्ड का आकार लगभग उसके क्षेत्रों के आकार के योग के बराबर होता है। अधिक उन्नत स्टोरेज हार्डवेयर के आविष्कार से पहले ऐसा करना संभव नहीं था क्योंकि सभी पंचकार्डों को पूर्व-निर्धारित दस्तावेज़ लंबाई के अनुरूप होना पड़ता था जिसे कंप्यूटर पढ़ सकता था, क्योंकि उस समय कार्डों को एक मशीन में भौतिक रूप से भरना पड़ता था।
[[File:Hollerith Punched Card.jpg|thumb|होलेरिथ [[छिद्रित कार्ड]] (1895)]]इस प्रकार डेटा के लिए उपयोग किये जाने वाली मूल मशीन-पठनीय माध्यम (नियंत्रण के विपरीत) [[1890 संयुक्त राज्य अमेरिका की जनगणना]] में रिकॉर्ड के लिए उपयोग किया जाने वाला [[छिद्र पत्रक]] था: प्रत्येक पंच कार्ड एकल रिकॉर्ड था। 1880 से जर्नल प्रविष्टि और 1895 से पंच कार्ड की तुलना करते हैं। रिकॉर्ड 20वीं सदी के पहले भाग में अच्छी तरह से स्थापित थे, जब अधिकांश डेटा प्रोसेसिंग पंच कार्ड का उपयोग करके किया जाता था। सामान्यतः डेटा फ़ाइल का प्रत्येक रिकॉर्ड पंच कार्ड में अंकित किया जाएगा, जिसमें विशिष्ट क्षेत्रों को निर्दिष्ट कॉलम होंगे। इस प्रकार सामान्यतः, रिकॉर्ड सबसे छोटी इकाई होती थी जिसे बाहरी भंडारण (जैसे कार्ड रीडर, टेप या डिस्क) से पढ़ा जा सकता था। पंचकार्ड-शैली के रिकॉर्ड की सामग्री को मूल रूप से यूनिट रिकॉर्ड कहा जाता था क्योंकि पंचकार्ड में दस्तावेज़ की पूर्व-निर्धारित लंबाई होती थी।<ref name=":0">{{Cite book |title=Encyclopedia of computer science |date=2003 |publisher=Wiley |editor=Edwin D. Reilly |editor2=Anthony Ralston |editor3=David Hemmendinger |isbn=978-1-84972-160-8 |edition=4th |location=Chichester, UK |oclc=436846454}}</ref> जब [[हार्ड डिस्क ड्राइव]] और चुंबकीय टेप के उपयोग से भंडारण प्रणालियां अधिक उन्नत हो गईं, तो चर-लंबाई के रिकॉर्ड मानक बन गए। चर-लंबाई रिकॉर्ड रिकॉर्ड है जिसमें बाइट्स में रिकॉर्ड का आकार लगभग उसके क्षेत्रों के आकार के योग के बराबर होता है। अधिक उन्नत स्टोरेज हार्डवेयर के आविष्कार से पहले ऐसा करना संभव नहीं था क्योंकि सभी पंचकार्डों को पूर्व-निर्धारित दस्तावेज़ लंबाई के अनुरूप होना पड़ता था, जिसे कंप्यूटर पढ़ सकता था, क्योंकि उस समय कार्डों को मशीन में भौतिक रूप से भरना पड़ता था।


अधिकांश [[मशीन भाषा]] कार्यान्वयन और शुरुआती असेंबली भाषाओं में रिकॉर्ड के लिए विशेष सिंटैक्स नहीं था, लेकिन [[सूचकांक रजिस्टर]]ों, अप्रत्यक्ष पते और [[स्व-संशोधित कोड]] के उपयोग के माध्यम से अवधारणा उपलब्ध थी (और व्यापक रूप से उपयोग की गई)। कुछ शुरुआती कंप्यूटर, जैसे [[IBM 1620]], में रिकॉर्ड और फ़ील्ड को परिसीमित करने के लिए हार्डवेयर समर्थन और ऐसे रिकॉर्ड की प्रतिलिपि बनाने के लिए विशेष निर्देश थे।
इस प्रकार अधिकांश [[मशीन भाषा]] कार्यान्वयन और प्रारंभिक असेंबली भाषाओं में रिकॉर्ड के लिए विशेष सिंटैक्स नहीं था, किन्तु [[सूचकांक रजिस्टर|सूचकांक रजिस्टरों]], अप्रत्यक्ष पते और [[स्व-संशोधित कोड]] के उपयोग के माध्यम से अवधारणा उपलब्ध थी (और व्यापक रूप से उपयोग की गई)। कुछ प्रारंभिक कंप्यूटर, जैसे [[IBM 1620]], में रिकॉर्ड और फ़ील्ड को परिसीमित करने के लिए हार्डवेयर समर्थन और ऐसे रिकॉर्ड की प्रतिलिपि बनाने के लिए विशेष निर्देश थे।


कुछ आरंभिक फ़ाइल [[छँटाई]] और सारणीकरण उपयोगिताओं में रिकॉर्ड और फ़ील्ड की अवधारणा केंद्रीय थी, जैसे IBM RPG|IBM का रिपोर्ट प्रोग्राम जेनरेटर (RPG)
कुछ आरंभिक फ़ाइल को फिल्टर और सारणीकरण उपयोगिताओं में रिकॉर्ड और फ़ील्ड की अवधारणा को केंद्रीकृत किया जाता था, जैसे IBM RPG या IBM के रिपोर्ट प्रोग्राम जेनरेटर (RPG) द्वारा प्रदर्शित होते हैं।


<!--- link from COBOL article -->
{{Visible anchor|[[COBOL]]}} रिकॉर्ड प्रकारों का समर्थन करने वाली पहली व्यापक प्रोग्रामिंग भाषा थी,<ref>{{cite book |last1=Sebesta |first1=Robert W. |title=Concepts of Programming Languages |year=1996 |publisher=Addison-Wesley Publishing Company, Inc. |isbn=0-8053-7133-8 |page=[https://archive.org/details/conceptsofprogra00sebe/page/218 218] |edition=Third |url-access=registration |url=https://archive.org/details/conceptsofprogra00sebe/page/218 }}</ref> और इसकी रिकॉर्ड परिभाषा सुविधाएं उस समय अधिक परिष्कृत थीं। भाषा अल्फ़ान्यूमेरिक, पूर्णांक, और मनमाना आकार और त्रुटीहीनता के भिन्नात्मक क्षेत्रों के साथ नेस्टेड रिकॉर्ड की परिभाषा की अनुमति देती है, साथ ही फ़ील्ड जो स्वचालित रूप से उन्हें निर्दिष्ट किसी भी मान को प्रारूपित करती हैं (जैसे, मुद्रा संकेत, दशमलव अंक और अंक समूह विभाजक सम्मिलित करना) ) प्रत्येक फ़ाइल रिकॉर्ड चर से जुड़ी होती है जहाँ डेटा को पढ़ा या लिखा जाता है। COBOL भी प्रदान करता है, तथा <code>MOVE</code> <code>CORRESPONDING</code> कमांड ऐसी कमांड है जिन्हें उनके नामों के अनुसार दो अभिलेखों के संबंधित क्षेत्रों को निर्दिष्ट किया जाता है।
{{Visible anchor|[[COBOL]]}} रिकॉर्ड प्रकारों का समर्थन करने वाली पहली व्यापक प्रोग्रामिंग भाषा थी,<ref>{{cite book |last1=Sebesta |first1=Robert W. |title=Concepts of Programming Languages |year=1996 |publisher=Addison-Wesley Publishing Company, Inc. |isbn=0-8053-7133-8 |page=[https://archive.org/details/conceptsofprogra00sebe/page/218 218] |edition=Third |url-access=registration |url=https://archive.org/details/conceptsofprogra00sebe/page/218 }}</ref> और इसकी रिकॉर्ड परिभाषा सुविधाएं उस समय काफी परिष्कृत थीं। भाषा अल्फ़ान्यूमेरिक, पूर्णांक, और मनमाना आकार और सटीकता के भिन्नात्मक क्षेत्रों के साथ नेस्टेड रिकॉर्ड की परिभाषा की अनुमति देती है, साथ ही फ़ील्ड जो स्वचालित रूप से उन्हें निर्दिष्ट किसी भी मान को प्रारूपित करती हैं (जैसे, मुद्रा संकेत, दशमलव अंक और अंक समूह विभाजक सम्मिलित करना) ). प्रत्येक फ़ाइल एक रिकॉर्ड चर से जुड़ी होती है जहाँ डेटा को पढ़ा या लिखा जाता है। COBOL भी प्रदान करता है <code>MOVE</code> <code>CORRESPONDING</code> बयान जो उनके नामों के अनुसार दो अभिलेखों के संबंधित क्षेत्रों को निर्दिष्ट करता है।


न्यूमेरिक कंप्यूटिंग के लिए विकसित शुरुआती भाषाएं, जैसे कि [[[[फोरट्रान]] चतुर्थ]]फोरट्रान IV तक) और [[एल्गोल 60]], में रिकॉर्ड प्रकार के लिए समर्थन नहीं था; लेकिन उन भाषाओं के बाद के संस्करण, जैसे [[फोरट्रान 77]] और [[एल्गोल 68]] ने उन्हें जोड़ा। मूल [[लिस्प प्रोग्रामिंग भाषा]] में भी रिकॉर्ड की कमी थी (बिल्ट-इन [[विपक्ष सेल]] को छोड़कर), लेकिन इसके [[एस-अभिव्यक्ति]] ने पर्याप्त सरोगेट प्रदान किया।<!--What about Common Lisp?--> [[पास्कल प्रोग्रामिंग भाषा]] उन पहली भाषाओं में से एक थी जो तार्किक रूप से संगत प्रकार प्रणाली में रिकॉर्ड प्रकारों को अन्य बुनियादी प्रकारों के साथ पूरी तरह से एकीकृत करती थी।<!-- not sure, Algol 68 or C may have come first?--> COBOL-शैली के रिकॉर्ड के लिए प्रदान की गई PL/I [[सी (प्रोग्रामिंग भाषा)]] (प्रोग्रामिंग लैंग्वेज) प्रोग्रामिंग लैंग्वेज ने शुरू में रिकॉर्ड कॉन्सेप्ट को एक तरह के टेम्प्लेट के रूप में प्रदान किया (<code>[[struct (C programming language)|struct]]</code>) जिसे वास्तविक रिकॉर्ड डेटा प्रकार के बजाय स्मृति क्षेत्र के शीर्ष पर रखा जा सकता है। बाद वाले अंततः प्रदान किए गए (द्वारा <code>[[typedef]]</code> घोषणा), लेकिन भाषा में दो अवधारणाएं अभी भी अलग हैं। पास्कल (जैसे [[एडा (प्रोग्रामिंग भाषा)]], [[मापांक]] और [[जावा प्रोग्रामिंग भाषा]]) के बाद डिजाइन की गई अधिकांश भाषाओं ने भी रिकॉर्ड का समर्थन किया।
न्यूमेरिक कंप्यूटिंग के लिए विकसित प्रारंभिक भाषाएं, जैसे कि [[[[फोरट्रान]] चतुर्थ]] फोरट्रान IV तक) और [[एल्गोल 60]], में रिकॉर्ड प्रकार के लिए समर्थन नहीं था, किन्तु उन भाषाओं के बाद के संस्करण, जैसे [[फोरट्रान 77]] और [[एल्गोल 68]] ने उन्हें जोड़ा था। मूल रूप से [[लिस्प प्रोग्रामिंग भाषा]] में भी रिकॉर्ड की कमी थी (बिल्ट-इन [[विपक्ष सेल]] को छोड़कर), किन्तु इसके [[एस-अभिव्यक्ति]] ने पर्याप्त सरोगेट प्रदान किया था। [[पास्कल प्रोग्रामिंग भाषा]] उन पहली भाषाओं में से थी, जो तार्किक रूप से संगत प्रकार प्रणाली में रिकॉर्ड प्रकारों को अन्य मौलिक प्रकारों के साथ पूरी तरह से एकीकृत करती थी। इस प्रकार COBOL-शैली के रिकॉर्ड के लिए प्रदान की गई PL/I [[सी (प्रोग्रामिंग भाषा)]] (प्रोग्रामिंग लैंग्वेज) प्रोग्रामिंग लैंग्वेज ने प्रारंभ में रिकॉर्ड कॉन्सेप्ट को तरह के टेम्प्लेट के रूप में प्रदान किया (<code>[[struct (C programming language)|struct]]</code>) जिसे वास्तविक रिकॉर्ड डेटा प्रकार के अतिरिक्त स्मृति क्षेत्र के शीर्ष पर रखा जा सकता है। बाद वाले अंततः प्रदान किए गए (द्वारा <code>[[typedef]]</code> घोषणा), किन्तु भाषा में दो अवधारणाएं अभी भी अलग हैं। इस प्रकार पास्कल (जैसे [[एडा (प्रोग्रामिंग भाषा)]], [[मापांक]] और [[जावा प्रोग्रामिंग भाषा]]) के बाद डिजाइन की गई अधिकांश भाषाओं ने भी रिकॉर्ड का समर्थन किया।


हालाँकि रिकॉर्ड का अब अक्सर उनके मूल संदर्भ में उपयोग नहीं किया जाता है (अर्थात केवल डेटा रखने के उद्देश्य से उपयोग किया जा रहा है), रिकॉर्ड ने नई ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषाओं और [[संबंध का डेटाबेस]] को प्रभावित किया। चूंकि रिकॉर्ड डेटा को संग्रहीत और प्रबंधित करने के तरीके में अधिक मॉड्यूलरिटी प्रदान करते हैं, इसलिए वे भाषाओं में डिफ़ॉल्ट रूप से प्रदान किए गए [[आदिम डेटा प्रकार]] की तुलना में जटिल, वास्तविक दुनिया की अवधारणाओं का प्रतिनिधित्व करने के लिए बेहतर अनुकूल हैं। इसने बाद की भाषाओं जैसे [[सी ++]], [[पायथन (प्रोग्रामिंग भाषा)]], [[जावास्क्रिप्ट]], और [[उद्देश्य सी]] को प्रभावित किया, जो प्रोग्रामर की समान प्रतिरूपता संबंधी चिंताओं को संबोधित करते हैं।<ref>{{Cite journal |last1=Leavens |first1=Gary T. |last2=Weihl |first2=William E. |date=1990 |title=Reasoning about object-oriented programs that use subtypes |url=http://dx.doi.org/10.1145/97945.97970 |journal=Proceedings of the European Conference on Object-oriented Programming on Object-oriented Programming Systems, Languages, and Applications - OOPSLA/ECOOP '90 |pages=212–223 |location=New York, New York, USA |publisher=ACM Press |doi=10.1145/97945.97970|isbn=0-201-52430-9 |s2cid=46526 }}</ref> इन भाषाओं में ऑब्जेक्ट (कंप्यूटर साइंस) अनिवार्य रूप से मेथड (कंप्यूटर प्रोग्रामिंग) और [[वंशानुक्रम (वस्तु-उन्मुख प्रोग्रामिंग)]] के अतिरिक्त रिकॉर्ड हैं, जो प्रोग्रामर को केवल रिकॉर्ड की सामग्री के बजाय डेटा के व्यवहार के तरीके में हेरफेर करने की अनुमति देते हैं। कई प्रोग्रामर रिकॉर्ड को अप्रचलित मानते हैं क्योंकि ऑब्जेक्ट-ओरिएंटेड भाषाओं में ऐसी विशेषताएं होती हैं जो रिकॉर्ड्स की क्षमता से कहीं अधिक होती हैं। दूसरी ओर, कई प्रोग्रामर तर्क देते हैं कि कम ओवरहेड और असेंबली लैंग्वेज में रिकॉर्ड का उपयोग करने की क्षमता रिकॉर्ड को अभी भी प्रासंगिक बनाती है जब एब्स्ट्रेक्शन (कंप्यूटर साइंस) के निम्न स्तर के साथ प्रोग्रामिंग करते हैं। आज तक, टीआईओबीई इंडेक्स इंडेक्स पर सबसे लोकप्रिय भाषाएं, प्रोग्रामिंग भाषाओं की लोकप्रियता का एक संकेतक, इस तथ्य के कारण किसी तरह रिकॉर्ड से प्रभावित हुई हैं कि वे ऑब्जेक्ट ओरिएंटेड हैं।<ref>{{Cite web |title=index {{!}} TIOBE - The Software Quality Company |url=https://www.tiobe.com/tiobe-index/ |access-date=2022-03-01 |website=www.tiobe.com}}</ref> [[SQL]] और [[वस्तु क्वेरी भाषा]] जैसी क्वेरी लैंग्वेज भी रिकॉर्ड्स की अवधारणा से प्रभावित थीं। ये भाषाएँ प्रोग्रामर को डेटा के सेट को स्टोर करने की अनुमति देती हैं, जो अनिवार्य रूप से टेबल में रिकॉर्ड होते हैं।<ref>{{Cite web |title=What is a Relational Database (RDBMS)? |url=https://www.oracle.com/database/what-is-a-relational-database/ |access-date=February 28, 2022 |website=Oracle}}</ref> यह डेटा तब एक अद्वितीय कुंजी का उपयोग करके पुनर्प्राप्त किया जा सकता है। तालिकाएँ स्वयं भी रिकॉर्ड हैं जिनमें एक [[विदेशी कुंजी]] हो सकती है: एक कुंजी जो किसी अन्य तालिका में डेटा को संदर्भित करती है।
चूंकि रिकॉर्ड का अब अधिकांशतः उनके मूल संदर्भ में उपयोग नहीं किया जाता है (अर्थात केवल डेटा रखने के उद्देश्य से उपयोग किया जा रहा है), रिकॉर्ड ने नई ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषाओं और [[संबंध का डेटाबेस]] को प्रभावित किया था। चूंकि रिकॉर्ड डेटा को संग्रहीत और प्रबंधित करने के तरीके में अधिक मॉड्यूलरिटी प्रदान करते हैं, इसलिए वे भाषाओं में डिफ़ॉल्ट रूप से प्रदान किए गए [[आदिम डेटा प्रकार]] की तुलना में जटिल, वास्तविक दुनिया की अवधारणाओं का प्रतिनिधित्व करने के लिए उत्तम अनुकूल हैं। इसने बाद की भाषाओं जैसे [[सी ++]], [[पायथन (प्रोग्रामिंग भाषा)]], [[जावास्क्रिप्ट]], और [[उद्देश्य सी]] को प्रभावित किया, जो प्रोग्रामर की समान प्रतिरूपता संबंधी चिंताओं को संबोधित करते हैं।<ref>{{Cite journal |last1=Leavens |first1=Gary T. |last2=Weihl |first2=William E. |date=1990 |title=Reasoning about object-oriented programs that use subtypes |url=http://dx.doi.org/10.1145/97945.97970 |journal=Proceedings of the European Conference on Object-oriented Programming on Object-oriented Programming Systems, Languages, and Applications - OOPSLA/ECOOP '90 |pages=212–223 |location=New York, New York, USA |publisher=ACM Press |doi=10.1145/97945.97970|isbn=0-201-52430-9 |s2cid=46526 }}</ref> इस प्रकार इन भाषाओं में ऑब्जेक्ट (कंप्यूटर साइंस) अनिवार्य रूप से मेथड (कंप्यूटर प्रोग्रामिंग) और [[वंशानुक्रम (वस्तु-उन्मुख प्रोग्रामिंग)]] के अतिरिक्त रिकॉर्ड हैं, जो प्रोग्रामर को केवल रिकॉर्ड की सामग्री के अतिरिक्त डेटा के व्यवहार के तरीके में हेरफेर करने की अनुमति देते हैं। कई प्रोग्रामर रिकॉर्ड को अप्रचलित मानते हैं क्योंकि ऑब्जेक्ट-ओरिएंटेड भाषाओं में ऐसी विशेषताएं होती हैं जो रिकॉर्ड्स की क्षमता से कहीं अधिक होती हैं। इस प्रकार दूसरी ओर कई प्रोग्रामर यह तर्क देते हैं कि कम ओवरहेड और असेंबली लैंग्वेज में रिकॉर्ड का उपयोग करने की क्षमता रिकॉर्ड को अभी भी प्रासंगिक बनाती है जब एब्स्ट्रेक्शन (कंप्यूटर साइंस) के निम्न स्तर के साथ प्रोग्रामिंग करते हैं। आज तक, टीआईओबीई इंडेक्स इंडेक्स पर सबसे लोकप्रिय भाषाएं, प्रोग्रामिंग भाषाओं की लोकप्रियता का संकेतक, इस तथ्य के कारण किसी तरह रिकॉर्ड से प्रभावित हुई हैं कि वे ऑब्जेक्ट ओरिएंटेड हैं।<ref>{{Cite web |title=index {{!}} TIOBE - The Software Quality Company |url=https://www.tiobe.com/tiobe-index/ |access-date=2022-03-01 |website=www.tiobe.com}}</ref> [[SQL]] और [[वस्तु क्वेरी भाषा]] जैसी क्वेरी लैंग्वेज भी रिकॉर्ड्स की अवधारणा से प्रभावित थीं। इस प्रकार ये भाषाएँ प्रोग्रामर को डेटा के सेट को स्टोर करने की अनुमति देती हैं, जो अनिवार्य रूप से टेबल में रिकॉर्ड होते हैं।<ref>{{Cite web |title=What is a Relational Database (RDBMS)? |url=https://www.oracle.com/database/what-is-a-relational-database/ |access-date=February 28, 2022 |website=Oracle}}</ref> यह डेटा तब अद्वितीय कुंजी का उपयोग करके पुनर्प्राप्त किया जा सकता है। तालिकाएँ स्वयं भी रिकॉर्ड हैं जिनमें [[विदेशी कुंजी]] हो सकती है: कुंजी जो किसी अन्य तालिका में डेटा को संदर्भित करती है।


== संचालन ==
== संचालन ==


* प्रत्येक क्षेत्र की स्थिति, प्रकार और (संभवतः) नाम सहित एक नए रिकॉर्ड प्रकार की घोषणा;
* प्रत्येक क्षेत्र की स्थिति, प्रकार और (संभवतः) नाम सहित नए रिकॉर्ड प्रकार की घोषणा,
* दिए गए रिकॉर्ड प्रकार के रूप में चर और मूल्यों की घोषणा;
* दिए गए रिकॉर्ड प्रकार के रूप में चर और मूल्यों की घोषणा,
* दिए गए फ़ील्ड मानों और (कभी-कभी) दिए गए फ़ील्ड नामों से रिकॉर्ड मान का निर्माण;
* दिए गए फ़ील्ड मानों और (कभी-कभी) दिए गए फ़ील्ड नामों से रिकॉर्ड मान का निर्माण,
* एक स्पष्ट नाम के साथ रिकॉर्ड के एक क्षेत्र का चयन;
* एक स्पष्ट नाम के साथ रिकॉर्ड के क्षेत्र का चयन,
* रिकॉर्ड चर के लिए रिकॉर्ड मान का असाइनमेंट;
* रिकॉर्ड चर के लिए रिकॉर्ड मान का असाइनमेंट,
* समानता के लिए दो रिकॉर्ड की तुलना;
* समानता के लिए दो रिकॉर्ड की तुलना,
* रिकॉर्ड के लिए मानक [[हैश फंकशन]] की गणना।
* रिकॉर्ड के लिए मानक [[हैश फंकशन]] की गणना।


रिकॉर्ड मान से किसी फ़ील्ड का चयन करने पर एक मान प्राप्त होता है।
रिकॉर्ड मान से किसी फ़ील्ड का चयन करने पर मान प्राप्त होता है।


कुछ भाषाएँ सुविधाएं प्रदान कर सकती हैं जो एक रिकॉर्ड के सभी क्षेत्रों की गणना करती हैं, या कम से कम वे क्षेत्र जो संदर्भ हैं। [[डिबगर]]्स, [[कचरा संग्रह (कंप्यूटिंग)]], और क्रमांकन जैसी कुछ सेवाओं को लागू करने के लिए इस सुविधा की आवश्यकता है। इसके लिए कुछ प्रकार के बहुरूपता की आवश्यकता होती है।
कुछ भाषाएँ सुविधाएं प्रदान कर सकती हैं जो रिकॉर्ड के सभी क्षेत्रों की गणना करती हैं, या कम से कम वे क्षेत्र जो संदर्भ हैं। इस प्रकार [[डिबगर|डिबगर्रस]], [[कचरा संग्रह (कंप्यूटिंग)|गार्बेज संग्रह (कंप्यूटिंग)]], और क्रमांकन जैसी कुछ सेवाओं को लागू करने के लिए इस सुविधा की आवश्यकता है। इसके लिए कुछ प्रकार के बहुरूपता की आवश्यकता होती है।


रिकॉर्ड सबटाइपिंग वाली प्रणालियों में, रिकॉर्ड प्रकार के मानों पर संचालन में ये भी शामिल हो सकते हैं:
रिकॉर्ड सबटाइपिंग वाली प्रणालियों में, रिकॉर्ड प्रकार के मानों पर संचालन में ये भी सम्मलित हो सकते हैं:
* एक रिकॉर्ड में एक नया फ़ील्ड जोड़ना, नए फ़ील्ड का मान सेट करना।
* एक रिकॉर्ड में नया फ़ील्ड जोड़ना, नए फ़ील्ड का मान सेट किया जाता हैं।
* रिकॉर्ड से फ़ील्ड हटाना।
* रिकॉर्ड से फ़ील्ड को हटाया जाता हैं।
ऐसी सेटिंग्स में, एक विशिष्ट रिकॉर्ड प्रकार का अर्थ है कि फ़ील्ड का एक विशिष्ट सेट मौजूद है, लेकिन उस प्रकार के मान में अतिरिक्त फ़ील्ड हो सकते हैं। फ़ील्ड x, y, और z के साथ एक रिकॉर्ड इस प्रकार फ़ील्ड x और y के रिकॉर्ड के प्रकार से संबंधित होगा, जैसा फ़ील्ड x, y, और r के साथ एक रिकॉर्ड होगा। तर्क यह है कि एक (x, y, z) रिकॉर्ड को एक फ़ंक्शन में पास करना जो तर्क के रूप में एक (x, y) रिकॉर्ड की अपेक्षा करता है, काम करना चाहिए, क्योंकि उस फ़ंक्शन को रिकॉर्ड के भीतर आवश्यक सभी फ़ील्ड मिलेंगे। प्रोग्रामिंग भाषाओं में रिकॉर्ड को व्यावहारिक रूप से लागू करने के कई तरीकों से इस तरह की परिवर्तनशीलता की अनुमति देने में परेशानी होगी, लेकिन मामला अधिक सैद्धांतिक संदर्भों में रिकॉर्ड प्रकारों की एक केंद्रीय विशेषता है।
ऐसी सेटिंग्स में, विशिष्ट रिकॉर्ड प्रकार का अर्थ है कि फ़ील्ड का विशिष्ट सेट सम्मलित है, किन्तु उस प्रकार के मान में अतिरिक्त फ़ील्ड हो सकते हैं। फ़ील्ड x, y, और z के साथ रिकॉर्ड इस प्रकार फ़ील्ड x और y के रिकॉर्ड के प्रकार से संबंधित होगा, जैसा फ़ील्ड x, y, और r के साथ रिकॉर्ड होगा। इस प्रकार तर्क यह है कि (x, y, z) रिकॉर्ड को फ़ंक्शन में पास करना जो तर्क के रूप में (x, y) रिकॉर्ड की अपेक्षा करता है, कार्य करना चाहिए, क्योंकि उस फ़ंक्शन को रिकॉर्ड के भीतर आवश्यक सभी फ़ील्ड मिलेंगे। प्रोग्रामिंग भाषाओं में रिकॉर्ड को व्यावहारिक रूप से लागू करने के कई तरीकों से इस तरह की परिवर्तनशीलता की अनुमति देने में परेशानी होगी, किन्तु स्थिति अधिक सैद्धांतिक संदर्भों में रिकॉर्ड प्रकारों की केंद्रीय विशेषता है।


=== असाइनमेंट और तुलना ===
=== असाइनमेंट और तुलना ===
अधिकांश भाषाएँ उन रिकॉर्ड्स के बीच असाइनमेंट की अनुमति देती हैं जिनमें बिल्कुल समान रिकॉर्ड प्रकार होता है (समान फ़ील्ड प्रकारों और नामों सहित, उसी क्रम में)। हालाँकि, भाषा के आधार पर, अलग-अलग परिभाषित दो रिकॉर्ड डेटा प्रकारों को अलग-अलग प्रकार के रूप में माना जा सकता है, भले ही उनके पास समान फ़ील्ड हों।
अधिकांश भाषाएँ उन रिकॉर्ड्स के बीच असाइनमेंट की अनुमति देती हैं जिनमें बिल्कुल समान रिकॉर्ड प्रकार होता है (समान फ़ील्ड प्रकारों और नामों सहित, उसी क्रम में)। चूंकि, यदि उनके पास समान फ़ील्ड होंती हैं तब भाषा के आधार पर, अलग-अलग परिभाषित दो रिकॉर्ड डेटा प्रकारों को अलग-अलग प्रकार के रूप में माना जा सकता है।


कुछ भाषाएँ रिकॉर्ड के बीच असाइनमेंट की अनुमति भी दे सकती हैं, जिनके फ़ील्ड में अलग-अलग नाम हैं, प्रत्येक फ़ील्ड मान को संबंधित फ़ील्ड चर के साथ रिकॉर्ड के भीतर उनकी स्थिति से मेल खाते हैं; ताकि, उदाहरण के लिए, एक [[जटिल डेटा प्रकार]] जिसे फ़ील्ड कहा जाता है <code>real</code> और <code>imag</code> फ़ील्ड के साथ एक कार्टेशियन निर्देशांक रिकॉर्ड चर को सौंपा जा सकता है <code>X</code> और <code>Y</code>. इस विकल्प में, दो ऑपरेंड को अभी भी फ़ील्ड प्रकार के समान अनुक्रम की आवश्यकता होती है। कुछ भाषाओं को यह भी आवश्यकता हो सकती है कि संबंधित प्रकारों का आकार और एन्कोडिंग भी समान हो, ताकि पूरे रिकॉर्ड को एक अनपेक्षित [[बिट स्ट्रिंग]] के रूप में निर्दिष्ट किया जा सके। इस संबंध में अन्य भाषाएं अधिक लचीली हो सकती हैं, और केवल यह आवश्यक है कि प्रत्येक मान फ़ील्ड को संबंधित चर फ़ील्ड को कानूनी रूप से असाइन किया जा सके; ताकि, उदाहरण के लिए, एक छोटे पूर्णांक क्षेत्र को एक लंबे पूर्णांक क्षेत्र को सौंपा जा सके, या इसके विपरीत।
कुछ भाषाएँ रिकॉर्ड के बीच असाइनमेंट की अनुमति भी दे सकती हैं, जिनके फ़ील्ड में अलग-अलग नाम हैं, प्रत्येक फ़ील्ड मान को संबंधित फ़ील्ड चर के साथ रिकॉर्ड के भीतर उनकी स्थिति से मेल खाते हैं, जिससे कि, उदाहरण के लिए, [[जटिल डेटा प्रकार]] जिसे फ़ील्ड कहा जाता है <code>real</code> और <code>imag</code> फ़ील्ड के साथ कार्टेशियन निर्देशांक रिकॉर्ड चर को सौंपा जा सकता है, इस प्रकार <code>X</code> और <code>Y</code>. इस विकल्प में, दो ऑपरेंड को अभी भी फ़ील्ड प्रकार के समान अनुक्रम की आवश्यकता होती है। कुछ भाषाओं को यह भी आवश्यकता हो सकती है कि संबंधित प्रकारों का आकार और एन्कोडिंग भी समान हो, जिससे कि पूरे रिकॉर्ड को अनपेक्षित [[बिट स्ट्रिंग]] के रूप में निर्दिष्ट किया जा सके। इस प्रकार इस संबंध में अन्य भाषाएं अधिक लचीली हो सकती हैं, और केवल यह आवश्यक है कि प्रत्येक मान फ़ील्ड को संबंधित चर फ़ील्ड को नियमित रूप से असाइन किया जा सके, जिससे कि, उदाहरण के लिए, छोटे पूर्णांक क्षेत्र को लंबे पूर्णांक क्षेत्र को सौंपा जा सके, या इसके विपरीत भी सौंपा जा सके।


अन्य भाषाएं (जैसे [[COBOL]]) पदों के बजाय फ़ील्ड और मानों को उनके नाम से मेल कर सकती हैं।
अन्य भाषाएं (जैसे [[COBOL]]) पदों के अतिरिक्त फ़ील्ड और मानों को उनके नाम से मेल कर सकती हैं।


समानता के लिए दो रिकॉर्ड मानों की तुलना करने पर भी यही संभावनाएँ लागू होती हैं। कुछ भाषाएँ अलग-अलग क्षेत्रों की तुलना के आधार पर शब्दकोष क्रम का उपयोग करते हुए आदेश तुलना ('<'और '>') की अनुमति भी दे सकती हैं।{{Citation needed|date=May 2009}}
समानता के लिए दो रिकॉर्ड मानों की तुलना करने पर भी यही संभावनाएँ लागू होती हैं। कुछ भाषाएँ अलग-अलग क्षेत्रों की तुलना के आधार पर शब्दकोष क्रम का उपयोग करते हुए आदेश तुलना ('<'और '>') की अनुमति भी दे सकती हैं।{{Citation needed|date=May 2009}}
PL/I दोनों पूर्ववर्ती प्रकार के असाइनमेंट की अनुमति देता है, और संरचना अभिव्यक्ति की भी अनुमति देता है, जैसे कि <code>a = a+1;</code> जहां a एक रिकॉर्ड है, या PL/I शब्दावली में संरचना है।
 
PL/I दोनों पूर्ववर्ती प्रकार के असाइनमेंट की अनुमति देता है, और संरचना अभिव्यक्ति की भी अनुमति देता है, जैसे कि <code>a = a+1,</code> जहां a रिकॉर्ड है, या PL/I शब्दावली में संरचना है।


=== अल्गोल 68 का वितरण क्षेत्र चयन ===
=== अल्गोल 68 का वितरण क्षेत्र चयन ===
अल्गोल 68 में, यदि <code>Pts</code> रिकॉर्ड की एक सरणी थी, प्रत्येक पूर्णांक फ़ील्ड के साथ <code>X</code> और <code>Y</code>, कोई लिख सकता है <code>Y '''of''' Pts</code> से मिलकर पूर्णांकों की एक सरणी प्राप्त करने के लिए <code>Y</code> के सभी तत्वों के क्षेत्र <code>Pts</code>. नतीजतन, बयान <code>Y '''of''' Pts[3] := 7</code> और <code>(Y '''of''' Pts)[3] := 7</code> समान प्रभाव होगा।
अल्गोल 68 में, यदि <code>Pts</code> रिकॉर्ड की सरणी थी, प्रत्येक पूर्णांक फ़ील्ड के साथ <code>X</code> और <code>Y</code>, कोई लिख सकता है <code>Y '''of''' Pts</code> से मिलकर पूर्णांकों की सरणी प्राप्त करने के लिए <code>Y</code> के सभी तत्वों के क्षेत्र <code>Pts</code>. परिणाम स्वरुप, कमांड <code>Y '''of''' Pts[3] := 7</code> और <code>(Y '''of''' Pts)[3] := 7</code> समान प्रभाव होता हैं।


=== पास्कल के बयान के साथ ===
=== पास्कल के कमांड के साथ ===
पास्कल प्रोग्रामिंग लैंग्वेज में, कमांड <code>with R do S</code> कमांड अनुक्रम निष्पादित करेगा <code>S</code> मानो रिकॉर्ड के सभी क्षेत्र <code>R</code> चर के रूप में घोषित किया गया था। सी शार्प (प्रोग्रामिंग लैंग्वेज)|सी# जैसी ऑब्जेक्ट-ओरिएंटेड भाषा में एक अलग नामस्थान दर्ज करने के समान, फ़ील्ड तक पहुँचने के लिए रिकॉर्ड नाम को उपसर्ग के रूप में उपयोग करना अब आवश्यक नहीं है। तो, लिखने के बजाय <code>Pt.X := 5; Pt.Y := Pt.X + 3</code> कोई लिख सकता है {{code|2=pascal|1=with Pt do begin X := 5; Y := X + 3 end}}.
पास्कल प्रोग्रामिंग लैंग्वेज में, कमांड <code>with R do S</code> कमांड अनुक्रम निष्पादित करेगा <code>S</code> मानो रिकॉर्ड के सभी क्षेत्र <code>R</code> चर के रूप में घोषित किया गया था। सी शार्प (प्रोग्रामिंग लैंग्वेज)|सी# जैसी ऑब्जेक्ट-ओरिएंटेड भाषा में अलग नामस्थान अंकित करने के समान, फ़ील्ड तक पहुँचने के लिए रिकॉर्ड नाम को उपसर्ग के रूप में उपयोग करना अब आवश्यक नहीं है। तो, लिखने के अतिरिक्त <code>Pt.X := 5, Pt.Y := Pt.X + 3</code> में कोई लेख {{code|2=pascal|1=with Pt do begin X := 5; Y := X + 3 end}} कमांड का उपयोग करके लिख सकता है।


== स्मृति में प्रतिनिधित्व ==
== स्मृति प्रतिनिधित्व ==
स्मृति में अभिलेखों का प्रतिनिधित्व प्रोग्रामिंग भाषाओं के आधार पर भिन्न होता है। आमतौर पर फ़ील्ड मेमोरी में लगातार स्थिति में संग्रहीत होते हैं, उसी क्रम में जैसे वे रिकॉर्ड प्रकार में घोषित किए जाते हैं। इसके परिणामस्वरूप स्मृति के एक ही शब्द में दो या दो से अधिक फ़ील्ड संग्रहीत हो सकते हैं; वास्तव में, इस सुविधा का उपयोग अक्सर किसी शब्द के विशिष्ट बिट्स तक पहुँचने के लिए [[सिस्टम प्रोग्रामिंग]] में किया जाता है। दूसरी ओर, अधिकांश कंपाइलर मशीन द्वारा लगाए गए संरेखण बाधाओं का पालन करने के लिए प्रोग्रामर के लिए अदृश्य पैडिंग फ़ील्ड जोड़ देंगे - कहते हैं कि एक [[तैरनेवाला स्थल]] फ़ील्ड को एक शब्द पर कब्जा करना चाहिए।
स्मृति में अभिलेखों का प्रतिनिधित्व प्रोग्रामिंग भाषाओं के आधार पर भिन्न होता है। सामान्यतः फ़ील्ड मेमोरी में लगातार स्थिति में संग्रहीत होते हैं, उसी क्रम में जैसे वे रिकॉर्ड प्रकार में घोषित किए जाते हैं। इसके परिणामस्वरूप स्मृति के ही शब्द में दो या दो से अधिक फ़ील्ड संग्रहीत हो सकते हैं, वास्तव में, इस सुविधा का उपयोग अधिकांशतः किसी शब्द के विशिष्ट बिट्स तक पहुँचने के लिए [[सिस्टम प्रोग्रामिंग]] में किया जाता है। इस प्रकार दूसरी ओर, अधिकांश कंपाइलर मशीन द्वारा लगाए गए संरेखण बाधाओं का पालन करने के लिए प्रोग्रामर के लिए अदृश्य पैडिंग फ़ील्ड जोड़ देंते हैं तथा इसका तात्पर्य है कि [[तैरनेवाला स्थल|तैरने वाला स्थल]] फ़ील्ड को शब्द को अधिकृत कर लेता हैं।


कुछ भाषाएँ फ़ील्ड (और, संभवतः, उनके नाम और/या प्रकारों) की ओर इशारा करते हुए पतों की एक सरणी के रूप में एक रिकॉर्ड को लागू कर सकती हैं। वस्तु-उन्मुख भाषाओं में वस्तुओं को अक्सर जटिल तरीकों से लागू किया जाता है, विशेषकर उन भाषाओं में जो वर्ग वंशानुक्रम की अनुमति देती हैं।
कुछ भाषाएँ फ़ील्ड (और, संभवतः, उनके नाम और/या प्रकारों) की ओर इशारा करते हुए पतों की सरणी के रूप में रिकॉर्ड को लागू कर सकती हैं। वस्तु-उन्मुख भाषाओं में वस्तुओं को अधिकांशतः जटिल विधियों से लागू किया जाता है, विशेषकर उन भाषाओं में जो वर्ग वंशानुक्रम की अनुमति देती हैं।


== स्व-परिभाषित रिकॉर्ड ==
== स्व-परिभाषित रिकॉर्ड ==
एक स्व-परिभाषित रिकॉर्ड एक प्रकार का रिकॉर्ड होता है जिसमें रिकॉर्ड प्रकार की पहचान करने और रिकॉर्ड के भीतर जानकारी का पता लगाने के लिए जानकारी होती है। इसमें तत्वों के ऑफ़सेट हो सकते हैं; इसलिए तत्वों को किसी भी क्रम में संग्रहीत किया जा सकता है या छोड़ा जा सकता है।<ref>{{cite web |last1=Kraimer |first1=Martin R. |title=EPICS Input / Output Controller (IOC) Application Developer's Guide |url=http://www.aps.anl.gov/epics/EpicsDocumentation/AppDevManuals/AppDevGuide/3.12BookFiles/AppDevGuide.book.html |website=Argonne National Laboratory |access-date=November 25, 2015 }}</ref> स्व-परिभाषित रिकॉर्ड में संग्रहीत जानकारी को रिकॉर्ड के लिए [[मेटा डेटा]] के रूप में व्याख्या किया जा सकता है, जो [[यूनिक्स]] मेटाडेटा में एक फ़ाइल के संबंध में खोजने की अपेक्षा के समान है, जिसमें रिकॉर्ड के निर्माण का समय और रिकॉर्ड का आकार जैसी जानकारी शामिल है। [[बाइट]] में। वैकल्पिक रूप से, रिकॉर्ड के विभिन्न तत्व, प्रत्येक एक तत्व पहचानकर्ता सहित, किसी भी क्रम में एक दूसरे का अनुसरण कर सकते हैं।
एक स्व-परिभाषित रिकॉर्ड प्रकार का रिकॉर्ड होता है जिसमें रिकॉर्ड प्रकार की पहचान करने और रिकॉर्ड के भीतर जानकारी का पता लगाने के लिए जानकारी होती है। इसमें तत्वों के ऑफ़सेट हो सकते हैं, इसलिए तत्वों को किसी भी क्रम में संग्रहीत किया जा सकता है या छोड़ा जा सकता है।<ref>{{cite web |last1=Kraimer |first1=Martin R. |title=EPICS Input / Output Controller (IOC) Application Developer's Guide |url=http://www.aps.anl.gov/epics/EpicsDocumentation/AppDevManuals/AppDevGuide/3.12BookFiles/AppDevGuide.book.html |website=Argonne National Laboratory |access-date=November 25, 2015 }}</ref> इस प्रकार स्व-परिभाषित रिकॉर्ड में संग्रहीत जानकारी को रिकॉर्ड के लिए [[मेटा डेटा]] के रूप में व्याख्या किया जाता है, जो [[यूनिक्स]] मेटाडेटा में फ़ाइल के संबंध में खोजने की अपेक्षा के समान है, इस प्रकार इसमें रिकॉर्ड के निर्माण का समय और रिकॉर्ड का आकार [[बाइट]] में जैसी जानकारी सम्मलित की जाती है। वैकल्पिक रूप से, रिकॉर्ड के विभिन्न तत्व, प्रत्येक तत्व पहचानकर्ता सहित, किसी भी क्रम में दूसरे का अनुसरण कर सकते हैं।


== यह भी देखें ==
== यह भी देखें ==
<!--These articles collectively need a cleanup and re-partition of their contents:-->
* ब्लॉक (डेटा संग्रहण)
* ब्लॉक (डेटा संग्रहण)
* [[समग्र डेटा प्रकार]]
* [[समग्र डेटा प्रकार]]
Line 93: Line 93:
{{Reflist}}
{{Reflist}}


{{Data types}}
{{DEFAULTSORT:Record (Computer Science)}}
 
{{DEFAULTSORT:Record (Computer Science)}}[[Category: डेटा के प्रकार]] [[Category: समग्र डेटा प्रकार]] [[Category: जूलिया कोड के उदाहरण वाले लेख]]
 
 


[[Category: Machine Translated Page]]
[[Category:All articles with unsourced statements|Record (Computer Science)]]
[[Category:Created On 17/02/2023]]
[[Category:Articles with invalid date parameter in template|Record (Computer Science)]]
[[Category:Articles with unsourced statements from May 2009|Record (Computer Science)]]
[[Category:CS1 English-language sources (en)]]
[[Category:Collapse templates|Record (Computer Science)]]
[[Category:Created On 17/02/2023|Record (Computer Science)]]
[[Category:Lua-based templates|Record (Computer Science)]]
[[Category:Machine Translated Page|Record (Computer Science)]]
[[Category:Navigational boxes| ]]
[[Category:Navigational boxes without horizontal lists|Record (Computer Science)]]
[[Category:Pages with reference errors|Record (Computer Science)]]
[[Category:Pages with script errors|Record (Computer Science)]]
[[Category:Short description with empty Wikidata description|Record (Computer Science)]]
[[Category:Templates Vigyan Ready|Record (Computer Science)]]
[[Category:Templates that add a tracking category|Record (Computer Science)]]
[[Category:Templates that generate short descriptions|Record (Computer Science)]]
[[Category:Templates using TemplateData|Record (Computer Science)]]

Latest revision as of 10:59, 21 February 2023

कंप्यूटर विज्ञान में, रिकॉर्ड (जिसे संरचना, संरचना (सी प्रोग्रामिंग भाषा) या यौगिक डेटा भी कहा जाता है) मौलिक डेटा संरचना है। डेटाबेस या स्प्रेडशीट में रिकॉर्ड्स को सामान्यतः पंक्ति (डेटाबेस) कहा जाता है।[1][2][3][4]

रिकॉर्ड फ़ील्ड (कंप्यूटर विज्ञान) मुख्य रूप से संग्रह यूक्ति है, जिसे संभवतः विभिन्न डेटा प्रकारों का, सामान्यतः निश्चित संख्या और अनुक्रम में उपयोग किया जाता हैं।[5] इस प्रकार रिकॉर्ड के क्षेत्र को सदस्य भी कहा जाता हैं, विशेष रूप से वस्तु-उन्मुख प्रोग्रामिंग में, फ़ील्ड को तत्व भी कहा जाता है, चूंकि यह संग्रह (सार डेटा प्रकार) के तत्वों के साथ भ्रम का खतरा उठाता है।

उदाहरण के लिए, दिनांक को रिकॉर्ड के रूप में संग्रहीत किया जाता है, जिसमें संख्यात्मक वर्ष फ़ील्ड, महीना फ़ील्ड स्ट्रिंग को और संख्यात्मक क्षेत्र के रूप में दर्शाया जाता है। कार्मिक रिकॉर्ड में नाम, वेतन और रैंक सम्मलित हो सकते हैं। मंडली रिकॉर्ड में केंद्र और त्रिज्या हो सकता है—इस उदाहरण में, केंद्र को ही युक्त बिंदु रिकॉर्ड x और y निर्देशांक के रूप में दर्शाया जाता है

इस प्रकार रिकॉर्ड्स को एरे डेटा प्रकार से इस तथ्य से अलग किया जाता है कि उनके फ़ील्ड की संख्या रिकॉर्ड की परिभाषा में निर्धारित होती है, और तथ्य यह है कि रिकॉर्ड विषम डेटा प्रकार हैं, सभी फ़ील्ड में ही प्रकार का डेटा नहीं होना चाहिए।[6]

एक रिकॉर्ड प्रकार डेटा प्रकार है जो ऐसे मूल्यों और चर का वर्णन करता है। इस प्रकार अधिकांश आधुनिक कंप्यूटर भाषाएँ प्रोग्रामर को नए रिकॉर्ड प्रकारों को परिभाषित करने की अनुमति देती हैं। परिभाषा में प्रत्येक फ़ील्ड के डेटा प्रकार और पहचानकर्ता (नाम या लेबल) को निर्दिष्ट करना सम्मलित है जिसके द्वारा इसे एक्सेस किया जा सकता है। प्रकार सिद्धांत में, उत्पाद प्रकार (कोई फ़ील्ड नाम नहीं) सामान्यतः इसके कारण यह उपयोग किए जाते हैं, किन्तु सिस्टम एफ-उप जैसी भाषाओं में उचित रिकॉर्ड प्रकार का अध्ययन किया जाता है। चूंकि टाइप-सैद्धांतिक रिकॉर्ड में डेटा के अतिरिक्त प्रथम श्रेणी के फ़ंक्शन-टाइप किए गए फ़ील्ड सम्मलित हो सकते हैं, वे वस्तु के उन्मुख प्रोग्रामिंग की कई विशेषताओं को व्यक्त कर सकते हैं।

इस प्रकार रिकॉर्ड्स किसी भी स्टोरेज माध्यम में सम्मलित हो सकते हैं, जिसमें मुख्य मेमोरी और मास स्टोरेज डिवाइस जैसे चुंबकीय टेप या हार्ड डिस्क सम्मलित करता हैं। रिकॉर्ड्स अधिकांश डेटा संरचनाओं, विशेष रूप से लिंक्ड डेटा संरचनाओं का मूलभूत घटक हैं। कई कम्प्यूटर फाइल को भंडारण रिकॉर्ड के एरे के रूप में व्यवस्थित किया जाता है, जिन्हें दक्षता के लिए अधिकांशतः बड़े भौतिक रिकॉर्ड या ब्लॉक (डेटा स्टोरेज) में समूहीकृत किया जाता है।

उपनेमका के पैरामीटर को अधिकांशतः रिकॉर्ड चर के क्षेत्र के रूप में देखा जा सकता है, और इस प्रकार उस फ़ंक्शन को पास किए गए तर्कों को रिकॉर्ड मान के रूप में देखा जा सकता है जो कॉल के समय उस वेरिएबल को असाइनमेंट (कंप्यूटर विज्ञान) प्राप्त करता है। इसके अतिरिक्त, कॉल स्टैक में जो अधिकांशतः प्रक्रिया कॉल को लागू करने के लिए उपयोग किया जाता है, तथा प्रत्येक प्रविष्टि सक्रियण रिकॉर्ड या कॉल फ़्रेम होती है, जिसमें प्रक्रिया पैरामीटर और स्थानीय चर, वापसी पता और अन्य आंतरिक फ़ील्ड होते हैं।

वस्तु-उन्मुख भाषा में वस्तु अनिवार्य रूप से रिकॉर्ड है जिसमें उस रिकॉर्ड को संभालने के लिए विशेष प्रक्रियाएं सम्मलित हैं, और इस प्रकार वस्तु प्रकार रिकॉर्ड प्रकारों का विस्तार होता है। वास्तव में, अधिकांश वस्तु-उन्मुख भाषाओं में, रिकॉर्ड केवल वस्तुओं के विशेष स्थिति होते हैं, और ओओ सुविधाओं का उपयोग करने वाली वस्तुओं के विपरीत सादे पुराने डेटा संरचनाओं (पीओडीएस) के रूप में जाने जाते हैं।

एक रिकॉर्ड को गणित के टपल के कंप्यूटर एनालॉग के रूप में देखा जा सकता है, चूंकि इस प्रकार टपल को रिकॉर्ड माना जा सकता है या नहीं, और इसके विपरीत, सम्मेलनों और विशिष्ट प्रोग्रामिंग भाषा पर निर्भर करता है। इन रिकॉर्ड के प्रकारों को दो या दो से अधिक सेट (गणित) के कार्टेशियन उत्पाद के कंप्यूटर भाषा एनालॉग के रूप में देखा जा सकता है, या विशिष्ट भाषा में सार उत्पाद प्रकार के कार्यान्वयन के रूप में देखा जा सकता है।

कुंजी

एक रिकॉर्ड में शून्य या अधिक कुंजियाँ हो सकती हैं। कुंजी व्यंजक को रिकॉर्ड में मान, या मानों के सेट पर मैप करती है। प्राथमिक कुंजी कुंजी है यह सभी संग्रहीत अभिलेखों में अद्वितीय है, केवल यदि यह कुंजी सम्मलित है।[7] दूसरे शब्दों में, किसी भी प्राथमिक कुंजी के लिए कोई डुप्लिकेट सम्मलित नहीं होता है। उदाहरण के लिए कर्मचारी फ़ाइल में कर्मचारी संख्या, नाम, विभाग और वेतन हो सकता है। कर्मचारी संख्या संगठन में अद्वितीय होगी और प्राथमिक कुंजी होगी। इस प्रकार भंडारण माध्यम और फ़ाइल संगठन के आधार पर कर्मचारी संख्या अनुक्रमित फ़ाइल हो सकती है- जो लुकअप को तेज़ बनाने के लिए अलग फ़ाइल में भी संग्रहीत होती है। विभाग कोड आवश्यक रूप से अद्वितीय नहीं है, इसे अनुक्रमित भी किया जाता है, जिस इस स्थिति में द्वितीयक कुंजी या वैकल्पिक कुंजी माना जाता हैं।[8] इस प्रकार यदि इसे अनुक्रमित नहीं किया गया है तो विशिष्ट विभाग में सभी कर्मचारियों की सूची तैयार करने के लिए संपूर्ण कर्मचारी फ़ाइल को स्कैन करना होगा। कुंजियों को सामान्यतः इस प्रकार से चुना जाता है कि कुंजी द्वारा संभवतः मैप किए जाने वाले कई मानों की संभावना कम हो जाती है। उदाहरण के लिए, वेतन क्षेत्र को सामान्यतः कुंजी के रूप में प्रयोग करने योग्य नहीं माना जाएगा क्योंकि कई कर्मचारियों के समान वेतन होने की संभावना होगी। इस प्रकार फ़ाइल डिज़ाइन करते समय इंडेक्सिंग कारक माना जाता है।

इतिहास

1880 संयुक्त राज्य अमेरिका की जनगणना से जर्नल शीट, डेटा की पंक्तियों के साथ सारणीबद्ध डेटा दिखा रहा है, प्रत्येक रिकॉर्ड व्यक्ति के अनुरूप है।

एक रिकॉर्ड की अवधारणा को दूरस्थ समय से लेखांकन में उपयोग की जाने वाली विभिन्न प्रकार की तालिका (सूचना) और खाता बही में खोजा जा सकता है। कंप्यूटर विज्ञान में रिकॉर्ड की आधुनिक धारणा के अनुसार अच्छी तरह से परिभाषित प्रकार और आकार के क्षेत्रों के साथ, 19वीं सदी के यांत्रिक कैलकुलेटर, जैसे चार्ल्स बैबेज के विश्लेषणात्मक इंजन में पहले से ही अंतर्निहित थी।[9][10]

होलेरिथ छिद्रित कार्ड (1895)

इस प्रकार डेटा के लिए उपयोग किये जाने वाली मूल मशीन-पठनीय माध्यम (नियंत्रण के विपरीत) 1890 संयुक्त राज्य अमेरिका की जनगणना में रिकॉर्ड के लिए उपयोग किया जाने वाला छिद्र पत्रक था: प्रत्येक पंच कार्ड एकल रिकॉर्ड था। 1880 से जर्नल प्रविष्टि और 1895 से पंच कार्ड की तुलना करते हैं। रिकॉर्ड 20वीं सदी के पहले भाग में अच्छी तरह से स्थापित थे, जब अधिकांश डेटा प्रोसेसिंग पंच कार्ड का उपयोग करके किया जाता था। सामान्यतः डेटा फ़ाइल का प्रत्येक रिकॉर्ड पंच कार्ड में अंकित किया जाएगा, जिसमें विशिष्ट क्षेत्रों को निर्दिष्ट कॉलम होंगे। इस प्रकार सामान्यतः, रिकॉर्ड सबसे छोटी इकाई होती थी जिसे बाहरी भंडारण (जैसे कार्ड रीडर, टेप या डिस्क) से पढ़ा जा सकता था। पंचकार्ड-शैली के रिकॉर्ड की सामग्री को मूल रूप से यूनिट रिकॉर्ड कहा जाता था क्योंकि पंचकार्ड में दस्तावेज़ की पूर्व-निर्धारित लंबाई होती थी।[11] जब हार्ड डिस्क ड्राइव और चुंबकीय टेप के उपयोग से भंडारण प्रणालियां अधिक उन्नत हो गईं, तो चर-लंबाई के रिकॉर्ड मानक बन गए। चर-लंबाई रिकॉर्ड रिकॉर्ड है जिसमें बाइट्स में रिकॉर्ड का आकार लगभग उसके क्षेत्रों के आकार के योग के बराबर होता है। अधिक उन्नत स्टोरेज हार्डवेयर के आविष्कार से पहले ऐसा करना संभव नहीं था क्योंकि सभी पंचकार्डों को पूर्व-निर्धारित दस्तावेज़ लंबाई के अनुरूप होना पड़ता था, जिसे कंप्यूटर पढ़ सकता था, क्योंकि उस समय कार्डों को मशीन में भौतिक रूप से भरना पड़ता था।

इस प्रकार अधिकांश मशीन भाषा कार्यान्वयन और प्रारंभिक असेंबली भाषाओं में रिकॉर्ड के लिए विशेष सिंटैक्स नहीं था, किन्तु सूचकांक रजिस्टरों, अप्रत्यक्ष पते और स्व-संशोधित कोड के उपयोग के माध्यम से अवधारणा उपलब्ध थी (और व्यापक रूप से उपयोग की गई)। कुछ प्रारंभिक कंप्यूटर, जैसे IBM 1620, में रिकॉर्ड और फ़ील्ड को परिसीमित करने के लिए हार्डवेयर समर्थन और ऐसे रिकॉर्ड की प्रतिलिपि बनाने के लिए विशेष निर्देश थे।

कुछ आरंभिक फ़ाइल को फिल्टर और सारणीकरण उपयोगिताओं में रिकॉर्ड और फ़ील्ड की अवधारणा को केंद्रीकृत किया जाता था, जैसे IBM RPG या IBM के रिपोर्ट प्रोग्राम जेनरेटर (RPG) द्वारा प्रदर्शित होते हैं।

COBOL रिकॉर्ड प्रकारों का समर्थन करने वाली पहली व्यापक प्रोग्रामिंग भाषा थी,[12] और इसकी रिकॉर्ड परिभाषा सुविधाएं उस समय अधिक परिष्कृत थीं। भाषा अल्फ़ान्यूमेरिक, पूर्णांक, और मनमाना आकार और त्रुटीहीनता के भिन्नात्मक क्षेत्रों के साथ नेस्टेड रिकॉर्ड की परिभाषा की अनुमति देती है, साथ ही फ़ील्ड जो स्वचालित रूप से उन्हें निर्दिष्ट किसी भी मान को प्रारूपित करती हैं (जैसे, मुद्रा संकेत, दशमलव अंक और अंक समूह विभाजक सम्मिलित करना) ) प्रत्येक फ़ाइल रिकॉर्ड चर से जुड़ी होती है जहाँ डेटा को पढ़ा या लिखा जाता है। COBOL भी प्रदान करता है, तथा MOVE CORRESPONDING कमांड ऐसी कमांड है जिन्हें उनके नामों के अनुसार दो अभिलेखों के संबंधित क्षेत्रों को निर्दिष्ट किया जाता है।

न्यूमेरिक कंप्यूटिंग के लिए विकसित प्रारंभिक भाषाएं, जैसे कि [[फोरट्रान चतुर्थ]] फोरट्रान IV तक) और एल्गोल 60, में रिकॉर्ड प्रकार के लिए समर्थन नहीं था, किन्तु उन भाषाओं के बाद के संस्करण, जैसे फोरट्रान 77 और एल्गोल 68 ने उन्हें जोड़ा था। मूल रूप से लिस्प प्रोग्रामिंग भाषा में भी रिकॉर्ड की कमी थी (बिल्ट-इन विपक्ष सेल को छोड़कर), किन्तु इसके एस-अभिव्यक्ति ने पर्याप्त सरोगेट प्रदान किया था। पास्कल प्रोग्रामिंग भाषा उन पहली भाषाओं में से थी, जो तार्किक रूप से संगत प्रकार प्रणाली में रिकॉर्ड प्रकारों को अन्य मौलिक प्रकारों के साथ पूरी तरह से एकीकृत करती थी। इस प्रकार COBOL-शैली के रिकॉर्ड के लिए प्रदान की गई PL/I सी (प्रोग्रामिंग भाषा) (प्रोग्रामिंग लैंग्वेज) प्रोग्रामिंग लैंग्वेज ने प्रारंभ में रिकॉर्ड कॉन्सेप्ट को तरह के टेम्प्लेट के रूप में प्रदान किया (struct) जिसे वास्तविक रिकॉर्ड डेटा प्रकार के अतिरिक्त स्मृति क्षेत्र के शीर्ष पर रखा जा सकता है। बाद वाले अंततः प्रदान किए गए (द्वारा typedef घोषणा), किन्तु भाषा में दो अवधारणाएं अभी भी अलग हैं। इस प्रकार पास्कल (जैसे एडा (प्रोग्रामिंग भाषा), मापांक और जावा प्रोग्रामिंग भाषा) के बाद डिजाइन की गई अधिकांश भाषाओं ने भी रिकॉर्ड का समर्थन किया।

चूंकि रिकॉर्ड का अब अधिकांशतः उनके मूल संदर्भ में उपयोग नहीं किया जाता है (अर्थात केवल डेटा रखने के उद्देश्य से उपयोग किया जा रहा है), रिकॉर्ड ने नई ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषाओं और संबंध का डेटाबेस को प्रभावित किया था। चूंकि रिकॉर्ड डेटा को संग्रहीत और प्रबंधित करने के तरीके में अधिक मॉड्यूलरिटी प्रदान करते हैं, इसलिए वे भाषाओं में डिफ़ॉल्ट रूप से प्रदान किए गए आदिम डेटा प्रकार की तुलना में जटिल, वास्तविक दुनिया की अवधारणाओं का प्रतिनिधित्व करने के लिए उत्तम अनुकूल हैं। इसने बाद की भाषाओं जैसे सी ++, पायथन (प्रोग्रामिंग भाषा), जावास्क्रिप्ट, और उद्देश्य सी को प्रभावित किया, जो प्रोग्रामर की समान प्रतिरूपता संबंधी चिंताओं को संबोधित करते हैं।[13] इस प्रकार इन भाषाओं में ऑब्जेक्ट (कंप्यूटर साइंस) अनिवार्य रूप से मेथड (कंप्यूटर प्रोग्रामिंग) और वंशानुक्रम (वस्तु-उन्मुख प्रोग्रामिंग) के अतिरिक्त रिकॉर्ड हैं, जो प्रोग्रामर को केवल रिकॉर्ड की सामग्री के अतिरिक्त डेटा के व्यवहार के तरीके में हेरफेर करने की अनुमति देते हैं। कई प्रोग्रामर रिकॉर्ड को अप्रचलित मानते हैं क्योंकि ऑब्जेक्ट-ओरिएंटेड भाषाओं में ऐसी विशेषताएं होती हैं जो रिकॉर्ड्स की क्षमता से कहीं अधिक होती हैं। इस प्रकार दूसरी ओर कई प्रोग्रामर यह तर्क देते हैं कि कम ओवरहेड और असेंबली लैंग्वेज में रिकॉर्ड का उपयोग करने की क्षमता रिकॉर्ड को अभी भी प्रासंगिक बनाती है जब एब्स्ट्रेक्शन (कंप्यूटर साइंस) के निम्न स्तर के साथ प्रोग्रामिंग करते हैं। आज तक, टीआईओबीई इंडेक्स इंडेक्स पर सबसे लोकप्रिय भाषाएं, प्रोग्रामिंग भाषाओं की लोकप्रियता का संकेतक, इस तथ्य के कारण किसी तरह रिकॉर्ड से प्रभावित हुई हैं कि वे ऑब्जेक्ट ओरिएंटेड हैं।[14] SQL और वस्तु क्वेरी भाषा जैसी क्वेरी लैंग्वेज भी रिकॉर्ड्स की अवधारणा से प्रभावित थीं। इस प्रकार ये भाषाएँ प्रोग्रामर को डेटा के सेट को स्टोर करने की अनुमति देती हैं, जो अनिवार्य रूप से टेबल में रिकॉर्ड होते हैं।[15] यह डेटा तब अद्वितीय कुंजी का उपयोग करके पुनर्प्राप्त किया जा सकता है। तालिकाएँ स्वयं भी रिकॉर्ड हैं जिनमें विदेशी कुंजी हो सकती है: कुंजी जो किसी अन्य तालिका में डेटा को संदर्भित करती है।

संचालन

  • प्रत्येक क्षेत्र की स्थिति, प्रकार और (संभवतः) नाम सहित नए रिकॉर्ड प्रकार की घोषणा,
  • दिए गए रिकॉर्ड प्रकार के रूप में चर और मूल्यों की घोषणा,
  • दिए गए फ़ील्ड मानों और (कभी-कभी) दिए गए फ़ील्ड नामों से रिकॉर्ड मान का निर्माण,
  • एक स्पष्ट नाम के साथ रिकॉर्ड के क्षेत्र का चयन,
  • रिकॉर्ड चर के लिए रिकॉर्ड मान का असाइनमेंट,
  • समानता के लिए दो रिकॉर्ड की तुलना,
  • रिकॉर्ड के लिए मानक हैश फंकशन की गणना।

रिकॉर्ड मान से किसी फ़ील्ड का चयन करने पर मान प्राप्त होता है।

कुछ भाषाएँ सुविधाएं प्रदान कर सकती हैं जो रिकॉर्ड के सभी क्षेत्रों की गणना करती हैं, या कम से कम वे क्षेत्र जो संदर्भ हैं। इस प्रकार डिबगर्रस, गार्बेज संग्रह (कंप्यूटिंग), और क्रमांकन जैसी कुछ सेवाओं को लागू करने के लिए इस सुविधा की आवश्यकता है। इसके लिए कुछ प्रकार के बहुरूपता की आवश्यकता होती है।

रिकॉर्ड सबटाइपिंग वाली प्रणालियों में, रिकॉर्ड प्रकार के मानों पर संचालन में ये भी सम्मलित हो सकते हैं:

  • एक रिकॉर्ड में नया फ़ील्ड जोड़ना, नए फ़ील्ड का मान सेट किया जाता हैं।
  • रिकॉर्ड से फ़ील्ड को हटाया जाता हैं।

ऐसी सेटिंग्स में, विशिष्ट रिकॉर्ड प्रकार का अर्थ है कि फ़ील्ड का विशिष्ट सेट सम्मलित है, किन्तु उस प्रकार के मान में अतिरिक्त फ़ील्ड हो सकते हैं। फ़ील्ड x, y, और z के साथ रिकॉर्ड इस प्रकार फ़ील्ड x और y के रिकॉर्ड के प्रकार से संबंधित होगा, जैसा फ़ील्ड x, y, और r के साथ रिकॉर्ड होगा। इस प्रकार तर्क यह है कि (x, y, z) रिकॉर्ड को फ़ंक्शन में पास करना जो तर्क के रूप में (x, y) रिकॉर्ड की अपेक्षा करता है, कार्य करना चाहिए, क्योंकि उस फ़ंक्शन को रिकॉर्ड के भीतर आवश्यक सभी फ़ील्ड मिलेंगे। प्रोग्रामिंग भाषाओं में रिकॉर्ड को व्यावहारिक रूप से लागू करने के कई तरीकों से इस तरह की परिवर्तनशीलता की अनुमति देने में परेशानी होगी, किन्तु स्थिति अधिक सैद्धांतिक संदर्भों में रिकॉर्ड प्रकारों की केंद्रीय विशेषता है।

असाइनमेंट और तुलना

अधिकांश भाषाएँ उन रिकॉर्ड्स के बीच असाइनमेंट की अनुमति देती हैं जिनमें बिल्कुल समान रिकॉर्ड प्रकार होता है (समान फ़ील्ड प्रकारों और नामों सहित, उसी क्रम में)। चूंकि, यदि उनके पास समान फ़ील्ड होंती हैं तब भाषा के आधार पर, अलग-अलग परिभाषित दो रिकॉर्ड डेटा प्रकारों को अलग-अलग प्रकार के रूप में माना जा सकता है।

कुछ भाषाएँ रिकॉर्ड के बीच असाइनमेंट की अनुमति भी दे सकती हैं, जिनके फ़ील्ड में अलग-अलग नाम हैं, प्रत्येक फ़ील्ड मान को संबंधित फ़ील्ड चर के साथ रिकॉर्ड के भीतर उनकी स्थिति से मेल खाते हैं, जिससे कि, उदाहरण के लिए, जटिल डेटा प्रकार जिसे फ़ील्ड कहा जाता है real और imag फ़ील्ड के साथ कार्टेशियन निर्देशांक रिकॉर्ड चर को सौंपा जा सकता है, इस प्रकार X और Y. इस विकल्प में, दो ऑपरेंड को अभी भी फ़ील्ड प्रकार के समान अनुक्रम की आवश्यकता होती है। कुछ भाषाओं को यह भी आवश्यकता हो सकती है कि संबंधित प्रकारों का आकार और एन्कोडिंग भी समान हो, जिससे कि पूरे रिकॉर्ड को अनपेक्षित बिट स्ट्रिंग के रूप में निर्दिष्ट किया जा सके। इस प्रकार इस संबंध में अन्य भाषाएं अधिक लचीली हो सकती हैं, और केवल यह आवश्यक है कि प्रत्येक मान फ़ील्ड को संबंधित चर फ़ील्ड को नियमित रूप से असाइन किया जा सके, जिससे कि, उदाहरण के लिए, छोटे पूर्णांक क्षेत्र को लंबे पूर्णांक क्षेत्र को सौंपा जा सके, या इसके विपरीत भी सौंपा जा सके।

अन्य भाषाएं (जैसे COBOL) पदों के अतिरिक्त फ़ील्ड और मानों को उनके नाम से मेल कर सकती हैं।

समानता के लिए दो रिकॉर्ड मानों की तुलना करने पर भी यही संभावनाएँ लागू होती हैं। कुछ भाषाएँ अलग-अलग क्षेत्रों की तुलना के आधार पर शब्दकोष क्रम का उपयोग करते हुए आदेश तुलना ('<'और '>') की अनुमति भी दे सकती हैं।[citation needed]

PL/I दोनों पूर्ववर्ती प्रकार के असाइनमेंट की अनुमति देता है, और संरचना अभिव्यक्ति की भी अनुमति देता है, जैसे कि a = a+1, जहां a रिकॉर्ड है, या PL/I शब्दावली में संरचना है।

अल्गोल 68 का वितरण क्षेत्र चयन

अल्गोल 68 में, यदि Pts रिकॉर्ड की सरणी थी, प्रत्येक पूर्णांक फ़ील्ड के साथ X और Y, कोई लिख सकता है Y of Pts से मिलकर पूर्णांकों की सरणी प्राप्त करने के लिए Y के सभी तत्वों के क्षेत्र Pts. परिणाम स्वरुप, कमांड Y of Pts[3] := 7 और (Y of Pts)[3] := 7 समान प्रभाव होता हैं।

पास्कल के कमांड के साथ

पास्कल प्रोग्रामिंग लैंग्वेज में, कमांड with R do S कमांड अनुक्रम निष्पादित करेगा S मानो रिकॉर्ड के सभी क्षेत्र R चर के रूप में घोषित किया गया था। सी शार्प (प्रोग्रामिंग लैंग्वेज)|सी# जैसी ऑब्जेक्ट-ओरिएंटेड भाषा में अलग नामस्थान अंकित करने के समान, फ़ील्ड तक पहुँचने के लिए रिकॉर्ड नाम को उपसर्ग के रूप में उपयोग करना अब आवश्यक नहीं है। तो, लिखने के अतिरिक्त Pt.X := 5, Pt.Y := Pt.X + 3 में कोई लेख with Pt do begin X := 5; Y := X + 3 end कमांड का उपयोग करके लिख सकता है।

स्मृति प्रतिनिधित्व

स्मृति में अभिलेखों का प्रतिनिधित्व प्रोग्रामिंग भाषाओं के आधार पर भिन्न होता है। सामान्यतः फ़ील्ड मेमोरी में लगातार स्थिति में संग्रहीत होते हैं, उसी क्रम में जैसे वे रिकॉर्ड प्रकार में घोषित किए जाते हैं। इसके परिणामस्वरूप स्मृति के ही शब्द में दो या दो से अधिक फ़ील्ड संग्रहीत हो सकते हैं, वास्तव में, इस सुविधा का उपयोग अधिकांशतः किसी शब्द के विशिष्ट बिट्स तक पहुँचने के लिए सिस्टम प्रोग्रामिंग में किया जाता है। इस प्रकार दूसरी ओर, अधिकांश कंपाइलर मशीन द्वारा लगाए गए संरेखण बाधाओं का पालन करने के लिए प्रोग्रामर के लिए अदृश्य पैडिंग फ़ील्ड जोड़ देंते हैं तथा इसका तात्पर्य है कि तैरने वाला स्थल फ़ील्ड को शब्द को अधिकृत कर लेता हैं।

कुछ भाषाएँ फ़ील्ड (और, संभवतः, उनके नाम और/या प्रकारों) की ओर इशारा करते हुए पतों की सरणी के रूप में रिकॉर्ड को लागू कर सकती हैं। वस्तु-उन्मुख भाषाओं में वस्तुओं को अधिकांशतः जटिल विधियों से लागू किया जाता है, विशेषकर उन भाषाओं में जो वर्ग वंशानुक्रम की अनुमति देती हैं।

स्व-परिभाषित रिकॉर्ड

एक स्व-परिभाषित रिकॉर्ड प्रकार का रिकॉर्ड होता है जिसमें रिकॉर्ड प्रकार की पहचान करने और रिकॉर्ड के भीतर जानकारी का पता लगाने के लिए जानकारी होती है। इसमें तत्वों के ऑफ़सेट हो सकते हैं, इसलिए तत्वों को किसी भी क्रम में संग्रहीत किया जा सकता है या छोड़ा जा सकता है।[16] इस प्रकार स्व-परिभाषित रिकॉर्ड में संग्रहीत जानकारी को रिकॉर्ड के लिए मेटा डेटा के रूप में व्याख्या किया जाता है, जो यूनिक्स मेटाडेटा में फ़ाइल के संबंध में खोजने की अपेक्षा के समान है, इस प्रकार इसमें रिकॉर्ड के निर्माण का समय और रिकॉर्ड का आकार बाइट में जैसी जानकारी सम्मलित की जाती है। वैकल्पिक रूप से, रिकॉर्ड के विभिन्न तत्व, प्रत्येक तत्व पहचानकर्ता सहित, किसी भी क्रम में दूसरे का अनुसरण कर सकते हैं।

यह भी देखें

संदर्भ

  1. "Computer Science Dictionary Definitions". Computing Students. Retrieved Jan 22, 2018.
  2. Radványi, Tibor (2014). डेटाबेस प्रबंधन तंत्र. Eszterházy Károly College. p. 19. Archived from the original on 2018-09-23. Retrieved 23 September 2018.
  3. Kahate, Atul (2006). Introduction to Database Management Systems. Pearson. p. 3. ISBN 978-81-317-0078-5. Retrieved 23 September 2018.
  4. Connolly, Thomas (2004). Database Solutions: A Step by Step Guide to Building Databases (2nd ed.). Pearson. p. 7. ISBN 978-0-321-17350-8.
  5. Felleisen, Matthias (2001). How To Design Programs. MIT Press. pp. 53, 60. ISBN 978-0262062183.
  6. Pape, Tobias; Kirilichev, Vasily; Bolz, Carl Friedrich; Hirschfeld, Robert (2017-01-13). "Record data structures in racket: usage analysis and optimization". ACM SIGAPP Applied Computing Review (in English). 16 (4): 25–37. doi:10.1145/3040575.3040578. ISSN 1559-6915. S2CID 14306162.
  7. "Add or change a table's primary key in Access". support.microsoft.com. Retrieved 2022-03-01.
  8. "Alternate key - Oracle FAQ". www.orafaq.com. Retrieved 2022-03-01.
  9. Bromley, Allan (October 1998). "Charles Babbage's Analytical Engine, 1838". IEEE Annals of the History of Computing. 20 (4): 29–45. doi:10.1109/85.728228. S2CID 2285332. Retrieved 23 September 2018.
  10. Swade, Doron. "Automatic Computation: Charles Babbage and Computational Method". The Rutherford Journal. The Rutherford Journal. Retrieved 23 September 2018.
  11. Edwin D. Reilly; Anthony Ralston; David Hemmendinger, eds. (2003). Encyclopedia of computer science (4th ed.). Chichester, UK: Wiley. ISBN 978-1-84972-160-8. OCLC 436846454.
  12. Sebesta, Robert W. (1996). Concepts of Programming Languages (Third ed.). Addison-Wesley Publishing Company, Inc. p. 218. ISBN 0-8053-7133-8.
  13. Leavens, Gary T.; Weihl, William E. (1990). "Reasoning about object-oriented programs that use subtypes". Proceedings of the European Conference on Object-oriented Programming on Object-oriented Programming Systems, Languages, and Applications - OOPSLA/ECOOP '90. New York, New York, USA: ACM Press: 212–223. doi:10.1145/97945.97970. ISBN 0-201-52430-9. S2CID 46526.
  14. "index | TIOBE - The Software Quality Company". www.tiobe.com. Retrieved 2022-03-01.
  15. "What is a Relational Database (RDBMS)?". Oracle. Retrieved February 28, 2022.
  16. Kraimer, Martin R. "EPICS Input / Output Controller (IOC) Application Developer's Guide". Argonne National Laboratory. Retrieved November 25, 2015.