Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции по БД.doc
Скачиваний:
8
Добавлен:
01.07.2025
Размер:
2.79 Mб
Скачать

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

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

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

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

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

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

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

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

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

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

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

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

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

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