SHPORA.net :: PDA

Login:
регистрация

Main
FAQ

гуманитарные науки
естественные науки
математические науки
технические науки
Search:
Title: | Body:

Сетевые базы данных. Архитектура "клиент/сервер". Структура типового интерактивного приложения. Модель FS. Модель RDA.


Остановимся на понятии сетевой структуры, положенной в основу сетевой модели данных. Рассмотрим отношение между следующими объектами: Студенческий коллектив, Студенческая группа, Комната в общежитии и Студент. Взаимосвязь между этими объектами не является иерархической, так как порожденный элемент Студент имеет два исходных - Студенческая группа и Комната в общежитии. Такие отношения, когда порожденный элемент имеет более одного исходного, описываются в виде сетевой структуры. В такой структуре любой элемент может быть связан с любым другим элементом.

Как и в случае иерархической модели, сетевую структуру можно описать в терминах исходных и порождаемых узлов, а также представить ее таким образом, чтобы порожденные узлы располагались ниже исходных. При рассмотрении некоторых сетевых структур можно говорить об уровнях. Так, рассмотренная выше сетевая структура имеет три уровня.

Рассмотрим, как в сетевой модели будут представлены взаимосвязи между объектами. В нашем примере присутствуют два вида взаимосвязей: 1:M (Учебная группа - Студент) и M:1 (Студент - Комната в общежитии). Сетевые структуры, которые имеют такие связи между исходными и порожденными узлами, порожденными и исходными узлами, относят к простым сетевым структурам. Сложной сетевой структурой называют такую структуру, в которой присутствует хотя бы одна связь типа N:M. Примером такой связи является отношение Студент - Преподаватель. Такое разделение сетевых структур обусловлено технологическими сложностями реализации взаимосвязи N:M. Причем некоторые СУБД не обрабатывают сложных сетевых структур (СЕТОР, DNS, DBMS).

База данных с сетевой структурой состоит из нескольких областей. Каждая область состоит из записей, которые состоят из полей. Объединение записей в логическую структуру возможно не только по областям, но и с помощью наборов данных. По существу набор данных - это поименованное двухуровневое дерево, которое является основой для построения многоуровневых деревьев. Сама база данных состоит из некоторой совокупности наборов данных. Набор данных - это экземпляр поименованной совокупности записей. Каждый тип набора представляет собой отношение между двумя или несколькими типами записей. Для каждого набора данных один тип записи может быть объявлен владельцем, а один или несколько типов других записей - членами набора. Набор данных, например, можно использовать для объединения записей о студентах одной группы. Тогда тип набора можно определить как состав группы с типом записи владельца. Например, Учебная группа с типом записей членов Студент: Учебная группа (запись-владельца) - Студент (совокупность записей о сту дентах в данной группе).

Набор данных имеет следующие свойства:

Набор данных есть поименованная совокупность связанных записей.

В каждом экземпляре набора данных имеется только один экземпляр записи владельца.

Экземпляр набора может содержать 0,1 или несколько записей-членов.

Набор данных считается пустым, если ни один экземпляр записи-члена не связан с соответствующим экземпляром записи владельца.

Экземпляр набора данных связан с записью владельца.

Тип набора предполагает логическую взаимосвязь 1:M между владельцем и членом набора.

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

Необходимо различать тип и экземпляр набора. Предварительно поясним различие между понятиями "тип" и "экземпляр" записи. Например, Студент является типом записи, а строка, содержащая информацию о конкретном студенте, является экземпляром типа записи Студент. Аналогичное различие существует между типом и экземпляром набора данных. Например, тип набора Состав группы, а его экземпляр содержит один экземпляр типа записи владельца Учебная группа и N экземпляров типа записи-члена Студент. Определенный экземпляр типа записи-члена не может одновременно принадлежать более чем одному экземпляру типа записи-владельца. Уникальность владельца типа набора является обязательным элементом сетевой модели данных. С этой точки зрения иерархическая модель является частным случаем сетевой модели данных.

