У вас вопросы?
У нас ответы:) SamZan.net

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

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 28.12.2024

Пензенская государственная технологическая академия

Кафедра «Прикладная информатика»

Дисциплина «Базы данных»

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

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

Выполнил: студент группы 10Э1б

Ядренцева В.Г.

Принял: доц.к. «Прикладная информатика»

Шигина Н.А.

Оценка _____________

Дата     _____________

Пенза 2013

ПЕНЗЕНСКАЯ ГОСУДАРСТВЕННАЯ  ТЕХНОЛОГИЧЕСКАЯ АКАДЕМИЯ

Кафедра «Прикладная информатика»

УТВЕРЖДАЮ

Зав. кафедрой  Ремонтов А.П.

                                       _______________________

  1.  “_____” __________ 2013 г.

З А Д А Н И Е

на курсовое проектирование по дисциплине  “Базы данных”

Студенту Ядренцевой Веронике Геннадьевне группы -  10Э1б

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

Технические требования на проектирование:

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

БД предназначена для коллективного использования в сети интернет. Доступ с рабочего места пользователя осуществляется посредством приложения Oracle Application Express (облачный сервис http://apex.oracle.com). Для авторизации пользователя используется уникальный логин и пароль.

Функции приложения БД:

- формирование и загрузка исходных данных из БД оперативного учета (ежедневная суммарная стоимость и количество продаж по каждому товару);

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

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

- ввод, коррекция и вывод прейскурантов на заданный период времени.

- вывод сведений об авторе и назначении программы;

- помощь пользователю в html-формате.

Объем работы по курсу

1. Расчетная часть:

1.1. Анализ среды разработки

1.2. Проектирование структуры БД

1.3. Разработка приложения APEX.

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

2. Графическая часть:

  1.  Схема базы данных
  2.  Иерархическая функциональная диаграмма
  3.  Диаграмма потоков данных
  4.  Презентация к защите

3. Экспериментальная часть:

3.1. Разработка таблиц, ввод тестового примера

3.2. Разработка SQL-скриптов

3.2. Разработка страниц приложения в среде Oracle APEX

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

    1. Проектирование структуры БД, разработка SQL- скриптов, ввод данных тестового примера  - к  15.03.2013

    2. Разработка страниц приложения – к 15.04.2013

    3. Оформление пояснительной записки - к  15.05.2013

    4. Оформление графической части, подготовка доклада и защита - до 31.05.2013

Дата выдачи задания - ____________________11.02.2013г.

Руководитель -  __________________________ Шигина Н.А.

Задание получил ____________  ______  2013 г.  

Студент      _________________________________ (                       )

Дата защиты проекта - ________________________


Изм.

Лист

№ докум.

Подпись

Дата

Лист

4

КП – БД – 080800 – 16 - 13 81 01

Разраб.

Ядренцева В.Г.

Провер.

Шигина Н.А.

Реценз.

Н. Контр.

Утверд.

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

Пояснительная записка.

Лит.

Листов 

87

ПГТА, гр. 10Эб

Оглавление

ВВЕДЕНИЕ 5

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

2. ПРОЕКТИРОВАНИЕ СТРУКТУРЫ БАЗЫ ДАННЫХ 8

2.1 Регистрация и вход в Oracle Application Express 8

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

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

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

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

3. РАЗРАБОТКА ПРИЛОЖЕНИЯ БД 23

3.1 Создание запросов 23

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

3.4 Создание отчетов 48

3.5 Создание диаграммы 52

3.6 Создание главной страницы приложения 57

4. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ 60

Заключение 68

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

ПРИЛОЖЕНИЕ А. ДПД 70

ПРИЛОЖЕНИЕ Б. СХЕМА ДАННЫХ 74

ПРИЛОЖЕНИЕ B. ТЕКСТ SQL-ЗАПРОСОВ 76

ПРИЛОЖЕНИЕ Г. СХЕМА РАБОТЫ ПРОГРАММЫ 81

ВВЕДЕНИЕ

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

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

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

В данном курсовом проекте база данных проектируется средствами облачного сервиса http://apex.oracle.com/. Основным преимуществом данной среды является  возможность полного отсутствия специализированного ПО на рабочем месте, за исключением любого браузера для выхода в Интернет. Другие возможности среды рассмотрены в ходе курсового проектирования.


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

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

Конечным пользователем разрабатываемой базы данных является главный бухгалтер фирмы.

Задачи, которые будут решаться главным бухгалтером с помощью компьютера:

  1.  формирование и загрузка исходных данных из БД оперативного учета (ежедневная суммарная стоимость и количество продаж по каждому товару);
  2.  расчет суммарной стоимости заказов по дням, месяцам и годам;
  3.  расчет количества заказов по группам товаров;
  4.  ввод, коррекция и вывод прейскурантов на заданный период времени.

Для решения задач будут использоваться следующие входные данные:

данные о клиентах (название фирмы, руководитель, БИК, телефон, адрес);

данные об услугах (вид услуги, услуга, цена).

В процессе решения будут получены следующие выходные данные:

информация об услугах;

информация о клиентах;

информация о заказах;

отчет, отражающий количество заказов по группам товаров;

отчет, отражающий стоимость и количество заказов по услугам и товарам;

отчет, отражающий ежедневную выручку фирмы;

диаграмма, отражающая доход от продаж по каждому виду услуг;

диаграмма, отражающая ежедневную выручку.

Начальным этапом проектных исследований является анализ документооборота организации, какие документы, из каких подразделений поступают в ЭИС, какие из документов должны выдаваться из ЭИС. Эта задача решается с помощью моделирования информационных процессов. Для этой цели используется диаграмма потоков данных (ДПД). ДПД приложения «АРМ главного бухгалтера» показана в приложении А.

ДПД была разработана с использованием возможностей MS Visio 2007. ДПД состоит из нескольких уровней, каждый из которых отражает определенные информационные задачи, выполняемые пользователем разработанной БД:

контекстная диаграмма  «АРМ главного бухгалтера»;

ДПД первого уровня;

ДПД второго уровня процесса А1 «Учет клиентов»;

ДПД второго уровня процесса А2 «Формирование прайс-листа»;

ДПД второго уровня процесса А3 «Учет заказов»;

ДПД второго уровня процесса А4 «Сервисные функции».

Структура таблиц БД представлена в таблице 1.

Таблица 1 – Структура таблиц базы данных

Таблица

Имя поля

Тип

Размер

Кол-во знаков после запятой

Обязательность

Ключ

FIRMA

NAZVANIE

CHAR

35

+

RUKOVODITEL

CHAR

50

+

ADRES

CHAR

75

INN

CHAR

12

+

GLAV_BUH

CHAR

50

BIK

CHAR

20

+

E-MAIL

CHAR

35

R_KLIENTS

ID

NUMBER

3

0

+

PK

NAZVANIE_FIRMI

CHAR

30

+

RUKOVODITEL

CHAR

50

BIK

CHAR

20

+

TELEPHONE

CHAR

15

ADRES

CHAR

70

VIDI_USLUG

KOD

NUMBER

3

0

+

PK

VID

CHAR

30

+

USLUGI

KOD

NUMBER

3

0

+

PK

USLUGA

CHAR

30

+

PRICE

NUMBER

6

2

+

KOD_VIDA

NUMBER

3

0

+

FK

ZAKAZ

NOMER_DOKUMENTA

NUMBER

3

0

+

FK

KOD_USLUGI

NUMBER

3

0

+

FK

KOLICHESTVO

NUMBER

3

0

+

STATUS

CHAR

15

DOKUMENT

NOMER_DOKUMENTA

NUMBER

3

0

+

PK

NOMER_ZAKAZA

NUMBER

3

0

+

DATA

DATA

+

KLIENTSKIJ_NOMER

NUMBER

3

0

+

FK

Схема структуры базы данных, разработанная в MS Visio 2003 представлена в приложении Б.

Таблицы связаны между собой внешними ключами. Описание связей и их свойств представлено в таблице 2.

Таблица 2 – Связи между таблицами

Связь

Контроль
целостности

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

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

VIDI_USLUGI, KOD

USLUGI, KOD_VIDA

+

+

+

USLUGI, KOD

ZAKAZ, KOD_USLUGI

+

+

+

KLIENTS, ID

DOKUMENT, KLIENTSKIJ_NOMER

+

+

+

ZAKAZ,

NOMER_DOKUMENTA

DOKUMENT, NOMER_DOKUMENTA

+

+

+

2. ПРОЕКТИРОВАНИЕ СТРУКТУРЫ БАЗЫ ДАННЫХ

2.1 Регистрация и вход в Oracle Application Express

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

При первом входе в облако необходимо указать «Рабочее пространство», «Имя пользователя» и «Пароль» (Рисунок 1).

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

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

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

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

Для того чтобы создать таблицу, на панели Главного меню необходимо выбрать вкладку 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, созданная в диалоговом режиме

2.2.2 Создание таблиц в режиме 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 (Рисунок 29).

Рисунок 29 - Кнопка Utilities

Далее нажмем кнопку Query Builder (Рисунок 30).

Рисунок 30 - Кнопка Query Builder

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

Рисунок 31 - Структура БД


3. РАЗРАБОТКА ПРИЛОЖЕНИЯ БД

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

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

Рисунок 32 - Выбор пункта SQL Commands

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

Рисунок 33 - Окно сохранения запроса

Запрос 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_USLUGI

WHERE DOKUMENT.DATA >:"НАЧАЛО ПЕРИОДА" AND DOKUMENT.DATA <:"КОНЕЦ ПЕРИОДА"

GROUP BY DOKUMENT.DATA, USLUGI.USLUGA, USLUGI.PRICE, ZAKAZ.STATUS

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

ORDER BY DOKUMENT.DATA

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

Рисунок 34 - Запрос ввода периода

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

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

Запрос 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_DOKUMENTA

WHERE DOKUMENT.DATA >:"НАЧАЛО ПЕРИОДА" AND DOKUMENT.DATA <:"КОНЕЦ ПЕРИОДА"

GROUP BY DOKUMENT.DATA

Рисунок 36 - Запрос ввода параметров

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

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

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

SELECT P1.MONTH , SUM(P1.VIRUCHKA) AS VIRUCHKA

FROM P1

WHERE P1.YEAR = :"ВВЕДИТЕ ГОД" AND P1.MONTH > :"ВВЕДИТЕ МЕСЯЦ"

GROUP BY P1.MONTH

Рисунок 38 - Запрос ввода параметров

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

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

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

SELECT P1.YEAR , SUM(P1.VIRUCHKA) AS VIRUCHKA

FROM P1

WHERE P1.YEAR= :"ВВЕДИТЕ ГОД"

GROUP BY P1.YEAR

Рисунок 40 - Запрос ввода параметров

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

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

Текст запроса для 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_ZAKAZOV

FROM VIDI_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_VIDA

GROUP BY DOKUMENT.DATA, VIDI_USLUG.VID

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

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

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

Рисунок 43 - Окно создания запроса

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

Рисунок 44 - Список запросов БД

Результат выполнения запроса представлен на Рисунке 45.

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

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

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

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

Рисунок 46 - Кнопка Application Builder

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

Рисунок 47 - Выбор метода

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

Рисунок 48 - Создание имени приложения

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

Рисунок 49 - Создание страницы для приложения

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

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

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

Рисунок 51 - Выбор языка, формата даты и времени

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

Рисунок 52 - Выбор оформления приложения

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

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

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

Рисунок 54 - Значок приложения

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

Рисунок 55 - Запрос логина и пароля

После ввода данных открывается главная страница приложения (Рисунок 56).

Рисунок 56 - Главная страница приложения

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

Облачный сервис http://apex.oracle.com/ позволяет создавать различные виды форм. При создании приложения «РЕКЛАМНОЕ АГЕНТСТВО» были использованы табличная форма (Tabular Form) и составная табличная форма (Detail Form).

Рассмотрим создание табличной формы на примере таблицы FIRMA.

Для создания новой страницы в нижней части главной формы приложения нажимаем кнопку Create (Созадть); затем в открывшемся окне выбираем пункт New page (Рисунок 57).

Рисунок 57 – Создание новой страницы

В следующем окне выбираем тип страницы – Form (Рисунок 58).

Рисунок 58 - Выбор типа страницы

На следующем шаге выбираем тип формы – Tabular Form (Рисунок 59).

Рисунок 59 - Выбор типа формы

В следующем окне выбираем таблицу, для которой создается форма (FIRMA), и указываем столбцы, в которые будут вводиться данные. В этом же окне указываем, какие операции сможет выполнять пользователь с данными таблицы (обновление, вставка, удаление) (Рисунок 60).

Рисунок 60 - Выбор таблицы

Далее устанавливается тип первичного ключ: Managed by Database или Select Primary Key. Выбираем первый тип – управляемый базой данных (Рисунок 61).

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

В следующем окне выбираем обновляемые столбцы (Рисунок 62).

Рисунок 62 - Выбор обновляемых столбцов таблицы

После нажатия кнопки Next появляется окно, в котором указываем имя страницы (Фирма). Остальные параметры оставляем без изменения (Рисунок 63).

Рисунок 63 - Настройка параметров страницы

В следующем окне настраиваем параметры вкладки. Возможны 3 варианта: Do not use tabs(Не использовать вкладки),Use an existing tab set and create a new tab within the existing tab set(Использовать существующий набор вкладок или создать новую вкладку в существующем наборе вкладок), Use an existing tab set and reuse an existing tab within that tab set(Использовать существующий набор вкладок и снова использовать существующую вкладку в том наборе вкладок). Выбираем второй вариант и указываем имя вкладки (ИНФОРМАЦИЯ О НАС) (Рисунок 64).

Рисунок 64 - Настройка параметров вкладки

В следующем окне выбираем кнопки, необходимые для функционирования формы, а также ветвление на другие страницы (Рисунок 65).

Рисунок 65 - Добавление кнопок и настройка ветвления

Далее подтверждаем создание формы (Рисунок 66).

Рисунок 66 - Окно подтверждения создания формы

При успешном выполнении всех операций на экран выводится сообщение о создании формы (Рисунок 67).

Рисунок 67 - Сообщение об успешном создании формы

Для того чтобы открыть созданную форму, необходимо нажать кнопку Run Page (Рисунок 68).

Рисунок 68 - Вкладка "ИНФОРМАЦИЯ О НАС"

Создание составной табличной формы рассмотрим на примере создания формы «Услуги». После создания новой страницы в окне выбора типа формы выберем пункт Master Detail Form (Рисунок 69).

Рисунок 69 – Выбор типа формы

Далее выбираем главную таблицу (VIDI_USLUG) и поля, которые будут отображаться (Рисунок 70).

Рисунок 70 - Выбор главной таблицы составной формы

Затем выбираем подчинённую таблицу (USLUGI) и также указываем отображаемые поля (Рисунок 71).

Рисунок 71 - Выбор подчиненной таблицы

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

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

Далее предлагается изменить параметры навигации. Оставим их по умолчанию и нажмем кнопку Next (Рисунок 73).

Рисунок 73 - Параметры навигации

На следующем этапе выбираем вид отображения формы: на одной странице или на двух отдельных страницах. Для данной формы был выбран первый вариант (Рисунок 74).

Рисунок 74 - Выбор вида отображения составной формы

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

Рисунок 75 - Настройка параметров страниц составной формы

На следующем этапе настраиваются параметры вкладки, на которой будет отображаться создаваемая форма. Возможны три варианта: не создавать вкладку, создать новую вкладку для новой страницы, использовать уже существующую вкладку для новой страницы. Выбираем второй вариант и вводим название вкладки (Рисунок 76).

Рисунок 76 - Настройка параметров вкладки

На последнем этапе необходимо подтвердить создание формы (Рисунок 77).

Рисунок 77 - Окно подтверждения создания формы

Для отображения созданной составной формы необходимо нажать кнопку Run Page (Рисунок 78).

Рисунок 78 - Составная форма "Услуги"

Аналогичным способом были созданы составные формы «ЗАКАЗЫ ПО ДОКУМЕНТАМ» (Рисунок 79)  и «КЛИЕНТЫ» (Рисунок 80).

Рисунок 79 - Составная форма "ЗАКАЗЫ ПО ДОКУМЕНТАМ"

Рисунок 80 - Составная форма "КЛИЕНТЫ"

В СУБД Oracle Application Express предусмотрена замена кодовых полей значениями, доступными для восприятия пользователя. Для этого используются Списки значений (Lists of Values). Рассмотрим создание Списка значений на примере списков STATUS и KLIENTS.  

Для того чтобы создать Список значений, нажимаем кнопку, затем в окне User Interface выбираем ссылку Lists of Values и нажимаем кнопку Create (Рисунок 81).

Рисунок 81 - Создание Списка значений

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

Рисунок 82 - Выбор источника для списка значений

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

Рисунок 83 - Выбор типа списка (статический)

Рисунок 84 - Выбор типа списка (динамический)

В следующем окне для списка «STATUS» создаем список возможных значений (Рисунок 85); для списка «KLIENTS» - запрос на языке SQL (Рисунок 86).

Рисунок 85 - Создание статического списка

Рисунок 86SQL-запрос для динамического списка

Когда все шаги проделаны, появляются значки созданных списков (Рисунок 87).

Рисунок 87 - Значки созданных Списков значений

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

Рисунок 88 - Выбор поля таблицы, к которому применяется список значений

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

Рисунок 89 - Применение Списка значений "STATUS"

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

Рисунок 90 - Результат применения списка значений STATUS

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

Рисунок 91 - Результат применения списка значений «KLIENTS»

Рисунок 92 - Результат применения списка значений "USLUGI"

3.4 Создание отчетов

Для создания отчетов необходимо использовать объект Report (Рисунок  93).

Рисунок 93 - Выбор типа страницы. Отчет

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

Рисунок 94 - Выбор типа создаваемого отчета

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

Рисунок 95 - Ввод имени создаваемого отчета

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

Рисунок 96 – Настройка параметров и ввод имени создаваемой вкладки

В следующем окне нажимаем кнопку Query Builder. Открывается окно, в котором выбираем  источник отчета – запрос «VIRUCHKA_PO_DNYAM», отмечаем столбцы, которые будут отображаться в отчете,  а затем копируем автоматически сгенерированный код SQL из соответствующего окна (Рисунок 97).

Рисунок 97 - Выбор источника данных для создания отчета

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

select VIRUCHKA_PO_DNYAM.DATA as DATA,

   VIRUCHKA_PO_DNYAM.VIRUCHKA as VIRUCHKA

from VIRUCHKA_PO_DNYAM VIRUCHKA_PO_DNYAM

Вставляем скопированный текст запроса в окно ввода SQL запроса и нажимаем кнопку Next (Рисунок 98).

Рисунок 98 - Ввод SQL запроса для создания отчета

В следующем окне подтверждаем создание отчета (Рисунок 99) .

Рисунок 99 - Окно подтверждения создания отчета

Созданный «Выручка по дням» представлен на Рисунке 100.

Рисунок 100 - Отчет «Выручка по дням»

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

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

Рисунок 101 - Отчет "Количество заказов по группам товаров"

Рисунок 1

Рисунок 102 - Отчет "Стоимость и количество заказов  по услугам и товарам»

3.5 Создание диаграммы

Рассмотрим процесс создания диаграммы на примере диаграммы «Доход от продаж по услугам». Для того чтобы создать диаграмму, в нижней части окна приложения нажмем  кнопку Create, затем выберем пункт New Page и нажмем кнопку Next. В открывшемся окне выберем пункт Chart (Рисунок 103).

Рисунок 103 - Выбор типа создаваемого объекта – Chart

В следующем окне выбираем тип создаваемой диаграммы: Pie & Doughnut - Круговая диаграмма (Рисунок 104).

Рисунок 104 - Выбор типа создаваемой диаграммы

На следующем шаге уточняем тип создаваемой диаграммы: 3D Pie -Объемный график (Рисунок 105).

Рисунок 105 - Выбор типа создаваемой диаграммы

В следующем окне задаем название страницы – «Chart1». Остальные параметры оставляем без изменений (Рисунок 106).

Рисунок 106 – Определение имени создаваемой страницы

Следующее окно - окно выбора опций вкладки. Здесь возможны 3 варианта: Do not use tabs (Не использовать вкладки), Use an existing tab set and create a new tab within the existing tab set (Использовать существующий набор вкладок и создать новую вкладку в существующем наборе вкладок), Use an existing tab set and reuse an existing tab within that tab set (Использовать существующий набор вкладок и снова использовать существующую вкладку в том наборе вкладок).  Выбираем первый вариант (Рисунок 107).

Рисунок 107 - Окно выбора опций вкладки

В следующем окне вводим название диаграммы «ДОХОД ОТ ПРОДАЖ ПО УСЛУГАМ», задаем цвет фона, указываем параметры, с помощью которых на диаграмме будут отображаться значения (Рисунок 108).

Рисунок 108 - Определение параметров диаграммы

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

С помощью кнопки Build Query выберем запрос «VIRUCHKA_I_KOL_PRODAG_PO_TOVARAM», из которого  в дальнейшем выберем поля, которые будут представлены на диаграмме (Рисунок 109).

Рисунок 109 - Выбор полей таблицы

После нажатия кнопки Next будет сформирован SQL-запрос (Рисунок 110).

Рисунок 110 - SQL-запрос для создания диаграммы

После подтверждения создания диаграммы в главном меню появится соответствующая вкладка, нажав на которую пользователь сможет увидеть диаграмму (Рисунок 111).

Рисунок 111 - Диаграмма "Доход от продаж по услугам"

Аналогичным образом была создана диаграмма «Выручка по дням» (Рисунок 112).

Рисунок 112 - Диаграмма "Выручка по дням"

  1.  Создание главной страницы приложения

Главная страница  - это страница, которую будет видеть пользователь при открытии приложения. Для ее создания нажмем кнопку Create в нижней части приложения и выберем Region on this page (Рисунок 113).

Рисунок 113 - Создание Главной страницы приложения

Далее определим тип Главной страницы как HTML (Рисунок 114).

Рисунок 114 - Выбор типа Главной страницы

В следующем окне определяем имя создаваемой страницы; остальные параметры оставляем неизменными (Рисунок 115).

Рисунок 115 - Настройка параметров Главной страницы

Затем записываем текст, который будет отображаться на главной странице в HTML формате (Рисунок 116).

Рисунок 116 - Текст Главной страницы в формате HTML

После ввода текста нажимаем Create Region. Вид созданной Главной страницы представлен на Рисунке 117.

Рисунок 117 - Главная страница приложения


4. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ

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

Для начала работы с Базой Данных необходимо с помощью любого браузера пройти по ссылке: http://apex.oracle.com/pls/apex/f?p=73933:LOGIN_DESKTOP:117570792338140, после чего система запросит логин и пароль (Рисунок 128).

Рисунок 128 - Идентификация пользователя

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

Рисунок 129 - Главная страница приложения

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

Рисунок 130 – Вкладки

Вернуться на главную страницу приложения можно вернуться, нажав на вкладку Home в левом верхнем углу.

Вкладка «Клиенты»

На этой вкладке представлена информация о клиентах фирмы. Имеется возможность добавить новых клиентов и данные о них, а также редактировать и удалять имеющиеся. Для добавления следует нажать кнопку Добавить клиента (Рисунок 118).

Рисунок 118 - Вкладка "КЛИЕНТЫ"

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

Рисунок 119 - Вкладка "КЛИЕНТЫ". Редактирование и добавление данных.

Вкладка «Услуги»

На данной вкладке представлена информация о видах услуг, которые оказывает фирма. Кнопка Добавить позволяет создать новую запись в таблице (Рисунок 120).

Рисунок 120 - Вкладка "УСЛУГИ"

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

Рисунок 121 - Вкладка "УСЛУГИ". Редактирование и добавление данных

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

На данной вкладке представлен список документов. Кнопка Добавить позволяет создать новую запись в таблице (Рисунок 122)

Рисунок 122 - Вкладка "ЗАКАЗЫ ПО ДОКУМЕНТАМ"

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

Рисунок 123 - Вкладка "ЗАКАЗЫ ПО ДОКУМЕНТАМ". Редактирование и добавление данных

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

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

Рисунок 124 – Вкладка «ОТЧЕТЫ»

Рисунок 125 – Отчет «Количество заказов по группам товаров»

Рисунок 126 - Отчет "Выручка по дням"

Рисунок 127 – Отчет «Стоимость и количество продаж по товарам»

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

Рисунок 128 - Меню Action

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

Рисунок 129 - Меню Action. Download

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

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

Рисунок 130 - Вкладка "ДИАГРАММЫ"

Рисунок 131 - Диаграмма "Доход от продаж по услугам"

Рисунок 132 - Диаграмма "Выручка по дням"

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

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

Рисунок 133 - Вкладка "ИНФОРМАЦИЯ О НАС"

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

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

Рисунок 134 - Вкладка "О ПРОГРАММЕ"

 

 

 

 

Заключение

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

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

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

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

  1.  Базы данных. Проектирование, реализация, сопровождение. Теория и практика: Томас М.Конноли, Каролин Е. – Москва-Санкт-Петербург, 2009
  2.  Базы данных. Учебный курс: Глушков С.В., Ломотько Д.В. – Харьков, 2010
  3.  SQL. Справочное руководство: Мартин Грабер — Санкт-Петербург, Лори, 2012
  4.  Oracle PL/SQL для администраторов баз данных: Аруп Нанда и Стивен Фейерштейн — Санкт-Петербург, Символ-Плюс, 2008
  5.  Эффективное проектирование приложений Oracle: Томас Кайт — Москва, Лори, 2008 г.


ПРИЛОЖЕНИЕ А. ДПД


Рисунок 135 – Контекстная диаграмма

Рисунок А2 - Диаграмма потоков данных первого уровня

Рисунок А3 - Диаграмма потоков данных второго уровня для процесса А1

Рисунок А4 - Диаграмма потоков данных второго уровня для процесса А2

Рисунок А3  - Диаграмма потоков данных второго уровня для процесса А3

Рисунок А4 - Диаграмма потоков данных второго уровня для процесса А4

ПРИЛОЖЕНИЕ Б. СХЕМА ДАННЫХ


Рисунок 136 - Схема данных


ПРИЛОЖЕНИЕ B. ТЕКСТ SQL-ЗАПРОСОВ


Текст 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),

 CONSTRAINT "KLIENTS_PK" PRIMARY KEY ("ID") ENABLE

  )

