Программы пользовательского интерфейса
для серверов баз данных
Г.А.Эдельштейн
АННОТАЦИЯ. Программы пользовательского интерфейса (front-end
tools) - это ключ, позволяющий получить доступ к использованию мощных
возможностей серверов баз данных (database servers). Сейчас на рынке
появилась новая волна таких средств. Они определяют особенности и тип
распределенных прикладных систем. В статье дается ответ на вопрос, как
они работают и как выбрать из них ту, которая вам нужна.
Разработчики СУБД ринулись на рынок с программами пользователь-
ского интерфейса, которые позволят разработчикам прикладных систем,
системным аналитикам и конечным пользователям получить доступ к мощно-
му потенциалу серверов баз данных. Серверы обеспечивают целостность и
непротиворечивость центральных данных, сокращают трафик в локальной
вычислительной сети (local area network - LAN) и оптимизируют произво-
дительность персональных компьютеров в сети. Разработчики и пользова-
тели взаимодействуют с сервером посредством программ пользовательского
интерфейса, обеспечивающих средства для разработки и доступа к базам
данных и децентрализующих обработку, чтобы обеспечить оптимальное вза-
имодействие пользователей, гибкость и удобство средств представления
на экране.
Находясь на вычислительной машине-клиенте, а не на сервере, прог-
раммы пользовательского интерфейса используются для создания приложе-
ний. Они содержат средства для генерации образа экрана, меню и отчетов
и обеспечивают средства запросов по образцу (query-by-example - QBE),
языков запросов или Структурированного языка запросов (Structured
Query Language - SQL), чтобы упростить доступ к данным. Если при помо-
щи программ пользовательского интерфейса создается приложение, то сер-
вер манипулирует данными в соответствии с командами, генерируемыми
приложением.
В первую волну программ пользовательского интерфейса для таких
серверов баз данных вошли dBASE IV 1.1 фирмы Ashton-Tate, Paradox 3.0
фирмы Borland International, DataEase SQL компании DataEase
International, SQLWindows 1.1 фирмы Gupta Technologies, XQL 2.01 фирмы
Novell, Professional ORACLE 5.1B компании Oracle Corporation и XDB-SQL
фирмы XDB Systems. Professional ORACLE, SQLWindows, XDB-SQL и XQL уже
есть в продаже; Paradox, dBASE IV и DataEase SQL еще не доведены до
стадии промышленной эксплуатации. Даже хотя детали в этих семи прог-
раммных продуктах еще окончательно не сформировались, сами эти системы
рассматриваются в этой статье, чтобы дать возможность разработчикам
прикладных систем разобраться в основных концепциях, положенных в ос-
нову этих разработок.
В данной статье рассматриваются следующие вопросы. Что могут де-
лать программы пользовательского интерфейса? Как они работают с серве-
рами? Какие моменты важны при выборе некоторого программного средства
пользовательского интерфейса и при работе в его среде? И какие прог-
раммы пользовательского интерфейса больше подходят определенным клас-
сам пользователей?
До сих пор прикладные системы по управлению данными, ядро системы
управления базами данных (СУБД) и программы пользовательского интер-
фейса для работы с базами данных должны были использовать одну и ту же
память. В архитектуре "клиент-сервер" эти процессы разделены по разным
машинам, и обеспечивается способ связи между ними. Сервер выполняет
функции ядра СУБД по управлению данными, а программы пользовательского
интерфейса размещаются на пользовательском персональном компьютере
(вычислительной машине-клиенте) и поддерживает интерфейсы и средства
для создания приложений (такие как генераторы меню, образов экранов и
отчетов); приложения также находятся на пользовательском персональном
компьютере.
В программах пользовательского интерфейса определяется, как ко-
нечные пользователи будут получать доступ к базам данных, как разра-
ботчики будут создавать конкретные приложения для заказчиков, рассчи-
танные на работу с серверами баз данных, и какие выборки будут делать
системные аналитики при проектировании таких систем. Они различаются в
первую очередь в следующем:
1) являются ли они графическими или ориентированными на работу с
символьной информацией;
2) с какими серверами они работают;
3) какие средства разработки прикладных программ они предоставля-
ют.
Система SQLWindows фирмы Gupta Technologies спроектирована для
создания приложений, работающих в графической среде Microsoft Windows
и программы управления представлением данных Presentation Manager опе-
рационной системы OS/2. Программы пользовательского интерфейса исполь-
зуют спускающиеся меню, окна диалогов и манипулятор типа "мышь". Ос-
тальные шесть систем пользовательского интерфейса являются символь-
но-ориентированными. Хотя большинство из них имеет всплывающие меню и
позволяет создавать приложения, имеющие окна, средства описания окон в
них не такие изощренные, как для окон, ориентированных на представле-
ние графики, и не позволяют конечным пользователям задавать размеры и
другие их параметры.
SQLWindows, Professional ORACLE, XDB-SQL и XQL спроектированы
так, чтобы их использовали с их собственными серверами - SQLBase фирмы
Gupta, ORACLE компании Server Oracle, XDB-Server фирмы XDB Systems и
NetWare SQL фирмы Novell. dBASE IV предназначена для работы с SQL
Server фирмы Ashton-Tate/Microsoft (разработанном вместе с Sybase).
Поскольку Paradox и DataEase SQL будут работать с более чем одним сер-
вером, особенно важно разобраться, как они охватывают различия серве-
ров: они будут работать с SQL Server и Расширенной версией системы уп-
равления базами данных Extended Edition Database Manager операционной
системы OS/2 фирмы IBM. (Фирма Borland использовала интересный подход,
который позволит Database Manager работать в качестве сервера даже
прежде, чем IBM выпустит его как таковой.) Paradox также будет рабо-
тать с ORACLE Server и NetWare SQL.
Когда получат распространение промышленные прикладные системы,
специально спроектированные для работы с серверами баз данных, (такие
как Excel фирмы Microsoft для SQL Server), многие разработчики и поль-
зователи обратятся к технологии "клиент-сервер" в первый раз. В преды-
дущей статье ("Развитие серверов баз данных", Р.Финкельштейн) рассмат-
риваются пять имеющихся в настоящее время серверов баз данных с языком
запросов SQL.
Что касается средств прикладных разработок, то DataEase SQL,
dBASE IV, Paradox и SQL Windows позволяют разработчикам создавать
сложные приложения, используя свои собственные языки, такие как язык
dBASE для приложений dBASE IV и язык программирования приложений
(Programming Application Language - PAL) для приложений Paradox. Для
разработки приложений в SQL нужен BASIC, C, FORTRAN или Pascal;
Professional ORACLE и XDB-SQL предоставляют меню-подобные средства для
разработки приложений, как и средства базовых языков (C, COBOL и
FORTRAN в Professional ORACLE; C и COBOL в XDB-SQL).
Помимо объективных оценок производительности, важной проверкой
также являются субъективные предпочтения пользователей и разработчи-
ков. Например, те, кому нравится оконная среда, могут предпочесть SQL
Windows, хотя специалисты по языку dBASE могут выбрать dBASE IV. Кроме
того, этот выбор может зависеть от способности программ пользователь-
ского интерфейса манипулировать данными, получаемыми от многих одно-
родных или разнотипных серверов, в зависимости от требований приклад-
ной системы.
Роль SQL
--------
Все рассматриваемые программы пользовательского интерфейса взаи-
модействуют с серверами баз данных посредством SQL. Реализации SQL в
различных серверах отличаются по синтакису (структуре операторов),
функционально (в расширениях сверх стандарта ANSI), и по семантике
(интерпретации операторов). Например, оператор SQL "перечислить всех
служащих, получающих более крупную зарплату, чем их руководители" оди-
наков для Professional ORACLE/ORACLE Server и SQLWindows/SQLBase, но
существуют некоторые семантические различия. Если у служащего нет ру-
ководителя (нулевое значение атрибута), то ORACLE выдаст сообщение об
ошибке, а SQLBase не выведет в отчет имя этого служащего, так как его
зарплата не может превосходить зарплату несуществующего начальника). К
таким странностям могут привести операторы SQL, в которых используются
нулевые значения и производится выбор различных значений (с запретом
дубликатов) и слияние таблиц (или отчеты по ним).
Прикладные системы, которые должны работать с несколькими серве-
рами, доведут разработчиков до головной боли, так как для них необхо-
димо написать программы, которые могут соответствующим образом полу-
чать доступ к любым серверам. Такие прикладные системы содержат специ-
альную базу данных (personnel database)в рамках структуры, которая не-
обходима для работы с серверами различных типов, с прикладными систе-
мами других разработчиков любого типа и собственными прикладными сис-
темами, которые технические консультанты могут продавать одному-двум
или более клиентам. В таких случаях прикладным разработчикам, возмож-
но, понадобится написать две или более совершенно различные прикладные
системы , или одну прикладную систему с двумя, или более, наборами
запросов SQL, чтобы учесть все различия, или разработчик может исполь-
зовать один из переносимых языков программ пользовательского интерфей-
са, такой как SQL в Paradox или DataEase, в которых разработчики уже
учли такие различия.
При оценке программ пользовательского интерфейса главным вопросом
о реализации SQL должен быть вопрос о том, как операторы этого языка
выполняются на различных серверах, рассчитанных на различные его диа-
лекты. Другим вопросом является то, как разработчик встраивает SQL в
программы пользовательского интерфейса. Для некоторых программ пользо-
вательского интерфейса может потребоваться, чтобы пользователи сами
писали операторы SQL, что потребует от них знания этого языка; в дру-
гих пользователю может быть оказана помощь в виде меню-подобных сред-
ств при генерации операторов SQL; в любом случае пользователь может
создавать библиотеки SQL для использования их в будущем и изучить SQL
в процессе работы с базой данных, или он может транслировать операторы
своего собственного языка запросов в SQL, что потенциально уменьшит
производительность.
Средства интерфейса прикладных программ
---------------------------------------
Каждый сервер баз данных поставляется со своими собственными
средствами интерфейса прикладных программ (application programm
interface - API), пакетом служебных программ, позволяющих прикладным
программам и их разработчикам взаимодействовать с сервером. Программы
пользовательского интерфейса для конкретного сервера используют осо-
бенности средств интерфейса прикладных программ данного сервера для
написания программ на базовом языке (таком как С). Программы пользова-
тельского интерфейса, взаимодействующие более чем с одним сервером,
могут учитывать специфические особенности для каждого сервера.
В программах пользовательского интерфейса, поддерживающих ORACLE
Server и OS/2 Database Manager, используется в_л_о_ж_е_н_н_ы_й SQL
(статичекий и динамический), который также используется в большинстве
реляционных систем управления данными для больших и мини-ЭВМ, включая
DATABASE 2 (DB2) и SQL/Data Services (SQL/DS) фирмы IBM и INGRES фирмы
Relational Technology. В двух серверах для микрокомпьютеров подержива-
ется с_т_а_т_и_ч_е_с_к_и_й SQL, в котором пользователь определяет как
собственно подлежащий выполнению оператор SQL (например, SELECT или
INSERT), так и те столбцы, над которыми его следует выполнить. Преком-
пилятор сервера транслирует операторы SQL, встречающиеся в программе,
в обращения, а затем сервер компилирует эти обращения в объектный код,
производит редактирование связей и выполнение.
Написание операторов SQL таким образом является простым и удоб-
ным, но возникает одно проблема в том, что после выполнения запросов
SQL возвращаются таблицы, в то время как в С и других базовых языках
предполагается работа с записями. Курсор - указатель на текущий кортеж
запрашиваемых данных - разрешает эту проблему, позволяя разработчику
выбирать записи из таблицы по одной. Пользователь использует оператор
DECLARE CURSOR, который определяет подлежащий выполнению оператор SQL,
и оператор OPEN, по которому оператор выполняется, оператор FETCH для
перемещения кортежа данных в переменые базового языка и оператор CLOSE
для завершения процесса (например, см.рис.1).
----------------------------------------------------------------------
Рис.1. Программа на вложенном SQL.
EXEC SQL DECLARE x CURSOR FOR /* Объявить курсор x */
SELECT cnum, cname, city /* указать кортежи */
FROM customer /* оператора SELECT */
WHERE STATE * 'MD' /* оператор */
EXEC SQL OPEN x /* открыть курсор и */
/* выполнить выбор */
EXEC SQL FETCH x
into :num, :name, :city /* поместить первый кортеж */
/* в базовые переменные */
/* num, name и city */
do while (sqlca.sqlcode ** 0)
{
process data
EXEC SQL FETCH x /* поместить следующий кортеж */
into :num, :name, :city
}
EXEC SQL CLOSE x /* закрыть курсор */
Средства интерфейса прикладных программ (API) в ORACLE Server и
OS/2 Database Manager используют операторы SQL, вложенные в некото-
рый базовый язык, например, С. Разработчик использует указатель для
чтения каждого кортежа результирующей таблицы. Сообщения об ошибках
поступают в область взаимодействия (SQLCA).
----------------------------------------------------------------------
Для интерактивных программ, в которых конструирование операторов
SQL зависит от того, что вводит пользователь, в ORACLE Server и
Database Manager поддерживается д_и_н_а_м_и_ч_е_с_к_и_й SQL. Разработ-
чик помещает текст подлежащих выполнению операторов SQL в базовые пе-
ременные, которые сервер проверяет на синтаксическую правильность опе-
ратором PREPARE и выполняет при помощи оператора EXECUTE. Обмен данны-
ми между сервером и базовыми переменными происходит в области данных
сервера, называемой областью дескрипторов SQL (SQL descriptor area -
SQLDA). Поскольку не делается никакого прекомпилирования и никакой
предварительной привязки, сервер должен производить синтаксический
анализ, оценку и оптимизацию доступа к SQL. Это делает динамический
SQL более медленным и более сложным, чем статический.
Для написания программ на базовом языке, котоые бы работали под
управлением SQL Server, SQLBase, XDB-Server и NetWare SQL, разработчи-
ки программ пользовательского интерфейса используют интерфейс обраще-
ний (call interface), передающий операторы SQL как строки в сервер баз
данных. Они обеспечивают работу с DB-LIBRARY, SQLBase API, XDB API и
XQL Manager (XQLM), соответсвенно. Этот подход подобен подходу к реа-
лизации динамического SQL, в котором подлежащие выполнению операторы
SQL обрабатываются во время выполнения программы. Путь доступа к базе
данных (шаги, предпринимаемые сервером, чтобы получить данные) оптими-
зируется тогда, когда операторы SQL посылаются в сервер. На рис.2,
например, приведена программа SQL Server, эквивалентная программе на
вложенном SQL, представленной на рис.1. SQL Server возвращает таблицу
данных, и программы пользовательского интерфейса используют цикл, что-
бы последовательно получить доступ к каждому кортежу. Фирмы
Ashton-Tate и Microsoft сделали библиотеку функций DB-LIBRARY для SQL
Server доступной для разработчикой других компаний с целью упростить
разработку программ пользовательского интерфейса.
----------------------------------------------------------------------
Рис.2. Интерфейс обращений в SQL Server
/* Поместить оператор SQL в командный буфер */
dbcmd (dbproc, "SELECT cnum, cname, city from customer")
dbcmd (dbproc, "where city = 'Boston'");
/* Послать запрос в SQL Server */
dbsqlexec (dbproc);
/* Запросить и обработать результирующие данные */
while ((result_code= dbresult(proc))) != НЕТ_БОЛЬШЕ_РЕЗУЛЬТАТОВ
{
if (result_code == SUCCEED)
{
/* Привязка результатов запроса к программе */
dbind (dbproc, 1, stringbind, 0, cnum);
dbind (dbproc, 2, stringbind, 0, cname);
dbind (dbproc, 3, stringbind, 0, city);
/* Некоторая обработка полученных данных */
while (dbnextrow(dbproc) != НЕТ_БОЛЬШЕ_КОРТЕЖЕЙ)
{
process data
}
}
}
В некоторых серверах обеспечивается интерфейс обращений, позволя-
ющий серверу баз данных рассматривать операторы SQL в программах на
базовом языке как строки символов. В SQL-Server для этого предоставля-
ется DB-LIBRARY, в SQLBase - SQLBase API, в XDB-Server - XDB API, и в
NetWare SQL - SQL Manager.
----------------------------------------------------------------------
В XQL используется подход прямого доступа к файлам для написания
программ на базовом языке при помощи средств программных примитивов
SQL (XQL Primitives - XQLP). Программные примитивы (Primitives) - это
подпрограммы, которые направляют обращения низкого уровня непосредст-
венно к базе данных, минуя SQL и связанные с ним надстройки над серве-
ром SQL. В XQL требуется, чтобы XQLP всегда обращались к представле-
нию, имеющему курсор (указатель) ID. Чтобы получить представление из
словаря и присвоить ему курсор ID, разработчик может использовать фун-
кцию XRECALL. Поскольку осуществляется доступ к словарю, безопасность
и целостность данных не достигнуты. На рис.3 показано, как эти функции
выглядят на языке С.
----------------------------------------------------------------------
Рис.3. Прямой доступ.
int xRecall (iCursorID, sViewName, iOwnerCount,
sOwner, iOperMode, iTextLen, sText)
где возвращаемыми значениями являются:
iCursorID - возвращаемый идентификатор курсора
sText - текст, который надо сохранить при помощи представления
(например, комментарий)
iTextLen - длина этого текста
Задаваемыми значениями являются:
sViewName, имя представления
sOwner, имена владельцев файлов в данном представлении, если та-
ковые имеются
iOwnerCount, количество владельцев в sOwner
iOpenMode, режим чтения/записи таблиц
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Прямой доступ к файлам базы данных используется только в XQL
Primitives (XQLP) фирмы Novell. В программе на базовом языке XQLP ис-
пользуются непосредственно для обращения к представлению базы данных.
XRECALL получает представление из словаря и присваивает ему курсор ID.
-----------------------------------------------------------------------
Миновать словарь и прямо прочитать файлы можно с помощью Btrieve.
Однако, этот способ может привести к потере независимости данных, так
как программы должны знать и использовать структуру файлов базы дан-
ных, чтобы получать доступ к полям таблицы; при этом также требуется
повышенное внимание и дополнительные затраты на программирование, по-
тому что, когда изменяется некоторое поле, система управления данными
не производит автоматически изменения в связанных с данным полем по-
лях, пока программист сам не напишет служебную программу, которая бу-
дет делать это. Кроме того, в этом методе пропускается проверка целос-
тности и безопасности данных, так что он может быть опасным в много-
пользовательской системе. Хотя метод прямого доступа к файлам может
увеличить производительность , сервер баз данных, оптимизирующий зап-
росы, все же должен работать так же хорошо, но без такой потери неза-
висимости данных.
Paradox
-------
В основу программ пользовательского интерфейса Paradox будет по-
ложена Paradox 3.0, операционно-независимая система управления даными,
выпущенная в январе 1989 года. Эта распространенная система управления
данными предназначена как для конечных пользователей, так и для опыт-
ных разработчиков прикладных программ. Фирма Borland планировала доба-
вить к ней средства транслирования SQL во втором квартале 1989 года,
что позволило бы Paradox работать в качестве программы пользователь-
ского интерфейса для ORACLE Server, SQL Server и OS/2 Database
Manager. Чтобы придать более ранним версиям Paradox функции СУБД-кли-
ентов, компания будет поставлять транслятор для конвертирования QBE в
SQL, программу коммуникации для пересылки операторов SQL в сети и ком-
поненты интерфейса с сервером, специфичные для каждого поддерживаемого
сервера. Судя по официальным заявлениям компании, Borland не будет вы-
пускать своего собственного сервера баз данных.
Пользователи, у которых Paradox установлен на их персональных
компьютерах, могут использовать средства Paradox как с локальными ба-
зами данных Paradox, так и для работы с удаленными серверами баз дан-
ных; компания обещает, что в обоих этих случаях Paradox будет выгля-
деть для пользователей одинаково. Фирма Borland имеет преимущество,
встроив SQL в PAL, поскольку это ориентированный на работу с множест-
вами данных язык, как и SQL. Данные, получаемые от сервера, поступают
в локальную таблицу Paradox для манипулирования ими средствами Paradox
и слияния их с локальными данными. В Paradox используются как локаль-
ные, так и удаленные данные, но пользователь не может объединить ло-
кальные данные с удаленными данными, пока удаленные данные не будут
переданы системе-клиенту, причем данные могут быть получены от нес-
кольких серверов, но только поочередно. Если бы Paradox была настоящей
системой управления распределенными базами данных, она могла бы под-
держивать "прозрачное" разделение данных между системами управления
данными, находящимися в любом месте сети.
Paradox - это реляционая система управления данными с символь-
но-ориентированным интерфейсом, использующим меню, подобные меню Lotus
1-2-3, в верхней части экрана. При помощи меню и функциональных клавиш
пользователи могут определять базы данных, форму экрана и генерировать
отчеты. PAL - это полный язык программирования, реализованный в
Paradox, который помогает разработчикам создавать прикладные програм-
мы, а Paradox Personal Programmer - это генератор для языка PAL, упро-
щающий разработку.
Средства QBE, обеспечивающие мощные, интерактивные возможности
манипулирования данными, просты в использовании для решения сложных
задач. Выбирая пункт меню Ask вы получите форму запроса, который явля-
ется пустым шаблоном таблицы. Paradox перечисляет имена таблиц, полу-
чаемые от сервера; вы можете указать те таблицы, из которых следует
получить данные, поместив отметку (используя для этого клавишу F6) под
заголовками столбцов. Чтобы получить кортежи, удовлетворяющие некото-
рым условиям, укажите эти условия под заголовками столбцов. Чтобы по-
лучить данные из нескольких таблиц, поместить неопределенное (dummy)
значение в столбцах, которые связывают таблицы.
В версии 3.0 фирма Borland добавила к QBE возможность внешнего
соединения (outer-join capability), которая используется для получения
данных из одной таблицы, когда в таблице, к которой она присоединяет-
ся, нет ни одного подходящего значения. Для этого только необходимо
отметить знаком восклицания связующий столбец таблицы, из которого
должны включаться значения. Хотя Paradox имеет преимущества от исполь-
зования внешнего соединения по сравнению с ORACLE Server и SQL Server,
но при работе с NetWare SQL и OS/2 Database Manager фирмы IBM, в кото-
рых не поддерживаются такие соединения, он будет выдавать сообщение об
ошибке.
Фирма Borland также добавила в версию 3.0 операции над множества-
ми (set operations), которые позволяют пользователям QBE налагать ус-
ловия на агрегированные данные. Например, одним запросом QBE к базе
данных с упорядоченным вводом можно определить, какие из пользователей
упорядочивали каждую часть. Это подобно использованию подвыборов в
SQL.
Для сложных прикладных систем разработчики могут определять еди-
ные формы и таблицы, содержащие данные из различных таблиц. Таблицы
могут быть связаны иерархически (только с одним уровнем) так, что если
изменяются кортежи в главной таблице, то также изменяются кортежи в
зависимых (детализирующих) таблицах. Например, если изменяется имя
пользователя, все индексы под этим именем будут содержать новое имя.
Позволяя включить в один отчет данные из нескольких различных таблиц,
Paradox более не нуждается в промежуточной таблице.
В новой версии также реализованы кросс-табличные отчеты (crosstab
reports), в которых значения из одного поля возникают в столбцах, зна-
чения из другого поля - в строках, а результирующим значением является
пересечение строк и столбцов. Например, в кросс-табличном отчете каж-
дая строка может содержать имя торгового представителя, а каждый стол-
бец может содержать продукты, продаваемые этим лицом, а их пересечение
- общий объем торговых операций. Использование кросс-табличного меню
или функциональных клавиш автоматизирует создание таких отчетов. Раз-
работчик также может комбинировать использование кросс-таблиц с други-
ми функциями генератора отчетов, такими как "вставка" (control break).
Например, делая вставку к кpocc-таблице по торговле в каждой части
каждому заказчику, можно получить данные для каждого торгового предс-
тавителя по каждому региону.
Другой новой возможностью являются графические средства, с по-
мощью которых можно создавать такие стандартные графические изображе-
ния, как строковые и оконные таблицы. Для обеспечения высококачествен-
ной графической и текстовой печати поддерживаются принтеры типа
PostScript.
Для версии Paradox, работающей под управлением DOS, необходима
вычислительная машина с мимимальным объемом оперативной памяти 640
Кбайт и жестким диском; а для версии, работающей под управлением OS/2,
требуется 3 Мбайта оперативной памяти. Специализированная версия, ра-
ботающая под управлением DOS на вычислительных машинах с микропроцес-
сором 80386, использует преимущества расширенной памяти.
Paradox 3.0 может транслировать запросы в язык SQL для обмена
данными между сетью и сервером (см. рис. 4). Модуль коммуникаций,
программы которого занимают всего 8 Кбайт оперативной памяти при рабо-
те под управлением DOS, посылает операторы SQL серверу. Фирма Borland
для каждого из поддерживаемых серверов создала свой программный про-
дукт, называемый Paradox agent, который размещается на сервере. При
работе с SQL Server этот программный продукт использует DB-LIBRARY,
при работе с OS/2 Database Manager и ORACLE Server он использует дина-
мический SQL. Даже в однопользовательской системе с операционной сис-
темой OS/2 такой подход использует преимущества многозадачного режима,
чтобы позволить нескольким клиентам использовать OS/2 Database Manager
как сервер, и он сокращает требования клиента на объем оперативной па-
мяти. Все сведения о различиях версий SQL помещены в Paradox agent.
Программы пользовательского интерфейса Paradox делают автомати-
ческим процесс распознавания структуры базы данных, с которой Paradox
собирается работать. При помощи простого выбора элементов меню пользо-
ватель может определить, к каким из удаленных баз данных и таблиц они
хотят иметь доступ, указать свое пользовательское имя и пароль и на-
жать функциональную клавишу DO-IT! (F2). Затем программы пользователь-
ского интерфейса Paradox перемещают определения данных из словаря дан-
ных сервера в локальный словарь данных. Теперь система знает, где сле-
дует искать эти таблицы, как связываться с удаленным сервером и какой
диалект SQL использовать.
Доступ к серверу осуществляется таким же образом, как и к локаль-
ным базам данных. Пользователь формулирует запросы на QBE, которые
компонента Paradox, реализующая трансляцию в SQL, переводит в SQL. За-
тем модуль коммуникаций передает серверу подлежащий выполнению запрос
SQL. Сервер возвращает результаты клиенту, где они включаются в ре-
зультирующую таблицу Paradox.
Кроме вложенных запросов QBE (которые автоматически транслируются
в SQL), программа на языке PAL может содержать операторы SQL. В ответ
на оператор SELECT Paradox автоматически создает таблицу, в которую
программы пользовательского интерфейса помещают запрашиваемые данные.
Как и любая другая таблица Paradox, она может быть просмотрена с прок-
руткой вперед или назад и может быть соединена с локальной таблицей.
Если функция SQL не поддерживается сервером, программы пользователь-
ского интерфейса возвращают сообщение об ошибке.
Фирма Borland планирует выпустить вскоре новую версию Paradox,
которая позволит использовать полный набор средств QBE, включая опе-
рации обновления, все меню-подобные операции с таблицами, такие как
создание таблицы для работы с сервером баз данных, а также диалоговое
SQL-окно для серверов. Для обновления таблицы, хранящейся на сервере,
используется пункт главного меню "Изменить данные". При этом на экране
создается пустая таблица, имеющая такую же структуру, как и таблица
сервера. При добавлении кортежей к этой таблице происходит слияние
данных с таблицей сервера.
Для общего обновления базы данных разработчики будут иметь воз-
можность писать программы на языке PAL, которые посылают операторы SQL
непосредственно в сервер, обновляющий базу данных. Команды сервера
COMMIT и ROLLBACK могут быть использованы для управления процессом об-
работки транзакций.
Кроме того, компания планирует добавить возможность использования
смешанных запросов к локальным и удаленным таблицам (но не к соединен-
ным таблицам) и команды определения данных таблиц серверов, такие как
CREATE, DROP и RENAME.
Мощь DATAEASE возрастает
Последняя операционно-независимая версия DataEase SQL (4.0) ком-
пании DataEase International добавила значительные средства для прик-
ладных разработчиков к своим уже довольно хорошим средствам конечного
пользователя. Например, в ней расширен ориентированный на работу со
множествами процедурный язык, называемый DQL (DataEase Query
Language). Следующая версия DataEase SQL, работающая как программы
пользовательского интерфейса, должна быть выпущена где-то в 1989 году,
и будет сочетать свою функциональность с мощью сервера баз данных.
Первоначально DataEase SQL будет работать только как программа
пользовательского интерфейса для SQL Server, а не как операционно-не-
зависимая система управления базами данных для доступа к локальным ба-
зам данных. Компания DataEase утверждает, что когда фирма IBM выпустит
многопользовательскую версию OS/2 Database Manager, то DataEase будет
выпускать для нее версию СУБД-клиента.
Разработка прикладных программ в среде программ пользовательского
интерфейса DataEase SQL и в среде операционной-независимой версии этой
системы будет идентичной, за исключением того, что операционно-незави-
симая версия сама занимается вопросами целостности транзакций, блоки-
рованием и ведением системных журналов (регистрацией всех вносимых в
базу данных изменений). В сочетании DataEase с SQL Server эти функции
выполняются сервером. Если разработчик учитывает эти различия, то су-
ществующие приложения DataEase могут работать на поддерживаемых серве-
рах.
DataEase SQL является символьно-ориентированным языком и управля-
ется при помощи набора меню и функциональных клавиш. Это основанная на
форматах система управления данными, что означает, что разработчики
определяют базу данных, запрашивая элементы формата данных на экране,
выбирая имена полей и типы данных из меню. DataEase SQL автоматически
определяет соответствующую таблицу данных. Чтобы определить отношения
между таблицами, разработчики могут использовать предлагаемый системой
DataEase формат, в котором запрашивается имя таблиц и связанные поля,
либо определят отношения динамически, используя DQL. Главный формат и
подформат позволяют определять два уровня иерархии; например, формат
счетов может быть главным, а под-формат может содержать построчный
список.
Программы пользовательского интерфейса создают и передают SQL
Server команды определения данных, такие как те, что используются для
создания и определения таблиц. Разработчики могут использовать мульти-
форматы DataEase SQL (форматы, содержащие поля из различных таблиц)
для размещения возвращаемых данных для дисплея.
Средство генерации быстрых отчетов использует формат для опреде-
ления критерия выбора для данных и генерирует отчет, формат которого
определяется либо по умолчанию, либо по усмотрению пользователя.
Для создания сложных приложений используется полный процедурный
язык, в котором есть операторы присваивания , цикла и условные опера-
торы. Разработчики могут писать управляющие процедуры для связи форма-
тов, создаваемых при помощи меню-системы, с процедурами, чтобы обраба-
тывать их и генерировать сложные отчеты.
Технические требования для DataEase SQL - это 640 Кбайт оператив-
ной памяти, жесткий диск и операционная система MS-DOS. Компания
DataEase планирует также выпуск версии своей системы для OS/2, но не
объявляет даты ее выпуска.
Большинство программных средств DQL, включая запросы на быстрые
отчеты и прикладные программы, написанные на DQL, являются таблич-
но-ориентированными. Чтобы получить доступ к данным, находящимся на
сервере, DataEase SQL транслирует операторы DQL в промежуточный язык
запросов DataEase - DataEase Intermediate Query Language - для после-
дующей трансляции их в SQL (см. рис. 4). Оператор DQL может содержать
предложения (такие, как описание условий), не имеющие эквивалентов в
SQL. В этих случаях DataEase SQL делает синтаксический разбор операто-
ров DQL и создает такое количество операторов SQL, которое необходимо
для получения всех данных, требуемых для выполнения запросов DQL.
Транслятор программ пользовательского интерфейса находится на маши-
не-клиенте и зависит от конкретного сервера. Для SQL Server, например,
необходима библиотека DB-LIBRARY, тогда как для IBM Database Manager
необходимы программы на динамическом SQL.
Рис.4. Связь "клиент-сервер" в системах Paradox и DataEase.
_____________________________________________________________________
| PARADOX |
| _________________________________________________________________ |
|| CLIENT SERVER ||
|| ___________________________________ ___________________ ||
|| | | | | | | |||
|| | Paradox | ТРАНСЛЯТОР | МОДУЛЬ | |PARADOX | СЕРВЕР |||
|| | 3.0 | SQL | КОММУНИКА- |<====>| AGENT | БАЗ ДАН- |||
|| | | | ЦИЙ | | | НЫХ |||
|| |_________|____________|____________| |________|__________|||
||_________________________________________________________________||
| |
| DATAEASE SQL |
| _________________________________________________________________ |
|| CLIENT SERVER ||
|| ___________________________________ ___________________ ||
|| | | | | | |||
|| | QUICK | ТРАНСЛЯТОР | МОДУЛЬ | | СЕРВЕР |||
|| | REPORT | SQL | КОММУНИКА- |<====>| БАЗ ДАННЫХ |||
|| | ИЛИ DQL | | ЦИЙ | | |||
|| |_________|____________|____________| |___________________|||
||_________________________________________________________________||
|___________________________________________________________________|
Paradox 3.0 содержит транслятор SQL для преобразования операторов
QBE в операторы SQL, а также модуль коммуникаций для пересылки опера-
торов SQL в сервер. Модуль коммуникаций позволяет OS/2 Extended
Edition Database Manager функционировать в качестве сервера. DataEase
транслирует DQL во внутреннее представление данных DataEase, а затем в
операторы SQL. В Database Manager используются вложенные операторы
SQL, а в SQL Server - DB-LIBRARY.
______________________________________________________________________
Транслятор знает о расширенных возможностях и ограничениях серве-
ра SQL и генерирует процедуры таким образом, чтобы настроиться на них.
Например, функции над строками и денежными единицами в DataEase SQL не
являются частью SQL, поэтому DataEase SQL получает данные и выполняет
эти функции на машине-клиенте. Все средства DataEase SQL, такие как
определение баз данных, обращение к ним с запросами и обработка тран-
закций, могут использоваться сервером. При определении базы данных
DataEase SQL использует преимущества правил и триггеров SQL Server,
чтобы усилить ограничения не целостность данных (например, такие как
"никакое новое упорядочение не может быть определено для некоторой
части, если эта часть была переупорядочена ранее, чем два месяца тому
назад.") Разработчик определяет эти ограничения в определении базы
данных. Если база данных уже существует на сервере, DataEase SQL авто-
матически может определять структуру базы данных.
Первоначально в DataEase SQL не будет поддерживаться диалоговый
SQL, но будет возможность использовать персональный компьютер как "не-
мой" терминал, так что запросы SQL будут выполняться непосредственно
на сервере баз данных. В последующей (но пока не аннонсированной) вер-
сии планируется поддерживать диалоговый SQL и работать с локальными
базами данных и удаленными серверами.
SQLWindows, первый графический продукт
Gupta Technologies была первой компанией, начавшей продавать сер-
вер баз данных для персональных компьютеров, SQLBase. Выпуская
SQLWindows, она также первой начинает продажу программ пользователь-
ского интерфейса, ориентированных на графику. Основанные на графике
интерфейся превосходны для разработки простых в использовании приложе-
ний , но создание их при помощи Microsoft Windows - трудное и емкое по
времени занятие. SQLWindows упрощает эту задачу.
И SQLBase, и SQLWindows предназначены для разработчиков приклад-
ных систем. На сервере выполняются командно-ориентированный диалоговый
SQL и средство генерации отчетов, называемое SQLTalk; а в SQLWindows
есть версия SQLTalk для Microsoft Windows. Хотя все эти средства не
преназначены для конечных пользователей, все же конечные пользователи
могут научиться пользоваться ими. Если сам SQLTalk спроектирован для
интерактивного поиска данных в базах данных SQLBase при помощи простых
средств генерации отчетов, то SQLWindows - это более мощное средство
для разработки сложных приложений, которые будут выполняться в среде
Microsoft Windows.
Express Windows - это расширение SQLWindows, которое автоматичес-
ки генерирует программы SQLWindows для экранов, нарисованных пользова-
телем. В SQLWindows используются три типа окон: окна форматов (для
ввода и вывода данных), окна таблиц (для строк и столбцов) и зоны диа-
лога (для выдачи сообщений пользователям или для ввода их пользовате-
лем).
Для разработки прикладных программ SQLWindows управляет оконным
редактором Window Editor на правой стороне экрана и построчным редак-
тором Outline Editor с левой стороны экрана. Window Editor, диалоговая
программа создания изображений на экране, позволяет разработчикам соз-
давать сложные форматы с текстами, таблицами, содержащими большое ко-
личество строк, диалоговыми зонами, окнами для скроллинга, всплывающи-
ми меню, push buttons, radio buttons и check boxes. Как только пользо-
ватель помещает эти объекты в окно Window Editor, SQLWindows автомати-
чески генерирует программы для их описания, которые демонстрируются в
окне Outline Editor. Изменения в одном окне вызывают изменения в дру-
гом. Поскольку скроллинг в окнах может осуществляться как горизонталь-
но, так и вертикально, размеры формата могут быть больше, чем размеры
экрана.
Разработчики могут использовать меню SQLWindows, чтобы генериро-
вать всплывающие меню для прикладных программ; в этих меню пункты вы-
бора могут иметь эквиваленты среди функциональных клавиш. Все это ав-
томатически определено в языке программирования SQLWindows Application
Language (SAL), процедурном языке, предоставляющем стандартные средст-
ва, такие как локальные и глобальные переменные, операторы присваива-
ния, ветвление и условные операторы. В SAL также есть много заранее
определенных функций (таких как манипулирование базами данных и окна-
ми, задание значений полей и отладочные функции), которые разработчик
инициализирует при помощи оператора CALL. Разработчик может изменять
функции SAL или создавать свои собственные внешние функции на C или на
ассемблере.
Набор SQL-функций в SAL позволяет прикладным программам получать
доступ к базе данных; этот механизм подобен обращению к интерфейсам в
SQLBase. Чтобы получить данные, следует обратиться к функции
SqlPrepare, которая интерпретирует строки, содержащие команды SQL.
SqlOpen выполняет запросы, повторное обращение к SqlFetchNext позволя-
ет получить заданные кортежи. SqlFetchPrevious осуществляет переход к
предыдущему кортежу, упрощая просмотр данных.
Поскольку SAL совместим со средой програмных интерфейсов
Microsoft Windows, он является событийно управляемым (такие события,
как выбор поля меню или поля данных сопровождается выдачей сообщения
прикладным программам). Разработчики могут создавать оконные приложе-
ния с или без доступа к базе данных. SQLWindows может комбинировать
связанные окна в форматы. Например, в однои окне может быть выведен
список студентов, а в другом - сведения о конкретном студенте, имя ко-
торого указывается курсором. При перемещении курсора по списку студен-
тов сведения о студентах сменяются.
Программа Express Windows также предназначена для автоматизации
разработки прикладных программ в среде SQLWindows. Она по умолчанию
создает формат таблицы базы данных для формирования запросов к ней на
поиск и модификацию данных и автоматически генерирует операторы SAL.
Изменения в операторах SAL отражаются на формате базы данных.
Для работы SQLTalk и SQLWindows необходима операционная система
MS-DOS c объемом оперативной памяти 640 Кбайт и жесткий диск; для
улучшения производительности этих программ используется расширенная и
расширяемая оперативная память, если такая возможность имеется. Для
SQLWindows также необходима Microsoft Windows, версия 2.1 или старше.
Со временем будет поставляться версия этой программы пользовательского
интерфейса, которая будет работать в среде OS/2 Presentation Manager
(но дата ее выпуска еще не названа).
SQLWindows работает со всеми сетями, которые поддерживают
NETBIOS. Функции SAL генерируют обращения API (интерфейсов прикладных
программ) SQLBase; SQLRouter, коммуникационная компонента, посылает их
по сети к серверу для обработки, прежде чем данные будут возвращены в
машину-клиент. Поскольку в SQLBase одновременно поддерживаются нес-
колько открытых курсоров, то несколько операторов SQL могут быть ак-
тивными в различных точках одной и той же базы данных или на различных
базах данных и в различных серверах. Но этот механизм не является нас-
тоящим механизмом работы с распределенными базами данных, потому что
при этом нельзя выполнять распределенные операции объединения и моди-
фикации данных.
Компания Gupta планирует расширить Express Windows с тем, чтобы
включить в нее новые шаблоны для работы с иерархическими прикладными
системами. SQLWindows работает только совместно с SQLBase. Фирма Gupta
заявила, что намеревается обеспечить возможность работы и с другими
серверами, хотя не уточняла, с какими именно и когда это будет возмож-
но. Фирма Gupta выдает лицензии на свой продукт со скидкой.
Доминирование dBASE
Предыдущие версии dBase были в течение многих лет доминирующими
на рынке систем управления данными для персональных компьютеров. Вы-
пустив программы пользовательского интерфейса dBASE IV, компания
Ashton-Tate сделала очередной шаг, чтобы укрепить свои доминирующие
позиции в противовес возрастающему напору новых конкурентов.
Целью фирмы Ashton-Tate является позволить существующим приложе-
ниями dBASE III и dBASE IV "прозрачно" работать с SQL Server. Вам не
придется изменять прикладную систему, если она работает с локальной
системой dBASE IV или с удаленным SQL Server. Более того, приложения,
созданные не в системе dBASE, также смогут работать с базой данных,
управляемой SQL Server и созданной для работы с dBASE.
Главной компонентой новой системы dBASE IV является Control
Center (управляющий центр), точка входа для большинства задач для раз-
работки приложений, таких как определение базы данных, формулирование
запросов к ней, генерация отчетов и определение форматов. Пользова-
тельский интерфейс является символьно-ориентированным, с использовани-
ем для ведения диалога меню и функциональных клавиш. Команды-подсказки
также остаются в системе и при желании могут быть использованы. В ка-
честве средств написания завершенных программ на языке dBASE
Ashton-Tate добавила к системе новый текстовый редактор и средства от-
ладки.
Разработчики прикладных программ и конечные пользователи могут
формулировать запросы к базе данных, используя новые средства типа
запросов-по-образцу (QBE), подобные версии IBM, используемой на боль-
ших ЭВМ. Для организации доступа к данным QBE генерирует программы
dBASE IV.
Новый интерактивный генератор отчетов обеспечивает вывод сгенери-
рованых отчетов на экран. Он производит отчеты по столбцам со много-
численными уровнями управляющих прерываний. Для создания меню-подобных
приложений новый генератор приложений использует определения меток,
отчетов и форматов, созданные в Control Center.
В версии 1.1 dBASE IV предусмотрен режим SQL для использования
запросов SQL непосредственно для доступа к базам данных dBASE, а также
к базам данных SQL Server. Документация по использованию вложенного
SQL поставляется только с редакцией для разработчиков прикладных прог-
рамм, а не со стандартной версией 1.0 dBASE IV.
Для работы под управлением MS-DOS для dBASE IV требуется 640
Кбайт оперативной памяти и жесткий диск. В будущем планируется подерж-
ка работы в среде OS/2. dBASE IV может работать с LAN Manager и LAN
Server, а в будущем может работать под управлением операционной систе-
мы NetWare компании Novell.
Задача по обеспечению возможности работы языка dBASE с SQL
Server, стоящая перед фирмой Ashton-Tate, является чрезвычайно сложной
из-за различных структур данных, используемых в базах данных dBASE, и
того, каким образом язык dBASE использует эти структуры. Все файлы
dBASE содержат доступный пользователю номер записи, отметку о времени
создания записи и столбец, отмечающий удаленные кортежи. Эти столбцы
нужны для программ dBASE IV, но не для SQL Server. Например, в dBASE
IV есть функция для поиска записей по их номеру, а также команда пере-
хода к записи по этому номеру. Кроме того, dBASE IV не стирает физи-
чески удаляемые записи до тех пор, пока не будет использована команда
PACK. Наконец, в dBASE IV используется отметка о времени последнего
обновления записи.
Ashton-Tate должна "научить" программы, использующие эти структу-
ры данных, работать "прозрачно" с базами данных SQL Server. Когда раз-
работчики создают таблицу для базы данных SQL Server при помощи прог-
рамм пользовательского интерфейса dBASE IV, в дополнение к столбцам,
определенным пользователем, dBASE автоматически создает столбцы для
номера записи, даты ее последней модификации и отметки о удалении, ис-
пользуя триггеры и хранимые процедуры - средства, которые изо всех
систем на рынке баз данных для персональных компьютеров имеются только
у SQL Server. Пользователь не знает, что столбец с именем
INTERNAL_RECNO является частью таблицы SQL Server. Триггеры и хранимые
процедуры выполняются всякий раз, когда прикладная прграмма выполняет
обновление таблицы. Даже если доступ к базе данных осуществляется
программой, написанной на языке С, не имеющей точных сведений об этих
столбцах, то триггеры в словаре данных обновляют номер записи. При ис-
пользовании базы данных приложением dBASE необходимый для него номер
записи будет найден.
При осуществлении доступа прикладной программы к серверу програм-
ма dBASE IV транслируется в SQL на уровне отображения программ пользо-
вательского интерфейса dBASE. SQL в свою очередь транслируется в обра-
щения к DB-LIBRARY, передаваемые серверу, по которым данные возвраща-
ются в машину-клиент. Этот процесс трансляции является сложным, так
как нет ни одного один-к-одному отображения из dBASE в SQL. Наоборот,
несколько операторов dBASE часто эквивалентны одному оператору SQL,
как, например, в следующей программе:
use ORDERS in 1
use CUSTOMER in 2
select CUSTOMER
index on cnum to CUSTOMER
select ORDERS
set relation on cnum into CUSTOMER
list CUSTOMER>cnum, cname, orddate
Эта последовательность операторов эквивалентна одному оператору
SQL:
select CUSTOMER.cnum, cname, orddate
from CUSTOMER, ORDERS
where
CUSTOMER.cnum=ORDERS.cnum
Арифметические операторы, каждый из которых генерирует последова-
тельный просмотр файла dBASE, очень просто встраиваются в операторы
SQL. Однако в dBASE IV предусмотрены другие способы выполнения этой
операции, что делает эту задачу более сложной. Например, несколько
таблиц в dBASE IV могут быть связаны при помощи вложенного оператора
FIND, команды SET RELATION TO или даже оператора JOIN. В идеале все
это должно отображаться в один и тот же оператор SQL.
Ashton-Tate также должна сделать механизм блокирования dBASE IV
совместимым с блокированием в SQL Server. В dBASE IV поддерживается
блокрования записей и файлов, тогда как SQL Server обеспечивает блоки-
рование страниц и таблиц. Разработчик может выбрать между управлением
блокированием на уровне записей dBASE IV или блокированием в SQL
Server. При блокировании на уровне записей Ashton-Tate использует таб-
лицу базы данных SQL Server как заблокированную таблицу. dBASE IV оп-
ределяет на сервере триггер, который автоматически проверяет заблокиро-
ванную таблицу во избежание конфликтов. Если используется блокирование
SQL Server на уровне таблиц, производится проверка даты последнего об-
новления записи: не была ли запись изменена с тех пор как пользователь
первый раз к ней обратился. Если нет, то запись будет модифицирована,
иначе обновление не будет выполнено.
Записи, получаемые от SQL Server, накапливаются в буфере на маши-
не-клиенте, так что в режиме просмотра (Browse) можно пролистывать
множество полученных записей вперед или назад. Если просмотр выходит
за конец множества полученных записей, в буфер поступает следующее
множество запрашивавшихся записей. Просмотр назад за рамки находящихся
в буфере записей означает, что следует задать новый оператор SELECT, а
затем перепозиционировать указатель на соответствующую запись.
Локальная база данных dBASE IV может работать с удаленной базой
данных SQL Server в ограниченном режиме. Данные с сервера могут быть
получены в переменные памяти dBASE IV. Затем система переключается на
локальный режим и использует эти значения вместе с локальной базой
данных dBASE IV. Чтобы связать данные, помещенные в локальной базе
данных, с базой данных сервера, следует проделать обратное. Кроме то-
го, локальные даные могут быть просто скопированы сервером. Компания
Ashton-Tate не объявила, когда ее программы пользовательского интер-
фейса будут поддерживать одновременный доступ как к локальной базе
данных, так и к базе данных сервера.
SQL-компонента является неотъемлемой частью архитектуры баз дан-
ных Ashton-Tate. Компания планирует использовать систему управления
базами данных InterBase фирмы Interbase Software для обеспечения под-
держки SQL на локальных рабочих станциях и неоднородное взаимодействие
(связь с различными базами данных на различных ЭВМ) с SQL Server и
другими системами управления данными, работающими на больших, мини- и
микро-ЭВМ, такими как DB2 фирмы IBM для большой ЭВМ.
ORACLE и положительные прогнозы
Хотя сферой интересов фирмы Oracle является мир мини- и мак-
ро-компьютеров, все же она выпустила несколько версий системы ORACLE
для работы в среде PC и Macintosh, а недавно выпустила версии серверов
баз данных, работающие под управлением Xenix и OS/2. Такой набор прог-
рамных продуктов предвещает хорошую совместимость между системами раз-
личных операционных сред.
Professional ORACLE предоставляет базовые интерфейсы для С, COBOL
и FORTRAN c использованием вложенных операторов SQL, чтобы иметь воз-
можность создавать сложные, высокопроизводительные прикладные системы.
Программы пользовательского интерфейса Professional ORACLE на маши-
не-клиенте могут иметь доступ к локальному ядру системы ORACLE или к
ORACLE Server на машине-сервере. Средства программирования прикладных
программ, которые поставляются с программами пользовательского интер-
фейса, - это SQL Forms (пакет разработки прикладных программ, ориенти-
рованный на форматы), SQL*Plus (интерактивный SQL), SQL*Menu (средство
построения меню) и SQL*ReportWriter (средство генерации отчетов). Вер-
сия 5.1B Professional ORACLE - это полная однопользовательская систе-
ма, содержащая средства разработки прикладных программ и загрузчик баз
данных.
При помощи SQL*Forms можно создавать сложные меню-управляемые,
ориентированные на работу с форматами приложения для ввода данных, по-
иска и их модификации. Для связи процедур с форматом в этой программе
используются триггеры ORACLE, такие как проверяющие тот факт, что зна-
чение находится в интервале, определенном пользователем. Эти триггеры
представляют собой набор команд и операторов SQL, которые выполняются
тогда, когда происходят некоторые события, такие как вход или выход в
формат или поле. Триггеры могут обращаться к другим триггерам.
SQL*Forms не генерирует никаких исходных текстов программ, которые
могли бы быть проверены разработчиком, как и не обеспечивает ни одного
из существующих средств, таких как трассировка или редактирование пе-
рекрестных ссылок, для отладки создаваемых прикладных программ.
SQL*Plus - это средство обработки запросов интерактивного SQL, в
котором по сравнению со стандартом ANSI SQL используется ряд расшире-
ний, в том числе внешнее соединение (outer join) и поддержка вложенно-
го агрегирования данных (nested aggregate support). Для определения
форматированных отчетов используются многочисленные функции и команды.
SQL*Menu создает меню-ориентированный интерфейс с операционной средой,
средствами ORACLE и прикладными системами.
Новый SQL*ReportWriter предоставляет возможность генерировать
большой набор разнообразных отчетов, включая отчеты с многоуровневым
управлением прерываниями, отчеты с уточнениями, отчеты с большим коли-
чеством разделов и отчеты по нескольким таблицам. Для определения от-
четов используются меню-подобный подход и средства "заполнения форма-
тов".
QMX и Easy*SQL являются служебными программами конечного пользо-
вателя, тоже новыми для программного продукта на персональной ЭВМ. QMX
имеет средства генерации запросов по образцу (QBE), интерактивный SQL
и возможность создавать многоуровневые отчеты с управляющими прерыва-
ниями. Easy*SQL обеспечивает интерфейс подсказок для конструирования
некоторых операторов SQL, таких как операторы SELECT. Он не обеспечи-
вает использование всех средств SQL, но разработчики могут непосредст-
венно вводить операторы SQL.
За исключением SQL*ReportWriter, все эти средства программ поль-
зовательского интерфейса могут работать вместе на компьютере с опера-
тивной памятью не менее 640 Кбайт. Для SQL*ReportWriter требуется 900
Кбайт расширенной памяти. При ее наличии все средства используют рас-
ширенную память.
Для работы с ORACLE Server пользователь должен иметь программное
средство SQL*Net PC фирмы Oracle. Эта коммуникационная программа под-
держивает OS/2 LAN Manager фирмы IBM и поименованные каналы обмена
данными, NETBIOS, SPX-IPX и асинхронные коммуникации. Установкой пара-
метра размера массива пользователь может управлять общим объемом дан-
ных, которые сервер возвращает машине-клиенту.
Как часть архитектуры SQL*Star фирмы Oracle, программы пользова-
тельского интерфейса могут осуществлять доступ к нескольким серверам
ORACLE Server в сети и локальным базам данных на машинах-клиентах. Ад-
министратор идентифицирует удаленные серверы в сети и сопоставляет
именам удаленных таблиц их адреса при конфигурировании системы.
Степень поддержки распределенных баз данных выше, чем у любых
других программ пользовательского интерфейса, рассматривавшихся в дан-
ном обзоре, но Professional ORACLE Forms не является полностью распре-
деленной системой. Она требует от сервера выполнения операции соедине-
ния перед возвращением результата клиенту.
Помимо Professional ORACLE, Oracle Corporation будет предостав-
лять и другие версии программ пользовательского интерфейса, которые
можно использовать с ORACLE Server. ORACLE Quicksilver и ORACLE dBLX
ориентированы на пользователей программных продуктов фирмы WordTech
Systems - Quicksilver и dBLX, соответственно; ORACLE for 1-2-3 пред-
назначен для пользователей Lotus 1-2-3.
Интерфейс к XDB
XDB-SQL имеет полный набор средств программ пользовательского ин-
терфейса для работы со своим сервером, включая средства ввода данных
типа "запрос-по-образцу" для таблиц и представлений, генератор отчетов
и язык программирования четвертого поколения (4GL).
Эти программы пользовательского интерфейса предназначены для ра-
боты с XDB-Server. Ядро этого сервера имеет небольшой объем, быстро-
действующее и функционально полное. Оно даже подерживает целостность
данных при логическом выводе в словаре данных, так что прикладные раз-
работчики не должны сами программировать проверку семантической целос-
тности в прикладных программах.
Доступ к базе данных XDB осуществляется посредством SQL, который
может использоваться в диалоге, из программ на языках С и COBOL на
уровне интерфейса обращений или при помощи средств запроса-по-образцу,
в котором пользователь выбирает данные посредством меню или указывает
условия поиска записей. Версия-сервер функционально идентична операци-
онно-независимой версии.
Эти программы пользовательского интерфейса являются символьно
ориентированными, с меню-подобным взаимодействием или с использованием
функциональных клавиш. Основанные на меню модули позволяют определять
базы данных, вводить данные и обеспечивать меню-ориентированный интер-
фейс с выводом на экраны и генерацией отчетов. XDB-Forms, программа
управления форматами, поставляемая как дополнительное средство, может
генерировать сложные форматы для ввода и поиска данных.
Процедурный язык XDB - это средство для прикладного разработчика,
эффективное при создании некоторых относительно простых приложений, но
при создании более сложных прикладныхе систем разработчику придется
обращаться к базовому языку.
XDB-SQL может работать на любом компьютере с операционной систе-
мой MS-DOS при объеме оперативной памяти не менее 640 Кбайт и с жест-
ким диском, и в сети с использованием NETBIOS.
Доступ к серверу "прозрачен" для конечного пользователя. Програм-
ма переадресации программ пользовательского интерфейса перехватывает
обращения к базе данных и посылает их в сервер. Группы записей возвра-
щаются машине-клиенту как одна строка. XDB-SQL может работать либо как
программа пользовательского интерфейса для XDB-Server, либо как неза-
висимая система управления данными. Он работает как в одно-, так и в
много-пользовательской среде.
Планируется развитие XDB по направлению к графически-ориентиро-
ванным программам пользовательского интерфейса. Компания также плани-
рует устанавливать связь с базами данных других разработчиков, однако
не через программы пользовательского интерфейса, а через ядро системы
управления данными.
Расширение возможностеймс - цель развития XQL
XQL фирмы Novell - это настоящая SQL-компонента сервера баз дан-
ных NetWare SQL фирмы Novell. XQL предназначен для разработчиков ус-
ложненных прикладных систем, использующих вложенные операторы XQL SQL
в программах, написанных на базовых языках, таких как BASIC, C и
COBOL. XQL не является в полном смысле программой пользовательского
интерфейса; у него есть компонента поддержки интерактивного SQL, но
нет средств для построения образов экрана и меню или генерации отче-
тов. Другие фирмы, такие как Borland, планируют предоставить такие
програмные продукты, которые будут работать с XQL.
XQL работает на любом компьютере, поддерживающем Novell NetWare и
осуществляет доступ к серверу через любой из трех уровней; XQL
Interactive (XQLI) является средством диалогового SQL для написания и
редактирования операторов SQL. Эти операторы направляются в сервер, и
данные возвращаются в машину-клиент как группы записей.
XQL Manager (XQLM) - это средство, которое разработчики использу-
ют для создания обращений к подпрограммам, содержащим SQL-операторы.
Например, чтобы получить данные из базы данных, разработчик сохраняет
текст оператора SELECT в программной переменной, устанавливает курсор
на оператор, использующий функцию XCURSOR, производит синтаксический
анализ и компиляцию оператора при помощи функции XCOMPILE и выбирает
кортежи один за другим, использую функцию XFETCH.
XQL Primitives (XQLP), включающая реляционные программные прими-
тивы, это множество процедур низкого уровня, которые используются для
получения данных непосредственным доступом к файлам, минуя SQL.
Системный администратор определяет, где именно в сети размещена
база данных. Прикладная программа посылает XQL-обращения в сервер, ко-
торый обрабатывает обращения и возвращает данные. Разработчику не нуж-
но знать, является ли база данных локальной или она размещена на маши-
не-сервере. Помимо приложений, которые будут осуществлять доступ к
серверу NetWare SQL, при помощи XQL можно создавать приложения для не-
зависимых систем управления данными.
Первая волна
Программы пользовательского интерфейса, описанные в данной
статье, - это только первая волна программ пользовательского интерфей-
са, специализированных и общего назначения, которые, по-видимому, бу-
дут появляться для серверов баз данных. Большее их количество появит-
ся, когда разработчики серверов баз данных начнут сотрудничать с раз-
работчиками программ пользовательского интерфейса, чтобы привлечь вни-
мание покупателей к своим системам и и визуализировать средства работы
с серверами.
Системные разработчики и аналитики поставлены перед большим выбо-
ром. Выбирая программы пользовательского интерфейса, разработчики и
аналитики должны быть уверены, что они будут работать на уже выбранном
ими сервере баз данных. Программы пользовательского интерфейса также
должны подходить по стилю прикладного программирования пользователей в
организации (например, оконно-ориентированный, dBASE-ориентированный,
ориентированный на "запрос-по-образцу" (QBE) или комбинацию этих сред-
ств).
Для больших организаций и любых интеллектуальных приложений, для
которых требуется работа с большим количеством серверов, есть програм-
мы пользовательского интерфейса, разработанные для нескольких серве-
ров. Они могут быть наиболее привлекательными благодаря своей гибкости
и и тому, что они могут работать с SQL Server компаний
Ashton-Tate/Microsoft. Те, кто предпочитает среду "запроса-по-образ-
цу", могут выбрать Paradox или dBASE IV.
Привлекательность SQLWindows состоит в том, что эта система помо-
гает разрабатывать приложения, визуально более красивые, чем другие
символьно-ориентированные программы пользовательского интерфейса, и
она работает с DOS-версией сервера SQLBase. Со своей стороны, програм-
мы пользовательского интерфейса Professional ORACLE обеспечивают пере-
носимость на мини- и большие ЭВМ благодаря широкому использованию сис-
темы управления базами данных этой фирмы. И, наконец, XDB-SQL и XQL
предлагают средства общения со своими собственными серверами. Выбор,
который падет на один из этих серверов, зависит в отсновном от исполь-
зуемого сервера и требований учреждения к приложениям.
Первая волна программ пользовательского интерфейса - это только
начало появления средств, которые будут скоро в вашем распоряжении и
помогут вам использовать мощь серверов баз даных. Два основных дейст-
вующих лица на рынке программного обеспечения для персональных компь-
ютеров - компании Lotus и Microsoft - еще только собираются выпустить
какие-либо программы пользовательского интерфейса или хотя бы раскрыть
для программистской общественности информацию о них. Однако, техноло-
гическую мощь и рыночный потенциал этих двух гигантов нельзя игнориро-
вать в области разработки программ пользовательского интерфейса.
Компания Lotus планирует продавать набор средств с графическим
интерфейсом, предназначенный для работы под управлением OS/2
Presentation Manager. Он будет работать непосредственно с 1-2-3/G, ко-
торый также будет функционаровать как программа пользовательского ин-
терфейса для систем баз данных. Этот набор программных средств будет
продаваться в конце этого года. В соответствии с заявлением фирмы
Lotus, он будет содержать модули для описания баз данных, формулирова-
ния запросов и генерации отчетов, а также средства для обработки осно-
ванных на форматах транзакций и диалогового SQL.
Как и большинство других разработчиков, фирма Lotus считает, что
SQL не является языком конечного пользователя, и поэтому их программ-
ные средства не требуют знания SQL. Сложные приложения можно будет
создавать при помощи элементов набора программных средств в совокуп-
ности с обещанным фирмой Lotus языком прикладного программирования,
Lotus Extended Application Facility (LEAF).
Сервер фирмы Lotus, разработанный на основе SQLBase фирмы Gupta
Technologies, будет работать под управлением OS/2. Коммуникации с сер-
вером будут основываться на архитектуре коммуникаций Lotus Blueprint.
Поскольку это также архитектура коммуникаций 1-2-3/G, разработчики,
которые хотят работать с одним средством, будут работать и с другим
автоматически.
Компания Microsoft гораздо больше засекретила сведения о своей
программе пользовательского интерфейса, Omega. Если Microsoft продела-
ла такую же работу над своим продуктом, какую она провела по обеспече-
нию секретности его разработок, то Omega будет чем-то необычайным.
dBASE IV, Paradox, DataEase SQL, SQLWindows, XQL, Professional
ORACLE и XDB-SQL могут быть первыми в начале разработок, - но пока
Lotus и Microsoft не представят свои продукты, рынок программ пользо-
вательского интерфейса, по-видимому, будет оставаться в зародышевом
состоянии.
|