Типы данных
Основной функцией типа данных является задание области допустимых значений атрибута сущности. Всего в 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). Тип «Перечисление» явно перечисляет все экземпляры области значений. Тип «Выбор» задает перечень возможных областей значений.
|