- Сетевая база данных (СБД)
- Структура СБД
- Таким образом, набор записей в СБД определяет:
- Концептуальная модель данных (КМД)
- Концептуальное проектирование баз данных
- При разработке такой структуры нужно определить:
- Преобразовать концептуальную модель в сетевую базу данных
- Управление сетевыми данными
- Это позволяет осуществлять следующие записи:
- 4.2. Сетевая модель
- 4.2.1. Структуры данных сетевой модели
Сетевая база данных (СБД)
Сетевая база данных или СБД — это теоретико-графовые модели БЗ. Они находятся в одной группе с иерархическими моделями. На основе математики именно сетевых баз созданы разные системы управления баз данных или СУБД, как правило, коммерческого характера.
Для СБД есть ряд характерных операций:
Стоит учесть, что кроме теоретико-графовой модели БД есть и теоретико-множественная модель. К ней относятся реляционные базы данных.
В первую очередь сначала разобраться со структурой СБД. Это позволит понять, о чём вообще идёт речь. Для начала нужно разобраться со словом «сети». Ведь от него выстраивается понятие сетевой модели как таковой.
Что такое «Сетевая база данных» (СБД)?
Сети — это естественный способ выстраивания отношений между объектами БД и связей между обозначенными объектами. В оговоренной ситуации под словом «объекты» надо понимать таблицы БД или сущности.
Сетевые базы данных выстроены на математике графов. А если точнее, то СБД можно представить как ориентированный граф.
Направленный граф — это структура, состоящая из рёбер и узлов. Узлы — это объекты СБД, а рёбра внутри такой конструкции демонстрируют связи между объектами и её тип. То есть по ним можно установить, идёт ли речь о связи 1 к 1 или это связь по типу 1 к многим.
Нужно учесть, что иерархическая модель БД — это частный и упрощённый случай СБД.
Структура СБД
Структура у сетевых баз данных довольно простая. Как минимум, она проще, чем у реляционной модели. По структуре такие конструкции сделаны из 4 компонентов. Это означает, что в сетевой модели применяют 4 типа структуры данных. При этом 2 — главные (запись и набор).
Вспомогательные типы структур сетевой модели, которые применяются для выстраивания главных структур — агрегат данных и элемент данных. Непосредственно структура СБД выглядит как 5 элементов. Из них есть несколько ключевых:
- Элемент данных — самая маленькая информационная единица, которая доступна пользователю. При проведении аналогии с файловой системой такую конструкцию можно назвать полем. А если сравнивать с реляционной базой данных, то это будет элементом данных. По сути, речь идёт об одном столбце таблицы реляционной базы данных. А если конкретнее, то это — «подстолбец».
- Агрегат данных — это элемент, который является следующим уровнем обобщения применительно к сетевой модели. Агрегат данных представляет собой именованную совокупность информации, которая находится внутри одной записи. По сути, это столбец, который находится выше базовых столбцов. То есть речь идёт о следующем уровне, как и говорилось выше.
- Запись — это итоговый уровень обобщения. Её можно сравнить с таблицей в реляционной базе данных. В каждой записи должно быть не меньше 1 именованного элемента. А если таких элементов больше, то у них должны быть уникальные форматы. Стандартно записи используются для сведения данных, для каких-то выводов.
В роли элементов данных для сетевой модели можно использовать простые типы данных или сложные типы. Под последними имеются в виду вектор и повторяющаяся группа.
Агрегат типа вектор — это линейный набор данных.
Агрегат «повторяющаяся группа» — это сочетание векторов данных. То есть речь о нескольких разных векторах. Они могут быть представлены как «товары» или «расходные материалы».
Набор записей — это именованная иерархическая 2-уровневая структура, содержащая как управляемую запись, так и управляющую. Наборы позволяют обозначить тип связи между записями. По сути, набор представляет собой 2 записи, и между ними установлена связь: 1 к 1 или 1 к многим.
Таким образом, набор записей в СБД определяет:
Название вида связи будет также играть роль метки, называющей сам набор данных.
Таким образом, база данных по сетевой модели — это именованная совокупность записей разного типа и наборов, которые хранят сведения о типах связей, объединяющих записи. То есть СБД можно изобразить как комплекс, состоящий из записей и связей между ними разного характера.
Концептуальная модель данных (КМД)
Что собой представляет концептуальная модель данных (КМД)? Она выражается в форме модели, которая представлена большим количеством понятий и связей. И они определяют смысловую структуру конкретной области или же отдельно взятого объекта.
КМД в первую очередь имеет отношение к предметной области. Она состоит из ряда понятий, которые взаимно связаны между собой. Указанные понятия используются, чтобы описать эту область. Причём у понятия есть свойства и характеристики, и они тоже включены в общую структуру, как и классификация по разным признакам.
Кроме того, для КМД характерны разные процессы, которые могут протекать внутри неё. Для их описания можно использовать разные законы. И они тоже будут входить в общую структуру.
Концептуальную модель данных часто называют ещё содержательной, что подчёркивает большую роль смыслового наполнения. По своему характеру она является абстрактной моделью, которая определяет структуру выстраиваемой системы, свойства элементов, причинно-следственные связи. Причём при работе с КМД нужно брать не любые связи, а только те, которые характерны для данной системы и служат цели моделирования.
КМД — это модель, которая создаётся по результатам процесса концептуализации. То есть её выстраивают на основании обобщения. Такие модели часто представляют собой абстракциями в реальном мире.
Концептуальное проектирование баз данных
Концептуальное проектирование БД встречается довольно часто на практике. По сути, она представляет собой процесс создания информационной модели, которая не будет зависеть от физических реалий.
При разработке такой структуры нужно определить:
- типы сущностей и связей;
- атрибуты;
- домены атрибутов;
- потенциальные и первичные ключи.
На первом этапе построения такой модели данных нужно определить главные объекты интереса. Под ними имеются в виду типы сущностей, которые входят в модель. Они представляют собой совокупность объектов реального типа с одинаковыми свойствами.
Тип сущности независим. Он может быть объектом реального существования или же абстрактного или концептуального характера.
Сущность — это экземпляр, который можно уникально идентифицировать. У него есть уникальный список атрибутов. И у каждой сущности есть отдельные значения для такого атрибута. Сущности делятся на слабые и сильные.
Атрибут представляет собой свойство типа связи или типа сущности. В них содержатся значения, которые позволяют описать каждую сущность. Значения атрибутов — это основная часть сведений, которые хранятся в базе данных.
В то же время, связь, соединяющая 2 сущности, может тоже обладать атрибутами. И они будут аналогичны типам сущностей.
Под связью подразумевается ассоциация между сущностями, включая минимум по 1 сущности из каждого типа. Благодаря связям происходит контакт между сущностями и поиск в рамках такой системы.
Ключ применительно к сущности — это набор атрибутов, не являющийся избыточным. Их значения — уникальны для каждой сущности. Если удалить любой атрибут, то возникает проблема с нарушением уникальности. У сущности может быть несколько разных ключей.
Нужно отметить, что выше даны общие понятия, база. Для более глубокого освоения концептуального проектирования базы данных имеет смысл выбрать тематический материал.
Преобразовать концептуальную модель в сетевую базу данных
Сетевую базу данных можно создать из концептуальной. Для этого достаточно соблюдать только 1 условие: в КМД должны применяться исключительно бинарные связи:
При этом сущности нужно заменить на типы записей. Так что имена сущностей в КМД станут названиями типов записей в другой модели данных. А атрибуты сущностей (их можно представить как столбцы таблицы) превратятся в поля записей СБД. И, наконец, связи между сущностями преобразуются в связи между типами записей.
Бинарные связи перенести легко. Например, если выбрать перенос связи «1 к многим», то тип записи «1» будет управляющей записью, а «многие» — управляемыми. При переносе «1 к 1» определение управляемой и подчинённой записью происходит по смыслу.
Управление сетевыми данными
Сетевыми данными нужно уметь управлять. Для этого можно использовать напрямую управление и манипулирование. Для этого используются типовыми операции, которые можно разделить на навигационные и модификационные. Ниже —детальнее.
Навигационные занимаются переходом по связям, которые определены в рамках схемы баз данных. Благодаря таким переходам устанавливается запись, которую можно назвать текущей. Это запись сетевой модели, и с ней предстоит работа.
Модификационные операции СБД позволяют осуществлять добавление новых записей или новых наборов данных, удаление того или другого, модификацию агрегатов и элементов данных. Чтобы реализовать эти операции в системе, нужно детализировать текущее состояние посредством запоминания 3 текущих компонентов: набор, тип записи и экземпляр типа записи.
Это позволяет осуществлять следующие записи:
- извлечь запись в буфер прикладной программы, чтобы осуществить обработку;
- запомнить запись из буфера в базе данных;
- заменить в записи, которую уже извлекли, значения обозначенных элементов;
- сделать новую запись;
- удалить запись;
- включить или исключить запись из текущего экземпляра набора.
Всё это позволяет управлять сетевой базой данных. Конкретика зависит уже от специфики БД. Поддерживать ограниченную целостность в СБД не нужно. Главное — понимать структуру и основы управления, что и позволяет совершать нужные операции.
4.2. Сетевая модель
Сети — естественный способ представления отношений между объектами, всевозможных их взаимосвязей. Сетевая модель опирается на математическую структуру, которая называется направленным графом. Направленный граф состоит из узлов, соединенных ребрами. В контексте моделей данных узлы представляют собой объекты в виде типов записей данных, а ребра — связи между объектами со степенью кардинальности «один к одному» или «один ко многим.
Иерархическая модель данных является частным случаем сетевой модели.
4.2.1. Структуры данных сетевой модели
В сетевой модели используются несколько различных типовых структур данных, главными из которых являются типы записей и наборы. Для построения этих структур применяются такие конструктивные элементы, как элемент данных и агрегат (рис. 4.1).
Рис. 4.1. Основные структуры сетевой модели данных
Элемент данных — это наименьшая поименованная информационная единица данных, доступная пользователю (аналог — поле в файловой системе). Элемент данных должен иметь свой тип (не структурный, простой).
Агрегат данных соответствует следующему уровню обобщения — поименованная совокупность элементов данных внутри записи или другого агрегата (рис. 4.2).
Запись — конечный уровень агрегации. Каждая запись представляет собой именованную структуру, содержащую один или более именованных элементов данных, каждый из которых обладает своим особым форматом.
Агрегат данных Дата входит в состав записи Сотрудник (рис. 4.3).
Тип записей — это совокупность логически связанных экземпляров записей. Тип записей моделирует некоторый класс объектов реального мира.
В качестве элемента данных могут быть использованы только простые типы, а в качестве агрегатов могут быть использованы сложные типы: вектор и повторяющаяся группа.
Рис. 4.3. Запись Сотрудник
Агрегат типа вектор соответствует линейному набору элементов данных (рис. 4.2). Агрегат типа повторяющаяся группа соответствует совокупности векторов данных. Так, например, в заказе может быть указано несколько видов товаров с числом повторений 10 (рис. 4.4).
Набор — это поименованная двухуровневая иерархическая структура, которая содержит запись владельца и записи членов. Наборы выражают связи «один ко многим» или «один к одному» между двумя типами записей. Тип набора поддерживает работу с внутренними структурами типов записей.
Набор, приведенный на рис. 4.5, определяет тип записи-владельца Отдел и тип записи-члена набора Сотрудник, а также тип связи между ними «один ко многим» — с именем Работает. Имя набора — это метка, присвоенная стрелке. Связь типа «один ко многим» допускает возможность того, что с данным экземпляром записи-владельца может быть связан ноль, один, или несколько экземпляров записи-члена.
Рис. 4.5. Диаграмма типа набора Работает
Используя понятия сетевой модели данных, можно получить другое изображение такого набора (рис. 4.6), где представлены логические типы записей Отдел и Сотрудник, их структура и связь между типами записей Работает.
База данных в сетевой модели данных — это поименованная совокупность экземпляров записей различного типа и экземпляров наборов, содержащих связи между ними.
Рис. 4.6. Набор Работает между двумя типами записей Отдел и Сотрудник