Чтение онлайн

на главную - закладки

Жанры

Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ

Борри Хелен

Шрифт:

Встраиваемые серверы поддерживаются на платформах Windows и Linux/UNIX, хотя реализация моделей различна. Под Windows библиотека встроенного сервера, который выполняется как единый процесс, называется fbembed.dll. В Linux/UNIX это стандартный режим локального подключения для Классического сервера. Библиотека libfbclient.so запускает один процесс Классического сервера (fb_inet_server или ib inet server) и напрямую соединяется с базой данных. Процесс не является исключительным - удаленные клиенты могут одновременно соединяться с базой данных, используя fbclient.so, другую библиотеку libfbclient.so или fbembed.dll.

Более подробно встроенные серверы обсуждаются в главе 7.

Серверы Firebird

в среде DTP

Детальное обсуждение среды распределенной обработки транзакций (Distributed Transaction Processing, DTP) не является целью данной книги. Достаточно сказать, что Суперсервер или Классический сервер Firebird хорошо подходят к различным сценариям DTP.

Open Group, определившая стандарт x/Open для DTP, предоставила три программных компонента для системы DTP. Спецификация XA определяет интерфейс между менеджером транзакций и менеджером ресурсов (Resource Manager, RM). Система имеет один RM-модуль для каждого сервера; требуется каждый RM для регистрации менеджера транзакций.

На рис. 6.3 показано, как сервер Firebird может быть представлен в XA-совместимой среде DTP. Модуль сервера приложения базы данных представляет собой мост между приложениями пользователя высокого уровня и RM, инкапсулирующим соединение XA. RM выполняет роль клиента связи с сервером базы данных для доступа к данным.

Инкапсуляция соединения XA дает возможность разработчику приложения создавать и выполнять операторы SQL в RM. Разграничение транзакций, которое требуется средствам двухфазного подтверждения для всех серверов, регулируется глобальным

монитором обработки транзакций (Transaction Processing Monitor, TPM). Транзакции с несколькими базами данных, находящиеся под управлением менеджера транзакций, выполняются с помощью процесса двухфазного подтверждения. В первой фазе транзакции подготавливаются для подтверждения; во второй фазе транзакции либо полностью подтверждаются, либо откатываются [9] . TPM проинформирует вызывающий модуль, если транзакция не будет по разным причинам завершена.

<

9

О двухфазном подтверждении транзакций см. в главе 25.

image l:href="#"/>

Рис. 6.3. Firebird в распределенной среде выполнения транзакций

TPM согласовывает распределенные транзакции в системах множества баз данных, так что одна транзакция может использовать один или более процессов и изменять одну или более баз данных. Монитор хранит информацию обо всех доступных и включенных в транзакции RM.

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

Основы сервера транзакций

Сервер транзакций Microsoft (Microsoft Transaction Server, MTS) с COM+ является одним из таких сценариев. MTS/COM+ обеспечивает среду для объединенных в пул процессов, которая осуществляет использование и управление компонентами бизнес- логики, включая контроль системы, безопасность и мониторинг выполнения. Одной из наиболее значимых возможностей является декларативное управление транзакциями. Транзакции, инициированные в MTS/COM+, управляются координатором

распределенных транзакций (Microsoft Distributed Transaction Coordinator, DTC), менеджером ресурсов XA. Родной интерфейс Firebird требует провайдера ODBC или OLE DB, который поддерживает как двухфазное подтверждение транзакций Firebird, так и контекст вызова MTS/COM+ [10] .

10

Рекомендуется свободно распространяемый драйвер IBProvider Дмитрия Коваленко. Подробности см. на http://www.ibprovider.com/rus/index.html.

Терминальные серверы

Firebird успешно используется в средах MTS и IBM Citrix. Во всех случаях используется протокол TCP/IP для соединений по сетевым IP-адресам.

! ! !

ВНИМАНИЕ! Весьма нежелательно инсталлировать на одном и том же узле терминальный сервер и сервер базы данных. Тем не менее в ситуациях, когда сервер приложения выполняется на том же узле, что и сервер базы данных, соединение должно осуществляться с использованием IP-адреса этого узла или по имени localhost.

