
3 этапа курсовой кинотеатр
.docxМИНОБРНАУКИ РОССИИ
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ
ЭЛЕКТРОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
«ЛЭТИ» ИМ. В.И. УЛЬЯНОВА (ЛЕНИНА)
Кафедра информационных систем
КУРСОВАЯ РАБОТА
по дисциплине «Технологии баз данных»
Студенты гр.
Преподаватель Савосин С.В.
Санкт-Петербург
2021
Цель работы: разработка БД интернет-магазина.
Форма выполнения работы: курсовая работа.
Задание: база данных предназначена для кинотеатра. В ней хранится информация о показах, ценах на билеты, в нее же оперативно вносится информация о продажах и возвратах билетов. В кинотеатре может быть несколько залов, в каждом зале, очевидно, некоторое количество мест. Каждое место характеризуется категорией, от которой зависит цена места. Цена места определенной категории зависит от сеанса. В базе данных сохраняются также типовые расценки для мест различных категорий. Для каждого места в базе данных сохраняется название зала, ряд, собственно номер места, категория. По каждому фильму сохраняется название, жанр, продолжительность фильма, режиссер. Сеанс характеризуется фильмом, залом, в котором происходит показ, датой и временем начала, а также списком цен билетов для каждой категории. Типовая расценка характеризуется именем и списком цен билетов каждой категории (примером типовой расценки может быть «Блокбастер, вечерний сеанс»). Оперативная информация, фиксируемая в базе, бывает двух типов: покупка билета и возврат билета. По каждой покупке сохраняются сведения о сеансе (название фильма, название зала, время начала), место, полученная сумма. По каждому возврату – аналогично: сведения о показе, место и возвращенная сумма
План выполнения работы:
Анализ предметной области. Разработка концептуальной модели предметной области.
Формализация требований. Разработка ТЗ.
Разработка логической модели данных.
Разработка физической модели данных.
Этап 1. Анализ предметной области и бизнес-требований
а) Выделение и фиксация бизнес-требований к функциональности системы. Попробуем выделить группы субъектов для нашей системы и указать бизнес-требования.
Группы субъектов:
Сотрудники
Администрация
Кассовые работники
Посетители
б) Бизнес-требования:
БТ1: покупка билета посетителем
Посетитель может выбрать фильм, сеанс и место и приобрести билет в кассе кинотеатра.
Билету присваивается уникальный номер. Место, выбранное посетителем считается занятым и закрепленным за билетом с этим номером.
На билете указаны:
Название кинотеатра
Название фильма
Время сеанса
Номер зала
Номер места
Стоимость билета
БТ2: возврат билета посетителем
Кассовый работник может оформить возврат билета по его номеру по требованию посетителя.
Посетитель обращается в кассу напрямую или по телефону, называет номер билета и по этому номеру осуществляется возврат средств. После возврата место вновь считается свободным.
БТ3: организация сеансов администрацией
Администрация выбирает свободное время для проведения сеанса какого-либо из фильмов, находящихся в прокате, имеет возможность увидеть, какие залы свободны в это время, назначает зал. Создается новый сеанс со свободными местами, временем, датой и фильмом, который будут показывать. Исходя из этих данных формируется цена каждого места.
БТ4: добавление фильма администрацией
Администрация добавляет фильм, указывая его название, жанр, режиссера, год выпуска, маркер “блокбастер”, влияющий на ценообразование.
БТ5: отмена сеанса в прокате
Администрация имеет возможность отменить уже назначенный сеанс, указав зал и время. Если на этот сеанс уже были проданы билеты, задействуется механизм их возврата.
БТ6: администрация может регулировать цены на билеты.
На каждое место в зале есть нижний порог цены, который зависит от удобства. Далее происходит наценка, если показ происходит в вечерний сеанс или фильм обладает маркером блокбастер. Администрация может менять как нижний порог на группы мест в зависимости от удобства (например, из-за инфляции нужно поднять цены), а также регулировать коэффициенты наценки.
в) Глоссарий
Билет - объект, закрепляющий право за своим предъявителем на место на указанном сеансе (в указанное время в указанном зале на указанный фильм). Обладает уникальным номером, служащим для идентификации.
Сеанс - показ определенного фильма в определенном зале в определенное время.
Место - зарезервированное пространство для просмотра фильма, рассчитанное на 1 человека. Располагается в ряду, обладает порядковым номером в этом ряду.
Группа мест - объединение мест в одном зале по признаку общей степени удобства, что служит причиной для увеличения цены на билет относительно нижнего порога.
Фильм - произведение, которое показывают во время сеанса. Отличается от остальных фильмов по названию, году выхода, жанру и режиссеру.
Вечерний сеанс - сеанс, проходящий в вечерние/ночные часы. На вечерние сеансы больший спрос, чем на остальные, поэтому на места на вечерний сеанс есть наценка.
Блокбастер - фильм, обладающий особой популярностью. Спрос на билеты на такой фильм больше, поэтому есть наценка на билеты на фильмы с этим маркером.
Зал - пространство для показа фильма. В зале есть ряды, в рядах есть места, а также группы мест по комфорту.
Жанр - группа произведений, объединённых общими чертами и строением, служит для идентификации фильма
Режиссер - организатор, контролирующий работу команды на съемочной площадке, постановщик фильма, служит для идентификации фильма
Кассовый работник - сотрудник кинотеатра, оформляющий покупку и возврат билета для посетителя. По сути, посредник между посетителем и кинотеатром.
Этап 2. Разработка концептуальной модели данных предметной области и фиксация состава функциональных требований ТЗ на разработку БД
а) Сформировать концептуальную модель данных (КМД) в виде семантической модели
б) Техническое задание. Функциональные требования к разрабатываемой БД
У фильма может быть несколько режиссеров, режиссер мог снять несколько фильмов.
Каждый фильм обязательно принадлежит категории, это позволяет определить его как блокбастер или неблокбастер.
Каждый сеанс принадлежит категории, это позволяет определить наценку на билет за вечерний сеанс или какую-либо другую категорию (поэтому прямая связь между временем в зале и категорией сеанса отсутствует – как категорию сеанса можно выделить, например, премьерный показ или показ-обсуждение с журналистом).
В таблице «Время в зале» хранится «вакантное» время для проведения сеанса на какой-то срок (например, в таблице может хранится время для потенциального проведения сеанса для каждого зала на неделю). Каждый сеанс должен быть назначен на какое-то время в конкретном зале, но не все доступное время из таблицы «Время в зале» обязательно должно быть закреплено за каким-то сеансом.
Каждое место принадлежит категории (например, в зависимости от расположения относительно экрана). Это также влияет на стоимость билета.
Билету может соответствовать только одно место и один сеанс.
На сеанс может быть продано столько билетов, сколько мест в зале, где он проводится.
У фильма может быть несколько жанров, жанр относится к разным фильмам.
Во время сеансов показывают только существующие фильмы, на которые у кинотеатра есть прокатное удостоверение.
Фильмы могут называться одинаково.
Этап 3. Разработка логической модели данных.
Потенциальные ключи для независимых сущностей:
Режиссер
PK – Полное имя VARCHAR, дата рождения DATE
Жанр
PK – Название жанра VARCHAR
Категория фильма
PK – Наименование категории фильма VARCHAR
Категория сеанса
PK – Наименование категории сеанса VARCHAR
Зал
PK – Номер зала VARCHAR (могут использоваться буквенные обозначения)
Потенциальные ключи для зависимых сущностей:
Фильм
PK – Название фильма VARCHAR, дата премьеры фильма DATE
Время в зале
PK – Дата и время для проведения сеанса DATE
PFK – Номер зала VARCHAR
Места в зале
PK – номер места INTEGER
PFK – Номер зала VARCHAR, наименование категории места VARCGAR
Жанр фильма
PFK – Название жанра VARCHAR, название фильма VARCHAR, дата премьеры фильма DATE
Режиссер фильма
PFK – Полное имя VARCHAR, дата рождения DATE, название фильма VARCHAR, дата премьеры фильма VARCHAR
Сеанс
PFK – Номер зала VARCHAR, название фильма VARCHAR, дата премьеры фильма DATE, дата и время для проведения сеанса DATE
Билет
PFK - Номер зала VARCHAR, название фильма VARCHAR, дата премьеры фильма DATE, дата и время для проведения сеанса VARCHAR, номер места INTEGER
Не ключевые атрибуты сущностей:
Билет:
Цена DOUBLE
Категория места:
Наценка за категорию места DOUBLE
Категория сеанса:
Наценка за категорию сеанса DOUBLE
Категория фильма:
Наценка за категорию фильма DOUBLE
Фильм:
Возрастной ценз INTEGER
Полученная модель соответствует 3НФ.