Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Проектирование Баз Данных - Сибилев, 2007

.pdf
Скачиваний:
156
Добавлен:
11.05.2015
Размер:
1.73 Mб
Скачать

161

Исследование этого фрагмента представления риэлтера можно продолжить. Собственники, покупатели и арендаторы недвижимости являются его клиентами. Наборы атрибутов соответствующих сущностей пересекаются. Можно подумать о представлении сущностей СОБСТВЕННИК, ПОКУПАТЕЛЬ и АРЕНДАТОР в виде подтипов супертипа КЛИЕНТ. Возможный результат показан на рис. 6.3.

Здесь символ 'O' внутри значка связи «супертип–подтип» означает, что подтипы КЛИЕНТа пересекаются. Один и тот же клиент может быть покупателем, собственником и арендатором объектов недвижимости, разумеется, в различных сделках.

Если наборы атрибутов типов сущностей СОБСТВЕННИК, ПОКУПАТЕЛЬ и АРЕНДАТОР совпадают, то, возможно, нет смысла выделять подтипы КЛИЕНТа. Результат объединения показан на рис. 6.4.

КЛИЕНТ

о

ПОКУПАТЕЛЬ

СОБСТВЕННИК

АРЕНДАТОР

1

1

N

 

предложил

 

 

M

 

купил

НЕДВИЖИМОСТЬ

арендует

 

 

 

d

M

M

НЕДВИЖИМОСТЬ

НЕДВИЖИМОСТЬ

ДЛЯ ПРОДАЖИ

ДЛЯ АРЕНДЫ

Рис. 6.3 — Генерализация сущностей СОБСТВЕННИК,

ПОКУПАТЕЛЬ и АРЕНДАТОР

 

162

 

 

КЛИЕНТ

N

1

1

 

 

 

предложил

 

купил

M

арендует

 

НЕДВИЖИМОСТЬ

 

d

 

M

 

M

НЕДВИЖИМОСТЬ

 

НЕДВИЖИМОСТЬ

ДЛЯ ПРОДАЖИ

 

ДЛЯ АРЕНДЫ

Рис. 6.4 — Объединение сущностей СОБСТВЕННИК,

ПОКУПАТЕЛЬ и АРЕНДАТОР

Клиентами риэлтера могут быть физические лица или организации. Наборы реквизитов физического лица и организации различаются. Может быть полезна специализация типа сущности КЛИЕНТ по этому признаку. Результат специализации для варианта, приведённого на рис. 6.3, показан на рис. 6.5. Здесь тип сущности КЛИЕНТ представлен в двух «ракурсах».

В реальной задаче вариантов генерализации и специализации может быть очень много. Опытный аналитик обязательно исследует их. Даже если впоследствии все они будут отвергнуты, труды не пропадут даром. Их результатом будет лучшее понимание проблем пользователя и более высокое качество модели.

Результаты генерализации/специализации обязательно документируются. В словарь данных помещаются сведения о новых сущностях (супертипах и подтипах), описания новых связей, обновляются сведения о принадлежности атрибутов типам сущностей, сведения о первичных и альтернативных ключах.

163

ФИЗИЧЕСКОЕ

ОРГАНИЗАЦИЯ

ЛИЦО

 

 

 

 

 

d

 

КЛИЕНТ

о

ПОКУПАТЕЛЬ

СОБСТВЕННИК

АРЕНДАТОР

1

 

1

N

 

 

предложил

 

купил

 

M

арендует

 

НЕДВИЖИМОСТЬ

 

 

 

d

 

M

 

 

M

НЕДВИЖИМОСТЬ

НЕДВИЖИМОСТЬ

ДЛЯ ПРОДАЖИ

 

ДЛЯ АРЕНДЫ

Рис. 6.5 — Специализация сущности КЛИЕНТ

Этап 1.7. Создание ER-диаграммы