/

CREATE OR REPLACE TRIGGER  "BI_KLIENTS"

 before insert on "KLIENTS"               

 for each row  

begin   

 if :NEW."ID" is null then

   select "KLIENTS_SEQ".nextval into :NEW."ID" from sys.dual;

 end if;

end;

/

ALTER 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)

  )

/

ALTER TABLE  "ZAKAZ" ADD CONSTRAINT "ZAKAZ_FK2" FOREIGN KEY ("NOMER_DOKUMENTA")

  REFERENCES  "DOKUMENT" ("NOMER_DOKUMENTA") ON DELETE CASCADE ENABLE

/

ALTER TABLE  "ZAKAZ" ADD CONSTRAINT "ZAKAZ_FK3" FOREIGN KEY ("KOD_USLUGI")

  REFERENCES  "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,

 CONSTRAINT "DOKUMENT_PK" PRIMARY KEY ("NOMER_DOKUMENTA") ENABLE

  )

/

ALTER TABLE  "DOKUMENT" ADD CONSTRAINT "DOKUMENT_FK" FOREIGN KEY ("KLIENTSKIJ_NOMER")

  REFERENCES  "KLIENTS" ("ID") ON DELETE CASCADE ENABLE

/

CREATE OR REPLACE TRIGGER  "BI_DOKUMENT"

 before insert on "DOKUMENT"               

 for each row  

