(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Основные компоненты диаграммы ERwin - сущности, атрибуты, связи. Часть 1. Понятие сущности

Зайцев С.Л.

В статье "Базовые концепции моделирования данных", были введены основные понятия, связанные с моделированием данных. Здесь же мы детально опишем сущности и ключи сущностей. Как вы знаете, сущности - это понятия, информацию о которых следует сохранять для возможности дальнейшей обработки. В ERwin сущности являются графическим представлением логической группировки данных. Сущности могут быть вещественными, реальными объектами или неосязаемыми концептуальными абстракциями. Сущности не предназначены для представления единичного объекта. Скорее они представляют классы, включающие атрибуты, содержащие информацию о множестве экземпляров.

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

  • Диаграммы Сущность/Отношение (Entity Relational)
  • Выделение сущностей
  • Определение типов сущностей
  • Именование и описание сущностей
  • Распространенные ошибки при работе с сущностями

Так как в ERwin для моделирования данных используется методология ER (Entity Relational) , давайте начнем с краткого введения в концепции ER. Для начала приступим к изучению сущностей - "контейнеров" для хранения информации логической модели.

Введение в реляционную диаграмму сущности

В этой и других публикациях на эту тему для визуального представления сущностей и отношений между ними используются ERD-диаграмма (Entity Relational Diagram - реляционная диаграммя сущности), основанная на нотации, используемой ERwin. Хотя существуют и другие методологии моделирования данных, такие как расширенный реляционный анализ (Extended Relational Analysis - ERA), объектно-ориентированный подход (Object Oriented - OO) и объектно-ролевое моделирование (Object Role Modeling - ORM), фундаментальные концепции ER методологии присутствуют и в них.

Методология ER-моделирования разработана П. Ченом в конце 1970-х годов. Для представления сущностей в методологии ER используются прямоугольники. В исходной ER-нотации Чена отношения содержат атрибуты. Равная возможность использования атрибутов в сущностях и отношениях делает различие между сущностями и отношениями достаточно сложным.

С течением времени ER-подход изменялся и расширялся, но базовые концепции продолжали обеспечивать надежную основу для грамотного моделирования данных. В статье "Базовые концепции моделирования данных" дано описание двух расширений ER-подхода - IDEF1X и IE. В обеих методологиях сущности представляются прямоугольниками.

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

Что такое сущность?

Сущность - это физическое представление логической группировки данных. Сущности могут быть вещественными, реальными объектами, такими как ПЕРСОНА или МОРОЖЕНОЕ, или неосязаемыми концептуальными абстракциями как ЦЕНТР ЗАТРАТ или РЫНОК. Сущности не предназначены для представления единичного объекта, они представляют набор экземпляров, содержащих информацию, представляющую интерес с точки зрения их уникальности. Например, сущность ПЕРСОНА представляет собой экземпляр объектов типа Персона. Иван Петров, Мария Русанова и Савелий Богданов - конкретные примеры экземпляров сущности ПЕРСОНА. Конкретный экземпляр сущности представляется строкой таблицы и идентифицируется первичным ключом.

Сущность имеет следующие признаки:

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

Формальные определения сущности

Ниже приведен список определений сущности признанных авторитетов в области моделирования данных. Обратите внимание на их сходство:

  • Чен (1976): "Вещь, которая может быть однозначно идентифицирована".
  • Дейт (1986): "Любой различимый объект, который будет представлен в базе данных".
  • Финклештейн (1989): "Информационная сущность представляет некую 'вещь', которая сохраняется для дальнейших ссылок. Термин сущность относится к логическому представлению данных".

Выделение сущностей

Как приступить к процессу выделения сущностей? Большинство сущностей выявляются в ходе рабочих сессий и интервью. Анализ требований к информации, полученной от экспертов в предметной области и конечных пользователей - вот наилучший источник информации.

Другим хорошим источником является корпоративная модель.

Обратите внимание на имена существительные и имена объектов - вполне возможно, что они станут логическими сущностями. Старайтесь не представлять единичные экземпляры в виде сущностей, как это часто бывает, когда сущности моделируются в терминах роли. Моделирование сущностей в терминах роли - достаточно распространенная ошибка. Сущности появляются и в процессе нормализации (см. "Понятие нормализации" в статье "Базовые концепции моделирования данных"). Приведение логической модели к третьей нормальной форме вероятнее всего приведет к появлению нескольких дополнительных сущностей.

Существует две основных группы сущностей: зависимые и независимые . Независимая сущность не нуждается в информации из другой сущности для идентификации уникального экземпляра. Она представляется в ERwin в виде прямоугольника. Первичный ключ независимой сущности не включает в себя первичных ключей других сущностей.
Зависимая сущность должна привлекать информацию из другой сущности для идентификации уникального экземпляра. Она представляется на ER-диаграмме в виде прямоугольника с закругленными углами. Первичный ключ зависимой сущности включает первичные ключи одной или более родительских сущностей.

Рис. 2.1. Примеры стержневых сущностей для корпорации, торгующей мороженым.

Обратите внимание на рис. 2.1., где изображены прямые углы независимых сущностей МАГАЗИН и МОРОЖЕННОЕ и скругленные углы зависимой сущности МАГАЗИН МОРОЖЕННОГО.

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

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

  • Стержневые сущности - их иногда называют основными или первичными сущностями. Они представляют важные объекты, информацию о которых следует хранить.
  • Коды/ссылки/классификаторы - эти сущности содержат строки, определяющие набор значений или область определения для атрибута.
  • Ассоциативные сущности - эти сущности используются для разрешения отношений многие-ко-многим.
  • Характеристические сущности - эти сущности бывают двух типов: исключающие и включающие.

Стержневые сущности

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

Стержневые сущности могут быть как независимыми, так и зависимыми. На рисунке 2.1 представлены примеры стержневых сущностей для корпорации, торгующей мороженым. Сущность МОРОЖЕНОЕ представляет базовый продукт корпорации. Сущность МАГАЗИН является примером канала сбыта или посредника при продаже товара.

Предположим, что дела в корпорации идут хорошо и принимается решение об открытии дополнительного МАГАЗИНА. Для добавления новых экземпляров сущности МАГАЗИН нет необходимости менять модель. То же самое касается и сущности МОРОЖЕНОЕ.

Обратите внимание на стержневые сущности МОРОЖЕНОЕ и МАГАЗИН. Хотя пример может показаться несколько прямолинейным, он иллюстрирует всю мощь концепции, лежащей в основе моделирования стержневых сущностей.
Понимание необходимости моделировать стержневые сущности в виде масштабируемых и расширяемых контейнеров требует от разработчика модели взгляда на сущности как на абстрактные концепции и моделирования информации независимо от текущего способа ее использования. В этом примере модель сущности МОРОЖЕНОЕ полностью вне контекста сущности МАГАЗИН и наоборот. Так что если в корпорации решат продавать МОРОЖЕНОЕ через новый канал сбыта, такой как Интернет или доставка на дом, новый канал сбыта может быть добавлен без изменений в других сущностях.

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

Кодовые сущности

Кодовые сущности всегда являются независимыми. Их часто называют ссылками, классификаторами или сущностями типов, в зависимости от используемой методологии. Уникальные экземпляры, представляемые кодовыми сущностями, определяют область определения для значений атрибутов, принадлежащих другим сущностям. Отношения между кодовыми сущностями и другими сущностями будут рассмотрены в одной из следующих публикаций на эту тему. У вас может возникнуть искушение использовать единственный атрибут в кодовой таблице. Гораздо лучше включать, по меньшей мере, три атрибута в кодовую сущность: идентификатор, имя (иногда его называют кратким именем) и определение.

На рисунке 2.2 ВЕРХУШКА - независимая сущность (обратите внимание на прямые углы). ВЕРХУШКА является к тому же кодовой сущностью или классификатором. Экземпляры (строки) сущности ВЕРХУШКА определяют список доступных верхушек.

Кодовые сущности обычно содержат ограниченное количество атрибутов. Существуют реализации, где эти сущности имели только один атрибут. Предпочтительно моделировать кодовые сущности с использованием искусственного идентификатора. Искусственный идентификатор вместе с именем и определением позволяют добавлять новые виды ВЕРХУШЕК в качестве экземпляров (строк) в сущность. Обратите внимание на три атрибута сущности ВЕРХУШКА.

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

Рис. 2.2. Кодовые сущности позволяют корпорации определять набор значений
для централизованного использования в рамках корпорации.
Экземпляры кодовой сущности определяют область определения значений
для использования в других частях модели.

Ассоциативные сущности

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

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

На рисунке 2.1 ассоциативная сущность используется для разрешения отношения многие-ко-многим между сущностями МАГАЗИН и МОРОЖЕНОЕ. Введение ассоциативной сущности дает возможность использовать одно и то же МОРОЖЕНОЕ для продажи в нескольких экземплярах МАГАЗИНА, без необходимости продажи в каждом из МАГАЗИНОВ одинаковых сортов МОРОЖЕНОГО. Ассоциативная сущность МАГАЗИН МОРОЖЕНОГО учитывает тот факт, что экземпляр МАГАЗИНА продает множество экземпляров МОРОЖЕНОГО, и экземпляр МОРОЖЕНОГО может продаваться многими экземплярами МАГАЗИНА.

Характеристические сущности

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

Примечание
Равноправные характеристические сущности, которые находятся в исключающем отношении к родительской сущности, указывают на то, что только одна из равноправных сущностей содержит экземпляр для любого из экземпляров родительской сущности. Исключающая характеристическая сущность представляет отношение "является" (is a).

На рисунке 2.3 представлена сущность КОНТЕЙНЕР и характеристические сущности РОЖОК и СТАКАНЧИК. Магазин мороженого, судя по всему, торгует не на развес, а отдельными порциями. Обратите внимание, что экземпляр КОНТЕЙНЕРА должен быть РОЖКОМ или СТАКАНЧИКОМ. КОНТЕЙНЕР не может быть одновременно и РОЖКОМ и СТАКАНЧИКОМ. Это исключающие характеристические сущности.

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

Рис. 2.3. Два примера характеристических сущностей ПЕРСОНА и КОНТЕЙНЕР.
Оба примера используют нотацию ERwin IE для представления исключающих
и включающих характеристических сущностей. Отсутствие (X)
в символе характеристической сущности указывает на включающее отношение.

Структурная сущность

Иногда экземпляры одной и той же сущности связаны. В своей книге 1992-го года "Strategic Systems Development" К. Финклештейн предложил использовать структурные сущности для представления отношений между экземплярами одной и той же сущности. Связи между экземплярами одной и той же сущности называются рекурсивными отношениями. Рекурсивные отношения будут рассмотрены в статье "Понятие отношения". Рекурсивные отношения - это логическая концепция, а концепции не легко воспринимаются пользователями.

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

Рис. 2.4. Структурная сущность - иллюстрация подхода К. Финклештейна
к разрешению рекурсивных отношений.

Определение первичного ключа

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

Первичный ключ должен быть статическим (static) и неразрушаемым (non-volatile). Под статичностью и неразрушаемостью подразумевается, что первичный ключ не должен подвергаться изменениям. Изменения первичного ключа трудно сопровождать, что часто приводит к весьма дорогостоящим переделкам, поэтому лучшим считается вариант, когда первичный ключ абсолютно не зависит от экземпляров сущности.

Примечание
Далее будут добавлены первичные ключи в базу данных торговли мороженым и рассмотрены кандидаты в ключи. Концепции ключей только введены в данном разделе, а обсуждаться более подробно будут в статье "Понятие атрибута".

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

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

  • Кандидат в ключи. Кандидатом в ключи является атрибут или набор атрибутов, идентифицирующих единичный экземпляр сущности. Иногда единичный экземпляр сущности идентифицируется несколькими атрибутами или их комбинацией.
  • Составной ключ. Ключ, который состоит более чем из одного атрибута, называется составным, сложным или компонентным. Для составных ключей каждая составляющая ключа должна иметь значение для каждого экземпляра. Ни одна часть ключа не должна быть неопределенной (NULL). Все части ключа являются обязательными и не могут быть опущены.
  • И скусственный первичный ключ. Иногда ни единичный атрибут, ни комбинация атрибутов, не определяют экземпляр. В этих случаях вы используете искусственный уникальный идентификатор. Искусственные первичные ключи часто просто нумеруют каждый экземпляр или код.
  • Внешние ключи. Когда первичный ключ одной сущности мигрирует в другую таблицу, он называется внешним ключом. Внешние ключи "связывают" сущности, представляя отношения между ними. Внешние ключи будут обсуждаться более подробно в дальнейших статьях по этой тематике.

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

Именование сущностей

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

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

Соглашения об именовании сущностей

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

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

  • Имя сущности должно быть достаточно описательным. Используйте имена из одного слова, только когда они являются названием широко распространенных концепций. Подумайте об использовании словосочетаний на основе существительных.
  • Имя сущности должно быть существительным или словосочетанием на основе существительного в единственном числе. Используйте ПЕРСОНА вместо ПЕРСОНЫ или ЛЮДИ, и КОНТЕЙНЕР - вместо КОНТЕЙНЕРЫ.
  • Имя сущности должно быть уникальным. Использование одинаковых имен для сущностей, содержащих различные данные, или разных имен для сущностей, содержащих одинаковые данные, будет без необходимости вводить в заблуждение разработчиков и конечных пользователей.
  • Имя сущности должно указывать на данные, которые будут храниться в каждом из экземпляров.
  • Имя сущности не должно содержать специальных символов (таких как !, @, #, $, %, &, * и тому подобных) или указывать на принадлежность (МОРОЖЕНОЕ ПЕРСОНЫ).
  • Имя сущности не должно содержать акронимов или аббревиатур, если только они не являются частью принятых соглашений об именовании.

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

Примеры хороших имен сущностей

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

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

ТАБЛИЦА 2.1 Примеры имен сущностей с объяснениями.

Хорошее имя
Неудачное имя
Пояснение
МАТЕМАТИЧЕСКАЯ ФОРМУЛА ФОРМУЛА ФОРМУЛА - слишком расплывчато, добавление прилагательного МАТЕМАТИЧЕСКАЯ значительно проясняет смысл.
КНИГА КНИГИ КНИГА - существительное в единственном числе.
СОФА СОФА
КУШЕТКА
СОФА и КУШЕТКА имеют одинаковый смысл. Выберите что-то одно.
МОРОЖЕНОЕ КАКОЕ-ТО МОРОЖЕНОЕ Местоимение КАКОЕ-ТО не привносит дополнительного значения или смысла к термину. Избегайте излишних дополнений.
ФОТОСНИМОК ИЗОБРАЖЕНИЕ ФОТОСНИМОК - достаточно определенно. ИЗОБРАЖЕНИЕ - несколько расплывчато.
ОЖИДАЕМОЕ ВРЕМЯ ПРИБЫТИЯ ОВП Аббревиатура ОВП может оказаться непонятной для пользователей.
КОМПАНИЯ КОМПАНИЯ XYZ XYZ - конкретный экземпляр компании и должен быть строкой в сущности КОМПАНИЯ.

Описание сущностей

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

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

Правила формирования хороших описаний

Описание сущности должно объяснять ее смысл, а не то, как будет использоваться информация этой сущности. Вы должны собирать описания сущностей во время идентификации сущностей. Будьте осторожны при включении информации об использовании: подобная информация должна использоваться только в качестве примера или для пояснения. Способ использования информации изменяется более часто, чем информация сама по себе, поэтому информация об использовании непостоянна.

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

Примеры хороших описаний

Таблица 2.2 не претендует на полноту, но служит для демонстрации хороших описаний и причин, по которым неудачные описания не отвечают основным положениям.

ТАБЛИЦА 2.2. Описания сущностей с пояснениями

Хорошее описание
Неудачное описание
Пояснение
ПЕРСОНА содержит информацию о физических лицах, которые вступают
во взаимодействие
с корпорацией. Информация
о ПЕРСОНЕ помогает корпорации при планировании, разработке продуктов и рекламной деятельности.
Клиент или сотрудник. Хорошее описание включает определение сущности и ее значение для корпорации.
   Включает имя, дату рождения и т.п. для персоны. Простое перечисление атрибутов сущности не несет дополнительной информации о том, что собой представляет сущность и почему она важна для корпорации.
   Информация о клиентах
и сотрудниках.
Клиент и сотрудник являются примерами ролей, в которых может выступать ПЕРСОНА. Использование одних только примеров не объясняет, что сущность собой представляет и почему она важна для корпорации.
   Сущность содержит символы и числовые данные, извлеченные
из POS (Point Of Sale - торговый терминал), хранящиеся с использованием стандартного сжатия и упакованных десятичных чисел.
Данный искусственный пример призван проиллюстрировать, что технические описания и аббревиатуры с трудом понимаются бизнес-пользователями.

Распространенные ошибки при моделировании сущностей и выборе ключей

Этот раздел, посвященный распространенным ошибкам при моделировании, не претендует на полноту. Его цель - указать на наиболее распространенные ошибки, которые возникают у разработчиков моделей.

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

Моделирование ролей

Что подразумевается под моделированием ролей? Во время рабочих сессий пользователи могут сказать вам, что им необходимо хранить информацию о сотрудниках. Возникает искушение создать сущность СОТРУДНИК. Более тщательный анализ информации, представляющей интерес для корпорации, например, такой как имя, адрес и номер социального страхования показывает, что эти значения не зависят от сущности СОТРУДНИК. Для конкретного СОТРУДНИКА значение атрибута ИМЯ не зависит от сущности СОТРУДНИК. Это легко понять, если задуматься о том, что ваше имя остается вашим именем вне зависимости от того, являетесь ли вы СОТРУДНИКОМ или нет.

Перегрузка сущностей

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

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

Например, сущность ОБОРУДОВАНИЕ может иметь совершенно разное значение для подразделений информационных технологий и для отдела средств массовой информации и коммуникаций.

Избыточные сущности

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

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

Выбор неправильного первичного ключа

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

  • Не уникальность: первичный ключ не является уникальным для каждого из экземпляров. Например, разработчик модели может считать, что номер социального страхования является уникальным для каждой ПЕРСОНЫ. Однако номер социального страхования может повторно использоваться в том случае, если первоначальный его владелец скончался.
  • Требуемое значение/неопределенность: первичный ключ не имеет значения для некоторых из экземпляров. Например, не каждый экземпляр сущности ПЕРСОНА будет иметь номер социального страхования. Иностранцы и маленькие дети - вот две категории людей, у которых он будет отсутствовать.

Использование неудачных имен сущностей

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

Не используйте аббревиатуры или акронимы в качестве части имени. Аббревиатуры и акронимы открыты для неправильной интерпретации и даже могут иметь разное значение в разных предметных областях.

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

Не включайте месторасположение в качестве части имени. Как правило, вам неизбежно потребуется и другое месторасположение. Имя с указанием расположения является признаком того, что вы моделируете конкретный экземпляр вместо класса сущностей.

Использование неудачных описаний сущностей

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

Не пытайтесь перефразировать имя сущности. Не используйте имя сущности в ее описании.

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

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

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

Заключение

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

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

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

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

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

Часть 2



 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 08.07.2002 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
erwin Data Modeler Navigator Edition r9.7 - Product plus 1 Year Enterprise Maintenance Commercial
erwin Data Modeler Workgroup Edition r9.7 - Product plus 1 Year Enterprise Maintenance Commercial
erwin Data Modeler Standard Edition r9.7 - Product plus 1 Year Enterprise Maintenance Commercial
ABBYY Lingvo x6 Английская Домашняя версия, электронный ключ
VMware Horizon Apps Standard, v7 : 10 Pack (Named User)
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Безопасность компьютерных сетей и защита информации
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
OS Linux для начинающих. Новости + статьи + обзоры + ссылки
Утиль - лучший бесплатный софт для Windows
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100