2009-04-28 21 views
44

मैं अस्थायी डेटाबेस के बारे में पढ़ रहा था और ऐसा लगता है कि उन्होंने समय के पहलुओं में बनाया है। मुझे आश्चर्य है कि हमें ऐसे मॉडल की आवश्यकता क्यों होगी?हमें एक अस्थायी डेटाबेस की आवश्यकता क्यों है?

सामान्य आरडीबीएमएस से यह कितना अलग है? क्या हमारे पास सामान्य डेटाबेस नहीं है यानी आरडीबीएमएस और कहें कि एक ट्रिगर है जो प्रत्येक लेनदेन के साथ एक टाइम स्टैंप को जोड़ता है? हो सकता है कि एक प्रदर्शन हिट होगा। लेकिन मैं अभी भी बाजार में एक मजबूत मामला वाले अस्थायी डेटाबेस पर संदेह कर रहा हूं।

वर्तमान डेटाबेस के किसी भी तरह के एक सुविधा का समर्थन करता है?

उत्तर

14

एक अस्थायी डेटाबेस कुशलता, डेटा की एक समय श्रृंखला संग्रहीत करता है आम तौर पर और फिर मापा डेटा में केवल परिवर्तन के संचय (जैसे सेकंड या उससे भी मिलीसेकेंड के रूप में) कुछ तय timescale होने से। आरडीबीएमएस में एक टाइमस्टैम्प प्रत्येक माप के लिए एक विघटित रूप से संग्रहीत मूल्य है, जो बहुत अक्षम है। एक अस्थायी डेटाबेस अक्सर एससीएडीए जैसे वास्तविक समय निगरानी अनुप्रयोगों में प्रयोग किया जाता है। ओएसआईएसओफ्ट (http://www.osisoft.com/) से पीआई डेटाबेस एक अच्छी तरह से स्थापित प्रणाली है।

+12

पीआई स्विंग गेट एल्गोरिदम का उपयोग करता है, और एक संपीड़न डेटाबेस माना जाता है, न कि एक अस्थायी डेटाबेस। अस्थायी डेटाबेस डेटा को देखने की क्षमता को संरक्षित करते हैं जैसा कि पहले देखा गया था, जबकि भविष्य में अतीत को अद्यतन करने की क्षमता को समायोजित करते हुए। वैध समय और वर्तमान समय का यह पृथक्करण पीआई में मौजूद नहीं है। पीआई आपको एक पुराना मान दिखाता है जो वास्तविक मूल्य से सांख्यिकीय रूप से भिन्न नहीं है, एक अस्थायी डेटाबेस आपको वास्तविक मूल्य दिखाएगा, जैसा कि पहले देखा गया था, और फिर वास्तविक मूल्य, जैसा कि अब ज्ञात है (2 अलग-अलग प्रश्न)। –

+0

@ एडविनबक - यह आधिकारिक लगता है, लेकिन आप कोई स्रोत उद्धृत नहीं करते हैं। – codekaizen

+1

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

1

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

मुझे इस के लिए एक छोटे से बजाय एक RDBMS एक जीआईएस विशेष डेटाबेस के साथ काम करने की तरह है। जबकि आप एक रन-ऑफ-द-मिल आरडीबीएमएस में निर्देशांक को फेंक सकते हैं, उचित प्रतिनिधित्व (उदा।, ग्रिड फाइलों के माध्यम से) तेजी से हो सकते हैं, और टोपोलॉजी जैसी चीजों के लिए एसक्यूएल प्राइमेटिव्स उपयोगी है।

शैक्षिक डेटाबेस और कुछ व्यावसायिक लोगों रहे हैं। टाइम सेंसर के कुछ लिंक हैं।

2

अलावा Wikipedia article पढ़ने से? एक डेटाबेस जो "ऑडिट लॉग" या समान लेनदेन लॉग को बनाए रखता है, में "अस्थायी" होने के कुछ गुण होंगे। अगर आपको के बारे में सवालों के जवाब की आवश्यकता है, तो किसने और के बाद क्या किया है, तो आपके पास एक अस्थायी डेटाबेस के लिए एक अच्छा उम्मीदवार है।

2

आप एक साधारण अस्थायी डेटाबेस की कल्पना कर सकते हैं जो हर कुछ सेकंड में बस आपके जीपीएस स्थान को लॉग करता है। इस डेटा को संपीड़ित करने के अवसर बहुत अच्छे हैं, एक सामान्य डेटाबेस जिसे आपको प्रत्येक पंक्ति के लिए टाइमस्टैम्प स्टोर करने की आवश्यकता होगी। यदि आपके पास आवश्यक थ्रूपुट का एक बड़ा सौदा है, तो डेटा को जानना अस्थायी है और एक पंक्ति में अद्यतन और हटाए जाने की आवश्यकता नहीं होगी, इस कार्यक्रम को एक सामान्य आरडीबीएमएस में बहुत सारी जटिलता विरासत को छोड़ने की अनुमति दी जाएगी।

इसके बावजूद, अस्थायी डेटा आमतौर पर सामान्य आरडीबीएमएस में संग्रहीत होता है। PostgreSQL, उदाहरण के लिए कुछ temporal extensions है, जो इसे थोड़ा आसान बनाता है।

9

जैसा कि मैं इसे समझता हूं (और अत्यधिक सरलीकृत), एक अस्थायी डेटाबेस डेटा के सत्यापन के साथ-साथ डेटा के बारे में तथ्यों को रिकॉर्ड करता है, और आपको अस्थायी पहलुओं पर पूछताछ करने की अनुमति देता है। आप 'वैध समय' और 'लेन-देन समय' सारणी, या 'बिटमपोरल टेबल' से निपटने के अंत में 'वैध समय' और 'लेनदेन समय' पहलुओं को शामिल करते हैं। आप इन दो पुस्तकों की या तो पढ़ने पर विचार करना चाहिए:

  • Darwen, दिनांक और Lorentzos "Temporal Data and the Relational Model" (प्रिंट से बाहर),
  • और "Developing Time-Oriented Database Applications in SQL", रिचर्ड T स्नॉडग्रास (एक बिल्कुल भिन्न चरम पर), मॉर्गन कौफमैन प्रकाशक, इंक, सैन फ्रांसिस्को, जुलाई, 1 999, 504 + xxiii पेज, आईएसबीएन 1-55860-436-7।वह प्रिंट से बाहर है लेकिन cs.arizona.edu पर अपनी वेबसाइट पर पीडीएफ के रूप में उपलब्ध है (इसलिए एक Google खोज इसे ढूंढना बहुत आसान बनाता है)।
+6

रिचर्ड टी। स्नोडग्रास अब पुस्तक को मुफ्त में दे रहे हैं http://www.cs.arizona.edu/people/rts/tdbbook.pdf –

+1

@AlexanderN: True - लेकिन मैंने जो URL उद्धृत किया है वह आपको एक पृष्ठ दिखाता है जो प्रमुख रूप से सूचीबद्ध करता है किताब (और सीडी-रोम, और पीपी 30-31 के लिए 'इरेटा') साथ ही साथ अन्य सामग्रियों की रुचि भी हो सकती है। –

1

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

इसलिए हमने नवीनतम पढ़ने (30 मिनट के लिए खपत की हमारी 'वर्तमान समझ') लेकिन खपत की हमारी ऐतिहासिक समझ पर वापस देख सकते थे। जब आपके पास डेटा प्राप्त होता है जिसे इस तरह से समायोजित किया जा सकता है जैसे अस्थायी डेटाबेस अच्छी तरह से काम करते हैं।

(करने के बाद कहा कि, हम इसे एसक्यूएल में नक्काशीदार हाथ है, लेकिन यह कुछ समय पहले एक उचित था कि निर्णय नहीं होगा इन दिनों।।)

2

दो कारण दिमाग में आते हैं:

  1. कुछ डालने के लिए अनुकूलित कर रहे हैं और केवल पढ़ सकते हैं और नाटकीय पर्फ़ सुधार की पेशकश कर सकते परंपरागत एसक्यूएल से समय की
  2. कुछ है बेहतर समझ - दूसरे, मिनट, घंटे के हिसाब से संचालन के समूहीकरण के लिए अनुमति देता है, आदि
62

अपनी नियुक्ति/पत्रिका डायरी पर विचार करें - यह 1 जनवरी से 31 दिसंबर तक जाता है। अब हम किसी भी दिन नियुक्तियों/जर्नल प्रविष्टियों के लिए डायरी से पूछ सकते हैं। इस आदेश को वैध समय कहा जाता है। हालांकि, नियुक्तियों/प्रविष्टियों को आमतौर पर क्रम में सम्मिलित नहीं किया जाता है।

मान लीजिए कि मैं जानना चाहता हूं कि 4 अप्रैल को मेरी डायरी में कौन सी अपॉइंटमेंट/प्रविष्टियां थीं। यही है, 4 अप्रैल को मेरी डायरी में मौजूद सभी रिकॉर्ड। यह लेनदेन समय है।

यह देखते हुए कि नियुक्तियों/प्रविष्टियों को बनाया और हटाया जा सकता है। एक विशिष्ट रिकॉर्ड में शुरुआत और अंत वैध समय होता है जो प्रविष्टि की अवधि और शुरुआत और अंत लेनदेन का समय शामिल करता है जो उस अवधि को इंगित करता है जिसमें प्रविष्टि दिखाई देती है डायरी।

यह व्यवस्था आवश्यक है जब डायरी ऐतिहासिक संशोधन से गुजर सकती है। मान लीजिए कि 5 अप्रैल को मुझे एहसास हुआ कि 14 फरवरी को मेरी नियुक्ति वास्तव में 12 फरवरी को हुई थी, यानी मुझे अपनी डायरी में एक त्रुटि मिली - मैं त्रुटि को सही कर सकता हूं ताकि वैध समय तस्वीर सही हो, लेकिन अब, मेरी पूछताछ क्या थी 4 अप्रैल को डायरी में गलत होगा, असल में, नियुक्तियों/प्रविष्टियों के लेनदेन के समय भी संग्रहीत किए जाते हैं। उस स्थिति में यदि मैं 4 अप्रैल के रूप में अपनी डायरी से पूछता हूं तो यह 14 फरवरी को एक नियुक्ति दिखाएगा, लेकिन अगर मैं 6 अप्रैल के रूप में पूछता हूं तो यह 12 फरवरी को नियुक्ति दिखाएगा।

इस बार एक अस्थायी डेटाबेस की यात्रा सुविधा डेटाबेस में त्रुटियों को कैसे ठीक किया जाता है, इस बारे में जानकारी रिकॉर्ड करना संभव बनाता है। डेटा की वास्तविक ऑडिट तस्वीर के लिए यह जरूरी है जो संशोधनों के दौरान रिकॉर्ड करता है और समय पर डेटा को संशोधित करने के तरीके से संबंधित प्रश्नों की अनुमति देता है।

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

PostgreSQL 9.0 बहिष्कार की कमी जैसे अस्थायी डेटा के आयोजन के नए तरीके प्रदान करना चाहिए लेन-देन और वैध समय PERIODs को एक ही टुपल के लिए ओवरलैप नहीं करना चाहिए।

+0

जीआईएसटी प्रकार सूचकांक संकेत बहुत अंतर्दृष्टिपूर्ण है –

6

टेम्पोरल डेटाबेस अक्सर वित्तीय सेवा उद्योग में किया जाता है। रिकॉर्ड पर ValidTo प्रकार क्षेत्रों में जब एक रिकार्ड सही था एक संकेत प्रदान करने के लिए उपयोग किया जाता है - एक कारण यह है कि आप शायद ही कभी (यदि कभी) किसी भी डेटा को हटाने के लिए अनुमति दी है, तो ValidFrom है।

+2

क्या कोई विशिष्ट व्यावसायिक अस्थायी डीबी वित्तीय सेवाओं में लोकप्रिय है? – user77115

+0

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

2

बस एक अद्यतन, टेम्पोरल डेटाबेस SQL ​​सर्वर में आ रहा है 2016

अपने सभी संदेहों को क्यों एक एक अस्थायी डेटाबेस की जरूरत है, न कि कस्टम तरीकों के साथ विन्यस्त करने की तुलना में, और कैसे कुशलतापूर्वक & मूल एसक्यूएल सर्वर के लिए यह कॉन्फ़िगर साफ़ करने के लिए वर्तमान में CTP2 (बीटा 2) रिहाई एसक्यूएल सर्वर 2016 के आप इसके साथ खेल सकते हैं के साथ https://msdn.microsoft.com/en-us/library/dn935015(v=sql.130).aspx

: यदि आप यहाँ Channel9.msdn पर गहराई से वीडियो और डेमो की जाँच करें: https://channel9.msdn.com/Shows/Data-Exposed/Temporal-in-SQL-Server-2016

MSDN लिंक। कैसे इसके अलावा "नया क्या बातें मैं इसके साथ क्या कर सकते हैं" एसक्यूएल सर्वर 2016

2

में अस्थायी तालिकाओं का उपयोग करने पर

चेक this video, यह विचार करने के लिए उपयोगी हो सकता है "क्या पुरानी बातों एकजुट करती है?"। अस्थायी डेटाबेस "सामान्य" SQL डेटाबेस के एक विशेष सामान्यीकरण का प्रतिनिधित्व करता है। इस प्रकार, यह आपको उन समस्याओं के लिए एक एकीकृत समाधान दे सकता है जो पहले असंबंधित दिखाई दिए थे। उदाहरण के लिए:

  • वेब कन्करेंसी अपने डेटाबेस एक वेब UI एकाधिक उपयोगकर्ताओं मानक बनाएं/अपडेट करें/हटाएं (CRUD) संशोधनों प्रदर्शन देता है कि है, तो आपको concurrent web changes problem सामना करना पड़ता है। असल में, आपको यह जांचना होगा कि आने वाला डेटा संशोधन उस रिकॉर्ड को प्रभावित नहीं कर रहा है जो उस उपयोगकर्ता ने आखिरी बार उन रिकॉर्ड्स को देखा था। लेकिन अगर आप एक अस्थायी डेटाबेस है, यह बहुत संभव है पहले से ही प्रत्येक रिकॉर्ड से एक "संशोधन आईडी" की तरह कुछ (timestamps अद्वितीय बनाने और होगा- आरोही की कठिनाई के कारण) एकत्रित करती है। यदि ऐसा है, तो यह डेटाबेस अद्यतनों के दौरान अन्य उपयोगकर्ताओं के डेटा के clobbering को रोकने के लिए प्राकृतिक, "पहले से ही अंतर्निहित" तंत्र बन जाता है।
  • कानूनी/कर रिकॉर्ड्स (कर सहित) ऐतिहासिक डेटा की तुलना में सबसे प्रोग्रामर कर पर स्थानों बल्कि अधिक जोर कानूनी प्रणाली। इस प्रकार, आप अक्सर चालान के लिए advice स्कीमा के बारे में खोजने के लिए और इस तरह है कि एक प्राकृतिक तरीके में रिकॉर्ड या सामान्य को हटाने के प्रति सतर्क रहने में चेतावनी देता है जाएगा - में असमर्थता का कारण बन सकता है जैसे "उनके वर्तमान पते को भूल जाओ बुनियादी कानूनी सवालों के जवाब देने हैं जो, किया जो पता आप इस चालान को 2001 में मेल करते हैं? " एक अस्थायी रूपरेखा आधार के साथ, उन समस्याओं के लिए सभी मशीनें (वे आम तौर पर एक अस्थायी डेटाबेस रखने के लिए आधे रास्ते हैं) चले जाओ। आप केवल सबसे प्राकृतिक स्कीमा का उपयोग करते हैं, और इसे समझते समय हटाते हैं, यह जानकर कि आप हमेशा वापस जा सकते हैं और ऐतिहासिक प्रश्नों का सही जवाब दे सकते हैं।

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

साधारण विलय सुविधा के साथ सरल शाखाकरण कुछ सामान्य वर्कफ़्लो समस्याओं को भी सरल बना सकता है। उदाहरण के लिए, एक गैर-लाभकारी स्वयंसेवक या कम वेतन वाले कर्मचारी डेटा प्रविष्टि कर सकते हैं। प्रत्येक कार्यकर्ता को अपनी शाखा देकर पर्यवेक्षक को अपने काम की समीक्षा करने या इसे बढ़ाने के लिए इसे आसान बनाना आसान हो सकता है (उदाहरण के लिए, डी-डुप्लिकेशन) इसे मुख्य शाखा में विलय करने से पहले जहां यह "सामान्य" उपयोगकर्ताओं के लिए दृश्यमान हो जाएगा। शाखाएं अनुमतियों को भी सरल बना सकती हैं। यदि किसी उपयोगकर्ता को केवल अपनी अनूठी शाखा का उपयोग करने/देखने की अनुमति दी जाती है, तो आपको हर संभावित अवांछित संशोधन को रोकने के बारे में चिंता करने की ज़रूरत नहीं है; आप केवल उन बदलावों को मर्ज करेंगे जो वैसे भी समझ में आते हैं।

संबंधित मुद्दे