Разработка базы данных для анализа продаж в рекламном агентстве

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    1,88 Мб
  • Опубликовано:
    2013-10-15
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка базы данных для анализа продаж в рекламном агентстве















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

Разработка базы данных для анализа продаж в рекламном агентстве




Введение


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

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

Среди наиболее ярких представителей систем управления базами данных можно отметить: Microsoft Access, Microsoft Visual FoxPro, а также баз данных Microsoft SQL Server и Oracle, используемые в приложениях, построенных по технологии «клиент-сервер».

В данном курсовом проекте база данных проектируется средствами облачного сервиса #"701385.files/image001.gif">

Рисунок 1 - Вход в Oracle Application Express

2.2 Создание таблиц в Oracle Application Express


Таблицы в СУБД Oracle Application Express можно создавать двумя способами: в диалоговом режиме и с помощью языка SQL.

Создание таблиц с помощью диалогового режима

Для того чтобы создать таблицу, на панели Главного меню необходимо выбрать вкладку SQL Workshop и в открывшемся окне нажать кнопку Object Browser (Рисунок 2).

Рисунок 2 - Кнопка Object Browser

После этого на экране появляется окно, разделенное на два поля: левое содержит список всех объектов БД, правое - различную информацию о них (Рисунок 3).

Рисунок 3 - Окно создания таблицы в диалоговом режиме

При нажатии в правом верхнем углу кнопки Create (Создать) откроется выпадающий список, в котором можно выбрать тип создаваемого объекта БД. При создании таблицы следует выбрать пункт Table (Рисунок 4).

Рисунок 4 - Выбор типа создаваемого объекта (Table)

После выбора типа объекта открывается окно создания таблицы. В этом окне необходимо указать имя таблицы (Table Name), а также названия колонок (Column Name), типы данных (Type) и различные ограничения: общее количество знаков для числовых типов (Precision), количество знаков после запятой (Scale), проверка на нулевое значения (Not Null) (Рисунок 5).

Рисунок 5 - Окно создания таблицы

Рассмотрим процесс создания таблицы на примере таблицы KLIENT. Введем имя таблицы, названия столбцов, определим типы данных (Type), установим количество знаков после запятой (Scale) и ограничения на нулевое значения (Not Null) (Рисунок 6).

Рисунок 6 - Создание полей таблицы KLIENTS

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

Система предлагает 4 варианта определения первичного ключа: «Не указывать первичный ключ», «Указать ключевое поле из новой таблицы», «Указать ключевое поле из уже существующей таблицы», «Создать составное ключевое поле из двух колонок таблицы». При создании таблицы KLIENT выберем второй вариант; ключевым полем таблицы станет поле ID (Рисунок 7).

Рисунок 7 - Выбор первичного ключа

На следующем этапе следует определить внешние ключи. Внешний ключ устанавливает связь между столбцами двух таблиц. При создании таблицы KLIENT внешние ключи не использовались (Рисунок 8).

Рисунок 8 - Выбор внешних ключей

После определения внешних ключей пользователю предоставляется возможность создания ограничений двух видов: Check (проверка) и Unique (уникальность). Установим параметры уникальности для столбца BIK таблицы KLIENTS и нажмем кнопку Add (Рисунок 9).

Рисунок 9 - Окно создания ограничений


На последнем этапе подтверждаем создание таблицы (Рисунок 10).

Рисунок 10 - Окно подтверждения создания таблицы

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

Рисунок 11 - Запрос создания таблицы на языке SQL

Внешний вид созданной таблицы KLIENTS представлен на рисунке 12.


Рисунок 12 - Таблица KLIENTS, созданная в диалоговом режиме

 

Создание таблиц в режиме SQL

Для того чтобы создать таблицу в режиме SQL, на панели Главного меню необходимо выбрать вкладку SQL Workshop и в открывшемся окне нажать кнопку SQL Commands (Рисунок 13).

Рисунок 13 - Кнопка SQL Commands

После этого открывается окно, в котором расположены область для ввода SQL команд и кнопки Save и Run для сохранения и запуска написанной программы соответственно (Рисунок 14).

Рисунок 14 - Окно ввода SQL команд

Рассмотрим процесс создания таблицы на примере таблицы VIDI_USLUG. Для создания таблицы воспользуемся командой CREATE TABLE. Текст полного SQL запроса для создания таблицы представлен на Рисунке 15.

Рисунок 15 - SQL команды для создания таблицы VIDI_USLUG

После нажатия кнопки Run при верном написании кода таблица будет создана (Рисунок 16).

Рисунок 16 - Таблица VIDI_USLUG, созданная с помощью SQL запроса


Если структура таблицы в БД Oracle совпадает со структурой таблицы в БД Access или Excel, то данные одной таблицы можно импортировать в другую.

Рассмотрим импорт данных на примере заполнения таблицы Price_list, созданной нами ранее в СУБД Oracle. Для этого последовательно выполним команды SQL Workshop. Utilities. Data Workshop (Рисунок 17).

Рисунок 17 - Кнопка Data Workshop

Далее выберем пункт Spredsheet Data. Открывается окно, в котором необходимо пройти 4 этапа.

На первом этапе требуется выбрать, куда (Load to) закачивать данные. Т.к. таблица уже существует в БД Oracle, то выбираем существующую таблицу (Existing Table) (рисунок 18).

Рисунок 18 - Выбор места копирования данных

На втором этапе указываем таблицу, в которую будут импортироваться данные (Рисунок 19).

Рисунок 19 - Выбор таблицы для загрузки данных

На следующем шаге импорта мастер предлагает вставить данные из буфера в окошко, расположенное в центре страницы. Сначала откроем таблицу в Access, выделим все строки и нажмем клавиши Ctrl+C (копировать). Затем щелкнем мышью в окошке на страницу APEX и нажмем CTRL+V (вставить). В окне появляются данные из таблицы (Рисунок 20).

Рисунок 20 - Копирование данных из таблицы Access на страницу Apex

На последнем этапе импортирования мастер выводит всю структуру таблицы и данные (Рисунок 21).

Рисунок 21 - Структура и данные импортированной таблицы

Для загрузки данных в таблицу нажимаем кнопку Load Data. Если загрузка данных прошла успешно, то щелкнув по имени таблицы, мы переходим на страницу Object Brouser с открытой структурой таблицы. Выбрав Data в списке команд над таблицей можно увидеть свои данные (Рисунок 22).

Рисунок 22 - Таблица Price_list, данные которой импортированы из таблицы Access

В ходе выполнения курсового проекта были созданы таблицы KLIENTS, VIDI_USLUG, USLUGI, FIRMA (Рисунки 23, 24), ZAKAZ (Рисунки 25, 26), DOKUMENT (Рисунки 27, 28).

Рисунок 23 - Ограничения для таблицы FIRMA

Рисунок 24 - Данные таблицы FIRMA

Рисунок 25 - Ограничения для таблицы ZAKAZ

Рисунок 26 - Данные таблицы ZAKAZ

Рисунок 27 - Ограничения для таблицы DOKUMENT

Рисунок 28 - Данные таблицы DOKUMENT

2.3 Структура БД


Для просмотра таблиц и связей между ними следует воспользоваться формой создания запроса. Для этого выберем в меню вкладку SQL Workshop, нажмем кнопку Utilities.

Далее нажмем кнопку Query Builder.

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


3. Разработка приложения БД

 

.1 Создание запросов


Для создания запросов в главном меню необходимо выбрать вкладку SQL Workshop, далее пункт SQL Commands.

В открывшемся окне следует ввести текст запроса на языке SQL. Для запуска запроса на выполнения необходимо нажать кнопку Run. Для того чтобы сохранить созданный запрос, необходимо нажать кнопку Save.

Запрос 1 - «Ежедневная суммарная стоимость и количество продаж по каждому товару».

SELECT DOKUMENT.DATA, USLUGI.USLUGA, SUM (USLUGI.PRICE*ZAKAZ.KOLICHESTVO) AS VIRUCHKA, SUM (ZAKAZ.KOLICHESTVO) AS KOLICHESTVO_ZAKAZOV

FROM USLUGI INNER JOIN (DOKUMENT INNER JOIN ZAKAZ ON DOKUMENT.NOMER_DOKUMENTA=ZAKAZ.NOMER_DOKUMENTA) ON USLUGI.KOD=ZAKAZ.KOD_USLUGIDOKUMENT.DATA >: «НАЧАЛО ПЕРИОДА» AND DOKUMENT.DATA <: «КОНЕЦ ПЕРИОДА»BY DOKUMENT.DATA, USLUGI.USLUGA, USLUGI.PRICE, ZAKAZ.STATUS

