Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИПК_Занятия_ОПБД / Lectures_16-17.pptx
Скачиваний:
14
Добавлен:
15.04.2015
Размер:
2.98 Mб
Скачать

Один курсор может основываться на нескольких таблицах, расположенных как в одной, так и в разных БД. Операция считывания данных, определенных в курсоре, называется выборкой (fetch).

11

Если за одну операцию курсор позволяет выбрать несколько строк данных, то такой курсор называется

блочным.

Курсоры могут быть разделены на две категории: последовательные (forward-only) и прокручиваемые

(scrollable).

12

Последовательные курсоры -

позволяют последовательно выбирать данные только в одном

направлении – от начала к концу

набора строк.

Прокручиваемые курсоры -

допускают перемещение по строкам

в обоих направлениях и переход к произвольной строке

результирующего набора курсора.

13

Серия последовательных выборок из курсора называется

прокруткой курсора

(или скроллингом курсора).

14

Типы и поведение курсоров

Существует несколько типов

курсоров, разных по возможностям

обработки данных.

Тип курсора определяется на

стадии создания курсора и не

может быть изменен.

15

Статический курсор (static cursor, другое название – курсор моментального снимка, snapshot cursor).

При открытии такого курсора сервер выбирает все данные согласно заданным критериям и сохраняет полный результирующий набор строк в системной БД tempdb.

На время открытия курсора

устанавливается блокировка на все строки, включенные в полный результирующий набор курсора16 .

В результате статический курсор не изменяется после создания и

всегда отображает тот набор данных, который существовал в БД

на момент открытия курсора.

Если другие пользователи изменят, добавят или удалят в исходной таблице данные, включенные в курсор, эти изменения

не отразятся в статическом курсоре.

17

Внесение изменений в статические курсоры невозможно, так как нет гарантии в существовании и неизменности строк данных, на основе которых построен курсор.

Поэтому такие курсоры открываются в режиме «только для чтения».

18

Динамический курсор (dynamic cursor) в определенном смысле противоположен статическому.

При использовании динамических курсоров не создается полная копия исходных данных, а выполняется динамическая выборка данных из исходных таблиц только при обращении пользователя к тем или иным данным. Сервер блокирует только выбранные строки на время выборки.

19

Все изменения, вносимые пользователями в полный результирующий набор курсора, будут видны в курсоре при выборке. При этом изменения данных отслеживаются только при выборке строк.

Если другой пользователь внес в данные изменения уже после их выборки курсором, то эти изменения не

будут отражены в курсоре. 20

Соседние файлы в папке ИПК_Занятия_ОПБД