begin   

 if :NEW."NOMER_DOKUMENTA" is null then

   select "DOKUMENT_SEQ".nextval into :NEW."NOMER_DOKUMENTA" from sys.dual;

 end if;

end;

/

ALTER TRIGGER  "BI_DOKUMENT" ENABLE

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

CREATE TABLE  "VIDI_USLUG"

  ( "KOD" NUMBER(6,0) NOT NULL ENABLE,

"VID" VARCHAR2(60) NOT NULL ENABLE,

 CONSTRAINT "VIDI_USLUG_PK" PRIMARY KEY ("KOD") ENABLE

  )

/

CREATE OR REPLACE TRIGGER  "BI_VIDI_USLUG"

 before insert on "VIDI_USLUG"               

 for each row  

begin   

 if :NEW."KOD" is null then

   select "VIDI_USLUG_SEQ1".nextval into :NEW."KOD" from sys.dual;

 end if;

end;

/

ALTER 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,

 CONSTRAINT "USLUGI_PK" PRIMARY KEY ("KOD") ENABLE

  )

/

ALTER TABLE  "USLUGI" ADD CONSTRAINT "USLUGI_FK" FOREIGN KEY ("KOD_VIDA")

  REFERENCES  "VIDI_USLUG" ("KOD") ON DELETE CASCADE ENABLE

/

CREATE OR REPLACE TRIGGER  "BI_USLUGI"

 before insert on "USLUGI"               

 for each row  

begin   

 if :NEW."KOD" is null then

   select "USLUGI_SEQ1".nextval into :NEW."KOD" from sys.dual;

 end if;

end;

/

ALTER TRIGGER  "BI_USLUGI" ENABLE

/

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

CREATE OR REPLACE FORCE VIEW  "KOL_ZAKAZOV_PO_GRUPPAM_TOVAROV" ("DATA", "VID", "KOLICHESTVO_ZAKAZOV") AS 

SELECT DOKUMENT.DATA, VIDI_USLUG.VID, SUM(ZAKAZ.KOLICHESTVO) AS KOLICHESTVO_ZAKAZOV

FROM VIDI_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_VIDA

GROUP BY DOKUMENT.DATA, VIDI_USLUG.VID

/

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

CREATE OR REPLACE FORCE VIEW  "STOIM_I_KOL_PRODAG_PO_TOVARAM" ("DATA", "USLUGA", "VIRUCHKA", "KOLICHESTVO_ZAKAZOV") AS 

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_USLUGI

GROUP BY DOKUMENT.DATA, USLUGI.USLUGA, USLUGI.PRICE, ZAKAZ.STATUS

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

