- •2. Проблемы проектирования интегрированных баз данных
- •2.1. Этапы проектирования
- •Физическая структура бд
- •2.2. Проектирование субд - независимого концептуального представления данных
- •2.3. Проблемы проектирования субд - ориентировного концептуального представления данных
- •Иерархическая реализация
- •Сетевая реализация
Иерархическая реализация
Д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), поэтому результат всецело зависит от опыта и интуиции разработчика.
В настоящее время наибольшее распространение получила реляционная модель данных в силу своих явных преимуществ или реляционная модель с элементами иерархической.
