Модели данных: иерархическая, сетевая, реляционная.
Отношения в иерархической модели данных организованы в виде совокупностей деревьев, где дерево — структура данных, в которой тип сегмента потомка связан только с одним типом сегмента предка.
Иерархическая модель данных, как следует из названия, имеет иерархическую структуру, т.е. каждый из элементов связан только с одним стоящим выше элементом, но в, то, же время на него могут ссылаться один или несколько стоящих ниже элементов
Рисунок 2 — Логическая иерархическая модель
В терминологии иерархической модели используются более конкретные понятия: «элемент» (узел); «уровень» и «связь». Узел чаще всего представляет собой атрибут (признак), описывающий некоторый объект.
Иерархически модель схематически изображается в виде графа, в котором каждый узел является вершиной.
Эта модель представляет собой совокупность элементов, расположенных в порядке их подчинения от общего к частному и образующих граф – дерево с иерархической структурой (рисунок 2,3).
Такой граф имеет единственную вершину, не подчиненную никакой другой вершине и находящуюся на самом верхнем (первом) уровне. Число вершин первого уровня определяет число деревьев в базе данных. Запрещены взаимосвязи на одном уровне.
Рисунок 3 – Пример иерархической модели данных
Сетевая модель.
Сети — естественный способ представления отношений между объектами. Они широко применяются в математике, исследованиях операций, химии, физике, социологии и других областях знаний. Сети обычно могут быть представлены математической структурой, которая называется направленным графом. Направленный граф имеет простую структуру. Он состоит из точек или узлов, соединенных стрелками или ребрами.
Сетевая модель данных — это представление данных сетевыми структурами типов записей и связанных отношениями мощности один-к-одному или один-ко-многим.
Сетевая модель более демократична. В сетевой модели отсутствует понятие главного и подчиненного объекта (рисунок 4,5). Один и тот же объект может выступать как главный и как подчиненный, то есть иметь любое количество взаимосвязей. Здесь допустимы связи на одном уровне. Эта модель использует ту же терминологию, что и иерархическая модель: «узел», «уровень» и «связь».
Рисунок 4 — Логическая сетевая модель
Как известно из теории графов, сетевой граф может быть преобразован в граф-дерево.
Рисунок 5 – Пример сетевой модели данных
Реляционная модель.
В 1970-1971 годах Е.Ф.Кодд опубликовал две статьи, в которых ввел реляционную модель данных и реляционные языки обработки данных — реляционную алгебру и реляционное исчисление.
Реляционная алгебра Процедурный язык обработки реляционных таблиц.
Реляционное исчисление Непроцедурный язык создания запросов.
Все существующие к тому времени подходы к связыванию записей из разных файлов использовали физические указатели или адреса на диске. В своей работе Кодд продемонстрировал, что такие базы данных существенно ограничивают число типов манипуляций данными. Более того, они очень чувствительны к изменениям в физическом окружении. Когда в компьютерной системе устанавливался новый накопитель или изменялись адреса хранения данных, требовалось дополнительное преобразование файлов. Если к формату записи в файле добавлялись новые поля, то физические адреса всех записей файла изменялись. То есть такие базы данных не позволяли манипулировать данными так, как это позволяла бы логическая структура. Все эти проблемы преодолела реляционная модель, основанная на логических отношениях данных.
Существует два подхода к проектированию реляционной базы данных.
Первый подход заключается в том, что на этапе концептуального проектирования создается не концептуальная модель данных, а непосредственно реляционная схема базы данных, состоящая из определений реляционных таблиц, подвергающихся нормализации.
Второй подход основан на механическом преобразовании функциональной модели, созданной ранее, в нормализованную реляционную модель. Этот подход чаще всего используется при проектировании больших, сложных схем баз данных, необходимых для корпоративных информационных систем.
Основная идея реляционной модели данных заключается в том, чтобы представить любой набор данныхв виде двумерного массива – таблицы. В простейшем случае реляционная модель описывает единственную двумерную таблицу (таблица 1), но чаще всего эта модель описывает структуру и взаимоотношения между несколькими различными таблицами.
Обязательным условием построения реляционной модели
является наличие в каждой таблице первичного ключа. Этот вид модели имеет наибольшее распространение при построении баз данных.
Таблица 1 – Структура реляционной таблицы
Имя файла | |||||
Поле | Признак ключа | Формат поля | |||
Имя (обозначение) | Полное наименование | Тип | Длина | Точность (для чисел) | N/NN |
имя1 | |||||
… | |||||
имя n |
Рассмотрим пример реляционной модели данных (таблица 2).
Таблица 2 — Детали приборов
Код | Расположение поверхностей | Дополнительная характеристика |
Тела вращения | Валы | |
Тела вращения | Втулки | |
Не тела вращения | Плоские | |
Не тела вращения | Объемные |
На рисунке 6 показано разделение таблицы 2 на две связанные таблицы.
Код | Дополнительная характеристика |
1.1 | Валы |
1.2 | Втулки |
2.1 | Плоские |
2.2 | Объёмные |
Код | Расположение поверхностей |
Тела вращения | |
Не тела вращения |
Реляционные модели данных, или реляционные базы данных, являются в настоящее время основным способом в проектировании и организации информационных систем в производстве и бизнесе.
ВИДЫ МОДЕЛЕЙ ДАННЫХ
Ядром любой базы данных является модель данных. Модель данных представляет собой множество структур данных, ограничений целостности и операций манипулирования данными. С помощью модели данных могут быть представлены объекты предметной области и взаимосвязи между ними.
Модель данных — совокупность структур данных и операций их обработки.
СУБД основывается на использовании иерархической, сетевой или реляционной модели, на комбинации этих моделей или на некотором их подмножестве [1].
Рассмотрим три основных типа моделей данных: иерархическую, сетевую и реляционную.
Иерархическая модель данных
Иерархическая структура представляет совокупность элементов, связанных между собой по определенным правилам. Объекты, связанные иерархическими отношениями, образуют ориентированный граф (перевернутое дерево), вид которого представлен на рис. 15.8.
К основным понятиям иерархической структуры относятся: уровень, элемент (узел), связь. Узел – это совокупность атрибутов данных, описывающих некоторый объект. На схеме иерархического дерева узлы представляются вершинами графа. Каждый узел на более низком уровне связан только с одним узлом, находящимся на более высоком уровне. Иерархическое дерево имеет только одну вершину (корень дерева), не подчиненную никакой другой вершине и находящуюся на самом верхнем (первом) уровне. Зависимые (подчиненные) узлы находятся на втором, третьем и т.д. уровнях. Количество деревьев в базе данных определяется числом корневых записей.
К каждой записи базы данных существует только один (иерархический) путь от корневой записи. Например, как видно из рис. 15.8, для записи С4 путь проходит через записи А и В3.
Рис. 15.8. Графическое изображение иерархической структуры БД
Пример 15.4. Пример, представленный на рис. 15.9, иллюстрирует использование иерархической модели базы данных.
Для рассматриваемого примера иерархическая структура правомерна, так как каждый студент учится в определенной (только одной) группе, которая относится к определенному (только одному) институту.
Сетевая модель данных
В сетевой структуре при тех же основных понятиях (уровень, узел, связь) каждый элемент может быть связан с любым другим элементом.
На рис. 15.10 изображена сетевая структура базы данных в виде графа.
Пример 15.5. Примером сложной сетевой структуры может служить структура базы данных, содержащей сведения о студентах, участвующих в научно-исследовательских работах (НИРС). Возможно участие одного студента в нескольких НИРС, а также участие нескольких студентов в разработке одной НИРС. Графическое изображение описанной в примере сетевой структуры, состоящей только из двух типов записей, показано на рис. 15.11. Единственное отношение представляет собой сложную связь между записями в обоих направлениях.
Рис. 15.9. Пример иерархической структуры БД
Рис. 15.10. Графическое изображение сетевой структуры
Рис. 15.11. Пример сетевой структуры БД
Реляционная модель данных
Понятие реляционный (англ. relation – отношение) связано с разработками известного американского специалиста в области систем баз данных Е. Кодда.
Эти модели характеризуются простотой структуры данных, удобным для пользователя табличным представлением и возможностью использования формального аппарата алгебры отношений и реляционного исчисления для обработки данных.
Реляционная модель ориентирована на организацию данных в виде двумерных таблиц. Каждая реляционная таблица представляет собой двумерный массив и обладает следующими свойствами:
«каждый элемент таблицы – один элемент данных;
все столбцы в таблице однородные, т.е. все элементы в столбце имеют одинаковый тип (числовой, символьный и т.д.) и длину;
каждый столбец имеет уникальное имя;
одинаковые строки в таблице отсутствуют;
порядок следования строк и столбцов может быть произвольным.
Пример 15.6. Реляционной таблицей можно представить информацию о студентах, обучающихся в вузе (рис. 15.12).
Рис. 15.12. Пример реляционной таблицы
Отношения представлены в виде таблиц, строки которых соответствуют кортежам или записям, а столбцы – атрибутам отношений, доменам, полям.
Поле, каждое значение которого однозначно определяет соответствующую запись, называется простым ключом (ключевым полем). Если записи однозначно определяются значениями нескольких полей, то такая таблица базы данных имеет составной ключ. В примере, показанном на рис. 15.12, ключевым полем таблицы является «№ личного дела».
Чтобы связать две реляционные таблицы, необходимо ключ первой таблицы ввести в состав ключа второй таблицы (возможно совпадение ключей); в противном случае нужно ввести в структуру первой таблицы внешний ключ – ключ второй таблицы.
Пример 15.7. На рис. 15.13 показан пример реляционной модели, построенной на основе отношений: СТУДЕНТ, СЕССИЯ, СТИПЕНДИЯ.
Рис. 15.13. Пример реляционной модели
СТУДЕНТ (Номер, Фамилия, Имя, Отчество, Пол, Дата рождения, Группа);
СЕССИЯ (Номер, Оценка1, Оценка2, Оценка3, Оценка4, Результат);
СТИПЕНДИЯ (Результат, Процент).
Таблицы СТУДЕНТ И СЕССИЯ имеют совпадающие ключи (Номер), что дает возможность легко организовать связь между ними. Таблица СЕССИЯ имеет первичный ключ Номер и содержит внешний ключ Результат, который обеспечивает ее связь с таблицей СТИПЕНДИЯ.