Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции ИОСУ Ч.1 _2016.docx
Скачиваний:
2
Добавлен:
31.01.2024
Размер:
2.97 Mб
Скачать

2. Модели представления данных

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

Первые иерархические и сетевые СУБД появились в начале 60-х годов. Причиной создания послужила необходимость управления миллионами записей, связанных друг с другом иерархическим образом, например, при информационной поддержке лунного проекта Аполлон. Cамая распространенная иерархическая СУБД - IMS (Information Management System) компании IBM. Первая версия системы появилась в 1968 году. Известны и другие иерархические системы: TDMS (Time-Shared Date Management System) компании Development Corporation; Mark IV Multi - Access Retrieval System компании Control Data Corporation; System - 2000 разработки SAS-Institute [6].

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

Атрибут (элемент данных) – наименьшая единица структуры иерархических данных. Обычно каждому элементу при описании БД присваивается уникальное имя. По этому имени к нему обращаются при обработке. Такой элемент данных также часто называют полем.

Запись – именованная совокупность атрибутов. Использование записей позволяет за одно обращение к базе получить некоторую логически связанную совокупность данных. Именно записи изменяются, добавляются и удаляются. Тип записи определяется составом ее атрибутов. Экземпляр записи – это конкретная запись с конкретными значениями атрибутов.

Групповое отношение – это иерархическое отношение между записями двух типов. Родительская запись (владелец группового отношения, предок) называется исходной записью, а дочерние записи (члены группового отношения, потомки) – подчиненными. Таким образом, иерархическая БД состоит из упорядоченного набора деревьев.

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

При графическом изображении (диаграмма Бахмана) групповые отношения изображают дугами ориентированного графа, а типы записей – вершинами.

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

Пример 1. Рассмотрим модель данных предприятия (рис. 5): предприятие состоит из отделов, в которых работают сотрудники. В каждом отделе может работать несколько сотрудников, но сотрудник не может работать более чем в одном отделе.

Поэтому, для ИС управления персоналом необходимо создать групповое отношение, состоящее из родительской записи ОТДЕЛ (НАИМЕНОВАНИЕ_ОТДЕЛА, ЧИСЛО_РАБОТНИКОВ) и дочерней записи СОТРУДНИК (ФАМИЛИЯ, ДОЛЖНОСТЬ, ОКЛАД). Это отношение для двух дочерних записей показано на рис. 5 а.

Для автоматизации учета контрактов с заказчиками необходимо создание еще одной иерархической структуры: заказчик - контракты с ним - сотрудники, задействованные в работе над контрактом. Это дерево будет включать записи ЗАКАЗЧИК (НАИМЕНОВАНИЕ_ЗАКАЗЧИКА, АДРЕС), КОНТРАКТ (НОМЕР, ДАТА, СУММА), ИСПОЛНИТЕЛЬ (ФАМИЛИЯ, ДОЛЖНОСТЬ, НАИМЕНОВАНИЕ_ОТДЕЛА) (рис. 5 б).

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

На рис. 5 хорошо видны недостатки иерархических БД:

1) Частично дублируется информация между записями СОТРУДНИК и ИСПОЛНИТЕЛЬ (такие записи называют парными), причем в иерархической модели данных не предусмотрена поддержка соответствия между ними.

2) Иерархическая модель реализует отношение “один ко многим” между исходной и дочерней записью, то есть одной родительской записи может соответствовать любое число дочерних. Допустим, что исполнитель может принимать участие более чем в одном контракте (т.е. возникает связь “многие ко многим”). В этом случае в БД необходимо ввести еще одно групповое отношение, в котором ИСПОЛНИТЕЛЬ будет являться исходной записью, а КОНТРАКТ – дочерней (рис. 5 в), что снова приведет к дублированию информации.

Операции над данными, определенные в иерархической модели:

  • ДОБАВИТЬ в БД новую запись. При этом для корневой записи обязательно формирование значения ключа.

  • ИЗМЕНИТЬ значение данных предварительно извлеченной записи. При этом ключевые данные не должны подвергаться изменениям.

  • УДАЛИТЬ некоторую запись и все подчиненные ей записи.

  • ИЗВЛЕЧЬ: корневую запись по ключевому значению, следующую запись (извлекается в порядке левостороннего обхода дерева), допускается также последовательный просмотр корневых записей и задание условий выборки.

Все операции изменения применяются только к одной "текущей" записи, которая предварительно извлечена из БД. Такой подход к манипулированию данными получил название "навигационного".

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

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

Соседние файлы в предмете Информационное обеспечение систем управления