टेम्पोरल डेटाबेस

From Vigyanwiki
Revision as of 10:29, 21 February 2023 by alpha>PrateekNayak

एक अस्थायी डेटाबेस समय इंस्टेंसेस से संबंधित डेटा को संग्रहीत करता है। यह अस्थायी डेटा प्रकार प्रदान करता है और अतीत, वर्तमान और भविष्य के समय से संबंधित जानकारी संग्रहीत करता है।

अस्थायी डेटाबेस यूनी-अस्थायी, बाई-अस्थायी या ट्राई-अस्थायी हो सकते हैं।

अधिक विशेष रूप से लौकिक पहलुओं में प्रायः वैध समय, लेन-देन का समय या निर्णय समय सम्मिलित होता है।

  • मान्य समय वह समयावधि या घटना का समय है जिस पर वास्तविक दुनिया में कोई तथ्य सत्य होता है।
  • लेन-देन का समय वह समय है जिस पर डेटाबेस में एक तथ्य दर्ज किया गया था।
  • निर्णय का समय वह समय है जिस पर तथ्य के बारे में निर्णय लिया गया था।

यूनी-अस्थायी

एक यूनी-अस्थायी डेटाबेस में समय की एक धुरी होती है, या तो वैधता सीमा या यंत्र समय सीमा।

द्वि-अस्थायी

एक द्वि-अस्थायी डेटाबेस में समय के दो अक्ष होते हैं:

  • वैध समय
  • लेन-देन का समय या निर्णय का समय

त्रि-अस्थायी

एक त्रि-अस्थायी डेटाबेस में समय के तीन अक्ष होते हैं:

  • वैध समय
  • लेन-देन का समय
  • निर्णय का समय

यह दृष्टिकोण अतिरिक्त जटिलताओं का परिचय देता है।

अस्थायी डेटाबेस वर्तमान डेटाबेस (वर्तमान में उपलब्ध डेटाबेस के साथ भ्रमित नहीं होने) के विपरीत हैं, जो केवल उन तथ्यों को संग्रहीत करते हैं जिन्हें वर्तमान समय में सत्य माना जाता है।

विशेषताएं

अस्थायी डेटाबेस निम्नलिखित सुविधाओं में से एक या अधिक प्रदान करके अस्थायी डेटा के प्रबंधन और अभिगम का समर्थन करते हैं:[1][2]

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

इतिहास

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

रिचर्ड टी. स्नोडग्रास ने 1992 में प्रस्तावित किया कि SQL के अस्थायी विस्तार को अस्थायी डेटाबेस समुदाय द्वारा विकसित किया जाना चाहिए। इस प्रस्ताव के जवाब में, SQL मानक (ANSI X3.135.-1992 और ISO/IEC 9075:1992) के 1992 संस्करण के विस्तार के लिए एक समिति का गठन किया गया था; वे एक्सटेंशन, जिन्हें TSQL2 के नाम से जाना जाता है, इस समिति द्वारा 1993 के दौरान विकसित किए गए थे।[3] 1993 के अंत में, स्नोडग्रास ने इस कार्य को अमेरिकन नेशनल स्टैंडर्ड फॉर डेटाबेस लैंग्वेज SQL, ANSI तकनीकी समिति X3H2 (अब NCITS H2 के रूप में जाना जाता है) के लिए जिम्मेदार समूह को प्रस्तुत किया। प्रारंभिक भाषा विनिर्देश मार्च 1994 ACM SIGMOD रिकॉर्ड में दिखाई दिया। उस विनिर्देशन की प्रतिक्रियाओं के आधार पर, भाषा में परिवर्तन किए गए, और TSQL2 भाषा विशिष्टता का निश्चित संस्करण सितंबर, 1994 में प्रकाशित हुआ[4] TSQL2 के कुछ हिस्सों को नए SQL मानक SQL:1999 में सम्मिलित करने का प्रयास किया गया, जिसे SQL3 कहा जाता है। TSQL2 के भागों को SQL3, ISO/IEC 9075-7 के एक नए अवमानक में सम्मिलित किया गया, जिसे SQL/Temporal कहा जाता है।[3]TSQL2 दृष्टिकोण की क्रिस डेट और ह्यूग डार्वेन द्वारा भारी आलोचना की गई थी।[5] अस्थायी समर्थन के लिए जिम्मेदार आईएसओ परियोजना को 2001 के अंत में रद्द कर दिया गया था।

