
- •1. Форматирование выходных данных запросов. 39
- •Тема 1.
- •1. Введение. История развития баз данных.
- •1. Введение. История развития баз данных
- •2. Основные понятия и определения
- •Тема 2.
- •1. Архитектура базы данных. Физическая и логическая независимость.
- •1. Архитектура базы данных. Физическая и логическая независимость
- •2. Разработка приложений в среде Microsoft Windows. Системы быстрой разработки приложений. Субд. Модели данных.
- •3. Основные этапы проектирование базы данных.
- •Тема 3.
- •1. Дополнительные общие рекомендации по проектированию базы данных.
- •2. Разработка приложений в среде Microsoft Windows.
- •1. Дополнительные общие рекомендации по проектированию базы данных.
- •2. Разработка приложений в среде Microsoft Windows.
- •Тема 4.
- •1. Построение таблиц.
- •2. Запросы в Microsoft Access. Параметры запросов на выборку данных.
- •3. Операции реляционной алгебры.
- •1. Построение таблиц
- •2. Запросы в Microsoft Access. Параметры запросов на выборку данных.
- •3. Операции реляционной алгебры.
- •Тема 5.
- •1. Понятие технологии «Клиент-сервер». Общие сведения о языке запросов sql.
- •2. Структура sql.
- •1. Понятие технологии «Клиент-сервер». Общие сведения о языке запросов sql.
- •2. Структура sql.
- •Тема 6.
- •1. Запрос выборки в языке sql. Выборка из одной таблицы.
- •2. Суммирование данных с помощью функций агрегирования (групповых функций).
- •1. Запрос выборки в языке sql. Выборка из одной таблицы.
- •2.Суммирование данных с помощью функций агрегирования (групповых функций).
- •Тема 7.
- •1. Форматирование выходных данных запросов.
- •2.Соединение таблиц
- •3.Вложенные подзапросы
- •4.Связанные подзапросы. Оператор exists
- •5.Вложенные и связанные подзапросы. Операторы any, all, come
- •Тема 8.
- •1. Форматирование выходных данных запросов.
- •1. Форматирование выходных данных запросов.
- •Тема 9.
- •1. Запросы обновления таблиц.
- •2. Создание, модификация и уничтожение таблиц. Ограничение на множество допустимых значений данных. Значение по умолчанию.
- •3. Создание и уничтожение индексов. Поддержка ссылочной целостности.
- •1. Запросы обновления таблиц.
- •2. Создание, модификация и уничтожение таблиц. Ограничение на множество допустимых значений данных. Значение по умолчанию.
- •3. Создание и уничтожение индексов. Поддержка ссылочной целостности.
- •Тема 10.
- •1. Создание представлений .
- •2. Определение правд доступа к данным.
- •1. Создание представлений.
- •2. Определение правд доступа к данным.
- •Тема 11.
- •1. Определение синонимов объектов. Понятие транзакций. Управление параллелизмом.
- •Тема 12.
- •1. Встроенный sql, основные понятия
- •1. Встроенный sql, основные понятия.
Тема 11.
1. Определение синонимов объектов. Понятие транзакции. Управление параллелизмом
1. Определение синонимов объектов. Понятие транзакций. Управление параллелизмом.
Указывать имена таблиц не принадлежащих пользователю в формате идентификатор_влдельца.имя_таблицы не всегда является удобным. Эту проблему решает аппарат назначения синонимов объекту. Для таблицы или представления могут быть определены дополнительные имена (синонимы) по следующей команде:
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 вида блокировок: разделяемые и исключительные. Разделяемые блокировки могут выполняться одновременно. Это позволяет множеству пользователе одновременно читать данные, не изменяя их. Исключительные блокировки запрещают любой доступ к данным со стороны всех пользователей кроме того, кто заблокировал базу данных. Такие блокировки применяются при обновлении содержимого или структуры таблицы.