Проектирование схемы БД в среде ERwin. Проблема избыточности данных. Проблема обновления данных. Проблема удаления данных., страница 5

Все формы вызываются из формы MAIN.fmb.

Таблица 1.7.2 Структура web-приложения

Страница

Функции

Identification.aspx

Вход в систему

Main.aspx

Главное меню

Contract.aspx

Создание, удаление, изменение, поиск контрактов

Companies.aspx

Создание, поиск компаний

Contacts.aspx

Создание, поиск контактов

Account.aspx

Создание, удаление, изменение, поиск ЛС

App.aspx

Создание, удаление, изменение, поиск ПО, добавление, закрытие, поиск услуг

Change_password.aspx

Смена пароля

Страница identification.aspx позволяет перейти к странице main.aspx при вводе корректных логина и пароля. Переход на страницы Contract.aspx, Account.aspx, App.aspx, Change_password.aspx  осуществляется при нажатии на соответствующие кнопки на странице main.aspx. Companies.aspx и Contacts.aspx доступны со страницы Contract.aspx.

Код триггеров из формы локального приложения, некоторых хранимых процедур и страницы из web-приложения приведен в Приложении 1.

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

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

Действие

Процедура

Периодичность

Расчет скорости расходования оборудования

speed

По будням в 6-00 и в 14-00

Смена статуса оборудования

change_eq_st

По будням в 7-00 и в 15-00

Начисления за периодические услуги и услуги аренды

calc_pa

Ежедневно в 3-00

Начисления за телефонные услуги

charge_calls

Через каждые 30 минут

Пакет dbms_job позволяет запланировать однократное или регулярное выполнение заданий в базе данных. Задание представляет собой хранимую процедуру, анонимный блок PL/SQL или внешнюю процедуру на языке C или Java. Эти задания выполняются серверными процессами в фоновом режиме.

Чтобы запланировать выполнение задания, используется функция submit из пакета dbms_job. 

declare

l_job number;

begin

dbms_job.submit (job => l_job,

what => ‘<имя процедуры>;’,

next_date => <время следующего выполнения задания>,                             interval => ‘<функция, вычисляющая время следующего выполнения>’);       

end;

Разработка дополнительных утилит 

Для загрузки биллинговых записей из файлов CDR (файлов, формируемых коммутатором) в базу данных была разработана программа Charger.exe. Программа написана на языке C++ с использованием среды разработки Microsoft Visual Studio 6.0. Подключение к базе и манипулирование данными осуществляется средствами интерфейса OCI, предоставляемого Oracle (используются функции библиотеки oci.dll, статически подгружаемой программой).  Формат CDR-файла спроектирован самостоятельно, исходя из потребностей разрабатываемой биллинговой системы, и в дальнейшем может быть легко перестроен под любую модель коммутатора. Выбор формата в пользу одной из моделей коммутаторов лишил бы систему универсальности. Описание формата файла дано в Приложении 2. В реестре операционной системы Windows задаются параметры подключения к базе данных (имя пользователя, пароль, сетевое имя базы) в ветке HKEY_LOCAL_MACHINE\SOFTWARE\Kate\Charger\dbconnect. В реестре задается путь и имя rq-файла очереди HKEY_LOCAL_MACHINE\SOFTWARE\Kate\Charger\Rqfile.

В реестре же задается и период, через который будет производиться чтение rq-файла HKEY_LOCAL_MACHINE\SOFTWARE\Kate\Charger\TimeToUpload в минутах.