Отрицательные RM-утверждения
Отрицательные RM-утверждения
Язык D не должен содержать конструкции, зависящие от определения какой бы то ни было упорядоченности атрибутов отношений. Для каждого отношения r, выражаемого средствами D, атрибуты r должны различаться своими именами.
Язык D не должен содержать конструкции, зависящие от определения какого бы то ни было порядка кортежей отношения.
Для каждого отношения r, если t1 и t2 являются разными кортежами этого отношения, должен существовать такой атрибут A отношения, что сравнение "A FROM t1 = A FROM t2" принимает значение false (выражения A FROM t1 и A FROM t2 означают значения атрибута A в кортежах t1 и t2 соответственно).
Каждый атрибут каждого кортежа должен иметь значение (соответствующего типа).
Это один из первых намеков Д&Д на то, что не должны поддерживаться неопределенные значения (NULL). С моей точки зрения, при всех отрицательных явлениях, порождаемых неопределенными значениями, пока Д&Д не удалось предложить альтернативный работающий подход.
В языке D должно учитываться, что отношения без атрибутов приемлемы и интересны и что то же относится к возможным ключам без компонентов.
Язык D не должен содержать конструкции, которые связаны с "физическими" уровнями системы (уровнями хранения, внутренними уровнями) или образованы под логическим влиянием этих уровней.
Не должно быть покортежных операций на relvar или отношениями.
В языке D не должны поддерживаться "составные домены" или "составные атрибуты", поскольку подобной функциональности можно достичь, если это желательно, на основе описанной выше поддержки типов.
Операции, в которых требуется нарушение ограничений доменов, являются нештатными и необязательными, и они не должны поддерживаться.
Язык D не должен называться SQL.
Содержание раздела