алады. ДҚБЖ-ның негізгі міндеттерінің бірі – жекешеленуді қамтамасыз ету, яғни əрбір
қолданушыға деректер қоры тек соған рұқсат етілгендей көрсетілетін функциялану тəртібін
құру. Мұндай міндетті ДҚБЖ-де транзакция параллельдігі деп атайды.
ДҚ мазмұнын өзгертетін транзакция ұғымының бағдарлама үшін маңызы үлкен, себебі
транзакция оның тұтастығын қамтамасыз етеді. Реляциялық ДҚ транзакциялар келесі ережеге
бағынады: транзакцияға енетін инструкциялар бөлінбейтін бүтін болып саналады. Барлық
инструкциялар сəтті аяқталған болады немесе біреу сияқты ешқайсысы орындалмауы керек.
Тосқауылдар қою. Кішірек транзакцияны қолдану кезінде жұмыстың тиімділігін көтеру,
транзакция орындалу кезінде сервер деректерге тосқауыл қоюмен байланысты.
Тосқауыл қою деп - кейбір деректерді өңдеу операциясы орындалуына уақытша шектеме
қою. Тосқауыл кестенің жеке жолына сияқты, барлық деректер қорына қойылады. Серверде
тосқауылды басқарумен тосқауыл менеджері айналысады, ол оның қолдауын жəне дауды
шешуді бақылайды. Транзакция жəне тосқауыл өзара тығыз байланысты. Транзакция ACID
талабын орындалуын қамтамасыз ету үшін деректерге тосқауыл қояды. Тосқауылды
қолданбаса бірнеше транзакция бір деректі өзгертуші еді.
Тосқауыл қою параллель процесстарды басқаратын əдіс, онда деректер қорының объектісі
транзакциясыз түрін өзгертпейді, яғни объектінің болжамдалған өзгерісінен, басқа
транзакциялар жағынан объектіге рұқсатқа тосқауыл қойылады. Тосқауыл қоюдың екі түрі бар:
• жазба тосқауылы – кестедегі жолдарға транзакция басқа транзакцияның сұранысы осы
жолдарға қабылданбайтындай тосқауыл қояды;
• оқу тосқауылы – басқа транзакциядан жолдар жазбасына тосқауылға сұраныс
қабылданбайтындай транзакция жолдарға тосқауыл қояды, ал оқу тосқауылына -
қабылдайды.
• ДҚБЖ-де параллельдік проблемаларданқұтылуды көрсететін деректерге рұқсат
протоколы қолданылады. Оның мəні келесіде:
• транзакция, кестедегі деректер жолына əрекет нəтижесі оны алуы, осы жол оқуына
тосқауыл қоюға тиіс болып табылады;
• транзакция, деректер жолына өзгеріс салуға арналған, оған жазба тосқауылын жүктейді;
• егер жолға сұранатын тосқауыл бар тосқауылға орай қабылданбаса, онда транзакция
тосқауыл алынғанша күту тəртібіне ауысады;
• жазбаға тосқауылы транзакция аяғына дейін орындалғанша сақталады.
Деректер қорын параллель өңдеу проблемасының шешімі - кесте жолдарына тосқауыл
қою, ал осы жол түрін өзгертетін келесі транзакциялар қабылданбайды жəне күту тəрбіне
ауыстырылады. Деректер қорының тұтастығын сақтау қасиетіне байланысты транзакция
қолданушылардың жекешеленуіне сай бірлігі болып табылады. Егер деректер қорымен əрбір
өзара əрекет сеансы транзакциямен жүзеге асырылса, онда қолданушы келісілген күйіне
сүйенеді, яғни қолданушы онымен жалғыз жұмыс істесе де сол күйде орындалады.
1. Транзакция дегенді қалай түсінесің, оның қасиеттері қандай?
2. Тосқауыл қою дегеніміз не? Қандай типтері бар?
3. Транзакциялар мен тосқауылдар қоюды басқару қалай жүргізіледі?
4. Изоляция деңгейлерін атап бер.
Сұрақтар:
Əдебиеттер:3]
275 бет. қ[1]
50-52 бет.
2 кредит сағат.
Тақырыбы:
Транзакциялар жəне тосқауылдар.
Дəріс мазмұны:
1. Транзакциялар жəне тосқауылдар.
2. Транзакцияларды басқару.
Тосқауыл қою деп - кейбір деректерді өңдеу операциясы орындалуына уақытша шектеме
қою. Тосқауыл кестенің жеке жолына сияқты, барлық деректер қорына қойылады. Серверде
тосқауылды басқарумен тосқауыл менеджері айналысады, ол оның қолдауын жəне дауды
шешуді бақылайды. Транзакция жəне тосқауыл өзара тығыз байланысты. Транзакция ACID
талабын орындалуын қамтамасыз ету үшін деректерге тосқауыл қояды. Тосқауылды
қолданбаса бірнеше транзакция бір деректі өзгертуші еді.
Тосқауыл қою параллель процесстарды басқаратын əдіс, онда деректер қорының объектісі
транзакциясыз түрін өзгертпейді, яғни объектінің болжамдалған өзгерісінен, басқа
транзакциялар жағынан объектіге рұқсатқа тосқауыл қойылады. Тосқауыл қоюдың екі түрі бар:
• жазба тосқауылы – кестедегі жолдарға транзакция басқа транзакцияның сұранысы осы
жолдарға қабылданбайтындай тосқауыл қояды;
• оқу тосқауылы – басқа транзакциядан жолдар жазбасына тосқауылға сұраныс
қабылданбайтындай транзакция жолдарға тосқауыл қояды, ал оқу тосқауылына -
қабылдайды.
• ДҚБЖ-де параллельдік проблемаларданқұтылуды көрсететін деректерге рұқсат
протоколы қолданылады. Оның мəні келесіде:
• транзакция, кестедегі деректер жолына əрекет нəтижесі оны алуы, осы жол оқуына
тосқауыл қоюға тиіс болып табылады;
• транзакция, деректер жолына өзгеріс салуға арналған, оған жазба тосқауылын жүктейді;
• егер жолға сұранатын тосқауыл бар тосқауылға орай қабылданбаса, онда транзакция
тосқауыл алынғанша күту тəртібіне ауысады;
• жазбаға тосқауылы транзакция аяғына дейін орындалғанша сақталады.
Деректер қорын параллель өңдеу проблемасының шешімі - кесте жолдарына тосқауыл
қою, ал осы жол түрін өзгертетін келесі транзакциялар қабылданбайды жəне күту тəрбіне
ауыстырылады. Деректер қорының тұтастығын сақтау қасиетіне байланысты транзакция
қолданушылардың жекешеленуіне сай бірлігі болып табылады. Егер деректер қорымен əрбір
өзара əрекет сеансы транзакциямен жүзеге асырылса, онда қолданушы келісілген күйіне
сүйенеді, яғни қолданушы онымен жалғыз жұмыс істесе де сол күйде орындалады.
Егер деректер қоры жүйесін басқаруда тосқауыл қою механизмі жүзеге аспаса, бірнеше
қолданушымен бір деректерді оқу жəне өзгерту кезінде келесі проблемалар бір уақытта
туындайды:
• алғашқы мəніне негізделіп бірнеше қолданушылар бір жолды өзгерткенде соңғы өзгерту
проблемасы туындайды, онда деректердің бір бөлігі жоғалтылады, себебі, əрбір келесі
транзакция алғашқысы жасаған өзгерістерді қайта жазады. Бұл жағдайдан өзгерісті
тізбектей енгізіп шығуға болады;
• егер қолданушы логикалық дұрыс күй қабылдамас бұрын келгенше көптеген деректер
өзгерісіне талап ететін деректерді өңдеудің күрделі операцияларын орындаса, «лас» оқу
проблемасы мүмкін болады. Егер деректерді өзгертуде басқа қолданушы оны оқыса, онда
ол логикалық дұрыс емес ақпарат алады. Мұндай проблеманы болдырмауда деректерді
барлық өзгерістерден кейін оқу қажет;
• қайталанбайтын оқу проблемасы транзакциямен бір деректерді бірнеше рет қайталап оқу
салдары болады. Бірінші транзакцияның орындалуында басқасы деректерге өзгеріс енгізе
алады, сондықтан қайталап оқуда бірінші транзакция басқа деректер тобын алады, ол оның
тұтастығын бұзады немесе логикалық келіспеушілікке əкеледі;
• елестерді оқу проблемасы бір транзакция деректерді кестеден таңдағаннан кейн, ал басқасы
бірінші біткенше жолды қосқанда немесе жойғанда пайда болады. Кестеден таңдалған
мəндер жаңылыс болады.
Аталған проблемаларды шешу үшін арнайы өңделген стандартта тосқауылдың төрт
деңгейі анықталған. Транзакцияның жекешелену деңгейі басқа транзакциялар ағымды
транзакциямен өзгертілген деректерге өзгерістер енгізе ала ма, оған қоса ағымды транзакция
конкурентті транзакциялармен жасалған өзгерістерді көре ала ма, жəне керісінше
болатындығын анықтайды. Əрбір келесі деңгей алғашқының талабын қолдайды жəне қосымша
шектеулер жүктейді:
• 0 деңгейі – деректердің «ластануына» тыйым салу. Бұл деңгей деректерді тек бір
транзакция өзгерте алатындығын талап етті; егер басқа транзакциямен сол деректерді
өзгерту қажет болса, онда ол бірінші транзакция біткенін күту қажет;
• 1 деңгейі – «лас» оқуға тыйым салу. Егер транзакция деректерді өзгерте бастаса, онда басқа
ешқандай транзакция біріншісі бітпей оны оқи алмайды;
Достарыңызбен бөлісу: |