Лабораторная работа № 3 Написание DDL-запросов на языке T-SQL Часов: 4 Цель работы

advertisement
Лабораторная работа № 3
Написание DDL-запросов на языке T-SQL
Часов: 4
Цель работы
Изучение принципов написания запросов на создание, удаление
и модификацию таблиц, хранимых процедур и представлений. Получение представления о хранимых процедурах и представлениях, а также
целях их использования. Освоение создания объектов БД с помощью
SSMS и формирование сценариев для создания этих объектов.
После выполнения ЛР студенты должны уметь (используя
только текстовый редактор запросов):
1. пользоваться SSMS для формирования сценариев (script);
2. создавать таблицы с заданными атрибутами, типами атрибутов, первичными ключами;
3. создавать связи между таблицами (внешние ключи);
4. задавать простые ограничения (constraint) на атрибуты;
5. создавать представления (view) и хранимые процедуры (ХП) с
параметрами.
Ход работы
1. Оформить запросы из ЛР №2: UPDATE, DELETE, UPDATE –
в виде ХП, запросы SELECT – в виде представлений (они потребуются ЛР №5).
2. Сделать резервную копию базы данных.
3. Написать сценарий (набор запросов) на языке SQL для выделения атрибута в отдельную таблицу-справочник.
4. При
необходимости
восстанавливать
резервную
копию
(например, если в процессе выполнения сценария произошли
ошибки и база оказалась в промежуточном некорректном состоянии или произошла случайная потеря данных).
5. Создать представление в соответствии с заданием. В запросе в
представлении использовать LEFT JOIN (или RIGHT JOIN).
6. Создать хранимую процедуру с параметром (параметрами).
7. Подготовить и сдать отчет преподавателю в печатном виде и
ответить на дополнительные вопросы.
Оформление отчетов
Отчет о выполнении лабораторной работы оформляется в печатном виде, должен включать титульный лист и состоять из следующих
структурных элементов и разделов:
– цель работы;
– постановка задачи;
– порядок выполняемых действий с описанием;
– порядок выполнения задания на защиту ЛР с описанием;
– выводы по работе.
2
Варианты и задания на лабораторную работу
Задание 1 следует выполнять по следующему алгоритму:
1.
Создать таблицу-справочник ([Код …], [Наименование
…]).
2.
Добавить новый атрибут [Код …] в исходную таблицу
и сделать его внешним ключом на созданную таблицу.
3.
Заполнить созданную таблицу существующими данными из значений атрибута исходной таблицы.
4.
Обновить значения внешних ключей нового атрибута
исходной таблицы на соответствующие значения из созданной таблицы.
5.
Удалить лишний атрибут из исходной таблицы.
6.
Установить обязательность нового атрибута исходной
таблицы (NOT NULL).
Вариант 1
Задание 1. Выделить атрибут «Должность» в таблице «Преподаватели» в отдельную таблицу-справочник.
Задание 2. Написать
представление
«Институты_Студенты»,
отображающее список студентов, обучающихся в институтах. Атрибуты: Институт, Номер группы, Год поступлениия,
Год окончания, Форма обучения, ФИО студента, Форма
оплаты. В списке должны присутствовать все институты, в
том числе не содержащие групп, а также группы, в том числе не содержащие студентов.
3
Задание 3. Написать хранимую процедуру «Установить отметку
за экзамен», которая должна поставить отметку за экзамен
указанному студенту по указанной дисциплине. Входные
параметры: ID Студента, Дата сдачи, Отметка, Номер семестра, Код дисциплины. Предполагать, что (ID группы,
Код дисциплины, Номер семестра обучения) является составным потенциальным ключом в таблице Дисциплина в
семестре.
Вариант 2
Задание 1. Выделить атрибуты «Отметка» и «Литера» в таблице
«Зачетная ведомость» в отдельную таблицу-справочник.
Задание 2. Написать представление «Преподаватели-лекторы»,
отображающее список преподавателей и дисциплины, по
которым они читают лекции. Атрибуты: ФИО преподавателя, Должность, Наименование дисциплины, количество часов в неделю, Форма контроля. В списке должны присутствовать все преподаватели, включая тех, кто лекции не читает вообще.
Задание 3. Написать хранимую процедуру «Добавить студента»,
которая должна добавлять нового студента. ХП содержит
входные параметры: ФИО студента, Пол, Адрес проживания, Дата рождения, Уровень владения ИЯ, Форма оплаты,
Номер группы, Год поступления. В задании предполагать,
что Номер группы, Год поступления является составным
потенциальным ключом в таблице Группы.
Вариант 3
4
Задание 1. Выделить атрибут «Уровень владения ИЯ» в таблице
«Студенты» в отдельную таблицу-справочник.
Задание 2. Написать представление «Группы_Предметы», отображающее список предметов, изучаемых каждой группой.
Атрибуты: Номер группы, Год поступления, Год окончания,
Номер семестра, Наименование дисциплины, ФИО лектора.
В списке должны присутствовать все группы, включая тех, у
которых отсутствуют изучаемые предметы.
Задание 3. Написать хранимую процедуру «Добавить дисциплину в семестре», которая должна добавлять занятие по
указанной дисциплине для указанного преподавателя. ХП
содержит входные параметры: Код дисциплины, Количество
часов в неделю, Код формы контроля, ФИО лектора, Номер
группы, Год поступления. В задании предполагать, что
ФИО является потенциальным составным ключом в таблице
Преподаватели, а (Номер группы, Год поступления) – потенциальный составной ключ в таблице Группы.
Вариант 4
Задание 1. Выделить атрибут «Учёное звание» в таблице «Преподаватели» в отдельную таблицу-справочник.
Задание 2. Написать
представление
«Студенты_Отметки»,
отображающее список студентов и результаты сдачи ими
дисциплин. Атрибуты: ФИО студента, Номер семестра,
Наименование дисциплины, отметка. В списке должны присутствовать все студенты, включая тех, у которых отсутствуют отметки.
5
Задание 3. Написать хранимую процедуру «Добавить преподавателя». ХП содержит входные параметры: ФИО, Должность, Учёное звание, Наименование института. В задании
предполагать, что Наименование института является потенциальным ключом в таблице Институты.
Вариант 5
Задание 1. Выделить атрибут «Семейное положение» в таблице
«Преподаватели» в отдельную таблицу-справочник.
Задание 2. Написать представление «Преподаватели_Отметки»,
отображающее список преподавателей и результаты приёма
ими дисциплин. Атрибуты: ФИО преподавателя, Должность, Номер семестра, Наименование дисциплины, отметка. В списке должны присутствовать все преподаватели,
включая тех, у которых отсутствуют отметки.
Задание 3. Написать хранимую процедуру «Добавить группу».
ХП содержит входные параметры: Наименование группы,
Год поступления, Длительность обучения, Наименование
направления подготовки, Наименование института. В задании предполагать, что Наименование направления подготовки является потенциальным ключом в таблице Направления подготовки, а Наименование института – потенциальный составной ключ в таблице Институты.
Оценка выполнения лабораторной работы
Лабораторная работа оценивается максимально в 6 баллов. Баллы начисляются с учетом полноты и правильности выполнения задания
(табл. 1). Минимальное количество баллов, при котором работа может
6
быть зачтена, – 4. За несвоевременную сдачу отчета в ведомость выставляется 60% от набранных баллов.
Таблица 1
Оцениваемые параметры
Максимальное
количество
баллов
1.
Отчет подготовлен в соответствии с действу-
1
ющим стандартом оформления
2.
Верность оформления в виде ХП и представ-
1
лений запросов из ЛР №2.
3.
Корректность и оптимальность сценария для
2
выделения атрибута в отдельную таблицусправочник
4.
Корректность и оптимальность представления
1
5.
Корректность и оптимальность ХП
1
Всего баллов
6
Усложненные задания
За эти задания будут выставлены дополнительные баллы (по числу
«звёздочек») первому студенту, предоставившему корректный и
оптимальный сценарий и объяснившему его работу
1.
* Написать сценарий, создающий 99 групп очной формы обучения
по 150 студентов в каждой со случайной формой оплаты обучения.
Группы именовать по порядку начиная с 8и01. Фамилии студентов задавать «Фамилия_G_N_M», где G – номер группы, N – порядковый номер студента в группе, M – сквозной порядковый номер студента.
7
2.
**
Написать
сценарий,
заменяющий
связь
1:М
Институт-
Преподаватели на связь М:М через промежуточную таблицу. Учесть,
что в разных институтах один преподаватель может иметь разные
должности.
3.
**** При переводе студента из одной группы в другую может воз-
никнуть разница в учебных планах, то есть два набора дисциплин:
(1) дисциплины, которые изучались студентом в старой группе, но которые не требовалось изучать в новой, и (2) дисциплины, которые
должны были изучаться в новой, но не изучались им в старой группе.
Написать ХП, переводящую студента в другую группу, при этом выдающую два списка дисциплин с указанием номеров семестров и количества часов в неделю.
8
Download