Кіріспе

Деректер базаларында және мәмілелерді өңдеуде мәмілелерді орындау реті

Деректер базалары және мәмілелерді өңдеу (мәмілелерді басқару) салаларында жүйелік кесте (немесе тарих) – жүйеде іске қосылатын мәмілелер жиынтығындағы орындалулардың тізбегін сипаттайтын абстрактілік модель. Әдетте, бұл жүйеде бірге орындалатын транзакциялар жиынтығымен орындалатын, уақыт бойынша реттелген операциялардың (әрекеттердің) тізімі болып табылады. Егер кейбір операциялардың арасындағы уақыт реті жүйемен анықталмаса, ішінара рет қолданылады. Мұндай операциялардың мысалдары: оқу сұранысы, оқу, жазу, тоқтату, бекіту, құлып қою сұранысы, құлыптау және т.б. Көбінесе, операция түрлерінің тек бір бөлігі ғана кестеге енгізіледі. Кестелер – деректер базасының бір мезгілде жұмыс істеуін басқару теориясының негізгі ұғымдары. Іс жүзінде, көптеген жалпы мақсаттағы деректер базасы жүйелері қақтығысқа қабілетті серияландырылатын және қатаң қалпына келтірілетін кестелерді қолданады.

Іс-қимылдың ұзақтығы мен реті

Көбінесе деректер базасында бірмезгілділік басқаруды талдау үшін, операция атомдық деп модельделеді, ол уақыттың бір сәтінде орындалады, ұзақтығы болмайды. Нақты орындалатын операциялардың бәрінің де белгілі бір ұзақтығы болады. Кестедегі транзакциялардың операциялары бір-бірімен араласуы мүмкін (яғни, транзакциялар бірмезгілде орындалуы мүмкін), бірақ әрбір транзакция ішіндегі операциялардың уақыт реті өзгермейді. Егер кестедегі транзакциялардың операциялары араласса, онда кесте ішінара реттелген болады (яғни, кесте қақтығысты тізбектеуге болады, бірақ тізбекті емес). Егер кестедегі транзакциялардың операциялары араласпаса, онда кесте толық реттелген болады (яғни, кесте тізбекті).

Жоспар түрлері

Толық кесте – әрбір транзакциясы үшін тоқтату (немесе кері қайтару) немесе қабылдау (commit) әрекетін қамтитын кесте болып табылады. Транзакцияның соңғы әрекеті – қабылдау немесе тоқтату болады. Атомдылықты сақтау үшін, транзакция тоқтатылса, оның жасаған барлық әрекеттерін кері қайтару қажет.

Серияға қосуға болады

Кесте, егер оның нәтижесі сериялық кестеге тең болса, серияландырылатын болады. E кестесінде транзакциялардың әрекеттері орындалу реті D кестесінен өзгеше, бірақ соңында E кестесі D кестесімен бірдей нәтиже береді. +ET1T2T3R(X)R(Y)R(Z)W(X)W(Y)W(Z)Ком. Ком. Ком. Серияландыру дерек элементіндегі деректерді тұрақты күйде ұстау үшін қолданылады. Бұл бір мезгілде орындалатын транзакциялар кестесінің дұрыстығын анықтаудың басты шарты болып табылады, сондықтан ол барлық мақсатына арналған деректер базасы жүйелерінде қолдауға ие. Серияландырылмаған кестелер қате нәтижелер тудыруы мүмкін, бұл өте зиянды болуы мүмкін (мысалы, банктердегі қаржылық операциялармен жұмыс істегенде). Егер қолданба кейбір транзакциялар арасында нақты реттілік талап етсе, онда ол негізгі серияландыру механизмдеріне тәуелсіз түрде сақталады. Бұл механизмдер әдетте нақты реттілікке бейжай болады және осы транзакциялардың бірнеше сериялық ретіне сәйкес келетін болжамсыз ішінара реттілік тудырады.

Конфликтті сериялауға болатын

Кесте бір немесе бірнеше тізбекті кестелерге қақтығыс тең болса, оны қақтығыс сериялық деп атайды. Басқаша айтқанда, кесте қақтығыс сериялық болады, егер және тек қана оның басымдық графигі жасалған транзакцияларды ескергенде ациклді болса. Егер график жасалмаған транзакцияларды да қамтитын болса, онда жасалмаған транзакцияларды қамтитын циклдар қақтығыс сериялықты бұзбауы мүмкін. K кестесі <T1, T2> тізбекті кестесіне қақтығыс тең, бірақ <T2, T1> кестесіне тең емес. +KT1T2R(A)R(A)W(B)Ком. W(A)Ком. Қақтығыс сериялықты басымдық графигіндегі цикл ішіндегі кез келген транзакцияны қайта іске қосу арқылы немесе екі кезеңді құлыптауды, уақыт белгісінің ретін немесе сериялық оқшаулауды қолдану арқылы қамтамасыз етуге болады.

Қайта қалпына келтірілетін

Қайта қалпына келтірілетін кестеде транзакциялар тек олар оқыған өзгерістерді жасаған транзакциялар бекітілгеннен кейін ғана бекітіледі. Егер транзакция басқа транзакциядан алынған өзгерістерге сүйеніп оқылса, содан кейін бекітіліп, кейін тоқтатылса, кесте қалпына келтірілмейтін болады. Ком. АбортКом. Ком. АбортАборт. Бұл кестелерді қалпына келтіруге болады. F кестесі қалпына келтіріледі, себебі T1, T2-ден бұрын бекітіледі, бұл T2 оқыған мәнді дұрыс етеді. Содан кейін T2 өзі бекітіле алады. F2 кестесінде, егер T1 тоқтатылса, T2 да тоқтатылуы керек, себебі ол оқыған A мәні дұрыс емес. Екі жағдайда да деректер базасы тұрақты күйде қалады. J транзакциясы қалпына келтірілмейді, себебі T2, T1 алдында T1 жазған мәнді оқығанмен, соған дейін бекітілді. T1, T2 бекітілгеннен кейін тоқтағандықтан, T2 оқыған мән қате. Транзакция бекітілгеннен кейін кері қайтару мүмкін емес болғандықтан, кесте қалпына келтірілмейді.

Қатаң

Егер кез келген екі транзакция T1 және T2 үшін, T1 транзакциясының жазу операциясы T2 транзакциясының қақтығыс операциясынан (оқу немесе жазу) бұрын болса, онда T1 транзакциясының бекітілуі немесе тоқтатылуы T2 транзакциясының сол қақтығыс операциясынан бұрын болады. Кез келген қатаң кесте каскадтық емес, бірақ керісінше дұрыс емес. Қатаңдық деректер базасын ақаудан тиімді қалпына келтіруге мүмкіндік береді.