Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы_данных.docx
Скачиваний:
102
Добавлен:
15.06.2014
Размер:
719.51 Кб
Скачать

Раздел 2. Классификация моделей данных.

В БД традиционно выделяются следующие модели данных:

  1. Сетевой (сетевая модель данных)

  2. Иерархическая модель

  3. Реляционная модель

Из которых наибольшей общностью обладает сетевая. Частным случаем сетевой является иерархическая. Частной иерархической является реляционная.

Последующее применение правила склейки и последующих преобразований приводит описание данных к сетевому виду. Реже к иерархическому и совсем редко к реляционному.

Отправной причиной преобладание реляционной СУБД на рынке ПО является наличие алгоритмов преобразования сетевой модели к иерархическому виду, иерархические модели к реляционному виду и сетевой модели к реляционному виду.

Раздел 2.1. Иерархическая модель данных.

Множество узлов называется деревом (иерархией), если:

  1. имеется 1 узел, называемый корнем

  2. остальные узлы находятся попарно непересекающихся множествах, каждое из которых является деревом

1 – корень

2, 3, 4, 5, 6, 7, 8, 9 – семейства

Узел 3 – предок узла 8

Узел 8 – порожденный узлом 3

1,2,5 максимальные пути

1,3,7

1, 4 – минимальный путь

4, 5, 6, 7, 8, 9 – листья

Узел 7 является левым соседом узла 8

Узел 9 является правым соседом узла 8

У узла 7 нет левого узла

Левый сосед узла 3 – узел 2

В иерархии подразумеваются связи 1:М от предка к потомку.

Дерево называется сбалансированным, если:

  1. каждый узел, кроме листьев, имеет одинаковое количество потомков

  2. разница между минимальным и максимальным путем в дереве не превышает 1

Несбалансированное дерево Сбалансированное дерево

Дерево называется бинарным, если каждый узел имеет не более 2х потомков

Замечание: очень малое количество прикладных областей имеют схему данных в виде бинарных и сбалансированных деревьев.

Пример: Родословная собаки – это бинарное сбалансированное дерево.

Основное назначение рассмотренных структур – это организация поиска данных на физическом уровне, реализованном в виде индексных файлов.

Зависимость данных от структуры

Пример иерархии:

Свойство:

По экземпляру записи из отношения сотрудники. Мы не можем сказать в каком отделе он трудится и какую работу выполняет без использования связей на схеме БД. Это и есть зависимость данных от структур.

Для работы с такими структурами используется языки запросов, в которых есть операторы навигации по структуре (получить предка, получить потомка).

Правило преобразования

Для удаления зависимости данных от структуры в иерархии ключевые атрибуты предков дублируются в потомках, где они становятся неключевыми.

После преобразования по экземпляру записи из отношения «сотрудники» мы можем определить в каком отделе он трудится.

По прежнему нельзя определить какую работу сотрудник выполняет, однако этой информации в исходной схеме БД тоже не было.

Рассмотренное преобразование не добавляет новой информации (только дублирует).

Раздел 2.2. Сетевые модели данных.

Описание данных называется сетевым, если какой-либо узел имеет более 1 предка, т.е. является порожденным сразу для нескольких узлов.

Замечание: Если на схеме присутствует связь М:М, то описание сетевое

Данная структура означает, что поставщик поставляет несколько видов изделия, однако каждый вид изделия имеет только 1 поставщика. Аналогично с потребителем. Т.о. между поставщиками и потребителями неявно установлена связь М:М.

Схема данных, на которой явно присутствует связь М:М, называется сложной сетевой моделью, в противном случае простой сетевой моделью.

Для поддержания связи М:М необходимые множественные перекрестные ссылки, которые противоречат многим принципам, в том числе локальности модифицирующих воздействий.

Правило преобразования сложной сетевой структуры к простой сетевой

Если между 2мя типами записи установлена связь М:М, то формируется новый тип записи, соединяющий ключевые атрибуты исходных записей, которые также будут ключевыми в новом типе записей. Связь М:М удаляется со схемы и от старой записи к новой устанавливаются связи 1:М.

Пример. Схема преобразования схемы БД

Общие данные

Элемент данных на схеме называется общим, если по правилу склейки он может быть присоединен сразу к нескольким типам записей (приходит несколько одиночных стрелок)

Правило преобразования

Формируется новый тип записей (класс объектов), содержащий ключевые атрибуты откуда приходят одиночные стрелки. Общие данные присоединяются к новому типа записей.

Ключевыми атрибутами будут являться заимствованные ключи, общее данное не ключевое. Устанавливаются связи 1:М от старых типов записей к новому. Связи, входящие в общий элемент данных удаляются со схемы.

// Семантика общего элемента данных в этом преобразовании изменяется (детализируется)

Вновь сформированный тип записей образуется однозначной семантической интерпретацией.

Данные пересечения

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

// Однозначно идентифицированные – это значит 1му набору значений ключевых атрибутов соответствует 1 значение данного пересечения.

Правило преобразования

Формируется новый тип записей, соединяющий ключевые атрибуты записей откуда приходят сдвоенные стрелки и данное пересечение присоединяется к данному типа записей.

Импортируемые ключи становятся ключами в новом типе записей. Данные пересечения не ключевые.

Связи, установленные данному пересечению, переходят к новому типу записей.

Данное преобразование не изменяет семантику раннее сформированного отношения.

Изолированные данные

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

Пример.

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

Рекомендации:

Изолированное данное является характерной класса объекта, для которого в схеме отсутствует однозначная идентификация (ключи).

Поэтому:

  1. определяем, что это за класс объектов

  2. вводим искусственный идентификатор этого класса объектов (ID). Устанавливаем связи и применяем уже рассмотренное правило.

// Рассмотренные преобразования не затрагивают структуру уже сформированных записей, поэтому приложения, работающие со старой схемой нет необходимости изменять после применения преобразований, а это и есть основы принципа независимости данных.