Читаем Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ полностью

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

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

Транзакции завершаются, когда приложение обращается к клиенту, чтобы он запросил сервер подтвердить (commit) всю работу, выполненную с момента старта транзакции (даже если ничего не выполнялось, кроме чтения), или в случае ошибок отменить всю работу (rollback). Правило атомарности гласит: "Если одно из изменений оканчивается неудачей и требует отмены по причине невозможности подтверждения, то все ожидающие завершения изменения в этой транзакции также должны быть отменены". Отмена включает любые изменения, которые были сделаны триггерами и хранимыми процедурами в процессе выполнения этой транзакции.

! ! !

СОВЕТ. Для разработчика приложения очень полезно делать видимой каждую единицу работы с базой данных в виде задачи или группы задач, которые были завершены в контексте транзакции. Условия выполнения транзакций могут быть сконфигурированы различными способами. Например, один уровень изоляции выдаст иной вид сообщения о конфликте, чем другой уровень. Большинство эффективных программ приложений знает об этих вариантах и учитывает их в такой мере, что контекст каждой транзакции распространяется до рамок рабочей области приложения, окружающей действительную физическую транзакцию.

. ! .

Транзакции настолько важны в системах клиент-сервер, что в настоящем руководстве им посвящены три главы. 25, 26 и 27.

Пора дальше

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

<p>ГЛАВА 6. Сервер Firebird.</p>

Сервер Firebird - это программа, которая выполняется на узле хоста в сети, и слушает клиентов с порта коммуникации. Она обслуживает запросы множества клиентов к множеству баз данных. Суперсервер (Superserver) является многопоточным процессом, который запускает новый поток для каждого соединившегося клиента. В модели Классического сервера (Classic server) новый процесс запускается для каждого соединения.

Серверы Firebird могут выполняться почти на любом оборудовании персональных компьютеров и принимать клиентские соединения от приложений, выполняющихся в совершенно других операционных системах. С одной стороны, небольшой и легкий дистрибутив сервера может быть установлен на устаревшем оборудовании, даже для старых процессоров Pentium в операционной системе Windows 95 или в минимальных системах Linux. С другой стороны, серверы Firebird выполняются на распределенном оборудовании, управляя базами данных размерами в терабайты[8].

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

Программное обеспечение сервера Firebird эффективно использует системные ресурсы хост-компьютера. Суперсервер использует приблизительно 2 Мбайта памяти. Каждое клиентское соединение Суперсервера добавляет примерно 115 Кбайт к используемой сервером памяти - меньше или больше в зависимости от характеристик приложений клиента и способа проектирования базы данных. Каждое соединение Классического сервера запускает собственный серверный процесс, требующий приблизительно 2 Мбайта памяти.

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных