Создание системы учета для предметной области "Концертный зал" (49955)

Посмотреть архив целиком

СОДЕРЖАНИЕ


ВВЕДЕНИЕ

1. ЗАДАНИЕ ПО ВЫБРАННОМУ ВАРИАНТУ

2. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ

2.1 Определение объектов и связей между ними

2.2 Нормализация отношений

2.3 Построение концептуальной модели данных

2.4 Построение реляционной модели базы данных

3. ОПИСАНИЕ СПОСОБОВ РЕАЛИЗАЦИИ ЗАПРОСОВ

4. РЕАЛИЗАЦИЯ ОТЧЕТОВ

5. ОПИСАНИЕ ИНТЕРФЕЙСА

5.1. Описание групп пользователей

5.2. Описание интерфейса

6. КОНТРОЛЬНЫЙ ПРИМЕР

ВЫВОДЫ

СПИСОК лИТЕРАТУРЫ


  • ВВЕДЕНИЕ


Данная курсовая работа посвящена проектированию собственной базы данных. Проектирование охватывает три основные области:

  • Проектирование конкретных объектов, которые будут реализованы в базе данных. Для MySQL это такие объекты, как таблицы, представления, и т.д.

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

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

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

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


  • 1. ЗАДАНИЕ ПО ВЫБРАННОМУ ВАРИАНТУ


Предметная область: "Концертный зал".

Возможные виды деятельности:

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

  • реклама концертов;

  • учет продаж билетов с учетом расценок по категориям мест;

  • расчет с исполнителями и персоналом, обеспечивающим проведение концерта.


  • 2. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ


    1. Определение объектов и связей между ними


Определены следующие объекты в БД:

  • Пользователи

  • Исполнители

  • Жанры

  • Концерты

  • Реклама

  • Тип рекламы

  • Билеты

  • Тип билета

  • Стоимость билета

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

  • Выплаты

  • Журнал

Эти объекты имеют следующие информационные характеристики:

  • Объект Пользователи – Идентификатор, Имя пользователя, Пароль

  • Объект Исполнители – Идентификатор, Название, Стоимость одного выступления

  • Объект Жанры – Идентификатор, Наименование

  • Объект Концерты – Идентификатор, Дата концерта, Идентификатор исполнителя

  • Объект Реклама – Идентификатор, Идентификатор концерта, Дата начала провидения рекламы, Дата конца провидения рекламы

  • Объект Тип рекламы – Идентификатор, Наименование

  • Объект Билеты – Идентификатор, Тип билета, Количество билетов данного типа, Цена за 1 билет

  • Объект Тип билета – Идентификатор, Наименование

  • Объект Стоимости билета – Идентификатор концерта, Идентификатор типа билета, Цена за 1 билет

  • Объект Продажа билетов – Идентификатор, Идентификатор концерта, Идентификатор билета, Количество купленных билетов

  • Объект Выплаты – Идентификатор, Идентификатор рабочего, Дата выплаты, Сумма выплаты

  • Объект Журнал – Идентификатор, Идентификатор пользователя, Дата входа в систему, Действия

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

  • Один пользователь может множество раз входить в систему.

Связь 1:М.

  • Несколько исполнителей могут выступить в нескольких концертах. Связь М:N.

  • Исполнителей одного жанра может быть несколько. Связь М:1.

  • Каждый концерт сопровождается несколькими типами рекламы. Связь М:N.

  • Каждая реклама может быть нескольких видов. Связь 1:М.

  • На каждый концерт продается множество билетов. Связь 1:М.

  • Стоимость билетов зависит от концерта. Связь М:1.

  • Билетов одного типа несколько. Связь М:1.

  • Проданных билетов разного типа может быть несколько. Связь М:1.

  • Один артист может получить несколько выплат. Связь 1:М.


    1. Нормализация отношений


Перечисленные ранее объекты имеют атрибуты, совпадающие с их информационными характеристиками.

  • Пользователи – Идентификатор

  • Исполнители – Идентификатор

  • Жанры – Идентификатор

  • Концерты – Идентификатор

  • Реклама – Идентификатор

  • Тип рекламы – Идентификатор

  • Билеты – Идентификатор

  • Тип билета – Идентификатор

  • Стоимость билета – нет первичных ключей, так как объект является связующим звеном

  • Продажа билетов – Идентификатор

  • Выплаты – Идентификатор

  • Журнал – Идентификатор


    1. Построение концептуальной модели данных


Концептуальная модель данных для предметной области "Концертный зал" представлена в приложении 1. Концептуальная модель представляет объекты предметной области, их атрибуты и взаимосвязи между объектами. Названия объектов написаны прописными буквами. Ключевые атрибуты подчеркнуты.


    1. Построение реляционной модели базы данных


Чтобы получить реляционную модель, следует выполнить такие действия:

  • для связей 1:N добавить специальное поле в таблицу со стороны "многие" (внешний ключ), которое служит для ссылки на таблицу, находящуюся со стороны "один"

  • для связей М:N необходимо создать дополнительную таблицу, которая содержит первичные ключи таблиц из взаимосвязи, а также дополнительные атрибуты, относящиеся к составному объекту, который определяет эту взаимосвязь.

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

  • 3. ОПИСАНИЕ СПОСОБОВ РЕАЛИЗАЦИИ ЗАПРОСОВ


Добавление записей в журнал


INSERT INTO Journal ( Id_Users, Data_journal, Action_journal ) VALUES ([идентификатор пользователя], Date(), "В системе");


Какие исполнители не получили зарплату в этом месяце


SELECT Artists.Name_Artists FROM Artists LEFT JOIN Payment ON Artists.Id_Artists = Payment.Id_Artists WHERE (((Artists.Id_Artists) Not In (SELECT Id_Artists FROM Payment))) GROUP BY Artists.Name_Artists;


На какой концерт не осуществлялась продажа билетов на этой недели


SELECT Concert.Name FROM Concert LEFT JOIN SellTikets ON Concert.Id_Concert = SellTikets.Id_Concert WHERE (((Exists (SELECT Id_Concert FROM SellTikets where SellTikets.Id_Concert=Concert.Id_Concert ))=False)) GROUP BY Concert.Name;


На скольки концертах выступает каждый артист


SELECT Artists.Name_Artists, Count(Busy_artists.Id_Concert) AS [Count] FROM Artists RIGHT JOIN Busy_artists ON Artists.Id_Artists= Busy_artists.Id_Artists GROUP BY Artists.Name_Artists;


Сколько билетов продано за месяц



SELECT Count(SellTikets.Id_Sell) AS [Count] FROM SellTikets WHERE (((SellTikets.Date_of_SellTickets) Between Date()-30 And Date()));


Сколько билетов продано на каждый концерт


SELECT Concert.Name, Count(SellTikets.Id_Sell) AS [Count] FROM Concert LEFT JOIN SellTikets ON Concert.Id_Concert=SellTikets.Id_Concert GROUP BY Concert.Name;


Сколько выплат произведено за месяц


SELECT Count(Payment.Id_Payment) AS [Count] FROM Payment WHERE (((Payment.Data_Payment) Between Date()-30 And Date()));


Список артистов участвующих в заданном концерте


SELECT Artists.Name_Artists, Concert.Name FROM Concert LEFT JOIN (Artists RIGHT JOIN Busy_artists ON Artists.Id_Artists = Busy_artists.Id_Artists) ON Concert.Id_Concert = Busy_artists.Id_Concert WHERE (((Concert.Id_Concert) = [Введитеконцерта])) ORDER BY Artists.Name_Artists;


Список билетов в номере места, которых есть заданная цифра


SELECT Ticket_type.NameType_tick, Tickets.Reference_number, Tickets.Seat_number FROM Ticket_type LEFT JOIN Tickets ON Ticket_type.Id_Type_tick = Tickets.Id_Type_Tick WHERE (((Tickets.Seat_number) Like [Введите цифту]+"*"));



Список билетов купленных за апрель месяц


SELECT Concert.Name, Tickets.Reference_number, Tickets.Seat_number, SellTikets.Date_of_SellTickets FROM Tickets RIGHT JOIN (Concert LEFT JOIN SellTikets ON Concert.Id_Concert = SellTikets.Id_Concert) ON Tickets.Id_Tickets = SellTikets.Id_Tickets WHERE (((SellTikets.Date_of_SellTickets) Between #4/1/2010# And #5/1/2010#));


Список вхождений в систему за заданное число


SELECT Users.Name_Users, Journal.Data_journal, Journal.Action_journal FROM Users LEFT JOIN Journal ON Users.Id_Users = Journal.Id_Users WHERE (((Journal.Data_journal)=["Введите дату"]));


Список вхождений в систему за неделю


SELECT Users.Name_Users, Journal.Data_journal, Journal.Action_journal FROM Users LEFT JOIN Journal ON Users.Id_Users = Journal.Id_Users WHERE (((Journal.Data_journal) Between Date()-7 And Date()));


Список выплат произведенных для заданного актера


Случайные файлы

Файл
80650.rtf
122575.rtf
122817.rtf
90415.rtf
26987.rtf




Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.