
Формальная логика и контринтуитивность в SQL-запросах с неожиданными результатами (примеры и дидактические рекомендации).
Язык запросов SQL изначально создавался как инструмент, доступный для освоения пользователями без глубоких компетенций в сфере информатики и программирования. Между тем, при изучении и использовании SQL в работе с данными обучающиеся и пользователи могут сталкиваться с разнообразными трудностями. В ряде случаев запросы требуют сложных логических рассуждений и построения многоуровневой композиции кода. Существующие результаты исследований показывают, что ошибки при построении SQL-запросов с использованием операторов AND и OR являются одними из распространенных и оцениваются как достаточно трудные для искоренения и значимые по своим информационным последствиям. Другая трудность связана с наличием в SQL-стандарте и спецификациях СУБД контринтуитивных правил, например, при обработке значений NULL. Сложная логическая структура SQL-запроса в комплексе с эффектом контринтуитивности может порождать явление SQL-запросов c неожиданными результатами и затруднять оценку их релевантности. Описанные ситуации образуют специфический предмет при освоении языка SQL, которому в учебной литературе уделяется недостаточно внимания. В докладе представлен анализ некоторых характерных случаев, при которых правила формальной логики и контринтуитивные аспекты SQL порождают эффект запросов с неожиданными результатами (приоритетность логических операций, законы де Моргана, обработка значений NULL и др.) и даны некоторые дидактические рекомендации.