HAVING (ZAKAZ.STATUS='выполнен')BY DOKUMENT.DATA    

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

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

Запрос 2 - Расчет суммарной стоимости заказов за день, месяц, год

1.      Выручка по дням

SELECT DOKUMENT.DATA, SUM (USLUGI.PRICE*ZAKAZ.KOLICHESTVO) AS VIRUCHKA

FROM DOKUMENT INNER JOIN (USLUGI INNER JOIN ZAKAZ ON USLUGI.KOD=ZAKAZ.KOD_USLUGI) ON DOKUMENT.NOMER_DOKUMENTA=ZAKAZ.NOMER_DOKUMENTADOKUMENT.DATA >: «НАЧАЛО ПЕРИОДА» AND DOKUMENT.DATA <: «КОНЕЦ ПЕРИОДА»

GROUP BY DOKUMENT.DATA

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

.        Выручка за месяц

SELECT P1.MONTH, SUM (P1.VIRUCHKA) AS VIRUCHKAP1P1.YEAR =: «ВВЕДИТЕ ГОД» AND P1.MONTH >: «ВВЕДИТЕ МЕСЯЦ» BY P1.MONTH

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

.        Выручка за год

SELECT P1.YEAR, SUM (P1.VIRUCHKA) AS VIRUCHKAP1P1.YEAR=: «ВВЕДИТЕ ГОД»

GROUP BY P1.YEAR

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

Текст запроса для View P1:

SELECT TO_CHAR (DOKUMENT.DATA, 'YYYY') AS YEAR, TO_CHAR (DOKUMENT.DATA, 'MONTH') AS MONTH, SUM (USLUGI.PRICE*ZAKAZ.KOLICHESTVO) AS VIRUCHKA

FROM DOKUMENT INNER JOIN (USLUGI INNER JOIN ZAKAZ ON USLUGI.KOD=ZAKAZ.KOD_USLUGI) ON DOKUMENT.NOMER_DOKUMENTA=ZAKAZ.NOMER_DOKUMENTA

GROUP BY DOKUMENT.DATA

Запрос 3 - Расчет количества заказов по группам товаров

 

SELECT DOKUMENT.DATA, VIDI_USLUG.VID, SUM (ZAKAZ.KOLICHESTVO) AS KOLICHESTVO_ZAKAZOVVIDI_USLUG INNER JOIN (USLUGI INNER JOIN (DOKUMENT INNER JOIN ZAKAZ ON DOKUMENT.NOMER_DOKUMENTA=ZAKAZ.NOMER_DOKUMENTA) ON USLUGI.KOD=ZAKAZ.KOD_USLUGI) ON VIDI_USLUG.KOD=USLUGI.KOD_VIDABY DOKUMENT.DATA, VIDI_USLUG.VID

Для создания данного запроса в начале выбираем Object Browser, затем в открывшемся окне из выпадающего списка кнопки Create выбираем View.

В открывшемся окне введем название запроса и его текст. SQL запрос может быть создан как на SQL (SQL Commands), так и в диалоговом режиме (Query Builder). При создании запроса «KOL_ZAKAZOV_PO_GRUPPAM_TOVAROV» был выбран первый способ.

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

Аналогичным образом были созданы запросы «Стоимость и количество продаж по товарам», «Выручка по дням».

3.2 Создание основы для приложения


Для создания приложения необходимо нажать кнопку Application Builder.

После нажатия кнопки появится уже созданное стандартное приложение Sample Database Application. Для того чтобы создать собственное приложение, нажмем кнопку Create. Затем откроется окно, в котором необходимо выбрать метод: Database, Websheet или Packaget Application. Для создания приложения «РЕКЛАМНОЕ АГЕНТСТВО» выберем первый метод - Database (База данных).

Далее введем имя приложения (РЕКЛАМНОЕ АГЕНТСТВО), укажем схему (REKLAMA) и выберем пользовательский интерфейс (Desktop).

В следующем окне предлагается выбрать тип стартовой страницы (Blank - пустая, Report - отчет, Form - форма, Chart - график и др.). Для создания стартовой страницы приложения «РЕКЛАМНОЕ АГЕНТСТВО» выберем тип Blank.

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

