Определение синонимов объектов. Понятие транзакций. Управление параллелизмом.




 

Указывать имена таблиц не принадлежащих пользователю в формате идентификатор_влдельца.имя_таблицы не всегда является удобным. Эту проблему решает аппарат назначения синонимов объекту. Для таблицы или представления могут быть определены дополнительные имена (синонимы) по следующей команде:

 

CREATE [PUBLIC] SINONYM

синоним FROM объект;

 

Здесь синоним – дополнительное имя, объект – это таблица или представление и PUBLIC определяет общедоступный синоним. Его может создавать только владелец таблицы или администратор базы данных.

 

Пример:

Пусть пользователь Петров вводит следующую команду:

CREATE SINONYM План_Иванова

FOR Иванов.План_работы;

После этого он может использовать следующую команду:

 

SELECT * FROM План_Иванова;

 

При этом, следует отметить, что определение общедоступных синонимов не делает таблицу общедоступной, т.е. привиелегии всё равно нужно назначать по команде GRANT.

Синонимы можно уничтожить по следующей команде:

 

DROP SINONYM синоним;

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

Ошибки из-за действия человека или компьютера возникают достаточно часто и необходимо давать пользователю отказаться от ранее выполненных действий. Команда SQL, влияющая на содержимое или структуру базы данных, не является необратимой.

Например, удалив записи по команде DELETE или изменив структуру таблицы по команде ALTER TABE, можно отказаться от ранее выполненных действий. Возможна так же отмена группы команд. Такие группы называются транзакциями.

Транзакция начинается, когда все вводимые команды являются частью той же транзакции, пока она не заканчивается вводом следующей команды:

 

COMMIT WORK – т.е. «закрыть транзакцию»

 

или команды

 

ROLLBACK WORK – «откатить транзакцию».

 

В обоих случаях транзакции начинаются сначала.

Может быть установлен или отменён режим автоматического закрытия транзакции после каждой корректной команды в следующем виде:

 

SET AUTOCOMMIT ON/OFF

 

Режим AUTOCOMMIT может устанавливаться системой автоматически в начале сеанса работы с SQL. Если сеанс работы завершился аварийно, то SQL автоматически откатывает последнюю транзакцию. Как следствие, необходимо не забывать закрывать транзакцию или пользоваться AUTOCOMMIT.

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

SQL обеспечивает управление параллелизмом, т.е. управление одновременно выполняющимися транзакциями различных пользователей. В многопользовательский системах, где и применяется SQL, возможны накладки при одновременной работе с одними и теми же таблицами. Например, один пользователь обновляет таблицу, а другой желает получить реальные данные. При этом, необходимо знать, какие реальные данные мы получим: до изменения или после. Во многих системах это непредсказуемо.

Механизм SQL, применяемый для управления параллелизмом, называется блокировками или замками. Замки запрещают выполнение определённых операций над базой данных, а другие операции остаются активными. Запрещённые операции выстраиваются в очередь и выполняются после снятия блокировок. В других системах эти операции не выстраиваются в очередь, а отвергаются с извещением пользователя.

Существуют 2 вида блокировок: разделяемые и исключительные. Разделяемые блокировки могут выполняться одновременно. Это позволяет множеству пользователе одновременно читать данные, не изменяя их. Исключительные блокировки запрещают любой доступ к данным со стороны всех пользователей кроме того, кто заблокировал базу данных. Такие блокировки применяются при обновлении содержимого или структуры таблицы.

 

Тема 12.

1. Встроенный SQL, основные понятия

 

1. Встроенный SQL, основные понятия.

 

Непроцедурный характер SQL предаёт ему наглядность, но влечёт за собой ряд ограничений. Ограничения вытекают из отсутствия в SQL структур управления (условных операторов, циклов, операторов выбора). Преодолеть такие ограничения, можно, встраивая запросы SQL в программы, написанные на других языках программирования. Однако, несовместимость этих языков с методами управления данными, принятыми в SQL, требует внесение ряда изменений в интерактивный SQL. Перечислим основные проблемы при использовании встроенного SQL:

 

  1. Как вставить запросы SQL в программу, написанную на алгоритмическом языке.
  2. Как обеспечить занесение данных из таблиц в переменные программы и извлечение данных из переменных для занесения записей в таблицы.
  3. Как ограничить цикл обработки записей, которые являются результатом запроса.
  4. Как узнать результаты выполнения запроса.
  5. Как определять и заносить NULL-значения в таблицу.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: