Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 2(СУБД).doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
127.49 Кб
Скачать

Иерархическая реализация

Д1 Д2 Д1 болт синий Д2 гайка красная

П1 П2 П1 П2 П3

П1 Иванов 20 Москва 10 П1 Иванов 20 Москва 10

П2 Петров 40 Самара 30 П2 Петров 40 Самара 30

П3 Кротов 10Москва 20

Сетевая реализация

Д1 болт синий Д2 гайка красная

10 10 30 40 20

П1 Иванов 20 Москва П2 Петров 40 Самара П3 Кротов 10 Москва

П4 Зотов 30 Петербург

Рис.8. Иерархическая и сетевая реализации концептуальной схемы

Трудности, возникающие при выполнении операций обработки данных.

Добавление новых данных, например, нового поставщика (П4, Зотов,30, Петербург).

В реляционной реализации по способу 2 нужно добавить один кортеж в соответствующее отношение Post.

В иерархическую реализацию нельзя включить нового поставщика, пока он не начнет поставлять какую-либо деталь, так как без детали нельзя вставить в дерево новую вершину, соответствующую поставщику П4. Аналогичные трудности возникнут и при включении нового поставщика в реляционную реализацию по способу 1.

В сетевую реализацию следует просто добавить изолированную вершину с информацией о новом поставщике (см. рис.8).

Удаление , например, поставки. Пусть поставщик П2 перестал поставлять деталь Д1.

В реляционной реализации по способу 2 удаление поставки сводится к поиску и удалению соответствующего кортежа из отношения Post_det , а по способу 1 может привести к потере всей информации о поставщике П2, если он поставлял только деталь Д1.

В иерархической реализации необходимо в дереве с корневой вершиной Д1 удалить концевую вершину с поставщиком П2.

В сетевой реализации надо разорвать дугу, соединяющую количество 30 и деталь Д1, и добавить новую дугу от количества 10 к Д1 (показана пунктиром на рис.8).

Модификация данных. Пусть поставщик П2 переехал из Самары в Воркуту.

В реляционной реализации по способу 2 надо исправить город в одном кортеже отношения Post , в сетевой - также внести исправление в одну вершину. В иерархической - потребуется вносить изменения в несколько вершин, возможно, в более, чем одном дереве. В худшем случае это может привести к просмотру и модификации всей БД. Если при этом в какой-то вершине ошибочно не сделать изменений , то можно получить противоречивые данные. Противоречивоcть данных может появиться и в реляционной реализации по способу 1.

Итак, перечислим достоинства и недостатки каждой модели данных.

Достоинства

реляционной модели данных:

  • простота и доступность для понимания;

  • представление как информации, так и связей единым образом в виде таблиц-отношений;

  • симметричная реализация симметричных запросов;

  • эффективная реализация алгоритмов обработки данных;

  • мощный математический аппарат поддержки (реляционная алгебра и реляционное исчисление);

иерархической модели данных:

  • дерево отражает естественные связи в реальных данных;

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

сетевой модели данных:

  • сеть отражает естественные связи в реальном мире;

  • почти симметричная реализация симметричных запросов;

  • достаточно простая и эффективная реализация основных алгоритмов обработки данных.

Исторически первыми были именно СУБД сетевого типа, разработчиком которых явилась группа CODASYL (the Conference on Data Systems Languages).

Недостатки

реляционной модели данных:

  • трудности при реализации иерархий, например, повторяющихся групп (используются специальные приемы);

  • необходимость организации данных с использованием сильных нормальных форм, хотя бы третьей нормальной формы (отношения Post, Det и Post_det в примере 3 находятся в третьей нормальной форме, а отношение Postavka - в первой);

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

иерархической модели данных:

  • несимметричная реализация симметричных запросов;

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

сетевой модели данных:

  • сложность связей;

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

В настоящее время наибольшее распространение получила реляционная модель данных в силу своих явных преимуществ или реляционная модель с элементами иерархической.