- •И.И. Довгялло, с.М. Юдина база данных 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
Вариант 24
В первой главе курсового проекта описать процесс проектирования базы данных «Учет продаж билетов в кинотеатре с несколькими залами». Спроектировать базу данных методом нормализации и методом семантического моделирования. Данные, которые должны храниться в базе, представлены в виде одной таблицы со следующими столбцами:
Код зала
Наименование зала
Общее количество мест в зале
Количество мест 1-ой категории (остальные места 2-ой категории)
Код кинофильма
Название кинофильма
Год выпуска
Название киностудии
Код категории кинофильма
Наименование категории кинофильма (блокбастер и т.д., достаточно 3-х категорий)
Цена билета на место 1-ой категории
Цена билета на место 2-ой категории
Дата сеанса
Время начала сеанса
Продолжительность сеанса
Количество проданных мест 1-ой категории на 1 сеанс
Количество проданных мест 2-ой категории на 1 сеанс
2. Разработать базу данных, таблицы и заполнить их данными. В списке залов 3-4 записи. В каждом зале ежедневно проходит по 4-7 сеансов. Всего рассмотреть не менее 3 дат, использовать одни и те же даты для всех залов. В списке кинофильмов 10-12 картин, по 3-5 фильмов в каждой категории. Одна и та же картина может идти в нескольких залах одновременно. Задать минимальное значение поля Цена одного билета равным ста рублям. Добавить в таблицу, в которой содержится поле Время начала сеанса, ограничение для проверки правильности ввода поля: Время начала сеанса не позднее 21 часа. Создать для каждой таблицы первичный ключ, а также внешние ключи для всех дочерних таблиц. Установить постоянные отношения между дочерними и родительскими таблицами (создаются при построении диаграммы базы данных). Задать ограничение NOT NULL для всех полей, входящих в первичные или внешние ключи.
3. Структуры таблиц и содержимое таблиц привести во второй главе пояснительной записки к курсовому проекту «Создание таблиц».
4. В третьей главе курсового проекта «Основные команды SQL для извлечения, добавления и изменения данных» выполнить следующие действия и представить их результаты.
4.1. Показать список кинофильмов показанных в заданном зале. Номер зала задать с помощью подстановочной переменной. В запросе вывести поля: Код и наименование зала, Дату и Время сеанса, Код и Название кинофильма, количество проданных билетов 1-ой и 2-ой категории.
4.2. Преобразовать предыдущий запрос таким образом, чтобы он выводил список показанных кинофильмов за заданный период времени.
4.3. Создать сгруппированный запрос с подсчетом общего количества и стоимости проданных мест по каждому залу. Показать поля: Код и наименование зала, общее количество и стоимость проданных мест.
4.4. Выдать список из трех кинофильмов (Название кинофильма, Год выпуска, Название киностудии, стоимость проданных билетов) для которых общая стоимость проданных билетов наибольшая.
4.5. Создать и заполнить новую таблицу (с помощью запроса) с полями: Код и наименование зала, Общее количество мест в зале, Среднее количество проданных билетов в зале за весь период, процент заполняемости зала (отношение среднего количества проданных билетов в каждом зале к общему количеству мест).
4.6. Повысить стоимость билетов на блокбастеры на места 1-ой категории на 20%, а на места 2-ой категории на 10%.
4.7. Создать список кинофильмов, для которых общая стоимость проданных билетов ниже средней по каждой категории кинофильмов.
4.8. Выдать список кинофильмов, которые показывают на заданную Дату и Время сеанса. Просматривать сеансы в интервале два часа от заданного Времени сеанса.
5. В четвертой главе должны быть представлены разработанные процедуры и функции.
5.1. Разработать функцию, которая определяла бы цену билета на места 1-ой и 2-й категории для определенного кинофильма. Проверить работу функции с помощью запроса.
5.2. Создать процедуру с параметрами «Код категории кинофильма», «Цена билета на места 1-ой категории» и «Цена билета на места 2-ой категории». Процедура должна выполнять проверку, есть ли данная категория в списке категорий. Если такая запись существует, следует изменить значение полей «Цена билета …» на соответствующие значения параметров. Если такой категории в списке нет, то необходимо добавить новую запись.
6. В пятой главе должны быть разработаны и отображены триггеры, обеспечивающие целостность данных в создаваемой базе данных.
6.1. Создать триггер, который при вводе новой записи о сеансе проверял бы, существует ли заданный Код кинофильма в списке кинофильмов, и Код категории кинофильма – в списке категорий. Если отсутствуют заданные Код кинофильма или Категория необходимо откатить транзакцию и выдать сообщение.
6.2. Создать процедуру с параметрами «Код категории кинофильма», «Цена билета на места 1-ой категории» и «Цена билета на места 2-ой категории». Процедура должна выполнять проверку, есть ли данная категория в списке категорий. Если такая запись существует, следует изменить значение полей «Цена билета …» на соответствующие значения параметров. Если такой категории в списке нет, то необходимо добавить новую запись.
6.3. Создать триггер на удаление кинофильма из списка кинокартин, который бы проверял, намечены ли показы данной картины в сеансах. Если в сеансах не предусмотрен показ, то кинофильм удаляется из списка, в противном случае необходимо выдать сообщение и откатить транзакцию.