दिसंबर 2011 तक, ISO/IEC 9075, डेटाबेस लैंग्वेज SQL:2011 पार्ट 2: SQL/Foundation में एप्लिकेशन-समय पीरियड टेबल (वैध समय टेबल), यंत्र -वर्जन टेबल (लेन-देन समय टेबल) और यंत्र को परिभाषित करने के लिए तालिका परिभाषाओं में खंड सम्मिलित हैं। -संस्करणित अनुप्रयोग-समयावधि सारणी (द्विशंखी टेबल)। TSQL2 प्रस्ताव और SQL:2011 में अपनाए गए प्रस्ताव के बीच एक महत्वपूर्ण अंतर यह है कि SQL:2011 उपचार में कोई छिपा हुआ कॉलम नहीं है, न ही इसमें अंतराल के लिए एक नया डेटा प्रकार है; इसके बजाय दो दिनांक या समयस्टैम्प कॉलम को a का उपयोग करके एक साथ बांधा जा सकता है PERIOD FOR घोषणा। एक अन्य अंतर विवादास्पद (उपसर्ग) कथन संशोधक का TSQL2 से अस्थायी विधेय के एक सेट के साथ प्रतिस्थापन है।[1]

अस्थायी डेटाबेस से संबंधित एसक्यूएल: 2011 मानक की अन्य विशेषताएं स्वचालित समय अवधि विभाजन, अस्थायी प्राइमरी कीज़, अस्थायी रेफ़रेंशियल इंटीग्रिटी, एलेन के अंतराल बीजगणित के साथ अस्थायी प्रेडीकेट्स और समय-स्लाइस्ड और सीक्वेंस्ड क्वेश्चन हैं।

उदाहरण

उदाहरण के लिए, एक काल्पनिक व्यक्ति, जॉन डो की निम्नलिखित संक्षिप्त जीवनी पर विचार करें:

जॉन डो का जन्म 3 अप्रैल, 1975 को किड्स हॉस्पिटल ऑफ़ मेडिसिन काउंटी में, जैक डो और जेन डो के पुत्र के रूप में हुआ था, जो स्मॉलविले में रहते थे। जैक डो ने 4 अप्रैल, 1975 को स्मॉलविले सिटी हॉल में अपने पहले बच्चे के जन्म को गर्व से दर्ज किया। जॉन एक हर्षित लड़के के रूप में बड़ा हुआ, एक शानदार छात्र निकला और 1993 में सम्मान के साथ स्नातक हुआ। स्नातक होने के बाद, वह बिगटाउन में अपने दम पर रहने चला गया। हालांकि 26 अगस्त, 1994 को वे बाहर चले गए, लेकिन वे आधिकारिक तौर पर पते के परिवर्तन को दर्ज करना भूल गए। सीजन के अंत में ही उनकी मां ने उन्हें याद दिलाया कि उन्हें पंजीकरण कराना होगा, जो उन्होंने कुछ दिनों बाद 27 दिसंबर, 1994 को किया। हालांकि जॉन का भविष्य उज्ज्वल था, लेकिन उनकी कहानी दुखद रूप से समाप्त हो गई। 1 अप्रैल, 2001 को जॉन डो गलती से एक ट्रक से टकरा गया था। कोरोनर ने उसी दिन उसकी मृत्यु की तारीख की सूचना दी।

एक गैर-अस्थायी डेटाबेस का उपयोग

जॉन डो के जीवन को वर्तमान (गैर-अस्थायी) डेटाबेस में संग्रहीत करने के लिए हम एक तालिका का उपयोग करते हैं Person (Name, Address). (सरल बनाने के लिए नाम को व्यक्ति की प्राथमिक कुंजी के रूप में परिभाषित किया गया है।)

जॉन के पिता ने आधिकारिक तौर पर 4 अप्रैल, 1975 को उनके जन्म की सूचना दी। इस तिथि को स्मॉलविले के एक अधिकारी ने डेटाबेस में निम्नलिखित प्रविष्टि डाली: Person(John Doe, Smallville). ध्यान दें कि दिनांक ही डेटाबेस में संग्रहीत नहीं है।

