История развития баз данных. Основные понятия и определения. Архитектура базы данных. Физическая и логическая независимость, страница 26

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

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

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

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

или команды

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

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

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

SET AUTOCOMMIT ON/OFF

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

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

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

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

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

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

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

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

sad