Реляционные базы данных
В основе реляционной модели данных лежит мощный математический аппарат, называемый реляционной алгеброй. В терминологии реляционных баз данных вместо понятия файлов используется термин таблица, строки таблиц называют записями, столбцы таблиц идентифицируют поля этих записей. Реляционный подход представляет собой основную тенденцию сегодняшнего рынка, и реляционная модель - единственная наиболее существенная разработка в истории развития баз данных. К дореляционным СУБД можно отнести три категории: системы инвертированных списков, иерархические и сетевые.
Первые реляционные продукты начали появляться в конце 1970-х - начале 1980-х годов. Несколько позже исследования велись в направлении так называемых "постреляционных" систем, большинство из которых основаны на совместимых снизу вверх расширениях оригинального реляционного подхода. Вот некоторые из них: дедуктивные, экспертные, объектно-ориентированные и семантические СУБД.
Архитектура клиент-сервер
Исторически первым способом организации вычислений стала централизованная обработка информации. Все данные хранились и обрабатывались на центральном компьютере - мэйнфрейме. К мэйнфрейму подключались терминалы, функциональные возможности которых ограничивались лишь выводом результатов и передачей кодов нажатых клавиш на центральный компьютер. Чем больше терминалов было подключено, тем более мощный компьютер требовался и тем дороже обходились эти вычисления. Конечно, это был экстенсивный путь развития распределенной обработки информации.
Современные приложения интенсивной работы с данными состоят из четырех основных компонентов: базы данных, логики транзакций, логики приложения и интерфейса пользователя. В среде мейнфреймов все эти компоненты размещались в одном месте, как и надлежит быть в высокоцентрализованной среде.
Для удовлетворения новых требований, связанных с растущей децентрализацией среды, была разработана архитектура "клиент-сервер". При использовании этой архитектуры, как и при централизованной обработке информации также необходимо наличие центрального компьютера - сервера. Но его функции иные, чем у мэйнфрейма. Клиентские компьютеры запрашивают у сервера необходимые данные, выполняют их обработку и отсылают обратно. Приложения, написанные для архитектуры "клиент-сервер", обычно состоят из раздельных серверных и клиентских компонентов. Эта технология стала доминирующей в мировоззрении программистов 90-х годов. Большинство современных сетевых продуктов, имеющих коммерческий успех, созданы с использованием архитектуры "клиент-сервер". Рассмотрим термины, употребляемые при работе с архитектурой "клиент-сервер".
Сервером (server) называется компьютер, предоставляющий доступ к своим ресурсам для других компьютеров, называемых клиентами (client). Клиент может быть одного из двух типов: толстый клиент (thick client) или тонкий клиент (thin client). Толстый клиент характеризуется тем, что он содержит средства доступа к базе данных, средства обработки и отображения информации. Каждое клиентское приложение копирует себе все необходимые данные, выполняет их обработку и отсылает результат обратно на сервер. Функции тонкого клиента сводятся в основном к выводу результатов обработки данных, осуществляемой на сервере. Клиент лишь отсылает серверу список задач, которые необходимо выполнить, а в ответ принимает обработанные данные. Все правила и логика обработки данных хранятся на сервере и лишь вызываются клиентом. Такой подход позволяет облегчить изменения алгоритмов обработки данных, так как при этом не нужно модифицировать клиентское программное обеспечение, а достаточно изменить только хранимую процедуру на сервере.
В общем случае, клиент и сервер могут располагаться на одном компьютере. Использование системы управления базами данных, построенной по архитектуре "клиент-сервер", дает следующие преимущества:
1. Централизованное хранение данных. Вам не потребуется заботиться об обновлении данных на компьютерах клиентов. Вы работаете с информацией централизованно, изменяя и обновляя ее только в одном месте - на сервере баз данных.
2. Уменьшение сетевого трафика. Раньше информация хранилась на файловых серверах. Клиентам приходилось выкачивать всю базу данных, производить с ней требуемые действия и потом сохранять обновленную копию на сервере. В результате сеть была перегружена бесконечными пересылками. Теперь же клиент запрашивает и получает только ту информацию, которая ему необходима. Это позволяет эффективно работать с базами данных больших объемов.
3. Более удобное администрирование баз данных. Выполнение задач по управлению упрощается, поскольку вся информация располагается в единственном месте.
Необходимо ясно представлять, что клиент и сервер - термины, означающие не только роль компьютера в сети. Приложения также могут играть роли клиентов и серверов. Клиентское приложение инициирует запрос, а серверное приложение обрабатывает его и возвращает результат работы клиенту. Для осуществления этого взаимодействия необходим механизм, позволяющий организовать доступ клиента к серверу. Этот механизм реализуется через специальные интерфейсы программирования (Application Programming Interface, API) доступа к базам данных.
