между владельцем и членом набора. При этом не предполагается, что экземпляры
членов набора должны располагаться вблизи экземпляра набора в физической
памяти;
каждому типу набора присваивается имя, что позволяет одной и той же
паре типов объектов участвовать в нескольких взаимосвязях.
Существенное различие между сетевой и иерархической моделями данных
состоит в том, что в сетевой модели каждая запись может участвовать в любом
числе наборов. Например, в сетевой модели, представленной двумя типами наборов
«Преподаватель ведет дисциплину» и «Студент обучается дисциплине», запись-
элемент «Дисциплина» входит в оба типа наборов и по сути является связкой этих
типов наборов. Кроме того, любая запись сетевой модели может играть роль как
владельца, так и элемента набора.
Основной недостаток сетевой модели состоит в ее сложности. Прикладной
программист должен детально знать логическую структуру базы данных, поскольку
ему необходимо осуществлять навигацию среди различных экземпляров наборов и
записей, т.е. программист должен представлять текущее состояние в экземплярах
наборов при «продвижении» по базе данных. Другим недостатком является
возможная потеря данных при реорганизации базы данных. Кроме того, в сетевой
модели данных представление, используемое прикладной программой, сложнее,
чем в иерархической модели, поэтому и процедура составления прикладных
программ может оказаться сложнее.
4.7. Реляционная модель данных
В настоящее время наибольшее распространение при разработке БД получила
реляционная модель данных, которая позволяет определять:
• структуры данных;
• операции по запоминанию и поиску данных;
• ограничения, связанные с обеспечением целостности данных.
Основное ее положительное отличие от иерархической и сетевой моделей -
отсутствие связей. Связи в реляционной модели рассматриваются как объекты и
представляются следующим образом: имена (ключи) записей используются в
качестве значений атрибутов других записей. В явном виде связи могут быть
выражены, например, в диаграмме связей между объектами.
Общая структура данных в реляционной модели может быть представлена в
виде таблицы, в которой каждая строка соответствует логической записи, а
заголовки столбцов являются названиями полей (атрибутов) в записях.
Каждая запись в реляционной модели имеет уникальное имя (первичный
ключ), которое в общем случае состоит из значений нескольких атрибутов. Ключ
позволяет однозначно идентифицировать запись среди множества других записей.
Если ключ записи состоит из значений нескольких атрибутов, то он называется
составным, а если из одного атрибута - простым. Например, любая запись таблицы
«Поставки» идентифицируется составным ключом: {Код поставки, Код поставщика
и Код товара}. Имена всех записей хранятся в самих записях (что не имело места
для иерархической и сетевой моделей). Чтобы связать две таблицы, необходимо
ключ первой таблицы ввести в состав ключа второй таблицы (возможно совпадение