Основы реляционных БД
Информационное приложение- прикладная программная подсистема, ориентированная на сбор, хранение, поиск и обработку текстовой и/или фактографической информации. Подавляющее большинство информационных приложений работает в режиме диалога с пользователем. В общем случае типовые программные компоненты информационного приложения включают: диалоговый ввод-вывод, логику диалога, прикладную логику обработки данных, логику управления данными, операции манипулирования файлами и/или базами данных. Для сетевых информационных приложений важным элементом является коммуникационный сервис, обеспечивающий взаимодействие узлов сети при совместном решении информационной задачи. Значительная часть возможностей приложения закладывается в системном программном обеспечении, в частности в системах управления базами данных (СУБД), в библиотеках и конструкциях инструментальных средств разработки. Однако остается часть приложения, специфичная для конкретной предметной области. Основными объектами разработки являются логика диалога, логика обработки и логика управления данными. Часто преобладающее значение имеет диалог, пронизывающий все приложение, поэтому многие инструменты ориентированы на то, чтобы упростить и ускорить создание диалога в приложении.
Несмотря на манипуляционный характер процесса разработки, промежуточное представление приложения оформляется в виде языкового описания, что позволяет в дальнейшем с помощью языка программирования начинять быстро разработанный макет содержательной обработкой данных.
Помимо программной составляющей приложения, существенную роль играет информационная составляющая, которая задает структуру, атрибутику и типизацию данных, а также ограничения целостности для баз данных. Информационная составляющая тесно связана с логикой управления данными. Вот почему средства автоматизации проектирования приложений отдают приоритет информационной модели, из которой выводится все остальное, включая диалог.
4.1.1. Файл-серверные приложения и "настольные" СУБД
Архитектура на основе файл- сервера сосредотачивает почти все компоненты приложения на клиенте. Файл-сервер только извлекает данные из файлов и передает по сети, поэтому дополнительные пользователи и приложения добавляют лишь незначительную нагрузку на процессор сервера. Каждый новый клиент добавляет сети вычислительную мощность.
Однако, такая архитектура имеет два основных недостатка:
- Значительный сетевой трафик (некоторые запросы к БД могут перекачивать всю БД клиенту, загружая сеть и имея непредсказуемое время реакции).
- Проблема "жирного клиента" (Windows-интерфейс, коды приложения и СУБД могут перегрузить даже мощный ПК).
Первый недостаток особенно сказывается при организации удаленного доступа к базам данных на файл-сервере через низкоскоростные каналы связи. "Настольные" СУБД, реализующие сервис доступа к данным, работают на клиентском рабочем месте. Поиск, фильтрация и агрегирование данных осуществляется на клиенте.
Основой разработки файл-серверных приложений для локальных сетей ПК является инструментальное окружение различных "персональных" СУБД: FoxPro, Clipper, Paradox, Clarion, dBase, Access и др. Такие инструменты, как правило, реализованы в виде диалоговой интегрированной среды, предоставляющей три уровня доступа:
- программирование и создание приложений на языке, сочетающем возможности языка 3GL с некоторыми возможностями языков четвертого поколения 4GL;
- создание и ведение структуры БД и индексов, а также интерактивная генерация макетного приложения и его компонентов (меню, форм или окон, отчетов, запросов и программных модулей);
- использование диалоговой среды и генераторов конечными пользователями для создания, ведения и просмотра БД, а также формирования несложных запросов и отчетов.
Диалоговые среды поддерживают как текстовый для DOS, так и графический для Windows интерфейс пользователя. Внедрение графического интерфейса привело к развитию объектных свойств инструментов, средств визуальной генерации программ и событийного механизма приложений.
База данных для этих СУБД представляет собой совокупность файлов данных и файлов индексов, а не единое информационное пространство, что усложняет ее сопровождение. Ни одна из традиционных СУБД для ПК не имеет средств ограничения целостности, не отвечают требованиям сохранности данных, в частности, не поддерживают транзакции, не ведут словарь данных.
Среди инструментальных средств СУБД для ПК преобладают интерпретирующие системы, хотя многие предоставляют и альтернативную возможность создания загрузочных модулей приложений.
Однако СУБД для ПК привлекают простотой использования и доступностью, поэтому файл-серверные приложения еще будут использоваться для рабочих групп.
В настоящее время появились новые визуальные объектно-ориентированные версии инструментальных средств и СУБД на ПК (MSAccess, VisualFoxPro, CA-VisualObjects и VisualdBase). Эти продукты направлены сугубо на создание Windows-приложений и содержат средства объектно-ориентированного диалога, событийно-управляемого программирования, визуального конструирования интерфейса пользователя и многие другие черты, присущие системам программирования 4GL и средствам быстрой разработки RAD. Кроме того, они поддерживают структурный язык запросов SQL, который характерен для приложений клиент-сервер.