- •Слайд 3. Общие сведения о языке
- •Пояснения
- •Слайд 4. Основные свойства языка
- •Пояснения
- •Слайд 5. Объектно-ориентированный подход
- •Пояснения
- •Слайд 6. Основной элемент языка
- •Пояснения
- •Пояснения
- •Слайд 22. Простой тип
- •Пояснения
- •Слайд 21. Тип данных и сущность
- •Слайд 29. Двоичный тип (binary)
- •Пояснения
- •Слайд 30. Агрегированный тип
- •Пояснения
- •Слайд 31. Массив (array)
- •Пояснения
- •Слайд 32. Список (list)
- •Пояснения
- •Слайд 33. Множество (set)
- •Пояснения
- •Слайд 34. Мультимножество (bag)
- •Пояснения
- •Слайд 35. Многомерные агрегированные типы
- •Пояснения
- •Слайд 36. Поименованный тип
- •Пояснения
- •Слайд 37. Составной тип
- •Пояснения
- •Слайд 38. Понятие
- •Пояснения
- •Слайд 39. Схема (schema)
- •Пояснения
- •Слайд 40. Константы (constant)
- •Пояснения
- •Слайд 41. Определяемый тип (type)
- •Пояснения
- •Слайд 42. Правило области значений определяемого типа
- •Пояснения
- •Слайд 43. Сущность (entity)
- •Пояснения
- •Слайд 44. Атрибут сущности
- •Пояснения
- •Слайд 45. Локальное правило сущности
- •Пояснения
- •Слайд 46. Правило уникальности
- •Пояснения
- •Слайд 47. Правила области значений
- •Пояснения
- •Слайд 48. Наследование
- •Пояснения
- •Слайд 49. Интерфейс между схемами
- •Пояснения
- •Слайд 50. Пример информационной модели
- •Пояснения
- •Слайд 51. Основные принципы express-g
- •Пояснения
- •Слайд 52. Знаки определения
- •Пояснения
- •Слайд 53. Знаки связи
- •Пояснения
- •Слайд 54. Знаки композиции
- •Пояснения
- •Слайд 55. Диаграмма уровня сущности
- •Пояснения
- •Слайд 56. Диаграмма уровня схемы
- •Пояснения
- •Слайд 57. Программная поддержка express
- •Пояснения
- •Слайд 58. Резюме
Слайд 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», выражающую число .
