Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 700276.doc
Скачиваний:
11
Добавлен:
01.05.2022
Размер:
1.94 Mб
Скачать

1.2. Структура базы данных

Понятия архитектуры и структуры является одним из важнейших в теории БД и служит основой для понимания возможностей современных СУБД. Различают три уровня архитектуры БД:

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

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

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

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

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

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

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

Здесь возникает необходимость ввести понятие архитектура клиент/сервер, которая предоставляет настоящую свободу выбора и согласования различных типов компонентов для клиента, сервера и всех промежуточных звеньев. Правда, это ведет к усложнению системы.

Что же означает термин "архитектура клиент/сервер"? Основой такой системы является сервер БД, представляющий собой приложение, осуществляющее комплекс действий по управлению данными - выполнение запросов, хранение и резервное копирование данных, отслеживание целостности, проверку прав пользователей, ведение журнала транзакций. В качестве рабочего места (клиента) при этом может быть использован обычный персональный компьютер, что позволяет не отказываться от привычной рабочей среды.

Таким образом, информационная система построенная по принципу клиент/сервер, состоит обычно из трех основных компонентов:

- сервер БД, который и является собственно СУБД и управляет хранением данных, доступом, защитой, резервным копированием, отслеживает целостность данных и выполняет запросы клиента;

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

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

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

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

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

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

В системах, построенных по принципу клиент/сервер, преобладают два типа архитектуры процессоров серверов: RISC и Intel. RISC представляет собой традиционный вариант выбора для Unix-серверов. Вообще говоря, RISC-серверы по производительности не намного превосходят серверы на базе Intel-процессоров, но они стоят от 15 до 50 тысяч долларов.

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

С учетом этого Unix уже уступает место Windows NT. в котором широкие возможности Unix сочетаются с простотой использования Windows.

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

Упрощенно архитектуру клиент/сервер можно представить в виде схемы, приведенной на рис. 1.2.

Рис. 1.2. Упрощенная схема СУБД в архитектуре клиент/сервер

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

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

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

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

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

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

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

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