Кіріспе
Деректер базасындағы бағдарламалық жасақтама үлгілерінің жиынтығы
Деректер базаларында өзгерістерді тіркеу (CDC) – өзгертілген деректерді пайдалану арқылы шара қолдану үшін өзгерген деректерді ("делталар") анықтау және қадағалау үшін қолданылатын бағдарламалық жасақтама үлгілерінің жиынтығы. Нәтижесінде дельтаға негізделген деректер жинағы пайда болады. CDC – корпоративтік дерек көздеріне енгізілген өзгерістерді анықтау, тіркеу және жеткізуге негізделген деректерді интеграциялау тәсілі. Мысалы, деректерді жүктеуді кезеңдік жаңарту үшін қолдануға болады. CDC көбінесе деректер қоймасы ортасында кездеседі, себебі уақыт өте келе деректердің күйін тіркеу және сақтау – деректер қоймасының басты функцияларының бірі, бірақ CDC кез келген деректер базасында немесе деректер сақтау жүйесінде қолданылуы мүмкін.
Әдістеме
Жүйе әзірлеушілер CDC механизмдерін түрлі жолдармен және жүйелік қабаттардың кез келген біреуінде немесе олардың комбинациясында, қолданба логикасынан физикалық жадқа дейін орнатуға болады. CDC-нің қарапайым түсінігінде, бір компьютерлік жүйеде бұрынғы уақыттан өзгерген деректер бар, ал екінші компьютерлік жүйе сол өзгерген деректерге сәйкес әрекет етуі керек. Алғашқысы – дерек көзі, екіншісі – мақсаты. Дерек көзі мен мақсаты физикалық тұрғыдан бір жүйе болуы мүмкін, бірақ бұл логикалық жобалау үлгісін өзгертпейді. Бір жүйеде бірнеше CDC шешімі болуы мүмкін.
Жолдардағы уақыт белгілері
Өзгерістерін тіркеу қажет кестелерде соңғы өзгеріс уақытын көрсететін баған болуы мүмкін. "Соңғы жаңарту", "Соңғы өңделген" сияқты атаулар жиі кездеседі. Кез келген кестедегі кез келген қатардағы уақыт белгісі, деректер соңғы рет тіркелген уақыттан кейінгі болса, ол өзгерген деп есептеледі. Қатарлардағы уақыт белгілері оптимистік құлыптау үшін де жиі қолданылады, сондықтан мұндай баған көбінесе қолжетімді болады.
Жолдардағы нұсқалар
Дерекқор дизайнерлері өзгерістерін тіркеу қажетті кестелерге нұсқа нөмірін қамтитын баған қосады. «НҰСҚА НӨМІРІ» сияқты атаулар жиі қолданылады. Бір техника – әр өзгертілген қатарды нұсқа нөмірімен белгілеу. Кесте үшін немесе мүмкін кестелер тобы үшін ағымдағы нұсқа сақталады. Бұл дерек анықтама кестесі сияқты қолдаушы құрылымда сақталады. Өзгерістерді тіркеу кезінде ең соңғы нұсқа нөмірі бар барлық дерек өзгерген деп есептеледі. Өзгерістерді тіркеу аяқталғаннан кейін анықтама кестесі жаңа нұсқа нөмірімен жаңартылады. (Бұл техниканы оптимистік құлыптау үшін қолданылатын қатар деңгейіндегі нұсқалаумен шатастырмаңыз. Оптимистік құлыптауда әр қатардың дербес нұсқа нөмірі болады, әдетте тізбектік санауыш. Бұл процеске бір қатарды атомдық түрде жаңартуға және басқа процесс санауышты өсірмеген жағдайда ғана санауышты арттыруға мүмкіндік береді. Бірақ CDC барлық өзгерістерді табу үшін қатар деңгейіндегі нұсқаларды пайдалана алмайды, егер ол әрбір қатардың бастапқы «бастапқы» нұсқасын білмесе. Мұндайды сақтау өте қиын.)
Жолдардағы күй-күй көрсеткіштері
Бұл техника уақыт белгілері мен нұсқалауды толықтыруға немесе күшейтуге болады. Мысалы, егер кесте қатарының күй бағаны орнатылса, ол қатар өзгергенін көрсетеді (мысалы, қатар өзгергенін көрсету үшін "true" мәніне орнатылған логикалық баған), онда ол балама ретінде конфигурациялануы мүмкін. Әйтпесе, бұл техника бұрынғы әдістерге қосымша бола алады, яғни қатар жаңа нұсқа нөміріне немесе кейінгі күшке ие болса да, мақсатта жаңартылмауы керек екенін көрсетеді (мысалы, деректерді қолмен тексеру қажет болуы мүмкін).
Жолдардағы уақыт/нұсқа/мемлекет
Бұл тәсіл бұрын талқыланған үш әдісті біріктіреді. Бір жүйеде бірнеше CDC шешімдерінің қолданылып жатыр дегені жиі кездеседі, бірақ уақыт, нұсқа және мәртебе комбинациясы ерекше қуатты механизмді ұсынады және бағдарламашылар оларды мүмкіндігінше бірге пайдалануы тиіс. Бұл үш элемент бір-бірін қайталай бермейді немесе қажетсіз емес. Оларды бірге қолдану мынадай логиканы жүзеге асыруға мүмкіндік береді: "2005 жылдың 6 маусымы мен 1 шілдесі аралығында өзгерген 2.1 нұсқасының барлық деректерін түсіру, егер мәртебе коды өндіріске дайын екенін көрсететін болса".
Қозғалыс факторлары
Күрделі салаларда көбінесе болатындай, CDC мәселесінің соңғы шешімі көптеген қарама-қарсы талаптарды ескере алуы керек.
Жарамсыз бастапқы жүйелер
Деректерді өзгертуді тіркеу күрделілігі артып, құндылығы төмендейді егер дереккөз жүйесі деректер өзгерилмеген жағдайда да метадеректерді сақтаса. Мысалы, кейбір дерек үлгілері деректерді қараған, бірақ өзгертпеген пайдаланушы туралы ақпаратты деректер құрылымымен бірдей түрде тіркеп отырады. Бұл деректерді өзгертуді тіркеу кезінде қате деректерге алып келеді.
Қысым мен тарту
Push: бастапқы процесс өз процесіндегі өзгерістердің көшірмесін жасайды және деректерді төменгі ағысқа жібереді. Төменгі ағыстағы процесс осы көшірмені пайдаланып, өзінің ішкі жиынтығын жасайды және оны келесі процесске жеткізеді. Pull: бастапқы дерек көзінен тікелей төмен ағындағы мақсат деректерді сұрап алуға арналған сұранысты дайындайды. Төменгі ағыстағы мақсат осы көшірмені келесі мақсатқа, түрткілеу моделіндегідей, жібереді.
Баламалар
Кейде баяу өзгеріп отыратын өлшем балама әдіс ретінде қолданылады. CDC және SCD екеуі де деректер жиынтығындағы өзгерістерді анықтауға мүмкіндік береді, сондықтан олар ұқсас. SCD-ның ең көп таралған түрлері – 1-түрлі (жаңа деректермен жабу), 2-түрлі (тарихи деректерді сақтау) немесе 3-түрлі (тек бұрынғы және ағымдағы мәндерді сақтау). Егер мақсатты жүйеде тарих қажет болса, SCD 2 пайдалы болуы мүмкін. CDC мақсатты жүйедегі деректерді жаңа деректермен жабады (SCD1-ге ұқсас), және тек өзгертілген деректер ғана мақсатқа жеткенде, яғни өзгерістерге негізделген дерек жиынтығы үшін өте қолайлы.