3.5.3. Сетевые структуры

 

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

В сетевой структуре любой элемент может быть связан с любым другим элементом. Примеры сетевых структур приведены на рис. 3.11.

 

 

 

 

 

 

 

 

 

 

 

 

 


Рис. 3.11. Пример сетевых структур

 

Так же как и в случае древовидных структур, сетевую структуру можно описать с помощью исходных и порожденных элементов. Удобно представлять ее так, чтобы порожденные элементы располагались ниже исходных. При рассмотрении некоторых сетевых структур естественно гово­рить об уровнях, так же как и в случае древовидных структур.

Во многих сетевых структурах, задающих связи между элементами, представление отношений между ис­ходными и порожденными элементами аналогично представлению отно­шений в случае дерева: отношение исходный-порожденный является сложным (указывается сдвоенными стрелками), а отношение порожденный-исходный — простым (указывается одинарными стрелками).

На рис.3.12 показана неоднородная сетевая структура с пятью типами элементов. Ни одна из их соединяющих линий не имеет сдвоенных стрелок в обоих направлениях. Каждое отношение может рассматриваться как отношение «исходный-порожденный». Запись ЗАКАЗ-НА-ЗАКУПКУ является порожденной по отношению к записи ИЗДЕЛИЕ и исходной по отношению к записи ПАРТИЯ-ТОВАРА.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Рис. 3.12. Пример простой сетевой структуры

 

Желательно отличать структуры, в которых представление отно­шений «порожденный-исходный» является простым или не используется, от структур, в которых представление отношений между какими-то двумя типами данных является сложным в обоих направлениях. Для структур второго типа на одной из линий схемы будут сдвоенные стрел­ки, указывающие в разные стороны. Этот тип схемы назовем сложной сетевой структурой, а схему, в которой ни на одной из линий нет сдво­енных стрелок в обоих направлениях,— простой сетевой структурой. На рис.3.9 показана простая сетевая структура. Она станет сложной, если ввести отношение ЗАКАЗ-НА-ЗАКУПКУ — ИЗДЕЛИЕ, когда один заказ может быть сделан сра­зу на несколько изделий. Для образования сложной сетевой структуры достаточно двух типов элементов. Например, ПОСТАВЩИК может иметь несколько порожденных записей, потому что может по­ставляться более одного вида изделий. С другой стороны, элемент ИЗДЕЛИЕ может иметь более одного исходного элемента, поскольку это изделие может поставлять­ся различными поставщиками.

 

В некоторых случаях один элемент данных может быть связан с це­лой совокупностью других элементов данных. Например, одно изделие может поставляться несколькими поставщиками, каждый из которых установил свою цену на это изделие. Элемент данных ЦЕНА не может быть ассоциирован только с элементом ИЗДЕЛИЕ или только с элементом ПОСТАВЩИК, а должен быть связан одновременно с двумя. Информация такого рода, т. е. данные, ассоциированные с со­вокупностью элементов, называют иногда данными пересечения.

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Рис. 3.13. Пример сетевой структуры с петлей

 

Разделение сетевых структур на простые и сложные необходимо потому, что сложные структуры требуют более сложных методов физического представления. Это не всегда является недостатком, по­скольку сложную сетевую структуру можно (а в большинстве случаев и следует) преобразовать к простому виду.

 

 

К оглавлению

Назад к разделу "3.5.2. Нелинейные структуры"

Вперед к разделу "3.6. Реляционная модель данных"