Правила сдачи отчётов по лабораторным работам по почте

  1. Отчёт должен состоять из двух файлов: .doc (.docx) – файла Word, .sql – текстового файла с операторами SQL.
    SQL-файл высылается со всеми работами, начиная с 5-й, даже если он не менялся при выполнении очередной работы.
  2. Файл .doc (.docx) для каждой лабораторной работы должен содержать:

– номер, наименование и текст задания на лабораторную работу;

– наименование предприятия;

– скриншот схемы базы данных из MS Access (в светлой теме);

– операторы SQL, относящиеся к данной работе, если они требуются по условию работы (обязательно шрифт Courier);

– скриншоты, требуемые по условию работы.

  1. Файл .sql создаётся по следующим правилам:

– непосредственно перед операторами SQL для определённой лабораторной работы даётся комментарий с номером, наименованием и текстом задания на лабораторную работу;

– файл должен содержать операторы, необходимые для создания всех объектов базы данных, требуемых по условию лабораторных работ (всех таблиц, связей, представлений, процедур, функций, триггеров), а также все необходимые по заданию операторы для работы с этими объектами (использования представлений, вызова процедур и функций, запросов для отладки триггеров);

– текст sql-файла должен быть отформатирован со всеми уровнями вложенности аналогично тексту программ;

– файл от работы к работе должен только расширяться, предыдущие работы не модифицируются (в частности, не должны исчезать комментарии с заданиями предыдущих работ);

– файл должен быть построен таким образом, чтобы можно было многократно выполнять все операторы из файла (открыть файл в Management Studio, многократно нажать F5 и в результате пересоздать всю базу данных). Так как некоторые операторы обеспечивают создание объектов, а многократно создать объект нельзя, надо построить файл по следующему принципу:

DROP TABLE TABLE1

GO

CREATE TABLE TABLE1 . . .

GO

. . .

DROP PROCEDURE PROC1

GO

CREATE PROCEDURE PROC1 . . .

GO

. . .

4.      Решения лабораторных работ в виде отчёта отправляются по электронной почте на адреса: Vladimir Korotkevitch, Ludmila Korotkevitch.
Должны соблюдаться следующие правила:

1)      в теме письма должны быть указаны: фамилия студента, группа и номер лабораторной работы (тема письма должна быть написана на русском языке);

2)      каждое письмо должно содержать решение только одной работы;

3)      файлы обязательно архивируются с использованием архиватора zip;

4)      архив должен содержать doc-файл по выполненной работе и полный sql-файл (по выполненной работе и всем предшествующим);

5)      архив должен содержать только файлы без каких-либо каталогов;

6)      если письмо содержит исправление ошибки (оценка 0), то оно должно содержать замечания преподавателя, которые были исправлены (являться ответом на письмо преподавателя);

7)      все ответы на вопросы и все пояснения давать в письме, если преподаватель не попросил сделать это где-то в другом месте;

8)      если в письме есть ответ студента, его текст должен быть обязательно в самом начале письма.

5.      По результатам проверки может быть выставлена оценка:

1 – работа зачтена;

0 – работа не зачтена, замечания отправлены студенту по почте, требуется исправить ошибки и повторно прислать;

-1 – ошибок в работе нет, необходимо выполнить задание на соответствующую тему в присутствии преподавателя в компьютерном классе (конкретное задание даст преподаватель).

6.      Все работы по созданию представлений, процедур и функций должны содержать комментарий, объясняющий смысл параметров (если они есть) и получаемых данных, в стиле:

-- параметр - код группы

-- результат – информация о студентах группы

Имена параметров должны быть осмысленными и соответствовать смыслу значения параметра.

Имена представлений, процедур и функций должны быть осмысленными и соответствовать виду получаемых данных.

  1. Работы проверяются строго последовательно. Не проверяются работы, номер которых на 2 и более превышает номер последней не зачтённой (не присланной) работы. Повторно посылать такие работы не надо, они будут проверены после выполнения данного условия.  

Лабораторная работа №1

«Создание таблиц в среде Management Studio»

В отчёте должны быть представлены скриншоты по выполнению следующих действий:

1)      установки соединения с сервером в среде Management Studio;

2)      создания таблицы из собственной базы данных в среде Management Studio. В таблице должно быть более 2-х полей (таблица с данными по сотрудникам или должностям к рассмотрению не принимается);

3)      заполнения таблицы в среде Management Studio.

Лабораторная работа №2

«Экспорт данных из MS Access на SQL-сервер»

В отчёте должны быть представлены скриншоты по выполнению экспорта таблиц из MS Access на SQL-сервер с созданием ODBC-источника данных.

Необходимо подробно показать экспорт одной таблицы (экспорт таблицы с данными по сотрудникам или должностям к рассмотрению не принимается).

Лабораторная работа №3

«Доступ к данным на SQL-сервере из MS Access»

В отчёте должны быть представлены скриншоты по выполнению следующих действий:

1)      установки связи с таблицами на SQL-сервере из MS Access. Необходимо подробно показать установку связи с одной таблицей (установка связи с таблицей с данными по сотрудникам или должностям к рассмотрению не принимается);

2)      отображения данных с SQL-сервера в MS Access (открытие таблицы). Отображать надо данные той таблицы, установка связи с которой показана подробно. 

Лабораторная работа №4

«Выполнение SQL-запросов в среде Management Studio»

В отчёте должны быть представлены скриншоты по выполнению следующих действий:

1)      входа в программу Management Studio, установки связи с сервером;

2)      отображения данных из таблицы базы данных с помощью оператора Select (отображение данных по сотрудникам или должностям к рассмотрению не принимается).

Лабораторная работа №5

«Создание таблиц с помощью языка SQL»

В отчёте должен быть представлен текст SQL-запросов для создания всех таблиц разработанной базы данных.

Также в работе должны быть определены: одно значение поля по умолчанию, одно ограничение уникальности и одно проверочное ограничение. Значение поля по умолчанию, ограничение уникальности и проверочное ограничение на таблицы с данными по сотрудникам и должностям к рассмотрению не принимаются.

Лабораторная работа №6

«Определение связей между таблицами в среде Management Studio»

В отчёте должны быть представлены скриншоты по определению связи между двумя таблицами собственной базы данных в среде Management Studio (отчёт с определением связи между таблицами с данными по сотрудникам и должностям к рассмотрению не принимается).

Лабораторная работа №7

«Определение связей между таблицами с помощью языка SQL»

В отчёте должен быть представлен текст SQL-запросов для определения связей между таблицами (Alter Table + CONSTRAINT).

Также в Alter Table должны быть определены: одно ограничение уникальности и одно проверочное ограничение. Ограничение уникальности и проверочное ограничение на таблицы с данными по сотрудникам и должностям к рассмотрению не принимаются.

Лабораторная работа №8

«Использование SQL-запросов для заполнения базы данных»

В отчёте должен быть представлен текст SQL-запросов для занесения данных в базу данных – INSERT INTOVALUES.

В результате выполнения работы:

1)      в каждую таблицу должно быть занесено не менее 5-ти записей;

2)      в каждую дочернюю таблицу должно быть занесено больше записей, чем в любую из её родительских таблиц.

Лабораторная работа №9

«Создание представлений»

В отчёте должен быть представлен текст SQL-запроса для создания представления. Запрос в представлении должен возвращать данные не менее чем из 2-х таблиц базы данных (представление на основе таблиц с данными по сотрудникам и должностям к рассмотрению не принимается).

Отчёт также должен содержать скриншот по выполнению в среде Management Studio запроса с использованием представления.

Лабораторная работа №10

«Использование представлений в среде MS Access»

В отчёте должны быть представлены скриншоты по выполнению следующих действий:

1)      установки связи с представлением из MS Access;

2)      отображения данных с SQL-сервера в MS Access (открытие представления как таблицы).

Лабораторная работа № 11

«Создание простейшей хранимой процедуры на SQL-сервере»

В отчёте должен быть представлен текст SQL-запроса для создания параметризованной хранимой процедуры. Процедура должна воспринимать параметр – код объекта из какой-либо родительской таблицы базы данных и возвращать соответствующие записи из какой-либо дочерней таблицы (например, получать код студента и возвращать его оценки).

Процедура на основе таблиц с данными по сотрудникам и должностям к рассмотрению не принимается.

Также в отчёте должен быть представлен скриншот по вызову в среде Management Studio разработанной процедуры.

Лабораторная работа № 12

«Вызов хранимой процедуры в среде MS Access»

В отчёте должны быть представлены скриншоты по выполнению следующих действий:

1)      создания запроса к серверу для обращения к хранимой процедуре;

2)      отображения данных, возвращённых хранимой процедурой в MS Access (выполнение запроса к серверу).

Лабораторная работа № 13

«Создание параметризованной хранимой процедуры на SQL-сервере»

