Параметры вызова:
subject.cgi √ первый уровень систематического каталога,
subject.cgi?code1 √ второй уровень систематического каталога,
subject.cgi?code1&code2 √ третий уровень систематического каталога,
subject.cgi?code1&code2&code3 √ выдача библиографических единиц, подходящих под текущую классификацию,
где code1, code2, code3 √ коды соответствующих тем систематического каталога
common.cgi, module.cgi √ модули, содержащие общие для всей системы подпрограммы и константы
Кроме того, система содержит несколько HTML-форм, хранящихся в файлах author.html, index.shtml, keyword.html, title.html. CGI-скрипты вызываются как напрямую, так и из этих форм. Для предотвращения ввода пустой строки поиска, в формы встроен код на языке Java-Script, препятствующий этому.
В случае если результат запроса содержит много записей, предусмотрена постраничная передача результата запроса клиенту.
4.3 Реализация системы отчетности по торгам на Южно-Уральской Фондовой Бирже с использованием механизма CGI
Торги на Южно-Уральской Фондовой Бирже проходят с использованием электронной Торговой Системы. Торговая Система Южно-Уральской Фондовой Биржи предназначена для организации биржевых торгов ценными бумагами на ЮУФБ в соответствии с ⌠Правилами совершения операций с ценными бумагами в НП ЮУФБ■. В системе реализована работа с областными краткосрочными облигациями (ОКО) Челябинской области, регламентируемая ⌠Положением о выпуске и обращении ОКО■. Торговая система работает под управлением СУБД Oracle 7.3.2 для SCO Unix Open Server Enterprise v.5.0.4. Клиентские рабочие места организованы под управлением SQL*Oracle Forms 3.0, SQL*Oracle Menu 5.0 и SQL*Oracle Reports Writer 1.1.
Была поставлена задача расширить существующую систему автоматического предоставления отчетности по торгам в соответствии с ⌠Положением о представлении отчетности организаторами торговли на рынке ценных бумаг■, утвержденном постановлением Федеральной комиссии по рынку ценных бумаг (ФКЦБ).
Разработанная система соответствует ⌠Положению о представлении отчетности организаторами торговли на рынке ценных бумаг■, утвержденному постановлением ФКЦБ и представляет собой программный комплекс, написанный на языке perl и работающий через обозреватель Internet. В системе реализованы ежедневный и ежемесячный отчеты: ⌠Итоги торгов эмиссионными ценными бумагами за торговый день■ и ⌠Сведения о участниках торгов, имеющих наибольшую сумму совершенных сделок с ценными бумагами, допущенными к обращению через организатора торговли■. В систему интегрирован ⌠электронный календарь■, с помощью которого можно выбрать дату для отчета. Это позволяет получить отчет за любой период времени, используя базу данных Торговой Системы.
Система работает под управлением системы SCO Unix Open Server Enterprise v.5.0.4. и представляет собой набор CGI-скриптов, т.е. внешних по отношению к Web-серверу программ. При наборе URL (Uniform Resource Locator) скрипта, Web-сервер запускает программу и передает ей соответствующие параметры вызова. Программа, в свою очередь, соединяется по протоколу SQL*Net с сервером Oracle (который в данной реализации расположен на отдельной машине) и выбирает необходимые ей для отчета данные. Затем на основе полученных данных CGI-скрипт генерирует HTML-код и возвращает его Web-серверу. Web-сервер пересылает полученный от программы-скрипта HTML-код Internet-обозревателю клиента, который и выводит его в своем окне. Физически система находится в 4-х файлах (1 модуль с общими функциями и 3 файла, реализующие функциональность электронного календаря■ и 2-х отчетов соответственно).
Заключение
При выполнении дипломного проекта были получены следующие основные результаты:
освоена технология разработки приложений на базе СУБД Oracle с использованием системы разработки Oracle Developer/2000 R2.0;
изучена технология создания Oracle приложений с WWW-интерфейсом на базе механизма OracleWeb deployment;
используя технологию Web deployment, при использовании системы разработки приложений Oracle Developer/2000 R2.0 создано приложение ⌠Справочно-библиографическая система■;
предложена технология создания Web-ориентированных интерфейсов к базам данных с использованием интерфейса CGI;
на основе описанной CGI-технологии создана Internet версия аннотированного ⌠библиографического каталога по программированию и базам данных■;
разработан и реализован механизм переноса данных из базы данных библиографического каталога в формате MS-Access в новую базу данных в формате Oracle;
осуществлено внедрение в промышленную эксплуатацию Internet версии библиографического каталога по программированию и базам данных на математическом факультете Челябинского государственного университета: http://reindeer.math.cgu.chel.su/oracle/bibl (акт о внедрении прилагается);
на основе описанной CGI-технологии реализована и внедрена в промышленную эксплуатацию система отчетности по торгам на Южно-Уральской фондовой бирже: http://www.suse.ru:8001/ (акт о внедрении прилагается);
по теме дипломной работы выполнена одна публикация: Соколинский Л.Б., Апанасенко Е.В. Технологические аспекты разработки Internet версии аннотированного библиографического каталога по программированию и базам данных // Телематика'99: Тез. докл. Всерос. конф. Санкт-Петербург. 1999.
Список литературы
Когаловский М.Р. Технология баз данных на персональных ЭВМ. - М.: ⌠Финансы и статистика■. 1992. - 256 с.
Разработка приложений Microsoft Access 7.0 для Windows 95. - Microsoft Corp. Publ. - 1996. 898 с.
Сайгин Ю., Филимонов Б., Глонти Н. Создание приложений Web к базам данных Oracle // СУБД 1996. √ N 5-6
Кузнецов С.Д. Доступ к базам данных посредством технологии WWW // СУБД 1996.- N 5-6
Oracle Developer/2000. Forms 4.5 Reference Manual. - Oracle Corp. - 1995. Vol 1-2
Developer/2000 Guidelines for Building Applications Release 2.0 √ - Oracle Corp. - 1997.
Oracle Server V2, 3, ..., 7.0, 7.1 ... and Counting. // EOUG Oracle User Forum 94 17-20 April 1994, Maastriht, The Netherlands.
The Committee for Advanced DBMS Function. Third Generation Database Manifesto. // SIGMOD Record, 1990. - Vol. 19, N 3, pp. 31-44
Лашманов А. ORACLE √ история, состояние и перспективы // СУБД 1995.- N1, C.55
В. Цишевский, Языкиархитектура Java, Jet Infosystems - electronic version
Wall L., Christiansen T., Schwartz R. Programming Perl. 2nd ed. O'Reilly & Associates, 1996.
Кристиан К. Введение в операционную систему UNIX. - М.: Финансы и статистика. 1985. √ 318 с.
Oracle Product Documentation Library. √ Oracle Corp. - 1995.
Приложение 1. Описание структуры базы данных ⌠Библиографического каталога■
Соответствие названий таблиц в базе данных-прототипе (MS Access) и в разработанной базе данных (Oracle).
Microsoft Access | Oracle |
Алфавитныйкаталог | Alphabetical_Catalogue |
Систематический каталог | Systematic_Catalogue |
СК-2 (подчиненная) | SC-2 |
СК-3 (подчиненная) | SC-3 |
Исходный текст файла-сценария SQL, создающего структуру базы данных и хранимые процедуры:
DROP TABLE Alphabetical_Catalogue;
DROP TABLE SC2;
DROP TABLE SC3;
DROP TABLE Systematic_Catalogue;
CREATE TABLE Alphabetical_Catalogue
(Code NUMBER(6) NOT NULL,
Reference VARCHAR2(25) NULL,
Authors VARCHAR2(120) NULL,
Title VARCHAR2(250) NULL,
Is_Article NUMBER(1) NULL,
Magazine_Or_Publisher VARCHAR2(200) NULL,
Year VARCHAR2(20) NULL,
Volume NUMBER(2) NULL,
Issue VARCHAR2(20) NULL,
From_Page NUMBER(4) NULL,
Till_Page NUMBER(4) NULL,
Is_Russian NUMBER(1) NULL,
Abstract LONG NULL,
Paper VARCHAR2(50) NULL,
Code1 NUMBER(6) NULL,
Code2 NUMBER(6) NULL,
Code3 NUMBER(3) NULL,
Keyword1 VARCHAR2(50) NULL,
Keyword2 VARCHAR2(50) NULL,
Keyword3 VARCHAR2(50) NULL,
Keyword4 VARCHAR2(50) NULL,
Keyword5 VARCHAR2(50) NULL,
Keyword6 VARCHAR2(50) NULL,
Keyword7 VARCHAR2(50) NULL,
Keyword8 VARCHAR2(50) NULL,
Priority NUMBER(2) NULL,
Home_Library NUMBER(1) NULL,
CSU_Library NUMBER(1) NULL) ;
CREATE TABLE SC2
(Code2 NUMBER(6) NOT NULL,
Title2 VARCHAR2(40) NULL,
Code1 NUMBER(6) NULL) ;
CREATE TABLE SC3
(CODE3 NUMBER(6) NOT NULL,
TITLE3 VARCHAR2(35) NULL,
CODE2 NUMBER(6) NULL) ;
CREATE TABLE Systematic_Catalogue
(Title1 VARCHAR2(30) NULL,
Code1 NUMBER(6) NOT NULL) ;
CREATE OR REPLACE VIEW A_C AS
SELECT
Code,
Reference,
Authors,
Title,
Is_Article,
Magazine_Or_Publisher,
Year,
Volume,
Issue,
From_Page,
Till_Page,
Is_Russian,
Abstract,
Paper,
Keyword1,
Keyword2,
Keyword3,
Keyword4,
Keyword5,
Keyword6,
Keyword7,
Keyword8,
Priority,
Home_Library,
CSU_Library,
Title1,
Title2,
Title3
FROM Alphabetical_Catalogue, Systematic_Catalogue, SC2, SC3
WHERE Alphabetical_Catalogue.Code1=Systematic_Catalogue.Code1 AND
Alphabetical_Catalogue.Code2=SC2.Code2 AND
Alphabetical_Catalogue.Code3=SC3.Code3
WITH READ ONLY;
CREATE INDEX iA_C1 ON Alphabetical_Catalogue
(Code);
CREATE INDEX iA_C2 ON Alphabetical_Catalogue
(Reference);
CREATE INDEX iA_C3 ON Alphabetical_Catalogue
(Keyword1);
CREATE INDEX iA_C4 ON Alphabetical_Catalogue
(Keyword2);
CREATE INDEX iA_C5 ON Alphabetical_Catalogue
(Keyword3);
CREATE INDEX iA_C6 ON Alphabetical_Catalogue
(Keyword4);
CREATE INDEX iA_C7 ON Alphabetical_Catalogue
(Keyword5);
CREATE INDEX iA_C8 ON Alphabetical_Catalogue
(Keyword6);
CREATE INDEX iA_C9 ON Alphabetical_Catalogue
(Keyword7);
CREATE INDEX iA_C10 ON Alphabetical_Catalogue
(Keyword8);
CREATE INDEX iA_C11 ON Alphabetical_Catalogue
(Authors);
CREATE INDEX iSystematic_Catalogue_1 ON Systematic_Catalogue
(Code1);
CREATE INDEX iSystematic_Catalogue_2 ON Systematic_Catalogue
(Title1);
CREATE INDEX iSC2_1 ON SC2
(Code2);
CREATE INDEX iSC2_2 ON SC2
(Title2);
CREATE INDEX iSC3_1 ON SC3
(CODE3);
CREATE INDEX iSC3_2 ON SC3
(Title3);
CREATE OR REPLACE PACKAGE bibl
IS
FUNCTION GetYear (S VARCHAR2)
RETURN NUMBER;
PRAGMA RESTRICT_REFERENCES (GetYear, WNDS, WNPS);
END bibl;
/
CREATE OR REPLACE PACKAGE BODY bibl
IS
FUNCTION GetYear (S VARCHAR2)
RETURN NUMBER
IS
i NUMBER;
done BOOLEAN;
BEGIN
done := FALSE;
i := LENGTH (S);
WHILE NOT done AND (i>1) LOOP
IF SUBSTR (S, i, 1) NOT IN ('0','1','2','3','4','5','6','7','8','9') THEN
done := TRUE;
ELSE
i := i-1;
END IF;
END LOOP;
IF done THEN
RETURN TO_NUMBER (SUBSTR (S, i+1));
ELSE
RETURN TO_NUMBER (SUBSTR (S, i));
END IF;
END;
ENDbibl;
/
Приложение 2. Спецификации переноса базы данных из MS Access в Oracle
Деструктуризация процесса переноса базы данных
Перенос осуществляется в 4 этапа:
экспорт из MS Access в файл SQL-сценария import.sql (в каталог c:\), осуществляемый программой export.mdb;
сжатие полученного файла сценария с помощью программы gzip;
передача сжатого файла по протоколу FTP на Unix-машину;
импорт из созданного файла в базу данных Oracle (запуск файла loaddata.sh).
Ограничения на данные в исходных таблицах
Для правильного экспорта таблиц из MS Access в файл длина MEMO-поля - Алфавитный каталог. Аннотация не должна превышать 2000 символов (строки имеющие MEMO-поля длиной больше 2000 символов автоматически урезаются до этой длины при экспорте во внешний файл).
Импорт
Импорт производится запуском файла loaddata.sh на Unix-машине, из каталога, где находится сжатый файл SQL-сценария import.sql.gz. Следует быть уверенным, что в файле имеются корректные имя пользователя, его пароль, а также строка соединения (алиас) с базой данных, в виде user_name/user_password@connect_string. После окончания импорта следует проверить созданный .log файл на предмет ошибок и отвергнутых записей. Кроме того, необходимо наличие на Unix-машине установленной и сконфигурированной клиентской части Oracle.