NOT (НЕМАЄ). Ясно, що помилкове значення переходить у щире і навпаки, а невизначене залишається невизначеним. Виходить, таблиця для NOT виглядає так:
Х | NOT Х
Істина | Неправда
Невизначено | Невизначено
Неправда | Істина
Для операції AND (І) істина будет тоді і тільки тоді, коли істинні обидва операнда. Якщо ж хоча б один операнд неправдивий, то неправдивий і результат операції. Кроме того, ясно, що значение результата застосування операції AND до однакових операндів співпадає зі значенням цього операнда. Іншими словами ми можемо так заповнити частину таблиці для операції AND:
Х | Y | Х AND Y
Істина | Істина | Істина
Істина | Невизначено
Істина | Неправда | Неправда
Невизначено | Істина
Невизначено | Невизначено | Невизначено
Невизначено | Неправда | Неправда
Неправда | Істина | Неправда
Неправда | Невизначено | Неправда
Неправда | Неправда | Неправда
Для двох порожніх клітинок зрозуміло, що значення повинні бути однаковими, і немає ніяких підстав написати там ні істину, ні неправду. Тому пишемо значення Невизначено. Остаточно таблиця набуде такого вигляду:
Х | Y | Х AND Y
Істина | Істина | Істина
Істина | Невизначено | Невизначено
Істина | Неправда | Неправда
Невизначено | Істина | Невизначено
Невизначено | Невизначено | Невизначено
Невизначено | Неправда | Неправда
Неправда | Істина | Неправда
Неправда | Невизначено | Неправда
Неправда | Неправда | Неправда
Для операції OR можна розмірковувати аналогічно. Тоді получиться така таблиця:
Х | Y | Х OR Y
Істина | Істина | Істина
Істина | Невизначено | Істина
Істина | Неправда | Істина
Невизначено | Істина | Істина
Невизначено | Невизначено | Невизначено
Невизначено | Неправда | Невизначено
Неправда | Істина | Істина
Неправда | Невизначено | Невизначено
Неправда | Неправда | Неправда
Тепер легко вирахувати значення будь-якого логічного вираження в трьохзначній логіці. Розглянемо для прикладу ті ж вирахування NOT (Х OR Y) і NOT X OR Y, які обговорювалися для двозначної логіки :
Х | Y | Х OR Y | NOT
(Х OR Y) | NOT Х | NOT X
OR Y
Істина | Істина | Істина | Неправда | Неправда | Істина
Істина | Невизначено | Істина | Неправда | Неправда | Невизначено
Істина | Неправда | Істина | Неправда | Неправда | Неправда
Невизначено | Істина | Істина | Неправда | Невизначено | Істина
Невизначено | Невизначено | Невизначено | Невизначено | Невизначено | Невизначено
Невизначено | Неправда | Невизначено | Невизначено | Невизначено | Невизначено
Неправда | Істина | Істина | Неправда | Істина | Істина
Неправда | Невизначено | Невизначено | Невизначено | Істина | Істина
Неправда | Неправда | Неправда | Істина | Істина | Істина
Відзначимо одну важливу обставину, якою ми будемо надалі користатися: якщо в логічному вираженні жоден з атомів не приймає значення Невизначене, те і все логічне вираження не може мати значення Невизначене. Можна сказати, що наша тризначна логіка є розширенням двозначної логіки за рахунок наявності додаткового значення атомів.
Ясно також і інше: узяте нами обмеження, що атрибути мають тільки числовий тип — зовсім несуттєво. Нам не важливо, який тип має атрибут, аби в системі була передбачена можливість обчислення логічного значення для атомів, куди входять дані атрибути. Зокрема, атрибути самі можуть мати логічний тип.
Нехай нам дане деяке відношення (тобто таблиця) з атрибутами a1, a2, … , ak... Нехай далі X — логічне вираження, не утримуючих інших атрибутів, крім a1, a2, … , ak (але, бути можуть, не всі ці атрибути). Візьмемо довільний рядок з даного нам відносини. Це значить, що кожен атрибут одержав відповідне значення. Підставимо в X ці значення атрибутів. Тоді наше логічне вираження також одержить деяке значення. Тим самим логічне вираження X може розглядатися як функція, що кожному рядку відносини однозначно зіставляє логічне значення (одне з двох чи більш, у залежності від того, скільки значна логіка використовується).
На час ми можемо навіть забути, що функція задається логічним вираженням, і дати наступне визначення.
Визначення 3. Результатом фільтрації даного відношення з атрибутами a1, a2, … , ak щодо заданої логічної функції f (a1, a2, … , ak) називається відношення, що складається з тих і тільки тих рядків вихідного відношення, для яких функція f приймає значення Істина.
Але є одна принципова проблема: чи вірно, що будь-яка логічна функція може бути задана придатним логічним вираженням? Відповідь математиками на це питання отриманий досить давно (задовго до винаходу баз даних) і звучить дивно: для двозначної логіки це вірно, а для тризначної немає.
Тут-те і зарита собака всіх непорозумінь з визначенням, що таке фільтр. Адже поки ми говоримо, що фільтр — це умова, що повинна виконуватися, чи висловлення, що повинне бути щирим, ми можемо мати на увазі будь-яку логічну функцію. Але комп'ютер не розуміє мови будь-яких функцій, він може працювати тільки мовою логічних виражень. У двозначній логіці це те саме, і автори підручників легко зсковзують з мови функцій на мову виражень (що нам не подобається, оскільки це ідейно різні речі). Але Access-те працює в тризначній логіці, а там це вже не одне і теж, і фільтром може бути тільки логічне вираження, а не якась міфічна чи умова висловлення. Подібне зіскользування є вже помилкою.
Отже, фільтром для даного відношення називається логічне вираження, що не містить атрибутів, що не входять у дане відношення.
Що таке запит
У звичайній мові термін “запит” вживається в різних змістах. По-перше, ця вимога офіційного роз'яснення по якій-небудь справі (запит депутата міністру); по-друге, призначення