Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проектирование.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
108.79 Кб
Скачать

Обсуждение локальных концептуальных моделей данных с конечными пользователями

Прежде чем завершить первый этап разработки, необходимо обсудить созданные локальные концептуальные модели данных с конечными пользователями. Концептуальная модель данных должна быть представлена ER-диаграммой и сопроводительной документацией, содержащей описание разработанной модели данных. Если в предложенной модели будут обнаружены какие-либо несоответствия, следует внести в нее необходимые изменения (скорее всего, для этого потребуется повторно выполнить один или несколько предыдущих этапов разработки). Этот процесс должен продолжаться до тех пор, пока пользователь не подтвердит, что предложенная ему модель полностью соответствует рассматриваемой предметной области.

Логическое проектирование базы данных (для реляционной модели)

Создание и проверка локальной логической модели данных для отдельных пользовательских представлений

На этом этапе каждая локальная концептуальная модель данных, созданная на этапе 1, преобразуется в локальную логическую модель данных, состоящую из ER-диаграммы реляционной схемы и сопроводительной документации.

По завершении этого этапа должна быть получена правильная, полная и непротиворечивая модель представления. Если в приложении применяется только одно представление, то на этом стадия логического проектирования базы данных, предусмотренная в методологии, заканчивается. А если имеется несколько представлений, должен быть выполнен еще один этап, на котором отдельные локальные логические модели данных объединяются в глобальную логическую модель данных организации.

Исключение особенностей, несовместимых с реляционной моделью (необязательный этап)

1. Удаление двухсторонних связей "многие ко многим" (*:*)

Если в концептуальной модели данных присутствует связь "многие ко многим" (*:*), может быть выполнена декомпозиция этой связи для выявления промежуточной сущности. Связь *:* заменяется двумя связями "один ко многим" (1:*), в которых участвует вновь выявленная сущность.

2. Удаление рекурсивных связей "многие ко многим" (*:*)

Рекурсивная связь представляет собой особый тип связи, в которой определенный тип сущности соединен связью сам с собой. Ниже перечислены три типа рекурсивных связей:

  • Рекурсивная связь "один к одному" (1:1);

  • Рекурсивная связь "один ко многим" (1:*);

  • Рекурсивная связь "многие ко многим" (*:*).

Первые две связи могут быть преобразованы в одно отношение реляционной модели без какой-либо структуризации, но если рекурсивная связь 1:* допускает необязательное участие со стороны связи "многие", то для уменьшения количества пустых значений, хранимых в базе данных, целесообразнее создать второе отношение. Способы преобразования рекурсивных связей 1:1 и 1:* рассматриваются на этапе 2.2. А если в концептуальной модели данных присутствует рекурсивная связь *:*, то следует выполнить декомпозицию этой связи для выявления промежуточной сущности.

3. Удаление сложных связей

Сложной называется связь, в которой участвуют три или более типов сущностей. Если в концептуальной модели данных присутствует сложная связь, можно выполнить ее декомпозицию для выявления промежуточной сущности. А сложная связь заменяется необходимым количеством (двухсторонних) связей 1:* со вновь выявленной сущностью. Например, трехсторонняя связь Registers в представлении Branch соответствует той ситуации, когда сотрудник компании регистрирует нового клиента в отделении (рис. 2, а). Эту связь можно упростить, введя новую сущность и определив (двухсторонние) связи между каждой из первоначальных сущностей и новой сущностью

Рис. 2. Пример преобразования связи: а) сложная связь Registers; б) декомпозиция сложной связи на три двухсторонние связи ('Registers, Processes и Agrees) и новую (слабую) сущность Registration

В этом примере в результате декомпозиции связи Registers выявлена новая (слабая) сущность Registration (Регистрация). Новая сущность связывается с первоначальными сущностями с помощью трех новых двухсторонних связей: Branch Registers Registration(В отделении проводится регистрация), Staff Processes Registration (Сотрудник компании проводит регистрацию) и Client Agrees Registration (Клиент соглашается на регистрацию), как показано на рис. 2, б.