2009-10-04 17 views
11

यह यहाँ कहा गया है:एक अस्थायी डेटाबेस और ऐतिहासिक संग्रह डेटाबेस के बीच क्या अंतर है?

http://www.ibm.com/developerworks/web/library/wa-dbdsgn2.html

डीबी में हर तालिका एक इतिहास तालिका होनी चाहिए, प्राथमिक तालिका के पूरे इतिहास को प्रतिबिंबित। यदि प्राथमिक तालिका में प्रविष्टियां अपडेट की गई हैं, तो रिकॉर्ड की पुरानी सामग्री को अद्यतन करने से पहले इतिहास तालिका में पहली बार कॉपी किया गया है। में, प्राथमिक तालिका में हटाए गए रिकॉर्ड्स इतिहास तालिका में हटाए जाने से पहले प्राथमिक से हटाए गए हैं। इतिहास तालिकाओं में हमेशा का प्राथमिक प्राथमिक नाम है, लेकिन _Hist संलग्न है।

अस्थायी डीबी में यहां देखें temporal database modeling and normalisation जहां तक ​​मैं समझता हूं वहां एक अलग तालिका नहीं है।

तो मुझे दूसरी तालिका कब बनाना चाहिए या नहीं?

उत्तर

7

क्या रॉबर्ट सैद्धांतिक रूप से कहा - जोड़ने के लिए कुछ भी नहीं है।

व्यावहारिक रूप से, अस्थायी तालिका बनाम मुख्य + हिस्ट टेबल, अन्य अशुद्धताएं हैं।

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

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

+0

+1 अच्छा अवलोकन। –

+0

यदि एसओ पर केवल हर धागा हमेशा नागरिक था ... :) – DVK

6

इतिहास तालिका उपयोगकर्ताओं द्वारा प्राथमिक डेटाबेस रिकॉर्ड में किए गए (आमतौर पर गैर-अस्थायी) परिवर्तन का इतिहास प्रदान करती है। यह इतिहास प्रकृति में अभिलेखागार है (यानी कभी-कभी ऐतिहासिक उद्देश्यों के लिए उपयोग किया जाता है)। अस्थायी जानकारी (जब परिवर्तन किया गया था) प्रकृति में माध्यमिक है।

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

http://en.wikipedia.org/wiki/Temporal_database

+0

इसका मतलब है मानदंड पसंद डेटा प्रोसेसिंग पर निर्भर करता है? – programmernovice

+0

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

+0

+1। मैंने कुछ व्यावहारिक विचारों को फिर से जोड़ा: मेरे जवाब में प्रदर्शन। – DVK

1

उस डेवलपरवर्क लेख में बात की गई इतिहास तालिका एक सारणी है जिसमें डेटाबेस का इतिहास है (यानी वास्तविकता के बारे में हमारी मान्यताओं का इतिहास)।

उस अन्य धागे में आपने जिस तरह के इतिहास के बारे में पूछा वह हमारे (वर्तमान!) वास्तविकता के इतिहास के बारे में विश्वास।

अंतर देखें। दोनों सहमत हैं कि हकीकत के बारे में हमारी पिछली मान्यताओं वास्तव में सही हैं। और यह हमेशा 100% नहीं है।

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

अन्य सारणी का इतिहास रखने वाले टेबल्स ऑडिटिंग के उद्देश्यों को पूरा कर सकते हैं। वास्तविकता का इतिहास रखने वाले सारणी उस ऐतिहासिक जानकारी में रूचि रखने वाले किसी भी उपयोगकर्ता के उद्देश्य के अनुरूप हो सकती हैं।

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