Что характерно для сетевой модели данных. Виды моделей данных

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

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

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

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

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

Запомнить, то есть внести информацию в нашу базу данных;

Включить в групповое отношение, то есть установить между данными определенные связи;

Переключить, то есть сделать переход одного члена набора к какому-то другому владельцу;

Обновить, то есть произвести какие-либо модификации данных;

Извлечь, то есть осуществить операции по чтению данных;

Удалить, то есть произвести логическое или физическое удаление данных;

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

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

Вопрос 1. Модели представления данных. Иерархическая, сетевая, реляционная модели данных. Привести примеры.

Иерархическая модель

Иерархическая структура представляет совокупность элементов, связанных между собой по определенным правилам. Графическим способом представлен ия ие рархической структуры является дерево (см. рис. 2.1).

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

Примером простого иерархического представления может служить административная структура высшего учебного заведения: институт – отделение – факультет – студенческая группа (см. рис. 2.2).

Рис. 2.2. Пример иерархической структуры

К достоинствам иерархической модели данных относятся эффективное использование памяти ЭВМ и неплохие показатели времени выполнения операций над данными.

Недостатком иерархической модели является ее громоздкость для обработки информации с достаточно сложными логическими связями.

На иерархической модели данных основано сравнительно ограниченное количество СУБД, в числе которых можно назвать зарубежные системы IMS , PC / Focus , Team - Up и Data Edge , а также отечественные системы Ока, ИНЭС и МИРИС.

Сетевая модель данных

Отличие сетевой структуры от иерархической заключается в том, что каждый элемент в сетевой структуре может быть связан с любым другим элементом (см. рис. 2.3). Пример простой сетевой структуры показан на рис. 2.4.

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

Недостатком сетевой модели данных являются высокая сложность и жесткость схемы БД, построенной на ее основе.

Наиболее известными сетевыми СУБД являются IDMS , db _ VistaIII , СЕТЬ, СЕТОР и КОМПАС.

Реляционная модель данных

Реляционная модель данных была предложена Е.Ф. Коддом, известным исследователем в области баз данных, в 1969 году, когда он был сотрудником фирмы IBM. Впервые основные концепции этой модели были опубликованы в 1970.

Реляционная база данных представляет собой хранилище данных, организованных в виде двумерных таблиц (см. рис. 2.5). Любая таблица реляционной базы данных состоит из строк (называемых также записями) и столбцов (называемых также полями).

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

Данные в таблицах удовлетворяют следующим принципам:

1. Каждое значение, содержащееся на пересечении строки и столбца, должно быть атомарным.

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

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

4. Каждое поле имеет уникальное имя.

5. Последовательность полей в таблице несущественна.

6. Последовательность записей в таблице несущественна.

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

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

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

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

Группа связанных таблиц называется схемой базы данных . Информация о таблицах, их полях, первичных и внешних ключах, а также иных объектах базы данных, называется метаданными .

Достоинство реляционной модели данных заключается в простоте, понятности и удобстве физической реализации на ЭВМ. Именно простота и понятность для пользователя явились основной причиной ее широкого использования.

Рис. 2.5. Схема реляционной модели данных

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

Примерами зарубежных реляционных СУБД для ПЭВМ являются: DB 2, Paradox , FoxPro , Access , Clarion , Ingres , Oracle .

К отечественным СУБД реляционного типа относятся системы ПАЛЬМА и HyTech .

Страница 1
Тема 7
Лекция № 7
СЕТЕВАЯ МОДЕЛЬ ДАННЫХ


  1. Сетевые базы данных

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

Сетевая БД представляется как множество отношений и веерных отношений. Отношения разделяются на основные и зависимые.

Веерным отношением W(R,S) называется пара отношений, состоящая из одного основного R, одного зависимого отношения S и связи между ними при условии, что каждое значение зависимого отношения связано с единственным значением основного отношения.

Названное условие является ограничением, характерным для сетевой модели данных в целом. Способ реализации этого ограничения в памяти ЭВМ неодинаков у различных сетевых СУБД.

Допустимые в сетевой модели данных операции представляют собой различные варианты выборки.

