Правила оптимизации ER-модели.
Остальные параметры отображаются атрибутами сущности Ф.
NB! Если параметр записан в элементе списка, то представлять его в сущности ЭСi вместо Ф.
8.После представления в ER всех параметров Ф надо проверить кардинальность всех связей. Не проверяется кардинальность единичного конца, указывающего на ПФ («указательный палец»). Множественность конца, обращенного к Ф, и обязательности обоих концов проверяются.
9.После добавления каждого факта в ER-модель необходимо провести оптимизацию.
10.Дать название неименованным сущностям.
Правила оптимизации ER-модели.
1. | Сущности А и В, соединенные связью , сливаются, т.е. в общую сущность собираются все атрибуты и все связи. NB! Возможно придется изменить имя сущности и перенесенных атрибутов! | |||||||||||
Не делается если связь подвижная, т.е. в разное время могут быть соединены разные экземпляры А и В. | ||||||||||||
2. | Циклы могут быть признаком избыточности или ошибок. Анализ цикла: найти «Источники» (сущности, откуда ведут две стрелки) и «Стоки» (сущности, куда ведут две стрелки). Стрелкой считаем связь . Учитываем только связи из цикла! | |||||||||||
a. | Если в цикле ровно 1 источник (И) и 1 сток (С), есть «прямая» связь И=►С и она имеет тот же смысл*, что и «окольная» связь И→В→...→С, то прямую связь удаляем. *т.е. экземпляр сущности-стока, находимый по «окольной» связи, всегда совпадает с экземпляром, находимым по «прямой» связи | |||||||||||
b. | Если в цикле несколько источников и стоков, то надо проверить, не потеряна ли диагональная связь И И или С С или общий подфакт (ПФ) двух (или более) источников, упоминающий стоки. | |||||||||||
c. | Если нет «прямой» связи И→С, то проверить, нельзя ли после удаления какой-нибудь из связей однозначно восстановить ее по «нелегальным» (т.е. обратным, неоднозначным) окольным связям (например В→С восстановить по BçИ→D→С) | |||||||||||
NB! При удалении ключевой связи надо проверить в физической модели ключ и проверить, не удалили ли вообще ключ в сущности. | ||||||||||||
3. | Сущность A, у которой нет неключевых атрибутов или связей кроме РОВНО 1й множественной обязательной связи c сущностью B сливается с В. Название остается от «множественной» сущности! NB! Возможно, придется изменить имена перенесенных атрибутов! NB! Перепроверить кардинальности перенесенных связей один к одному! | |||||||||||
Не делается | если требуется хранить список A. | |||||||||||
4. | Превращается в наследование: | Одноименные общие атрибуты переносятся в родителя, одноименные, не являющиеся общими, переименовываются уникально. | ||||||||||
5. | Превращается в наследование: | |||||||||||
Не делается | если связь подвижная, т.е. в разное время могут быть соединены разные экземпляры А и В.если есть несколько таких параллельных связей, то выбрать одну из них. | |||||||||||
6. | «Пустая» сущность С, имеющая РОВНО 2 связи (обе однозначные) превращается в связь. Кардинальность обоих концов надо проверить! NB! Если связь получается «много-ко-многим» (при стандартных связях АС и СВ), то оптимизация «декоративная», т.к. в БД связь опять заменится таблицей. | |||||||||||
Не делается: если С используется для выбора пары АВ (т.е. у С есть еще связь!). | ||||||||||||
Как сделать связь обязательной. Означает, что среди А есть «сироты» - те, у которых нет В. Можно либо: a) не хранить сирот (хранить только А, у которых есть В) b) добавить в В фиктивных «родственников» для «сирот» (не забудьте придумать отличающий их признак) c) классифицировать А на «сирот» и «не сирот» и провести связь к «не сиротам» | ||||||||||||
Действия перед преобразованием ER-модели в физ. модель. Указать Ключи сущностей, типы данных атрибутов, имена связей много-ко-многим способ реализации наследования,. дать разные короткие латинские имена (можно бессмысленные) параллельным связям приравнять коды именам пометить как «доминантные» концы связей 1-1, куда НЕ НУЖНО переносить внешний ключ.