После нажатия кнопки Next открывается окно, в котором выбираем язык, формат даты и времени.

На следующем шаге выбираем тему (оформление) приложения. При создании приложения «РЕКЛАМНОЕ АГЕНТСТВО» была использована тема «Simple Gray».

После нажатия кнопки Next появляется окно, в котором необходимо подтвердить создание приложения.

При успешном выполнении всех операций на экране выводится сообщение о создании приложения. После этого значок созданного приложения будет отображаться в окне Application Builder.

Для запуска приложения необходимо нажать кнопку Run, после чего система запросит логин и пароль.

3.3 Создание форм

Облачный сервис #"701385.files/image029.gif">, затем в окне User Interface выбираем ссылку Lists of Values и нажимаем кнопку Create.

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

В следующем окне необходимо ввести имя списка и выбрать тип его создания (статический или динамический). Для списка «STATUS» выбираем статический тип, для списка «KLIENTS» - динамический.

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

В открывшемся окне в строке Display As выберем Select List (named LOV), а в строке Named LOV - созданный список STATUS.

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

Аналогичным образом было настроено отображение поля «Клиенты» - выбор названия компании-заказчика вместо ID и поля «Наименование услуги» - выбор услуги из выпадающего списка.

 

.4 Создание отчетов


Существует несколько вариантов создания отчетов: Интерактивный отчет, Web - отчет, Стандартный отчет и Мастер отчетов.

Рассмотрим создание отчета на примере отчета «Выручка по дням». В окне выбора типа отчета выберем Interactive Report (интерактивный отчет). В следующем окне введем название отчета.

Далее определяем параметры вкладки. Существует три варианта: «не использовать вкладку», «использовать уже существующую вкладку или создать новую вкладку», «повторно использовать существующую вкладку». При создании отчета «Выручка по дням» используем первый вариант.

Текст SQL запроса для создаваемого отчета:

select VIRUCHKA_PO_DNYAM.DATA as DATA,_PO_DNYAM.VIRUCHKA as VIRUCHKAVIRUCHKA_PO_DNYAM VIRUCHKA_PO_DNYAM

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

Аналогичным образом были созданы отчеты «Количество заказов по группам товаров» и «Стоимость и количество заказов по услугам и товарам».

 


4. Руководство пользователя


База данных предназначена для накопления и анализа данных о результатах торговой деятельности рекламного агентства «Идея». Она хранит справочную информацию о клиентах и предоставляемых услугах, а также информацию по заказам.

Для начала работы с Базой Данных необходимо с помощью любого браузера пройти по ссылке: #"701385.files/image030.gif"> позволяет открыть новую страницу, на которой представлен список услуг для каждого вида. Кнопки Удалить, Удалить выбранное, Добавить услугу, Сохранить изменения позволяют выполнить соответствующие действия.

Вкладка «Заказы по документам»

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

Вкладка «Отчеты»

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

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

Данные отчеты можно отправить по электронной почте, выгрузить в CSV файл либо открыть в отдельной страничке браузера, для этого необходимо в меню Actions выбрать пункт Download.

Вкладка «Диаграммы»

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

Вкладка «Информация о нас»

Данная вкладка содержит информацию о фирме, которая доступна только для просмотра. Пользователи приложения не могут вносить изменения. Кнопка Вернуться на Главную предназначена для перехода на Главную страницу.

Вкладка «О программе»

Данная вкладка содержит информацию о назначении программного приложения, версии, разработчике и обратной связи. При нажатии на ссылку откроется страница с методическими указаниями по работе с программным приложением «Рекламное агенство «Идея»».

Заключение


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

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

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


Список литературы


1. Базы данных. Проектирование, реализация, сопровождение. Теория и практика: Томас М. Конноли, Каролин Е. - Москва-Санкт-Петербург, 2009

2.      Базы данных. Учебный курс: Глушков С.В., Ломотько Д.В. - Харьков, 2010

.        SQL. Справочное руководство: Мартин Грабер - Санкт-Петербург, Лори, 2012

.        Oracle PL/SQL для администраторов баз данных: Аруп Нанда и Стивен Фейерштейн - Санкт-Петербург, Символ-Плюс, 2008

.        Эффективное проектирование приложений Oracle: Томас Кайт - Москва, Лори, 2008 г.

 