В отчёте должен быть представлен текст SQL-запроса для создания параметризованной хранимой процедуры. Процедура должна воспринимать 2 параметра – значения не ключевых полей двух родительских таблиц, по которым выполняется отбор записей дочерней таблицы, и возвращать соответствующие записи дочерней таблицы (например, получать фамилию преподавателя и фамилию студента, а возвращать оценки, выставленные заданным преподавателем указанному студенту).

Для параметров должны быть указаны значения по умолчанию (не NULL).

Если при вызове процедуры задано значение параметра NULL, отбор записей по этому параметру выполняться не должен (например, если в качестве фамилии преподавателя задано значение NULL, то должны быть возвращены все оценки заданного студента). Проверка значения NULL в параметрах должна выполняться в операторах IF, а не в условиях запросов.

Результирующий набор данных должен содержать все поля дочерней таблицы и поля родительских таблиц, по которым выполняется отбор записей (всегда один и тот же набор полей, даже если отбор по полям не выполняется).

В отчёте также должен быть представлен скриншот по вызову в среде Management Studio разработанной процедуры. Должны быть получены результаты при всех сочетаниях NULL / NOT NULL в параметрах, использованы позиционная, ключевая и смешанная формы задания параметров, использовано наличие значений по умолчанию.

Лабораторная работа № 14

«Реализация цикла просмотра записей в хранимой процедуре»

В отчёте должен быть представлен текст SQL-запроса для создания хранимой процедуры, обрабатывающей совокупность значений числового поля какой-либо таблицы базы данных. В процедуре должен быть организован цикл просмотра записей таблицы (без использования курсора) с определением некоторой числовой характеристики по совокупности значений поля. Значение характеристики должно быть возвращено из процедуры с помощью оператора RETURN.

Варианты условий лабораторной работы приведены здесь. Если условие работы подразумевает некоторую упорядоченность записей таблицы (например, «найти номер первого нулевого элемента последовательности»), то подразумевается, что записи упорядочены по возрастанию значения первичного ключа таблицы. Процедура может быть параметризована, в этом случае параметр в условии задачи обозначается @P.

Речь идет исключительно о цикле по записям. Не должно быть запросов с использованием группировочных функций по множеству записей или с использованием TOP, за исключением поиска ID очередной записи.

В отчёте, кроме основного условия работы, должен быть указан номер варианта, приведен текст задания в соответствии с номером варианта и дано пояснение, какое числовое поле из какой таблицы обрабатывается.

Также в отчёте должны быть представлены скриншоты по выполнению следующих действий:

1)      выполнения запроса для получения исходных данных из таблицы базы данных: поля первичного ключа и числового поля с элементами последовательности. Данные должны быть упорядочены по значению первичного ключа;

2)      вызов в среде Management Studio разработанной процедуры с сохранением в переменной значения, возвращенного процедурой, и отображением этого значения.

Лабораторная работа № 15

«Использование временных таблиц в хранимых процедурах»

В отчёте должен быть представлен текст SQL-запроса для создания параметризованной хранимой процедуры. Процедура должна воспринимать параметр – код объекта из какой-либо родительской таблицы базы данных и возвращать соответствующие записи из какой-либо дочерней таблицы (например, получать код студента и возвращать его оценки).

Формирование выходных данных в процедуре должно выполняться в три этапа:

1)      занесение выходных данных во временную таблицу с помощью SELECT INTO (например, оценок студента);

2)      модификация временной таблицы (например, удаление двоек) c помощью UPDATE или DELETE запроса;

3)      возврат содержимого временной таблицы как результата работы процедуры.

Процедура на основе таблиц с данными по сотрудникам и должностям к рассмотрению не принимается.

В отчёте также должен быть представлен скриншот по вызову в среде Management Studio разработанной процедуры.

Лабораторная работа № 16

«Создание временных таблиц в хранимых процедурах»

В отчёте должен быть представлен текст SQL-запроса для создания параметризованной хранимой процедуры. Процедура должна воспринимать параметр – код объекта из какой-либо родительской таблицы базы данных и возвращать соответствующие записи из какой-либо дочерней таблицы (например, получать код студента и возвращать его оценки).

Формирование выходных данных в процедуре должно выполняться в четыре этапа:

1)      временная таблица должна быть создана с помощью CREATE TABLE. Временная таблица должна содержать все поля дочерней таблицы и дополнительно хотя бы одно поле из родительской таблицы (например, все поля таблицы Оценка + фамилию студента);

