96521

Проектирование базы данных кинотеатра

Курсовая

Информатика, кибернетика и программирование

Построение инфологической (концептуальной) модели предметной области. Проектирование логической модели базы данных в ERWin Data Modeler. Проектирование физической модели базы данных в ERWin Data Modeler. Проектирование схемы данных в MS Access. Выявление полного перечня ограничений целостности, присущего данной предметной области.

Русский

2015-10-07

13.13 MB

66 чел.

МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ЭКОНОМИКИ, СТАТИСТИКИ И ИНФОРМАТИКИ

Институт компьютерных технологий

Курсовой проект

По курсу «Базы данных (2)»

На тему «Проектирование базы данных кинотеатра»

Выполнили студентки группы

                                                                                              Руководитель:

                                                                                                                       Диго С.М.

Москва 2012

Содержание проекта:

1. Описание предметной области. Постановка задачи. ……………………………………….3

2. Выбор средств/методологии проектирования. Выбор СУБД. …………………………….8

3. Построение инфологической (концептуальной) модели предметной области………….10

4. Проектирование  логической модели базы данных в ERWin Data Modeler. ……………14

5. Проектирование  физической модели базы данных в ERWin Data Modeler. ……………15

6. Проектирование схемы данных в MS Access………………………………………………16

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

8. Организация ввода данных в БД……………………………………………………………28

9. Организация корректировки БД…………………………………………………………….28

10. Описание информационных потребностей пользователей и выбор способов их реализации………………………………………………………………………………………34

11. Разработка интерфейса. ……………………………………………………………………53

12. Реализация проекта в среде конкретной СУБД…………………………………………..55

  1.  Описание предметной области. Постановка задачи.

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

В условиях проката фильма указывается следующее:

  1.  дата начала показа фильма;
  2.  дата снятия с проката;
  3.  наличие антипиратских меток;
  4.  меры защиты от пиратства по отношению к материалам, имеющем отношению к картине;
  5.  необходимость в  строгом контроле за копиями фильмов, которые в данный момент не используются;
  6.  условия поставки копии фильма, (в каком количестве частей ленты осуществляется поставка);
  7.  необходимость отписаться по электронным адресам компании, предоставляющей фильм и менеджерам  кинотеатра; так же в сообщении необходимо указать номер пломбы (на упаковке копии фильма) и ее состояние на момент получения;
  8.  после получения копии фильма, кинотеатр несет полную ответственность за ее сохранность, при обнаружении «пиратской копии», компания-поставщик оставляет за собой право прекратить сотрудничество  с кинотеатром;
  9.  запрещается осуществлять какие-либо благотворительные показы (демонстрации) фильма, а также устанавливать какие-либо скидки на билеты, на определенный срок с даты начала показа фильма.    

 

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

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

Возрастные ограничения в соответствии с рейтингом АК.                           Таблица 1.  

Изображение

Название и краткое описание

Описание

Рейтинг G — General audiences
Фильм демонстрируется без ограничений

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

Рейтинг PG — Parental guidance suggested
Детям рекомендуется смотреть фильм с родителями

Рекомендуется присутствие родителей. Некоторый материал, возможно, не подходит для детей. Данный рейтинг показывает, что оценённый фильм может содержать некоторые сцены, просмотр которых маленькими детьми мог бы не понравиться их родителям. Материал, который может присутствовать в фильме, должен быть объяснён и разобран с детьми прежде, чем им разрешают посетить фильм. Явные сексуальные сцены и сцены употребления наркотиков отсутствуют; нагота, если присутствует, то только очень ограниченно, ужас и насилие не превышают умеренного уровня.

Рейтинг PG-13 — Parents strongly cautioned
Дети до 13 лет допускаются на фильм только с родителями

Настоятельное предостережение родителям. Некоторый материал может быть неподходящим для детей до 13 лет. Данный рейтинг показывает, что оценённый фильм может быть неподходящим для детей. Родители должны быть особенно осторожны, разрешая своим маленьким детям просмотр. Грубое или продолжительное насилие отсутствует; сексуальная ориентация на наготу отсутствует; некоторые сцены употребления наркотиков могут присутствовать; можно услышать единичные употребления грубой сексуальной лексики.

Рейтинг R — Restricted
Подростки до 17 лет допускаются на фильм только в сопровождении одного из родителей, либо законного представителя

Ограничение — до 17 лет требуется сопровождение родителя или взрослого опекуна (возраст может меняться в некоторых регионах). Данный рейтинг показывает, что оценочная комиссия заключила, что некоторый материал оценённого фильма предназначается для взрослых. Родители должны больше узнать о фильме прежде, чем взять на его просмотр подростков. Рейтинг R также может быть назначен из-за используемого в фильме языка, темы, насилия, секса или изображения употребления наркотиков.

Рейтинг NC-17 (ранее X)
Лица, не достигшие 17 лет, на фильм не допускаются

