Database Programming & Design



         

UNK, неравенство и реальный мир - часть 2


Понятно, что ответы на вопросы следующие:

  • 42

  • 75 (42 + 10 + 23)

  • 4

  • 37 (4 + 10 + 23)

    При использовании схемы Дейта были бы получены следующие ответы:

  • 42

  • По меньшей мере 42, но не больше 65 (но с 23 вхождениями

    "вопрос некорректен)

  • 14 (4 + 10)

  • По меньшей мере 14 (4 + 10) (но с 23 вхождениями "вопрос

    некорректен")

    Теперь сравним результаты. Для первого вопроса оба подхода дают

    один и тот же правильный результат.

    Для второго вопроса схема Дейта должна была бы определить, что

    правильный результат - 75, но не смогла этого сделать по причине

    наличия UDK в качестве операнда в 23 операциях сравнения. Однако

    в этих 23 случаях Джонс действительно мог выиграть у Смита. Это

    показывает, что при наличии в базе данных информации схема Дейта

    не обеспечивает ей пользователей. Кстати, заметим, что правильный

    ответ (75) находится за пределами диапазона, выданного схемой

    Дейта, так что полученный на ее основе ответ является не только

    неточным, но и абсолютно некорректным. Схема Дейта считает те 10

    вариантов, в которых оба числа есть UDK, как ничьи, т.е. как

    случаи с равными значениями. Поэтому они не учитываются в

    качестве возможных ситуаций выигрыша Джонса у Смита. К сожалению

    (для Дейта), в реальном мире в этих случаях Джонс мог бы выиграть

    у Смита.

    Для третьего вопроса схема Дейта снова выдает неверный результат.

    Джонс и Смит точно сыграли вничью в четырех, а не четырнадцати

    случаях. И это по причине использования правила Дейта: "Сравнение

    UDK=UDK вырабатывает true... Здесь нет трехзначной логики!"

    Конечно, при понимании ограничений схемы Дейта мы могли бы

    сформулировать запрос по поводу точных ничьих с использованием

    условия "where column 1 = column 2 and column 1 != UDK

    and column 2 != UDK". Для такого запроса был бы выдан правильный

    результат. Но это не решает проблем схемы Дейта, а только

    перекладывает на плечи пользователя компенсацию фундаментальных

    ошибок в семантике схемы.

    Для четвертого вопроса схема Дейта выдает правильный результат,




    Содержание  Назад  Вперед