. ! .

Базы данных

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

Файл базы данных Firebird состоит из блоков, называемых страницами. Размер страницы базы данных может быть 1, 2, 4, 8 или 16 Кбайт; он устанавливается во время создания базы данных. Размер страницы может быть указан при создании, и изменен только во время восстановления базы данных из резервной копии при задании нового значения. Различные базы данных на одном и том же сервере могут иметь различные размеры страниц.

Сервер поддерживает множество различных типов страниц в каждой базе данных - страницы данных, различные уровни индексных страниц, страницы BLOB, служебные страницы для различной информации и т.д. Сервер располагает страницы в порядке, известном только ему. В отличие от файловых СУБД Firebird хранит таблицы не в виде физических строк и столбцов, а в непрерывном потоке на страницах. Когда страница заполняется почти полностью, и нужно записать еще строки, сервер выделяет новую страницу. Страницы одной таблицы не хранятся в виде непрерывной последовательности. Фактически страницы, содержащие данные одной таблицы, могут располагаться в нескольких файлах на разных дисках.

Программирование на стороне сервера

Среди мощных средств Firebird по динамическому программированию приложений клиент-сервер существует возможность компилировать на сервере исходные коды в двоичную форму для использования во время выполнения. Такие процедуры и функции выполняются полностью на сервере, возвращая клиентскому приложению при необходимости значения или наборы данных. Firebird предоставляет два стиля программирования на стороне сервера: хранимые процедуры и триггеры. В дополнение к этому внешние функции (или функции, определенные пользователем - User-Defined Functions, UDF) могут быть написаны на языке высокого уровня и стать доступными серверу для использования в выражениях SQL.

Поделиться:
Популярные книги

Черный маг императора 3

Герда Александр
3. Черный маг императора
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Черный маг императора 3

Повелитель механического легиона. Том VIII

Лисицин Евгений
8. Повелитель механического легиона
Фантастика:
технофэнтези
аниме
фэнтези
5.00
рейтинг книги
Повелитель механического легиона. Том VIII

Пипец Котенку! 3

Майерс Александр
3. РОС: Пипец Котенку!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Пипец Котенку! 3

Разбуди меня

Рам Янка
7. Серьёзные мальчики в форме
Любовные романы:
современные любовные романы
остросюжетные любовные романы
5.00
рейтинг книги
Разбуди меня

Боги, пиво и дурак. Том 6

Горина Юлия Николаевна
6. Боги, пиво и дурак
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Боги, пиво и дурак. Том 6

Болотник 2

Панченко Андрей Алексеевич
2. Болотник
Фантастика:
попаданцы
альтернативная история
6.25
рейтинг книги
Болотник 2

Ты всё ещё моя

Тодорова Елена
4. Под запретом
Любовные романы:
современные любовные романы
7.00
рейтинг книги
Ты всё ещё моя

S-T-I-K-S. Пройти через туман

Елисеев Алексей Станиславович
Вселенная S-T-I-K-S
Фантастика:
боевая фантастика
7.00
рейтинг книги
S-T-I-K-S. Пройти через туман

Имя нам Легион. Том 4

Дорничев Дмитрий
4. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 4

Сводный гад

Рам Янка
2. Самбисты
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Сводный гад

Я князь. Книга XVIII

Дрейк Сириус
18. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я князь. Книга XVIII

Королевская Академия Магии. Неестественный Отбор

Самсонова Наталья
Любовные романы:
любовно-фантастические романы
8.22
рейтинг книги
Королевская Академия Магии. Неестественный Отбор

Последняя Арена 6

Греков Сергей
6. Последняя Арена
Фантастика:
рпг
постапокалипсис
5.00
рейтинг книги
Последняя Арена 6

Жребий некроманта. Надежда рода

Решетов Евгений Валерьевич
1. Жребий некроманта
Фантастика:
фэнтези
попаданцы
6.50
рейтинг книги
Жребий некроманта. Надежда рода