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

Интервал:

Закладка:

Сделать

Язык для транзакций

Важно обратиться к средствам реализации транзакций в Firebird. До сих пор некоторые связанные с транзакциями особенности вовсе не реализованы в динамическом SQL, а только через API. Среди небольшого количества связанных с транзакциями операторов SQL и доступных в подмножестве DSQL только COMMIT и ROLLBACK доступны в каждом интерфейсе. В книге осознанно выбран нейтральный подход к языкам средств разработки. Основной акцент делается на динамический SQL, используемый в большинстве существующих средств разработки клиентских приложений. В главе представлены некоторые проблемы, одинаково актуальные и для автора, и для читателя.

Хотя эта глава не описывает ESQL [98] Для энтузиастов Borland опубликовал документ "Embedded SQL Guide" (Руководство по встраиваемому SQL) как часть комплекта документации по InterBase. Версии этого тома также доступны в формате PDF на некоторых сайтах - найдите через Google "EmbedSQL.pdf". или API [99] То же, "API Guide" (Руководство по API). APlGuide.pdf. , следующие разделы будут рассказывать о них в более или менее общем виде для получения некоторого понимания того, что передается через интерфейс, когда клиенты "беседуют" с серверами о транзакциях.

ESQL

Надмножество операторов SQL и подобных SQL операторов, используемых в прежние времена, даже до публикации API и подмножества DSQL, представляет синтаксис стандарта SET TRANSACTION для конфигурирования и старта транзакций. В некоторых формах он доступен в DSQL и может быть использован в утилите isql. Это удобное средство общей проверки того, как API передает эквивалентную информацию [100] SET TRANSACTION, как COMMIT и ROLLBACK, не является оператором, выполняемым на сервере. Будучи оператором Embedded SQL он преобразуется утилитой gpre (или isql) в вызовы Firebird API (isc_start_transaction...). - Прим. науч. ред. .

API

API предоставляет гибкий интерфейс множества сложных функций программистам С и C++ для создания клиентских приложений с наиболее тонким уровнем связи и соединения. Группа функций API реализует эквивалентные операторы SQL, относящиеся к транзакциям, например isc_start_transaction() для оператора START TRANSACTION и isc_commit_transaction() для оператора COMMIT.

Заголовочный файл API, ibase.h, объявляет прототипы функций, определения типов для каждой структуры, определения параметров и макросы, которые используются в функциях. Он поставляется в каталоге Firebird /include.

Для некоторых объектно-ориентированных сред разработки, таких как Object Pascal, Borland C++ Builder, Java, PHP, Python и DBI::Perl классы и компоненты полностью инкапсулируют вызовы API Firebird, относящиеся к транзакциям. Пользовательские драйверы для интерфейсов соединения со стандартными базами данных SQL - в особенности ODBC, JDBC и .NET- похожим образом представляют API [101] Для большинства этих реализаций была выполнена трансляция заголовочного файла С Firebird в соответствующий язык высокого уровня для предоставления средств API Firebird (или InterBase) для этого языка. Если вы планируете разрабатывать программы с использованием API, хорошим решением будет поиск в Интернете существующих трансляций заголовочного файла. .

Запуск транзакции

SQL

Оператор SQL для запуска транзакции имеет следующий синтаксис:

SET TRANSACTION [NAME <���имя-транзакции>]

[READ WRITE | READ ONLY] /* режим доступа */

[WAIT | NO WAIT] /* режим разрешения блокировок */

[ISOLATION LEVEL] /* уровень изоляции */

{SNAPSHOT [TABLE STABILITY] | READ COMMITTED [[NO] RECORD VERSION]}

[RESERVING <���предложение-резервирования>

| USING <���дескриптор-базы-данных> [,дескриптор-базы-данных...]];

Финальное предложение RESERVING задает необязательное резервирование таблиц, обсуждавшееся в предыдущей главе. Его синтаксис представляется в виде:

<���предложение-резервирования> : := <���таблица> [, <���та&лица> ...] [FOR [SHARED | PROTECTED] {READ | WRITE}]

[, <���предложение-резервирования> [, <���предложение-резервирования> ...]]

! ! !

ПРИМЕЧАНИЕ. Необязательное имя транзакции - объявляемое в приложении и указываемое в предложении SET TRANSACTION - недоступно нигде, кроме ESQL.

. ! .

Вы можете проверить этот оператор в isql. Откройте базу данных employee.fdb и запустите новую транзакцию следующим образом:

SQL> COMMIT;

SQL> SET TRANSACTION READ WRITE ISOLATION LEVEL SNAPSHOT TABLE STABILITY;

SQL> SELECT EMP_NO, FIRST_NAME, LAST_NAME

CON> FROM EMPLOYEE WHERE FIRST_NAME = 'Robert';

EMP NO FIRST NAME LAST NAME

==========================

2 Robert Nelson

SQL>

! ! !

СОВЕТ. Ключевые слова ISOLATION LEVEL являются необязательными, READ WRITE и WAIT являются значениями по умолчанию и могут быть опущены, если не требуются другие значения.

. ! .

Затем откройте другое окно командной строки и запустите isql или другой инструмент, который позволит вам конфигурировать тарнзакции, и запустите другую транзакцию чтения/записи для той же базы данных:

SQL> COMMIT;

SQL> SET TRANSACTION READ WRITE NOWAIT SNAPSHOT;

Теперь через тот же интерфейс попытайтесь изменить любую строку в базе данных tmployee.fdb:

SQL> UPDATE EMPLOYEE SET FIRST_NAME = 'Dodger'

SQL> WHERE FIRST_NAME = 'Roger';

ISC ERROR CODE:335544345

lock coflict on no wait transaction (конфликт блокировки для транзакции, не являющейся ожидаемой)

Как и ожидалось, эта транзакция будет заблокирована для записи любой строки таблицы EMPLOYEE, потому что при выборе данных из той же таблицы первая транзакция запросила блокировку на уровень таблицы. Вторая тарнзакция имеет установку разрешения блокировки NOWAIT и немедленно выдает исключение, потому что не может выполнить изменение.

Транзакция по умолчанию

Следующий оператор также допустим:

SQL> COMMIT;

SQL> SET TRANSACTION;

Он запускает транзакцию, как и большинство операторов, с конфигурацией по умолчанию, что эквивалентно:

SQL> COMMIT;

SQL> SET TRANSACTION READ WRITE WAIT SNAPSHOT;

! ! !

ПРИМЕЧАНИЕ. Существует еще "транзакция по умолчанию", которая используется в клиентах ESQL для сконфигурированной единой транзакции, определенной на сервере и клиенте константой gds trans. Клиент ESQL стартует эту транзакцию автоматически, если он передает оператор запроса, а перед этим никакая транзакция явно не запускалась.

. ! .

API

Функция API, которая выполняет эквивалентную работу, называется isc_start_transaction() [102] Фактически существуют две различные функции для запуска транзакции: isc_start_ transaction() используется в языках, которые поддерживают передачу переменного количества аргументов при вызове функций; isc_start_multiple() используется в языках, требующих статический список аргументов. isc_start_transaction() ограничивается одной транзакцией, которая может использовать до 16 баз данных, в то время как isc_start_multiple О запускает транзакции, обращающиеся к большему количеству баз данных или обращающиеся к переменному количеству баз данных, которое может превышать 16.

Запуск каждой транзакции имеет три части:

1. Создание (при необходимости) и инициализация дескриптора транзакции.

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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