Читайте также: |
|
Рассмотрим метод Баркера на примере моделирования данных для фирмы занимающейся продажей автомобилей.
Для изучения предметной области проводится опрос сотрудников фирмы, которые выступают в роли экспертов.
Главный менеджер – одна из основных обязанностей – содержание автомобильного имущества. Он знает какими машинами располагает фирма, сколько заплачено за каждую из них, каковы накладные расходы. Обладая этой информацией он может установить нижнюю границу цены. Кроме того он несет ответственность за продавцов и должен знать сколько каждый из них продал автомобилей и по какой цене.
Продавец -- ему необходимо знать, какую цену запрашивать за тот или другой автомобиль и какова нижняя граница цены, а т.ж. ему необходима информация о продаваемых автомобилях: год выпуска, марка, модель и т.д.
Администратор – его задача сводится к заключению контрактов, для чего ему необходима информация о покупателе, продавце, автомобиле
Моделирование данных можно разбить на несколько шагов:
Первый - извлечение информации из описания предметной области и выделение сущностей.
Из опроса менеджера можно выделить две сущности – автомобили и продавцы.
Для продавца важны – автомобили и данные о них.
Для администратора – автомобили, продавцы, контракты ипокупатели.
Из сказанного выше очевидно, что важными для данной предметной области будут следующие сущности – автомобили продавцы покупатели и контракты, а диаграмма сущностей будет иметь следующий вид.
Вторым шагом является идентификация связей. Имя связи всегда формируется с точки зрения сущности-родителя и образовываться соединением:
- именем сущности-родителя,
- именем связи,
- выражением степени связи,
- именем сущности потомка.
Например связь продавца с контрактом можно выразить следующим образом:
- продавец может получить вознаграждение за один или более контрактов,
- каждый контракт может быть инициирован только одним продавцом.
Степень связи и обязательность графически изображается следующим образом
Много Необязательная
Один Обязательная
Таким образом связь продавца с контрактом графически будет выглядеть следующим образом
Аналогичные связи можно проследить и для других сущностей
Мы получили диаграмму сущностей без атрибутов.
Последним шагом моделирования является идентификация атрибутов. Атрибуты могут быть обязательными и необязательными. Обязательность означает, что атрибут не может принимать неопределенных значений.
* -- обязательный
о – необязательный
Атрибут может быть либо описательным, либо входить в состав уникального идентификатора – первичного ключа. Первичный ключ – это атрибут или совокупность атрибутов и (или) связей предназначенная для уникальной идентификации каждого экземпляра данной сущности. В случае полной идентификации каждый экземпляр данного типа сущности полностью идентифицируется своими собственными ключевыми атрибутами. В противном случае в его идентификации участвуют атрибуты другой сущности, например, - сущности-родителя.
Полная идентификация Идентификация посредством
Другой сущности
# - обозначает атрибут, определяющий первичный ключ, и помещается вверху списка атрибутов.
Каждая сущность должна обладать хотя бы одним возможным ключом. Возможный ключ сущности – это один или несколько атрибутов, чьи значения однозначно определяют каждый экземпляр сущности. при наличии нескольких возможных ключей один из них обозначается в качестве первичного. Теперь наша диаграмма будет иметь следующий вид.
Помимо перечисленных основных конструкций модель данных может содержать ряд дополнительных.
Супертипы и подтипы: одна сущность является обобщающим понятием другой.
Супертипы
Подтипы
Взаимно исключающие связи:каждый экземпляр сущности участвует только в одной связи из группы взаимно исключающих связей
Рекурсивная связь: сущность может быть связана сама с собой.
Неперемрщаемые (non-transferrable) связи: экзкмпляр сущности не может быть перенесен из одного экземпляра в другой
Метод IDEF1.
Метод IDEF1 также основан на подходе Чена и позволяет построить модель данных, эквивалентную реляционной модели в третьей нормальной форме. В настоящее время на основе совершенствования метода IDEF1 создана его новая версия – метод IDEF1Х, разработанный с учетом таких требований, как простота для изучения и возможность автоматизации. IDEF1Х-диаграммы используются в ряде распространенных CFSE-средств (в частности, Erwin, Design/ IDEF).
Сущность в методе IDEF1Х является независимой от индетификаторов или просто независимой, если каждый экземпляр сущности может быть однозначно индетифицирован без определения его отношений с другими сущностями. Сущность называется зависимой от индетификаторов или просто зависимой, если однозначная индетификация экземпляра сущности зависит от его отношения к другой сущности (рис. Независимые (а) и зависимы (б) от индетификатора сущности).
Каждой сущности присваиваются уникальное имя и номер, разделяемые косой чертой «/» и помещаемые над блоком.
Связь может дополнительно определяться с помощью указания степени или мощности (количества экземпляров сущности – потомка, которое может существовать для каждого экземпляра сущности-родителя). В IDEF1Х могу быть выражены следующие мощности связей:
· Каждый экземпляра сущности-родителя может иметь ноль, один или более одного связанного с ним экземпляра сущности-потомка;
· Каждый экземпляр сущности-родителя должен иметь не менее одного связанного с ним экземпляра сущности-потомка;
· Каждый экземпляр сущности-родителя должен иметь не более одного связанного с ним экземпляра сущности-потомка;
· Каждый экземпляр сущности-родителя связан с некоторым фиксированным числом экземпляров сущности-потомка.
Имя сущности/Номер сущности Служащий/44
а)
Имя сущности/Номер сущности Проектное задание/56
б)
Если экземпляр сущности-потомка однозначно определяется своей связью с сущностью-родителя, то связь называется индетифицирующуй, в противном случае – неиндетифицирующей.
Связь изображается линией, проводимой между сущностью-родителем и сущностью-потомком, с точкой на конце линии у сущности-потомка (рис. Графическое изображение мощности связи). Мощность связи может принимать следующие значения: N-ноль, Z- ноль или один, P- один или более. По умолчанию мощность связи принимается равной N.
N
Индетифицирующая связь между сущностью-родителем и сущностью-потомком изображается сплошной линией (рис. Индетифицирующая связь). Сущность-потомок в индетифицирующей связи является зависимой от индетификатора сущностью. Сущность-родитель в индетифицирующей связи может быть как независимой, так и зависимой от индетификатора сущностью (это определяется ее связями с другими сущностями).
Сущность-А/1
|
от родителя
к потомку
Имя связи
Сущность-В/2
Сущность-потомок
Рис. Индетифицирующая связь
Пунктирная линия изображает неиндетифицирующую связь (рис. Неиндетифицирующая связь). Сущность-потомок в неиндетифицирующей связи будет независимой от индетификатора, если она не является также сущностью-потомком в какой-либо индетифицирующей связи.
Атрибуты изображаются в виде списка имен внутри блока сущности. Атрибуты, определяющие первичный ключ, размещаются наверху списка и отделяются от других атрибутов горизонтальной чертой (см.рис. индентифицирующая связь и неиндетифицирующая связь).
Сущности могут иметь также внешние ключи (Foreign Key), которые могут исрользоваться в качестве части или целого первичного ключа или неключевого атрибута. Внешний ключ изображается с помощью помещения внутрь блока сущности имен атрибутов, после которых следуют буквы FK (см.рис. индентифицирующая связь и неиндетифицирующая связь).
Сущность-А/1
|
Имя связи сущность-родитель
От родителя
К потомку
Имя связи
Сущность-В/2
|
Сущность-потомок
Рис. Неидентифицирующая связь.
Дата добавления: 2015-10-29; просмотров: 386 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Построение иерархии диаграмм потоков данных | | | Подход, используемый в CASE-средстве SILVERRUN |