Хелен Борри - Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ

Тут можно читать онлайн Хелен Борри - Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство БХВ-Петербург, год 2006. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
  • Автор:
  • Жанр:
  • Издательство:
    БХВ-Петербург
  • Год:
    2006
  • Город:
    Санкт-Петербург
  • ISBN:
    5-94157-609-9
  • Рейтинг:
    4/5. Голосов: 81
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Хелен Борри - Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ краткое содержание

Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ - описание и краткое содержание, автор Хелен Борри, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Рассмотрены вопросы, необходимые разработчику для создания клиент-серверных приложений с использованием СУБД Firebird, явившейся развитием СУБД Borland Interbase 6. Содержится обзор концепций и моделей архитектуры клиент/сервер, а также практические рекомендации по работе с клиентскими библиотеками Firebird. Детально описаны особенности типов данных SQL, язык манипулирования данными (Data Manipulation Language, DML), а также синтаксис и операторы языка определения данных ( Data Definition Language, DDL). Большое внимание уделено описанию транзакций и приведены советы по их использованию при разработке приложений. Описано программирование на стороне клиента и сервера написание триггеров и хранимых процедур, создание и использование событий базы данных, обработка ошибок в коде на сервере и многое другое. Материал сопровождается многочисленными примерами, советами и практическими рекомендациями.

Для разработчиков баз данных

Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ - читать онлайн бесплатно полную версию (весь текст целиком)

Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ - читать книгу онлайн бесплатно, автор Хелен Борри
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

! ! !

ПРИМЕЧАНИЕ. Транзакция SNAPSHOT TABLE STABILITY не может получить доступ ни к какой таблице, зарезервированной с помощью средства резервирования таблиц.

. ! .

Вариантами выбора являются:

[PROTECTED | SHARED] {READ | WRITE}

Атрибут PROTECTED предоставляет транзакции исключительный доступ к таблице по чтению и позволяет другим транзакциям с уровнями изоляции SNAPSHOT и READ COMMITTED читать строки. Запись ограничивается одним или двумя модификаторами:

* PROTECTED WRITE позволяет текущей транзакции писать в таблицу и блокирует запись другими транзакциями;

* PROTECTED READ запрещает запись в таблицу для любой транзакции, включая текущую.

Атрибут SHARED позволяет любой транзакции SNAPSHOT или READ COMMITTED читать из таблицы и предоставляет два режима для параллельных изменений другими транзакциями:

* SHARED WRITE любой транзакции чтения/записи SNAPSHOT или транзакции чтения/записи READ COMMITTED изменять строки в наборе, пока никакая транзакция не имеет или не запросит исключительного доступа по записи;

* SHARED READ является наиболее либеральным условием резервирования. Этот режим позволяет любой другой транзакции чтения/записи изменять таблицу.

Итоги

Любая другая транзакция может читать таблицу, зарезервированную текущей транзакцией, причем не существует никаких способов сконфигурировать транзакцию так, чтобы предоставить ей исключительные права на запись для этой таблицы (т. е. все могут читать, если они были сконфигурированы только для чтения и не имеют никаких преимущественных прав на запись). Следующие условия всегда будут блокировать другую транзакцию на чтение из таблицы, зарезервированной текущей транзакцией:

* другая транзакция имеет уровень изоляции SNAPSHOT TABLE STABILITY;

* другая транзакция сконфигурирована на резервирование этой таблицы в режиме PROTECTED WRITE (хотя она может читать эту таблицу, если текущая транзакция зарезервировала ее в режиме SHARED READ);

* другая транзакция собирается зарезервировать эту таблицу в режиме SHARED WRITE, а текущая транзакция зарезервировала ее в режиме PROTECTED READ или PROTECTED WRITE.

В случае если это все еще вам непонятно, посмотрите на рис. 26.1, где некоторые сконфигурированные транзакции сами все расскажут.

Рис 261 Конфигурирование резервирования таблиц Версии записей Когда запрос - фото 42

Рис. 26.1. Конфигурирование резервирования таблиц

Версии записей

