Разработка приложений в системе клиент/сервер Oracle7, страница 3

Проектировать схему нового приложения разработчик может несколькими способами. Простейший подход — это применение инструментального средства автоматизированной разработки программного обеспечения (CASE) или инстру­ментального средства проектирования базы данных, которые можно использовать для моделирования элементов схемы и отношений между ними. При завершении проектирования большинство инструментальных средств CASE генерируют DDL-сценарий, который разработчик может применять для автоматического создания новой схемы. Большинство инструментальных средств CASE позволяет также записывать определения схемы в библиотеки, благодаря чему информацию об элементах и их взаимосвязях можно использовать для автоматической генерации приложения в других инструментальных средствах. Если средство CASE или инструментарий проектирования базы данных для автоматизации создания схемы приложения использовать нельзя, то разработчик должен выполнить эту работу вручную с помощью команд SQL.

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

Распределение приложения между клиентом и сервером

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

Что такое клиентное приложение?

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

Одной из наиболее важных областей, которой следует уделить внимание при разработке клиентных приложений, является сетевой трафик. Нужно уделять самое пристальное внимание тому. как приложение посылает информацию или получает ее от сервера базы данных, и сколько данных посылается или получается. В общем случае в системах клиент/сервер сетевой ввод-вывод обычно является "узким мес­том". Чем меньше сетевого ввода-вывода генерирует приложение, тем лучше будет функционировать приложение и вся система.

Основным в устранении ненужного сетевого трафика является понимание и использование преимуществ Oracle SQL и других средств сервера базы данных Oracle7. Рассмотрим, например, приложение генерации отчета, которое для всех элементов строки бланка заказа должно выводить общую сумму. Это вычисление предусматривает два шага: умножение величины каждого элемента на стоимость одной единицы и подсчет суммы для каждого заказа. Одним из способов, с помо­щью которого приложение может выполнить эту операцию, является построчный запрос значений для каждого столбца и выполнение вычислений в приложении с использованием локальных переменных:

SELECT orderid, quantity, unitprice

FROM item, stock

WHERE item.stockid=stock.id

ORDER BY orderid

ORDERID QUANTITY UNITPRICE

-------------- -------------- ------------------

1 1 6.03

1 4 21.4

1 2 87.12

2 2 8.97

2 3 21.4

.

.

.

- - другая логика  приложения

Для всех элементов таблицы ITEM этот запрос посылает идентификатор заказа количество и цену за штуку. Если ваша компания ведет активную дeятeльнocть ,а  таблица ITEM содержит много строк заказов, то объем данных может быть очень большим.

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