Концепция сетевой модели данных связана с именем Ч. Бахмана, известного специалиста в области обработки данных, который оказал определяющее влияние на создание проекта DBTG CODASYL (1971 год). Сетевая модель данных является моделью объектов-связей, где допускаются только бинарные связи типа "многие-к-одному", что позволяет использовать для представления данных простую модель ориентированных графов. В некоторых определениях сетевой модели допускаются связи типа "многие-ко-многим", но требование бинарности связи остается в силе.

Для сетевой модели не существует общепринятой терминологии. Далее используется сложившая к настоящему времени группа понятий и терминов, которые используются для описания элементов сетевой модели.

Для моделирования представления данных в сетевой модели используются следующие элементы данных:

простое поле (элемент данных, итем) - наименьшая единица структуры данных, имеет уникальное имя, размер и тип: (табельный номер служащего);

множественное поле (агрегат данных, периодическая группа) - поименованная совокупность простых полей или агрегатов; (простой агрегат: Дата = (день, месяц, год)), (составной агрегат: Организация = (наименование, адрес = (почтовый_индекс, город, улица, дома_номер))), (повторяющаяся группа: зарплата (12) = (ФИО, оклад));

запись (группа данных) - поименованный агрегат, который не входит в состав никакого другого агрегата и представляет сущность ПО БД (тип записи);

групповое отношение (связь, набор) - иерархическое отношение между различными записями (графическое представление группового отношения в сетевой модели называется диаграммой Бахмана);

БД - совокупность записей различного типа, объединенная системой групповых отношений различной направленности.

Элементы данных сетевой модели допускают обработку следующими операциями, множество которых составляет язык манипулирования данными:

ЗАПОМНИТЬ - заносит экземпляр записи в БД и включает его в существующее отношение;

ПРИСОЕДИНИТЬ - связывает существующие записи в групповое отношение и определяет подчинение записей (родитель-потомок);

ПЕРЕКЛЮЧИТЬ - связывает экземпляр подчиненной записи с другим экземпляром записи-родителя;

МОДИФИЦИРОВАТЬ - изменяет значение полей в существующих записях БД, перед выполнением этой операции запись должна быть извлечена из БД;

НАЙТИ - находит записи из БД согласно критерию поиска;

УДАЛИТЬ - удаляет из БД ненужную запись;

ОТДЕЛИТЬ - разрывает существующую связь между записями в групповом отношении;

ПОЛУЧИТЬ - извлекает записи из БД.

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

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

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

Клиентское приложение является частью системы, которая обеспечивает интерфейс приложения с серверов баз данных. Логика приложения может быть полностью реализована на клиентской части системы, а обработку данных забирает на себя сервер баз данных.

Сеть и коммуникационное программное обеспечение являются средствами передачи данных. Реализация этой компоненты модели обеспечивает прозрачность сервера баз данных по отношению к клиенту.



Рис. 1.10. Преимущества и недостатки модели вычислений "клиент-сервер"

Несмотря на то, что модель вычислений "клиент-сервер" является высокопроизводительной распределенной моделью вычислений, она, помимо очевидных преимуществ, имеет присущие ей недостатки (рис. 1.10). Кроме того, другие модели вычислений также продолжают развиваться, обеспечивая приемлемые значения отношения "цена-производительность".

Существует несколько способов реализации модели «клиент-сервер»:

• данные размешаются на одном сервере базы данных;

• данные распределяются на нескольких серверах базы данных, в зависимости от местонахождения пользователей и типа данных.

Возможны два варианта построения распределенной системы:

• периодическая синхронизация серверов через ГВС (обеспечит единообразие данных на всех серверах);

• использование хранилища данных (обеспечит хранение большого объема информации и передачу часто вызываемых данных в промежуточные системы, которые, в свою очередь, преобразуют их в удобный формат; благодаря этому уменьшается нагрузка на главный сервер).

Один из основных принципов технологии «клиент — сервер» заключается в разделении функций стандартного интерактивного (диалогового) приложения на четыре группы:

1. Функции ввода и отображения данных.

2. Объединяет чисто прикладные функции, характерные для данной предметной области (например, для банковской системы — открытие счета, перевод денег с одного счета на другой и т.д.).