Сетевые базы данных в зависимости от ограничений на вхождение отношений в веерные отношения разделяются на многоуровневые сети и двухуровневые сети.

Ограничение двухуровневых сетей состоит в том, что каждое отношение может существовать в одной из перечисленных ниже ролей:

Вне каких-либо веерных отношений,

В качестве основного отношения в любом количестве веерных отношений,

В качестве зависимого отношения в любом количестве веерных отношений.

Запрещается существование отношения в качестве основного в одном контексте и одновременно в качестве зависимого в другом контексте.

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

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

Для двухуровневых сетевых СУБД вводятся еще два ограничения (с теоретической точки зрения необязательные):

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

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

Значение отношения при хранении в памяти ЭВМ часто называется записью. Адресом связи называется атрибут в составе записи, в котором хранится начальный адрес или номер следующей обрабатываемой записи.

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

Схема сетевой БД содержит следующие компоненты:

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

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

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

В схеме сетевой БД отношения и веерные отношения часто трактуются как файлы и связи, что позволяет рассматривать сетевую структуру как множество файлов

F = {Fl(Xl),F2(X2),...) Fi(Xi),...,Fn(Xn)}, где Xi - атрибуты ключа в файле Fi.

Дополнительно вводится граф сетевой структуры В с вершинами {Xl,X2,...,Xi,...,Xn}. Дуга в графе В существует, если Xi является частью Xj и Fj является подмножеством Fi. Последнее условие имеет тот же смысл, что и синтаксическое включение отношений в реляционной модели данных. Здесь предполагается, что ключ основного файла содержится в зависимом файле. Граф В аналогичен графу соединений для реляционной БД.

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

Для множества файлов F ациклической базы данных DBA вполне применима операция

m(DBA) = F1 & F2 & ... & Fi & ...& Fn,

называемая максимальным пересечением. Ее аналогом может служить последовательность соединений в реляционной БД.


3. Алгоритм формирования двухуровневой структуры сети
Рассмотрим алгоритм формирования структуры двухуровневой сетевой БД на основе известного множества атрибутов и функциональных зависимостей.

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

3. Алгоритм получения двухуровневой структуры сети

1. Для каждой функциональной зависимости вида А -» В создается файл Fi(A,B)- Каждый блок взаимно-однозначных соответствий также порождает файл с ключом, равным старшему по объему понятия атрибуту.

