- •1. Три ланкова архітектура системи баз даних
- •2. Моделі даних у системах баз даних
- •3. Етапи проектування автоматизованих інформаційних систем.
- •4. Проектування концептуальної моделі предметної області з використанням er – діаграми.
- •5. Структура даних і обмеження реляційної моделі.
- •6. Нормалізація відношень і теорія нормальних форм.
- •7. Алгоритм приведення відношень до третьої нормальної форми.
- •8. Використання операцій реляційної алгебри для створення мови запитів.
- •9. Використання реляційного числення для створення мови запитів
- •10. Призначення й структура мови sql.
- •Типы данных
- •11. Структура запитів мови sql.
- •12. Формування вкладених запитів в sql.
- •13. Концептуальне і фактичне виконання запитів у мові sql.
- •14. Мова маніпулювання даними sql.
- •Добавление строк.
- •Удаление строк.
- •Изменение данных.
- •15. Мова визначення даних sql.
- •16. Надання прав доступу в sql.
- •17. Архітектура бд клієнт – сервер.
- •18. Проектування застосівників до бд у системі клієнт-сервер.
- •Проектирование отчетов.
- •Тестирование приложения.
- •19. Способи доступу до бд із застосівників.
- •20. Повнота реляційної субд (правила Кодда).
- •21. Розподілені бд (правила Дейта).
- •22. Керування транзакціями.
- •23. Рівні ізоляції транзакцій.
- •24.Збережені процедури в tsql.
- •25. Функції користувача в tsql.
- •26. Представлення в tsql.
- •27.Тригери в tsql.
- •28. Курсори в tsql.
- •29. Створення індексів в tsql.
- •30. Команди керування даними в tsql.
27.Тригери в tsql.
Триггеры - это специальный вид хранимых процедур, который выполняется при попытке изменения данных, которые он защищает. Триггер "срабатывает" при использовании команд INSERT, UPDATE и DELETE. Триггер применяется для поддержки целостности данных. Триггер запустить явно нельзя. Он "срабатывает" при определенных условиях. Триггеры, как правило, применяются для поддержки бизнес - правил (правил данной организации).
Свойства триггеров:
-
Триггер связан с конкретной таблицей.
-
Триггер выполняется автоматически при попытке изменения защищенных данных.
-
Триггер не вызывается напрямую, т.к. не имеет параметров.
-
Триггер имеет 16 уровней вложенности.
В команде создания триггеров обязательно указывается таблица, для которой создается, и событие, при котором он "срабатывает". Как правило, указывается также реакция на нарушение ограничений: просто сообщение, что нарушено правило и изменение "срабатывает" или сообщение и откат транзакций (изменение не "срабатывает"). CREATE TRIGGER [<имя_владельца>.]<имя_триггера> ON [<имя_владельца>.]<имя_таблицы> FOR INSERT | UPDATE | DELETE (,) - можно указать несколько операций через запятую AS <команда> Каждая таблица может иметь не более, чем 3 триггера. При этом все действия может обрабатывать один триггер. Триггер может создавать только владелец таблицы. Триггеры не создаются для представлений и временных таблиц. В триггере нельзя использовать следующие команды:
CREATE ... всех видов
ALTER ...
GRANT ...
REVOKE ...
SELECT ... INTO ...
28. Курсори в tsql.
Курсоры в SQL предназначены для доступа к данным. Запросы осуществляются ко всем таблицам в целом. Результат запроса - это таблица. Для доступа к БД на низком уровне применяются курсоры. Они позволяют выполнять обработку БД на сервере, но значительно снижают производительность. Курсор является альтернативой запроса в том случае, когда результаты запроса обрабатываются по записям. В курсоре работа с одной строкой не зависит от остальных. При этом исчезает необходимость в индексировании, т.к. однозначно выбирается позиция на строке. Для одновременной работы с несколькими строками используется кэширование. С курсорами в Transact SQL связаны последовательно следующие операции:
-
DECLARE - эта команда создает в памяти разделяемую структуру, содержащую определение курсора.
-
OPEN - открытие курсора.
-
FETCH - курсор возвращает данные для операции.
-
CLOSE - закрывается открытый курсор, освобождается блокировка.
-
DEALLOCATE - освобождение разделяемой памяти
Различают три вида курсоров:
-
Курсоры сервера (выполняются в хранимых процедурах).
-
Курсоры клиента.
-
Курсоры транзакций.
Пример: DECLARE Cur CURSOR FOR SELECT НомПок, ИмяПокуп, ГородПок FROM C ORDER BY НомПок
Изменение данных в курсоре.
UPDATE <имя_таблицы> SET <имя_поля>={DEFAULT | NULL | expr} [1..n]
WHERE CURRENT OF <имя_курсора>
Удаление данных.
DELETE <имя_таблицы> WHERE CURRENT OF <имя_курсора>
Будет удалятся текущая строка курсора.
