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



Транзакциялар және құлыпталу.
Орындаған: Қусманов А. Қ
АУ-301
Тексерген: Мухаметов Е. М.

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

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

SET LOCK_TIME OUT <уақыт> Уақыт деген жерде миллисекунд саны беріледі, ол ресурстың құлыптауынан босауды күту уақытында. Қолданушы барынша тез орындалатын доступқа ие бола алады. Кейде басқа қолданушылар кестенің берілгеніне қол жеткізе алмайды, себебі транзакция әлі аяқталып болған жоқ. SQL Server келесі құлыптаулардың түрлерін береді: RID - жол деңгейіндегі құлыптау; KEY - индекс деңгейіндегі құлыптау, мәліметтер транзакциясындағы өзгерістерге сәйкес келеді; PAGE - бет деңгейіндегі құлыптау; EXTERN -extern(а) деңгейіндегі құлыптау; Table - кесте деңгейіндегі құлыптау; DB - мәліметтер базасы деңгейіндегі құлыптау.
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.

Ақпарат
Қосымша
Email: info@stud.kz