Когда запрос на изменение успешно отправлен на сервер, Firebird создает и записывает на диск ссылку, связывающую оригинальный образ строки, видимый в транзакции - иногда это называется дельтой, - с новой версией строки, содержащей изменения запроса. Оригинальный и новый образы строки называются версиями записи. Когда новая версия записи создается в транзакции более новой, чем транзакция, которая создала "живую" версию, другие транзакции не будут иметь возможности изменять или удалять оригинал, если только транзакция, создавшая новую версию, не выполнит откат. Процесс создания версий подробно описан в главе 25.

Пока транзакция, в конце концов, не подтвердит изменения, она не касается "живой" версии. В своем собственном контексте она трактует отправленную версию, как если бы она была самой последней подтвержденной версией. Тем временем другие транзакции продолжают "видеть" самую последнюю подтвержденную версию. В случае "мгновенного снимка" базы данных (snapshot) в транзакциях, которые были запущены до нашей транзакции, последняя подтвержденная версия записи, которую они видят, может быть более старой, чем та, которую видит наша транзакция и другие транзакции, либо ранее запущенные, либо имеющие уровень изоляции READ COMMITTED.

Зависимые строки

Если на таблицу, изменение в которой было отправлено на сервер, ссылаются внешние ключи других таблиц, сервер создает версии строк в этих таблицах, которые "принадлежат" измененной строке [96] Возможно, здесь имеются в виду внешние ключи с опцией ON UPDATE/DELETE CASCADE. В этом случае при изменении мастер-записи автоматически модифицируются записи-детали. Ни в каких других случаях "зависимые" таблицы не обновляются сервером. - Прим. науч. ред. . Эти зависимые строки, равно как и другие строки других таблиц, зависящие от них через внешние ключи, также становятся недоступными другим транзакциям для изменения, пока выполняется наша транзакция.

Блокировки и конфликты блокировок

В Firebird блокировки управляются относительным возрастом транзакций, а записи управляются системой поддержки версий. Все блокировки применяются на уровне строки, за исключением тех случаев, когда транзакция оперирует на уровне изоляции SNAPSHOT TABLE STABILITY или когда используется резервирование таблицы, которое блокирует доступ по записи.

Время действия

Время действия блокировки строки при обычной активности чтения/записи является оптимистическим - не выполняется никакая блокировка никаких строк до того момента, когда она действительно нужна. Пока изменения строки не отправлены на сервер, строка свободна для "получения" любой транзакцией чтения/записи.

Пессимистическая блокировка

Пессимистическая, или предварительная, блокировка может быть применена для наборов строк или для целых таблиц. Режимы блокировки таблиц уже были описаны (см. разд. "Резервирование таблиц" и "SNAPSHOT TABLE STABILITY (согласованность)").

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

Явная блокировка

Возможность осуществлять явную пессимистическую блокировку строки была добавлена в синтаксис SQL-оператора SELECT в Firebird 1.5. Блокировка ограничена "внешним уровнем" операторов SELECT, которые возвращают выходные наборы или определяют курсоры. Она не может применяться к подзапросам.

Сокращенный синтаксис запроса явной пессимистической блокировки строки:

SELECT <���выходной-список>

FROM <���таблица-или-процедура-или-просмотр>

[WHERE <���условия-поиска>]

[GROUP BY <���спецификация-группирования>]

[UNION <���выражение-выбора> [ALL]]

[PLAN <���выражение-плана>]

[ORDER BY <���список-столбцов>]

[FOR UPDATE [OF столбец1 [, столбец2 ...]] [WITH LOCK]]

Предложение FOR UPDATE, не являющееся инструкцией блокировки, указывает, что выходной набор должен передаваться клиенту по одной строке за раз, а не в виде пакета. Необязательная фраза WITH LOCK является элементом, который задает предварительную блокировку строки, как только сервер передает ее с сервера. Строки, ожидающие вывода, не блокируются.

Фиктивные изменения

Традиционным способом получения пессимистической блокировки строки в Firebird являются фиктивные изменения (dummy updates). Этот трюк позволяет использовать преимущества многоверсионной архитектуры. Клиент просто посылает на сервер для строки оператор изменения, который ничего не изменяет - он просто устанавливает значение столбца в его текущее значение, что приводит к тому, что сервер создает новую версию записи и, следовательно, блокирует для других транзакций запрос на изменение или удаление этой строки.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Хелен Борри читать все книги автора по порядку

Хелен Борри - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ отзывы


Отзывы читателей о книге Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ, автор: Хелен Борри. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий