
- •Первая часть лекций по курсу базы данных
- •1. Введение в банки данных
- •1.1. Понятие банка данных
- •1.2. Компоненты банка данных
- •1.3. Пользователи банков данных
- •1.4. Классификация банков данных
- •Классификация БнД по экономико-организационным признакам.
- •1.5. Этапы проектирования баз данных
- •2. 1. Общие сведения об инфологическом моделировании
- •2. 2. Построение модели “объект — свойство — отношение”
- •2.3. Сравнение методик построения er-моделей
- •Тема : Схемы и подсхемы.
- •Тема: Модели данных.
- •Сетевые структуры.
- •Реляционные бд.
- •Тема: Манипулирование отношениями (Реляционная алгебра).
- •Тема: Принципы нормализации.
- •Тема: Организационные проблемы:
- •Целостность данных. Контроль типов.
- •Восстановление данных. Типы отказов.
- •Отказы транзакций.
Сетевые структуры.
Если порожденный элемент в отношении между данными имеет более одного исходного элемента, то это отношение описывают в виде сетевой структуры.
Любой элемент в сетевой структуре может быть связан с любым другим элементом. На рисунке 19 приведены примеры сетевых структур.
Рис.19
В первом примере самый нижний узел имеет четыре исходных. Во втором примере на рисунке 19 каждый порожденный элемент имеет два исходных. В третьем примере не указано направление отношений, но какой бы узел не был самым нижним, у него будет два исходных.
Структура на одной из линий схемы, которой сдвоенные стрелки, указывающие в разные стороны, называется сложной сетевой структурой, а схему, в которой ни на одной из линий нет сдвоенных стрелок, в обоих направлениях – простой сетевой структурой. На рисунке 20 показана простая сетевая структура.
Рис.20
Для существования сложной сетевой структуры достаточно двух типов записей. На рисунке 21 пример, в котором запись Поставщик может иметь несколько порожденных, потому что поставщик может поставлять более одного вида товара.
Запись Партия_товара может иметь более одной исходной записи, так как этот товар может поставляться различными поставщиками.
Рис.21
Ситуация, в которой предшественник узла является в то же время его последователем, называются циклом. Отношения исходный – порожденный образуют при этом замкнутый контур. Например, завод выпускает различную продукцию. Некоторые изделия производятся на других заводах. С одним контрактом может быть связано производство нескольких изделий. Представление этих отношений и образует цикл (рисунок 22). Но не все СУБД способны представлять циклы. Специальным типом цикла является цикл, состоящий из одного только типа записи, то есть тип порожденной записи совпадает с типом исходной записи. Эта ситуация называется петлей.
Генеалогическое дерево можно представить схемой, приведенной на рисунке 23. Большинство других однородных структур можно упростить аналогично, но в большинстве СУБД петли не допускается.
Рис.22 Рис. 23
Представление однородного дерева простой схемой с петлями.
Сетевая структура может быть приведена к более простому виду введением избыточности.
Любую простую сетевую структуру можно представить с помощью дерева или множества деревьев с избыточными элементами. Каждое отношение со сложными связями в обоих направлениях должно быть заменено двумя древовидными структурами. Дублирование блоков не вызовет избыточности на уровне физического хранения данных (рисунок 24).
И
нтерес
к тому, представлены ли отношения
сетевыми или древовидными структурами,
объясняется тем, что большинство способов
физического размещения данных, являющихся
эффективными для деревьев, оказываются
неэффективными для сетевых структур.
Поэтому одни СУБД работают с сетевыми
структурами, а другие – только с
древовидными. Именно способы физической
организации данных определяют ограничения
на типы допустимых схем.
≡
≡
Преобразование сети с рис. 21
Рис. 24