Общие сведения программисту

ПОСТАНОВКА ЗАДАЧИ

Задание

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

В БД должны храниться сведения о кинотеатрах: название, адрес кинотеатра, телефон; о фильмах: название, производство, режиссер, жанр; кроме того, должна храниться информация о цене билета, количестве свободных мест на данный сеанс. На разных сеансах в одном кинотеатре могут идти разные фильмы.

Цена билета определяется названием фильма, категорией кинотеатра и сеансом.

Посетителям могут потребоваться следующие сведения о текущем состоянии проката фильмов в городе:

ü репертуар кинотеатра

ü адрес

ü число мест (свободных) на данный сеанс

ü цена билетов на данный сеанс

ü жанр, производство и режиссер данного фильма

ü вместимость данного кинотеатра

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

Проанализировав задание, внесем некоторые коррективы:

ü Категория у кинотеатра отсутствует. Вместо неё определяется состояние залов — Работает (Да/Нет).

ü Цена билета определяется прокатной стоимостью (годом выпуска) фильма и временем сеанса.

Проектирование БД

После проведения анализа предметной области, выделим следующие сущности [1], [2], [3]: КИНОТЕАТРЫ, ФИЛЬМЫ, ЗАЛЫ, СЕАНСЫ.

Рассмотрим сущности КИНОТЕАТРЫ и ЗАЛЫ, имеющие следующие атрибуты:

КИНОТЕАТРЫ (Название кинотеатра, Адрес, Телефон);

ЗАЛЫ (Код зала, Наименование зала, Вместимость, Работает, Кинотеатр);

n
 
У кинотеатра может быть несколько залов, но каждый зал закрепляется за одним кинотеатром, следовательно, имеем отношение один-ко-многим
(см. рис 1.1).

 
 

Рисунок 1.1

Рассмотрим сущности КИНОТЕАТРЫ и ЗАЛЫ, имеющие следующие атрибуты:

ФИЛЬМЫ (Название фильма, Жанр, Режиссер, Производство, Год выпуска);

ЗАЛЫ (Код зала, Наименование зала, Вместимость, Работает);

m
n
Сущности «ФИЛЬМЫ» и «ЗАЛЫ» связаны отношением многие-ко-многим, т.к. один фильм может идти в разных залах, и в одном зале может идти несколько фильмов (в разное время). Получаем следующую ER-диаграмму
(см. рис 1.1).

 
 

Рисунок 1.2

Рассмотрим сущности СЕАНСЫ и ЗАЛЫ, имеющие следующие атрибуты:

ЗАЛЫ (Код зала, Наименование зала, Вместимость, Работает);

СЕАНСЫ (Зал, Дата, Время, Свободные места, Кинотеатр, Фильм);

 
В зале идет несколько сеансов, но каждый сеанс определяется своим залом, следовательно, имеем отношение один-ко-многим (см. рис. 1.3).

 
 

Рисунок 1.3

Рассмотрим сущности СЕАНСЫ и ФИЛЬМЫ, имеющие следующие атрибуты:

ФИЛЬМЫ (Название фильма, Жанр, Режиссер, Производство, Год выпуска);

СЕАНСЫ (Зал, Дата, Время, Свободные места, Кинотеатр, Фильм);

 
Один фильм идет на разных сеансах, но каждый сеанс определяется своим фильмом, следовательно, имеем отношение один-ко-многим (см. рис. 1.4).

 
 

Также имеем таблицу ЖАНРЫ, имеющую следующие атрибуты:

ЖАНРЫ(Жанр, Описание);

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

Рисунок 1.4

В итоге получаем следующие сущности:

КИНОТЕАТРЫ (Название кинотеатра, Адрес, Телефон);

ФИЛЬМЫ (Название фильма, Жанр, Режиссер, Производство, Год выпуска);

ЗАЛЫ (Код зала, Наименование зала, Вместимость, Работает, Кинотеатр);

СЕАНСЫ (Зал, Дата, Время, Свободные места, Кинотеатр, Фильм);

ЖАНРЫ(Жанр, Описание).

ОБЩИЕ СВЕДЕНИЯ ПРОГРАММИСТУ

Наши рекомендации