Приложение

 

Текст SQL-запроса таблицы «FIRMA»

CREATE TABLE «FIRMA»

(«NAZVANIE» VARCHAR2 (70) NOT NULL ENABLE,

«RUKOVODITEL» VARCHAR2 (100) NOT NULL ENABLE,

«ADRES» VARCHAR2 (150),

«INN» VARCHAR2 (20) NOT NULL ENABLE,

«GLAV_BUH» VARCHAR2 (100),

«TELEPHONE» VARCHAR2 (30),

«BIK» VARCHAR2 (40) NOT NULL ENABLE,

«E-MAIL» VARCHAR2 (70)

)

/

Текст SQL-запроса таблицы «KLIENTS»

CREATE TABLE «KLIENTS»

(«ID» NUMBER NOT NULL ENABLE,

«NAZVANIE_FIRMI» VARCHAR2 (60) NOT NULL ENABLE,

«RUKOVODITEL» VARCHAR2 (100),

«BIK» VARCHAR2 (40) NOT NULL ENABLE,

«TELEPHONE» VARCHAR2 (30),

«ADRES» VARCHAR2 (140),«KLIENTS_PK» PRIMARY KEY («ID») ENABLE

)

/OR REPLACE TRIGGER «BI_KLIENTS»insert on «KLIENTS»each row:NEW. «ID» is null then«KLIENTS_SEQ».nextval into:NEW. «ID» from sys.dual;if;;

/TRIGGER «BI_KLIENTS» ENABLE

/

Текст SQL-запроса таблицы «ZAKAZ»

CREATE TABLE «ZAKAZ»

(«NOMER_DOKUMENTA» NUMBER (6,0) NOT NULL ENABLE,

«KOD_USLUGI» NUMBER (6,0) NOT NULL ENABLE,

«KOLICHESTVO» NUMBER (6,0) NOT NULL ENABLE,

«STATUS» VARCHAR2 (30)

)

/TABLE «ZAKAZ» ADD CONSTRAINT «ZAKAZ_FK2» FOREIGN KEY («NOMER_DOKUMENTA»)«DOKUMENT» («NOMER_DOKUMENTA») ON DELETE CASCADE ENABLE

/TABLE «ZAKAZ» ADD CONSTRAINT «ZAKAZ_FK3» FOREIGN KEY («KOD_USLUGI»)«USLUGI» («KOD») ON DELETE CASCADE ENABLE

/

Текст SQL-запроса таблицы «DOKUMENT»

CREATE TABLE «DOKUMENT»

(«NOMER_DOKUMENTA» NUMBER (6,0) NOT NULL ENABLE,

«NOMER_ZAKAZA» NUMBER (6,0) NOT NULL ENABLE,

«DATA» DATE NOT NULL ENABLE,

«KLIENTSKIJ_NOMER» NUMBER (6,0) NOT NULL ENABLE,«DOKUMENT_PK» PRIMARY KEY («NOMER_DOKUMENTA») ENABLE

)

/TABLE «DOKUMENT» ADD CONSTRAINT «DOKUMENT_FK» FOREIGN KEY («KLIENTSKIJ_NOMER»)«KLIENTS» («ID») ON DELETE CASCADE ENABLE

/

OR REPLACE TRIGGER «BI_DOKUMENT»insert on «DOKUMENT»each row:NEW. «NOMER_DOKUMENTA» is null then«DOKUMENT_SEQ».nextval into:NEW. «NOMER_DOKUMENTA» from sys.dual;if;;


Текст SQL-запроса таблицы «VIDI_USLUG»

CREATE TABLE «VIDI_USLUG»

(«KOD» NUMBER (6,0) NOT NULL ENABLE,

«VID» VARCHAR2 (60) NOT NULL ENABLE,«VIDI_USLUG_PK» PRIMARY KEY («KOD») ENABLE

)

/OR REPLACE TRIGGER «BI_VIDI_USLUG»insert on «VIDI_USLUG»each row:NEW. «KOD» is null then«VIDI_USLUG_SEQ1».nextval into:NEW. «KOD» from sys.dual;if;;

/TRIGGER «BI_VIDI_USLUG» ENABLE

/

Текст SQL-запроса таблицы «USLUGI»

CREATE TABLE «USLUGI»

