Теория:

Реляционный подход организации баз данных, предложенный в \(70\)-х годах \(XX\) века Э. Коддом, основывается на математической теории множеств и математической логике. Использование базы данных предполагает манипулирование данными, включающее в себя поиск необходимых данных. Именно здесь применяются реляционная алгебра и реляционное исчисление, предполагающее вычисление предикатов первого порядка.
Предикат — утверждение, высказанное об объекте.
Утверждение может иметь всего два значения: быть истинным или ложным. Принято считать, что истинное высказывание \(=1\), а ложное \(=0\). Поиск условий, при котором выражение становится истинным, — одна из задач манипулирования данными в БД.
Учитывая, что логические переменные могут принимать только два значения, у нас есть возможность привести полную таблицу значений логической функции в зависимости от логической операции и значений логических переменных, т. е. задать логическую функцию таблично.
Напомним, что основных (базовых) логических операций — три. Это конъюнкция — логическое умножение (обозначается или значком \(*\), или не обозначается совсем), дизъюнкция — логическое сложение (обозначается или значком \(+\)) и инверсия — логическое отрицание (обозначается ¬ или чертой над логической переменной). Остальные операции выражаются через базовые.
Приведём таблицы истинности базовых операций, другими словами, таблицы значений логических функций в зависимости от значений логических переменных.
 
\(A\)
\(B\)
\(A\)\(B\)
\(0\)
\(0\)
\(0\)
\(0\)
\(1\)
\(0\)
\(1\)
\(0\)
\(0\)
\(1\)
\(1\)
\(1\)
\(A\)
\(B\)
\(A\)\(B\)
\(0\)
\(0\)
\(0\)
\(0\)
\(1\)
\(1\)
\(1\)
\(0\)
\(1\)
\(1\)
\(1\)
\(1\)
\(A\)
¬\(A\)
\(0\)
\(1\)
\(1\)
\(0\)
 
И для справки: ещё две операции, на которые часто обращают внимание в тестированиях и экзаменах.
Импликация AB и эквиваленция AB.
 
\(A\)
\(B\)
AB
\(0\)
\(0\)
\(1\)
\(0\)
\(1\)
\(1\)
\(1\)
\(0\)
\(0\)
\(1\)
\(1\)
\(1\)
\(A\)
\(B\)
AB
\(0\)
\(0\)
\(1\)
\(0\)
\(1\)
\(0\)
\(1\)
\(0\)
\(0\)
\(1\)
\(1\)
\(1\)
 
Импликация и эквиваленция выражаются через базовые операции.
 
AB \(=\) ¬AB;
AB \(=\) AB¬A¬B.
 
Поиск в БД формулируется в виде словесного запроса, оборота речи, которому можно поставить в соответствие логическую операцию.
 
Скриншот16022022031036.jpg
Рис. \(1\). Логические операции
Пример:
предположим, что перевозки осуществляются двумя компаниями — Pegasus и Quick. При этом Pegasus зарезервировал время отправления поездов в интервале [\(5\):\(00\);\(17\):\(00\)], Quick — в интервале [\(14\):\(00\);\(23\):\(00\)]. Необходимо выбрать временной интервал для поездов компании Alternative, такой, чтобы исключить интервалы, в которые одновременно ходят поезда Pegasus и Quick
Составим логическое выражение, заменив Pegasus и Quick на \(P\) и \(Q\), а Alternative — на \(A\). Выражение xP обозначает, что время отправления поезда зарезервировано компанией Pegasus.
Получим правило: ¬((xP)(xQ))(xA)=1 при любом значении переменной \(x\).
Преобразуем исходное выражение, заменив xP на \(P\).
Получим: ¬(PQ)A=1.
Заменим импликацию по правилу, приведённому выше: PQA=1.
Т. е. временной интервал, в течение которого курсируют поезда компаний Pegasus и Quick, вместе с временным интервалом, когда курсируют поезда компании Alternative, перекрывают весь интервал движения поездов.
PQ — интервал [\(14\):\(00\);\(17\):\(00\)], тогда \(A\) — интервалы [\(00\):\(00\);\(14\):\(00\)] и [\(17\):\(00\);\(24\):\(00\)].
Источники:
Рис. 1. Логические операции. © ЯКласс.