Лекция 4. Типы данных

Логический литерал

Простой строковый литерал

Для представления текстовых значений не может занимать несколько строк и может быть либо простой, либо кодированный (рис. 5).

 

а

б

Рис. 5. Структура простого и кодированного строковых литералов [5]: а-простой, б-кодированный

Для представления встроенных в EXPRESS констант (true, false, unknown)

 

Основной функцией типа данных является задание области допустимых значений атрибута сущности. Всего в EXPRESS существует 5 категорий типов данных:

- простые;

- агрегированные;

- поименованные;

- составные;

- обобщенные.

 

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

В EXPRESS присутствуют семь простых типов данных:

-числовой тип(NUMBER). Все числовые литералы, включая вещественные и целочисленные;

-вещественный тип (REAL).Все вещественные (нецелые) числа, без ограничения на точность. В противном случае точность указывается при объявлении типа после ключевого слова в скобках (например, REAL(5)) (рис.6).

 

 

Рис. 6. Структура вещественного типа данных [5]

- целочисленный (INTEGER). Область значений – все целые числа (целочисленные литералы);

- строковый (STRING). Область значений – последовательности символов. При необходимости ограничение последовательности символов указывается в круглых скобках после ключевого слова, по аналогии с вещественным типом. Если последовательность символов имеет фиксированную длину, то после объявления типа присутствует ключевое слово FIXED (рис.7).

 

 

Рис. 7. Структура строкового типа данных [5]

- логический (LOGICAL). Область значений – логические литералы TRUE, FALSE, UNKNOWN. Старшинство значений обозначено неравенством: FALSE < UNKNOWN < TRUE;

- булевский (BOOLEAN). Область значений – логические литералы TRUE, FALSE. Старшинство значений обозначено неравенством: FALSE < TRUE;

- двоичный тип (BINARY). Область значений – это последовательность битов (двоичные литералы). Если последовательность битов имеет ограничение по длине, соответствующее значение указывается в круглых скобках. При фиксированной длине ключевое слово FIXED ставится после объявления типа (рис.8).

 

Рис. 8. Структура двоичного типа данных [5]

Агрегированный типпредставляет собой встроенный тип языка, элементами области значений которого являются наборы значений. В такой набор включается значение только одного типа, называемого базовым. А сам набор конкретных значений называется экземпляром агрегированного типа, а его отдельные значения называются элементами агрегированного типа.

Существует четыре агрегированных типа:

- массив (ARRAY);

- список (LIST);

- множество (SET);

- мультимножество (BAG).

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

 

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

 

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

1) если необходимо использовать сущность в качестве типа данных;

2) когда не хватает возможностей языка EXPRESS и требуется их расширение.

 

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

 

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