टेम्पोरल डेटाबेस: Difference between revisions
No edit summary |
|||
Line 63: | Line 63: | ||
=== एक गैर-अस्थायी डेटाबेस का उपयोग === | === एक गैर-अस्थायी डेटाबेस का उपयोग === | ||
जॉन डो के जीवन को वर्तमान (गैर-अस्थायी) डेटाबेस में संग्रहीत करने के लिए हम एक तालिका का उपयोग करते हैं {{code| | जॉन डो के जीवन को वर्तमान (गैर-अस्थायी) डेटाबेस में संग्रहीत करने के लिए हम एक तालिका का उपयोग करते हैं {{code|व्यक्ति (नाम, पता)}} (सरल बनाने के लिए नाम को व्यक्ति की [[प्राथमिक कुंजी]] के रूप में परिभाषित किया गया है।) | ||
जॉन के पिता ने आधिकारिक तौर पर 4 अप्रैल | जॉन के पिता ने आधिकारिक तौर पर 4 अप्रैल 1975 को उनके जन्म की सूचना दी। इस तिथि को स्मॉलविले के एक अधिकारी ने डेटाबेस में निम्नलिखित प्रविष्टि डाली<code>(जॉन डो,स्मॉलविले)।</code> | ||
ध्यान दें कि दिनांक ही डेटाबेस में संग्रहीत नहीं है। | ध्यान दें कि दिनांक ही डेटाबेस में संग्रहीत नहीं है। | ||
ग्रेजुएशन के बाद, जॉन बाहर चला जाता है, लेकिन अपना नया पता दर्ज करना भूल जाता है। डेटाबेस में जॉन की प्रविष्टि 27 दिसंबर, 1994 तक नहीं बदली जाती है, जब वह अंत में इसकी रिपोर्ट करता है। बिगटाउन का एक अधिकारी डेटाबेस में अपना पता अपडेट करता है। व्यक्ति तालिका में अब सम्मिलित | ग्रेजुएशन के बाद, जॉन बाहर चला जाता है, लेकिन अपना नया पता दर्ज करना भूल जाता है। डेटाबेस में जॉन की प्रविष्टि 27 दिसंबर, 1994 तक नहीं बदली जाती है, जब वह अंत में इसकी रिपोर्ट करता है। बिगटाउन का एक अधिकारी डेटाबेस में अपना पता अपडेट करता है। व्यक्ति तालिका में अब सम्मिलित है व्यक्ति(जॉन डो,बिगटाउन). | ||
उनकी मृत्यु तक | ध्यान दें कि स्मॉलविले में रहने वाले जॉन की जानकारी अधिलेखित कर दी गई है, इसलिए उस जानकारी को डेटाबेस से पुनर्प्राप्त करना अब संभव नहीं है। 28 दिसंबर 1994 को डेटाबेस तक पहुँचने वाले एक अधिकारी को बताया जाएगा कि जॉन बिगटाउन में रहता है। | ||
अधिक तकनीकी रूप से यदि कोई डेटाबेस व्यवस्थापक 26 दिसंबर, 1994 को प्रश्न करता है तो परिणाम होगा । 2 दिन बाद उसी प्रश्न को चलाने के परिणामस्वरूप {{code|1=व्यक्ति से पता चुनें जहां नाम = 'जॉन डो'|2=sql}} <code>स्मॉलविले</code> <code>बिगटाउन</code>. | |||
उनकी मृत्यु तक डेटाबेस बताता है कि वह बिगटाउन में रहते थे। 1 अप्रैल 2001 को कोरोनर डेटाबेस से जॉन डो प्रविष्टि को हटा देता है। इसके बाद उपरोक्त प्रश्न को चलाने से कोई परिणाम नहीं मिलेगा। | |||
{| class="wikitable" | {| class="wikitable" | ||
Line 232: | Line 234: | ||
== द्विअस्थायी मॉडलिंग == | == द्विअस्थायी मॉडलिंग == | ||
{{Main article|Bitemporal Modeling}} | {{Main article|Bitemporal Modeling}} | ||
[[बिटटेम्पोरल मॉडलिंग|बिटअस्थायी मॉडलिंग]] में वैध और लेन-देन दोनों समय सम्मिलित होते हैं। यह ऐतिहासिक और रोलबैक दोनों जानकारी प्रदान करता है। ऐतिहासिक जानकारी (उदा.: जॉन 1992 में कहां रहते थे? ) मान्य समय द्वारा प्रदान की जाती है। रोलबैक (उदा.: 1992 में, डेटाबेस का मानना था कि जॉन कहां रहता था? ) लेन-देन के समय द्वारा प्रदान किया जाता है। इन उदाहरण प्रश्नों के उत्तर समान नहीं हो सकते हैं{{snd}} डेटाबेस को 1992 से बदल दिया गया हो सकता है, जिससे | [[बिटटेम्पोरल मॉडलिंग|बिटअस्थायी मॉडलिंग]] में वैध और लेन-देन दोनों समय सम्मिलित होते हैं। यह ऐतिहासिक और रोलबैक दोनों जानकारी प्रदान करता है। ऐतिहासिक जानकारी (उदा.: जॉन 1992 में कहां रहते थे? ) मान्य समय द्वारा प्रदान की जाती है। रोलबैक (उदा.: 1992 में, डेटाबेस का मानना था कि जॉन कहां रहता था? ) लेन-देन के समय द्वारा प्रदान किया जाता है। इन उदाहरण प्रश्नों के उत्तर समान नहीं हो सकते हैं{{snd}} डेटाबेस को 1992 से बदल दिया गया हो सकता है, जिससे प्रश्नज़ अलग-अलग परिणाम उत्पन्न करती हैं। | ||
वैध समय और लेन-देन का समय एक ही तथ्य के लिए समान नहीं होना चाहिए। उदाहरण के लिए, 18वीं शताब्दी के बारे में डेटा संग्रहीत करने वाले एक अस्थायी डेटाबेस पर विचार करें। इन तथ्यों का वैध समय कहीं 1701 और 1800 के बीच है। लेन-देन का समय तब दिखाएगा जब तथ्यों को डेटाबेस में डाला गया था (उदाहरण के लिए, 21 जनवरी, 1998)। | वैध समय और लेन-देन का समय एक ही तथ्य के लिए समान नहीं होना चाहिए। उदाहरण के लिए, 18वीं शताब्दी के बारे में डेटा संग्रहीत करने वाले एक अस्थायी डेटाबेस पर विचार करें। इन तथ्यों का वैध समय कहीं 1701 और 1800 के बीच है। लेन-देन का समय तब दिखाएगा जब तथ्यों को डेटाबेस में डाला गया था (उदाहरण के लिए, 21 जनवरी, 1998)। | ||
Line 238: | Line 240: | ||
== स्कीमा विकास == | == स्कीमा विकास == | ||
{{Main article|Schema evolution}} | {{Main article|Schema evolution}} | ||
एक चुनौतीपूर्ण मुद्दा विकसित [[डेटाबेस स्कीमा]] के तहत लेनदेन समय डेटाबेस में अस्थायी प्रश्नों का समर्थन है। पूर्ण अभिलेखीय गुणवत्ता प्राप्त करने के लिए डेटा को उस स्कीमा संस्करण के तहत संग्रहीत करना महत्वपूर्ण है जिसके तहत वे पहली बार दिखाई दिए थे। हालांकि, यहां तक कि एक विशेषता मूल्य के इतिहास को फिर से लिखने वाली सबसे सरल अस्थायी | एक चुनौतीपूर्ण मुद्दा विकसित [[डेटाबेस स्कीमा]] के तहत लेनदेन समय डेटाबेस में अस्थायी प्रश्नों का समर्थन है। पूर्ण अभिलेखीय गुणवत्ता प्राप्त करने के लिए डेटा को उस स्कीमा संस्करण के तहत संग्रहीत करना महत्वपूर्ण है जिसके तहत वे पहली बार दिखाई दिए थे। हालांकि, यहां तक कि एक विशेषता मूल्य के इतिहास को फिर से लिखने वाली सबसे सरल अस्थायी प्रश्न को प्रत्येक स्कीमा संस्करण के तहत मैन्युअल रूप से फिर से लिखने की आवश्यकता होगी, संभावित रूप से MediaWiki के मामले में सैकड़ों [http://yellowstone.cs.ucla.edu/ स्कीमा-विकास/index.php/Schema_Evolution_Benchmark]। | ||
यह प्रक्रिया विशेष रूप से उपयोगकर्ताओं के लिए कर लगाने वाली होगी। एक प्रस्तावित समाधान स्वचालित | यह प्रक्रिया विशेष रूप से उपयोगकर्ताओं के लिए कर लगाने वाली होगी। एक प्रस्तावित समाधान स्वचालित प्रश्न पुनर्लेखन प्रदान करना है,<ref name="curino-vldb-prima2008">{{cite conference | ||
| title=Managing and querying transaction-time databases under schema evolution | | title=Managing and querying transaction-time databases under schema evolution | ||
|author1=Hyun J. Moon |author2=Carlo A. Curino |author3=Alin Deutsch |author4=C.-Y. Hou |author5=Carlo Zaniolo |name-list-style=amp | conference= Very Large Data Base VLDB | |author1=Hyun J. Moon |author2=Carlo A. Curino |author3=Alin Deutsch |author4=C.-Y. Hou |author5=Carlo Zaniolo |name-list-style=amp | conference= Very Large Data Base VLDB | ||
Line 268: | Line 270: | ||
* [[पोस्टग्रेएसक्यूएल]] संस्करण 9.2 में देशी श्रेणीबद्ध डेटा प्रकार जोड़े गए हैं जो पीजीफाउंड्री अस्थायी योगदान विस्तार की सभी विशेषताओं को लागू करने में सक्षम हैं।<ref>{{cite web|last1=Paquier|first1=Michael|title=Postgres 9.2 highlight: range types |url=http://michael.otacoo.com/postgresql-2/postgres-9-2-highlight-range-types/ |date=1 November 2012 |archive-url=https://web.archive.org/web/20160423215529/http://michael.otacoo.com/postgresql-2/postgres-9-2-highlight-range-types/ |archive-date=2016-04-23 |work=Michael Paquier<!-- skip this, as name already in, change to website url, or not, as seems down..?--> - Open source developer based in Japan}}</ref><ref>{{cite web|last1=Katz|first1=Jonathan S.|title=Range Types: Your Life Will Never Be The Same|url=https://wiki.postgresql.org/images/7/73/Range-types-pgopen-2012.pdf|access-date=14 July 2014}}</ref> Postgreएसक्यूएल रेंज प्रकार कई देशी ऑपरेटरों और कार्यों द्वारा समर्थित हैं। | * [[पोस्टग्रेएसक्यूएल]] संस्करण 9.2 में देशी श्रेणीबद्ध डेटा प्रकार जोड़े गए हैं जो पीजीफाउंड्री अस्थायी योगदान विस्तार की सभी विशेषताओं को लागू करने में सक्षम हैं।<ref>{{cite web|last1=Paquier|first1=Michael|title=Postgres 9.2 highlight: range types |url=http://michael.otacoo.com/postgresql-2/postgres-9-2-highlight-range-types/ |date=1 November 2012 |archive-url=https://web.archive.org/web/20160423215529/http://michael.otacoo.com/postgresql-2/postgres-9-2-highlight-range-types/ |archive-date=2016-04-23 |work=Michael Paquier<!-- skip this, as name already in, change to website url, or not, as seems down..?--> - Open source developer based in Japan}}</ref><ref>{{cite web|last1=Katz|first1=Jonathan S.|title=Range Types: Your Life Will Never Be The Same|url=https://wiki.postgresql.org/images/7/73/Range-types-pgopen-2012.pdf|access-date=14 July 2014}}</ref> Postgreएसक्यूएल रेंज प्रकार कई देशी ऑपरेटरों और कार्यों द्वारा समर्थित हैं। | ||
* [[टेराडाटा]] दो उत्पाद प्रदान करता है। Teradata संस्करण 13.10 और Teradata#Teradata डेटाबेस 14 में Tएसक्यूएल2 पर आधारित अस्थायी विशेषताएँ हैं<ref>Al-Kateb, Mohammed et al. "[https://openproceedings.org/2013/conf/edbt/Al-KatebGCBCP13.pdf Temporal Query Processing in Teradata]". EDBT/ICDT ’13 March 18–22, 2013, Genoa, Italy</ref> डेटाबेस में बनाया गया। | * [[टेराडाटा]] दो उत्पाद प्रदान करता है। Teradata संस्करण 13.10 और Teradata#Teradata डेटाबेस 14 में Tएसक्यूएल2 पर आधारित अस्थायी विशेषताएँ हैं<ref>Al-Kateb, Mohammed et al. "[https://openproceedings.org/2013/conf/edbt/Al-KatebGCBCP13.pdf Temporal Query Processing in Teradata]". EDBT/ICDT ’13 March 18–22, 2013, Genoa, Italy</ref> डेटाबेस में बनाया गया। | ||
* [[IBM Db2]] संस्करण 10 में समय यात्रा | * [[IBM Db2]] संस्करण 10 में समय यात्रा प्रश्न नामक एक सुविधा जोड़ी गई है<ref name="DB2">{{cite web|title=A matter of time: Temporal data management in DB2 10 | ||
|last1=Saracco|first1=Cynthia M. | |last1=Saracco|first1=Cynthia M. | ||
|last2=Nicola|first2=Matthias | |last2=Nicola|first2=Matthias | ||
Line 279: | Line 281: | ||
* [[टर्मिनसडीबी]] एक पूरी तरह से चित्रित [[खुला स्रोत सॉफ्टवेयर]] [[ग्राफ डेटाबेस]] है जो मूल रूप से संस्करण नियंत्रण, समय-यात्रा प्रश्नों और भिन्न कार्यों का समर्थन करता है। इसमें [[डेल्टा एन्कोडिंग]] और [[संक्षिप्त डेटा संरचना]]ओं के आधार पर एक अपरिवर्तनीय परत वास्तुकला है।<ref>{{Cite web|title=terminusdb/terminusdb-server|url=https://github.com/terminusdb/terminusdb-server|access-date=2020-09-04|website=GitHub|language=en}}</ref> * [[MarkLogic]] ने संस्करण 8.0 में बिटअस्थायी डेटा समर्थन पेश किया। मान्य और यंत्र समय के लिए समय स्टैम्प JSON या XML दस्तावेज़ों में संग्रहित किए जाते हैं।<ref>{{cite web|last1=Bridgwater|first1=Adrian|title=Data Is Good, 'Bidirectionalized Bitemporal' Data Is Better|website=[[Forbes]] |url=https://www.forbes.com/sites/adrianbridgwater/2014/11/24/data-is-good-bidirectionalized-bitemporal-data-is-better/#5424ff9b567b |date=24 November 2014}}</ref> | * [[टर्मिनसडीबी]] एक पूरी तरह से चित्रित [[खुला स्रोत सॉफ्टवेयर]] [[ग्राफ डेटाबेस]] है जो मूल रूप से संस्करण नियंत्रण, समय-यात्रा प्रश्नों और भिन्न कार्यों का समर्थन करता है। इसमें [[डेल्टा एन्कोडिंग]] और [[संक्षिप्त डेटा संरचना]]ओं के आधार पर एक अपरिवर्तनीय परत वास्तुकला है।<ref>{{Cite web|title=terminusdb/terminusdb-server|url=https://github.com/terminusdb/terminusdb-server|access-date=2020-09-04|website=GitHub|language=en}}</ref> * [[MarkLogic]] ने संस्करण 8.0 में बिटअस्थायी डेटा समर्थन पेश किया। मान्य और यंत्र समय के लिए समय स्टैम्प JSON या XML दस्तावेज़ों में संग्रहित किए जाते हैं।<ref>{{cite web|last1=Bridgwater|first1=Adrian|title=Data Is Good, 'Bidirectionalized Bitemporal' Data Is Better|website=[[Forbes]] |url=https://www.forbes.com/sites/adrianbridgwater/2014/11/24/data-is-good-bidirectionalized-bitemporal-data-is-better/#5424ff9b567b |date=24 November 2014}}</ref> | ||
* [https://sirix.io सिरिक्सडीबी] स्लाइडिंग स्नैपशॉट कहे जाने वाले नए वर्ज़निंग एल्गोरिद्म की वजह से (वर्तमान में) एक्सएमएल- और जेएसओएन-दस्तावेज़ों के स्नैपशॉट को बाइनरी फ़ॉर्मैट में बहुत कुशलता से स्टोर करता है, जो रीड-/राइट-परफ़ॉर्मेंस को बैलेंस करता है और कभी भी क्रिएट नहीं करता चोटियाँ लिखो। समय-यात्रा प्रश्नों को मूल रूप से और साथ ही अलग-अलग कार्यों का समर्थन किया जाता है। | * [https://sirix.io सिरिक्सडीबी] स्लाइडिंग स्नैपशॉट कहे जाने वाले नए वर्ज़निंग एल्गोरिद्म की वजह से (वर्तमान में) एक्सएमएल- और जेएसओएन-दस्तावेज़ों के स्नैपशॉट को बाइनरी फ़ॉर्मैट में बहुत कुशलता से स्टोर करता है, जो रीड-/राइट-परफ़ॉर्मेंस को बैलेंस करता है और कभी भी क्रिएट नहीं करता चोटियाँ लिखो। समय-यात्रा प्रश्नों को मूल रूप से और साथ ही अलग-अलग कार्यों का समर्थन किया जाता है। | ||
* [https://github.com/juxt/xtdb XTDB] (पूर्व में Crux) अर्ध-अपरिवर्तनीय काफ्का लॉग से प्राप्त किए गए लेनदेन और दस्तावेज़ों पर पॉइंट-इन-समय बिटअस्थायी [[संगणक वैज्ञानिक]] | * [https://github.com/juxt/xtdb XTDB] (पूर्व में Crux) अर्ध-अपरिवर्तनीय काफ्का लॉग से प्राप्त किए गए लेनदेन और दस्तावेज़ों पर पॉइंट-इन-समय बिटअस्थायी [[संगणक वैज्ञानिक]] प्रश्न प्रदान करता है। किसी स्कीमा को परिभाषित करने की आवश्यकता के बिना एंटिटी-एट्रिब्यूट-वैल्यू मॉडल इंडेक्स बनाने के लिए दस्तावेज़ों को स्वचालित रूप से अनुक्रमित किया जाता है। लेन-देन संचालन प्रभावी मान्य समय निर्दिष्ट करते हैं। लेन-देन का समय काफ्का द्वारा निर्दिष्ट किया जाता है और लगातार पढ़ने के माध्यम से क्षैतिज मापनीयता को सक्षम करता है। | ||
* [https://github.com/RecallGraph/RecallGraph RecallGraph] एक पॉइंट-इन-समय, यूनिटेमोरल (लेन-देन का समय) ग्राफ डेटाबेस है, जो [[ArangoDB]] के शीर्ष पर बनाया गया है। यह ArangoDB के [https://www.arangodb.com/why-arangodb/foxx/ Foxx Microservice] सब-यंत्र पर चलता है। यह अपने इंटरफेस के कई हिस्सों में [[संस्करण नियंत्रण प्रणाली]]-जैसे सिमेंटिक्स को पेश करता है, और एक एटोमिकिटी (डेटाबेस यंत्र ) इवेंट ट्रैकर द्वारा समर्थित है। बिटअस्थायीिटी को इसके [https://github.com/RecallGraph/RecallGraph#Development-roadmap development roadmap] में एक आइटम के रूप में सूचीबद्ध किया गया है। | * [https://github.com/RecallGraph/RecallGraph RecallGraph] एक पॉइंट-इन-समय, यूनिटेमोरल (लेन-देन का समय) ग्राफ डेटाबेस है, जो [[ArangoDB]] के शीर्ष पर बनाया गया है। यह ArangoDB के [https://www.arangodb.com/why-arangodb/foxx/ Foxx Microservice] सब-यंत्र पर चलता है। यह अपने इंटरफेस के कई हिस्सों में [[संस्करण नियंत्रण प्रणाली]]-जैसे सिमेंटिक्स को पेश करता है, और एक एटोमिकिटी (डेटाबेस यंत्र ) इवेंट ट्रैकर द्वारा समर्थित है। बिटअस्थायीिटी को इसके [https://github.com/RecallGraph/RecallGraph#Development-roadmap development roadmap] में एक आइटम के रूप में सूचीबद्ध किया गया है। | ||
अस्थायी डेटाबेस [[डेटा संस्करण नियंत्रण]] के शुरुआती रूपों में से एक थे, और उन्होंने आधुनिक डेटा संस्करण प्रणालियों के विकास को प्रभावित किया।<ref>{{Cite arXiv |last1=Bhardwaj |first1=Anant |last2=Bhattacherjee |first2=Souvik |last3=Chavan |first3=Amit |last4=Deshpande |first4=Amol |last5=Elmore |first5=Aaron J. |last6=Madden |first6=Samuel |last7=Parameswaran |first7=Aditya G. |date=2014-09-02 |title=DataHub: Collaborative Data Science & Dataset Version Management at Scale |class=cs.DB |eprint=1409.0798 }}</ref> | अस्थायी डेटाबेस [[डेटा संस्करण नियंत्रण]] के शुरुआती रूपों में से एक थे, और उन्होंने आधुनिक डेटा संस्करण प्रणालियों के विकास को प्रभावित किया।<ref>{{Cite arXiv |last1=Bhardwaj |first1=Anant |last2=Bhattacherjee |first2=Souvik |last3=Chavan |first3=Amit |last4=Deshpande |first4=Amol |last5=Elmore |first5=Aaron J. |last6=Madden |first6=Samuel |last7=Parameswaran |first7=Aditya G. |date=2014-09-02 |title=DataHub: Collaborative Data Science & Dataset Version Management at Scale |class=cs.DB |eprint=1409.0798 }}</ref> |
Revision as of 19:12, 1 March 2023
एक अस्थायी डेटाबेस समय उदाहरण से संबंधित डेटा को संग्रहित करता है। यह अस्थायी डेटा प्रकार प्रदान करता है और अतीत, वर्तमान और भविष्य के समय से संबंधित जानकारी संग्रहित करता है अस्थायी डेटाबेस यूनी-अस्थायी, बाई-अस्थायी या ट्राई-अस्थायी हो सकते हैं।
अधिक विशेष रूप से अस्थायी पहलुओं में प्रायः वैध समय, लेन-देन का समय या निर्णय समय सम्मिलित होता है।
- मान्य समय वह समयावधि या घटना का समय है जिस पर वास्तविक दुनिया में कोई तथ्य सत्य होता है।
- लेन-देन का समय वह समय है जिस पर डेटाबेस में एक तथ्य दर्ज किया गया था।
- निर्णय का समय वह समय है जिस पर तथ्य के बारे में निर्णय लिया गया था।
यूनी-अस्थायी
एक यूनी-अस्थायी डेटाबेस में समय की एक धुरी होती है, या तो वैधता सीमा या यंत्र समय सीमा।
द्वि-अस्थायी
एक द्वि-अस्थायी डेटाबेस में समय के दो अक्ष होते हैं:
- वैध समय
- लेन-देन का समय या निर्णय का समय
त्रि-अस्थायी
एक त्रि-अस्थायी डेटाबेस में समय के तीन अक्ष होते हैं:
- वैध समय
- लेन-देन का समय
- निर्णय का समय
यह दृष्टिकोण अतिरिक्त जटिलताओं का परिचय देता है।
अस्थायी डेटाबेस वर्तमान डेटाबेस (वर्तमान में उपलब्ध डेटाबेस के साथ भ्रमित नहीं होने) के विपरीत हैं, जो केवल उन तथ्यों को संग्रहीत करते हैं जिन्हें वर्तमान समय में सत्य माना जाता है।
विशेषताएं
अस्थायी डेटाबेस निम्नलिखित सुविधाओं में से एक या अधिक प्रदान करके अस्थायी डेटा के प्रबंधन और अभिगम का समर्थन करते हैं:[1][2]
- एक समय अवधि डेटा प्रकार, जिसमें बिना किसी अंत के समय अवधि का प्रतिनिधित्व करने की क्षमता सम्मिलित है (अनंत या हमेशा के लिए)
- वैध और लेन-देन की समयावधि विशेषताओं और द्विकालिक संबंधों को परिभाषित करने की क्षमता
- यंत्र-रखरखाव लेन-देन समय
- गैर-अतिव्यापी अवधि बाधाओं सहित अस्थायी प्राथमिक कुंजियाँ
- गैर-अतिव्यापी विशिष्टता और संदर्भित अखंडता सहित अस्थायी बाधाएं
- स्वचालित विभाजन और समय अवधि के संयोजन के साथ अस्थायी अभिलेखों का अद्यतन और विलोपन
- वर्तमान समय में सामयिक प्रश्न, अतीत या भविष्य के समय बिंदु या अधिक अवधि
- एलन के अंतराल संबंधों के आधार पर अक्सर समय अवधि की पूछताछ के लिए भविष्यवाणी करता है
इतिहास
एसक्यूएल के विकास और वास्तविक जीवन के अनुप्रयोगों में इसके परिचारक के उपयोग के साथ डेटाबेस उपयोगकर्ताओं ने महसूस किया कि जब उन्होंने प्रमुख क्षेत्रों में दिनांक कॉलम जोड़े, तो कुछ समस्याएँ उत्पन्न हुईं। उदाहरण के लिए यदि किसी तालिका में प्राथमिक कुंजी और कुछ विशेषताएँ हैं, तो ऐतिहासिक परिवर्तनों का पता लगाने के लिए प्राथमिक कुंजी में दिनांक जोड़ने से अपेक्षा से अधिक पंक्तियाँ बन सकती हैं। जब पंक्तियों को इस तरह से पता किया जाता है, तो डिलीट को भी अलग तरीके से नियंत्रित किया जाना चाहिए। 1992 में इस बिषय को मान्यता दी गई थी लेकिन मानक डेटाबेस सिद्धांत अभी तक इस बिषय को हल करने के लिए नहीं था और न ही तत्कालीन नव-औपचारिक मानक था।
रिचर्ड टी. स्नोडग्रास ने 1992 में प्रस्तावित किया कि एसक्यूएल के अस्थायी विस्तार को अस्थायी डेटाबेस समुदाय द्वारा विकसित किया जाना चाहिए। इस प्रस्ताव के जवाब में, एसक्यूएल मानक (ANSI X3.135.-1992 और ISO/IEC 9075:1992) के 1992 संस्करण के विस्तार के लिए एक समिति का गठन किया गया था। वे आयाम जिन्हें टीएसक्यूएल2 के नाम से जाना जाता है। इस समिति द्वारा 1993 के दौरान विकसित किए गए थे।[3] 1993 के अंत में स्नोडग्रास ने इस कार्य को अमेरिकन राष्ट्रीय मानक के लिए डेटाबेस भाषा एसक्यूएल, ANSI तकनीकी समिति X3H2 (अब NCITS H2 के रूप में जाना जाता है) के लिए जिम्मेदार समूह को प्रस्तुत किया। प्रारंभिक भाषा विनिर्देश मार्च 1994 ACM SIGMOD अभिलेख में दिखाई दिया। उस विनिर्देशन की प्रतिक्रियाओं के आधार पर भाषा में परिवर्तन किए गए और टीएसक्यूएल2 भाषा विशिष्टता का निश्चित संस्करण सितंबर, 1994 में प्रकाशित हुआ[4]
टीएसक्यूएल2 के कुछ हिस्सों को नए एसक्यूएल मानक एसक्यूएल 1999 में सम्मिलित करने का प्रयास किया गया जिसे एसक्यूएल3 कहा जाता है। टीएसक्यूएल2 के भागों को एसक्यूएल3, ISO/IEC 9075-7 के एक नए अवमानक में सम्मिलित किया गय जिसे एसक्यूएल/अस्थायी कहा जाता है।[3]टीएसक्यूएल2 दृष्टिकोण की क्रिस डेट और ह्यूग डार्वेन द्वारा भारी आलोचना की गई थी।[5] अस्थायी समर्थन के लिए जिम्मेदार आईएसओ परियोजना को 2001 के अंत में रद्द कर दिया गया था।
दिसंबर 2011 तक, ISO/IEC 9075, डेटाबेस भाषा एसक्यूएल:2011 पार्ट 2: एसक्यूएल निर्माण में आवेदन-समय आवर्त सारणी (वैध समय सारणी), यंत्र -संस्करण सारणी (लेन-देन समय सारणी) और यंत्र को परिभाषित करने के लिए तालिका परिभाषाओं में खंड सम्मिलित हैं। -संस्करणित अनुप्रयोग-समयावधि सारणी (द्विशंखी सारणी)। टीएसक्यूएल2 प्रस्ताव और एसक्यूएल:2011 में अपनाए गए प्रस्ताव के बीच एक महत्वपूर्ण अंतर यह है कि एसक्यूएल:2011 उपचार में कोई छिपा हुआ कॉलम नहीं है न ही इसमें अंतराल के लिए एक नया डेटा प्रकार है; इसके बजाय दो दिनांक या समय स्टैम्प कॉलम को a का उपयोग करके एक साथ बांधा जा सकता है। एक अन्य अंतर विवादास्पद (उपसर्ग) कथन संशोधक का टीएसक्यूएल2 से अस्थायी विधेय के एक सेट के साथ प्रतिस्थापन है।[1]
अस्थायी डेटाबेस से संबंधित एसक्यूएल: 2011 मानक की अन्य विशेषताएं स्वचालित समय अवधि विभाजन, अस्थायी प्राथमिक कुंजी, अस्थायी संदर्भिक समग्रता, एलेन के अंतराल बीजगणित के साथ अस्थायी भिवष्यवाणी और समय-कटा हुआ और अनुक्रमित प्रश्न हैं।
उदाहरण
उदाहरण के लिए एक काल्पनिक व्यक्ति जॉन डो की निम्नलिखित संक्षिप्त जीवनी पर विचार करें:
- जॉन डो का जन्म 3 अप्रैल, 1975 को किड्स हॉस्पिटल ऑफ़ मेडिसिन काउंटी में जैक डो और जेन डो के पुत्र के रूप में हुआ था, जो स्मॉलविले में रहते थे। जैक डो ने 4 अप्रैल 1975 को स्मॉलविले सिटी हॉल में अपने पहले बच्चे के जन्म को गर्व से दर्ज किया। जॉन एक हर्षित लड़के के रूप में एक शानदार छात्र निकला और 1993 में सम्मान के साथ स्नातक हुआ। स्नातक होने के बाद वह बिगटाउन में अपने दम पर रहने चला गया। हालांकि 26 अगस्त 1994 को वे बाहर चले गए लेकिन वे आधिकारिक तौर पर पते के परिवर्तन को दर्ज करना भूल गए। मौसम के अंत में ही उनकी मां ने उन्हें याद दिलाया कि उन्हें पंजीकरण कराना होगा जो उन्होंने कुछ दिनों बाद 27 दिसंबर 1994 को किया। हालांकि जॉन का भविष्य उज्ज्वल था, लेकिन उनकी कहानी दुखद रूप से समाप्त हो गई। 1 अप्रैल 2001 को जॉन डो गलती से एक ट्रक से टकरा गया था। कोरोनर ने उसी दिन उसकी मृत्यु की तारीख की सूचना दी।
एक गैर-अस्थायी डेटाबेस का उपयोग
जॉन डो के जीवन को वर्तमान (गैर-अस्थायी) डेटाबेस में संग्रहीत करने के लिए हम एक तालिका का उपयोग करते हैं व्यक्ति (नाम, पता)
(सरल बनाने के लिए नाम को व्यक्ति की प्राथमिक कुंजी के रूप में परिभाषित किया गया है।)
जॉन के पिता ने आधिकारिक तौर पर 4 अप्रैल 1975 को उनके जन्म की सूचना दी। इस तिथि को स्मॉलविले के एक अधिकारी ने डेटाबेस में निम्नलिखित प्रविष्टि डाली(जॉन डो,स्मॉलविले)।
ध्यान दें कि दिनांक ही डेटाबेस में संग्रहीत नहीं है।
ग्रेजुएशन के बाद, जॉन बाहर चला जाता है, लेकिन अपना नया पता दर्ज करना भूल जाता है। डेटाबेस में जॉन की प्रविष्टि 27 दिसंबर, 1994 तक नहीं बदली जाती है, जब वह अंत में इसकी रिपोर्ट करता है। बिगटाउन का एक अधिकारी डेटाबेस में अपना पता अपडेट करता है। व्यक्ति तालिका में अब सम्मिलित है व्यक्ति(जॉन डो,बिगटाउन).
ध्यान दें कि स्मॉलविले में रहने वाले जॉन की जानकारी अधिलेखित कर दी गई है, इसलिए उस जानकारी को डेटाबेस से पुनर्प्राप्त करना अब संभव नहीं है। 28 दिसंबर 1994 को डेटाबेस तक पहुँचने वाले एक अधिकारी को बताया जाएगा कि जॉन बिगटाउन में रहता है।
अधिक तकनीकी रूप से यदि कोई डेटाबेस व्यवस्थापक 26 दिसंबर, 1994 को प्रश्न करता है तो परिणाम होगा । 2 दिन बाद उसी प्रश्न को चलाने के परिणामस्वरूप व्यक्ति से पता चुनें जहां नाम = 'जॉन डो'
स्मॉलविले
बिगटाउन
.
उनकी मृत्यु तक डेटाबेस बताता है कि वह बिगटाउन में रहते थे। 1 अप्रैल 2001 को कोरोनर डेटाबेस से जॉन डो प्रविष्टि को हटा देता है। इसके बाद उपरोक्त प्रश्न को चलाने से कोई परिणाम नहीं मिलेगा।
Date | Real world event | Database Action | What the database shows |
---|---|---|---|
April 3, 1975 | John is born | Nothing | There is no person called John Doe |
April 4, 1975 | John's father officially reports John's birth | Inserted:Person(John Doe, Smallville) | John Doe lives in Smallville |
August 26, 1994 | After graduation, John moves to Bigtown, but forgets to register his new address | Nothing | John Doe lives in Smallville |
December 26, 1994 | Nothing | Nothing | John Doe lives in Smallville |
December 27, 1994 | John registers his new address | Updated:Person(John Doe, Bigtown) | John Doe lives in Bigtown |
April 1, 2001 | John dies | Deleted:Person(John Doe) | There is no person called John Doe |
एकल अक्ष का उपयोग करना: वैध समय या लेन-देन का समय
मान्य समय वह समय होता है जिसके लिए वास्तविक दुनिया में कोई तथ्य सत्य होता है। एक वैध समय अवधि अतीत में हो सकती है, वर्तमान समय में हो सकती है, या भविष्य में हो सकती है।
उपरोक्त उदाहरण के लिए, मान्य समय रिकॉर्ड करने के लिए, व्यक्ति तालिका में दो क्षेत्र जोड़े गए हैं, मान्य-से और मान्य-टू। ये उस अवधि को निर्दिष्ट करते हैं जब किसी व्यक्ति का पता वास्तविक दुनिया में मान्य होता है।
4 अप्रैल 1975 को जॉन के पिता ने अपने बेटे के जन्म का रजिस्ट्रेशन कराया। एक अधिकारी तब डेटाबेस में एक नई प्रविष्टि डालता है जिसमें कहा गया है कि जॉन 3 अप्रैल से स्मॉलविले में रहता है। अधिकारी अभी तक यह नहीं जानता है कि जॉन दूसरी जगह जाएगा या नहीं, इसलिए मान्य-टू फ़ील्ड अनंत (∞) पर सेट है। डेटाबेस में प्रविष्टि है:
व्यक्ति (जॉन डो, स्मॉलविल, 3-अप्रैल-1975, ∞).
27 दिसंबर, 1994 को जॉन बिगटाउन में अपने नए पते की रिपोर्ट करता है, जहां वह 26 अगस्त, 1994 से रह रहा है। इस तथ्य को दर्ज करने के लिए एक नई डेटाबेस प्रविष्टि की गई है:
व्यक्ति (जॉन डो, बिगटाउन, 26-अगस्त-1994, ∞)।
मूल प्रविष्टि Person (John Doe, Smallville, 3-Apr-1975, ∞)
हटाया नहीं गया है, लेकिन वैलिड-टू विशेषता को यह दर्शाने के लिए अपडेट किया गया है कि अब यह ज्ञात है कि जॉन ने 26 अगस्त, 1994 को स्मॉलविले में रहना बंद कर दिया था।
डेटाबेस में अब जॉन डो के लिए दो प्रविष्टियाँ हैं
व्यक्ति (जॉन डो, स्मॉलविले, 3-अप्रैल-1975, 26-अगस्त-1994)। व्यक्ति (जॉन डो, बिगटाउन, 26-अगस्त-1994, ∞)।
जब जॉन की मृत्यु हो जाती है तो डेटाबेस में उसकी वर्तमान प्रविष्टि यह कहते हुए अपडेट की जाती है कि जॉन अब बिगटाउन में नहीं रहता है। डेटाबेस अब ऐसा दिखता है
व्यक्ति (जॉन डो, स्मॉलविले, 3-अप्रैल-1975, 26-अगस्त-1994)। व्यक्ति (जॉन डो, बिगटाउन, 26-अगस्त-1994, 1-अप्रैल-2001)।
दो अक्षों का उपयोग करना: वैध समय और लेन-देन का समय
लेन-देन का समय उस समय अवधि को रिकॉर्ड करता है जिसके दौरान एक डेटाबेस प्रविष्टि को सही माना जाता है। यह उन प्रश्नों को सक्षम करता है जो एक निश्चित समय पर डेटाबेस की स्थिति दिखाते हैं। लेन-देन की समय अवधि केवल अतीत में या वर्तमान समय तक ही हो सकती है। लेन-देन की समय सारिणी में, रिकॉर्ड कभी भी नष्ट नहीं होते हैं। केवल नए रिकॉर्ड डाले जा सकते हैं, और मौजूदा रिकॉर्ड को उनके लेन-देन के अंत समय को सेट करके अपडेट किया जा सकता है ताकि यह दिखाया जा सके कि वे अब चालू नहीं हैं।
उपरोक्त उदाहरण में लेन-देन के समय को सक्षम करने के लिए, व्यक्ति तालिका में दो और फ़ील्ड जोड़े गए हैं: लेन-देन-से और लेन-देन-टू। लेन-देन-से वह समय है जब लेन-देन किया गया था, और लेन-देन-टू वह समय है जब लेन-देन का अधिक्रमण किया गया था (जो कि अनंत हो सकता है यदि इसे अभी तक अधिक्रमित नहीं किया गया है)। यह तालिका को #द्विकालिक_संबंधों में बदल देता है।
क्या होता है यदि डेटाबेस में संग्रहीत व्यक्ति का पता गलत है? मान लीजिए कि किसी अधिकारी ने गलती से गलत पता या तारीख दर्ज कर दी? या, मान लीजिए कि उस व्यक्ति ने किसी कारणवश अपने पते के बारे में झूठ बोला। त्रुटि का पता चलने पर, अधिकारी रिकॉर्ड की गई जानकारी को सही करने के लिए डेटाबेस को अपडेट करते हैं।
उदाहरण के लिए, 1-जून-1995 से 3-सितंबर-2000 तक, जॉन डो बीची चले गए। लेकिन बीची के अत्यधिक निवास कर का भुगतान करने से बचने के लिए, उसने कभी भी अधिकारियों को इसकी सूचना नहीं दी। बाद में एक कर जांच के दौरान, 2-फरवरी-2001 को पता चला कि वह वास्तव में उन तारीखों के दौरान बीची में था। इस तथ्य को रिकॉर्ड करने के लिए, बिगटाउन में रहने वाले जॉन के बारे में मौजूदा प्रविष्टि को दो अलग-अलग रिकॉर्ड में विभाजित किया जाना चाहिए, और बीची में उनके निवास की रिकॉर्डिंग में एक नया रिकॉर्ड डाला जाना चाहिए। डेटाबेस तब निम्नानुसार दिखाई देगा:
व्यक्ति (जॉन डो, स्मॉलविले, 3-अप्रैल-1975, 26-अगस्त-1994)। व्यक्ति (जॉन डो, बिगटाउन, 26-अगस्त-1994, 1-जून-1995)। व्यक्ति (जॉन डो, बीची, 1-जून-1995, 3-सितंबर-2000)। व्यक्ति (जॉन डो, बिगटाउन, 3-सितंबर-2000, 1-अप्रैल-2001)।
हालाँकि, यह कोई रिकॉर्ड नहीं छोड़ता है कि डेटाबेस ने कभी दावा किया कि वह 1-जून-1995 से 3-सितंबर-2000 के दौरान बिगटाउन में रहता था। ऑडिटिंग के कारणों को जानना या अधिकारी की कर जांच में साक्ष्य के रूप में उपयोग करना महत्वपूर्ण हो सकता है। लेन-देन का समय इस बदलते ज्ञान को डेटाबेस में कैप्चर करने की अनुमति देता है, क्योंकि प्रविष्टियों को कभी भी सीधे संशोधित या हटाया नहीं जाता है। इसके बजाय, प्रत्येक प्रविष्टि रिकॉर्ड करती है कि इसे कब दर्ज किया गया था और कब इसका स्थान लिया गया था (या तार्किक रूप से हटा दिया गया था)। डेटाबेस सामग्री तब इस तरह दिखती है:
नाम, शहर, से मान्य, तक वैध, दर्ज, अधिक्रमित
व्यक्ति (जॉन डो, स्मॉलविले, 3-अप्रैल-1975, ∞, 4-अप्रैल-1975, 27-दिसंबर-1994)। व्यक्ति (जॉन डो, स्मॉलविले, 3-अप्रैल-1975, 26-अगस्त-1994, 27-दिसंबर-1994, ∞)। व्यक्ति (जॉन डो, बिगटाउन, 26-अगस्त-1994, ∞, 27-दिसंबर-1994, 2-फरवरी-2001)। व्यक्ति (जॉन डो, बिगटाउन, 26-अगस्त-1994, 1-जून-1995, 2-फ़रवरी-2001, ∞)। व्यक्ति (जॉन डो, बीची, 1-जून-1995, 3-सितंबर-2000, 2-फ़रवरी-2001, ∞)। व्यक्ति (जॉन डो, बिगटाउन, 3-सितंबर-2000, ∞, 2-फ़रवरी-2001, 1-अप्रैल-2001)। व्यक्ति (जॉन डो, बिगटाउन, 3-सितंबर-2000, 1-अप्रैल-2001, 1-अप्रैल-2001, ∞)।
डेटाबेस न केवल वास्तविक दुनिया में क्या हुआ, बल्कि यह भी रिकॉर्ड करता है कि अलग-अलग समय पर आधिकारिक तौर पर क्या दर्ज किया गया था।
तीन अक्षों का उपयोग करना: वैध समय, निर्णय समय और लेन-देन का समय
निर्णय समय उस समय को रिकॉर्ड करने के लिए लेन-देन की समय अवधि का एक विकल्प है जिस पर डेटाबेस प्रविष्टि को सही माना जा सकता है। यह उन प्रश्नों को सक्षम करता है जो एक निश्चित समय पर आधिकारिक तौर पर मान्यता प्राप्त तथ्यों को दिखाते हैं, भले ही उन तथ्यों को डेटाबेस में जमा करने में देरी हुई हो। निर्णय समय के लिए समर्थन पूरे इतिहास को संरक्षित करता है और अद्यतनों के दौरान सूचना के नुकसान को रोकता है।[6] निर्णय समय अवधि केवल अतीत में या लेन-देन के समय तक ही हो सकती है। लेन-देन समय सारणी की तरह, रिकॉर्ड कभी भी नष्ट नहीं होते हैं। केवल नए रिकॉर्ड डाले जा सकते हैं, और मौजूदा लोगों को यह दिखाने के लिए अपना निर्णय समाप्त समय निर्धारित करके अपडेट किया जाता है कि वे अब चालू नहीं हैं।
निर्णय समय को सक्षम करने के लिए, डेटाबेस तालिका में दो और फ़ील्ड जोड़े जाते हैं: निर्णय से और निर्णय से। डिसीजन फ्रॉम वह समय है जब एक निर्णय किया गया था, और डिसीजन-टू वह समय है जब निर्णय का अधिक्रमण किया गया था (जो अनंत हो सकता है यदि इसे अभी तक अधिक्रमण नहीं किया गया है)। लेन-देन के समय के साथ संयुक्त होने पर, यह तालिका को #ट्रिअस्थायी_संबंधों में बदल देता है।
1964 और 1976 के संयुक्त राज्य अमेरिका के राष्ट्रपति चुनावों के बीच हुई वास्तविक दुनिया की घटनाओं की सूची निम्नलिखित है:
Date | Decision Maker | Real world event |
---|---|---|
November 3, 1964 | Electoral College | Election of 1964 |
November 5, 1968 | Electoral College | Election of 1968 |
November 7, 1972 | Electoral College | Election of 1972 |
October 10, 1973 | Spiro Agnew | Agnew resigns |
October 12, 1973 | Richard Nixon | Nixon nominates Ford |
December 6, 1973 | Congress | Congress confirms Ford |
August 9, 1974 | Richard Nixon | Nixon resigns |
August 20, 1974 | Gerald Ford | Ford nominates Rockefeller |
December 19, 1974 | Congress | Congress confirms Rockefeller |
November 2, 1976 | Electoral College | Election of 1976 |
मान लीजिए कि निर्णय समय और डेटाबेस के लिए किए गए लेन-देन के समय के बीच लगातार 7 दिन की देरी है। फिर 1976 के चुनाव के बाद डेटाबेस सामग्री होगी:
अध्यक्ष, उपाध्यक्ष, मान्य से, मान्य तक, निर्णय से, निर्णय से, लेन-देन से, लेन-देन से --------------------------------------------------- --------------------------------------------------- --------------------------------------------- प्रशासन (लिंडन जॉनसन, ह्यूबर्ट हम्फ्री, 20-जनवरी-1965, 20-जनवरी-1969, 3-नवंबर-1964, ∞, 10-नवंबर-1964, ∞) प्रशासन (रिचर्ड निक्सन, स्पाइरो एग्न्यू, 20-जनवरी-1969, 20-जनवरी-1973, 5-नवंबर-1968, ∞, 12-नवंबर-1968, ∞) प्रशासन (रिचर्ड निक्सन, स्पाइरो एग्न्यू, 20-जनवरी-1973, 20-जनवरी-1977, 7-नवंबर-1972, ∞, 14-नवंबर-1972, 17-अक्टूबर-1973) प्रशासन (रिचर्ड निक्सन, स्पाइरो एग्न्यू, 20-जनवरी-1973, 20-जनवरी-1977, 7-नवंबर-1972, 10-अक्टूबर-1973, 17-अक्टूबर-1973, ∞) प्रशासन (रिचर्ड निक्सन, स्पाइरो एग्न्यू, 20-जनवरी-1973, 10-अक्टूबर-1973, 10-अक्टूबर-1973, ∞, 17-अक्टूबर-1973, ∞) प्रशासन (रिचर्ड निक्सन, (रिक्त), 10-अक्टूबर-1973, 20-जनवरी-1977, 10-अक्टूबर-1973, ∞, 17-अक्टूबर-1973, 13-दिसंबर-1973) प्रशासन (रिचर्ड निक्सन, गेराल्ड फोर्ड, ∞, 20-जनवरी-1977, 12-अक्टूबर-1973, ∞, 19-अक्टूबर-1973, 13-दिसंबर-1973) प्रशासन (रिचर्ड निक्सन, (रिक्त), 10-अक्टूबर-1973, 20-जनवरी-1977, 10-अक्टूबर-1973, 6-दिसंबर-1973, 13-दिसंबर-1973, ∞) प्रशासन (रिचर्ड निक्सन, (रिक्त), 10-अक्टूबर-1973, 6-दिसंबर-1973, 6-दिसंबर-1973, ∞, 13-दिसंबर-1973, ∞) प्रशासन (रिचर्ड निक्सन, गेराल्ड फोर्ड, ∞, 20-जनवरी-1977, 12-अक्टूबर-1973, 6-दिसंबर-1973, 13-दिसंबर-1973, ∞) प्रशासन (रिचर्ड निक्सन, जेराल्ड फोर्ड, 6-दिसंबर-1973, 20-जनवरी-1977, 6-दिसंबर-1973, ∞, 13-दिसंबर-1973, 15-अगस्त-1974) प्रशासन (रिचर्ड निक्सन, गेराल्ड फोर्ड, 6-दिसंबर-1973, 20-जनवरी-1977, 6-दिसंबर-1973, 8-अगस्त-1974, 15-अगस्त-1974, ∞) प्रशासन (रिचर्ड निक्सन, गेराल्ड फोर्ड, 6-दिसंबर-1973, 9-अगस्त-1974, 8-अगस्त-1974, ∞, 15-अगस्त-1974, ∞) प्रशासन (जेराल्ड फोर्ड, (रिक्त), 9-अगस्त-1974, 20-जनवरी-1977, 8-अगस्त-1974, ∞, 15-अगस्त-1974, 26-दिसंबर-1974) प्रशासन (जेराल्ड फोर्ड, नेल्सन रॉकफेलर, ∞, 20-जनवरी-1977, 20-अगस्त-1974, ∞, 27-अगस्त-1974, 26-दिसंबर-1974) प्रशासन (जेराल्ड फोर्ड, (रिक्त), 9-अगस्त-1974, 20-जनवरी-1977, 8-अगस्त-1974, 19-दिसंबर-1974, 26-दिसंबर-1974, ∞) प्रशासन (गेराल्ड फोर्ड, (रिक्त), 9-अगस्त-1974, 19-दिसंबर-1974, 19-दिसंबर-1974, ∞, 26-दिसंबर-1974, ∞) प्रशासन (जेराल्ड फोर्ड, नेल्सन रॉकफेलर, ∞, 20-जनवरी-1977, 20-अगस्त-1974, 19-दिसंबर-1974, 26-दिसंबर-1974, ∞) प्रशासन (जेराल्ड फोर्ड, नेल्सन रॉकफेलर, 19-दिसंबर-1974, 20-जनवरी-1977, 19-दिसंबर-1974, ∞, 26-दिसंबर-1974, ∞) प्रशासन (जिमी कार्टर, वाल्टर मोंडेल, 20-जनवरी-1977, 20-जनवरी-1981, 2-नवंबर-1976, ∞, 9-नवंबर-1976, ∞)
1-जनवरी-1977 के वैध समय के लिए अध्यक्ष और उपाध्यक्ष कौन होगा, इस प्रश्न पर विचार करें:
- 14-नवंबर-1972 के निर्णय समय और लेन-देन के समय का उपयोग करते समय निक्सन/एग्न्यू
- 17-अक्टूबर-1973 के निर्णय समय और लेन-देन के समय का उपयोग करते समय निक्सन/(रिक्त)
- 8-अगस्त-1974 के निर्णय समय और लेन-देन के समय का उपयोग करते समय निक्सन/फोर्ड
- फोर्ड/(खाली) 8-अगस्त-1974 के निर्णय समय और वर्तमान के लेनदेन समय का उपयोग करते समय
- फोर्ड/रॉकफेलर निर्णय समय और वर्तमान के लेनदेन समय का उपयोग करते समय
द्विअस्थायी मॉडलिंग
बिटअस्थायी मॉडलिंग में वैध और लेन-देन दोनों समय सम्मिलित होते हैं। यह ऐतिहासिक और रोलबैक दोनों जानकारी प्रदान करता है। ऐतिहासिक जानकारी (उदा.: जॉन 1992 में कहां रहते थे? ) मान्य समय द्वारा प्रदान की जाती है। रोलबैक (उदा.: 1992 में, डेटाबेस का मानना था कि जॉन कहां रहता था? ) लेन-देन के समय द्वारा प्रदान किया जाता है। इन उदाहरण प्रश्नों के उत्तर समान नहीं हो सकते हैं – डेटाबेस को 1992 से बदल दिया गया हो सकता है, जिससे प्रश्नज़ अलग-अलग परिणाम उत्पन्न करती हैं।
वैध समय और लेन-देन का समय एक ही तथ्य के लिए समान नहीं होना चाहिए। उदाहरण के लिए, 18वीं शताब्दी के बारे में डेटा संग्रहीत करने वाले एक अस्थायी डेटाबेस पर विचार करें। इन तथ्यों का वैध समय कहीं 1701 और 1800 के बीच है। लेन-देन का समय तब दिखाएगा जब तथ्यों को डेटाबेस में डाला गया था (उदाहरण के लिए, 21 जनवरी, 1998)।
स्कीमा विकास
एक चुनौतीपूर्ण मुद्दा विकसित डेटाबेस स्कीमा के तहत लेनदेन समय डेटाबेस में अस्थायी प्रश्नों का समर्थन है। पूर्ण अभिलेखीय गुणवत्ता प्राप्त करने के लिए डेटा को उस स्कीमा संस्करण के तहत संग्रहीत करना महत्वपूर्ण है जिसके तहत वे पहली बार दिखाई दिए थे। हालांकि, यहां तक कि एक विशेषता मूल्य के इतिहास को फिर से लिखने वाली सबसे सरल अस्थायी प्रश्न को प्रत्येक स्कीमा संस्करण के तहत मैन्युअल रूप से फिर से लिखने की आवश्यकता होगी, संभावित रूप से MediaWiki के मामले में सैकड़ों स्कीमा-विकास/index.php/Schema_Evolution_Benchmark। यह प्रक्रिया विशेष रूप से उपयोगकर्ताओं के लिए कर लगाने वाली होगी। एक प्रस्तावित समाधान स्वचालित प्रश्न पुनर्लेखन प्रदान करना है,[7][8] हालाँकि यह एसक्यूएल या समान मानकों का हिस्सा नहीं है।
स्कीमा विकास की जटिलताओं को कम करने के दृष्टिकोण हैं:
- अर्ध-संरचित डेटाबेस/Noएसक्यूएल डेटाबेस का उपयोग करने के लिए जो मॉडलिंग विशेषता डेटा की जटिलताओं को कम करता है लेकिन एकाधिक समय अक्षों को संभालने के लिए कोई सुविधा प्रदान नहीं करता है।[9]
- विशेषताओं के लिए अर्ध-संरचित डेटा और समय अक्षों के लिए संरचित डेटा दोनों को संग्रहीत करने में सक्षम डेटाबेस का उपयोग करने के लिए (जैसे, स्नोफ्लेक इंक, पोस्टग्रेएसक्यूएल)
उल्लेखनीय उत्पादों में कार्यान्वयन
निम्नलिखित कार्यान्वयन रिलेशनल डेटाबेस मैनेजमेंट यंत्र (RDBMS) में अस्थायी सुविधाएँ प्रदान करते हैं।
- मारियाडीबी संस्करण 10.3.4 ने एसक्यूएल: 2011 मानक के लिए यंत्र -वर्जन सारणी के रूप में समर्थन जोड़ा।[10]
- ओरेकल डाटाबेस – Oracle वर्कस्पेस मैनेजर Oracle डेटाबेस की एक विशेषता है जो एप्लिकेशन डेवलपर्स और DBAs को एक ही डेटाबेस में डेटा के वर्तमान, प्रस्तावित और ऐतिहासिक संस्करणों को प्रबंधित करने में सक्षम बनाता है।
- पोस्टग्रेएसक्यूएल संस्करण 9.2 में देशी श्रेणीबद्ध डेटा प्रकार जोड़े गए हैं जो पीजीफाउंड्री अस्थायी योगदान विस्तार की सभी विशेषताओं को लागू करने में सक्षम हैं।[11][12] Postgreएसक्यूएल रेंज प्रकार कई देशी ऑपरेटरों और कार्यों द्वारा समर्थित हैं।
- टेराडाटा दो उत्पाद प्रदान करता है। Teradata संस्करण 13.10 और Teradata#Teradata डेटाबेस 14 में Tएसक्यूएल2 पर आधारित अस्थायी विशेषताएँ हैं[13] डेटाबेस में बनाया गया।
- IBM Db2 संस्करण 10 में समय यात्रा प्रश्न नामक एक सुविधा जोड़ी गई है[2] जो एसक्यूएल:2011 मानक की अस्थायी क्षमताओं पर आधारित है।[1]
- माइक्रोसॉफ्ट एसक्यूएल सर्वर ने अस्थायी सारणी्स को एसक्यूएल सर्वर 2016 के लिए एक सुविधा के रूप में पेश किया। यह सुविधा माइक्रोसॉफ्ट के चैनल 9 वेब साइट पर एक वीडियो में वर्णित है।[14]
गैर-संबंधपरक, Noएसक्यूएल डेटाबेस प्रबंधन प्रणाली जो निम्नलिखित सहित अस्थायी सुविधाएँ प्रदान करती हैं:
- टर्मिनसडीबी एक पूरी तरह से चित्रित खुला स्रोत सॉफ्टवेयर ग्राफ डेटाबेस है जो मूल रूप से संस्करण नियंत्रण, समय-यात्रा प्रश्नों और भिन्न कार्यों का समर्थन करता है। इसमें डेल्टा एन्कोडिंग और संक्षिप्त डेटा संरचनाओं के आधार पर एक अपरिवर्तनीय परत वास्तुकला है।[15] * MarkLogic ने संस्करण 8.0 में बिटअस्थायी डेटा समर्थन पेश किया। मान्य और यंत्र समय के लिए समय स्टैम्प JSON या XML दस्तावेज़ों में संग्रहित किए जाते हैं।[16]
- सिरिक्सडीबी स्लाइडिंग स्नैपशॉट कहे जाने वाले नए वर्ज़निंग एल्गोरिद्म की वजह से (वर्तमान में) एक्सएमएल- और जेएसओएन-दस्तावेज़ों के स्नैपशॉट को बाइनरी फ़ॉर्मैट में बहुत कुशलता से स्टोर करता है, जो रीड-/राइट-परफ़ॉर्मेंस को बैलेंस करता है और कभी भी क्रिएट नहीं करता चोटियाँ लिखो। समय-यात्रा प्रश्नों को मूल रूप से और साथ ही अलग-अलग कार्यों का समर्थन किया जाता है।
- XTDB (पूर्व में Crux) अर्ध-अपरिवर्तनीय काफ्का लॉग से प्राप्त किए गए लेनदेन और दस्तावेज़ों पर पॉइंट-इन-समय बिटअस्थायी संगणक वैज्ञानिक प्रश्न प्रदान करता है। किसी स्कीमा को परिभाषित करने की आवश्यकता के बिना एंटिटी-एट्रिब्यूट-वैल्यू मॉडल इंडेक्स बनाने के लिए दस्तावेज़ों को स्वचालित रूप से अनुक्रमित किया जाता है। लेन-देन संचालन प्रभावी मान्य समय निर्दिष्ट करते हैं। लेन-देन का समय काफ्का द्वारा निर्दिष्ट किया जाता है और लगातार पढ़ने के माध्यम से क्षैतिज मापनीयता को सक्षम करता है।
- RecallGraph एक पॉइंट-इन-समय, यूनिटेमोरल (लेन-देन का समय) ग्राफ डेटाबेस है, जो ArangoDB के शीर्ष पर बनाया गया है। यह ArangoDB के Foxx Microservice सब-यंत्र पर चलता है। यह अपने इंटरफेस के कई हिस्सों में संस्करण नियंत्रण प्रणाली-जैसे सिमेंटिक्स को पेश करता है, और एक एटोमिकिटी (डेटाबेस यंत्र ) इवेंट ट्रैकर द्वारा समर्थित है। बिटअस्थायीिटी को इसके development roadmap में एक आइटम के रूप में सूचीबद्ध किया गया है।
अस्थायी डेटाबेस डेटा संस्करण नियंत्रण के शुरुआती रूपों में से एक थे, और उन्होंने आधुनिक डेटा संस्करण प्रणालियों के विकास को प्रभावित किया।[17]
विकल्प
अस्थायी संबंधों को मॉडल करने के लिए धीरे-धीरे बदलते आयामों का उपयोग किया जा सकता है।
अग्रिम पठन
- C.J. Date, Hugh Darwen, Nikos Lorentzos (2002). Temporal Data & the Relational Model, First Edition (The Morgan Kaufmann Series in Data Management Systems); Morgan Kaufmann; 1st edition; 422 pages. ISBN 1-55860-855-9.
- Joe Celko (2014). Joe Celko's SQL for Smarties: Advanced SQL Programming (The Morgan Kaufmann Series in Data Management); Morgan Kaufmann; 5th edition. ISBN 978-0-12-800761-7.—Chapters 12 and 35 in particular discuss temporal issues.
- Snodgrass, Richard T. (1999). "Developing Time-Oriented Database Applications in SQL " (PDF). (4.77 MiB) (Morgan Kaufmann Series in Data Management Systems); Morgan Kaufmann; 504 pages; ISBN 1-55860-436-7
यह भी देखें
संदर्भ
- ↑ 1.0 1.1 1.2 Kulkarni, Krishna, and Jan-Eike Michels. "Temporal features in SQL: 2011". ACM SIGMOD Record 41.3 (2012): 34-43.
- ↑ 2.0 2.1 Saracco, Cynthia M.; Nicola, Matthias; Gandhi, Lenisha (3 April 2012). "A matter of time: Temporal data management in DB2 10". IBM (in English). Archived from the original on 2012-10-25. Retrieved 2020-10-27.
- ↑ 3.0 3.1 Snodgrass, 1999, p. 9
- ↑ Richard T. Snodgrass. "TSQL2 Temporal Query Language". www.cs.arizona.edu. Computer Science Department of the University of Arizona. Retrieved 14 July 2009.
- ↑ Hugh Darwen, C.J. Date, “An overview and Analysis of Proposals Based on the TSQL2 Approach”, In Date on Database: Writings 2000-2006, C.J. Date, Apress, 2006, pp. 481-514
- ↑ Mario A. Nascimento, Margaret H. Eich, “Decision Time in Temporal Databases”, In Proceedings of the Second International Workshop on Temporal Representation and Reasoning, 1995, pp. 157-162
- ↑ Hyun J. Moon; Carlo A. Curino; Alin Deutsch; C.-Y. Hou & Carlo Zaniolo (2008). Managing and querying transaction-time databases under schema evolution. Very Large Data Base VLDB.
- ↑ Hyun J. Moon; Carlo A. Curino & Carlo Zaniolo (2010). Scalable Architecture and Query Optimization for Transaction-time DBs with Evolving Schemas. SIGMOD.
- ↑ Anthony B. Coates (2015). Why Banks Care About Bitemporality. MarkLogic World 2015.
- ↑ "System-Versioned Tables".
- ↑ Paquier, Michael (1 November 2012). "Postgres 9.2 highlight: range types". Michael Paquier - Open source developer based in Japan. Archived from the original on 2016-04-23.
- ↑ Katz, Jonathan S. "Range Types: Your Life Will Never Be The Same" (PDF). Retrieved 14 July 2014.
- ↑ Al-Kateb, Mohammed et al. "Temporal Query Processing in Teradata". EDBT/ICDT ’13 March 18–22, 2013, Genoa, Italy
- ↑ Temporal in SQL Server 2016 (in English), retrieved 2019-07-19
- ↑ "terminusdb/terminusdb-server". GitHub (in English). Retrieved 2020-09-04.
- ↑ Bridgwater, Adrian (24 November 2014). "Data Is Good, 'Bidirectionalized Bitemporal' Data Is Better". Forbes.
- ↑ Bhardwaj, Anant; Bhattacherjee, Souvik; Chavan, Amit; Deshpande, Amol; Elmore, Aaron J.; Madden, Samuel; Parameswaran, Aditya G. (2014-09-02). "DataHub: Collaborative Data Science & Dataset Version Management at Scale". arXiv:1409.0798 [cs.DB].
बाहरी संबंध
- "TimeCenter Home". TimeCenter (in English). University of Arizona Computer Science. Archived from the original on Feb 24, 2020.
- Temporal Relations in RDF
- Temporal Scope for RDF Triples
- IBM DB2 10 for z/OS
- Time and Time Again series of articles by Randy Weis and Tom Johnston
- Temporal Patterns by Martin Fowler
Lua error in Module:Navboxes at line 53: attempt to call local 'p' (a table value).
Lua error in Module:Navboxes at line 53: attempt to call local 'p' (a table value).