Транзакциялар және құлыпталу

Транзакциялар және құлыпталу.

Орындаған: Қусманов А.Қ АУ-301 Тексерген: Мухаметов Е.М.

1. Транзакция – бұл Transact-SQL командасының

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

1. атомарность – транзакцияға қосылған командалар блогы тек тұтастай ғана орындалады немесе орындалмайды; 2. келісім – транзакция орындалып болғаннан кейін, барлық мәліметтер келісім қалпында болу керек; 3. шектеу – орындалып жатқан транзакцияның мәліметтерін өзгерту басқа транзакциялардың өзгеруіне қатысты болмайды, яғни әр түрлі өзгерістегі транзакцияларға шектеу қойылады. Транзакция мәліметтерді жұмысты бастамас бұрын қарайды немесе жұмыс аяқталғаннансоң көреді. Бір транзакция басқа транзакцияның өзгерткен мәліметін көрмейді. 4. Тұрақтылық - транзакция аяқталғаннан кейін, жүйеде сақталынады және оны қайтадан қалыпқа келтіре алмайсың.

 Құлыпталу (блокировка) – бұл уақытша жанама

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

 . Транзакциялармен басқару  SQL Server үш басқару транзакцияларымен қамтылады: анық, автоматты           

және ұқсас. Анық транзакциялар қолданушылардың транзакцияның басы мен аяғын анық көрсеткенін қажет етеді. Transact SQL командасын орындау арқылы. Анық транзакцияларды басқару мына командалар түрінде қолданылады: BEGIN TRAN[SACTION] [<транзакция аты>] @ <ауыстыру аты> <транзакция аты> деген жерде транзакция аты қолданылады, <ауыстыру аты> ауыстыру атын береді. Бір код қолдана отырып бірнеше транзакцияны жасауға болады. COMMIT [WORK] COMMIT [TRAN[SACTION] [<транзакция аты >] @ <ауыстыру аты> Транзакцияның аяғы, егер транзакция денесінде қате болмаса, онда ол команда барлық өзгерістерді серверге тіркейді. Транзакцияда істелінген барлық жұмыстар оның журналында сақталады. ROLLBACK [WORK] ROLLBACK [TRAN[SACTION] [<транзакция аты >] @ <ауыстыру аты>



Автоматтық транзакция SQL Serverінде үнсіз қойылымда орнатылады. Бұл режимде әр команда жеке транзакция ретінде қаралады, яғни команда дұрыс аяқталса онда оның өзгерістері тіркеледі, кері жағдайда жүйе алғашқ6ы қалпына келеді. Транзакция тапсырмасы анық режимі бір бүтін команда бірнеше рет қолданылады. Автоматты және анық емес басталу транзакциясы негізге режимі болып табылады және сервер осы режимдердің біреуінде болады. Анық басталу транзакция режимі басқа екі режим үстімен жұмыс істейді. Автоматты басталу транзакциясының орнату үшін Transact-SQL команда тілі орындалады:

 Құлыптауларды басқару.  Орнату туралы барлық жұмыстарды арнайы серверде

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

SET LOCK_TIME OUT <уақыт> Уақыт деген жерде миллисекунд саны беріледі, ол ресурстың құлыптауынан босауды күту уақытында. Қолданушы барынша тез орындалатын доступқа ие бола алады. Кейде басқа қолданушылар кестенің берілгеніне қол жеткізе алмайды, себебі транзакция әлі аяқталып болған жоқ. SQL Server келесі құлыптаулардың түрлерін береді: RID – жол деңгейіндегі құлыптау; KEY – индекс деңгейіндегі құлыптау, мәліметтер транзакциясындағы өзгерістерге сәйкес келеді; PAGE – бет деңгейіндегі құлыптау; EXTERN –extern(а) деңгейіндегі құлыптау; Table – кесте деңгейіндегі құлыптау; DB – мәліметтер базасы деңгейіндегі құлыптау.


Пән: Информатика


Пәндер
Көмек / Помощь
Арайлым
Біз міндетті түрде жауап береміз!
Мы обязательно ответим!
Жіберу / Отправить


Зарабатывайте вместе с нами

Рахмет!
Хабарлама жіберілді. / Сообщение отправлено.

Сіз үшін аптасына 5 күн жұмыс істейміз.
Жұмыс уақыты 09:00 - 18:00

Мы работаем для Вас 5 дней в неделю.
Время работы 09:00 - 18:00

Email: info@stud.kz

Phone: 777 614 50 20
Жабу / Закрыть

Көмек / Помощь