Применение трёхзначной логики и отсутствующая информации в БД | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 4 мая, печатный экземпляр отправим 8 мая.

Опубликовать статью в журнале

Авторы: , ,

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №15 (149) апрель 2017 г.

Дата публикации: 14.04.2017

Статья просмотрена: 360 раз

Библиографическое описание:

Атаманов, Ю. С. Применение трёхзначной логики и отсутствующая информации в БД / Ю. С. Атаманов, В. С. Гончарук, С. Н. Гордеев. — Текст : непосредственный // Молодой ученый. — 2017. — № 15 (149). — С. 3-5. — URL: https://moluch.ru/archive/149/42088/ (дата обращения: 25.04.2024).



В реальном мире часто приходится сталкиваться с проблемой отсутствия какой-либо информации. Весьма типичны ситуации, когда, например, «дата рождения не известна», «имя докладчика будет объявлено дополнительно», «адрес лица в данный момент не известен» и т. д. Поэтому в системах баз данных должен существовать механизм обработки подобных ситуаций. На практике наиболее типичный подход к решению этой проблемы основан на применении неопределенных значений (NULL-значений) и трехзначной логики. Например, возраст человека может быть не известен, поэтому упрощенно можно сказать, что его возраст «является неопределенным». В более точном смысле это выражение означает следующее: а) известно, что человек существует; б) несомненно, человек обладает каким-то возрастом; в) его возраст нам не известен.

Далее рассмотрим концепцию трёхзначной логики, то есть рассмотрим влияние неопределённых значений (UNK, сокращённо от «unknown» — «неизвестно») на вычисление логических выражений.

Ключевая особенность трёхзначной логики состоит в том, что результатом операций сравнения скаляров, в которых хотя бы один из операндов является величиной UNK, будет логическое значение unknown, а не true или false, которое является третьим логическим значением, поэтому данная логика и является трёхзначной. Далее приведены таблицы истинности для операторов AND, OR и NOT в трёхзначной логике.

AND

t

u

f

OR

t

u

f

NOT

t

t

u

f

t

t

t

t

t

f

u

u

u

f

u

t

u

u

u

u

f

f

f

f

f

t

u

f

f

t

Тем не менее, для реализации трехзначной логики одних только операторов AND, OR и NOT недостаточно. Еще одним важным оператором является оператор MAYBE (возможно). Таблица истинности данного оператора показана ниже.

MAYBE

t

f

u

t

f

f

Чтобы продемонстрировать необходимость в использовании оператора MAYBE, рассмотрим запрос: «Получить сведения о сотрудниках с годовой зарплатой меньше 50 тыс. долл., которые могут быть (но это точно не известно) программистами и родились до 18 января 1971 года». С помощью оператора MAYBE данный запрос можно достаточно кратко записать в следующем виде:

EMP WHERE MAYBE (JOB = 'Programmer' AND

DOB < DATE ('1971–1-18')

AND SALARY < 50000.00)

Существуют и другие логические операторы, которые применимы в трёхзначной логике. Например, TRUE_OR_MAYBE (который возвращает true, если его операнд равен true или unk, а в противном случае возвращает false).

Что касается других скалярных операторов, то в общем случае, если хотя бы один из операндов арифметического выражения является величиной UNK, результатом вычисления всего выражения также будет величина UNK. Но данное рассуждение не применимо для логических операторов, рассматриваемых выше, а также для оператора IS_UNK (возвращает значение true, если этот операнд равен UNK, или значение false — в противном случае) и IF_UNK (это оператор преобразования величины UNK в некоторое значение, отличное от UNK).

Следует отметить, что величина UNK (неопределенное значение вида «значение не известно») и значение unk (логическое значение unknown) — это не одно и то же. Данное положение дел является прямым следствием того, что unk — это логическое значение, в то время как величина UNK вообще не является значением. Из этого следует, что типы (т. е. множества значении) не могут содержать величину UNK.

В связи с введением NULLзначений в БД необходимо ввести правило поддержки целостности сущности: ни один компонент первичного ключа любой базовой переменной отношения не может содержать неопределенные значения (NULL).

Данное правило вводится из следующих соображений:

а) кортежи базовых переменных отношения представляют сущности реального мира;

б) сущности реального мира всегда должны допускать возможность их идентификации (по определению);

в) следовательно, их аналоги в базе данных также должны допускать возможность идентификации;

г) в базе данных значения первичного ключа используются в качестве идентификаторов;

д) следовательно, значение любого первичного ключа не может быть «неопределенным».

Стоит сказать, что в реальном мире мы обычно пользуемся именно специальными значениями. Например, специальное значение "?" используется для обозначения количества рабочих часов для некоторого сотрудника, если его фактическое значение по какой-либо причине не известно. Таким образом, общая идея заключается в том, чтобы просто применять подходящее специальное значение, отличное от всех обычных значений атрибута, во всех тех случаях, когда обычное значение не может использоваться.

Изложенный выше способ не очень изящен, но он обладает явным преимуществом, поскольку не подрывает логических основ реляционной модели.

Трёхзначную логику можно также расширить до четырёхзначной и даже более, так как существует множество причин отсутствия некоторой части информации. «Значение неизвестно» — это только одна из возможных причин. Среди других причин такие, как «значение неприменимо», «значение не существует» и т. д.

Литература:

  1. Дейт К. Дж. Введение в системы баз данных, 8-е издание: Пер. с англ. –М.: Издательский дом «Вильямс», 2005. ‑1328 с.
  2. Многозначная логика // Википедия. URL: https://ru.wikipedia.org/wiki/Многозначная_логика (дата обращения: 9.04.2017).
Основные термины (генерируются автоматически): UNK, AND, MAYBE, трехзначная логика, NOT, логическое значение, реальный мир, оператор, первичный ключ, противный случай.


Похожие статьи

Отсутствующая информация в базах данных и концепция...

Значение unk, в данном случае, и является «третьим логическим значением».

Основные термины (генерируются автоматически): UNK, AND, MAYBE, трехзначная логика, NOT, COLOR, логическое значение, оператор, DATE, DOB.

Исследование элементов троичной логики на примере троичного...

Рис. 1. Зависимость диапазона значений (Y) от основания логики (X) при одинаковом числе знаков n.

Иначе, в двоичной логике используются логические уровни 0, 1, в

− 1959 г., под руководством Н. П. Брусенцова разработана первая в мире серийная троичная ЭВМ «Сетунь».

Проблема отсутствующей информации в базах данных

Рис. 1. Таблица истинности для четырех логических операций трехзначной логики. Стоит оговориться, что Null-значение и результат

Для первичных ключей должно выполняться правило поддержки целостности сущности (ни один компонент первичного ключа любой...

Формальная логика в инженерной деятельности

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

Чтобы получить значение функции на выходе какой-либо схемы, достаточно записать эту зависимость в виде логических операторов, связанных между собой...

Аксиоматические теории в курсе математической логики

После этого, пользуясь правилами логического умозаключения, выводят новые утверждения о первоначальных и определяемых понятиях

Интерпретацией неформальной аксиоматической теории называется приписывание значений (смысла) первичным терминам теории.

Проблема целостности данных в базах данных | Статья в журнале...

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

То есть, если, к примеру, первичный ключ имеет три значения («1», «2» и «3»), то значение внешнего ключа не может, например, равняться...

Похожие статьи

Отсутствующая информация в базах данных и концепция...

Значение unk, в данном случае, и является «третьим логическим значением».

Основные термины (генерируются автоматически): UNK, AND, MAYBE, трехзначная логика, NOT, COLOR, логическое значение, оператор, DATE, DOB.

Исследование элементов троичной логики на примере троичного...

Рис. 1. Зависимость диапазона значений (Y) от основания логики (X) при одинаковом числе знаков n.

Иначе, в двоичной логике используются логические уровни 0, 1, в

− 1959 г., под руководством Н. П. Брусенцова разработана первая в мире серийная троичная ЭВМ «Сетунь».

Проблема отсутствующей информации в базах данных

Рис. 1. Таблица истинности для четырех логических операций трехзначной логики. Стоит оговориться, что Null-значение и результат

Для первичных ключей должно выполняться правило поддержки целостности сущности (ни один компонент первичного ключа любой...

Формальная логика в инженерной деятельности

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

Чтобы получить значение функции на выходе какой-либо схемы, достаточно записать эту зависимость в виде логических операторов, связанных между собой...

Аксиоматические теории в курсе математической логики

После этого, пользуясь правилами логического умозаключения, выводят новые утверждения о первоначальных и определяемых понятиях

Интерпретацией неформальной аксиоматической теории называется приписывание значений (смысла) первичным терминам теории.

Проблема целостности данных в базах данных | Статья в журнале...

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

То есть, если, к примеру, первичный ключ имеет три значения («1», «2» и «3»), то значение внешнего ключа не может, например, равняться...

Задать вопрос