Следует поддерживать некоторую форму наследования типов (см. ОО-предписания 2 и 3). В соответствии с этим предложением не следует допускать включения в D: a) концепции неявного преобразования типов; b) концепции, предусматривающей, что функции имеют специальный "отмеченный" (distinguished) параметр или параметр-"получатель" (receiver).
Комментарии:
Неявные преобразования типов противоречили бы достижению цели замещаемости; помеченные параметры вводили бы искусственную и не необходимую степень асимметрии. Обе эти проблемы более подробно анализируются в готовящемся к выходу приложении относительно наследования, упомянутом в ОО-предписании 2.
Следует поддерживать конструкторы типов-"коллекций", такие как LIST (список), ARRAY (массив) и SET (множество), подобно тому, как это сделано в языках, поддерживающих развитые системы типов. (См. также РМ-предписание 7.)
Пусть С – конструктор типа “коллекции”, отличный от RELATION. Тогда следует обеспечивать функцию преобразования, скажем C2R, для конвертирования значений типа C в отношения, а также обратная функция, скажем R2C, такие, что:
C2R(R2C(r)) = r для каждого отношения r, выразимого в D;
R2C(C2R(c)) = c для каждого выразимого в D значения c типа C.
DD следует основывать на модели "одноуровневого хранения", как это описано, например, в [15]. Другими словами, в этой модели не должно производиться какое-либо логическое различие между ситуациями, когда порция данных располагается в основной памяти или во вторичной или третичной (tertiary) памяти и т.д.
Первый коммерчески доступный продукт, основанный на идеях Третьего манифеста, был выпущен в 2000 году компанией Alphora. Продукт получил название Dataphor .
Базовым компонентов Dataphor является Data Access Engine (DAE ), который представляет собой истинную ( т. е. соответствующую требованиям Третьего манифеста) систему реляционных баз данных. Полная и точная реализация реляционной модели в DAE обеспечивает следующие возможности:
Полная целостность данных. Полностью поддерживается каждое правило приложения, что обеспечивает, помимо технической согласованности данных, гарантию соответствия деятельности компании установленным требованиям закона.
“Сложные” типы данных. Обеспечивается возможность определения типов данных разработчиками, и эти типы данных равноправны со встроенными типами.
Работа с отсутствующей информации без привлечения неопределенных значений и трехзначной логики.
Обновляемые представления без ограничений, свойственных SQL .
Разработан и реализован язык D 4, обладающий следующими особенностями:
Для выражения запросов используется алгебраический подход.
Запросы, адресуемые к сложным данным, формулируются более точно, чем на языке SQL .
То же касается сложных операций обновления.
Язык обладает вычислительной полнотой.
Язык претендует на то, чтобы стать открытым стандартом, заменяющим SQL .