Создание системы учета для предметной области «Концертный зал»
Проектирование конкретных экранных элементов управления, отчетов и программ, которые будут сопровождать данные в базе данных, и обеспечивать редактирование этих данных. В результате получена структура базы данных, которая будет физически храниться в памяти компьютера. Реляционная модель базы данных представлена в приложении 2. Для связей 1: N добавить специальное поле в таблицу со стороны… Читать ещё >
Создание системы учета для предметной области «Концертный зал» (реферат, курсовая, диплом, контрольная)
- СОДЕРЖАНИЕ
- ВВЕДЕНИЕ
- 1. ЗАДАНИЕ ПО ВЫБРАННОМУ ВАРИАНТУ
- 2. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ
- 2.1 Определение объектов и связей между ними
- 2.2 Нормализация отношений
- 2.3 Построение концептуальной модели данных
- 2.4 Построение реляционной модели базы данных
- 3. ОПИСАНИЕ СПОСОБОВ РЕАЛИЗАЦИИ ЗАПРОСОВ
- 4. РЕАЛИЗАЦИЯ ОТЧЕТОВ
- 5. ОПИСАНИЕ ИНТЕРФЕЙСА
- 5.1. Описание групп пользователей
- 5.2. Описание интерфейса
- 6. КОНТРОЛЬНЫЙ ПРИМЕР
- ВЫВОДЫ
- СПИСОК лИТЕРАТУРЫ
Данная курсовая работа посвящена проектированию собственной базы данных. Проектирование охватывает три основные области:
· Проектирование конкретных объектов, которые будут реализованы в базе данных. Для MySQL это такие объекты, как таблицы, представления, и т. д.
· Проектирование конкретных экранных элементов управления, отчетов и программ, которые будут сопровождать данные в базе данных, и обеспечивать редактирование этих данных.
· При определенных обстоятельствах в процессе проектирования также необходимо учитывать конкретную среду или технологию — например, топологию сети, конфигурацию аппаратных средств, использование архитектуры клиент/сервер, параллельной обработки или распределенной архитектуры базы данных.
При проектировании каждой из областей есть свои нюансы, которые разработчику следует учитывать. Например, при проектировании таблиц базы и установлений связи между ними следует позаботиться как о целостности данных базы, так и о совместимости типов при подключении к этой базе разнообразных приложений и клиентов.
При разработке интерфейса пользователя следует обратить внимание на критерий удобства работы пользователя с базой. Интерфейс должен быть доброжелателен даже к неопытному пользователю.
1. ЗАДАНИЕ ПО ВЫБРАННОМУ ВАРИАНТУ
Предметная область: «Концертный зал» .
Возможные виды деятельности:
· проведение выступлений в рамках гастролей различных исполнителей;
· реклама концертов;
· учет продаж билетов с учетом расценок по категориям мест;
· расчет с исполнителями и персоналом, обеспечивающим проведение концерта.
2. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ
2.1 Определение объектов и связей между ними
Определены следующие объекты в БД:
· Пользователи
· Исполнители
· Жанры
· Концерты
· Реклама
· Тип рекламы
· Билеты
· Тип билета
· Стоимость билета
· Продажа билетов
· Выплаты
· Журнал Эти объекты имеют следующие информационные характеристики:
· Объект Пользователи — Идентификатор, Имя пользователя, Пароль
· Объект Исполнители — Идентификатор, Название, Стоимость одного выступления
· Объект Жанры — Идентификатор, Наименование
· Объект Концерты — Идентификатор, Дата концерта, Идентификатор исполнителя
· Объект Реклама — Идентификатор, Идентификатор концерта, Дата начала провидения рекламы, Дата конца провидения рекламы
· Объект Тип рекламы — Идентификатор, Наименование
· Объект Билеты — Идентификатор, Тип билета, Количество билетов данного типа, Цена за 1 билет
· Объект Тип билета — Идентификатор, Наименование
· Объект Стоимости билета — Идентификатор концерта, Идентификатор типа билета, Цена за 1 билет
· Объект Продажа билетов — Идентификатор, Идентификатор концерта, Идентификатор билета, Количество купленных билетов
· Объект Выплаты — Идентификатор, Идентификатор рабочего, Дата выплаты, Сумма выплаты
· Объект Журнал — Идентификатор, Идентификатор пользователя, Дата входа в систему, Действия Между объектами выявлены следующие взаимосвязи:
· Один пользователь может множество раз входить в систему.
Связь 1: М.
· Несколько исполнителей могут выступить в нескольких концертах. Связь М: N.
· Исполнителей одного жанра может быть несколько. Связь М:1.
· Каждый концерт сопровождается несколькими типами рекламы. Связь М: N.
· Каждая реклама может быть нескольких видов. Связь 1: М.
· На каждый концерт продается множество билетов. Связь 1: М.
· Стоимость билетов зависит от концерта. Связь М:1.
· Билетов одного типа несколько. Связь М:1.
· Проданных билетов разного типа может быть несколько. Связь М:1.
· Один артист может получить несколько выплат. Связь 1: М.
2.2 Нормализация отношений
Перечисленные ранее объекты имеют атрибуты, совпадающие с их информационными характеристиками.
· Пользователи — Идентификатор
· Исполнители — Идентификатор
· Жанры — Идентификатор
· Концерты — Идентификатор
· Реклама — Идентификатор
· Тип рекламы — Идентификатор
· Билеты — Идентификатор
· Тип билета — Идентификатор
· Стоимость билета — нет первичных ключей, так как объект является связующим звеном
· Продажа билетов — Идентификатор
· Выплаты — Идентификатор
· Журнал — Идентификатор
2.3 Построение концептуальной модели данных
Концептуальная модель данных для предметной области «Концертный зал» представлена в приложении 1. Концептуальная модель представляет объекты предметной области, их атрибуты и взаимосвязи между объектами. Названия объектов написаны прописными буквами. Ключевые атрибуты подчеркнуты.
2.4 Построение реляционной модели базы данных
Чтобы получить реляционную модель, следует выполнить такие действия:
· для связей 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 ()));
Список выплат произведенных для заданного актера
SELECT Artists.Name_Artists, Payment. Prise_Payment FROM Artists LEFT JOIN Payment ON Artists. Id_Artists = Payment. Id_Artists WHERE (((Artists.Id_Artists)=[Введите № артиста])) ORDER BY Payment. Prise_Payment DESC;
Список исполнителей чье имя начинается на заданную букву
SELECT Artists.Name_Artists FROM Artists WHERE (((Artists.Name_Artists) Like [Введите букву]+" *"));
Сумма выплат за апрель месяц
SELECT Artists.Name_Artists, Sum (Payment.Prise_Payment) AS Summa FROM Artists LEFT JOIN Payment ON Artists. Id_Artists=Payment.Id_Artists WHERE (((Payment.Data_Payment) Between #4/1/2010# And #5/1/2010#)) GROUP BY Artists.Name_Artists;
4. РЕАЛИЗАЦИЯ ОТЧЕТОВ
На скольких концертах выступает каждый артист
Сколько билетов продано на каждый концерт
Список билетов купленных за апрель месяц
Список вхождений в систему за заданное число
Список вхождений в систему за неделю
Список выплат произведенных для заданного актера
5. ОПИСАНИЕ ИНТЕРФЕЙСА
5.1 Описание групп пользователей
В системе определены три группы пользователей — Администратор, Директор, Менеджер, Кассир.
Для каждой группы предусмотрены следующие возможности работы с программой:
Администратор — разрешено изменять или добавлять пользователей.
Директор — может работать со всеми данными, кроме редактирования/удаления пользователей.
Менеджер — может работать со всеми данными, которые касаются провидения концертов и расчета с исполнителями.
Кассир — может работать только с теми данными, которые касаются продажи билетов.
5.2 Описание интерфейса
Интерфейс реализован на языке программирования Microsoft Access.
Первоначально загружается главная форма, которая позволяет просматривать, редактировать и удалять различные данные. Для ввода и просмотра данных созданы специальные элементы управления, связанные с конкретными таблицами.
Права пользователей разделены за счет отображения разных форм, в которых выполняются те или иные действия.
6. КОНТРОЛЬНЫЙ ПРИМЕР
При запуске программы надо ввести имя пользователя и пароль.
При входе под администратором отображается форма следующего вида.
При входе под учетной записью директора отображается форма с тремя закладками.
На первой вкладке находятся таблицы, с которыми может работать директор.
На второй вкладке находятся запросы, которые надо было реализовать в ходе курсовой работы.
Запросы были реализованы с помощью SQL.
На вкладке номер три реализованы отчеты о задействованности исполнителей, загруженности зала на каждый концерт, список билетов купленных за апрель месяц и список выплат для каждого артиста которые надо было реализовать в ходе курсовой работы.
При входе под учетной записью менеджера отображается форма:
На ней расположены таблицы, запросы и отчеты с которыми может работать менеджер.
При входе под учетной записью кассира отображается форма следующего вида.
ВЫВОДЫ
В результате выполнения курсовой работы была получена полнофункциональная система учета для предметной области «Концертный зал». Были на практике углублены и закреплены знания из курса «Организация баз данных и знаний». Работа была выполнена на Access (составление основы базы — таблиц и связей между ними, проектирование запросов, создание отчетов, разработка пользовательского интерфейса), с использованием языка запросов SQL.
Также были получены практические навыки по ведению системы авторизации и мониторинга пользователей программного обеспечения, введен журнал ошибок.