(«KOD» NUMBER (6,0) NOT NULL ENABLE,

«USLUGA» VARCHAR2 (60) NOT NULL ENABLE,

«PRICE» NUMBER NOT NULL ENABLE,

«KOD_VIDA» NUMBER (6,0) NOT NULL ENABLE,«USLUGI_PK» PRIMARY KEY («KOD») ENABLE

)

/TABLE «USLUGI» ADD CONSTRAINT «USLUGI_FK» FOREIGN KEY («KOD_VIDA»)«VIDI_USLUG» («KOD») ON DELETE CASCADE ENABLE

/

OR REPLACE TRIGGER «BI_USLUGI»insert on «USLUGI»each row:NEW. «KOD» is null then«USLUGI_SEQ1».nextval into:NEW. «KOD» from sys.dual;if;;

/TRIGGER «BI_USLUGI» ENABLE

/

View для отчета «Количество заказов по группам товаров»

CREATE OR REPLACE FORCE VIEW «KOL_ZAKAZOV_PO_GRUPPAM_TOVAROV» («DATA», «VID», «KOLICHESTVO_ZAKAZOV») ASDOKUMENT.DATA, VIDI_USLUG.VID, SUM (ZAKAZ.KOLICHESTVO) AS KOLICHESTVO_ZAKAZOVVIDI_USLUG INNER JOIN (USLUGI INNER JOIN (DOKUMENT INNER JOIN ZAKAZ ON DOKUMENT.NOMER_DOKUMENTA=ZAKAZ.NOMER_DOKUMENTA) ON USLUGI.KOD=ZAKAZ.KOD_USLUGI) ON VIDI_USLUG.KOD=USLUGI.KOD_VIDABY DOKUMENT.DATA, VIDI_USLUG.VID

/

View для отчета «Стоимость и количество продаж по услугам и товарам»

CREATE OR REPLACE FORCE VIEW «STOIM_I_KOL_PRODAG_PO_TOVARAM» («DATA», «USLUGA», «VIRUCHKA», «KOLICHESTVO_ZAKAZOV») ASDOKUMENT.DATA, USLUGI.USLUGA, SUM (USLUGI.PRICE*ZAKAZ.KOLICHESTVO) AS VIRUCHKA, SUM (ZAKAZ.KOLICHESTVO) AS KOLICHESTVO_ZAKAZOV

FROM USLUGI INNER JOIN (DOKUMENT INNER JOIN ZAKAZ ON DOKUMENT.NOMER_DOKUMENTA=ZAKAZ.NOMER_DOKUMENTA) ON USLUGI.KOD=ZAKAZ.KOD_USLUGIBY DOKUMENT.DATA, USLUGI.USLUGA, USLUGI.PRICE, ZAKAZ.STATUS

HAVING (ZAKAZ.STATUS='выполнен')BY DOKUMENT.DATA

/

View для отчета «Выручка по дням»

CREATE OR REPLACE FORCE VIEW «VIRUCHKA_PO_DNYAM» («DATA», «VIRUCHKA») ASDOKUMENT.DATA, SUM (USLUGI.PRICE*ZAKAZ.KOLICHESTVO) AS VIRUCHKA

FROM DOKUMENT INNER JOIN (USLUGI INNER JOIN ZAKAZ ON USLUGI.KOD=ZAKAZ.KOD_USLUGI) ON DOKUMENT.NOMER_DOKUMENTA=ZAKAZ.NOMER_DOKUMENTA

GROUP BY DOKUMENT.DATA

/

Текст запроса с параметром - «Выручка по дням»:

SELECT DOKUMENT.DATA, SUM (USLUGI.PRICE*ZAKAZ.KOLICHESTVO) AS VIRUCHKA

FROM DOKUMENT INNER JOIN (USLUGI INNER JOIN ZAKAZ ON USLUGI.KOD=ZAKAZ.KOD_USLUGI) ON DOKUMENT.NOMER_DOKUMENTA=ZAKAZ.NOMER_DOKUMENTADOKUMENT.DATA >: «НАЧАЛО ПЕРИОДА» AND DOKUMENT.DATA <: «КОНЕЦ ПЕРИОДА»

GROUP BY DOKUMENT.DATA

Похожие работы на - Разработка базы данных для анализа продаж в рекламном агентстве

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!