ग्रेजुएशन के बाद, जॉन बाहर चला जाता है, लेकिन अपना नया पता दर्ज करना भूल जाता है। डेटाबेस में जॉन की प्रविष्टि 27 दिसंबर, 1994 तक नहीं बदली जाती है, जब वह अंत में इसकी रिपोर्ट करता है। बिगटाउन का एक अधिकारी डेटाबेस में अपना पता अपडेट करता है। व्यक्ति तालिका में अब सम्मिलित है Person(John Doe, Bigtown). ध्यान दें कि स्मॉलविले में रहने वाले जॉन की जानकारी अधिलेखित कर दी गई है, इसलिए उस जानकारी को डेटाबेस से पुनर्प्राप्त करना अब संभव नहीं है। 28 दिसंबर, 1994 को डेटाबेस तक पहुँचने वाले एक अधिकारी को बताया जाएगा कि जॉन बिगटाउन में रहता है। अधिक तकनीकी रूप से: यदि कोई डेटाबेस व्यवस्थापक क्वेरी चलाता है SELECT ADDRESS FROM PERSON WHERE NAME='John Doe' 26 दिसंबर 1994 को नतीजा होगा Smallville. 2 दिन बाद उसी क्वेरी को चलाने का परिणाम होगा Bigtown.

उनकी मृत्यु तक, डेटाबेस बताता है कि वह बिगटाउन में रहते थे। 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] हालाँकि यह SQL या समान मानकों का हिस्सा नहीं है।

स्कीमा विकास की जटिलताओं को कम करने के दृष्टिकोण हैं:

  • अर्ध-संरचित डेटाबेस/NoSQL डेटाबेस का उपयोग करने के लिए जो मॉडलिंग विशेषता डेटा की जटिलताओं को कम करता है लेकिन एकाधिक समय अक्षों को संभालने के लिए कोई सुविधा प्रदान नहीं करता है।[9]
  • विशेषताओं के लिए अर्ध-संरचित डेटा और समय अक्षों के लिए संरचित डेटा दोनों को संग्रहीत करने में सक्षम डेटाबेस का उपयोग करने के लिए (जैसे, स्नोफ्लेक इंक, पोस्टग्रेएसक्यूएल)

उल्लेखनीय उत्पादों में कार्यान्वयन

निम्नलिखित कार्यान्वयन रिलेशनल डेटाबेस मैनेजमेंट यंत्र (RDBMS) में अस्थायी सुविधाएँ प्रदान करते हैं।

  • मारियाडीबी संस्करण 10.3.4 ने एसक्यूएल: 2011 मानक के लिए यंत्र -वर्जन टेबल के रूप में समर्थन जोड़ा।[10]
  • ओरेकल डाटाबेस – Oracle वर्कस्पेस मैनेजर Oracle डेटाबेस की एक विशेषता है जो एप्लिकेशन डेवलपर्स और DBAs को एक ही डेटाबेस में डेटा के वर्तमान, प्रस्तावित और ऐतिहासिक संस्करणों को प्रबंधित करने में सक्षम बनाता है।
  • पोस्टग्रेएसक्यूएल संस्करण 9.2 में देशी श्रेणीबद्ध डेटा प्रकार जोड़े गए हैं जो पीजीफाउंड्री अस्थायी योगदान विस्तार की सभी विशेषताओं को लागू करने में सक्षम हैं।[11][12] PostgreSQL रेंज प्रकार कई देशी ऑपरेटरों और कार्यों द्वारा समर्थित हैं।
  • टेराडाटा दो उत्पाद प्रदान करता है। Teradata संस्करण 13.10 और Teradata#Teradata डेटाबेस 14 में TSQL2 पर आधारित अस्थायी विशेषताएँ हैं[13] डेटाबेस में बनाया गया।
  • IBM Db2 संस्करण 10 में समय यात्रा क्वेरी नामक एक सुविधा जोड़ी गई है[2] जो SQL:2011 मानक की अस्थायी क्षमताओं पर आधारित है।[1]
  • माइक्रोसॉफ्ट एसक्यूएल सर्वर ने अस्थायी टेबल्स को एसक्यूएल सर्वर 2016 के लिए एक सुविधा के रूप में पेश किया। यह सुविधा माइक्रोसॉफ्ट के चैनल 9 वेब साइट पर एक वीडियो में वर्णित है।[14]

