Эксперт по сдаче вступительных испытаний в ВУЗах
Лабораторная работа 7. Обеспечение целостности, сохранности и защита баз данных
Цель работы:
Приобрести опыт задания ограничений, управления транзакциями, создания хранимых процедур и триггеров, управления доступом к базам данных и разрешениями на их объекты, резервного копирования и восстановления баз данных.
Задание 1. Настройте ссылочные ограничения целостности в модели данных Sales.dm2, как описано в п.7.1.3.
Обоснуйте и настройте 2-3 ссылочных ограничения в своей модели данных.
Задание 2. Задайте декларативные ограничения целостности на уровне поля в модели данных Sales.db2, как описано в п.7.1.3.
Обоснуйте и настройте 3-4 декларативные ограничения целостности на уровне поля в своей модели данных.
Задание 3. Изменение данных в режиме
явной транзакции (см. п.7.1.4). Выполните в редакторе кода поочередно, по одному, следующие операторы
USE pubs
SELECT au_lname, au_fname, phone from authors
BEGIN TRANSACTION
UPDATE authors SET phone = ‘637308’
SELECT au_lname, au_fname, phone from authors
ROLLBACK TRANSACTION
SELECT au_lname, au_fname, phone from authors
BEGIN TRANSACTION
UPDATE authors SET phone = ‘637308’
WHERE au_fname = ‘Sheryl’ AND au_lname = ‘Hunter’
SELECT au_lname, au_fname, phone from authors
COMMIT TRANSACTION
SELECT au_lname, au_fname, phone from authors
Приведите в отчете результаты (см. рис. 7.4) и сообщения (см. рис. 7.3) Management Studio после выполнения каждого из этих операторов. Дайте содержательный комментарий по результатам выполнения операторов.
Задание 4. Создайте, как описанов п.7.1.5, в базе pubs хранимую процедуру TitlesInPubs, которая будет выбирать и возвращать данные о книгах (название книги, фамилии и имена авторов, название издательства, дата опубликования) из таблиц titles, authors и publishers базы данных pubs.
Исполните созданную хранимую процедуру.
Приведите в отчете копии экранов с результатами работы, подобные рис. 7.3 и 7.4.
Задание 5. Создайте, как описанов п.7.1.6, INSERT/UPDATE-триггер, который будет реализовывать ограничение уровня строки для таблицы titles базы pubs. Этот триггер должен обеспечить выполнение следующего бизнес правила: аванс (advance) не должен быть больше, чем тысяча цен (price*1000).
Проверьте работу созданного триггера.
Приведите в отчете текст запроса, создавшего триггер, и копию экрана с результатом проверки срабатывания триггера, подобную рис. 7.5.
Задание 6. Управление безопасностью.
Создайте, как описанов п.7.2.2, через интерфейс Management Studio имя входа для доступа к экземпляру SQL Server. Добавьте пользователя вашей базе данных и сопоставьте ему созданное имя входа, задайте членство пользователя в роли db_owner.
Проверьте работоспособность созданного имени входа.
Задание 7. Резервное копирование и восстановление базы данных. Используя материалы раздела 7.3:
- установите для своей базы данных полную модель восстановления;
- создайте полную резервную копию своей базы данных и запишите соответствующий сценарий в окно редактора запроса;
- внесите несколько записей в базу данных и затем создайте разностную резервную копию и резервную копию журнала транзакций, записав сценарии в новые окна редактора запроса;
- восстановите базу данных, записав сценарий восстановления.
Опишите в отчете действия по созданию резервных копий и восстановлению базы данных, приведите и сравните сценарии создания резервных копий: полной, разностной и журнала транзакций, а также сценария восстановления базы данных.
Задание 8. Создание расписания автоматического резервного копирования базы данных.
Используя материалы п. 7.3.8:
- настройте автоматический запуск службы Агент SQL Server;
- создайте план резервного копирования вашей базы данных.
Опишите в отчете действия по созданию расписания резервного копирования, приведите Отчет мастера планов обслуживания.
Контрольные вопросы:
- Идентичны ли понятия целостности и достоверности БД?
- Дайте определение понятия «ограничение целостности». В чем важность задания ограничений целостности?
- Назовите виды ограничений целостности, приведите примеры ограничений целостности каждого вида.
- Укажите способы задания ограничений целостности. В чем преимущества и недостатки каждого из них?
- В какой момент происходит проверка соблюдения ограничения целостности, относящегося к полю? ограничения, задающего отношение между значениями разных полей одной записи?
- Что такое ограничение целостности связи?
- Если задано ограничение целостности связи, но не задано каскадное удаление связанных записей, повлияет ли заданное ограничение целостности на процесс удаления записи из родительской таблицы?
- Если задано ограничение целостности связи, может ли значение внешнего ключа быть пустым?
- В чем суть ограничения целостности по существованию? В чем его отличие от ограничения целостности связи?
- Что такое «домен»? Как можно реализовывать ограничения целостности на «домене»?
- Какие ограничения целостности и каким образом могут быть заданы в CASE Studio?
- Что такое «транзакция»? С каким видом ограничений целостности обычно связаны транзакции?
- Как будет завершена транзакция, если ее выполнение прервано завершением программы?
- Какие виды ограничений целостности реализуются с помощью триггеров?
- Можно ли назначить пользователю две роли?
- Сравните группы и роли в системе защиты данных.
- Что водит в понятия «участники» и «защищаемые объекты» системы защиты данных?
- Опишите иерархию защищаемых объектов MS SQL Server.
- Назовите уровни ролей, используемые MS SQL Server.
- Сравните режимы проверки подлинности, используемые MS SQL Server.
- Какие инструкции SQL используются для назначения разрешений?
- Какие модели восстановления базы данных может использовать MS SQL Server?
- Можно ли обойтись для восстановления БД только разностной резервной копией?
- Какие возможности восстановления дает резервное копирование журнала транзакций?
Ссылка на первоисточник:
https://cbcol.mskobr.ru