2010-04-27 22 views
12

मैंने सभी SO प्रश्न, कोडिंग डरावनी लेख पढ़े हैं, और मेरे दिमाग को नियंत्रण डेटा संशोधित करने के सर्वोत्तम तरीकों की खोज करने के लिए गुगल किया है। वे सभी काम करते हैं और उन सभी के पास उपयोग मामलों के आधार पर उनके उचित कार्यान्वयन होते हैं। मैं वास्तव में जानना चाहता हूं कि डेटा स्तर पर संशोधन के लिए मूल रूप से समर्थन करने के लिए डेटाबेस क्यों नहीं लिखा गया है?सभी मूल संशोधित डेटाबेस कहां हैं?

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

ब्रांचिंग ऐसा कुछ है जो डेटाबेस से अधिक स्कीमा के संबंध में डेटाबेस से बहुत लाभ उठा सकता है। चूंकि मैं वास्तव में केवल डेटा के बारे में परवाह करता हूं और इससे बड़े पैमाने पर कार्यान्वयन की कठिनाई में वृद्धि होगी, मैं सिर्फ टैग और काम करता हूं।

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

मैं वहाँ कहीं में एक सवाल है ...

उत्तर

3

एक देशी समाधान Oracle की Flashback Database (aka Total Recall) है। यह एंटरप्राइज़ संस्करण के लिए एक चार्ज करने योग्य अतिरिक्त है, लेकिन यह बहुत अच्छा है। जब तक हम इसे बनाए रखना चाहते हैं, तब तक यह डेटा के संस्करणों को पारदर्शी रूप से संग्रहीत करता है, और डेटा के पुराने संस्करणों को क्वेरी करने के लिए वाक्यविन्यास प्रदान करता है। इसे टेबल-दर-टेबल आधार पर सक्षम किया जा सकता है।

अनिवार्य रूप से फ्लैशबैक डीबी ट्रैकिंग टेबल में रिकॉर्ड स्टोर करने के लिए ट्रिगर्स का उपयोग करना है, लेकिन सामान्य काम करने के लिए चिकना, प्रदर्शन करने वाला और अदृश्य है।

0

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

बस एक फाइल सिस्टम में, सभी फाइलें संस्करण नियंत्रण के लिए उपयुक्त नहीं हैं, डेटाबेस में सभी पंक्तियां संस्करण नियंत्रण के लिए भी उपयुक्त नहीं होंगी।

+0

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

3

आप temporal databases पढ़ सकते हैं।

"Temporal Data & the Relational Model" दिनांक, डार्वेन और लोरेन्टज़ोस द्वारा लेखकों ने अस्थायी डेटा को ट्रैक करने में मुद्दों के लिए sixth normal form पेश किया है।

रिचर्ड स्नोडग्रास ने अस्थायी डेटा को संभालने के लिए एसक्यूएल के विस्तार के रूप में TSQL2 का प्रस्ताव दिया।

क्रियान्वयन में शामिल हैं:

+0

मुझे आश्चर्य है कि मैंने कभी इसके बारे में नहीं सुना है, लेकिन विकिपीडिया लेख के त्वरित पढ़ने से मैंने अपने सिर में जो कुछ देखा है, उसके बारे में बहुत ही आशाजनक लग रहा है। मैं कुछ भी तैयार उत्पादन की तलाश नहीं कर रहा हूं, बस कुछ के साथ हैक करने के लिए। –

+0

वाह - तो टीएसक्यूएल 2 9 0 का बच्चा था। प्री-विकिपीडिया दिन। मुझे लगता है कि इसे जागने की जरूरत है क्योंकि विचारों के उन बीजों के लिए मिट्टी इन दिनों थोड़ा अधिक उपजाऊ है। –

1

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

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