Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / Л-4(EXPRESS) / Конспект лекций.doc
Скачиваний:
66
Добавлен:
16.05.2015
Размер:
567.3 Кб
Скачать

Слайд 43. Сущность (entity)

Пояснения

Понятие «сущность» (ENTITY) выражает понятие, существенное для моделируемой предметной области и является основным элементом языкаEXPRESS. Каждая сущность имеет уникальный в рамках схемы идентификатор (т.е. имя). Основные свойства сущности задаются с помощью ееатрибутов. Кроме того, свойства сущности могут быть заданы с помощью еелокальных правил. ВEXPRESSсуществует возможность определять отношениенаследованиямежду двумя и более сущностями. При наследовании сущность-потомок получает все свойства (в том числе и атрибуты) сущности предка.

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

Слайд 44. Атрибут сущности

Пояснения

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

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

На примере приведено объявление сущности «circle» (окружность), имеющей явный атрибут «radius» (радиус). Данный атрибут имеет вещественный типREAL. В тех случаях, когда значение атрибута может отсутствовать для некоторых экземпляров сущности, атрибут должен быть объявлен с применением ключевого слова «OPTIONAL», что говорит о необязательности присутствия его значения. В приведенном примере - это атрибут «color» (цвет). Когда значение такого атрибута действительно отсутствует, значением атрибута считается неопределенное значение «?».

В отличие от значения явного атрибута сущности, значение вычисляемого атрибутасущности определяется не в явном виде, а путем вычисления некоторого выражения. Это может понадобиться в тех случаях, когда значение атрибута должно быть вычислено на основании уже имеющихся в модели значений других атрибутов. Все вычисляемые атрибуты сущности объявляются в единой конструкции «DERIVE», которая должна идти непосредственно после объявлений явных атрибутов сущности. При этом каждый вычисляемый атрибут объявляется отдельно. Каждое объявление вычисляемого атрибута задает уникальное в рамках сущности имя атрибута, а также тип атрибута и выражение для вычисления значения атрибута. На примере у сущности «circle», есть также два вычисляемых атрибута «area» (площадь) и «perimeter» (периметр). Оба вычисляемых атрибута объявлены в конструкции «DERIVE». При объявлении вычисляемого атрибута, первым указывается его имя, затем, через двоеточие, его тип, а затем, через двоеточие и знак равенства, выражение для вычисления значения атрибута. В данном случае у обоих вычисляемых атрибутов сущности присутствуют ссылки на единственный явный атрибут сущности «radius», а также ссылки на встроенную константуEXPRESS«PI», выражающую число.