
- •1. Основные понятия
- •1.1. Архитектура "клиент-сервер"
- •1.2. Сервер и удаленная бд
- •1.3. Средства работы с удаленными бд
- •2. Сервер InterBase
- •2.1. Бизнес-правила
- •2.2. Организация данных
- •2.3. Запуск сервера
- •2.4. Особенности приложения
- •3. Соединение с базой данных
- •3.1. Соединение с базой из программы ibConsole
- •3.2. Компонент Database
- •If Databasel.InTransaction then Databasel.Commit;
- •3.3. Компонент Session
- •Var Params: tStringList;
- •3.4. Соединение с базой данных из приложения
Лекция 9
Удаленные базы данных
Введение
1. Основные понятия
1.1. Архитектура "клиент-сервер"
1.2. Сервер и удаленная БД
1.3. Средства работы с удаленными БД
2. Сервер InterBase
2.1. Бизнес-правила
2.2. Организация данных
2.3. Запуск сервера
2.4. Особенности приложения
3. Соединение с базой данных
3.1. Соединение с базой из программы IBConsole
3.2. Компонент Database
3.3. Компонент Session
3.4. Соединение с базой данных из приложения
Введение
Ранее были рассмотрены локальные базы данных, когда и БД, и взаимодействующее с ней приложение располагаются на одном компьютере.
В данной лекции мы рассмотрим некоторые особенности работы с удаленными БД, используемыми в сети, где приложение и БД располагаются на разных компьютерах.
1. Основные понятия
В принципе локальную БД также можно использовать для коллективного доступа, т. е. в сетевом варианте. В этом случае файлы базы данных и приложение для работы с ней располагаются на сервере сети. Пользователь запускает со своего компьютера находящееся на сервере приложение, при этом у него запускается копия приложения. Можно установить приложение и непосредственно на компьютере пользователя, в этом случае приложению должно быть известно местонахождение общей БД, заданное, например, через псевдоним. Подобный сетевой вариант использования локальной БД соответствует архитектуре "файл-сервер".
Достоинствами сетевой архитектуры "файл-сервер" являются простота разработки и эксплуатации БД и приложения. Разработчик фактически создает локальную БД и приложение, которые затем просто используются в сетевом варианте. При этом не требуется дополнительное программное обеспечение, связанное с организацией работы с БД.
Однако архитектуре "файл-сервер" свойственны и существенные недостатки.
Для работы с данными используется навигационный способ доступа, при этом по сети циркулируют большие объемы данных. В результате сеть оказывается перегруженной, что является причиной ее низкого быстродействия и плохой производительности при работе с БД.
Требуется синхронизация работы отдельных пользователей, связанная с блокировкой в таблицах тех записей, которые редактирует другой пользователь.
Приложения не только обрабатывают данные, но и управляют самой базой данных. В связи с тем, что управление БД осуществляется с разных компьютеров, затрудняются организация контроля доступа, соблюдение конфиденциальности и поддержание целостности БД.
Из-за этих недостатков архитектура "файл-сервер", как правило, используется в небольших се^ях. Для сетей с большим количеством пользователей предпочтительным вариантом (а порой и единственно возможным) является архитектура "клиент-сервер".
1.1. Архитектура "клиент-сервер"
В сетевой архитектуре "клиент-сервер" БД размещается на компьютере-сервере сети (сервере или удаленном сервере) и называется также удаленной БД. Приложение, осуществляющее работу с этой БД, находится на компьютере пользователя. Приложение пользователя является клиентом, его также называют приложением-клиентом.
Клиент и сервер взаимодействуют следующим образом. Клиент формирует и отсылает запрос (SQL-запрос) серверу, на котором размещена БД. Сервер выполняет запрос и выдает клиенту в качестве результатов требуемые данные.
Таким образом, в архитектуре "клиент-сервер" клиент посылает запрос и получает только те данные, которые ему действительно нужны. Вся обработка запроса выполняется на удаленном сервере. К достоинствам такой архитектуры относятся следующие факторы.
Для работы с данными используется реляционный способ доступа, что снижает нагрузку на сеть.
Приложения напрямую не управляют базой, управлением занимается только сервер. В связи с этим можно обеспечить высокую степень защиты данных.
В приложении отсутствует код, связанный с управлением БД, поэтому приложения упрощаются.
Отметим, что сервером называют не только компьютер, но также и специальную программу, которая управляет БД. Так как в основе организации обмена данными между клиентом и сервером лежит язык SQL, то такую программу еще называют SQL-сервером, а БД — базой данных SQL. В широком смысле слова под сервером понимают компьютер, программу и саму базу данных. SQL-серверами являются промышленные СУБД, такие как InterBase, Oracle, Informix, Sybase, DB2, Microsoft SQL Server и др. Каждый из серверов имеет свои преимущества и особенности, связанные, например, со структурой БД и реализацией языка SQL, которые необходимо учитывать при разработке приложения. Далее мы будем понимать под сервером программу (т. е. SQL-сервер), а установленную на компьютере-сервере базу данных будем называть удаленной БД.
При работе в архитектуре "клиент-сервер" приложение должно:
выполнять соединение с сервером и отключение от него;
формировать и отсылать запрос серверу, получая от него результаты выполнения запроса;
выполнять обработку полученных данных.
При этом обработка данных не имеет принципиальных отличий по сравнению с обработкой данных в локальных БД.