2)      заполнение временной таблицы выполняется с помощью INSERT INTO SELECT, причем в дополнительное поле заносится NULL;

3)      занесение значения дополнительного поля в записи временной таблицы с помощью оператора UPDATE;

4)      возврат содержимого временной таблицы как результата работы процедуры.

Процедура на основе таблиц с данными по сотрудникам и должностям к рассмотрению не принимается.

В отчёте также должен быть представлен скриншот по вызову в среде Management Studio разработанной процедуры.

Лабораторная работа № 17

«Использование курсоров в хранимых процедурах»

В отчёте должен быть представлен текст SQL-запроса для создания параметризованной хранимой процедуры. Процедура должна воспринимать параметр – код объекта из какой-либо родительской таблицы базы данных и возвращать соответствующие записи из какой-либо дочерней таблицы (например, получать код студента и возвращать его оценки).

Формирование выходных данных в процедуре должно выполняться в пять этапов:

1)      создание временной таблицы с помощью CREATE TABLE. Временная таблица должна содержать все поля дочерней таблицы и дополнительно хотя бы одно поле из родительской таблицы (например, все поля таблицы Оценка + фамилию студента);

2)      выполнение запроса для получения значения поля родительской таблицы (фамилии студента);

3)      описание курсора, возвращающего записи дочерней таблицы;

4)      цикл ввода записей с помощью курсора. В теле цикла для каждой введённой записи выполняется запрос INSERT INTO VALUES для занесения введённых данных во временную таблицу;

5)      возврат содержимого временной таблицы как результата работы процедуры.

Процедура на основе таблиц с данными по сотрудникам и должностям к рассмотрению не принимается.

В отчёте также должен быть представлен скриншот по вызову в среде Management Studio разработанной процедуры.

Лабораторная работа № 18

«Разработка функции, возвращающей скалярное значение»

В отчёте должен быть представлен текст SQL-запроса для создания функции, возвращающей значение. Функция должна воспринимать параметр – код объекта из какой-либо родительской таблицы базы данных и возвращать значение, рассчитанное по соответствующим записям из какой-либо дочерней таблицы (например, получать код студента и возвращать его средний балл).

Функция на основе таблиц с данными по сотрудникам и должностям к рассмотрению не принимается.

Также в отчёте должен быть представлен скриншот по выполнению в среде Management Studio запроса для получения записей из родительской таблицы и соответствующего значения, рассчитанного функцией (кода, фамилии, группы студента и его среднего балла).

Лабораторная работа № 19

«Разработка функции, возвращающей таблицу одиночным запросом»

В отчёте должен быть представлен текст SQL-запроса для создания функции, возвращающей таблицу с помощью одиночного запроса (RETURNS TABLE). Функция должна воспринимать параметр – код объекта из какой-либо родительской таблицы базы данных и возвращать соответствующие записи из какой-либо дочерней таблицы (например, получать код студента и возвращать его оценки).

Функция на основе таблиц с данными по сотрудникам и должностям к рассмотрению не принимается.

Также в отчёте должен быть представлен скриншот по выполнению в среде Management Studio запроса с вызовом разработанной функции.

Лабораторная работа № 20

«Разработка функции, возвращающей таблицу,
полученную последовательностью операторов
SQL»

В отчёте должен быть представлен текст SQL-запроса для создания функции, возвращающей таблицу, полученную путём выполнения последовательности операторов SQL. Функция должна воспринимать параметр – код объекта из какой-либо родительской таблицы базы данных и возвращать таблицу, содержащую все поля дочерней таблицы, и дополнительно хотя бы одно поле из родительской таблицы (например, все поля таблицы Оценка + фамилию студента).

Формирование результирующей таблицы в функции должно выполняться в два этапа:

1)      получение значения поля родительской таблицы;

2)      выполнение запроса INSERT INTO SELECT для занесения данных в результирующую таблицу запроса.

Функция на основе таблиц с данными по сотрудникам и должностям к рассмотрению не принимается.

Также в отчёте должен быть представлен скриншот по выполнению в среде Management Studio запроса с вызовом разработанной функции.

Лабораторная работа № 21

«Разработка функции, возвращающей характеристику совокупности числовых значений»

В отчёте должен быть представлен текст SQL-запроса для создания скалярной функции, возвращающей числовую характеристику, определенную по совокупности числовых значений числового поля некоторой таблицы базы данных. Вариант условия лабораторной работы тот же, что и в работе №14.

Функция должна состоять из 3-х операторов:

1)      описания переменной для размещения результата;

2)      единственного SELECT-запроса к базе данных для получения требуемой характеристики и занесения значения в переменную (в запросе возможно использование подзапросов, в том числе в списке полей (возвращающих значение) и в предложении FROM (возвращающих набор данных));

3)      оператора RETURN.

Также в отчёте должны быть представлены скриншоты по выполнению следующих действий:

1)      выполнения запроса для получения исходных данных из таблицы базы данных: поля первичного ключа и числового поля с элементами последовательности. Данные должны быть упорядочены по значению первичного ключа;

2)      выполнения в среде Management Studio запроса для вызова функции и отображения полученного значения.

Лабораторная работа № 22

«Разработка триггеров для таблиц базы данных – поддержание ссылочной целостности»

Реализовать триггеры для поддержания ссылочной целостности базы данных. В отчёте должны быть представлены SQL-запросы для удаления описания некоторых связей между таблицами и создания триггеров для замены этих описаний. Должны быть разработаны триггеры следующих видов:

1)      для каскадного удаления записей дочерней таблицы при удалении записи родительской таблицы;

2)      запрета на удаление записи родительской таблицы при наличии связанных записей в дочерней таблице;

3)      контроля наличия записи родительской таблицы при занесении записи дочерней таблицы;

4)      контроля наличия записи родительской таблицы при изменении кода этой записи в дочерней таблице.

В отчёте также должны быть представлены скриншоты, демонстрирующие действие триггеров при работе с базой данных:

1)      для каскадного удаления записей: содержимое дочерней таблицы до удаления записи родительской таблицы, удаление записи родительской таблицы, содержимое дочерней таблицы после удаления записи родительской таблицы;

2)      для запрета на удаление: сообщение об ошибке при попытке удаления записи, успешное удаление записи при отсутствии данных в дочерней таблице;

3)      для контроля наличия записи: соответствующие сообщения об ошибке при неверных данных, успешное выполнение операции при допустимых данных.

Лабораторная работа № 23

«Разработка триггеров для таблиц базы данных – накопление суммарной информации»

Реализовать триггеры для накопления суммарной информации в таблице базы данных. В отчёте должны быть представлены следующие SQL-запросы:

1)      для добавления поля суммарной информации в таблицу (добавления поля СреднийБалл в таблицу Студент);

2)      первичного заполнения поля (заполнения поля СреднийБалл по текущему содержимому таблицы Оценка);

3)      создания триггеров для корректировки поля (пересчёт значения поля СреднийБалл при корректировке таблицы Оценка).

В отчёте также должны быть представлены скриншоты Management Studio, демонстрирующие действие триггеров:

1)      содержание таблицы после первичного заполнения;

2)      запросы на добавление, удаление, изменение записей таблицы, по которой выполняется расчёт данных (таблицы Оценка) и новое содержимое поля суммарной информации. Запросы на удаление и изменение должны вызывать перерасчёт поля более чем в одной записи.

Лабораторная работа № 24

«Разработка триггеров для таблиц базы данных – обновление данных через представление»

Реализовать триггеры для обновления данных через представление. С этой целью следует выбрать одну из таблиц базы данных (далее T), содержащую поле, значение которого повторяется в записях таблицы Т. По желанию такой атрибут можно добавить в существующую таблицу (цвет, например). Для выбранного поля создать таблицу-справочник (далее S) с полями код и значение атрибута. Создать таблицу T1, заменяющую таблицу Т, где вместо значения поля будет храниться код из справочника. Заполнить таблицы S и Т1. Заменить таблицу Т представлением с тем же именем. Разработать триггеры, обеспечивающие изменение содержимого Т1 через представление Т.

В отчёте должны быть представлены SQL-запросы для выполнения всех описанных выше действий и демонстрации содержимого S, T1, T после этого.

В отчёте также должны быть представлены скриншоты Management Studio, демонстрирующие действие триггеров:

1)      операторы добавления, удаления, изменения записей через представление;

2)      содержимое таблицы Т1 и представления Т после выполнения запросов.

Лабораторная работа № 25

«Предоставление прав на объекты базы данных»

В отчёте должны быть представлены скриншоты по предоставлению прав на собственные таблицы базы данных другому пользователю в среде Management Studio, а также текст SQL-запросов на предоставление прав другому пользователю.

Также должны быть представлены скриншоты, демонстрирующие получение в среде Management Studio данных из собственных таблиц другим пользователем как при наличии, так и при отсутствии прав.