Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Пензенская государственная технологическая академия
Кафедра «Прикладная информатика»
Дисциплина «Базы данных»
Курсовой проект
на тему «Разработка базы данных для анализа продаж в рекламном агентстве»
Выполнил: студент группы 10Э1б
Ядренцева В.Г.
Принял: доц.к. «Прикладная информатика»
Шигина Н.А.
Оценка _____________
Дата _____________
Пенза 2013
ПЕНЗЕНСКАЯ ГОСУДАРСТВЕННАЯ ТЕХНОЛОГИЧЕСКАЯ АКАДЕМИЯ
Кафедра «Прикладная информатика»
УТВЕРЖДАЮ
Зав. кафедрой Ремонтов А.П.
_______________________
З А Д А Н И Е
на курсовое проектирование по дисциплине “Базы данных”
Студенту Ядренцевой Веронике Геннадьевне группы - 10Э1б
Тема проекта: «Разработка базы данных для анализа продаж в рекламном агентстве»
Технические требования на проектирование:
База данных предназначена для хранения и анализа информации об итогах коммерческой деятельности предприятия в течение 5 лет. Пользователем БД является главный бухгалтер. Исходные данные содержатся в базе данных оперативного учета заказов. Результаты запросов выводятся на экран и печать в табличном и графическом виде. Для обеспечения целостности БД предусмотреть проверку данных, вводимых пользователем.
БД предназначена для коллективного использования в сети интернет. Доступ с рабочего места пользователя осуществляется посредством приложения Oracle Application Express (облачный сервис http://apex.oracle.com). Для авторизации пользователя используется уникальный логин и пароль.
Функции приложения БД:
- формирование и загрузка исходных данных из БД оперативного учета (ежедневная суммарная стоимость и количество продаж по каждому товару);
- расчет суммарной стоимости заказов по дням, месяцам и годам;
- расчет количества заказов по группам товаров;
- ввод, коррекция и вывод прейскурантов на заданный период времени.
- вывод сведений об авторе и назначении программы;
- помощь пользователю в html-формате.
Объем работы по курсу
1. Расчетная часть:
1.1. Анализ среды разработки
1.2. Проектирование структуры БД
1.3. Разработка приложения APEX.
1.4. Разработка руководства пользователя.
2. Графическая часть:
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/. Основным преимуществом данной среды является возможность полного отсутствия специализированного ПО на рабочем месте, за исключением любого браузера для выхода в Интернет. Другие возможности среды рассмотрены в ходе курсового проектирования.
Рассматриваемой предметной областью является АРМ бухгалтера в рекламном агентстве. Основным предназначением разрабатываемой программы является прием заказов на оказание услуги, создание на их основе документов, заполнение необходимой информации о клиентах и услугах, формирование отчетов и диаграмм.
Конечным пользователем разрабатываемой базы данных является главный бухгалтер фирмы.
Задачи, которые будут решаться главным бухгалтером с помощью компьютера:
Для решения задач будут использоваться следующие входные данные:
данные о клиентах (название фирмы, руководитель, БИК, телефон, адрес);
данные об услугах (вид услуги, услуга, цена).
В процессе решения будут получены следующие выходные данные:
информация об услугах;
информация о клиентах;
информация о заказах;
отчет, отражающий количество заказов по группам товаров;
отчет, отражающий стоимость и количество заказов по услугам и товарам;
отчет, отражающий ежедневную выручку фирмы;
диаграмма, отражающая доход от продаж по каждому виду услуг;
диаграмма, отражающая ежедневную выручку.
Начальным этапом проектных исследований является анализ документооборота организации, какие документы, из каких подразделений поступают в ЭИС, какие из документов должны выдаваться из ЭИС. Эта задача решается с помощью моделирования информационных процессов. Для этой цели используется диаграмма потоков данных (ДПД). ДПД приложения «АРМ главного бухгалтера» показана в приложении А.
ДПД была разработана с использованием возможностей 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 |
+ |
|||
|
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.
Связь |
Контроль |
Каскадное |
Каскадное удаление |
|
VIDI_USLUGI, KOD |
USLUGI, KOD_VIDA |
+ |
+ |
+ |
USLUGI, KOD |
ZAKAZ, KOD_USLUGI |
+ |
+ |
+ |
KLIENTS, ID |
DOKUMENT, KLIENTSKIJ_NOMER |
+ |
+ |
+ |
ZAKAZ, NOMER_DOKUMENTA |
DOKUMENT, NOMER_DOKUMENTA |
+ |
+ |
+ |
Перед началом работы в СУБД Application Express необходимо зарегистрироваться в этой системе. Для этого следует ввести логин, пароль, название рабочей области и указать причины регистрации в системе. После успешной регистрации на электронную почту высылаются данные для входа.
При первом входе в облако необходимо указать «Рабочее пространство», «Имя пользователя» и «Пароль» (Рисунок 1).
Таблицы в СУБД Oracle Application Express можно создавать двумя способами: в диалоговом режиме и с помощью языка SQL.
Для того чтобы создать таблицу, на панели Главного меню необходимо выбрать вкладку SQL Workshop и в открывшемся окне нажать кнопку Object Browser (Рисунок 2).
После этого на экране появляется окно, разделенное на два поля: левое содержит список всех объектов БД, правое различную информацию о них (Рисунок 3).
При нажатии в правом верхнем углу кнопки Create (Создать) откроется выпадающий список, в котором можно выбрать тип создаваемого объекта БД. При создании таблицы следует выбрать пункт Table (Рисунок 4).
После выбора типа объекта открывается окно создания таблицы. В этом окне необходимо указать имя таблицы (Table Name), а также названия колонок (Column Name), типы данных (Type) и различные ограничения: общее количество знаков для числовых типов (Precision), количество знаков после запятой (Scale), проверка на нулевое значения (Not Null) (Рисунок 5).
Рассмотрим процесс создания таблицы на примере таблицы KLIENT. Введем имя таблицы, названия столбцов, определим типы данных (Type), установим количество знаков после запятой (Scale) и ограничения на нулевое значения (Not Null) (Рисунок 6).
На следующем этапе создания таблицы определим ключевые поля. Ключевое поле это одно или несколько полей, комбинация значений которых однозначно определяет каждую запись в таблице.
Система предлагает 4 варианта определения первичного ключа: «Не указывать первичный ключ», «Указать ключевое поле из новой таблицы», «Указать ключевое поле из уже существующей таблицы», «Создать составное ключевое поле из двух колонок таблицы». При создании таблицы KLIENT выберем второй вариант; ключевым полем таблицы станет поле ID (Рисунок 7).
На следующем этапе следует определить внешние ключи. Внешний ключ устанавливает связь между столбцами двух таблиц. При создании таблицы KLIENT внешние ключи не использовались (Рисунок 8).
После определения внешних ключей пользователю предоставляется возможность создания ограничений двух видов: Check (проверка) и Unique (уникальность). Установим параметры уникальности для столбца BIK таблицы KLIENTS и нажмем кнопку Add (Рисунок 9).
На последнем этапе подтверждаем создание таблицы (Рисунок 10).
Нажав кнопку SQL можно увидеть, как выглядит запрос на создание таблицы на языке SQL (Рисунок 11).
Внешний вид созданной таблицы KLIENTS представлен на рисунке 12.
Для того чтобы создать таблицу в режиме SQL, на панели Главного меню необходимо выбрать вкладку SQL Workshop и в открывшемся окне нажать кнопку SQL Commands (Рисунок 13).
После этого открывается окно, в котором расположены область для ввода SQL команд и кнопки Save и Run для сохранения и запуска написанной программы соответственно (Рисунок 14).
Рассмотрим процесс создания таблицы на примере таблицы VIDI_USLUG. Для создания таблицы воспользуемся командой CREATE TABLE. Текст полного SQL запроса для создания таблицы представлен на Рисунке 15.
После нажатия кнопки Run при верном написании кода таблица будет создана (Рисунок 16).
Если структура таблицы в БД Oracle совпадает со структурой таблицы в БД Access или Excel, то данные одной таблицы можно импортировать в другую.
Рассмотрим импорт данных на примере заполнения таблицы Price_list, созданной нами ранее в СУБД Oracle. Для этого последовательно выполним команды SQL Workshop. Utilities. Data Workshop (Рисунок 17).
Далее выберем пункт Spredsheet Data. Открывается окно, в котором необходимо пройти 4 этапа.
На первом этапе требуется выбрать, куда (Load to) закачивать данные. Т.к. таблица уже существует в БД Oracle, то выбираем существующую таблицу (Existing Table) (рисунок 18).
На втором этапе указываем таблицу, в которую будут импортироваться данные (Рисунок 19).
На следующем шаге импорта мастер предлагает вставить данные из буфера в окошко, расположенное в центре страницы. Сначала откроем таблицу в Access, выделим все строки и нажмем клавиши Ctrl+C (копировать). Затем щелкнем мышью в окошке на страницу APEX и нажмем CTRL+V (вставить). В окне появляются данные из таблицы (Рисунок 20).
На последнем этапе импортирования мастер выводит всю структуру таблицы и данные (Рисунок 21).
Для загрузки данных в таблицу нажимаем кнопку Load Data. Если загрузка данных прошла успешно, то щелкнув по имени таблицы, мы переходим на страницу Object Brouser с открытой структурой таблицы. Выбрав Data в списке команд над таблицей можно увидеть свои данные (Рисунок 22).
В ходе выполнения курсового проекта были созданы таблицы KLIENTS, VIDI_USLUG, USLUGI, FIRMA (Рисунки 23, 24), ZAKAZ (Рисунки 25, 26) , DOKUMENT (Рисунки 27, 28).
Для просмотра таблиц и связей между ними следует воспользоваться формой создания запроса. Для этого выберем в меню вкладку SQL Workshop, нажмем кнопку Utilities (Рисунок 29).
Далее нажмем кнопку Query Builder (Рисунок 30).
В открывшемся окне из боковой панели добавляем все таблицы, выбрав их щелчком, и соединяем линиями необходимые поля (Рисунок 31).
Для создания запросов в главном меню необходимо выбрать вкладку SQL Workshop, далее пункт SQL Commands (Рисунок 32).
В открывшемся окне следует ввести текст запроса на языке SQL. Для запуска запроса на выполнения необходимо нажать кнопку Run. Для того чтобы сохранить созданный запрос, необходимо нажать кнопку Save (Рисунок 32).
Запрос 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).
После нажатия кнопки Submit выводится таблица, отражающая суммарную стоимость и количество продаж по каждому товару (Рисунок 35).
Запрос 2 Расчет суммарной стоимости заказов за день, месяц, год
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
После нажатия кнопки Submit выводится таблица, отражающая выручку по дням (Рисунок 37).
SELECT P1.MONTH , SUM(P1.VIRUCHKA) AS VIRUCHKA
FROM P1
WHERE P1.YEAR = :"ВВЕДИТЕ ГОД" AND P1.MONTH > :"ВВЕДИТЕ МЕСЯЦ"
GROUP BY P1.MONTH
После нажатия кнопки Submit выводится таблица, отражающая выручку за месяц (Рисунок 39).
SELECT P1.YEAR , SUM(P1.VIRUCHKA) AS VIRUCHKA
FROM P1
WHERE P1.YEAR= :"ВВЕДИТЕ ГОД"
GROUP BY P1.YEAR
После нажатия кнопки Submit выводится таблица, отражающая выручку по годам (Рисунок 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).
В открывшемся окне введем название запроса и его текст. SQL запрос может быть создан как на SQL (SQL Commands), так и в диалоговом режиме (Query Builder). При создании запроса «KOL_ZAKAZOV_PO_GRUPPAM_TOVAROV» был выбран первый способ (Рисунок 43).
Далее подтверждаем создание запроса. После успешного выполнения всех этапов запрос появится в списке запросов базы данных (Рисунок 44).
Результат выполнения запроса представлен на Рисунке 45.
Аналогичным образом были созданы запросы «Стоимость и количество продаж по товарам», «Выручка по дням».
Для создания приложения необходимо нажать кнопку Application Builder (Рисунок 46).
После нажатия кнопки появится уже созданное стандартное приложение Sample Database Application. Для того чтобы создать собственное приложение, нажмем кнопку Create. Затем откроется окно, в котором необходимо выбрать метод: Database, Websheet или Packaget Application. Для создания приложения «РЕКЛАМНОЕ АГЕНТСТВО» выберем первый метод - Database (База данных) (Рисунок 47).
Далее введем имя приложения (РЕКЛАМНОЕ АГЕНТСТВО), укажем схему (REKLAMA) и выберем пользовательский интерфейс (Desktop) (Рисунок 48).
В следующем окне предлагается выбрать тип стартовой страницы (Blank - пустая, Report - отчет, Form - форма, Chart - график и др.). Для создания стартовой страницы приложения «РЕКЛАМНОЕ АГЕНТСТВО» выберем тип Blank (Рисунок 49).
В следующем окне можно устанавливать параметр для копирования компонентов из других доступных приложений. (Рисунок 50).
После нажатия кнопки Next открывается окно, в котором выбираем язык, формат даты и времени (Рисунок 51).
На следующем шаге выбираем тему (оформление) приложения. При создании приложения «РЕКЛАМНОЕ АГЕНТСТВО» была использована тема «Simple Gray» (Рисунок 52).
После нажатия кнопки Next появляется окно, в котором необходимо подтвердить создание приложения (Рисунок 53).
При успешном выполнении всех операций на экране выводится сообщение о создании приложения. После этого значок созданного приложения будет отображаться в окне Application Builder (Рисунок 54).
Для запуска приложения необходимо нажать кнопку Run, после чего система запросит логин и пароль (Рисунок 55).
После ввода данных открывается главная страница приложения (Рисунок 56).
3.3 Создание форм
Облачный сервис http://apex.oracle.com/ позволяет создавать различные виды форм. При создании приложения «РЕКЛАМНОЕ АГЕНТСТВО» были использованы табличная форма (Tabular Form) и составная табличная форма (Detail Form).
Рассмотрим создание табличной формы на примере таблицы FIRMA.
Для создания новой страницы в нижней части главной формы приложения нажимаем кнопку Create (Созадть); затем в открывшемся окне выбираем пункт New page (Рисунок 57).
В следующем окне выбираем тип страницы Form (Рисунок 58).
На следующем шаге выбираем тип формы Tabular Form (Рисунок 59).
В следующем окне выбираем таблицу, для которой создается форма (FIRMA), и указываем столбцы, в которые будут вводиться данные. В этом же окне указываем, какие операции сможет выполнять пользователь с данными таблицы (обновление, вставка, удаление) (Рисунок 60).
Далее устанавливается тип первичного ключ: Managed by Database или Select Primary Key. Выбираем первый тип управляемый базой данных (Рисунок 61).
В следующем окне выбираем обновляемые столбцы (Рисунок 62).
После нажатия кнопки Next появляется окно, в котором указываем имя страницы (Фирма). Остальные параметры оставляем без изменения (Рисунок 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).
В следующем окне выбираем кнопки, необходимые для функционирования формы, а также ветвление на другие страницы (Рисунок 65).
Далее подтверждаем создание формы (Рисунок 66).
При успешном выполнении всех операций на экран выводится сообщение о создании формы (Рисунок 67).
Для того чтобы открыть созданную форму, необходимо нажать кнопку Run Page (Рисунок 68).
Создание составной табличной формы рассмотрим на примере создания формы «Услуги». После создания новой страницы в окне выбора типа формы выберем пункт Master Detail Form (Рисунок 69).
Далее выбираем главную таблицу (VIDI_USLUG) и поля, которые будут отображаться (Рисунок 70).
Затем выбираем подчинённую таблицу (USLUGI) и также указываем отображаемые поля (Рисунок 71).
На следующем этапе необходимо установить ключевые поля. Это можно сделать двумя способами: оставить по умолчанию (как в базе данных) или указать вручную. Выберем первый вариант (Рисунок 72).
Далее предлагается изменить параметры навигации. Оставим их по умолчанию и нажмем кнопку Next (Рисунок 73).
На следующем этапе выбираем вид отображения формы: на одной странице или на двух отдельных страницах. Для данной формы был выбран первый вариант (Рисунок 74).
В следующем окне предлагается выбрать параметры страниц, создаваемых для составной формы. Оставим их по умолчанию (Рисунок 75).
На следующем этапе настраиваются параметры вкладки, на которой будет отображаться создаваемая форма. Возможны три варианта: не создавать вкладку, создать новую вкладку для новой страницы, использовать уже существующую вкладку для новой страницы. Выбираем второй вариант и вводим название вкладки (Рисунок 76).
На последнем этапе необходимо подтвердить создание формы (Рисунок 77).
Для отображения созданной составной формы необходимо нажать кнопку Run Page (Рисунок 78).
Аналогичным способом были созданы составные формы «ЗАКАЗЫ ПО ДОКУМЕНТАМ» (Рисунок 79) и «КЛИЕНТЫ» (Рисунок 80).
В СУБД Oracle Application Express предусмотрена замена кодовых полей значениями, доступными для восприятия пользователя. Для этого используются Списки значений (Lists of Values). Рассмотрим создание Списка значений на примере списков STATUS и KLIENTS.
Для того чтобы создать Список значений, нажимаем кнопку, затем в окне User Interface выбираем ссылку Lists of Values и нажимаем кнопку Create (Рисунок 81).
После этого открывается окно, в котором необходимо указать, какой список значений мы хотим создать: новый или копию существующего списка. Выбираем первый вариант (Рисунок 82).
В следующем окне необходимо ввести имя списка и выбрать тип его создания (статический или динамический). Для списка «STATUS» выбираем статический тип (Рисунок 83), для списка «KLIENTS» - динамический (Рисунок 84).
В следующем окне для списка «STATUS» создаем список возможных значений (Рисунок 85); для списка «KLIENTS» - запрос на языке SQL (Рисунок 86).
Когда все шаги проделаны, появляются значки созданных списков (Рисунок 87).
Для того чтобы применить созданный список, необходимо в окне редактирования страницы двойным щелчком по изменяемому полю открыть окно изменения параметров поля (Рисунок 88).
В открывшемся окне в строке Display As выберем Select List (named LOV), а в строке Named LOV созданный список STATUS (Рисунок 89).
После сохранения данных изменений в поле «Статус» пользователь сможет выбирать конкретные значения: выполнен/не выполнен вместо того, чтобы вводить эти значения вручную (Рисунок 90).
Аналогичным образом было настроено отображение поля «Клиенты» - выбор названия компании-заказчика вместо ID (Рисунок 91) и поля «Наименование услуги» - выбор услуги из выпадающего списка (Рисунок 92).
Для создания отчетов необходимо использовать объект Report (Рисунок 93).
Существует несколько вариантов создания отчетов: Интерактивный отчет, Web- отчет, Стандартный отчет и Мастер отчетов (Рисунок 94).
Рассмотрим создание отчета на примере отчета «Выручка по дням». В окне выбора типа отчета выберем Interactive Report (интерактивный отчет). В следующем окне введем название отчета (Рисунок 95).
Далее определяем параметры вкладки. Существует три варианта: «не использовать вкладку», «использовать уже существующую вкладку или создать новую вкладку», «повторно использовать существующую вкладку». При создании отчета «Выручка по дням» используем первый вариант (Рисунок 96).
В следующем окне нажимаем кнопку Query Builder. Открывается окно, в котором выбираем источник отчета запрос «VIRUCHKA_PO_DNYAM», отмечаем столбцы, которые будут отображаться в отчете, а затем копируем автоматически сгенерированный код SQL из соответствующего окна (Рисунок 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).
В следующем окне подтверждаем создание отчета (Рисунок 99) .
Созданный «Выручка по дням» представлен на Рисунке 100.
В верхней части созданного интерактивного отчета находится стандартная панель, позволяющая произвести поиск данных, сортировку, фильтрацию, построить диаграмму по данным отчета, вызвать справку, перезапустить отчет, а так же выгрузить его.
Аналогичным образом были созданы отчеты «Количество заказов по группам товаров» (Рисунок 101) и «Стоимость и количество заказов по услугам и товарам» (Рисунок 102).
Рисунок 1
Рассмотрим процесс создания диаграммы на примере диаграммы «Доход от продаж по услугам». Для того чтобы создать диаграмму, в нижней части окна приложения нажмем кнопку Create, затем выберем пункт New Page и нажмем кнопку Next. В открывшемся окне выберем пункт Chart (Рисунок 103).
В следующем окне выбираем тип создаваемой диаграммы: Pie & Doughnut - Круговая диаграмма (Рисунок 104).
На следующем шаге уточняем тип создаваемой диаграммы: 3D Pie -Объемный график (Рисунок 105).
В следующем окне задаем название страницы «Chart1». Остальные параметры оставляем без изменений (Рисунок 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).
В следующем окне вводим название диаграммы «ДОХОД ОТ ПРОДАЖ ПО УСЛУГАМ», задаем цвет фона, указываем параметры, с помощью которых на диаграмме будут отображаться значения (Рисунок 108).
После нажатия кнопки Next появляется окно, в котором необходимо ввести SQL - запрос на создание диаграммы, либо воспользоваться диалоговым режимом создания запроса.
С помощью кнопки Build Query выберем запрос «VIRUCHKA_I_KOL_PRODAG_PO_TOVARAM», из которого в дальнейшем выберем поля, которые будут представлены на диаграмме (Рисунок 109).
После нажатия кнопки Next будет сформирован SQL-запрос (Рисунок 110).
После подтверждения создания диаграммы в главном меню появится соответствующая вкладка, нажав на которую пользователь сможет увидеть диаграмму (Рисунок 111).
Аналогичным образом была создана диаграмма «Выручка по дням» (Рисунок 112).
Главная страница - это страница, которую будет видеть пользователь при открытии приложения. Для ее создания нажмем кнопку Create в нижней части приложения и выберем Region on this page (Рисунок 113).
Далее определим тип Главной страницы как HTML (Рисунок 114).
В следующем окне определяем имя создаваемой страницы; остальные параметры оставляем неизменными (Рисунок 115).
Затем записываем текст, который будет отображаться на главной странице в HTML формате (Рисунок 116).
После ввода текста нажимаем Create Region. Вид созданной Главной страницы представлен на Рисунке 117.
База данных предназначена для накопления и анализа данных о результатах торговой деятельности рекламного агентства «Идея». Она хранит справочную информацию о клиентах и предоставляемых услугах, а также информацию по заказам.
Для начала работы с Базой Данных необходимо с помощью любого браузера пройти по ссылке: http://apex.oracle.com/pls/apex/f?p=73933:LOGIN_DESKTOP:117570792338140, после чего система запросит логин и пароль (Рисунок 128).
Рисунок 128 - Идентификация пользователя
После верного ввода персональных данных пользователь попадает на главную страницу приложения, которая представляет собой информацию о приложении и его разработчике (Рисунок 129).
Рисунок 129 - Главная страница приложения
В верхней части страницы расположена панель вкладок, перемещаясь по вкладкам, пользователь может выполнить необходимые операции, которые будут рассмотрены ниже. Панель вкладок доступна из любого места приложения (Рисунок 130).
Рисунок 130 Вкладки
Вернуться на главную страницу приложения можно вернуться, нажав на вкладку Home в левом верхнем углу.
Вкладка «Клиенты»
На этой вкладке представлена информация о клиентах фирмы. Имеется возможность добавить новых клиентов и данные о них, а также редактировать и удалять имеющиеся. Для добавления следует нажать кнопку Добавить клиента (Рисунок 118).
Выбрав значок , пользователь попадает на страницу, в которой с помощью кнопок Удалить, Удалить выбранное, Добавить заказ, Сохранить изменения может выполнить соответствующие действия. На данной странице помимо основных данных о клиентах представлен список документов по каждому из них (Рисунок 119).
Вкладка «Услуги»
На данной вкладке представлена информация о видах услуг, которые оказывает фирма. Кнопка Добавить позволяет создать новую запись в таблице (Рисунок 120).
Кнопка позволяет открыть новую страницу, на которой представлен список услуг для каждого вида. Кнопки Удалить, Удалить выбранное, Добавить услугу, Сохранить изменения позволяют выполнить соответствующие действия (Рисунок 121).
Вкладка «Заказы по документам»
На данной вкладке представлен список документов. Кнопка Добавить позволяет создать новую запись в таблице (Рисунок 122)
Кнопка позволяет открыть новую страницу, на которой представлены заказы по каждому документу. Кнопки Удалить, Удалить выбранное, Добавить услугу, Сохранить изменения позволяют выполнить соответствующие действия. Для ввода даты предусмотрен встроенный календарь , нажав на который пользователь может выбрать необходимую дату (Рисунок 123).
Вкладка «Отчеты»
Содержит кнопки «Количество заказов по группам товаров», «Стоимость и количество продаж по товарам» и «Выручка по дням», нажав на одну из которых пользователь откроет страницу, содержащую соответствующий отчет (Рисунки 124, 125, 126, 127)
Меню Actions позволяет выполнить действия из выпадающего списка: сортировку, фильтрацию, построение диаграммы по данным отчета, вызов справки, перезапустить отчет (Рисунок 127).
Данные отчеты можно отправить по электронной почте, выгрузить в CSV файл либо открыть в отдельной страничке браузера, для этого необходимо в меню Actions выбрать пункт Download (Рисунок 129).
Вкладка «Диаграммы»
Содержит кнопки «Доход от продаж по услугам» и «Выручка по заказам», нажав одну из кнопок, пользователь откроет страницу с соответствующей диаграммой (Рисунки 130, 131, 132).
Вкладка «Информация о нас»
Данная вкладка содержит информацию о фирме, которая доступна только для просмотра. Пользователи приложения не могут вносить изменения. Кнопка Вернуться на Главную предназначена для перехода на Главную страницу (Рисунок 133).
Вкладка «О программе»
Данная вкладка содержит информацию о назначении программного приложения, версии, разработчике и обратной связи. При нажатии на ссылку откроется страница с методическими указаниями по работе с программным приложением «Рекламное агенство «Идея»» (Рисунок 134).
В соответствии с заданием на курсовой проект была разработана база данных для учёта заказов в рекламной агентстве «Идея», которая позволяет автоматизировать обработку информации. В базе данных хранятся данные о клиентах, услугах, фирме, заказах, а также формируются сопутствующие документы в виде отчетов и диаграммы.
База данных работает в диалоговом режиме, который предоставляет пользователю возможность взаимодействовать с хранящейся в системе информацией в режиме реального времени, получая при этом всю необходимую информацию для решения функциональных задач, и имеет удобный пользовательский интерфейс.
Облачная среда очень удобна для работы с БД. Практически все возможности стационарных СУБД реализованы с помощью удобного интерфейса. Средства визуального программирования позволяют за несколько шагов создать необходимые стандартные объекты (таблицы, запросы, формы и отчеты). Но для разработки наиболее удобного интерфейса для конечного пользователя необходимы более углубленные знания среды.
Текст 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