Управление данными. Громов Ю.Ю - 14 стр.

UptoLike

Запись (или структура) представляет собой кортеж из некоторого декартового произведения мно-
жеств. Действительно, запись представляет собой именованный упорядоченный набор элементов
i
r
,
каждый из которых принадлежит типу
i
T
. Таким образом, запись
(
)
n
rrrr
...,,,
21
=
есть элемент множест-
ва
n
TTTT
×××= ...
21
. Объявляя новые типы записей на основе уже имеющихся, пользователь может кон-
струировать сколь угодно сложные типы данных.
Общим для структурированных типов данных является то, что они
имеют внутреннюю структуру
,
используемую
на том же уровне абстракции
, что и сами типы данных.
Поясним это следующим образом. При работе с массивами или записями можно манипулировать
массивом или записью как с единым целым (создавать, удалять, копировать целые массивы или записи),
так и поэлементно. Для структурированных типов данных есть специальные функции конструкторы
типов, позволяющие создавать массивы или записи из элементов более простых типов.
Работая же с простыми типами данных, например с числовыми, мы манипулируем ими как недели-
мыми целыми объектами. Чтобы «увидеть», что числовой тип данных на самом деле сложен (является
набором битов), нужно перейти на более низкий уровень абстракции. На уровне программного кода это
будет выглядеть как ассемблерные вставки в код на языке высокого уровня или использование специ-
альных побитных операций.
2.2. ССЫЛОЧНЫЕ ТИПЫ ДАННЫХ
Ссылочный тип данных (указатели) предназначен для обеспечения возможности указания на другие
данные. Указатели характерны для языков процедурного типа, в которых есть понятие области памяти
для хранения данных. Ссылочный тип данных предназначен для обработки сложных изменяющихся
структур, например деревьев, графов, рекурсивных структур.
2.2.1. Типы данных, используемые в реляционной модели
Для реляционной модели данных тип используемых данных не важен. Требование, чтобы тип дан-
ных был
простым
, нужно понимать так, что
в реляционных операциях не должна учитываться внутрен-
няя структура данных
. Конечно, должны быть описаны действия, которые можно производить с данны-
ми как с единым целым, например, данные числового типа можно складывать, для строк возможна опе-
рация конкатенации и т.д.
С этой точки зрения, если рассматривать массив, например, как единое целое и не использовать по-
элементных операций, то массив можно считать простым типом данных. Более того, можно создать свой,
сколь угодно сложный тип данных, описать возможные действия с ним, и если в операциях не требуется
знание внутренней структуры данных, то такой тип данных также будет простым с точки зрения реляци-
онной теории. Например, можно создать новый тип комплексные числа как запись вида
z
= (
x
,
y
), где
x
R
,
y
R
. Можно описать функции сложения, умножения, вычитания и деления и все действия с компо-
нентами x и y выполнять только внутри этих операций. Тогда, если в действиях с этим типом использо-
вать только
описанные операции, то внутренняя структура не играет роли, и тип данных извне выглядит
как атомарный.
Именно так в некоторых постреляционных СУБД реализована работа со сколь угодно сложными
типами данных, создаваемых пользователями.
2.2.2. Домены
В реляционной модели данных с понятием тип данных тесно связано понятие домена, которое
можно считать уточнением типа данных.
Домен
это семантическое понятие. Домен можно рассматривать как подмножество значений не-
которого типа данных, имеющих определённый смысл. Домен характеризуется следующими свойства-
ми:
имеет уникальное имя (в пределах базы данных);
определён на некотором простом типе данных или на другом домене;
может иметь некоторое логическое условие, позволяющее описать подмножество данных, до-
пустимых для данного домена;