Н. 3, Епманова. C++Builder 3.0, архитектура "клиент/сервер" и Internet
Триггер можно создать, например, с помощью утилиты SQL Plus (или с помощью закладки Enter SQL в SQL Explorer), и с помощью SQL Explorer можно просматривать его текст (рис. 4.13).
Рис. 4.13. Просмотр текста созданного триггера с помощью SQL Explorer
В этом случае компонент TUpdateSQL уже не требуется, но при этом нужно добавить в приложение код, присваивающий значение полю TAG, так как в противном случае клиентское приложение не допустит отправки запроса на сервер:
void _fastcall TDataModule2::Table1BeforeInsert(TDataSet
*DataSet)
{
Table1TAG->Value=10;
}
4.6     Некоторые выводы
Итак, в результате мы имеем базу данных, содержащую семь таблиц и ряд других объектов (индексов, триггеров, последовательностей) для реализации правил ссылочной целостности, а также три автоматизированных рабочих места. Отметим, что, несмотря на наличие некоторых недостатков (все-таки это лишь учебный пример), такая реализация информационной
78
О проектировании данных
системы является гораздо более эффективной, чем реализация в виде приложения, использующего одну-единственную таблицу, запись которой идентична содержанию статистического талона (типа изображенного на рис. 4.1).
Другими словами, при использовании основополагающих принципов проектирования данных в созданных информационных системах исключается повторяемость данных и соответственно уменьшается возможность ошибок, а также многократно экономится время, затрачиваемое на ввод данных. Помимо этого более просто осуществляется разделение информационной системы на автоматизированные рабочие места в соответствии с должностными функциями пользователей. Все это наглядно подтверждает необходимость начинать любую, даже самую простую, информационную систему с создания логической и физической моделей данных и лишь потом приступать к созданию собственно клиентских приложений.
79