Иерархическая и сетевая модели данных
Иерархическая модель схематично изображается виде дерева. Эта модель представляет собой совокупность элементов, расположенных в порядке их подчинения от общего к частному и образующих перевернутое дерево. Иерархическое дерево имеет единственную вершину неподчиненную никакой другой вершине и находящуюся на самом верхнем уровне (IBM). Достоинства иерархической модели данных: ─ простота модели (иерархия баз данных при использовании иерархической модели напоминает структуру компании или генеалогическое дерево); ─ использование отношений предок-потомок; ─ быстродействие. В СУБД, реализованной на основе иерархической модели данных, отношение предок-потомок реализуется в виде физических указателей из одной записи на другую, вследствие чего перемещение по базе данных происходит очень быстро. Иерархические модели данных идеально подходят для большого числа транзакций (управление банкоматами, проверка номеров кредитных карт). 2. Сетевая модель данных. Эта модель использует ту же терминологию, что и иерархическая модель. Единственное различие между иерархической и сетевой моделями заключается в том, что в сетевой модели каждый элемент данных может быть связан с любым другим элементом. Если структура данных оказывается сложнее, чем традиционная иерархия, простота организации иерархической базы данных становится ее существенным недостатком. 3. Реляционная модель данных. История развития. Основные понятия (тип данных, домен, отношение, кортеж, атрибут, ключ). 3. Реляционная модель данных. Основная идея реляционной модели данных заключается в том, чтобы представить любой набор данных в виде двумерной таблицы. В простейшем случае реляционная модель данных описывает единственную двумерную таблицу, но чаще всего эта модель описывает структуру и взаимоотношения между несколькими различными таблицами. Развитие реляционных баз данных началось в 60-х гг., когда появились первые работы, в которых обсуждались возможности использования при проектировании баз данных привычных и естественных способов представления данных так называемых табличных датологических моделей. Теория реляционных баз данных, разработанная в 70-х гг. в США доктором Коддом, имеет под собой мощную математическую основу описывающую правила эффективной организации данных. Разработанная Коддом теоретическая база стала основой для разработки теории проектирования баз данных. Кодд предложил использовать для обработки данных аппарат теории множеств (объединение, пересечение, разность, декартово произведение). Кодд доказал, что любой набор данных можно представить в виде двумерных таблиц особого вида известных в математике как отношения. От английского слова relation произошло название «реляционная модель данных». Термин «отношение реляционной модели данных» обозначает таблицу. Наименьшая единица данных, которой оперирует реляционная модель данных, - это отдельное атомарное для данной предметной области значение данных, которое не может быть разложено на более простые составляющие. Так в одной предметной области составляющие адреса могут рассматриваться как различные значения, а в другой как единое целое. Множество атомарных значений одного и того же типа образуют домен. В самом общем виде домен определяется заданием некоторого базового типа данных, к которому относятся элементы домена, и произвольного логического выражения, применяемого к элементам данных. В простейшем случае домен определяется как допустимое потенциальное множество значений одного типа. Например, совокупность дат рождений всех сотрудников составляет домен дат рождения, а имена – домен имен сотрудников. Домен дат рождений имеет тип данных, позволяющий хранить информацию о моментах времени, а домен имен сотрудников должен иметь символьный тип данных. В один домен могут входить значения из нескольких колонок, объединенных помимо одинакового типа данных еще и логически. Если два значения берутся из одного и того же домена, то можно выполнить сравнение этих двух значений. В большинстве систем управления реляционных баз данных понятие домена не реализовано. Каждый элемент данных в отношении может быть определен с указанием его адреса в формате А[i, j], где А – элемент данных, i – строка отношения, j – номер атрибута отношения. Количество атрибутов в отношении определяет его порядок. Множество значений А[i, j] при постоянном i и всех возможных j образуют кортеж или просто строку таблицы. Количество всех кортежей в отношении определяет его мощность или кардинальное число. Мощность отношения в отличие от порядка отношения может со временем меняться. Совокупность всех кортежей образует тело отношения или таблицу. Поскольку отношения являются математическими множествами, которые по определению не могут содержать совпадающих элементов, никакие два кортежа в отношении не могут быть дубликатами друг друга в любой момент времени. Некоторое множество атрибутов образуют ключ для данного отношения, если задание значений этих атрибутов однозначно определяют значение все атрибутов в таблице. Множество атрибутов отношения является возможным ключом этого отношения, тогда и только тогда, когда выполняются два независимых от времени условия:1)уникальность- в каждый момент времени никакие два различные кортежа отношения не имеют одинакового значения для комбинации входящих в ключ атрибутов, т.е.в таблице не может быть двух строк. имеющих одинаковый ключ;2)минимальность- не один не входящий в ключ атрибутов не может быть исключен из ключа без нарушения уникальности Каждое отношение имеет по крайней мере один возможный ключ, так как совокупность всех его атрибутов, удовлетворяющих условию уникальности. Это следует из самого определения отношения. 4. Реляционная база данных. Реляционная база данных- это совокупность отношений, содержащих всю информацию, которая должна хранится в базе данных т.е. реляционная база данных представляет собой набор таблиц необходимых для хранения всех данных. Таблицы реляционных баз данных логически связаны между собой. Требования к проектированию реляционных баз данных в общем виде можно свести к нескольким правилам: 1) каждая таблица имеет в БД имя, состоит из однотипных строк; 2) каждая таблица состоит из фиксированного числа клеток и значений. В одной колонке строки не может быть сохранено больше одного значения; 3) ни в какой момент времени в таблице не найдется двух строк, дублирующих друг друга. Строки должны отличатся хотя бы одним значением, чтобы была возможность однозначно идентифицировать любую строку таблицы. Каждой колонке присваивается уникальное в пределах таблицы имя. Для нее устанавливается конкретный тип данных, чтобы в этой колонке размещались однотипные значения. Полное информационное содержание БД представляется в виде явных значений самих данных и такой метод представления является единственным; 4) при выполнении обработки данных можно свободно обращаться к любой строке или колонке таблицы. Значение, хранимое в таблице, не накладывает никаких ограничений на порядок обращения данных. Описание колонок, которое составляет разработчик принято называть макетом таблицы.
5. Функции системы управления базами данных (СУБД): управления данными во внешней памяти, управление буферами оперативной памяти, управление транзакциями. Традиционность возможностей файловых систем оказывается недостаточным для построения простых информационных систем. Считается, что если прикладная информация систем опирается на некоторую систему управления данными, то эта система управления данными является СУБД, при условии, что она выполняет следующие функции: 1) Непосредственное управление данными во внешней памяти. Эта функция включает обеспечение необходимых структур внешней памяти как для хранения данных непосредственно входящих в БД так и для служебных целей. Пример, для ускорения доступа к данным. В некоторых реализациях СУБД используются возможности существования файловых систем, в других работа производится вплоть до уровня устройств внешней памяти. В развитых СУБД пользователи не обязаны знать, используют ли СУБД файловую систему и если используют, то как организованны файлы. 2) Управление буферами, оперативной памяти. СУБД обычно работает с БД значительных размеров, которые обычно существенно больше доступного объема оперативной памяти. Если при обращении к любому элементу данных будет производится обмен с внешней памятью, то вся система будет работать со скоростью устройства внешней памяти. Практически единственным способом реального увеличения этой скорости является буферизация данных в оперативную память. При этом даже если операционная система производит общесистемную буферизацию этого не достаточно для цели СУБД, которая располагает гораздо большей информацией той или иной части БД. Поэтому в различных СУБД поддерживается собственный набор буферов оперативной памяти и собственной дисциплиной их замены. 3) Управление транзакциями. Транзакция - последовательность операций по БЖ, рассматриваемых СУБД как единое целое. Либо транзакция успешно выполняется и СУБД фиксирует изменения БД, производя транзакцию во внешней памяти, либо ни одно из изменений никак не отражается на состоянии БД. Понятие транзакции необходимо для поддержания логической целостности БД. Поддержание минимума является обязательным условием даже для однопользовательских СУБД. То свойство, что каждая транзакция начинается при целостном состоянии СУБД и оставляет это состояние целостным после его завершения делает очень удобным состояние транзакции как единице активности пользователя по отношению к БД. При соответствующем управлении параллельно выполняющимися транзакциями со стороны СУБД каждый пользователь может ощущать себя единственным пользователем СУБД. Управление транзакциями многопользовательских СУБД связаны с понятием сериализации транзакции и сериального плана выполнения транзакции. Под сериалазацией параллельного выполнения транзакции понимается такой порядок планирования их работы, при которой суммарный эффект смеси транзакции эквивалентен эффекту их некоторому последовательному выполнению. Сериальный план выполнения смеси транзакций - это такой план, который приводит к сериализации транзакции. Если удается добиться сериального выполнения смеси транзакций, что для каждого пользователя, по инициативе которого образуется транзакции, присутствие других транзакций будет незаметно, если не считать некоторого замедления работы по сравнению с однопользовательским режимом. Существует несколько базовых алгоритмов сериализации транзакций. В централизованных СУБД наиболее распространены объекты, основанные на синхронизационных захватах объектов БД. При использовании любого алгоритма сериализации возможны ситуации конфликтов между двумя или более транзакциями по доступам к объектам БД. В этом случае для поддержания сериализации необходимо выполнить откат одной или более транзакций, чтобы ликвидировать все изменения, произведенные в БД. Это один из случаев, когда пользователь многопользовательской СУБД может реально ощутить присутствие в системе транзакции других пользователей. 6. Функции системы управления базами данных: журнализация, поддержка языков баз данных. 4) Журнализация. Одним из основных требований к СУБД является возможность хранения данных во внешней памяти. Под надежностью хранения понимается то, что СУБД должна быть в состоянии восстановить последнее согласованное состояние БД после любого аппаратного или программного сбоя. Обычно рассматриваются два возможных вида аппаратного сбоя: мягкие, которые можно трактовать как внезапную остановку работы компьютера (выключение питания) и жесткие сбои, которые характерны потерей информации на носителях внешней памяти. Примерами программных сбоев могут быть: аварийное завершение работы СУБД по причине ошибки в программе или в результате аппаратного сбоя или аварийное завершение пользователем программы, в результате чего некоторая транзакция остается незавершенной. В любом случае для восстановления БД нужно располагать некоторой дополнительной информацией, т. е. поддержанием надежности хранения данных, а БД требует избыточности хранения данных. Причем та часть, которая используется для восстановления, должна хранится довольно надежно. Наиболее распространенным способом поддержания избыточного хранения информации является введение журнала изменения БД. Журнал- это особая часть БД, недоступная пользователям СУБД, поддерживаемая с особой тщательностью, в которую поступают записи обо всех изменениях основной части БД. В разных СУБД изменения БД журнализируются на разных уровнях. Иногда запись о журнале соответствует некоторой логической операции изменения БД. Например, операция удаления строки у таблицы, иногда минимальные внутренние операции, модификации страницы внешней памяти. В некоторой системе одновременно используются оба подхода, во всех случаях придерживаются стратегии упреждающей записи в журналах (Write Ahead Log).Заключается в том, что запись об изменении любого объекта в БД должна попасть во внешнюю память основной БД. Если СУБД корректно соблюдает этот протокол, то с помощью журнала можно решить все проблемы восстановления БД после любого сбоя. Самая простая ситуация восстановления - индивидуальный откат транзакции. Для этого не требуется общесистемный журнал БД. Достаточно для каждой транзакции поддерживать локальный журнал модификации БД. Производить откат транзакции путем выполнения обратных операций, следуя от конца локального журнала. При мягком сбое во внешней памяти в основной части БД могут находиться объекты, модифицированные транзакциями, не заканчивающимися к моменту сбоя, и могут отсутствовать объекты модифицированных транзакциями, которые к моменту сбоя успешно завершились. Это обусловлено использованием буферов оперативной памяти, содержимое которых при мягком сбое пропадает. При соблюдении протокола Write Ahead Log во внешней памяти журнала должны гарантированно находиться записи, относящиеся к операциям модификации обоих видов объектов. Целью процесса восстановления после мягкого сбоя является состояние внешней памяти основной части БД, которое возникло бы при фиксации во внешней памяти изменений всех завершившихся транзакций и которое не содержало бы никаких следов незаконченных транзакций. Для того чтобы этого добиться, сначала производят откат незавершенных транзакций, потом повторно воспроизводят те операции завершившихся транзакций, результаты которых не отображены во внешней памяти. Для восстановления БД после жесткого сбоя используют журнал и архивную копию БД. Архивная копия БД – это полная копия баз данных к моменту начала заполнения журнала. Восстановление БД состоит в том, что, исходя из архивной копии, по журналу воспроизводится работа всех транзакций, которые закончились к моменту сбоя. Можно также воспроизвести работу незавершенных транзакций и продолжить их работу после завершения восстановления, однако в реальных системах этого обычно не делается. 5) Поддержка языков баз данных. Для работы с базами данных используются специальные языки, имеющие общее название – языки баз данных. В ранних СУБД поддерживались несколько специализированных по своим функциям языков. Чаще всего выделялось два языка: язык определения схемы, язык манипулирования данными. В современных СУБД обычно поддерживается единый интегрированный язык, содержащий все необходимые средства для работы с БД. Стандартным языком наиболее распространенных СУБД является SQL. 7. Типовая организация современной СУБД. В современных СУБД логически можно выделить следующие основные компоненты: ─ ядро СУБД; ─ компилятор языка БД; ─ подсистема поддержки времени выполнения; ─ набор утилит. Ядро СУБД отвечает за управление данными во внешней памяти, управление буферами оперативной памяти, управление транзакциями и журнализацию. Соответственно можно выделить такие компоненты ядра как менеджер данных, менеджер буферов, менеджер транзакций, менеджер журнала. Функции всех компонентов ядра взаимосвязаны и для обеспечения корректной работы СУБД все эти компоненты должны взаимодействовать по тщательно продуманным и проверенным протоколам. Ядро СУБД обладает собственным интерфейсом, недоступным пользователям напрямую и используемым в программах, созданных средствами SQL, а также в утилитах БД. При использовании архитектуры клиент-сервер ядро является основным составляющим серверной части системы. Основной функцией компилятора языка БД является компиляция операторов языка БД в некоторую управляемую программу. Основной проблемой реляционной СУБД является то, что языки этих систем являются непроцедурными, поэтому компилятор должен решить, каким образом выполнить оператор языка, прежде чем воспроизвести программу. Результатом компиляции является выполняемая программа, представляемая в некоторых системах в машинных кодах, но более часто в выполняемом внутреннем машинонезависимом коде. В последнем случае реальное выполнение оператора производится с привлечением подсистемы поддержки времени выполнения, которая представляет собой интерпретатор внутреннего языка СУБД. В отдельные утилиты БД обычно выделяют такие процедуры, которые слишком накладно выполнять с использованием языка баз данных. Например, загрузка и выгрузка баз данных, сбор статистики, глобальная проверка целостности БД и т.д. Утилиты программируются с использованием интерфейса ядра СУБД, а в некоторых случаях с проникновением внутрь ядра.
8. Базовые средства манипулирования реляционными данными.
Выделяют два базовых механизма манипулирования реляционными данными: реляционная алгебра и реляционное исчисление. Они обладают одним важным свойством: замкнуты относительно понятия «отношение». Это означает, что выражения «реляционная алгебра» и «формулы реляционного исчисления» определяются над отношениями баз данных и результатом вычислений также является отношение. В результате любое выражение или формула может интерпретироваться как отношение, что позволяет использовать их в других выражениях и формулах. Реляционная алгебра и реляционное исчисление обладают большой выразительной мощностью. Сложные запросы в базах данных могут быть выражены с помощью одного выражения реляционной алгебры или одной формулы реляционного исчисления, по этой причине эти механизмы включены в реляционную модель данных. Язык манипулирования реляционными данными называется реляционным, если любой запрос, выражаемый с помощью одного выражения реляционной алгебры или одной формулы реляционного исчисления, может быть выражен с помощью одного оператора этого языка. Механизмы реляционной алгебры и реляционного исчисления эквивалентны, то есть для любого допустимого выражения в реляционной алгебре можно построить эквивалентную, то есть производящую такой же результат, формулу реляционного исчисления и наоборот. Присутствие в реляционной модели данных обоих механизмов обусловлено различным уровнем процедурности реляционной алгебры и реляционного исчисления. Выражения реляционной алгебры строятся на основе алгебраических операций, и подобно тому, как интерпретируются арифметические и логические выражения, выражения реляционной алгебры также имеют процедурную интерпретацию. Другими словами, запрос представленный на языке реляционной алгебры, может быть вычислен на основе элементарных алгебраических операций с учетом их старшинства и возможного наличия скобок. Для формулы реляционного исчисления однозначная интерпретация отсутствует. Формула только ставит условия, которым должны удовлетворять кортежи результирующего отношения, поэтому языки реляционного исчисления являются непроцедурными (декларативными).
9. Реляционная алгебра. Общая интерпретация реляционных операций.
Основная идея реляционной алгебры состоит в том, что так как отношения являются множествами, то средства манипулирования отношениями могут базироваться на традиционных теоретикомножественных операциях, дополненных некоторыми специальными операциями специфичными для баз данных. В варианте реляционной алгебры, предложенной Коддом, набор основных алгебраических операций состоит из восьми. Операции реляционной алгебры делятся на два класса: теоретикомножественные и специальные реляционные. В состав теоретикомножественных операций входят следующие: объединение отношений, пересечение отношений, взятие разности отношения и прямого произведения. Специальные реляционные операции включают ограничение отношений, проекцию отношений, соединение и деление отношений. В состав реляционной алгебры включается также операция присваивания, позволяющая сохранять в БД результаты вычисления алгебраического выражения, и операция переименования атрибутов, дающая возможность корректно сформировать заголовок результирующего отношения.
Общая интерпретация реляционных операций 1. При выполнении операции единения двух отношений производится отношение, включающее все кортежи, входящие хотя бы в одно из отношений операндов. 2. Операция пересечения двух отношений производит отношения, включающие все кортежи, входящие в оба отношения операнда. 3. Отношение, являющееся разностью двух отношений, включает все кортежи, входящие в отношение, являющееся первым операндом, такие, что ни один из них не входит в отношение, являющееся вторым операндом. 4. При выполнении прямого произведения двух отношений, производится отношение, кортежи которого являются конкатенацией кортежей первого и второго операндов. 5. Результатом ограничения отношения по некоторому условию является отношение, включающее кортежи отношения операнда удовлетворяющие этому условию. 6. При выполнении проекции отношения на заданный набор его атрибутов производится отношение, кортежи которого получаются путем взятия соответствующих значений из кортежей отношения операнда. 7. При соединении двух отношений по некоторому условию образуется результирующее отношение, кортежи которого являются конкатенацией кортежей первого и второго отношений и удовлетворяют этому условию. 8. В операции реляционного деления два операнда: бинарное и унарное отношения. Результатом операции является унарное отношение, состоящее из кортежей, включающих значения первого атрибута, кортежей первого операнда таких что множество значений второго атрибута при фиксированном значении первого атрибута совпадает со множеством значений второго операнда. 9. Операция переименования производит отношение, тело которого совпадает с телом отношения операнда, но имена атрибутов изменены. 10. Операции присваивания предназначены для хранения результатов вычисления реляционных выражений существующих в отношении базы данных.
10. Особенности теоретико-множественных операций реляционной алгебры. Смысл операции объединения (пересечения, взятия разности) в реляционной алгебре остается теоретико-множественным. Но если в теории множеств операция объединения (пересечения, взятия разности) имеет смысл для любых двух множеств операндов, то в случае реляционной алгебры результатом операции объединения (пересечения, взятия разности) должно являться отношение. Если допустить, что в реляционной алгебре возможность объединения двух произведений отношений с разными схемами, то результатом операции будет множество разнотипных картежей, т.е. не отношения. Если исходить из требования замкнутости реляционной алгебры относительно понятия отношения, то такая операция объединения является бессмысленной. Подобные соображения привели к появлению понятия совместимости отношений по объединению. Два отношения совместимы по объединению в том и только том случае, когда они обладают одинаковыми заголовками. Это означает, что в заголовках обоих отношений содержится один и тот же набор атрибутов и одноименные атрибуты определены на одном и том же домене. Если два отношения совместимы по объединению, то при выполнении над ними операций объединения (пересечения, взятия разности), результатом операции является отношение с корректно определенным заголовком, который совпадает с заголовком каждого из отношений операнда. Если два отношения почти совместимы по объединению, т. е. совместимы во всем кроме имен атрибутов, то до выполнения операций соединения эти отношения необходимо сделать полностью совместимыми по объединению путем применения операции переименования. Другие проблемы, связанны с операциями взятия прямого произведения двух отношений. В теории множеств прямое произведение может быть получено для любых двух множеств и элементами результирующего множества являются пары, составленные из элементов первого и второго множеств. Поскольку отношения являются множествами, то для любых двух отношений возможно получение прямого произведения, но результат не будет отношением. В реляционной алгебре используется специализированная форма операции взятия прямого произведении, так называемое расширенное прямое произведение отношений. Проблемой получения расширенного прямого произведения может быть именование атрибутов результирующего отношения, если отношения и операнды обладают одноименными атрибутами. Два отношения совместимы по взятию прямого произведения в том и только том случае, если множества имен атрибутов этих отношений не пересекаются. Любые два отношения могут быть сделаны совместимыми по взятию прямого произведения путем применения операции переименования к одному из этих отношений.
11. Реляционное исчисление. Реляционные исчисления являются прикладной ветвью формального механизма исчисления предикатов первого порядка. Базисными понятиями исчисления являются понятия переменной с определенной для нее областью допустимых значений и понятие правильно построенной формы, опирающиеся на переменные, предикаты и кванторы. В зависимости от того, что является областью определения переменной, различают исчисления картежей и доменов. Исчисление картежей областями определения переменных является отношение базы данных. Допустимое значение каждой переменной является кортежем некоторого отношения. В исчислении доменов областью определения переменных являются домены, для которых определены атрибуты отношения базы данных, т.е. допустимым значение каждой переменной является значение некоторого домена. Для определения картежей переменной используются оператор RANGE. Правильно построенная форма (ППФ) служит для выражения условий, накладываемых на картежные переменные. Основой ППФ являются простые сравнения. Которые представляют собой операции сравнения скалярных значений, т.е. значений атрибутов переменных или заданных констант. Более сложные варианты ППФ строятся с помощью логических операций И, ИЛИ, НЕ и оператора ЕСЛИ-ТО. Допускается также построение ППФ с помощью квантеров: EXISTS. Переменные, входящие в ППФ, могут быть свободными или связанными. Все переменные, входящие в ППФ, при построении которых не использовались квантеры, являются свободными. Если имя переменной использовано в ППФ сразу после квантера, то эта переменная называется связанной и это означает, что такая переменная не видна за пределами ППФ, связавшую эту переменную. При вычислении значений такой ППФ используется не одно значение связанной переменной, а вся ее область определения.
12. Целостность сущностей и ссылок. Согласно концепции, предложенной Дейтом, реляционная модель состоит из трех частей: структурной. Манипуляционной, целостной. В целостной части реляционной модели данных фиксируются два базовых принципа, которые должны поддерживаться в любой реляционной СУБД. Первое требование называется требованием целостности. Объекту или сущности реального мира реляционных баз данных ставятся в соответствие картежи отношений. Требование о целостности сущности состоит в том, что любой картеж любого отношения отличен от любого другого картежа этого отношения, т. е. любое отношение должно обладать первичным ключом. Второе требование называется требованием целостности по ссылкам. Атрибут называется внешним ключом, если его значение однозначно характеризует сущности, представленные картежами некоторого другого отношения, т.е. задают значения их первичного ключа. Требование о целостности по ссылкам, которое еще называют требованием целостности ключа: для каждого значения внешнего ключа, появляющееся в ссылающемся отношении, на которое ведет ссылка, должен найтись картеж с таким же значение первичного ключа либо значение внешнего ключа должно быть неопределенным. Ограничения целостности сущности и целостности по ссылкам должны поддерживаться СУБД. Для соблюдения целостности сущности достаточно гарантировать отсутствие в любом отношении картежей с одним и тем же значение первичного ключа. При обновлении ссылающегося отношения или модификации значений внешнего ключа в существующих ключах достаточно следить за теми, чтобы не появлялись не корректные значения внешнего ключа. При удалении картежа из отношения существуют три подхода поддержания целостности по ссылкам. 1) Запрещается производить удаление ключа, на который существуют ссылки, т.е. сначала нужно либо удалить ссылающиеся картежи, либо соответствующим образом изменить значения их внешнего ключа. 2) При удалении картежа, на который используются ссылки во всех ссылающихся картежах, значение внешнего ключа автоматически становится неопределенным. 3) Каскадное удаление. При удалении картежа из отношения, на которое ведет ссылка и ссылается отношение, автоматически удаляются все ссылки картежи.
13. СУБД в архитектуре клиент-сервер. Открытые системы. Применительно к системам баз данных архитектура клиент-сервер актуальна главным образом потому, что обеспечивает простое и относительно дешевое решение проблемы коллективного доступа к базам данных в локальной вычислительной сети. В некотором роде система баз данных, основанная на архитектуре клиент-сервер, является приближением системы распределенных баз данных не требующих решения основного набора проблем действительно распределенных баз данных.
|