В нашем примере будут созданы следующие файлы (ключи помечены знаком #):

Р1(НИИ #, Директор, Адрес),

Р2(Отдел #, НИИ, Ксотр),

РЗ(Тема #, Датанач, Датакон, Приор),

Р4(ФИО #, Отдел),

Р5(Тема #, Работа #, ФИО #, Прод),

Р6(Тема #, Заказ #, Обфин).

2. У всех пар файлов, полученных на шаге 1, проверяется условие для ключей (Ki является частью Kj). Если оно соблюдаемся, то из соответствующих файлов создается веерное отношение Wij(Fi,Fj). В нашем примере получим W35(F3,F5), W45(F4,F5), W36(F3,F6).

3. Если на шаге 2 будут получены два веерных отношения Wij и Wjk, то все атрибуты файла Fi передаются в файл Fj, и Fi вместе с Wij уничтожаются. В нашем примере таких веерных отношений нет.

4. Атрибуты, не вошедшие в состав веерных отношений на шаге 2, добавляются в те файлы Fn (и содержащие Fn веерные отношения), где они будут неключевыми. При наличии нескольких подходящих файлов предпочтение отдается основным файлам. Если требуемые Fn отсутствуют, то создается новый файл из атрибутов первичного ключа, и повторяются шаги 2, 3,4.

В нашем примере F4 расширяется атрибутами НИИ, Директор, Адрес, Ксотр.

На рис.2.3 показана структура соответствующей двухуровневой БД.

Структуры основных отношений показаны в верхней части рисунка, а структуры зависимых отношений - внизу.

Перед рассмотрением операций в сетевой базе данных следует отметить, что существуют 2 различных подхода к обработке данных средствами СУБД.

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

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

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

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

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

страница 1

Базы данных.

Лекция №12.

Базы данных (БД) – это данные, организованные в виде набора записей определенной структуры и хранящиеся в файлах, где, помимо самих данных, содержится описание их структуры.

Система управления базами данных (СУБД) – система, обеспечивающая ввод данных в БД, их хранение и восстановление в случае сбоев, манипулирование данными, поиск и вывод данных по запросу пользователя.

По моделям представления , базы данных делятся на:

Иерархические;

Сетевые;

Реляционные;

Объектно-реляционные.

Иерархические базы данных – это самая первая модель представления данных, в которой все записи базы данных представлены в виде дерева, с соотношением предок-потомок (рис. 30).

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

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

Рис. 30. Иерархическая база данных.

Однако иерархическая модель не является оптимальной. Допустим, что один и тот же тип болтов используется в автомобиле 300 раз в различных узлах. При использовании иерархической модели, данный тип болтов будет фигурировать в базе данных 1 раз, а 300 раз (в каждом узле - отдельно). В данном случае, будет прослеживаться дублирование информации. Чтобы устранить этот недостаток была введена сетевая модель представления данных.

Сетевая база данных – это база данных, в которой одна запись может участвовать в нескольких отношениях предок-потомок (рис. 31). Т.е. фактически, база данных представляет собой не дерево, а граф.

Рис. 31. Сетевая база данных.

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

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

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

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

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

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

Так, например, на рис. 32 столбец «Ответственный» таблицы «Мероприятия» является внешним ключом для таблицы «Сотрудники» (первичный ключ – столбец «Фамилия»).

Рис. 32. Отношения предок-потомок в реляционных базах данных.

Важным моментом является также использование значения NULL в таблицах реляционной базе данных. NULL – это отсутствующее значение, отсутствие информации по данной позиции. Не допускается использование 0 или пробела вместо NULL: понятно, что «нулевой» объем продаж – это не тоже самое, что «неизвестный» объем продаж. По этой же причине, ни одно значение NULL не равно другому значению NULL. В реляционной базе данных, при запросах, группировке, сравнениях, и т.д., значения NULL обрабатываются особым образом.

Объектно-реляционные базы данных появились в последнее время у значительного числа производителей СУБД (Oracle, Informix, PostgreSQL) и сочетают в себе реляционную модель данных с концепциями объектно-ориентированного программирования (полиморфизм, инкапсуляция, наследование).

- — [Е.С.Алексеев, А.А.Мячев. Англо русский толковый словарь по системотехнике ЭВМ. Москва 1993] Тематики информационные технологии в целом EN network database systemNDBS …

сетевая СУБД фирмы Borland Int - — [Е.С.Алексеев, А.А.Мячев. Англо русский толковый словарь по системотехнике ЭВМ. Москва 1993] Тематики информационные технологии в целом EN Paradox LAN Pack … Справочник технического переводчика

Необходимо перенести в эту статью содержимое статьи Сетевая СУБД и поставить оттуда перенаправление. Вы можете помочь проекту, объединив статьи (cм. инструкцию по объединению). В случае необходимости обсуждения целесообразности объединения,… … Википедия

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

Реляционная СУБД (РСУБД; иначе Система управления реляционными базами данных, СУРБД) СУБД, управляющая реляционными базами данных. Понятие реляционный (англ. relation отношение) связано с разработками известного английского специалиста в… … Википедия

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

Целью алгоритма соединения является реализация в конкретной СУБД операции соединения реляционной алгебры. Исходными данными для алгоритма являются два отношения (таблицы) и описание условия соединения. Результатом операции является отношение… … Википедия

Операция соединения (СУБД) реализация в конкретной СУБД операции соединения реляционной алгебры. Исходными данными для операции являются два отношения (таблицы) и описание условия соединения. Результатом операции является отношение… … Википедия

- (РСУБД; иначе Система управления реляционными базами данных, СУРБД) СУБД, управляющая реляционными базами данных. Понятие реляционный (англ. relation отношение) связано с разработками известного английского специалиста в области… … Википедия

Эта статья должна быть полностью переписана. На странице обсуждения могут быть пояснения. Объектно реляционная СУБД (ОРСУБД) реляционная СУБД (РСУБД), поддерживающая неко … Википедия