Наброски и рабочие варианты диаграмм создаются с самого первого шага анализа. Они помогают аналитику определить направление дальнейших исследований, подготовиться к опросам пользователей, подобрать другие источники информации о предметной области.

Полный вариант диаграммы «сущность-связь» создаётся тогда, когда аналитик намерен обсудить модель с конечным

164

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

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

Цель обсуждения: оценить степень корректности и полноты модели.

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

Обычно в первом варианте модели обнаруживаются несоответствия. По результатам обсуждения в модель следует внести изменения, повторив шаги 1.1 1.7, и вновь обсудить результаты с пользователем.

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

Контрольные вопросы

1. Для чего предназначена локальная концептуальная мо-

дель?

2.Что является исходными данными для локальной концептуальной модели?

3.Перечислите этапы создания локальной концептуальной модели.

4.Какие виды работ выполняются на этапе определения типов сущностей?

165

5.Какие виды работ выполняются на этапе определения типов связей?

6.Какие виды работ выполняются на этапе определения атрибутов сущностей и связей?

7.Какие виды работ выполняются на этапе определения доменов?

8.Какие виды работ выполняются на этапе определения

ключей?

9.В каких случаях может быть полезной генерализация/специализация типов сущностей?

10.Опишите завершающие действия этапа локального концептуального моделирования.

166

8 МЕТОДОЛОГИЯ ЛОГИЧЕСКОГО МОДЕЛИРОВАНИЯ РЕЛЯЦИОННЫХ БАЗ ДАННЫХ

Цель фазы логического моделирования — создание обобщённой модели данных организации на основе локальных концептуальных моделей и с использованием конкретного способа структурирования данных. Виды работ, выполняемых в ходе логического моделирования, зависят от типа целевой СУБД. Перечень этапов и видов работ, выполняемых на фазе логического моделирования реляционной базы данных (РБД) приведён в п. 6.4.2. В настоящем разделе эти работы описаны детально.

8.1Построение и проверка локальной логической модели

Цель этапа — определить набор отношений для представления сущностей, связей и атрибутов локальной концептуальной модели данных пользователя.

Этап 2.1. Очистка локальной концептуальной модели от нежелательных элементов

Локальная концептуальная модель может содержать элементарные конструкции, которым в РМД соответствуют структурные единицы — отношения (см. п. 2.6). Это композитные и многозначные атрибуты, связи степени n 2, бинарные связи типа M:N и связи с атрибутами. Все такие элементы, встречающиеся в локальной концептуальной модели, должны быть предварительно преобразованы в сущности и бинарные связи типа 1:M. Это и называется очисткой концептуальной модели.

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

Шаг 1. Преобразование бинарных связей типа M:N. Реляционная модель данных поддерживает только бинар-

ные связи типа 1:M. Связь отношений реализуется как ссылка

167

из кортежа отношения–потомка на кортеж отношения–родителя. В связи типа M:N нет родителя и потомка. В терминах РМД такая связь представляется отношением (см. п.2.6). Кортежи этого отношения представляют факты соответствия экземпляров сущ- ностей–участниц связи. В каждом конкретном случае такому отношению можно сопоставить концепцию, существующую в голове пользователя. Это означает, что в концептуальной модели бинарную связь типа M:N можно заменить сущностью. Новая сущность должна быть потомком в бинарных связях с сущно- стями–участницами преобразуемой связи типа M:N. Эта сущность всегда слабая. Её экземпляры не могут существовать вне связей с обеими родительскими сущностями.

Пример преобразования приведён на рис.8.1. В голове пользователя, обрабатывающего факты получения товаров от поставщиков, существует концепция ПОСТАВКА. До преобразования она скрыта в связи «выполнил/включён в», а после преобразования отражена в модели явно.

Шаг 2. Преобразование связей высших степеней.

Каждая связь степени n > 2 должна быть заменена в очищенной модели слабой сущностью. Как и в предыдущем случае, эта новая сущность является потомком в n бинарных связях типа 1:M. Родителями в этих связях выступают сущности– участницы n-арной связи.

