Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Введение в СУБД HyTech.doc
Скачиваний:
12
Добавлен:
01.03.2025
Размер:
2.67 Mб
Скачать

Транзакции в HyTech

В многопользовательском режиме в HyTech SQL сервере один из пользователей может заблокировать работу других пользователей, начав транзакцию и не закончив ее, например, не подтвердил изменения или не откатил начатую транзакцию. Чтобы предотвратить такой захват, на выполнение транзакции отводится некоторое время. Если какой-либо пользователь начал транзакцию и не уложился в указанное время, то его транзакция принудительно обрывается. Этот пользователь вынужден будет в таком случае откатить транзакцию. Пока он этого не сделает, никакие действия с данными (кроме освобождения ресурсов) не допускаются.

В механизме транзакций, реализованном в SQL сервере, поддерживается откат действий, произведенных операторами:

  • insert;

  • delete;

  • update.

В механизме транзакций, реализованном в SQL сервере не поддерживается откат действий, произведенных операторами:

  • create table;

  • create index;

  • drop index и др.

Профиль, роль

Каждое действие с базой данных связывается с некоторым пользователем, от имени которого это действие осуществляется. Для доступа к серверу базы данных пользователь должен указать имя и пароль. Имена всех пользователей заносятся администратором базы данных с помощью специальных SQL-операторов.

Профиль – некоторый набор ограничений, налагаемых на пользователей. В этот набор входят:

  • Время, когда разрешено регистрироваться на сервере;

  • Максимальное количество сеансов работы;

  • Общая продолжительность сеансов работы.

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

Роль – набор привилегий, т. е. прав совершать определенные действия над указанными объектами. Этот набор привилегий можно передавать другим ролям или пользователям. Роль содержит как привилегии, которые переданы роли непосредственно, так и привилегии других ролей.

Генератор

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

Кодификатор

Кодификатор – упорядоченные пары {ключ:толкование}, статически загруженные в память. Используются для расширенного толкования значений ключа при операциях чтения результатов. Длина толкования ключа не может быть короче ключа.

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

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

Хранимая процедура

Хранимая процедура – это программа, написанная на языке SQL (с использованием процедурных расширений) и хранящаяся на сервере БД как часть данных в виде некоторого объекта с указанным именем. По имени процедуру можно вызвать для выполнения и получить от нее результат. Как и на другие объекты базы данных, на процедуру распространяется механизм прав использования.

Достаточно создать процедуру один раз, чтобы затем вызывать ее из приложений. Хранимая процедура может получать значения на входе и возвращать значение в приложение.

Преимущества использования хранимых процедур:

  • Модульное проектирование – хранимая процедура может использоваться несколькими приложениями, работающими с базой данных, при этом исчезает дублированный код и уменьшается размер приложений;

  • Облегчение сопровождения – когда процедура модифицируется, то изменения автоматически становятся видны для всех приложений, использующих данную процедуру. Нет необходимости перекомпилировать приложения;

  • Улучшение производительности – хранимая процедура выполняется сервером, а не клиентом, при этом уменьшается сетевой трафик и улучшается производительность. Это особенно заметно для удаленных клиентов, которые подключены к серверу низкоскоростными линиями связи.