ОқУ-Әдістемелік кешен қарағанды 2012 Құрастырған


Транзакциялар және тосқауылдар. Транзакция және тосқауыл қою түсінігі. Транзакцияларды басқару. Транзакция түрлері. Тосқауылды басқару



бет23/52
Дата26.01.2023
өлшемі0,93 Mb.
#63105
түріПрограмма
1   ...   19   20   21   22   23   24   25   26   ...   52
Байланысты:
MS SQL-де программалау

14 Транзакциялар және тосқауылдар. Транзакция және тосқауыл қою түсінігі. Транзакцияларды басқару. Транзакция түрлері. Тосқауылды басқару
Транзакция концепциясы – кез-келген клиент/сервер деректер қорынын ажырамас бөлігі. Транзакция ішкі деректер қорына әсер ететін деректерді манипуляциялайтын операторлардың бір ізділігі түсініледі (оқу, жою, қою, модификация), мүмкін болатын екі нәтиженің біреуіне әкеледі: егер барлық операторлар дұрыс болса, бір ізділік орындалады, егер бір оператор сәтті аяқталмаса, онда транзакция шегінеді. Транзакцияны өңдеу деректер қорындағы ақпарат тұтастығына кепілдік береді. Осылайша, транзакция деректер қорын бір тұтастық жағдайынан басқаға аударады.
Транзакция дегеніміз – бүтін ретінде қарастырылатын SQL-инструкцияларының тізімі. Транзакцияға кіретін инструкциялар бір-бірімен байланысқан іс-әрекеттер орындайды. Әр инструкция жалпы міндеттің бір бөлігін орындайды, бірақ ол бөліктің де шешімін тауып, барлық инструкцияларды орындау керек.
Транзакция механизмін қолдау – ДҚБЖ-ң жетілген деңгейінің көрсеткіші. Транзакцияны қолдау деректер қорының тұтастығын қамтамасыз етудің негізі болып табылады. Сондай-ақ, транзакция көпқолданушылық жүйелерде жекеленудің негізін құрайды, мұнда бір деректер қорымен параллель бірнеше қолданушылар немесе қолданбалы программалар жұмыс істей алады. ДҚБЖ-ның негізгі міндеттерінің бірі – жекешеленуді қамтамасыз ету, яғни әрбір қолданушыға деректер қоры тек соған рұқсат етілгендей көрсетілетін функциялану тәртібін құру. Мұндай міндетті ДҚБЖ-де транзакция параллельдігі деп атайды.
ДҚ мазмұнын өзгертетін транзакция ұғымының бағдарлама үшін маңызы үлкен, себебі транзакция оның тұтастығын қамтамасыз етеді. Реляциялық ДҚ транзакциялар келесі ережеге бағынады: транзакцияға енетін инструкциялар бөлінбейтін бүтін болып саналады. Барлық инструкциялар сәтті аяқталған болады немесе біреу сияқты ешқайсысы орындалмауы керек.
Тосқауылдар қою. Кішірек транзакцияны қолдану кезінде жұмыстың тиімділігін көтеру, транзакция орындалу кезінде сервер деректерге тосқауыл қоюмен байланысты.
Тосқауыл қою деп - кейбір деректерді өңдеу операциясы орындалуына уақытша шектеме қою. Тосқауыл кестенің жеке жолына сияқты, барлық деректер қорына қойылады. Серверде тосқауылды басқарумен тосқауыл менеджері айналысады, ол оның қолдауын және дауды шешуді бақылайды. Транзакция және тосқауыл өзара тығыз байланысты. Транзакция ACID талабын орындалуын қамтамасыз ету үшін деректерге тосқауыл қояды. Тосқауылды қолданбаса бірнеше транзакция бір деректі өзгертуші еді.
Тосқауыл қою параллель процесстарды басқаратын әдіс, онда деректер қорының объектісі транзакциясыз түрін өзгертпейді, яғни объектінің болжамдалған өзгерісінен, басқа транзакциялар жағынан объектіге рұқсатқа тосқауыл қойылады. Тосқауыл қоюдың екі түрі бар:

  • жазба тосқауылы – кестедегі жолдарға транзакция басқа транзакцияның сұранысы осы жолдарға қабылданбайтындай тосқауыл қояды;

  • оқу тосқауылы – басқа транзакциядан жолдар жазбасына тосқауылға сұраныс қабылданбайтындай транзакция жолдарға тосқауыл қояды, ал оқу тосқауылына - қабылдайды.

ДҚБЖ-де параллельдік проблемаларданқұтылуды көрсететін деректерге рұқсат протоколы қолданылады. Оның мәні келесіде:

  • транзакция, кестедегі деректер жолына әрекет нәтижесі оны алуы, осы жол оқуына тосқауыл қоюға тиіс болып табылады;

  • транзакция, деректер жолына өзгеріс салуға арналған, оған жазба тосқауылын жүктейді;

  • егер жолға сұранатын тосқауыл бар тосқауылға орай қабылданбаса, онда транзакция тосқауыл алынғанша күту тәртібіне ауысады;

  • жазбаға тосқауылы транзакция аяғына дейін орындалғанша сақталады.

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

  • алғашқы мәніне негізделіп бірнеше қолданушылар бір жолды өзгерткенде соңғы өзгерту проблемасы туындайды, онда деректердің бір бөлігі жоғалтылады, себебі, әрбір келесі транзакция алғашқысы жасаған өзгерістерді қайта жазады. Бұл жағдайдан өзгерісті тізбектей енгізіп шығуға болады;

  • егер қолданушы логикалық дұрыс күй қабылдамас бұрын келгенше көптеген деректер өзгерісіне талап ететін деректерді өңдеудің күрделі операцияларын орындаса, «лас» оқу проблемасы мүмкін болады. Егер деректерді өзгертуде басқа қолданушы оны оқыса, онда ол логикалық дұрыс емес ақпарат алады. Мұндай проблеманы болдырмауда деректерді барлық өзгерістерден кейін оқу қажет;

  • қайталанбайтын оқу проблемасы транзакциямен бір деректерді бірнеше рет қайталап оқу салдары болады. Бірінші транзакцияның орындалуында басқасы деректерге өзгеріс енгізе алады, сондықтан қайталап оқуда бірінші транзакция басқа деректер тобын алады, ол оның тұтастығын бұзады немесе логикалық келіспеушілікке әкеледі;

  • елестерді оқу проблемасы бір транзакция деректерді кестеден таңдағаннан кейн, ал басқасы бірінші біткенше жолды қосқанда немесе жойғанда пайда болады. Кестеден таңдалған мәндер жаңылыс болады.

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

  • 0 деңгейі – деректердің «ластануына» тыйым салу. Бұл деңгей деректерді тек бір транзакция өзгерте алатындығын талап етті; егер басқа транзакциямен сол деректерді өзгерту қажет болса, онда ол бірінші транзакция біткенін күту қажет;

  • 1 деңгейі – «лас» оқуға тыйым салу. Егер транзакция деректерді өзгерте бастаса, онда басқа ешқандай транзакция біріншісі бітпей оны оқи алмайды;

  • 2 деңгейі – қайталанбайтын оқуға тыйым салу. Егер транзакция деректерді оқыса, онда басқа ешқандай транзакция оны өзгерте алмайды. Сонымен, қайталап оқу кезінде олар бастапқы күйде болады;

3 деңгейі – елестерге тыйым салу. Егер транзакция деректерге қараса, онда басқа ешқандай транзакция орындалу кезінде оқылатын бар жолдарды жоя алмайды және жаңа жолды қоса алмайды. Осы тосқауыл қою деңгейін жүзеге асыру кілттер диапазонына тосқауыл қою жолымен орындалады. Мұндай тосқауыл қою нақты кесте жолдарына емес, логикалық шартты қанағаттандыратын жолдарға жүктеледі.

Негізгі әдебиеттер: 1-5


Қосымша әдебиеттер: 6-17


15 SQL және деректер қорының қауіпсіздігі. Деректерді қорғау принциптері. Қолданушыларды басқару. Деректерге қатынауды басқару. Деректер қоры объектілеріне рұқсат құқығын жүзеге асыру
Жүйе қауіпсіздігін жүзеге асыруға ДҚБЖ жауапты. SQL тілі реляциялық ДҚБЖ қауіпсіздік жүйесінің іргетасы болып табылады: деректер қорындағы ақпаратты қорғау жүйесіне қойылатын талаптар SQL инструкциясының көмегімен құрылады. SQL-де деректерді қорғаумен негізгі үш концепция байланысқан:

  • Қолданушылар деректер қорындағы негізгі жұмыс істейтіндер болып табылады. ДҚБЖ деректерді алғанда, қойғанда, жойғанда немесе өңдегенде әр уақытта қандай да бір қолданушы атынан жасайды. ДҚБЖ талап еткен әрекетті қай қолданушы сұрайтынына байланысты қабылдайды немесе орындамайды.

  • Деректер қорының объектілері қорғанысы SQL көмегімен жүзеге асатын элементтер болып табылады. Әдетте, ұсыну және кесте қорғанысы қамтамасыз етіледі, бірақ басқа объектілер: формалар, қолданбалы программалар және толық деректер қоры қорғанысқа алынады. Көптеген қолданушыларға деректер қорының бір объектісін қолдануға рұқсат етіледі және басқаларын қолдануға тыйым салынады.

Артықшылықтар – бұл қолданушының деректер қорындағы анықталған объектіге кейбір әрекет ету құқығы. Қолданушыға кейбір кестеден жолдарды алуға және оларды оған қосуға рұқсат етіледі, бірақ бұл кесте жолын жоюға немесе жаңартуға тыйым салынады. Басқа қолданушыда артықшылықтың басқа жиынтығы болуы мүмкін.


Достарыңызбен бөлісу:
1   ...   19   20   21   22   23   24   25   26   ...   52




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет