Курсовая работа: Создание системы учета для предметной области Концертный зал
· Жанры – Идентификатор
· Концерты – Идентификатор
· Реклама – Идентификатор
· Тип рекламы – Идентификатор
· Билеты – Идентификатор
· Тип билета – Идентификатор
· Стоимость билета – нет первичных ключей, так как объект является связующим звеном
· Продажа билетов – Идентификатор
· Выплаты – Идентификатор
· Журнал – Идентификатор
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()));