
- •1. Описание предметной области Спецификация требований
- •1.1. Требования к данным
- •1.2. Требования к транзакциям.
- •2. Построение локальной концептуальной модели данных
- •2.1. Определение типов сущностей
- •Документирование выделенных типов сущностей
- •2.2. Определение типов связей.
- •2.3. Определение кардинальности и уровня участия отдельных типов связи.
- •Документирование типов связей
- •2.4. Определение атрибутов и связывание их с типами сущностей и связей.
- •2.5. Определение атрибутов, являющихся потенциальными и первичными ключами.
- •Документирование выделенных атрибутов
- •2.6. Определение доменов атрибутов
- •2.7. Специализация/генерализация типов сущностей.
- •2.8. Создание диаграммы «сущность-связь»
- •2.9. Обсуждение локальной концептуальной модели с пользователем
- •3. Построение и проверка локальной логической модели данных
- •3.1. Преобразование концептуальной модели данных в логическую модель
- •3.1.1. Удаление связей типа m:n
- •3.1.2. Удаление сложных связей
- •3.1.3. Удаление рекурсивных связей.
- •3.1.4. Удаление множественных атрибутов
- •3.1.5. Перепроверкасвязей типа 1:1
- •3.1.6. Удаление избыточных связей
- •3.1.7. Создание диаграммы «сущность-связь»
- •3.2. Определение набора отношений исходя из структуры локальной логической модели данных.
- •3.3. Проверка модели с помощью правил нормализации.
- •3.4. Проверка модели в отношении транзакций пользователей.
- •3.5. Определение требований поддержки целостности данных.
- •3.5.1. Обязательные данные.
- •3.5.2. Ограничения для доменов атрибутов
- •3.5.3. Целостность таблицы
- •3.5.4. Ссылочная целостность
- •3.5.5. Требования данного предприятия
- •3.5.6. Документирование всех ограничений целостности данных
- •3.6. Обсуждение разработанных локальных логических моделей данных с конечными пользователями
2.2. Определение типов связей.
Следующее задание состоит в определении типов связей, существующих между отдельными сущностями. Как правило, связи выражаются глаголами или глагольными сочетаниями. Для выяснения всех возможных типов связей вновь обратимся к спецификациям. Если в спецификациях присутствует некоторая неопределенность по поводу какой-либо связи, ее следует устранить, обратившись за необходимыми разъяснениями к пользователям.
Таблица 2.2. Основные типы связей
Тип сущности |
Тип связи |
Тип сущности |
Отдел
|
Имеет |
Работник |
Работник |
Находится под руководством
Проводит
Оформляет
|
Менеджер
Собеседование
Договор
|
Менеджер
|
Руководит |
Работник |
Секретарь |
Помогает |
Работник
|
Объект
|
Закрепляется за
Принадлежит
|
Отдел
Владелец |
Владелец |
Владеет
|
Объект |
Объявление |
Описывает
Помещается в |
Объект
СМИ
|
Собеседование |
С |
Клиент
|
Клиент |
Осматривает
Покупает
Заключает |
Объект
Объект
Договор
|
Договор |
Связан с |
Объект
|
Проанализировав Таблицу 2.2. , можно обнаружить, что некоторые связи, по сути, являются одними и теми же. Например, два типа связей – Работник Находится под руководством МенеджераиМенеджер Руководит Работником – фактически представляют одну и ту же связь.
2.3. Определение кардинальности и уровня участия отдельных типов связи.
Установив связи, которые будут иметь место в создаваемой модели, необходимо определить кардинальность каждой из них. Каждая связь может иметь кардинальность либо "один к одному" (1:1), либо "один ко многим" (1:М), либо "многие ко многим" (М:М). Кроме того, следует проанализировать степень участия каждой из сущностей в конкретном типе связи. Степень участия может быть либо полной (тотальной), либо частичной.
Связь Отдел Имеет Работника
Каждый отдел компании имеет несколько работников и, следовательно, кардинальность данной связи надо определить как 1:М. Поскольку любой из отделов компании имеет работников, степень участия сущности Отделв связиИмеетявляется полной.
Чтобы лучше разобраться в сути данной связи, рассмотрим ее в обратном направлении – Работник Работает в Отделе.Каждый работник компании может работать только в одном отделе, и, следовательно, связьРаботает в имеет кардинальность 1:1. Поскольку все работники компании работают каком-либо отделе, степень участия сущностиРаботникв связиРаботает в будет полной.
Теперь мы можем ссылаться на связь между сущностями ОтделиРаботник как на связьОтдел Имеет Работника, либо как на связьРаботник Работает в Отделе.Однако при отображении некоторой связи на диаграмме сущность-связь (ER-диаграмме), всегда следует использовать вариант с более высоким уровнем кардинальности – в нашем случае это 1:М. Поэтому за данной связью целесообразно будет сохранить то имя, которое связано с кардинальностью 1:М -Отдел Имеет Работника.
Окончательный вариант кардинальности и степени участия сторон связи Отдел Имеет Работника:
Отдел Работник
1
М
Связь Работник Находится под руководством Менеджера
Каждый работник может находиться под руководством только одного менеджера и, следовательно, кардинальность данной связи надо определить как 1:1. Работник компании не обязательно находится под руководством менеджера, поэтому степень участия сущности Работникв связиНаходится под руководствомявляется частичной.
Рассмотрим эту связь в обратном направлении – Менеджер Руководит Работником.Каждый менеджер может руководить несколькими работниками, и, следовательно, связьРуководитимеет кардинальность 1:М. Каждый менеджер компании руководит работниками, поэтому степень участия сущностиМенеджерв связиРуководитявляется полной. За данной связью целесообразно будет сохранить имяМенеджер Руководит Работником.
Менеджер Работник
1
М
Связь Работник Проводит Собеседование
Каждый работник может провести много собеседований (1:М), каждое собеседование проводится одним работником (1:1). Работник не обязательно проводит собеседование (степень участия – частичная), собеседование всегда проводится работником (степень участия – полная).
Работник Собеседова-ние
1
М
Связь Работник Оформляет Договор
Каждый работник оформляет много договоров (1:М), работник не обязательно оформляет договор (степень участия - частичная). Каждый договор оформляет один работник (1:1), договор обязательно оформляется работником (степень участия – полная).
Работник Договор
1
М
Связь Секретарь Помогает Работнику
Секретарь помогает всем работникам отдела (1:М), каждый работник обращается за помощью только к секретарю своего отдела (1:1). Секретарь обязательно помогает работникам отдела (степень участия – полная), работник может обойтись без помощи секретаря (степень участия – частичная).
Секретарь Работник
1
М
Связь Объект Закрепляется за Отделом
Каждый объект обязательно закрепляется за одним отделом (1:1), за каждым отделом может быть закреплено несколько объектов (1:М). Степень участия сущностей ОбъектиОтделв связиЗакрепляетсяполная.
За данной связью целесообразно будет сохранить имя Отдел Предлагает Объект.
Отдел Объект
1
М
Связь Объект Принадлежит Владельцу
Каждый объект может принадлежать одному владельцу (1:1), каждый владелец может владеть несколькими объектами (1:М). Степень участия сущностей ОбъектиВладелецв связиПринадлежитполная.
За данной связью целесообразно будет сохранить имя Владелец Владеет Объектом.
Владелец Объект
1
М
Связь Объявление Описывает Объект
Каждое объявление описывает один объект (1:1), каждый объект может быть описан в нескольких объявлениях (1:М). Объявление обязательно описывает объект (степень участия – полная), не на каждый объект даются объявления (степень участия – частичная).
За данной связью целесообразно будет сохранить имя Объект Описывается в Объявлении.
Объект Объявление
1
М
Связь Объявление Помещается в СМИ
Каждое объявление помещается в одном СМИ (1:1), каждое СМИ может опубликовать много объявлений (1:М). Степень участия сущностей ОбъявлениеиСМИв связиПомещается вполная.
За данной связью целесообразно будет сохранить имя СМИ Публикует Объявление.
СМИ Объявление
1
М
Связь Собеседование С Клиентом
Каждое собеседование проводится с одним клиентом (1:1), с каждым клиентом проводится одно собеседование (1:1). Степень участия сущностей СобеседованиеиКлиентв связиС является полной.
Собеседова-ние Клиент
1
1
Связь Клиент Осматривает Объект
Каждый клиент может осмотреть много объектов (1:М). Каждый объект может быть осмотрен несколькими клиентами (1:М). Таким образом, кардинальность связи Осматривает устанавливается как (M:N). Степень участия обеих сущностей в связиОсматриваетявляется частичной.
Клиент Объект
М
N
Связь Клиент Покупает Объект
Каждый клиент может купить несколько объектов (1:М), каждый объект может быть куплен только одним клиентом (1:1). Участие обеих сущностей в связи Покупает является частичным.
Клиент Объект
1
М
Связь Клиент Заключает Договор
Каждый клиент может заключить несколько договоров (1:М), каждый договор может быть заключен с одним клиентом (1:1). Договор обязательно заключается с клиентом (полное участие), клиент может не заключить договор (частичное участие).
Клиент Договор1
М
Связь Договор Связан с Объектом
Каждый договор заключается на определенный объект (1:1), на каждый объект может быть заключен один договор (1:1). Степень участия сущности Договорв связиСвязан сявляется полной, а сущностиОбъект– частичной.
Договор Объект
1
1