गैर-संबंधपरक, NoSQL डेटाबेस प्रबंधन प्रणाली जो निम्नलिखित सहित अस्थायी सुविधाएँ प्रदान करती हैं:

  • टर्मिनसडीबी एक पूरी तरह से चित्रित खुला स्रोत सॉफ्टवेयर ग्राफ डेटाबेस है जो मूल रूप से संस्करण नियंत्रण, समय-यात्रा प्रश्नों और भिन्न कार्यों का समर्थन करता है। इसमें डेल्टा एन्कोडिंग और संक्षिप्त डेटा संरचनाओं के आधार पर एक अपरिवर्तनीय परत वास्तुकला है।[15] * MarkLogic ने संस्करण 8.0 में बिटअस्थायी डेटा समर्थन पेश किया। मान्य और यंत्र समय के लिए समय स्टैम्प JSON या XML दस्तावेज़ों में संग्रहित किए जाते हैं।[16]
  • सिरिक्सडीबी स्लाइडिंग स्नैपशॉट कहे जाने वाले नए वर्ज़निंग एल्गोरिद्म की वजह से (वर्तमान में) एक्सएमएल- और जेएसओएन-दस्तावेज़ों के स्नैपशॉट को बाइनरी फ़ॉर्मैट में बहुत कुशलता से स्टोर करता है, जो रीड-/राइट-परफ़ॉर्मेंस को बैलेंस करता है और कभी भी क्रिएट नहीं करता चोटियाँ लिखो। समय-यात्रा प्रश्नों को मूल रूप से और साथ ही अलग-अलग कार्यों का समर्थन किया जाता है।
  • XTDB (पूर्व में Crux) अर्ध-अपरिवर्तनीय काफ्का लॉग से प्राप्त किए गए लेनदेन और दस्तावेज़ों पर पॉइंट-इन-समय बिटअस्थायी संगणक वैज्ञानिक क्वेरी प्रदान करता है। किसी स्कीमा को परिभाषित करने की आवश्यकता के बिना एंटिटी-एट्रिब्यूट-वैल्यू मॉडल इंडेक्स बनाने के लिए दस्तावेज़ों को स्वचालित रूप से अनुक्रमित किया जाता है। लेन-देन संचालन प्रभावी मान्य समय निर्दिष्ट करते हैं। लेन-देन का समय काफ्का द्वारा निर्दिष्ट किया जाता है और लगातार पढ़ने के माध्यम से क्षैतिज मापनीयता को सक्षम करता है।
  • RecallGraph एक पॉइंट-इन-समय, यूनिटेमोरल (लेन-देन का समय) ग्राफ डेटाबेस है, जो ArangoDB के शीर्ष पर बनाया गया है। यह ArangoDB के Foxx Microservice सब-यंत्र पर चलता है। यह अपने इंटरफेस के कई हिस्सों में संस्करण नियंत्रण प्रणाली-जैसे सिमेंटिक्स को पेश करता है, और एक एटोमिकिटी (डेटाबेस यंत्र ) इवेंट ट्रैकर द्वारा समर्थित है। बिटअस्थायीिटी को इसके development roadmap में एक आइटम के रूप में सूचीबद्ध किया गया है।

अस्थायी डेटाबेस डेटा संस्करण नियंत्रण के शुरुआती रूपों में से एक थे, और उन्होंने आधुनिक डेटा संस्करण प्रणालियों के विकास को प्रभावित किया।[17]

विकल्प

धीरे-धीरे बदलते आयाम (SCD) मॉडल का उदाहरण
(देखने के लिए छवि पर क्लिक करें)

लौकिक संबंधों को मॉडल करने के लिए धीरे-धीरे बदलते आयामों का उपयोग किया जा सकता है।

अग्रिम पठन

  • 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. 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. 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. 3.0 3.1 Snodgrass, 1999, p. 9
  4. Richard T. Snodgrass. "TSQL2 Temporal Query Language". www.cs.arizona.edu. Computer Science Department of the University of Arizona. Retrieved 14 July 2009.
  5. 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
  6. 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
  7. 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.
  8. Hyun J. Moon; Carlo A. Curino & Carlo Zaniolo (2010). Scalable Architecture and Query Optimization for Transaction-time DBs with Evolving Schemas. SIGMOD.
  9. Anthony B. Coates (2015). Why Banks Care About Bitemporality. MarkLogic World 2015.
  10. "System-Versioned Tables".
  11. 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.
  12. Katz, Jonathan S. "Range Types: Your Life Will Never Be The Same" (PDF). Retrieved 14 July 2014.
  13. Al-Kateb, Mohammed et al. "Temporal Query Processing in Teradata". EDBT/ICDT ’13 March 18–22, 2013, Genoa, Italy
  14. Temporal in SQL Server 2016 (in English), retrieved 2019-07-19
  15. "terminusdb/terminusdb-server". GitHub (in English). Retrieved 2020-09-04.
  16. Bridgwater, Adrian (24 November 2014). "Data Is Good, 'Bidirectionalized Bitemporal' Data Is Better". Forbes.
  17. 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].


बाहरी संबंध

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).