Третий манифест Кристофера Дейта и Хью Дарвена

       

Отрицательные 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.



    Содержание раздела