Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Моделирование бизнес-процессов / Моделирование бизнес-процессов / ER-диаграмы / Проектирование реляционных БД с помощью ER-диаграмм_ver1.6.doc
Скачиваний:
184
Добавлен:
30.04.2013
Размер:
7.8 Mб
Скачать

Методология er-проектирования

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

Шаг 2: Для описания базы данных использовать структурный английский язык для сущностей, атрибутов и ключей.

Шаг 3: Исследовать атрибуты в первичной сущности (возможно с помощью пользователя), чтобы выявить нужно ли записывать информацию о каких-либо атрибутах.

Шаг 3a: Если нужна информация об атрибуте, сделать атрибут сущностью и затем

Шаг 3b: Определите связь с родительской сущностью.

Шаг 4: Привести пример данных.

Предварительная грамматика для ER-диаграмм

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

Для каждой связи, добавляем следующие комментарии:

Сущность1 связь Сущность2 (активный залог) и Сущность2 связь Сущность1 (пассивный залог).

Связь

СТУДЕНТЫ посещают ШКОЛЫ и ШКОЛЫ посещаются СТУДЕНТАМИ.

Иногда единственное число лучше выражает смысл и в таком случае можно записать так:

СТУДЕНТ посещает ШКОЛЫ и ШКОЛА посещается СТУДЕНТАМИ.

Пользователь может выступать в роли главного судьи, определяющего соответствие используемых выражений. Скоро к этой грамматике последуют добавления. В качестве упражнения, приведите полное описание ER диаграммы изображенной на рисунке Рисунка 3.3, со всеми сущностями, атрибутами, ключами и связями.

Определение вторичной сущности

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

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

Автомобиль является сущностью, поскольку мы хотим записывать информацию о нем. Если мы добавляем автомобиль в базу данных, мы могли бы включить его как на этапе 1 нашей методологии, добавляя атрибут с названием автомобиль, или позже, чтобы выполнить шаг 3 методологии и присвоить ему и школе статус сущностей. Описание Автомобиля как атрибута сущности студент показано на Рисунке 3.4 (в Chen-модели). [Мы игнорируем сущность ШКОЛА в данный момент].

Рисунок 3.4: Сущность СТУДЕНТ с атрибутом АВТОМОБИЛЬ

Если мы добавили атрибут автомобиль в сущность СТУДЕНТ, а потом выяснили, что автомобиль должен быть сущностью, мы должны создать сущность АВТОМОБИЛЬ, а затем к модели добавить связь. (Отметим, что Рисунка 3.4 может быть вполне достаточно при условии, что пользователь не хочет вводить информацию о самом автомобиле.)

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

Рисунок 3.5: ER Диаграмма базы данных СТУДЕНТ – АВТОМОБИЛЬ

Следуя модели Чена, выберем подходящий глагол, описывающий связь между двумя сущностями (СТУДЕНТ и АВТОМОБИЛЬ). В данном случае мы выбираем управляет (как показано в ромбе). Отметим, что позже пользователь может решить идентифицировать связь по-другому; но так как другая информация отсутствует, предположим, что пользователь считает, что студенты управляют автомобилями.

Другие возможные варианты для связи сущностей СТУДЕНТ и АВТОМОБИЛЬ - "зарегистрирован," "владеет" и т.п. Такая связь между двумя сущностями называется двоичной.

Связям в ER диаграммах обычно присваиваются имена, которые изображают, каким образом сущности взаимосвязаны. Иногда, связь трудно описать (или она неизвестна), и в этом случае для ее обозначения используется двухбуквенный код. Такая двухбуквенная связь показана на Рисунке 3.6, где она названа "SA" и указывает на то, что мы понимаем, что связь существует, но нам точно не ясно как ее назвать (SA = STUDENT–AUTOMOBILE). Конечно, если уверены в названии связи "управлять", то должны использовать "управлять".

Рисунок 3.6: ER Диаграмма базы данных STUDENT–AUTOMOBILE

с «неизвестной» связью "Почти установлено"

Структурное описание на английском сущностей и связей подразумевает, что сущности являются существительными, а связи – глаголами. Используя связь управляет (см. Рисунок 3.6), можно сказать: студенты (сущ.) управляют (гл.) автомобилями (сущ.). Если связь действительно неизвестна, можно сказать так: Студенты (сущ.) соотносятся (гл.) с автомобилями (сущ.).

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

1. Может ли природа сущности изменяться во времени? Объяснить.

2. Что такое связь?

3. Каково различие между сущностью и связью?

4. Когда предпочтительнее рассматривать атрибут сущности? Почему?

5. Имеет ли смысл иметь сущность с одним атрибутом?