Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций.doc
Скачиваний:
46
Добавлен:
15.05.2015
Размер:
567.3 Кб
Скачать

Слайд 37. Составной тип

Пояснения

Составные типы данных, так же, как и поименованные типы данных, предназначены для задания типов с нестандартными для EXPRESSобластями значений. Составные типы предназначены для тех случаев, когда более легким путем является не наложение ограничений на какой-либо тип данных, а простое перечисление всех возможных значений типа или всех возможных областей значений типа. Таким образом,составным типомданных языкаEXPRESSявляется специально объявленный в информационной модели тип, область значений которого задана путем явного перечисления ее элементов или составляющих ее других областей значений. При этом составные типы данных могут быть использованы только дляформирования определяемых типови не подходят для прямого задания областей значений атрибутов сущностей. ВEXPRESSсуществует всего два составных типа данных: тип данных «Перечисление» (ENUMERATION) и тип данных «Выбор» (SELECT).

С помощью типа «Перечисление»можно задавать область значений типа данных путемявного перечисления всех значений, входящих в эту область, т.е. путем явного задания всех экземпляров типа. Таким образом, атрибут сущности (естественно, через некоторый определяемый тип) может принимать одно из перечисленных значений. На слайде приведен определяемый тип «traffic_lights» (светофор), заданный на основе типа «Перечисление». Этот тип включает только три значения: красный (red), желтый (yellow) и зеленый (green).

В отличие от типа «Перечисление», тип «Выбор» позволяет задавать не перечень возможных значений типа данных, а перечень возможных областей значений типа данных. Это означает, что тип «SELECT» определяет область значений, состоящую из нескольких других областей значений путемявного перечисления этих областей. Таким образом, в общем случае, атрибут сущности (естественно, через некоторый определяемый тип) может принимать значения, относящиеся к одной из перечисленных областей. В приведенном примере для окружности, представленной сущностью «circle» существует выбор, в какой системе координат, двумерной или трехмерной, она будет представлена. Способ представления окружности зависит от того, экземпляром какой сущности будет представлен ее центр (атрибут «center»). Для представления точки в двумерном пространстве объявлена сущность «point2D», заданная двумя координатами. Для представления точки в трехмерном пространстве объявлена сущность «point3D», заданная тремя координатами. В данном примере также объявлен определяемый тип «point» (точка), являющийся объединением областей значений типов «point2D» и «point3D». В свою очередь атрибут «center» сущности «circle» представлен именно типом «point», что позволяет этому атрибуту принимать в качестве своих значений как экземпляры сущности «point2D», так и экземпляры сущности «point3D». Сам вопрос о выборе той или иной сущности выходит за рамки языкаEXPRESS.

Слайд 38. Понятие

Пояснения

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

Всего в EXPRESSсуществует семь основных понятий:

  • Схема;

  • Константы;

  • Определяемый тип;

  • Сущность;

  • Глобальное правило;

  • Функция;

  • Процедура.

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