Практикум по Базам Данных (Методические материалы) (1127013), страница 6
Текст из файла (страница 6)
Подготовленные скрипты должны работать с одной из таблиц,созданных в практическом задании №3.Для проверки наличия аномалий потребуются два параллельных сеанса, операторы в которыхвыполняются пошагово. Установить в обоих сеансах уровень изоляции READ UNCOMMITTED. Выполнить сценариипроверки наличия аномалий потерянных изменений и грязных чтений. Установить в обоих сеансах уровень изоляции READ COMMITTED. Выполнить сценариипроверки наличия аномалий грязных чтений и неповторяющихся чтений. Установить в обоих сеансах уровень изоляции REPEATABLE READ. Выполнить сценариипроверки наличия аномалий неповторяющихся чтений и фантомов. Установить в обоих сеансах уровень изоляции SERIALIZABLE.
Выполнить сценарий проверкиналичия фантомов.Темы для проработки Понятие транзакции, свойства транзакций. Аномалии доступа к БД: потерянные изменения, грязные чтения, неповторяющиеся чтения,фантомы. Уровни изолированности SQL/92: READ UNCOMMITTED, READ COMMITTED, REPEATABLEREAD, SERIALIZABLE. Управление транзакциями в MS SQL Server.ПримерыВ качестве примера исследуем наличие аномалии грязного чтения на уровне READUNCOMMITTED. Установим уровень изолированности READ UNCOMMITTED и покажем, что в этомслучае допускаются грязные чтения:№Сеанс 1Сеанс 21SET TRANSACTION ISOLATION LEVEL READUNCOMMITTEDSET TRANSACTION ISOLATION LEVELREAD UNCOMMITTED2BEGIN TRANSACTIONBEGIN TRANSACTION31SELECT [Year] FROM Album WHERE ID = 13Year----------1972UPDATE Album SET [Year] = 1974WHERE ID = 14SELECT [Year] FROM Album WHERE ID = 15Year----------1974ROLLBACK6SELECT [Year] FROM Album WHERE ID = 17Year----------19728COMMITИз этого примера видно, что уровень изолированности READ UNCOMMITTED допускает грязныечтения.
Остальные сценарии предлагается проверить самостоятельно.Примеры вопросов по обязательной частиРассказать об аномалиях доступа к БД.Перечислить аномалии, возникающие на каждом из уровней изолированности.Рассказать о свойствах транзакций.Рассказать об управлении транзакциями.Что такое тупики? Как бороться с тупиками?На каком уровне изолированности возможны тупики?Как обеспечивается изолированность транзакций в СУБД?Как бороться с проблемой фантомов?Что такое гранулированные блокировки?Как можно избежать блокировки при конфликте Read-Write?Что такое журнал транзакций?Как обеспечивается постоянство хранения (durability) в СУБД?Примеры дополнительных вопросов Продемонстрировать откат транзакции при возникновении ошибок. Продемонстрировать возникновение тупика. Исправить неверные сценарии проверки аномалий.32Практическое задание №7.
Управление доступом в MS SQL ServerПостановка задачиЦелью седьмого практического задания является освоение способов управления доступом вMicrosoft SQL Server. При выполнении задания необходимо: Выдать пользователю test\test доступ к базе данных (назначить ему роль уровня базыданных public). Составить и выполнить скрипты присвоения новому пользователю прав доступа к таблицам,созданным в практическом задании №3. При этом права доступа к различным таблицамдолжны быть различными, а именно:o По крайней мере, для одной таблицы новому пользователю присваиваются праваSELECT, INSERT, UPDATE в полном объеме.o По крайней мере, для одной таблицы новому пользователю присваиваются праваSELECT и UPDATE только избранных столбцов.o По крайней мере, для одной таблицы новому пользователю присваивается толькоправо SELECT. Присвоить новому пользователю право доступа (SELECT) к представлению, созданному впрактическом задании №5. Создать стандартную роль уровня базы данных, присвоить ей право доступа (UPDATE нанекоторые столбцы) к представлению, созданному в практическом задании №5, назначитьновому пользователю созданную роль. Выполнить от имени нового пользователя некоторые выборки из таблиц и представления,подготовленные в практических заданиях №4 и №5.
Убедиться в правильности контроляправ доступа. Выполнить от имени нового пользователя операторы изменения таблиц с ограниченнымиправами доступа. Убедиться в правильности контроля прав доступа.Темы для проработкиСредства управления доступом в MS SQL Server.Аутентификация и авторизация.Роли и привилегии.Директивы GRANT, DENY и REVOKE.Примеры вопросов по обязательной части В чем различия имени входа (логина) и пользователя?33Рассказать о ролях уровня сервера.Рассказать о ролях уровня базы данных.Можно ли создать свою роль уровня сервера?Для чего нужны роли?Что такое схема?Рассказать о роли уровня базы данных public.Рассказать про директивы GRANT, DENY и REVOKE.Как разрешить пользователю предоставлять разрешение другим пользователям?Как добавить нового пользователя в текущую базу данных?Как создать новый логин?Примеры дополнительных вопросовИсправить ошибки в обязательной части.Сменить владельца базы данных.Сменить пароль для имени входа.Сменить базу данных по умолчанию для имени входа.Определить роль с заданными правами.34Практическое задание №8.
Использование метаданных о структуреБДПостановка задачиВосьмое практическое задание посвящено выборке метаданных о структуре базы данных.Необходимо составить следующие запросы на выборку сведений о таблицах, представлениях,триггерах, созданных в процессе выполнения практических заданий: Выбрать имена всех таблиц, созданных назначенным пользователем базы данных. Выбрать имя таблицы, имя столбца таблицы, признак того, допускает ли данный столбецNULL-значения, название типа данных столбца таблицы, размер этого типа данных - для всехтаблиц, созданных назначенным пользователем базы данных и всех их столбцов. Выбрать название ограничения целостности (первичные и внешние ключи), имя таблицы, вкоторой оно находится, признак того, что это за ограничение ('PK' для первичного ключа и 'F'для внешнего) - для всех ограничений целостности, созданных назначенным пользователембазы данных. Выбрать название внешнего ключа, имя таблицы, содержащей внешний ключ, имя таблицы,содержащей его родительский ключ - для всех внешних ключей, созданных назначеннымпользователем базы данных. Выбрать название представления, SQL-запрос, создающий это представление - для всехпредставлений, созданных назначенным пользователем базы данных. Выбрать название триггера, имя таблицы, для которой определен триггер - для всехтриггеров, созданных назначенным пользователем базы данных.Темы для проработки Структура системных представлений в Microsoft SQL Server.ПримерыВ качестве примера выведем список всем ограничений целостности типа CHECK для нашейбазы данных в следующем формате: название таблицы, название ограничения, проверяемоеусловие:SELECTso2.[name] AS 'Table',so1.[name] AS 'Constraint',sc.[text] AS 'Condition'FROMsys.sysobjects so1JOIN sys.sysobjects so2 ON so1.parent_obj = so2.idJOIN sys.syscomments sc ON so1.id = sc.idWHERE so1.xtype = 'C'35Table------------LikeSongAlbumAlbumUserName--------------------CK_Like_ScoreCK_SongAlbum_TrackNoCK_Album_YearCK_User_BirthDateCondition---------------------------------------------------------([Score]>(0) AND [Score]<(6))([TrackNo]>(0))([Year]>(1900) AND [Year]<=datepart(year,getdate()))((datepart(year,getdate())-datepart(year,[BirthDate]))>=(7))Примеры вопросов по обязательной части В чем разница между sys и INFORMATION_SCHEMA? Как обеспечить максимальную переносимость скриптов, использующих метаданные, надругие SQL-ориентированные СУБД?Примеры дополнительных вопросовИсправить ошибки в подготовленных выборках.Выбрать имена баз данных и файлы, соответствующие им на диске.Выбрать названия ролей и имена пользователей, входящих в эти роли.Вывести текст запроса, создающего какое-либо системное представление.Составить различные другие выборки по заданию преподавателей.36Практическое задание №9.
Создание и использование триггеровПостановка задачиДевятое практическое задание посвящено созданию и использованию триггеров дляподдержания целостности данных. Необходимо составить скрипт для создания триггера согласноиндивидуальному варианту, а также подготовить несколько запросов для проверки идемонстрации работы триггера.Темы для проработки Функции триггеров. Типы триггеров и условия их срабатывания. Создание и использование триггеров в MS SQL Server.ПримерыВ качестве примера реализуем следующее ограничение целостности, имеющее смысл дляпредметной области «музыкальные предпочтения»: пользователь может оценивать не более 5песен в сутки.