Преобразование рекурсивных связей.




Преобразование сложных связей.

Под сложными здесь понимаются связи степени выше второй. Они должны быть заменены наборами бинарных связей. При этом могут вводиться дополнительные типы сущности. Пример такого преобразования был рассмотрен в п. 4.5.2.

Удаление избыточных связей.

Легко заметить, что во многих случаях пары сущностей в модели оказываются связаны посредством нескольких цепочек связей. Например, сущности Покупатель и Товар связаны связью Покупает и связями Выписывает и Включается в через сущность Накладная на продажу. Возникает вопрос: а необходимо ли такое дублирование? Нельзя ли связь Покупает удалить из модели (альтернативную пару связей удалять нельзя, поскольку в них задействована Накладная на продажу). Для ответа на сформулированный вопрос проанализируем: для выполнения каких транзакций используется удаляемая связь и возможно ли эти транзакции выполнить с помощью других связей.

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

Другой пример. Связь Товары хранятся на Складах дублируется связями через накладные на покупку и продажу. Опять же, количество любого товара на любом складе можно определить, просчитав все накладные, касающиеся интересующего товара. Но! Накладные придется просматривать не за ограниченный промежуток времени, а за все время существования системы. Кроме того, запрос о количестве товаров на складах – это самый важный и самый частый запрос в системе и время его выполнения критично для производительности всей системы учета. При таких условиях связь Хранится на не может быть признана избыточной.

Преобразование связей типа многие-ко-многим.

Связи кардинальности M:N не могут быть непосредственно реализованы в рамках реляционной модели данных. Поэтому они заменяются парами связей кардинальности 1:M с использованием дополнительных промежуточных типов сущности.

Например, связь Товары хранятся на Складах заменим на две связи кардинальности 1:M с помощью дополнительной слабой сущности Наличие (рис. 2).

 

 

Рис. 2. Преобразование связи «товары хранятся на складах»

 

В каждом конкретном экземпляре (кортеже отношения) этого типа сущности будет указываться количество определенного товара на определенном складе. Соответственно, кардинальность связи Товар имеется в Наличии будет 1:M (т.е., один и тот же товар может быть представлен в нескольких кортежах наличия, относящихся к разным складам, но каждый кортеж наличия будет ссылаться только на один товар). И 1:M для связи Склад имеет в Наличии (на один и тот же склад может ссылаться несколько кортежей наличия, но каждый из них ссылается только на один склад).

Аналогично преобразуем связи Товар включается в Накладную на покупку (продажу) с помощью дополнительных слабых типов сущности Строка накладной на покупку (продажу).

Преобразование связей, имеющих атрибуты.

Выполняется аналогично предыдущему пункту (связь Товары хранятся на Складах имеет атрибут Количество).

Преобразование рекурсивных связей.

Также выполняется с помощью дополнительных типов сущности. Например, для связи приведенной на рис. можно предложить такой вариант (рис. 3).

 

 

Рис. 3. Преобразование рекурсивной связи

 

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



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-26 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: