Классика баз данных - статьи

       

Исторический обзор


В начале 1970-х гг. в серии очень влиятельных статей Э.Ф. Кодд представил реляционную модель баз данных, включающую реляционное исчисление, реляционную алгебру и нормализацию реляционных баз данных. У него также была колонка в журнале FDT Bulletin of ACM-SIGMOD, предшествовавшем ACM SIGMOD Record, в которой он разъяснял различные понятия реляционных баз данных.

В [1] он отвечал на вопрос об обработке запросов при наличии с реляционной базе данных неопределенных значений. Для иллюстрации он использовал реляционное исчисление. Кодд предложил трехзначную логику с истинностными значениями ‘True’, ‘False’ и ‘Unknown’. Если в таблице имеется неопределенное значение, то условие, в вычислении которого оно участвует, производит истинностное значение ‘Unknown’. Истинностные значения для сложных условий вычислялись на основе таблиц истинности для связок ‘and’, ‘or’ и ‘not’. Например, значением условия ‘True or Unknown’ является ‘True’, поскольку дизъюнкция истинна при истинности хотя бы одного дизъюнкта. Кодд вычислял условие ‘Uknown or Uknown’ как ‘Uknown’. В примере Дейта оба условия Suppliers.city <> Parts.city и Parts.city <> ‘Paris’ вычисляются для строки P1 в ‘Uknown’; следовательно, по методу Кодда ‘Uknown’ дает и вычисление всего условия.

Я вспоминаю, как читал статью Кодда летом 1976-го г., когда временно пребывал в Пенсильванском университете. Я сразу понял, что уже сталкивался с этой проблемой в другом контексте несколькими годами раньше. В [4] при исследовании трехзначной логики Клини я показал, что в истинностно-функциональной логике (где связки определяются таблицами истинности) для некоторых формул не обеспечиваются корректные истинностные значения, и также предложил не истинностно-функциональную трехзначную логику, в которой для всех формул обеспечивались корректные истинностные значения.

Для случая неопределенных значений в реляционной базе данных это означает, что истинностные таблицы, используемые Коддом (как и в трехзначной логике Клини), не всегда приводят к корректным ответам на запросы.

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