3.4. Сетевая модель данных
В сетевой модели объекты предметной области объединяются в сеть. Элементами такой сетевой структуры являются линейные структуры данных. Иерархическая структура является частным случаем сетевой. Связи в сетевой структуре определяются так же, как и в иерархической. Заметим, что при определении связей в сетевой структуре допустимы следующие положения: − в сетевой структуре может быть несколько главных элементов (корней) или главный элемент вообще может отсутствовать; − допускается наличие более одной связи между двумя элементами структуры; − подчиненный элемент может иметь более одного старшего; − допускаются циклические связи; − возможно наличие связей между экземплярами одного и того же элемента структуры. Поясним различие между понятиями элемент структуры (типом записи) и экземпляр элемента структуры (экземпляром записи). Студенты – является типом структуры, а «1112 Иванов И.И. 1987… » является экземпляром элемента структуры. Таким образом в БД может иметься один или несколько экземпляров элемента структуры или, что тоже верно, в БД может существовать любое множество экземпляров записи некоторого типа.
34 На рис. 3.3. приведен пример простой сетевой структуры.
СТУДЕНТЫ | ПРЕПОДАВАТЕЛИ | ||
№ зачетной книжки | |||
№ зачетной книжки | |||
ФИО студента | |||
ФИО студента | |||
. . . | |||
. . . |
УСПЕВАЕМОСТЬ | ПЛАТА | ДИСЦИПЛИНА | ||
ЗА ОБУЧЕНИЕ | Наименование | |||
Наименование | ||||
дисциплины | дисциплины | |||
Год обучения | ||||
Семестр | Сумма | Нагрузка | ||
Количество | ||||
Оценка | Дата оплаты | |||
семестров | ||||
КОНТРОЛЬНЫЕ | ||||
ТОЧКИ | ||||
Наименование | ||||
дисциплины | ||||
Семестр | ||||
№ контрольной | ||||
точки | ||||
Оценка |
Рис. 3.3 Сетевая структура данных В этом примере мы расширили иерархическую структуру, предложенную в предыдущем подразделе, добавив два элемента: ПРЕПОДАВАТЕЛИ и ДИСЦИПЛИНА, предположив, что один преподаватель может читать лекции по нескольким дисциплинам (связь 1:М). Элемент ДИСЦИПЛИНА также связан с элементом УСПЕВАЕМОСТЬ (1:М). Таким образом, в элементах УСПЕВАЕМОСТЬ и КОНТРОЛЬНЫЕ ТОЧКИ можно опустить поля НАИМЕНОВАНИЕ ДИСЦИПЛИНЫ, поскольку при установке соответствующих связей, автоматически добавятся ключевые поля старших структур в дочерние. Операции по обработке данных в сетевой модели аналогичны соответствующим операциям для иерархической модели. Основным достоинством сетевой модели является ее универсальность и возможность реализации связей многие-ко-многим. Главным
35 недостатком является ее сложность, разработчик должен детально знать структуру всей БД, даже той части, которую не затрагивает его программа, поскольку необходимо осуществлять навигацию среди различных элементов структуры. Следующим шагом в развитии моделей данных использование реляционной модели данных при проектировании БД, которая из-за своей простоты и универсальности заняла прочное место в современных системах управления базами данных. Контрольные вопросы 1. Перечислите дореляционные модели данных. 2. Дайте определения физической и логической структуры данных. 3. Назовите правила построения иерархических структур. 4. Назовите и кратко охарактеризуйте типовые операции по управлению данными в дореляционных структурах.
36 4. РЕЛЯЦИОННАЯ МОДЕЛЬ 4.1. Основные понятия реляционной модели 4.1.1. Общие сведения Использование реляционной модели данных было предложено доктором Э.Ф. Коддом в 1970 г. Реляционная модель основана на теории отношений [7], при проектировании БД применяются строгие методы, построенные на нормализации отношений (глава 6, настоящего пособия). Доктор Кодд, в своей статье [8] отмечает, что реляционная модель данных обеспечивает ряд возможностей, которые делают управление БД и их использование относительно легким, устойчивым по отношению к ошибкам и предсказуемым. Наиболее важные характеристики реляционной модели заключаются в следующем [9]: • реляционная модель описывает данные с их естественной структурой, не добавляя каких-либо дополнительных структур, необходимых для машинного представления или для целей реализации; • она обеспечивает математическую основу для интеграции выводимости, избыточности и непротиворечивости отношений; • реляционная модель позволяет добиться реальной независимости данных от их физического представления, от связей между данными и от способов реализации, связанных с эффективностью и подобными заботами. Благодаря доктору Э.Ф. Кодду, компания IBM в начале 70-х годов начала разработку нескольких коммерческих реляционных СУБД. В начале 80-х годов такие гиганты информационной индустрии, как Oracle Corporation, Ingres Corp., IBM и других более мелких организа- ций предложили ряд систем, наглядно демонстрирующих возможность применения реляционной модели для разработки баз данных, хранящих информацию о любой предметной области, а также возможность реализовывать на их основе гибкие пользовательские приложения. Единственным ограничением для широкомасштабного внедрения реляционных СУБД являлась низкая производительность средств вычислительной техники. Появление и стремительное распространение персональных компьютеров, а также простота управления реляционной БД способствовали быстрому расширению рынка реляционных СУБД и признанию таких систем разработчиками и пользователями приложений, построенных с использованием этих БД.
37 4.1.2. Смысл понятий реляционной модели Основными понятиями структурной части баз данных, строящихся на реляционных моделях, являются: • отношение; • тип данных; • домен; • атрибут; • кортеж; • первичный ключ; Смысл этих понятий наглядно поясним на примере отношения СТУДЕНТЫ, представленного на рис. 4.1.
Текстовый | Числовой | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Коды | ФИО | Номера | Пол | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
студентов | студентов | групп | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
P.K. | (первичный | ключ) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ID_Stud | ФИО | Номер | Пол | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
группы | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1 | Иванов И.И. | 422-1 | М | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2 | Петров П.П. | 422-1 | М | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3 | Иванов И.И. | 422-2 | М |
Отношение «Студенты»
Типы данных Дата/время Домены Дата рожденья студентов А т р ибут Схема отношения Дата рождения
12.06.1980 | кортеж |
11.10.1979 | |
03.09.1980 |
Рис. 4.1. Отношение СТУДЕНТЫ В реляционной модели данные представляются в виде плоских таблиц, называемых отношениями. Столбец таблицы называется атрибутом или полем, строка — кортежем отношения. Рассмотрим более подробно основные понятия и определения, используемые в реляционной модели данных.
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. Набор Работает между двумя типами записей Отдел и Сотрудник
1 Структура сетевой модели
Сетевой моделью отображается последовательность выполнения и количественные характеристики (показатели) работ из комплекса работ того или иного технологического процесса, обеспечивающего достижение определенного результата. Изображение сетевой модели ориентированным графом (орграфом) называется сетевым графиком.
Работы на сетевом графике «работы – дуги» изображаются дугами между вершинами событий начала и окончания работы (рисунок 1.1). Каждая работа обозначается буквой и кодируется парой чисел (i, j), обозначающих номера событий начала и окончания работы соответственно.
Рисунок 1.1 – Пример сетевого графика комплекса работ
Иногда работы комплекса изображаются вершинами, а дугами показывается последовательность работ. Сетевой график «работы – вершины» не содержит событий, фиктивных работ, но получается более громоздким, чем сетевом графике «работы–дуги», так как событий обычно значительно меньше, чем работ.
Сетевой график «работы – дуги» содержит работы действительные, фиктивные (зависимые), ожидания, и события исходное, промежуточное, завершающее, целевые и контрольные (рисунок 1.2).
Рисунок 1.2 – Элементы сетевой модели
Действительная работа – трудовой процесс, имеющий некоторую продолжительность и требующий людских, материальных, финансовых ресурсов.
Количественной характеристикой действительной работы является объем работы, например, трудоемкость в человеко-часах.
Примерами действительных работ являются технологические операции технического обслуживания, ремонта изделия.
Фиктивная работа обозначает логическую зависимость между действительными работами, не требует ресурсов и имеет нулевую продолжительность. На сетевом графике фиктивная работа изображается штриховой дугой.
Ожидание – некоторый процесс, не требующий ресурсов, но имеющий определенную продолжительность.
Например, остывание металла отливки.
Исходным событием является начало выполнения комплекса работ, не имеет предшествующих работ (событие 0).
Промежуточное событие – результат окончания одной или нескольких работ, который обеспечивает возможность начать одну или несколько последующих работ (события 1; 2; 3; 4).
Завершающее событие указывает на окончание всего комплекса работ и не имеет следующих за ним работ (событие 5).
Целевое событие означает достижение основной или промежуточной цели. Комплекс работ по числу целевых событий подразделяют на одноцелевые и многоцелевые.
Контрольное событие является существенным для задач планирования. Для контрольного события может планироваться дата свершения.
Любая последовательность работ, в которой конечное событие предыдущей работы является начальным событием последующей работы, называют путём и обозначают буквой L с перечислением всех событий пути L(i1, i2,…, in).
Последовательности работ, соединяющих исходное и завершающее события, исходное и промежуточное события, промежуточное и завершающее события и, наконец, два промежуточных события, образуют соответственно полный, предшествующий событию, следующий за событием пути и путь между событиями.
Например, в сетевом графике на рисунке 1.1 пути L(0, 1, 3, 4, 5), L(0, 1, 2, 4, 5) являются полными, путь L(0, 1, 2) предшествует событию 2, путь L(2, 4, 5) следует за событием 2, L(2, 4) – единственный путь между событиями 2 и 4.