- •И.И. Довгялло, с.М. Юдина база данных sql Server 2005. Курсовое проектирование
- •Введение
- •1. Цель и задачи работы над курсовым проектом
- •2. Структура пояснительной записки
- •3. Общие требования к выполнению курсоВого проекта и содержанию пояснительной записки
- •4. Пример задания на курсовое проектирование
- •5. Пример пояснительной записки курсового проекта
- •5.1. Введение
- •5.2. Пример оформления главы 1 « Проектирование базы данных»
- •5.2.1. Проектирование базы данных методом нормализации таблиц
- •5.1.2. Проектирование базы данных методом семантического моделирования в среде Erwin
- •5.3. Пример оформления главы 2 «Создание таблиц в sql Server 2005 »
- •5.3.1. Команды создания и модификации таблиц
- •5.3.2. Построение диаграммы базы данных
- •5.3.3. Просмотр структуры и содержимого таблиц
- •5.4. Пример оформления главы 3 «Основные команды sql для извлечения, добавления и изменения данных»
- •5.5. Пример оформления главы 4. «Создание процедур и функций»
- •5.7. Пример оформления главы 5 «Создание триггеров»
- •5.8. Пример оформления заключения по курсовому проекту
- •6. Нормативные требования к оформлению курсового проекта
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Вариант 16
- •Вариант 17
- •Вариант 18
- •Вариант 19
- •Вариант 20
- •Вариант 21
- •Вариант 22
- •Вариант 23
- •Вариант 24
- •Вариант 25
- •Вариант 26
Вариант 18
1. Спроектировать базу данных «Аптечная сеть» методом нормализации и методом семантического моделирования. Данные, которые должны храниться в базе, представлены в виде одной таблицы со следующими столбцами:
Код аптеки;
Наименование аптеки;
Адрес аптеки;
Код медикамента;
Наименование медикамента;
Код формы выпуска;
Наименование формы выпуска (таблетки, капсулы, ампулы, тюбики и т.д.); Цена за единицу медикамента;
Наличие медикамента;
Дата поступления медикамента;
Поступило медикамента;
Дата реализации медикамента;
Реализовано медикамента;
Нормативный запас медикамента.
2. Разработать базу данных, таблицы и заполнить их данными. Таблица должна содержать не менее 3-4 аптек. Номенклатура медикаментов в каждой аптеке должна содержать не менее 10 наименований. Номенклатура медикаментов в разных аптеках должна частично совпадать. Одинаковые медикаменты с разными формами выпуска должны иметь одинаковые названия, но разные коды медикамента. Добавить в таблицы, в которых содержится поле Дата поступления медикамента, ограничение для проверки правильности ввода поля: Дата поступления медикамента не должна быть ранее текущей даты. Создать для каждой таблицы первичный ключ, а также внешние ключи для всех дочерних таблиц. Установить постоянные отношения между дочерними и родительскими таблицами (создаются при построении диаграммы базы данных). Задать ограничение NOT NULL для всех полей, входящих в первичные или внешние ключи.
3. Структуры таблиц и содержимое таблиц привести во второй главе пояснительной записки к курсовому проекту «Создание таблиц».
4. В третьей главе курсового проекта «Основные команды SQL для извлечения, добавления и изменения данных» выполнить следующие действия и представить их результаты.
Создать запрос для выдачи следующих данных для медикамента определенного наименования: Код аптеки, Наименование аптеки, Адрес аптеки, Наименование медикамента, Наименование формы выпуска, Цена медикамента за единицу, Наличие медикамента.
Создать сгруппированный запрос для подсчета общей стоимости медикаментов в каждой аптеке за определенный календарный период.
Создать сгруппированный запрос с подсчетом количества и стоимости каждого вида медикамента в целом по аптечной сети.
Увеличить цену каждого медикамента определенной формы выпуска на 2%.
Скопировать в новую таблицу следующие данные: Код аптеки, Наименование аптеки, Код медикамента, Наименование медикамента, Наименование формы выпуска для медикаментов, наличие которых меньше нормативного запаса на 50%.
Создать запрос, выводящий список медикаментов, общая стоимость которых выше средней по сети. Вывести следующие данные: Код медикамента, Наименование медикамента, Наименование формы выпуска, Стоимость реализованных медикаментов.
5. В четвертой главе должны быть представлены разработанные процедуры и функции.
5.1. Создать функцию для определения стоимости определенного медикамента на заданное количество единиц реализации. Проверить работу функции с помощью запроса.
5.2. Создать процедуру с параметрами Код медикамента и Цена за единицу медикамента. Процедура должна выполнять проверку, есть ли данный медикамент в списке медикаментов. Если такая запись существует, следует изменить значение поля Цена за единицу медикамента на значение параметра. Если такого медикамента еще нет в списке, следует добавить о нем новую запись.
6. В пятой главе должны быть разработаны и отображены триггеры, обеспечивающие целостность данных в создаваемой базе данных.
6.1. Создать триггер, который при вводе новой записи о поступлении медикамента проверял бы, существует ли код данного медикамента в списке медикаментов, а код аптеки – в списке аптек. В случае неправильного ввода того или другого параметра следует выдать сообщение и откатить транзакцию. Если оба параметра введены правильно, то значение поля наличие увеличивается на количество поступившего медикамента.
6.2. Создать триггер, который бы при вводе новой записи о реализации медикамента проверял бы, существует ли код данного медикамента в списке медикаментов, а также наличие нужного количества данного медикамента. В случае, если код введен неправильно или в наличии нет достаточного количества медикамента, следует выдать соответствующее сообщение и откатить транзакцию. Если медикамент есть в достаточном количестве, то значение поля наличие уменьшить на количество реализуемого медикамента.
6.3. Создать триггер на удаление записи из списка Форм выпуска. В теле триггера осуществить проверку, существуют ли записи о наличии медикамента с заданной Формой выпуска и отменить удаление, если такая запись имеется.