Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Взаимовлияние транзакций




NEW_TIME(d, пояс 1, пояс 2)

MONTHS_BETWEEN(дата 1, дата 2)

LAST_DAY(d)

ADD_MONTHS(d,x)

Возвращает дату d плюс x месяцев. Значение x может быть любым целым числом. Если в месяце, полученном в результате, число дней меньше, чем в месяце d то, возвращается последний день месяца результата. Если, число дней не меньше то день месяца-результата и день месяца d совпадают. Временные компоненты даты d и результата одинаковы. Пример 46*, 47*, 48*.

Возвращает дату последнего дня того месяца, в который входит d. Эту функцию, можно применять для определения количества дней оставшихся в текущем месяце. Пример 49*, 50*.

Возвращает число месяцев между "дата 1" и "дата 2". Если дни в "дата 1" и "дата 2" или если обе даты являются последними днями своих месяцев. То, результат представляет собой целое число. В противном случае результат будет содержать дробную часть, по отношению, к 31-дневному месяцу. Пример 51*, 52*.

Вот, долго думал, показывать эту функцию или нет, решил ладно, пусть будет. Хотя, я ей еще не пользовался, больно она, какая то... а в прочем решать вам! Итак:

Возвращает дату и время, часового пояса 2 для того момента когда, датой и временем, часового пояса 1 является d. Где пояс 1, пояс 2 это строки символов, для поясного времени Америки. В примере 'PST' и 'EST' это Тихоокеанское поясное время и восточное поясное время соответственно. Точно не знаю, есть ли эти строки для России, но вообще, в этом случае, я применял другие способы определения времени по поясам, как правило, в клиентских приложениях, например, применив C++. Но может, у кого есть другое мнение на сей счет! Кстати в примере показаны, функции преобразования, с которыми вы еще не сталкивались, по этому, пока можете сами разобраться. Если не совсем понятно, я о них еще расскажу!:) Пример 53*;

NEXT_DAY(d, строка_символов)

Возвращает дату первого дня, наступающего после даты d и обозначенного строкой символов. Строка символов указывает день недели на языке текущего сеанса. (Вот с 8.1.5 иногда бывают проблемы с передачей русских слов например, в сеанс SQL*Plus, но на удивление 9.0.2 они полностью отсутствуют!) Временной компонент возвращаемого значения тот же, что и временной компонент d. Регистр символов строки значения не имеет. Пример 54*, 55*.

 

Транзакции в многопользовательской БД должны быть изолированы друг от друга, т.е. в идеале каждая из них должна выполняться так, как будто выполняется только она одна. В реальности транзакции выполняются одновременно и могут влиять на результаты друг друга.

Взаимовлияние транзакций может проявляться в виде:

• потери изменений;

• чернового чтения;

• неповторяемого чтения;

• фантомов.

Потеря изменений может происходить при одновременном обновлении двумя и более транзакциями одного и того же набора данных. Транзакция, закончившаяся последней, перезапишет результаты изменений, внесённых предыдущими транзакциями, и они будут потеряны.

транзакция 1 – UPDATE СОТРУДНИКИ SET Оклад = 9200

WHERE Номер = 1123

транзакция 2 – UPDATE СОТРУДНИКИ

SET Должность = "старший экономист", ЕТС = 14

WHERE Номер = 1123

Обе транзакции считали одну и ту же запись (1123, "Рудин В.П.", "экономист", 12, 8300) и внесли каждая свои изменения: в бухгалтерии изменили оклад (транзакция 1), в отделе кадров – должность и ставку по ЕТС (транзакция 2). Результаты транзакции 1 будут потеряны (рис. 1).

При повторяемом чтении один и тот же запрос, повторно выполняемый одной транзакцией, возвращает один и тот же набор данных (т.е. игнорирует изменения, вносимые другими завершёнными и незавершёнными транзакциями).

Неповторяемое чтение является противоположностью повторяемого, т.е. транзакция "видит" изменения, внесённые другими (завершёнными!) транзакциями. Фантомы – это особый тип неповторяемого чтения. Возникновение фантомов может происходить в ситуации, когда одна и та же транзакция сначала производит обновление набора данных, а затем считывание этого же набора. Если считывание данных начинается раньше, чем закончится их обновление, то в результате чтения можно получить несогласованный (не обновлённый или частично обновлённый) набор данных.




Поделиться с друзьями:


Дата добавления: 2015-05-10; Просмотров: 809; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.