ПОСТАВЩИК

ПОСТАВЩИК

ТОВАР

M

1

1

поставил/

выполнил

включён в

 

 

поставлен

 

 

 

M

N

N

ПОСТАВКА

ТОВАР

 

 

а

 

б

Рис. 8.1— Преобразование связи M:N:

а исходная связь; б результат преобразования

168

Пример преобразования приведён на рис. 8.2. Как и в предыдущем случае, в голове пользователя существует концепция ЗАНЯТИЕ, которая после преобразования отражена в модели явно.

 

ПРЕПОДАВАТЕЛЬ

ГРУППА

 

1

1

ПРЕПОДАВАТЕЛЬ

 

 

M

 

 

ГРУППА

M

M

ЗАНЯТИЕ

 

M

M

M

ДИСЦИПЛИНА

1

ДИСЦИПЛИНА

а

б

Рис. 8.2 — Преобразование n-арной связи:

а исходная связь; б результат преобразования

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

Унарные связи, как и бинарные, могут иметь тип 1:1, 1:М или M:N. Каждая унарная связь типа M:N или 1:М обязательно должна быть заменена слабой сущностью. Новая сущность является потомком в двух бинарных связях с одной и той же родительской сущностью.

Пример преобразования приведён на рис. 8.3. Теперь в модели явно отражена концепция КОМПОНЕНТ — часть изделия, сама являющаяся изделием.

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

Заметим, что нередко наличие унарных связей в модели указывает на желательность специализации. Следует попытаться выделить подтипы сущности и рассмотреть связи между ними.

169

ИЗДЕЛИЕ

 

 

 

 

ИЗДЕЛИЕ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

М

 

 

N

1

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

М N

КОМПОНЕНТ

аб

Рис. 8.3 — Преобразование унарной связи M:N: а исходная связь; б результат преобразования

Например, пусть изделием с точки зрения пользователя являются:

ДЕТАЛЬ — неделимая часть изделия,

УЗЕЛ — отдельная часть изделия, состоящая из двух и более деталей,

ГОТОВОЕ ИЗДЕЛИЕ — собранная из УЗЛов товарная единица, выпускаемая предприятием.

Тогда в результате специализации типа сущности ИЗДЕЛИЕ качество модели явно улучшится, а унарная связь, изображённая на рис. 8.3а), не появится (см. рис. 8.4).

ИЗДЕЛИЕ

 

d

 

ДЕТАЛЬ M

N УЗЕЛ M

ГОТОВОЕ

N ИЗДЕЛИЕ

Рис. 8.4 — Специализация, устраняющая унарную связь

Шаг 4. Преобразование связей с атрибутами.

Каждая связь с атрибутами, независимо от её типа, обязательно должна быть преобразована в слабую сущность. Этой сущности назначаются все атрибуты связи. Пример преобразования показан на рис. 8.5.

170

ПОСТАВЩИК

ПОСТАВЩИК

ТОВАР

1

1

1

Номер

 

 

накладной

 

 

поставил/

выполнил

включён в

 

 

Дата поставлен

Количество

 

N

M

N

 

ПОСТАВКА

ТОВАР

 

 

 

 

Номер

Дата

Количество

 

накладной

 

 

 

а

 

б

 

Рис. 8.5 — Преобразование связи с атирбутами: а исходная связь; б результат преобразования

Здесь связь с атрибутами «поставил/поставлен» заменена слабой сущностью ПОСТАВКА и двумя бинарными связями типа 1:М. Новые связи не имеют атрибутов.

Шаг 5. Преобразование многозначных атрибутов.

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

Шаг 6. Преобразование композитных атрибутов.

Каждый композитный атрибут должен быть заменён соответствующим множеством простых атрибутов.

Примеры преобразования многозначного и композитного атрибутов приведены на рис. 8.6.

Шаг 7. Проверка целесообразности связей типа 1:1.

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