Лица до 17 лет не допускаются. Данный рейтинг показывает, что оценочная комиссия полагает, что большинство американских родителей решило бы, что фильм явно для взрослых, и что детей возрастом 17 лет и младше нельзя допускать до просмотра. Фильм может содержать явные сексуальные сцены, множество сексуально-ориентированного языка, или сцен чрезмерного насилия. Обозначение NC-17, однако, не показывает, что данный фильм является непристойным или порнографическим.

Для фильмов, не получивших рейтинг Американской ассоциации, обычно используется обозначение NR (Not Rated), а для картин, вышедших в прокат до введения системы рейтингов, то есть до 1 ноября 1968 года, — обозначение U (Unrated).

Следует учитывать, что фильм может быть снят несколькими режиссерами и одновременно относится к нескольким жанрам. К примеру, фильм «Социальная сеть» относится к жанрам: биография, драма. В описании фильма содержится краткий сюжет фильма.

Форма входного документа информация о фильме:

Информация о фильме

Код фильма

Название фильма

Год выпуска

Длительность

Возрастные ограничения

Формат

Описание

Режиссер

Кинокомпания

Жанр

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

Продавец билетов – осуществляет продажу билетов на определенную дату, время сеанса, фильм, зал, место и ряд. Продавец, после оплаты, вводит всю необходимую информацию о сеансе и выдает билет посетителю. Статус места, на которое был продан билет,  меняется на «продано».

Форма входного документа Продажа билета

Продажа билетов

Название фильма

Формат

Название зала

Время

Дата

Место

Ряд

Статус места

Регистрационный номер билета

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

Установка цен на билеты.                                                                           Таблица 2.

Сеансы

Будни (пн-пт)

Сб-вс и празд.

Экон.

VIP

Экон.

VIP

0900

1155

100 руб.

110 руб.

120 руб.

130 руб.

1200

1555

150 руб.

160 руб.

160 руб.

170 руб.

1600

1955

170 руб.

180 руб.

180 руб.

190 руб.

2000

2355

200 руб.

210 руб.

210 руб.

220 руб.

Форма входного документа Установка цен на билеты

Установка цен на билеты

Время с

Время по

Тип дня

Тип места

Цена билета

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Бронирование билетов заранее, не предусмотрено.

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

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

Форма входного документа Информация о кинотеатре

Информация о кинотеатре

Название кинотеатра

Метро

Адрес

Телефон

Веб сайт

Номер зала

Название зала

Состояние

Номер места

Ряд

Тип места

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Посетитель может просматривать информацию о сеансах на указанную дату, узнавать стоимость билетов, список всех имеющихся фильмов в кинотеатре, статус мест.

Статус мест определяется на определенный сеанс.

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

В базе также хранится архив кинотеатра (данные обо всех фильмах, имеющихся в кинотеатре).

В конце дня составляется отчет о проданных билетах за сеанс и за текущий  день. Рассчитывается выручка за сеанс и текущий день. В конце месяца в отчете подсчитывается сумма всех проданных билетов и выручка за них.

Выходными документами будут являться:

  1.  распечатанный билет;

Форма выходного документа распечатанный билет

Название фильма

Билет на сеанс №

 

Название зала

Дата

Время

 

 

 

Номер места

Ряд

Цена билета

 

 

 

 

  1.  проданные билеты на текущую и указанную даты с подсчетом выручки;

Форма выходного документа проданные билеты

Проданные билетов на дату ________

Название зала

Название фильма

Дата

Время

Номер места

Ряд

Цена билета

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Итого выручка на дату

 

 

 

  1.  расписание сеансов;

Форма выходного документа расписание сеансов на текущую и указанные даты

Расписание сеансов на дату____

Название кинотеатра

Название зала

Название фильма

Дата

Время

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  1.  репертуар кинотеатров

Форма выходного документа репертуар кинотеатра на текущую дату и указанные даты

Репертуар кинотеатра _____________

Название фильма

Дата

Время

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2. Выбор средств/методологии проектирования. Выбор СУБД.

При выборе программы для построении ER-модели, мы  руководствовались, прежде всего, удобством и простотой в использовании.

Для построения ER-модели была выбрана программа CA ERwin Data Modeler 8.1 (ранее называвшийся AllFusion Process Modeler) — программный продукт в области реализации средств CASE-технологий. ERwin Data Modeler обладает простым, визуальным интерфейсом для управления комплексными данными. Я не воспользовался программой IDEF 1X, так как при установке этой программы  возникают проблемы совместимости с 64-х разрядными версиями  Windows.

Система управления базами данных (СУБД) — совокупность программных и лингвистических средств общего или специального назначения, обеспечивающих управление созданием и использованием баз данных.

Существует большое число СУБД.

Классификация СУБД:

1. По модели данных

  1.  Иерархические
  2.  Сетевые
  3.  Реляционные
  4.  Объектно-ориентированные
  5.  Объектно-реляционные

2. По степени распределённости

  1.  Локальные СУБД (все части локальной СУБД размещаются на одном компьютере)
  2.  Распределённые СУБД (части СУБД могут размещаться на двух и более компьютерах).

3. По способу доступа к БД

  1.  Файл-серверные

В файл-серверных СУБД файлы данных располагаются централизованно на файл-сервере. СУБД располагается на каждом клиентском компьютере (рабочей станции). Доступ СУБД к данным осуществляется через локальную сеть.

Примеры: Microsoft Access, Paradox, dBase, FoxPro, Visual FoxPro.

  1.  Клиент-серверные

Клиент-серверная СУБД располагается на сервере вместе с БД и осуществляет доступ к БД непосредственно, в монопольном режиме. Все клиентские запросы на обработку данных обрабатываются клиент-серверной СУБД централизованно.

Примеры: Oracle, Firebird, Interbase, IBM DB2, Informix, MS SQL Server, PostgreSQL, MySQL.

  1.  Встраиваемые

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

Примеры: OpenEdge, SQLite, BerkeleyDB, Firebird Embedded, Microsoft SQL Server Compact, ЛИНТЕР.

Для создания базы данных была выбрана СУБД Microsoft Access 2010.

Возможности и преимущества программы для работы с базами данных Access 2010:

Приложение Microsoft Access 2010 удобно в использовании благодаря готовым шаблонам и эффективным средствам, которые сохраняют свою важность по мере увеличения объема данных.

Access 2010 позволяет эффективно работать с данными даже пользователям, не являющимся специалистами по базам данных. Кроме того, новые веб-базы данных расширяют возможности приложения Access, упрощая отслеживание сведений, их совместное использование и составление отчетов.

  1.  Быстрое и легкое создание баз данных

Готовые шаблоны и компоненты для многократного использования делают Access 2010 простым и эффективным решением для работы с базами данных.

  1.  Выразительные формы и отчеты

В состав Access 2010 входят инновационные средства, помогающие создавать профессионально выглядящие информативные формы и отчеты.

  1.  Упрощенный доступ к нужным средствам в нужное время

Нужные команды можно расположить там, где их будет удобнее всего вызывать.

  1.  Использование средств автоматизации и добавление сложных выражений без написания кода

Приложение Access 2010 предоставляет простые и удобные средства, которые даже неопытным пользователям позволят почувствовать себя разработчиками баз данных.

  1.  Централизованное средство управления базами данных

Приложение Access 2010 позволяет легко объединять данные и повышает качество работы.

  1.  Новые способы доступа к базам данных

Добавленные в Microsoft SharePoint Server 2010 службы Access позволяют размещать базы данных в Интернете с помощью технологии веб-баз данных.

3. Построение инфологической (концептуальной) модели предметной области.

Инфологическая модель предметной области – это формализованное описание предметной области, выполненное безотносительно к используемым в дальнейшем программным и техническим средствам. Инфологическая модель должная быть динамической и позволять легкую корректировку. К основным требованиям, предъявляемым к инфологической модели, можно отнести следующие:

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

  1.  должная быть понятна лицам, принимающим участие в создании и использовании.

Рис 1. Компоненты инфологической модели

Опишем один из компонентов инфологической модели, а именно ER-модель и построим ее. Для этого описываются объекты и связи между объектами.

Инфологическая модель проектирования базы данных для сети кинотеатров содержит следующие объекты:

Кинотеатр. Объект описывает определенный кинотеатр, имеет следующие свойства: название кинотеатра, метро, адрес, вместимость, телефон, веб-сайт. Ключом данного объекта является название кинотеатра.

Фильм. Объект описывает определенный фильм. Состав свойств следующий: код фильма, название фильма, год выпуска, описание, длительность, возрастные ограничения, формат. Ключом данной таблицы является код фильма.

Режиссер. В данном объекте содержится информация о режиссерах по каждому фильму. В состав свойств входят: режиссер, код фильма. Ключами являются оба свойства.

Жанр. Объект описывает жанр, к которому относится фильм. Свойствами являются: жанр, код фильма. Оба свойства также ключевые.

Кинокомпания. Объект описывает кинокомпанию, к которой относится фильм. Свойства: кинокомпания, код фильма. Оба свойства ключевые.

Зал. Объект описывает все имеющиеся залы в определенном кинотеатре. Свойства: название зала, название кинотеатра, номер зала, состояние, вместимость.

Место. Объект описывает места в зале , а именно: номер места, название зала, ряд, тип места. Ключами данного объекта являются: номер места, название зала (внешний ключ), ряд.

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

Прокат фильмов. Объект содержит информацию о прокате фильмов в кинотеатрах. Свойства: код фильма, название кинотеатра, выход в прокат, снятие с проката, условия проката. Ключами являются код фильма (внешний ключ), название кинотеатра (часть составного ключа), выход в прокат.

Расписание сеансов. Объект описывает имеющееся расписание в каждом кинотеатре. Свойствами объекта являются: название кинотеатра, код фильма, дата, время, название зала.

Тип места. В данном объекте описывается тип каждого места в зале кинотеатра. Единственным свойством и ключом данного объекта является: тип места.

Установка цен на билеты. В данном объекте идет описание установки цен на билеты в кинотеатрах. Свойствами являются: время с, тип дня, время по, тип места, цена билета. Ключами же объекта являются время с, тип дня, время по. тип места.

Между объектами существуют следующие связи:

Объекты Кинотеатр и Прокат фильмов связаны идентифицирующей связью один ко многим с кардинальным числом zero, one or many.

Объекты Фильм и Прокат фильмов связаны идентифицирующей связью один ко многим

С кардинальным числом one or more.

Объекты Фильм и Кинокомпания связаны идентифицирующей связью один ко многим с кардинальным числом one or more.

Объекты Фильм и Жанр связаны идентифицирующей связью один ко многим с кардинальным числом one or more.

Объекты Фильм и Режиссер связаны идентифицирующей связью один ко многим с кардинальным числом one or more.

Объекты Кинотеатр и Зал связаны неидентифицирующей связью один ко многим (no nulls) с кардинальным числом one or more.

Объекты Кинотеатр и Расписание сеансов связаны идентифицирующей связью один ко многим с кардинальным числом zero, one or more.

Объекты Фильм и Расписание сеансов связаны идентифицирующей связью один ко многим с кардинальным числом zero, one or more.

Объекты Зал и Расписание сеансов связаны идентифицирующей связью один ко многим с кардинальным числом zero, one or more.

Объекты Фильм и Продажа билетов связаны идентифицирующей связью один ко многим с кардинальным числом zero, one or more.

Объекты Зал и Место связаны идентифицирующей связью один ко многим с кардинальным числом zero, one or more.

Объекты Место и Продажа билетов связаны идентифицирующей связью один ко многим с кардинальным числом zero, one or more.

Объекты Зал и Продажа билетов связаны идентифицирующей связью один ко многим с кардинальным числом zero, one or more.


Базовая ER-модель.

Название зала (н)

Название зала

Название кинотеатра

Код фильма

Название фильма(н)

      Фильм                                                                                                               Кинотеатр                                                                                                                 Зал

Состояние

Метро

Год выпуска

                                     

Вместимость

Адрес

Улица

Режиссер

 

Дом

Жанр

                                                                                       Прокат фильмов                                                                                                                       

Номер места

Ряд

Район

Корпус

Кинокомпания

                                                                                                                                                                                                                Место

Снятие с проката

Вместимость

                                                                                     

Тип места

Телефон

Описание

                                                                                                                                                                                                                                                         Тип места

Условие проката

Веб-сайт

Длительность

 

Выход в прокат

Возрастные ограничения

                                                                                          

Начало интервала

Время

Тип дня

Дата

                                                                             Дата                                         Время                                                                                    Тип дня

                                                         

Конец интервала

           

               Расписание сеансов                                                                                                                                                                                                                 Установка цен

                                             Продажа билетов

Статус места

Цена билета

 


Рис 2. Базовая ER-модель

Регистрационный номер билета (к)

4. Проектирование  логической модели базы данных в ERWin Data Modeler.

Логическая структура базы данных должна быть спроектирована и описана для конкретной СУБД. Для нашей базы данных была выбрана СУБД MS Access 2010. База данных была сгенерирована в MS Access 2003 посредством ERWin Data Modeler.

При построении ER модели в ERWin Data Modeler, мы получили уже готовые таблицы, каждый объект это таблица,  Так же в программе Erwin Data Modeler мы описали все типы данных, их размерность, описали все связи. Ключевые объекты выделены подчеркиванием.

Кинотеатр. (Название_кинотеатра, Метро, Адрес. Телефон, Веб-сайт)

Фильм. (Код_фильма, Название_фильма, Год_выпуска, Описание, Длительность, Возрастные_ограничения, Формат)

Режиссер.(Режиссер, Код_фильма)  

Жанр. (Жанр, Код_фильма)

Кинокомпания. (Кинокомпания, Код_фильма) 

Зал. (Номер_зала, Название_зала, Состояние, Название_кинотеатра)

Место. (Номер_места, Ряд, Название_зала, Тип места)

Продажа билетов. (Название_зала, Код_фильма, Дата, Время, Номер_места, Ряд, Статус места, Регистрационный номер билета)

Прокат фильмов. (Выход_в_прокат, Снятие_с_проката, Условия_проката, Код_фильма, Название_кинотеатра) 

Расписание сеансов. (Код_фильма, Дата, Время, Название_зала, Название_кинотеатра)

Тип места. (Тип_места)

Установка цен на билеты. (Время с, Время по, Тип_дня, Тип места, Цена билета) 

 


Логическая модель

Рис 3. Логическая модель в Erwin Data Modeler


5. Проектирование  физической модели базы данных в ERWin Data Modeler.

Физическая модель – это привязка логической модели к конкретной среде хранения и методам хранения данных. При проектировании физической модели базы данных необходимо описать среду и метод хранения информации. Для этого необходимо изучить особенности организации данных выбранной СУБД.

Для проектирования базы данных для сети кинотеатров была выбрана СУБД MS Access 2010. Для хранения данных в этой СУБД используются таблицы. В них хранится вся информация о предметной области. Наша база данных включает несколько взаимосвязанных таблиц. Объекты, которые были описаны при построении инфологической модели предметной области, в базе данных являются таблицами.  

Рис 4. Физическая модель в Erwin Data Modeler


6. Проектирование схемы данных в MS Access.

Рис. 4 Схема данных в MS Access


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

Ограничения целостности на связи в базе данных MS Access.      Таблица 3.

Таблица

Связанная таблица

Поля, по которому связанна таблица

Обеспечение целостности данных

Каскадное обновление

Каскадное удаление

Фильм

Режиссер

Код_фильма

+

+

+

Фильм

Жанр

Код_фильма

+

+

+

Фильм

Кинокомпания

Код_фильма

+

+

+

Фильм

Прокат фильмов

Код_фильма

+

+

+

Фильм

Расписание сеансов

Код_фильма

+

+

+

Фильм

Продажа билетов

Код_фильма

+

+

+

Кинотеатр

Прокат фильмов

Название_кинотеатра

+

+

+

Кинотеатр

Расписание сеансов

Название_кинотеатра

+

+

+

Кинотеатр

Зал

Название_кинотеатра

+

+

+

Тип места

Место

Название_зала

+

+

-

Зал

Место

Название_зала

+

+

+

Место

Продажа билетов

Номер_места, Ряд, Название_зала

+

+

+

Тип места

Установка цен на билеты

Тип_места

+

+

+

Перечень ограничений целостности, которые будут контролироваться в базе данных кинотеатра.

  1.  Формат фильма может быть либо 2d, либо 3d;
  2.  Одновременно в одном и том же зале не могут идти два разных фильма;
  3.  Поле состояние зала может принимать только значения: работает или не работает;
  4.  Поле тип места может принимать значения VIP и эконом;
  5.  Один билет не может быть продан дважды;
  6.  Дата выхода фильма в прокат должна быть меньше и не равна дате снятия с проката;
  7.  Поле статус мест может принимать только значения: продано или свободно;
  8.  Год выпуска фильма не может быть раньше года выпуска первого фильма (1895год);
  9.  Название двух залов не могут совпадать;
  10.  Поле Возрастные ограничения могут принимать только значения: G, PG, PG-13, R, NC-17, NR, U;
  11.  Цена билета устанавливается в зависимости от интервала времени, в котором она находится;

Выбор способа реализации контроля целостности для каждого из ограничений.

Формат фильма может быть либо 2d, либо 3d;

Одновременно в одном и том же зале не могут идти два разных фильма;

Так как поля таблицы Расписание являются ключевыми, повторения записей становится недопустимым.

Поле состояние зала может принимать только значения: работает или не работает;

Поле тип места может принимать значения VIP и Эконом;

Один билет не может быть продан дважды;

Дата выхода фильма в прокат не может совпадать с датой снятия с проката;

Поле статус мест может принимать только значения: продано или свободно;

Год выпуска фильма не может быть позже текущего года;

Название двух залов не могут совпадать;

Поле Возрастные ограничения могут принимать только значения: G, PG, PG-13, R, NC-17, NR, U;

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

8-9. Организация ввода данных в БД и корректировка.

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

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

Ввод данных по кинотеатрам:

Ввод данных по фильмам:

Ввод данных по расписанию фильма: (переход осуществляется с формы Фильм).

Ввод данных по прокату фильма: (переход также осуществляется с формы Фильм).

Ввод данных по продажам билетов:

C формы по продажам билетов также возможен просмотр расписания сеансов по названию фильма.

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

Ввод данных по установке цен на билеты:

Организация корректировки осуществляется на тех же формах что и ввод в БД.

10. Описание информационных потребностей пользователей и выбор способов их реализации.

Информационные потребности пользователей выражаются в следующем: пользователям базой данных необходимо находить нужную им информацию  в  БД, просматривать ее, выводить на печать.  

     

Перечислим основные запросы и отчеты сделанные по запросам и продемонстрируем их  реализацию.

1)  Посчитать  вместимость каждого зала для каждого кинотеатра:

Запрос, выполненный в конструкторе:

Запрос на языке SQL:

SELECT Кинотеатр.Название_кинотеатра, Зал.Название_зала, Count(Место.Номер_места) AS вместимость

FROM Кинотеатр INNER JOIN (Зал INNER JOIN Место ON Зал.Название_зала = Место.Название_зала) ON Кинотеатр.Название_кинотеатра = Зал.Название_кинотеатра

GROUP BY Кинотеатр.Название_кинотеатра, Зал.Название_зала;

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

2) Посчитать вместимость каждого кинотеатра:

Запрос, выполненный в конструкторе:

Запрос на языке SQL:

SELECT [вместимость каждого зала для каждого кинотеатра].Название_кинотеатра, Sum([вместимость каждого зала для каждого кинотеатра].вместимость) AS [Sum-вместимость]

FROM [вместимость каждого зала для каждого кинотеатра]

GROUP BY [вместимость каждого зала для каждого кинотеатра].Название_кинотеатра; 

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

3) Запрос для  распечатки проданного билета:

Запрос, выполненный в конструкторе:

Запрос на языке SQL:

SELECT TOP 1 Фильм.Название_фильма, [Продажа билетов].Название_зала, [Продажа билетов].Дата, [Продажа билетов].Время, [Продажа билетов].Номер_места, [Продажа билетов].Ряд, [Установка цен на билеты].[Цена билета], [Продажа билетов].Регистрационный_номер_билета

FROM Фильм INNER JOIN ((([Тип места] INNER JOIN [Установка цен на билеты] ON [Тип места].[Тип места] = [Установка цен на билеты].[Тип места]) INNER JOIN Место ON [Тип места].[Тип места] = Место.[Тип места]) INNER JOIN [Продажа билетов] ON (Место.Ряд = [Продажа билетов].Ряд) AND (Место.Название_зала = [Продажа билетов].Название_зала) AND (Место.Номер_места = [Продажа билетов].Номер_места)) ON Фильм.Код_фильма = [Продажа билетов].Код_фильма

WHERE ((([Продажа билетов].Время) Between [Установка цен на билеты]![Время с] And [Установка цен на билеты]![Время по]) AND (([Продажа билетов].Регистрационный_номер_билета)=[Введите регистрационный номер билета]) AND (([Установка цен на билеты].Тип_дня)=[введите тип дня (пн-пт или сб-вс и праздники)]) AND (([Продажа билетов].[Статус места])="ПРОДАНО")); 

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

 

На основании этого запроса был создан отчет билет.

4) Продажа билетов на текущую дату (для подсчета выручки за текущий день):

Запрос, выполненный в конструкторе:

Запрос на языке SQL:

SELECT Зал.Название_зала, Фильм.Название_фильма, [Продажа билетов].Дата, [Продажа билетов].Время, [Продажа билетов].Номер_места, [Продажа билетов].Ряд, [Продажа билетов].Регистрационный_номер_билета, [Установка цен на билеты].[Цена билета]

FROM Фильм INNER JOIN ((Зал INNER JOIN (([Тип места] INNER JOIN Место ON [Тип места].[Тип места] = Место.[Тип места]) INNER JOIN [Установка цен на билеты] ON [Тип места].[Тип места] = [Установка цен на билеты].[Тип места]) ON Зал.Название_зала = Место.Название_зала) INNER JOIN [Продажа билетов] ON (Место.Ряд = [Продажа билетов].Ряд) AND (Место.Название_зала = [Продажа билетов].Название_зала) AND (Место.Номер_места = [Продажа билетов].Номер_места) AND (Зал.Название_зала = [Продажа билетов].Название_зала)) ON Фильм.Код_фильма = [Продажа билетов].Код_фильма

WHERE ((([Продажа билетов].Дата)=Date()) AND (([Продажа билетов].Время) Between [Установка цен на билеты]![Время с] And [Установка цен на билеты]![Время по]) AND (([Установка цен на билеты].Тип_дня)=[введите ти дня(пн-пт, сб-вс и праздники)]));

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

На основании этого запроса был создан отчет продажа билетов на текущую дату

5) Запрос по продаже билетов на указанную дату (для подсчета выручки по определенной дате):

Запрос, выполненный в конструкторе:

Запрос на языке SQL:

SELECT DISTINCTROW Зал.Название_зала, Фильм.Название_фильма, [Продажа билетов].Дата, [Продажа билетов].Время, [Продажа билетов].Номер_места, [Продажа билетов].Ряд, [Продажа билетов].Регистрационный_номер_билета, [Установка цен на билеты].[Цена билета]

FROM Фильм INNER JOIN ((Зал INNER JOIN (([Тип места] INNER JOIN Место ON [Тип места].[Тип места] = Место.[Тип места]) INNER JOIN [Установка цен на билеты] ON [Тип места].[Тип места] = [Установка цен на билеты].[Тип места]) ON Зал.Название_зала = Место.Название_зала) INNER JOIN [Продажа билетов] ON (Место.Ряд = [Продажа билетов].Ряд) AND (Место.Название_зала = [Продажа билетов].Название_зала) AND (Место.Номер_места = [Продажа билетов].Номер_места) AND (Зал.Название_зала = [Продажа билетов].Название_зала)) ON Фильм.Код_фильма = [Продажа билетов].Код_фильма

WHERE ((([Продажа билетов].Дата)=[введите дату]) AND (([Продажа билетов].Время) Between [Установка цен на билеты]![Время с] And [Установка цен на билеты]![Время по]) AND (([Установка цен на билеты].Тип_дня)=[введите ти дня(пн-пт, сб-вс и праздники)]));

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

На основании этого запроса был создан отчет продажа билетов на указанную дату

6) Вывести расписание сеансов по названию фильма

Запрос, выполненный в конструкторе:

Запрос на языке SQL:

SELECT DISTINCTROW Кинотеатр.Название_кинотеатра, Фильм.Название_фильма, [Расписание сеансов].Название_зала, [Расписание сеансов].Время, [Расписание сеансов].Дата

FROM Фильм INNER JOIN ((Кинотеатр INNER JOIN [Прокат фильмов] ON Кинотеатр.Название_кинотеатра = [Прокат фильмов].Название_кинотеатра) INNER JOIN [Расписание сеансов] ON Кинотеатр.Название_кинотеатра = [Расписание сеансов].Название_кинотеатра) ON (Фильм.Код_фильма = [Расписание сеансов].Код_фильма) AND (Фильм.Код_фильма = [Прокат фильмов].Код_фильма)

WHERE (((Фильм.Название_фильма)=[Введите название фильма]) AND (([Расписание сеансов].Дата) Between [Прокат фильмов]![Выход_в_прокат] And [Прокат фильмов]![Снятие_с_проката]));

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

7) Вывести расписание сеансов на указанную дату.

Запрос, выполненный в конструкторе:

Запрос на языке SQL:

SELECT DISTINCTROW [Расписание сеансов].Название_кинотеатра, [Расписание сеансов].Название_зала, [Расписание сеансов].Время, [Расписание сеансов].Дата, Фильм.Название_фильма

FROM (Фильм INNER JOIN [Прокат фильмов] ON Фильм.Код_фильма = [Прокат фильмов].Код_фильма) INNER JOIN [Расписание сеансов] ON Фильм.Код_фильма = [Расписание сеансов].Код_фильма

WHERE ((([Расписание сеансов].Дата)=[Введите дату] And ([Расписание сеансов].Дата) Between [Прокат фильмов]![Выход_в_прокат] And [Прокат фильмов]![Снятие_с_проката])); 

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

На основании этого запроса был создан отчет Расписание сеансов

8) Вывести расписание фильмов на текущую дату.

Запрос, выполненный в конструкторе:

Запрос на языке SQL:

SELECT DISTINCTROW Кинотеатр.Название_кинотеатра, [Расписание сеансов].Название_зала, [Расписание сеансов].Время, [Расписание сеансов].Дата, Фильм.Название_фильма

FROM Фильм INNER JOIN ((Кинотеатр INNER JOIN [Прокат фильмов] ON Кинотеатр.Название_кинотеатра = [Прокат фильмов].Название_кинотеатра) INNER JOIN [Расписание сеансов] ON Кинотеатр.Название_кинотеатра = [Расписание сеансов].Название_кинотеатра) ON (Фильм.Код_фильма = [Расписание сеансов].Код_фильма) AND (Фильм.Код_фильма = [Прокат фильмов].Код_фильма)

WHERE ((([Расписание сеансов].Дата)>=Date() And ([Расписание сеансов].Дата) Between [Прокат фильмов]![Выход_в_прокат] And [Прокат фильмов]![Снятие_с_проката]));

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

На основании этого отчета был создан отчет Расписание сеансов на текущую дату

9) Вывести репертуар определенного кинотеатра.

Запрос, выполненный в конструкторе:

Запрос на языке SQL:

SELECT Фильм.Название_фильма, [Расписание сеансов].Дата, [Расписание сеансов].Время

FROM Фильм INNER JOIN (Кинотеатр INNER JOIN [Расписание сеансов] ON Кинотеатр.Название_кинотеатра = [Расписание сеансов].Название_кинотеатра) ON Фильм.Код_фильма = [Расписание сеансов].Код_фильма

WHERE ((([Расписание сеансов].Дата)>=Date()) AND ((Кинотеатр.Название_кинотеатра)=[введите название кинотеатра]))

ORDER BY [Расписание сеансов].Дата, [Расписание сеансов].Время;

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

10) Вывести свободные места на определенный фильм.

Запрос, выполненный в конструкторе:

Запрос на языке SQL:

SELECT [Продажа билетов].Название_зала, [Продажа билетов].Дата, [Продажа билетов].Время, [Продажа билетов].Номер_места, [Продажа билетов].Ряд, Зал.Название_кинотеатра

FROM Зал INNER JOIN (Фильм INNER JOIN [Продажа билетов] ON Фильм.Код_фильма = [Продажа билетов].Код_фильма) ON Зал.Название_зала = [Продажа билетов].Название_зала

WHERE ((([Продажа билетов].[Статус места])="свободно") AND ((Фильм.Название_фильма)=[введите название фильма])); 

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

11)  Создать архив фильмов, снятых с проката.

Запрос, выполненный в конструкторе:

Запрос на языке SQL:

SELECT DISTINCTROW [Прокат фильмов].Снятие_с_проката, Фильм.Код_фильма, Фильм.Название_фильма INTO [Архив фильмов]

FROM Фильм INNER JOIN [Прокат фильмов] ON Фильм.Код_фильма = [Прокат фильмов].Код_фильма

WHERE ((([Прокат фильмов].Снятие_с_проката)<Date()));

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

11. Разработка интерфейса

Главная форма.

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

Также на главной форме существует кнопка «Выйти из приложения», которая завершает работу главной формы.

Отчеты.

При нажатии на кнопку отчеты главной формы мы попадаем на подчиненную форму Отчеты, где представлены наши выходные документы. Так же реализован возврат на главную форму.

При нажатии на кнопку запросы главной формы мы попадем на важные для нас запросы, которые не вошли во входные документы, но несут смысловую нагрузку для нашей БД.

12. Реализация проекта в среде конкретной СУБД.

При проектировании базы данных сети кинотеатров разработка начинается с объектов данных.  Сначала строятся таблицы и создаются запросы. В нашем случае таблицы и их связи были спроектированы автоматически с помощью программы Erwin Data Modeler.

После этого были построены запросы. Запросы необходимы для того, чтобы реализовать информационные потребности пользователей. Одни из них создавались в режиме конструктора, некоторые в режиме SQL, а некоторые и тем и тем способом. На основе этих запросов мы создали  отчеты, для того, чтобы пользователю было удобно воспринимать информацию. Отчеты создавались с помощью мастера, далее корректировались в режиме конструктора и в режиме макета.

Для пользователя мы создали более простое меню.  Оно содержит кнопки, при нажатии на которые он может увидеть интересующий его отчет.  Также на этой форме отображена кнопка «Вернуться в главное меню», которая возвращает его в основное меню.

Кнопочная форма создавалась в режиме конструктора. Формы создавались с помощью мастера и редактировались в режиме конструктора или просто создавались в режиме конструктора.

Список использованной литературы.

1. С.М. Диго «Базы данных. Проектирование и создание».

2. Сайт поддержки Microsoft  http://support.microsoft.com.

3. Описание работы в Microsoft Office http://office.microsoft.com.

4. Описание работы с программой ER-win http://belieteni.com/subdt4r3part1.html

5. Описание существующих СУБД http:/_/www.compress.ru

6. Официальный сайт продукта ER-win http://erwin.com/


 

А также другие работы, которые могут Вас заинтересовать

77351. NEW APPROACHES TO VISUALIZATION OF PROCESSES 27 KB
  Nebogtikov The serch of new types of views is the importnt problems in computer visuliztion systems used for representtions of complex processes. Such pproches pper in vrious res of computer visuliztion see for exmple. We need n dditionl serch of more simple visuliztion metphors tht llow more effective nlysis of bstrct dt.
77352. Общение в Интернете: реальность или уход от нее 17 KB
  Строятся предположения о том что постоянные пользователи интернета с его помощью избегают социальных контактов или возможно изза посещения сети Интернет пользователи теряют способность к живому общению и взаимодействию с другими людьми. Также был использован инструментарий для оценки социальной тревожности измеряемой как сумма страха перед социальными контактами и избегания социальных контактов. Обнаружена отрицательная корреляция между избеганием социальных контактов и количеством друзей знакомых только через интернет интернетдрузья....
77353. ОДИН ПОДХОД К ВЫЧИСЛЕНИЯМ ПО ЗАПРОСУ 33.5 KB
  Проект содержит в себе способ запуска программы перечень входных данных способ их передачи к программе способ сбора результатов вычисления. В данном подходе среда может автоматически решить задачу построения графического интерфейса создав его по описанию входных и выходных данных. Также автоматизируется: передача данных между интерфейсом и программой учет пользователей запусков и результатов контроль ресурсов. Методы распределённых вычислений на основе модели потока данных.
77354. On practice of views design in computer visualization systems 13.5 KB
  For correct nd effective visul representtion it is necessry to understnd ccurtely wht sttes nd fetures of the given object re under interest becuse representtion of fetures sttes nd chnges of sttes there is primry gol of visuliztion. View one my define s the...
77355. ONE APPROACH TO COMPUTING ON DEMAND 26.5 KB
  Consider sitution when we wnt to provide remote ccess to such progrm using the grphicl interfce. It is not esy for mthemticin to upgrde his progrm to the scenrio described bove. This project contins description how to run the progrm list of input dt wy to trnsfer it to the progrm nd the wy to collect the results.
77356. Описание параллельных вычислений при помощи замыканий 35 KB
  Переменная n из множества NMES принимает значение истина только в том случае когда вычислен блок данных с именем являющимся и именем n. Для вычисления в функцию F передаются 1 список аргументов RGS 2 битовый вектор со значениями переменных NMES и 3 вычисленные блоки данных имена которых совпадают с именами переменных из...
77357. ПСИХОЛОГИЧЕСКИЕ АСПЕКТЫ ФЕНОМЕНА ПРИСУТСТВИЯ В ВИРТУАЛЬНОЙ СРЕДЕ 103 KB
  Цель данной работы – определить круг основных понятий связанных с человеческим фактором в контексте виртуальной реальности. В литературе приводятся такие понятия как виртуальная реальность среда виртуальной реальности виртуальная среда иммерсивная виртуальная среда присутствие англ.