Локальные БД
Локальная (централизованная) база данных - это база данных, которая полностью располагается на одном ПК = Централизованная база данных хранится в памяти одной вычислительной системы. Это может быть компьютер пользователя или сервер. Соединение с файлом базы данных происходит через спец драйвер или напрямую. Если эта вычислительная система является компонентом компьютерной сети, то возможен доступ к такой базе с других компьютеров, подключенных к сети.
Локальные базы данных с локальным доступом не обеспечивают одновременный доступ к информации нескольким пользователям.
Системы централизованных баз данных с удаленным доступом предполагают различные архитектуры подобных систем. Архитектура файл-сервер систем баз данных с сетевым доступом предполагает выделение одного из компьютеров сети в качестве центрального сервера файлов, на котором хранится совместно используемая централизованная база данных. Все другие компьютеры сети выполняют функции рабочих станций, с помощью которых поддерживается доступ пользователей к базе данных. Файлы базы данных в соответствии с пользовательскими запросами передаются на рабочие станции, где в основном и производится обработка. При большой интенсивности доступа к одним и тем же данным производительность такой информационной системы падает.
В архитектуре клиент-сервер сервер базы данных, помимо хранения централизованной базы данных, должен обеспечивать выполнение основного объема обработки данных. Запрос на данные, формируется рабочей станцией и передается на сервер. Процесс обработки и выполнения запроса происходит на сервере. Результат выполнения запроса (извлеченные из базы данные,
соответствующие запросу) транспортируется по сети от сервера к клиенту (рабочей станции).
Распределенные БД
Распределенная база данных может размещаться на нескольких ПК, чаще всего в роли таких ПК выступают серверы
Система распределенных баз данных состоит из набора узлов (site), связанных коммуникационной сетью, в которой:
- а) каждый узел — это полноценная СУБД сама по себе, но
- б) узлы взаимодействуют между собой таким образом, что пользователь любого из них может получить доступ к любым данным в сети так, как будто они находятся на его собственном узле.
Из этого определения следует, что так называемая распределенная база данных в действительности представляет собой виртуальную базу данных, компоненты которой физически хранятся в нескольких различных реальных базах данных на нескольких различных узлах (в сущности, являясь логическим объединением этих реальных баз данных).
Каждый узел сам по себе является системой баз данных. Иначе говоря, на каждом узле есть собственные локальные реальные базы данных, собственные локальные пользователи, собственные локальные СУБД и программное обеспечение управления транзакциями (включая собственное программное обеспечение блокировки, ведения журналов, восстановления и т.д.) и собственный локальный диспетчер передачи данных. В частности, любой пользователь может выполнять операции над данными на своем локальном узле точно так же, как если бы этот узел вовсе не входил в распределенную систему (по крайней мере, так должно быть). Всю распределенную систему баз данных можно рассматривать как некоторое партнерство между отдельными локальными СУБД на отдельных локальных узлах. Новый программный компонент на каждом узле — логическое расширение локальной СУБД — предоставляет необходимые функциональные возможности для организации подобного партнерства. Именно этот компонент вместе с существующими СУБД составляет то, что обычно называется распределенной системой управления базами данных (РСУБД).
Зачем нужны распределенные базы данных? Основная причина заключается в том,
что сами предприятия обычно уже распределены, по крайней мере, логически, т.е. разбиты на подразделения, отделы, рабочие группы и т.д. Очень часто они распределены и физически, т.е. разделены на отдельно расположенные заводы, фабрики, лаборатории и т.д.
Из этого следует, что данные также обычно распределены, поскольку каждая организационная единица на предприятии создает и обрабатывает собственные данные, относящиеся к ее деятельности. Таким образом, информация предприятия разбивается на
отдельные автономные части, которые иногда называют островами информации. А распределенная система обеспечивает мосты для их соединения в единое целое. Иначе говоря, распределенная система позволяет структуре базы данных отображать структуру предприятия — локальные данные могут храниться локально, в соответствии с логической принадлежностью, тогда как к удаленным данным доступ может осуществляться по мере необходимости.
Наиболее важным преимуществом распределенных систем является отражение ими структуры предприятия. Безусловно, существует множество других преимуществ. Однако следует отметить, что подобным системам свойствен и ряд недостатков, наиболее существенным из которых является повышенная сложность распределенных систем, по крайней мере, с технической точки зрения. В идеальном случае эта сложность должна быть проблемой реализации, а не проблемой пользователя, но вполне возможно, что на практике некоторые ее аспекты все-таки будут видны конечным пользователям. Для того чтобы скрыть от пользователя сложность системы, требуется весьма тщательная ее проработка.
Фундаментальный принцип создания распределенных баз данных:
Для пользователя распределенная система должна выглядеть так же, как нераспределенная система.
Другими словами, пользователи распределенной системы должны иметь возможность действовать так, как если бы система не была распределена. Все проблемы распределенных систем относятся или должны относиться к внутренним проблемам (или проблемам
реализации), а не к внешним проблемам (или проблемам пользовательского уровня).
Фундаментальный принцип имеет следствием определенные дополнительные цели:
- 1. Локальная независимость.
- 2. Отсутствие зависимости от центрального узла.
- 3. Непрерывное функционирование.
- 4. Независимость от расположения.
- 5. Независимость от фрагментации.
- 6. Независимость от репликации.
- 7. Обработка распределенных запросов.
- 8. Управление распределенными транзакциями.
- 9. Аппаратная независимость.
- 10. Независимость от операционной системы.
- 11. Независимость от сети.
- 12. Независимость от типа СУБД.
Распределенная обработка данных реализуется с помощью технологии "клиент-сервер". Система "клиент/сервер" — это распределенная система, в которой одни узлы — клиенты, а другие — серверы; все данные размещены на узлах, которые являются серверами; все приложения выполняются на узлах-клиентах и "швы видны пользователю" (полная локальная независимость не предоставляется).
Термин "клиент/сервер" определяет архитектуру, или логическое разделение обязанностей. Клиент — это приложение, которое называют также интерфейсной частью (front end), а сервер — прикладной частью (back end) или СУБД. Однако именно потому, что всю систему можно так четко разделить на две части, появилась возможность эксплуатации ее частей на разных компьютерах. И эта возможность по многим причинам оказалась настолько привлекательной, что под понятием система "клиент/сервер" на практике подразумевается исключительно тот случай, когда клиент и сервер действительно размещаются на разных компьютерах.
Возможны несколько вариантов:
Несколько клиентов могут совместно использовать один и тот же сервер (фактически это обычная практика).
Отдельный клиент может иметь доступ к нескольким серверам. Этот вариант, в свою очередь, подразделяется на два случая:
а) Клиент ограничен доступом за один раз лишь к одному серверу, т.е. каждый отдельный запрос к базе данных должен быть направлен только на один сервер. Невозможно в пределах одного запроса получить данные с двух или нескольких различных серверов. Более того, пользователь должен знать, на каком именно сервере хранятся те или иные части данных.
б) Клиент может иметь одновременный доступ к нескольким серверам, т.е. отдельный запрос может объединять данные с нескольких серверов. А это означает, что несколько серверов представляются клиенту так, как будто это на самом деле один сервер. Пользователь не должен знать, какие части данных хранятся на каждом сервере.
Существует несколько стандартов, имеющих отношение к системам "клиент/сервер":
Определенные функции для поддержки систем "клиент/сервер" включены в стандарт языка SQL.
Также есть стандарт ISO для удаленного доступа к данным (Remote Data Access — RDA). Задача спецификации RDA состоит в определении форматов и протоколов взаимодействия в среде "клиент/сервер". Подразумевается, что клиент формулирует запрос к базе данных в стандартной форме языка SQL (по существу, применяется подмножество стандарта SQL), а сервер поддерживает стандартный каталог (также в основном соответствующий требованиям стандарта SQL). Кроме того, определены конкретные форматы представления для сообщений, передаваемых между клиентом и сервером (запросы SQL, данные и результаты, диагностическая информация).
Третий — стандарт архитектуры распределенных реляционных баз данных (Distributed Relational Database Architecture — DRDA), предложенный компанией IBM (он является фактически признанным, а не официально утвержденным стандартом).
Стандарты DRDA и RDA имеют аналогичное назначение, но стандарт DRDA отличается от стандарта RDA во многих важных отношениях. В частности, многие характеристики стандарта DRDA обусловлены его происхождением (он разработан компанией IBM). Например, в стандарте DRDA клиент не обязательно должен использовать стандартную версию языка SQL, поэтому разрешено применение любых произвольных диалектов языка SQL. Следствием этого, возможно, является повышение производительности, поскольку клиенту разрешается использовать некоторые специфические возможности сервера. Но, с другой стороны, этот подход снижает возможности переносимости, поскольку подобные специфические функции не являются скрытыми от клиента, т.е. клиенту известно, с каким типом сервера он работает. Аналогично этому, в стандарте DRDA не подразумевается наличие какой-либо конкретной структуры каталога сервера. Форматы и протоколы DRDA существенно отличаются от форматов стандарта RDA. По существу, стандарт DRDA базируется на собственной архитектуре и собственных стандартах IBM, в то время
как стандарт RDA основывается на международных стандартах, независимых от конкретных поставщиков.
Дейт К. Дж. Введение в системы баз данных = Introduction to Database Systems. — 8-е изд. — М.: «Вильямс», 2006. — 1328 с.