- •Лекция 8. Методы логического проектирования баз данных реляционного типа
- •1. Удаление связей типа m:n
- •2. Удаление сложных связей
- •3. Удаление рекурсивных связей
- •4. Удаление связей с атрибутами
- •5. Удаление множественных атрибутов
- •6. Перепроверка связей типа 1:1
- •7 . Удаление избыточных связей
- •Этап 2.2. Определение набора отношений исходя из структуры локальной логической модели данных Цель Определение набора отношений на основе локальной логической модели данных.
- •Этап 2.3. Проверка модели с помощью правил нормализации Цель Проверка локальной логической модели данных с использованием технологии нормализации.
- •1. Анализ имен сущностей и их первичных ключей
- •2. Анализ имен связей
- •3. Слияние общих сущностей из отдельных локальных моделей
- •4. Включение (без слияния) сущностей, уникальных для каждого локального представления
- •5. Слияние общих связей из отдельных локальных моделей
- •6. Включение (без слияния) связей, уникальных для каждого локального представления
- •7. Проверка на наличие пропущенных сущностей и связей
- •Этап 3.4. Создание окончательного варианта диаграммы „сущность-связь" Цель Создание окончательного варианта диаграммы "сущность-связь", отображающей глобальную логическую модель данных предприятия.
1. Удаление связей типа m:n
Если в концептуальной модели присутствуют связи типа M:N ("многие ко многим"), то их следует устранить путем определения некоторой промежуточной сущности (см. раздел 5.2.1). Связь типа M:N заменяется двумя связями типа 1:М, устанавливаемыми со вновь созданной сущностью. В качестве примера рассмотрим связь типа M:N Newspaper Advertises Property (Газета печатает объявления об объектах, сдаваемых в аренду), представленную на рис. 8.1, а. С целью устранения связи Advertises мы определяем промежуточную сущность Advert и создаем две новых связи типа 1:М (Lists и Advertisedin). В результате связь Advertises типа M:N будет заменена двумя связями — Newspaper Lists Advert и Property Advertisedin Advert (как показано на рис. 8.1, б).
Обратите внимание: сущность Advert показана как слабая сущность, поскольку ее существование зависит от сущностей-владельцев, а именно от сущностей Newspaper и Property.
2. Удаление сложных связей
Сложной называется связь, существующая между тремя и больше типами сущностей (см. раздел 5.1.3). Если в концептуальной модели присутствует сложная связь, ее следует устранить с помощью промежуточной сущности. Сложная связь заменяется необходимым количеством бинарных связей типа 1:М, устанавливаемых со вновь созданной сущностью. Например, тройная связь Leases (Сдает внаем), отражает отношения, существующие между оформляющим аренду работником компании, земельным участком и арендатором — как показано на рис. 8.2, а. Эту сложную связь можно упростить путем введения новой сущности и определения бинарных связей между нею и каждой из исходных сущностей сложной связи. В нашем примере связь Leases можно устранить посредством введения новой слабой сущности с именем Lease Agreement. Вновь созданная сущность будет связана с исходными сущностями тремя новыми бинарными связями:
S
taff
Organizes
Lease_Agreement,
Property AssociatedWith Lease Agreement и Renter Holds Lease_Agreement - как показано на рис. 8.2, б.
3. Удаление рекурсивных связей
Рекурсивными называются такие связи, в которых сущность некоторого типа взаимодействует сама с собой (см. раздел 5.1.3). Если концептуальная модель содержит рекурсивные связи, они должны быть устранены посредством определения некоторой промежуточной сущности. Например, для отображения ситуации, когда один из работников руководит группой других работников, может быть установлена рекурсивная связь типа "один ко многим" (1:М) Staff Supervises Staff — как показано на рис. 8.3, а.
Рекурсивная природа этой связи требует особого подхода при работе с ней как на этапе логического проектирования, так и на этапе физической реализации базы данных. Для упрощения данной рекурсивной связи типа 1:М мы заменим ее вновь созданной слабой сущностью Allocated Staff и дополнительной связью типа 1:1 с именем SupervisedBy — как показано на рис. 8.3, б.
Удаление рекурсивной связи типа M:N выполняется так же, как и бинарных связей типа M:N, описанных выше.
4. Удаление связей с атрибутами
Если в концептуальной модели присутствуют связи, имеющие собственные атрибуты, они должны быть преобразованы путем создания новой сущности (см. раздел 5.1.4). Например, рассмотрим ситуацию, когда требуется фиксировать количество рабочих часов, отработанных временным персоналом каждого из отделений предприятия (рис. 8.4, а). Связь Staff WorksAt Branch имеет атрибут с именем Hours_Worked (Отработано часов). Преобразуем связь VorksAt в слабую сущность с именем Branch_Allocation, которой назначим атрибут Hours_Worked, после чего создадим две новых связи типа 1:М, как показано на рис. 8.4, б.
