Атрибут

Определение. Атрибут (attribute) - это любая деталь или аспект, способствующие качественному или количест­венному описанию сущности, ее идентификации, классификации или отражению ее состояния.

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

Представление атрибутов. Для представления атрибута пишите его имя строчными буквами в единственном числе, возможно, с примерами значений.

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

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

Атрибут описывает одну сущность. Атрибут должен описывать ту сущность, к которой он отнесен!

Это может казаться очевидным, и, тем не менее, с этим связано наибольшее количество ошибок при определении атрибутов. Например, атрибутом какой сущности является "номер места": купона, билета, посадочного талона, воз­ду­шного судна или места в самолете? Очевидно, это атрибут сущности МЕСТО, но на практике мы часто встреча­ем­ся с его многократными повторениями, например, на посадочном талоне, который на рис. 7.26 представлен как самостоятельная сущность.

Почему так происходит? Все дело в том, что номер места является очень удобным средством для представ­ления связи.
Рис. 7.26. Отнесение атрибута к надлежащей сущности

Чтение имен атрибутов. Не используйте имени сущности в наименовании ее атрибутов. это совершенно излиш­не, поскольку атрибут описывает только одну сущность. В приведенном выше примере наименование "номер места" действительно помогло нам обнаружить недостающую сущность МЕСТО, которую затем можно было описывать с помощью атрибута "номер" и, быть может, ряда других атрибутов таких, например, как "тип".

Читаться атрибуты, поименованные таким образом, должны: <Имя атрибута> <Имя сущности в родительном падеже>. Например, номер места.

В классическом примере с отделами и служащими "номер отдела" не является атрибутом сущности СЛУЖАЩИЙ, он является атрибутом ОТДЕЛа и поэтому должен быть определен как номер ОТДЕЛА.

Удаляйте повторяющиеся атрибуты (первая нормальная форма).

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


Рис. 7.27. Повторяющийся атрибут указывает на недостающую сущность

Рис. 7.28. Добавление пропущенной сущности.

Это правило, которое в реляционной модели называется приведением к первой нормальной форме.

Это сущность или атрибут? Атрибут может стать сущностью, если он представляет самостоятельный инте­рес и обладает собственными связями и атрибутами.

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

Факультативные и обязательные (optional and mandatory) атрибуты. Атрибут, значение которого может отсутст­во­вать, называется факультативным. Он обозначается символом "°" перед его именем. Атрибут, значение кото­рого должно быть всегда известно, называется обязательным, и помечается звездочкой "*" перед именем. Обязательность означает, что сущность может быть определена тогда и только тогда, когда известны значения всех ее обязательных атрибутов. Все атрибуты уникального идентификатора должны быть обязательными.

Уникальный идентификатор (unique identifier). Каждая сущность должна однозначно идентифицироваться посредством некоторой комбинации атрибутов и/или связей. Поэтому среди возможных атрибутов сущности всегда должны быть найдены такие атрибуты, которые позволяют ее идентифицировать. Уникальный идентифика­тор представляется на ER-диаграмме указанием символа "#" перед именем каждого атрибута, входящего в данный идентификатор, и поперечной чертой на линиях соответствующих связей

Значения других атрибутов должны зависеть от всего уникального идентификатора (вторая нормальная форма)

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

Атрибуты должны зависеть от уникального идентификатора (третья нормальная форма).

Удалите те атрибуты, которые не зависят от идентификатора сущности. Этот процесс известен как приведение к третьей нормальной форме. Пусть, например, у нас есть посадочный талон с указанной на нем фамилией пассажи­ра. Вопрос: Зависит ли тем или иным образом фамилия пассажира от уникального идентификатора посадочного талона? Очевидным образом, нет. (Не меняю же я, в самом деле, свою фамилию, когда мне выдают посадочный талон!) Если тот или иной атрибут не зависит от идентификатора, это, вероятно, означает наличие пропущенной сущности и/или связи, которой принадлежит этот атрибут.

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


7.29. Представление уникальных идентификаторов атрибутами и связями.

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

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

Leave a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *

9 + 1 =