रिकॉर्ड (कंप्यूटर विज्ञान): Difference between revisions
No edit summary |
No edit summary |
||
| Line 1: | Line 1: | ||
{{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 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> | ||
| Line 31: | Line 30: | ||
कुछ आरंभिक फ़ाइल [[छँटाई]] और सारणीकरण उपयोगिताओं में रिकॉर्ड और फ़ील्ड की अवधारणा केंद्रीय थी, जैसे IBM RPG|IBM का रिपोर्ट प्रोग्राम जेनरेटर (RPG)। | कुछ आरंभिक फ़ाइल [[छँटाई]] और सारणीकरण उपयोगिताओं में रिकॉर्ड और फ़ील्ड की अवधारणा केंद्रीय थी, जैसे IBM RPG|IBM का रिपोर्ट प्रोग्राम जेनरेटर (RPG)। | ||
{{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]] ने उन्हें जोड़ा। मूल [[लिस्प प्रोग्रामिंग भाषा]] में भी रिकॉर्ड की कमी थी (बिल्ट-इन [[विपक्ष सेल]] को छोड़कर), किन्तु इसके [[एस-अभिव्यक्ति]] ने पर्याप्त सरोगेट प्रदान किया। | न्यूमेरिक कंप्यूटिंग के लिए विकसित प्रारंभिक भाषाएं, जैसे कि [[[[फोरट्रान]] चतुर्थ]]फोरट्रान 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> यह डेटा तब अद्वितीय कुंजी का उपयोग करके पुनर्प्राप्त किया जा सकता है। तालिकाएँ स्वयं भी रिकॉर्ड हैं जिनमें [[विदेशी कुंजी]] हो सकती है: कुंजी जो किसी अन्य तालिका में डेटा को संदर्भित करती है। | ||
| Line 82: | Line 80: | ||
== यह भी देखें == | == यह भी देखें == | ||
* ब्लॉक (डेटा संग्रहण) | * ब्लॉक (डेटा संग्रहण) | ||
* [[समग्र डेटा प्रकार]] | * [[समग्र डेटा प्रकार]] | ||
Revision as of 00:41, 18 February 2023
कंप्यूटर विज्ञान में, रिकॉर्ड (जिसे संरचना, संरचना (सी प्रोग्रामिंग भाषा) या यौगिक डेटा भी कहा जाता है) बुनियादी डेटा संरचना है। डेटाबेस या स्प्रेडशीट में रिकॉर्ड्स को सामान्यतः पंक्ति (डेटाबेस) कहा जाता है।[1]Cite error: Closing </ref> missing for <ref> tag[2]
एक रिकॉर्ड फ़ील्ड (कंप्यूटर विज्ञान) का संग्रह है, संभवतः विभिन्न डेटा प्रकारों का, सामान्यतः निश्चित संख्या और अनुक्रम में।[3] रिकॉर्ड के क्षेत्र को सदस्य भी कहा जा सकता है, विशेष रूप से वस्तु-उन्मुख प्रोग्रामिंग में; फ़ील्ड को तत्व भी कहा जा सकता है, चूंकि यह संग्रह (सार डेटा प्रकार) के तत्वों के साथ भ्रम का जोखिम उठाता है।
उदाहरण के लिए, दिनांक को रिकॉर्ड के रूप में संग्रहीत किया जा सकता है जिसमें संख्यात्मक वर्ष फ़ील्ड, महीना फ़ील्ड स्ट्रिंग के रूप में दर्शाया जाता है, और संख्यात्मक दिन-दर-माह क्षेत्र। कार्मिक रिकॉर्ड में नाम, वेतन और रैंक सम्मलित हो सकते हैं। मंडली रिकॉर्ड में केंद्र और त्रिज्या हो सकता है—इस उदाहरण में, केंद्र को ही युक्त बिंदु रिकॉर्ड के रूप में दर्शाया जा सकता है x और y निर्देशांक।
रिकॉर्ड्स को एरे डेटा प्रकार से इस तथ्य से अलग किया जाता है कि उनके फ़ील्ड की संख्या रिकॉर्ड की परिभाषा में निर्धारित होती है, और तथ्य यह है कि रिकॉर्ड विषम डेटा प्रकार हैं; सभी फ़ील्ड में ही प्रकार का डेटा नहीं होना चाहिए।[4] एक रिकॉर्ड प्रकार डेटा प्रकार है जो ऐसे मूल्यों और चर का वर्णन करता है। अधिकांश आधुनिक कंप्यूटर भाषाएँ प्रोग्रामर को नए रिकॉर्ड प्रकारों को परिभाषित करने की अनुमति देती हैं। परिभाषा में प्रत्येक फ़ील्ड के डेटा प्रकार और पहचानकर्ता (नाम या लेबल) को निर्दिष्ट करना सम्मलित है जिसके द्वारा इसे एक्सेस किया जा सकता है। प्रकार सिद्धांत में, उत्पाद प्रकार (कोई फ़ील्ड नाम नहीं) सामान्यतः उनकी सादगी के कारण पसंद किए जाते हैं, किन्तु सिस्टम एफ-उप जैसी भाषाओं में उचित रिकॉर्ड प्रकार का अध्ययन किया जाता है। चूंकि टाइप-सैद्धांतिक रिकॉर्ड में डेटा के अतिरिक्त प्रथम श्रेणी के फ़ंक्शन-टाइप किए गए फ़ील्ड सम्मलित हो सकते हैं, वे वस्तु के उन्मुख प्रोग्रामिंग की कई विशेषताओं को व्यक्त कर सकते हैं।
रिकॉर्ड्स किसी भी स्टोरेज माध्यम में सम्मलित हो सकते हैं, जिसमें मुख्य मेमोरी और मास स्टोरेज डिवाइस जैसे चुंबकीय टेप या हार्ड डिस्क सम्मलित हैं। रिकॉर्ड्स अधिकांश डेटा संरचनाओं, विशेष रूप से लिंक्ड डेटा संरचनाओं का मूलभूत घटक हैं। कई कम्प्यूटर फाइल को भंडारण रिकॉर्ड के एरे के रूप में व्यवस्थित किया जाता है, जिन्हें दक्षता के लिए अधिकांशतः बड़े भौतिक रिकॉर्ड या ब्लॉक (डेटा स्टोरेज) में समूहीकृत किया जाता है।
उपनेमका के पैरामीटर को अधिकांशतः रिकॉर्ड चर के क्षेत्र के रूप में देखा जा सकता है; और उस फ़ंक्शन को पास किए गए तर्कों को रिकॉर्ड मान के रूप में देखा जा सकता है जो कॉल के समय उस वेरिएबल को असाइनमेंट (कंप्यूटर विज्ञान) प्राप्त करता है। इसके अतिरिक्त, कॉल स्टैक में जो अधिकांशतः प्रक्रिया कॉल को लागू करने के लिए उपयोग किया जाता है, प्रत्येक प्रविष्टि सक्रियण रिकॉर्ड या कॉल फ़्रेम होती है, जिसमें प्रक्रिया पैरामीटर और स्थानीय चर, वापसी पता और अन्य आंतरिक फ़ील्ड होते हैं।
वस्तु-उन्मुख भाषा में वस्तु अनिवार्य रूप से रिकॉर्ड है जिसमें उस रिकॉर्ड को संभालने के लिए विशेष प्रक्रियाएं सम्मलित हैं; और वस्तु प्रकार रिकॉर्ड प्रकारों का विस्तार है। वास्तव में, अधिकांश वस्तु-उन्मुख भाषाओं में, रिकॉर्ड केवल वस्तुओं के विशेष स्थिति होते हैं, और ओओ सुविधाओं का उपयोग करने वाली वस्तुओं के विपरीत सादे पुराने डेटा संरचनाओं (पीओडीएस) के रूप में जाने जाते हैं।
एक रिकॉर्ड को गणित के टपल के कंप्यूटर एनालॉग के रूप में देखा जा सकता है, चूंकि टपल को रिकॉर्ड माना जा सकता है या नहीं, और इसके विपरीत, सम्मेलनों और विशिष्ट प्रोग्रामिंग भाषा पर निर्भर करता है। ही नस में, रिकॉर्ड प्रकार को दो या दो से अधिक सेट (गणित) के कार्टेशियन उत्पाद के कंप्यूटर भाषा एनालॉग के रूप में देखा जा सकता है, या विशिष्ट भाषा में सार उत्पाद प्रकार के कार्यान्वयन के रूप में देखा जा सकता है।
कुंजी
एक रिकॉर्ड में शून्य या अधिक कुंजियाँ हो सकती हैं। कुंजी व्यंजक को रिकॉर्ड में मान, या मानों के सेट पर मैप करती है। प्राथमिक कुंजी कुंजी है यह सभी संग्रहीत अभिलेखों में अद्वितीय है; केवल यदि यह कुंजी सम्मलित है।[5] दूसरे शब्दों में, किसी भी प्राथमिक कुंजी के लिए कोई डुप्लिकेट सम्मलित नहीं हो सकता है। उदाहरण के लिए कर्मचारी फ़ाइल में कर्मचारी संख्या, नाम, विभाग और वेतन हो सकता है। कर्मचारी संख्या संगठन में अद्वितीय होगी और प्राथमिक कुंजी होगी। भंडारण माध्यम और फ़ाइल संगठन के आधार पर कर्मचारी संख्या अनुक्रमित फ़ाइल हो सकती है - जो लुकअप को तेज़ बनाने के लिए अलग फ़ाइल में भी संग्रहीत होती है। विभाग कोड आवश्यक रूप से अद्वितीय नहीं है; इसे अनुक्रमित भी किया जा सकता है, जिस स्थिति में इसे द्वितीयक कुंजी या वैकल्पिक कुंजी माना जाएगा।[6] यदि इसे अनुक्रमित नहीं किया गया है तो विशिष्ट विभाग में सभी कर्मचारियों की सूची तैयार करने के लिए संपूर्ण कर्मचारी फ़ाइल को स्कैन करना होगा। कुंजियों को सामान्यतः इस तरह से चुना जाता है कि कुंजी द्वारा संभवतः मैप किए जाने वाले कई मानों की संभावना कम हो जाती है। उदाहरण के लिए, वेतन क्षेत्र को सामान्यतः कुंजी के रूप में प्रयोग करने योग्य नहीं माना जाएगा क्योंकि कई कर्मचारियों के समान वेतन होने की संभावना होगी। फ़ाइल डिज़ाइन करते समय इंडेक्सिंग कारक माना जाता है।
इतिहास
एक रिकॉर्ड की अवधारणा को दूरस्थ समय से लेखांकन में उपयोग की जाने वाली विभिन्न प्रकार की तालिका (सूचना) और खाता बही में खोजा जा सकता है। कंप्यूटर विज्ञान में रिकॉर्ड की आधुनिक धारणा, अच्छी तरह से परिभाषित प्रकार और आकार के क्षेत्रों के साथ, 19वीं सदी के यांत्रिक कैलकुलेटर, जैसे चार्ल्स बैबेज के विश्लेषणात्मक इंजन में पहले से ही अंतर्निहित थी।[7][8]
डेटा के लिए उपयोग किया जाने वाला मूल मशीन-पठनीय माध्यम (नियंत्रण के विपरीत) 1890 संयुक्त राज्य अमेरिका की जनगणना में रिकॉर्ड के लिए उपयोग किया जाने वाला छिद्र पत्रक था: प्रत्येक पंच कार्ड एकल रिकॉर्ड था। 1880 से जर्नल प्रविष्टि और 1895 से पंच कार्ड की तुलना करें। रिकॉर्ड 20वीं सदी के पहले भाग में अच्छी तरह से स्थापित थे, जब अधिकांश डेटा प्रोसेसिंग पंच कार्ड का उपयोग करके किया जाता था। सामान्यतः डेटा फ़ाइल का प्रत्येक रिकॉर्ड पंच कार्ड में अंकित किया जाएगा, जिसमें विशिष्ट क्षेत्रों को निर्दिष्ट कॉलम होंगे। सामान्यतः, रिकॉर्ड सबसे छोटी इकाई होती थी जिसे बाहरी भंडारण (जैसे कार्ड रीडर, टेप या डिस्क) से पढ़ा जा सकता था। पंचकार्ड-शैली के रिकॉर्ड की सामग्री को मूल रूप से यूनिट रिकॉर्ड कहा जाता था क्योंकि पंचकार्ड में दस्तावेज़ की पूर्व-निर्धारित लंबाई होती थी।[9] जब हार्ड डिस्क ड्राइव और चुंबकीय टेप के उपयोग से भंडारण प्रणालियां अधिक उन्नत हो गईं, तो चर-लंबाई के रिकॉर्ड मानक बन गए। चर-लंबाई रिकॉर्ड रिकॉर्ड है जिसमें बाइट्स में रिकॉर्ड का आकार लगभग उसके क्षेत्रों के आकार के योग के बराबर होता है। अधिक उन्नत स्टोरेज हार्डवेयर के आविष्कार से पहले ऐसा करना संभव नहीं था क्योंकि सभी पंचकार्डों को पूर्व-निर्धारित दस्तावेज़ लंबाई के अनुरूप होना पड़ता था जिसे कंप्यूटर पढ़ सकता था, क्योंकि उस समय कार्डों को मशीन में भौतिक रूप से भरना पड़ता था।
अधिकांश मशीन भाषा कार्यान्वयन और प्रारंभिक असेंबली भाषाओं में रिकॉर्ड के लिए विशेष सिंटैक्स नहीं था, किन्तु सूचकांक रजिस्टरों, अप्रत्यक्ष पते और स्व-संशोधित कोड के उपयोग के माध्यम से अवधारणा उपलब्ध थी (और व्यापक रूप से उपयोग की गई)। कुछ प्रारंभिक कंप्यूटर, जैसे IBM 1620, में रिकॉर्ड और फ़ील्ड को परिसीमित करने के लिए हार्डवेयर समर्थन और ऐसे रिकॉर्ड की प्रतिलिपि बनाने के लिए विशेष निर्देश थे।
कुछ आरंभिक फ़ाइल छँटाई और सारणीकरण उपयोगिताओं में रिकॉर्ड और फ़ील्ड की अवधारणा केंद्रीय थी, जैसे IBM RPG|IBM का रिपोर्ट प्रोग्राम जेनरेटर (RPG)।
COBOL रिकॉर्ड प्रकारों का समर्थन करने वाली पहली व्यापक प्रोग्रामिंग भाषा थी,[10] और इसकी रिकॉर्ड परिभाषा सुविधाएं उस समय अधिक परिष्कृत थीं। भाषा अल्फ़ान्यूमेरिक, पूर्णांक, और मनमाना आकार और त्रुटीहीनता के भिन्नात्मक क्षेत्रों के साथ नेस्टेड रिकॉर्ड की परिभाषा की अनुमति देती है, साथ ही फ़ील्ड जो स्वचालित रूप से उन्हें निर्दिष्ट किसी भी मान को प्रारूपित करती हैं (जैसे, मुद्रा संकेत, दशमलव अंक और अंक समूह विभाजक सम्मिलित करना) ). प्रत्येक फ़ाइल रिकॉर्ड चर से जुड़ी होती है जहाँ डेटा को पढ़ा या लिखा जाता है। COBOL भी प्रदान करता है MOVE CORRESPONDING बयान जो उनके नामों के अनुसार दो अभिलेखों के संबंधित क्षेत्रों को निर्दिष्ट करता है।
न्यूमेरिक कंप्यूटिंग के लिए विकसित प्रारंभिक भाषाएं, जैसे कि [[फोरट्रान चतुर्थ]]फोरट्रान IV तक) और एल्गोल 60, में रिकॉर्ड प्रकार के लिए समर्थन नहीं था; किन्तु उन भाषाओं के बाद के संस्करण, जैसे फोरट्रान 77 और एल्गोल 68 ने उन्हें जोड़ा। मूल लिस्प प्रोग्रामिंग भाषा में भी रिकॉर्ड की कमी थी (बिल्ट-इन विपक्ष सेल को छोड़कर), किन्तु इसके एस-अभिव्यक्ति ने पर्याप्त सरोगेट प्रदान किया। पास्कल प्रोग्रामिंग भाषा उन पहली भाषाओं में से थी जो तार्किक रूप से संगत प्रकार प्रणाली में रिकॉर्ड प्रकारों को अन्य बुनियादी प्रकारों के साथ पूरी तरह से एकीकृत करती थी। COBOL-शैली के रिकॉर्ड के लिए प्रदान की गई PL/I सी (प्रोग्रामिंग भाषा) (प्रोग्रामिंग लैंग्वेज) प्रोग्रामिंग लैंग्वेज ने प्रारंभ में रिकॉर्ड कॉन्सेप्ट को तरह के टेम्प्लेट के रूप में प्रदान किया (struct) जिसे वास्तविक रिकॉर्ड डेटा प्रकार के अतिरिक्त स्मृति क्षेत्र के शीर्ष पर रखा जा सकता है। बाद वाले अंततः प्रदान किए गए (द्वारा typedef घोषणा), किन्तु भाषा में दो अवधारणाएं अभी भी अलग हैं। पास्कल (जैसे एडा (प्रोग्रामिंग भाषा), मापांक और जावा प्रोग्रामिंग भाषा) के बाद डिजाइन की गई अधिकांश भाषाओं ने भी रिकॉर्ड का समर्थन किया।
चूंकि रिकॉर्ड का अब अधिकांशतः उनके मूल संदर्भ में उपयोग नहीं किया जाता है (अर्थात केवल डेटा रखने के उद्देश्य से उपयोग किया जा रहा है), रिकॉर्ड ने नई ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषाओं और संबंध का डेटाबेस को प्रभावित किया। चूंकि रिकॉर्ड डेटा को संग्रहीत और प्रबंधित करने के तरीके में अधिक मॉड्यूलरिटी प्रदान करते हैं, इसलिए वे भाषाओं में डिफ़ॉल्ट रूप से प्रदान किए गए आदिम डेटा प्रकार की तुलना में जटिल, वास्तविक दुनिया की अवधारणाओं का प्रतिनिधित्व करने के लिए उत्तम अनुकूल हैं। इसने बाद की भाषाओं जैसे सी ++, पायथन (प्रोग्रामिंग भाषा), जावास्क्रिप्ट, और उद्देश्य सी को प्रभावित किया, जो प्रोग्रामर की समान प्रतिरूपता संबंधी चिंताओं को संबोधित करते हैं।[11] इन भाषाओं में ऑब्जेक्ट (कंप्यूटर साइंस) अनिवार्य रूप से मेथड (कंप्यूटर प्रोग्रामिंग) और वंशानुक्रम (वस्तु-उन्मुख प्रोग्रामिंग) के अतिरिक्त रिकॉर्ड हैं, जो प्रोग्रामर को केवल रिकॉर्ड की सामग्री के अतिरिक्त डेटा के व्यवहार के तरीके में हेरफेर करने की अनुमति देते हैं। कई प्रोग्रामर रिकॉर्ड को अप्रचलित मानते हैं क्योंकि ऑब्जेक्ट-ओरिएंटेड भाषाओं में ऐसी विशेषताएं होती हैं जो रिकॉर्ड्स की क्षमता से कहीं अधिक होती हैं। दूसरी ओर, कई प्रोग्रामर तर्क देते हैं कि कम ओवरहेड और असेंबली लैंग्वेज में रिकॉर्ड का उपयोग करने की क्षमता रिकॉर्ड को अभी भी प्रासंगिक बनाती है जब एब्स्ट्रेक्शन (कंप्यूटर साइंस) के निम्न स्तर के साथ प्रोग्रामिंग करते हैं। आज तक, टीआईओबीई इंडेक्स इंडेक्स पर सबसे लोकप्रिय भाषाएं, प्रोग्रामिंग भाषाओं की लोकप्रियता का संकेतक, इस तथ्य के कारण किसी तरह रिकॉर्ड से प्रभावित हुई हैं कि वे ऑब्जेक्ट ओरिएंटेड हैं।[12] SQL और वस्तु क्वेरी भाषा जैसी क्वेरी लैंग्वेज भी रिकॉर्ड्स की अवधारणा से प्रभावित थीं। ये भाषाएँ प्रोग्रामर को डेटा के सेट को स्टोर करने की अनुमति देती हैं, जो अनिवार्य रूप से टेबल में रिकॉर्ड होते हैं।[13] यह डेटा तब अद्वितीय कुंजी का उपयोग करके पुनर्प्राप्त किया जा सकता है। तालिकाएँ स्वयं भी रिकॉर्ड हैं जिनमें विदेशी कुंजी हो सकती है: कुंजी जो किसी अन्य तालिका में डेटा को संदर्भित करती है।
संचालन
- प्रत्येक क्षेत्र की स्थिति, प्रकार और (संभवतः) नाम सहित नए रिकॉर्ड प्रकार की घोषणा;
- दिए गए रिकॉर्ड प्रकार के रूप में चर और मूल्यों की घोषणा;
- दिए गए फ़ील्ड मानों और (कभी-कभी) दिए गए फ़ील्ड नामों से रिकॉर्ड मान का निर्माण;
- एक स्पष्ट नाम के साथ रिकॉर्ड के क्षेत्र का चयन;
- रिकॉर्ड चर के लिए रिकॉर्ड मान का असाइनमेंट;
- समानता के लिए दो रिकॉर्ड की तुलना;
- रिकॉर्ड के लिए मानक हैश फंकशन की गणना।
रिकॉर्ड मान से किसी फ़ील्ड का चयन करने पर मान प्राप्त होता है।
कुछ भाषाएँ सुविधाएं प्रदान कर सकती हैं जो रिकॉर्ड के सभी क्षेत्रों की गणना करती हैं, या कम से कम वे क्षेत्र जो संदर्भ हैं। डिबगर्स, कचरा संग्रह (कंप्यूटिंग), और क्रमांकन जैसी कुछ सेवाओं को लागू करने के लिए इस सुविधा की आवश्यकता है। इसके लिए कुछ प्रकार के बहुरूपता की आवश्यकता होती है।
रिकॉर्ड सबटाइपिंग वाली प्रणालियों में, रिकॉर्ड प्रकार के मानों पर संचालन में ये भी सम्मलित हो सकते हैं:
- एक रिकॉर्ड में नया फ़ील्ड जोड़ना, नए फ़ील्ड का मान सेट करना।
- रिकॉर्ड से फ़ील्ड हटाना।
ऐसी सेटिंग्स में, विशिष्ट रिकॉर्ड प्रकार का अर्थ है कि फ़ील्ड का विशिष्ट सेट सम्मलित है, किन्तु उस प्रकार के मान में अतिरिक्त फ़ील्ड हो सकते हैं। फ़ील्ड 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.
स्मृति में प्रतिनिधित्व
स्मृति में अभिलेखों का प्रतिनिधित्व प्रोग्रामिंग भाषाओं के आधार पर भिन्न होता है। सामान्यतः फ़ील्ड मेमोरी में लगातार स्थिति में संग्रहीत होते हैं, उसी क्रम में जैसे वे रिकॉर्ड प्रकार में घोषित किए जाते हैं। इसके परिणामस्वरूप स्मृति के ही शब्द में दो या दो से अधिक फ़ील्ड संग्रहीत हो सकते हैं; वास्तव में, इस सुविधा का उपयोग अधिकांशतः किसी शब्द के विशिष्ट बिट्स तक पहुँचने के लिए सिस्टम प्रोग्रामिंग में किया जाता है। दूसरी ओर, अधिकांश कंपाइलर मशीन द्वारा लगाए गए संरेखण बाधाओं का पालन करने के लिए प्रोग्रामर के लिए अदृश्य पैडिंग फ़ील्ड जोड़ देंगे - कहते हैं कि तैरनेवाला स्थल फ़ील्ड को शब्द पर कब्जा करना चाहिए।
कुछ भाषाएँ फ़ील्ड (और, संभवतः, उनके नाम और/या प्रकारों) की ओर इशारा करते हुए पतों की सरणी के रूप में रिकॉर्ड को लागू कर सकती हैं। वस्तु-उन्मुख भाषाओं में वस्तुओं को अधिकांशतः जटिल तरीकों से लागू किया जाता है, विशेषकर उन भाषाओं में जो वर्ग वंशानुक्रम की अनुमति देती हैं।
स्व-परिभाषित रिकॉर्ड
एक स्व-परिभाषित रिकॉर्ड प्रकार का रिकॉर्ड होता है जिसमें रिकॉर्ड प्रकार की पहचान करने और रिकॉर्ड के भीतर जानकारी का पता लगाने के लिए जानकारी होती है। इसमें तत्वों के ऑफ़सेट हो सकते हैं; इसलिए तत्वों को किसी भी क्रम में संग्रहीत किया जा सकता है या छोड़ा जा सकता है।[14] स्व-परिभाषित रिकॉर्ड में संग्रहीत जानकारी को रिकॉर्ड के लिए मेटा डेटा के रूप में व्याख्या किया जा सकता है, जो यूनिक्स मेटाडेटा में फ़ाइल के संबंध में खोजने की अपेक्षा के समान है, जिसमें रिकॉर्ड के निर्माण का समय और रिकॉर्ड का आकार जैसी जानकारी सम्मलित है। बाइट में। वैकल्पिक रूप से, रिकॉर्ड के विभिन्न तत्व, प्रत्येक तत्व पहचानकर्ता सहित, किसी भी क्रम में दूसरे का अनुसरण कर सकते हैं।
यह भी देखें
- ब्लॉक (डेटा संग्रहण)
- समग्र डेटा प्रकार
- डेटा पदानुक्रम
- वस्तु रचना
- निष्क्रिय डेटा संरचना
- संघ प्रकार
संदर्भ
- ↑ "Computer Science Dictionary Definitions". Computing Students. Retrieved Jan 22, 2018.
- ↑ Connolly, Thomas (2004). Database Solutions: A Step by Step Guide to Building Databases (2nd ed.). Pearson. p. 7. ISBN 978-0-321-17350-8.
- ↑ Felleisen, Matthias (2001). How To Design Programs. MIT Press. pp. 53, 60. ISBN 978-0262062183.
- ↑ 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.
- ↑ "Add or change a table's primary key in Access". support.microsoft.com. Retrieved 2022-03-01.
- ↑ "Alternate key - Oracle FAQ". www.orafaq.com. Retrieved 2022-03-01.
- ↑ 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.
- ↑ Swade, Doron. "Automatic Computation: Charles Babbage and Computational Method". The Rutherford Journal. The Rutherford Journal. Retrieved 23 September 2018.
- ↑ 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.
- ↑ Sebesta, Robert W. (1996). Concepts of Programming Languages (Third ed.). Addison-Wesley Publishing Company, Inc. p. 218. ISBN 0-8053-7133-8.
- ↑ 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.
- ↑ "index | TIOBE - The Software Quality Company". www.tiobe.com. Retrieved 2022-03-01.
- ↑ "What is a Relational Database (RDBMS)?". Oracle. Retrieved February 28, 2022.
- ↑ Kraimer, Martin R. "EPICS Input / Output Controller (IOC) Application Developer's Guide". Argonne National Laboratory. Retrieved November 25, 2015.