3. Фундаментальные функции хранения и управления информационно-вычислительными ресурсами (базами данных, файловыми системами и т.д.).

4. Служебные функции, осуществляющие связь между функциями первых трех групп.

В соответствии с этим в любом приложении выделяются следующие логические компоненты:

• компонент представления, реализующий функции первой группы;

• прикладной компонент, поддерживающий функции второй группы;

• компонент доступа к информационным ресурсам, поддерживающий функции третьей группы, а также вводятся и уточняются соглашения о способах их взаимодействия (протокол взаимодействия).

Различия в реализации технологии «клиент — сервер» определяются следующими факторами:

• виды программного обеспечения, в которые интегрирован каждый из этих компонентов;

• механизмы программного обеспечения, используемые для реализации функций всех трех групп;

• способы распределения логических компонентов между компьютерами в сети;

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

Выделяются четыре подхода, реализованные в следующих технологиях:

• файловый сервер (File Server — FS);

• доступ к удаленным данным (Remote Data Access — RDA);

• сервер баз данных (Data Base Server — DBS);

• сервер приложений (Application Server — AS).

Файловый сервер (FS). Этот подход является базовым для локальных сетей ПК. Один из компьютеров в сети назначается файловым сервером и предоставляет другим компьютерам услуги по обработке файлов. Файловый сервер работает под управлением сетевой операционной системы и играет роль компонента доступа к информационным ресурсам (т.е. к файлам). На других ПК в сети функционирует приложение, в кодах которого совмещены компонент представления и прикладной компонент.

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

К недостаткам данной технологии относится:

• низкий сетевой трафик (передача множества файлов, необходимых приложению),

• небольшое количество операций манипуляции с данными (файлами),

• отсутствие адекватных средств безопасности доступа к данным (защита только на уровне файловой системы) и т.д.

Доступ к удаленным данным (RDA) существенно отличается от FS методом доступа к информационным ресурсам. В данной технологии программы компонента представления и прикладного компонента совмещены и выполняются на компьютере-клиенте. Доступ к информационным ресурсам обеспечивается операторами специального языка (например, языка запросов SQL, если речь идет о базах данных) или вызовами функций специальной библиотеки (если имеется специальный интерфейс прикладного программирования — API).

Запросы к информационным ресурсам направляются по сети удаленному компьютеру, который обрабатывает и выполняет их, возвращая клиенту блоки данных.

Достоинства RDA

• унификация интерфейса «клиент — сервер» в виде языка запросов;

• широкий выбор средств разработки приложений.

Недостатки

• Существенная загрузка сети при взаимодействии клиента и сервера посредством запросов;

• Невозможность администрирования приложений в RDA, так как в одной программе совмещаются различные по своей природе функции (представления и прикладные).

Преимущества технологии «клиент-сервер»

Технология «клиент-сервер» создает мощную среду, которая дает организациям множество реальных преимуществ. В частности, хорошо спланированная клиент-серверная система обеспечивает относительно недорогую платформу, которая обладает, в то же время, вычислительными возможностями мэйнфреймов и легко настраивается для выполнения конкретных задач. Кроме того, при клиент-серверной обработке резко уменьшается сетевой трафик, так как через сеть посылаются только результаты запросов.

Груз файловых операций ложится в основном на компьютер-сервер, который намного мощнее клиентов и способен поэтому лучше обслуживать запросы. Для сетей с интенсивным трафиком это означает, что нагрузка будет распределена более равномерно, чем в традиционных сетях на основе сервера.

Сеть модели «клиент-сервер» уменьшает потребность компьютеров-клиентов в оперативной памяти, поскольку вся работа с файлами выполняется на сервере. Серверы в клиент-серверных системах способны хранить большое количество данных. Благодаря этому на компьютерах-клиентах освобождается значительный объем дискового пространства для других приложений.

Наконец, управление всей системой, включая контроль за ее безопасностью, становится намного проще, так как все файлы и данные централизованно размещаются на сервере или на небольшом числе серверов. Упрощается также резервное копирование.