ORDER BY DOKUMENT.DATA

/

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

CREATE OR REPLACE FORCE VIEW  "VIRUCHKA_PO_DNYAM" ("DATA", "VIRUCHKA") AS

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_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_DOKUMENTA

WHERE DOKUMENT.DATA >:"НАЧАЛО ПЕРИОДА" AND DOKUMENT.DATA <:"КОНЕЦ ПЕРИОДА"

GROUP BY DOKUMENT.DATA


ПРИЛОЖЕНИЕ Г. СХЕМА РАБОТЫ ПРОГРАММЫ





1. это] эклектикаИсторические формы материализма это] наивный стихийный материализм древних мыслит
2. ТЕМА 10 МІЖНАРОДНІ ВАЛЮТНОФІНАНСОВІ ВІДНОСИНИ з дисципліни
3. Work with these nimls is not immeditely vilble
4. Проект создания системы поддержки принятия решений оперативно-дежурной службы милиции
5. Средние слои в социальной стратификации современной России.html
6. Проект определения конкурентоспособности и предельной цены грузоподъемного оборудования
7. Направления совершенствования системы оплаты труда на предприятии ОАО Свiтанок
8. Национально-теократическая концепция Святой Руси АВКарташев
9. Транссиб цели сооружения проектирование и строительство магистрали.html
10. Лекция 3 Государственные образования в Причерноморье 74 вв
11. Пояснительная записка к курсовой работе по динамике полета Выполнил студ
12. На тему- Отчет об оценке квартиры общей площадью 1945 кв.html
13. В рамках этой структуры протекает весь управленческий процесс движение потоков информации и принятие упра.html
14. начале 20 вв определялся самодержавной природой верховной власти
15. кредитной системы и ее несовершенстве
16. 2014 г 2014 г
17. 19 Октябрь 2011г. 153 19 Октябрь 2011г
18. на тему- Формирование трудового коллектива
19. Статья- Семья в ценностных ориентациях
20. восстановительных работ