Информационные системы и базы данных
ИНФОРМАТИКА | Последнее обновление 03. 07. 2023 Admin |
Page 2 of 2 12
ВЕРСИЯ ДЛЯ ПЕЧАТИ |
§ 9
Логические условия выбора данных
При построении запросов на выборку важное значение имеет правильная запись условий выбора.
Условие выбора — это логическое выражение, которое должно быть истинным для выбираемых записей БД.Логические выражения представляются на языке математической логики, с элементами которой вы знакомились в курсе основной школы. Вспомним основные понятия логики, знание которых нам понадобится в дальнейшем.
1. Логическая величина — это величина, принимающая одно из двух значений — ИСТИНА (TRUE) и ЛОЖЬ (FALSE). В базах данных поле логического типа — это логическая величина.
2. Логическое выражение — это утверждение, которое может быть либо истинным, либо ложным. Логическое выражение состоит из логических констант, логических переменных, операций отношения и логических операций.
3. Операции отношения сравнивают значения двух величин. Знаки операций отношения: = (равно), о (не равно), > (больше), < (меньше), >= (больше или равно), <= (меньше или равно). Сравнение числовых величин производится в их арифметическом смысле; сравнение символьных величин — с учетом порядка символов в таблице кодировки; величины типа «дата» и «время» сравниваются по их последовательности во времени.
4. Существуют три основные логические операции: отрицание — НЕ (NOT), конъюнкция — И (AND), дизъюнкция — ИЛИ (OR). Их правила выполнения отражаются в таблице истинности:
А |
В |
НЕ А |
А ИВ |
А ИЛИ В |
ИСТИНА |
ИСТИНА |
ЛОЖЬ |
ИСТИНА |
ИСТИНА |
ИСТИНА |
ЛОЖЬ |
ЛОЖЬ |
ЛОЖЬ |
ИСТИНА |
ЛОЖЬ |
ИСТИНА |
ИСТИНА |
ЛОЖЬ |
ИСТИНА |
ЛОЖЬ |
ЛОЖЬ |
ИСТИНА |
ложь |
ЛОЖЬ |
5. По убыванию старшинства логические операции расположены в следующем порядке: НЕ, И, ИЛИ. Для влияния на последовательность выполнения операций в логических выражениях могут употребляться круглые скобки.
Сначала потренируемся на формальном примере в составлении логических выражений — условий выбора записей из БД. Рассмотрим следующую таблицу:
Ключи записей |
Поля |
||
^4 |
В |
С |
|
R1 |
1 |
2 |
3 |
R2 |
1 |
3 |
1 |
R3 |
2 |
2 |
2 |
R4 |
3 |
3 |
3 |
R5 |
3 |
2 |
3 |
Это однотабличная БД, в которой А, В, С являются числовыми полями, a Rl, R2 и т. д. — идентификаторами (ключами) записей. Ниже приведены примеры условий выбора, содержащих логические операции, и результаты выбора, т. е. записи, удовлетворяющие этим условиям. Внимательно изучите эти примеры и постарайтесь понять их.
Условие: | Ответ: |
1) А=1 И В=2 2) А=1 ИЛИ А=3 3) А=1 ИЛИ В=2 4) А=1 ИЛИ В=2 ИЛИ С=3 5) А=1 И В=2 И С=3 6) НЕ А=1 |
: R1 : Л1, R2, R4, R5 : Bl, R2, R3, R5 : R1, R2, R3, R4, R5 : R1 : R3, R4, R5 |
Из этих примеров важно усвоить правила выполнения операций конъюнкции (И) и дизъюнкции (ИЛИ). Каждая из этих операций объединяет два условия (отношения). В результате выполнения операции ИЛИ в одну выборку объединяются записи, удовлетворяющие каждому из условий. Операция И работает иначе: сначала выбираются все записи, удовлетворяющие первому условию, затем из отобранных записей выбираются те, которые удовлетворяют второму условию.
В каждом из следующих выражений присутствуют разные логические операции, поэтому при их выполнении нужно учитывать старшинство операций.
Условие: | Ответ: |
7) А=1 ИВ=2 ИЛИ С=3 8) А=1 ИЛИ В=2 ИС=3 9) НЕ А=1 ИЛИ В=2 И С=3 10) (А=1 ИЛИ В=2) И С=3 |
: R1, R4, R5 : R1, R2, R5 : R1 R3, R4, R5 : R1l, R5 |
И наконец, приведем примеры, в которых значения одних полей сравниваются со значениями других полей, а также с арифметическими выражениями.
Условие: | Ответ: |
11) В>=А 12) В>=А И В>=С 13) А=В ИЛИ А=С 14) С=А + В |
:R1, R2, R3, R4 :R2, R3, R4 :R2, R3, R4, R5 :R1 |
В компьютерном практикуме вы уже познакомились с табличной формой представления условий запроса в конструкторе запросов. Можно говорить о том, что в конструкторе запросов используется табличный способ представления логических выражений. Разберемся подробнее с этим способом.
В ячейках таблицы конструктора запросов записываются условия, накладываемые на значения соответствующих полей. Условия, стоящие в одной строке, выполняются одновременно, т. е. они соединяются между собой операцией И; условия в разных строках соединяются операцией ИЛИ.
Таблица играет роль фильтра при выборе записей из БД: сначала отбираются записи, удовлетворяющие условиям первой строки, затем к ним добавляются записи, удовлетворяющие условиям второй строки, и т. д.
В следующей таблице приведены примеры реализации логических выражений табличным методом, применяемым в конструкторе запросов. Использованы условия выбора из рассмотренного выше формального примера.
Условие |
А
|
В
|
С
|
1)А=1 ИВ=2 | =1 |
=2 |
|
2)А=1 ИЛИ А=3 | =1 |
||
=3 |
|||
3)А=1 ИЛИ В=2 | = 1 |
||
=2 |
|||
4) А=1 ИЛИ В=2 ИЛИ С=3 | = 1 |
||
=2 |
|||
= 3 |
|||
5) А=1 И В=2 И С=3 | =1 |
=2 |
=3 |
6)НЕА=1 | <>1 |
||
7)А=1 ИВ=2 ИЛИ С=3 | =1 |
=2 |
|
=3 |
|||
8)А=1 ИЛИ В=2 И С=3 | =1 |
||
=2 |
=3 |
||
9) НЕ А=1 ИЛИ В=2 И С=3 | о1 |
||
=2 |
=3 |
||
10) (А=1 ИЛИ В=2) И С=3 | =1 |
=3 |
|
=2 |
=3 |
||
11)В>=А | >=[А] |
||
12) В>=А И В>=С | >=[А] AND >=[С] |
||
13) А=В ИЛИ А=С | =[B]OR =[С] |
||
14) С=А+В | =[А]+[В] |
Обратите внимание на условие в примере 10. При записи в таблицу фактически произошло раскрытие скобок и данное логическое выражение заменилось эквивалентным выражением:
А=1 И С=3 ИЛИ В=2 И С=3
Имя поля, заключенное в квадратные скобки, идентифицирует значение этого поля в записи. Такое обозначение в принципе можно использовать во всех условных выражениях в конструкторе. Например, отношение А=1 в конструкторе запроса в столбце А можно записать в двух вариантах: 1) [А]=1, 2) =1. Второй вариант короче, поэтому обычно пользуются им. Условие в примере 13 можно было бы записать так: [А]=[В] OR [А]=[С].
Система основных понятий
Условия выбора данных |
|||
Условие выбора — логическое выражение |
|||
Простое логическое выражение |
Сложное (составное) логическое выражение |
||
Операция отношения или логическое поле |
Отношения 4- логические поля + логические операции |
||
Основные логические операции |
|||
НЕ (отрицание) |
И (логическое умножение (конъюнкция)) |
ИЛИ (логическое сложение (дизъюнкция)) |
|
В конструкторе запросов (Access) — табличная форма представления условия выбора |
|||
И объединяет условия в одной строке |
ИЛИ объединяет условия в разных строках |
Вопросы и задания
1. а) Что такое логическое выражение?
б) Какие существуют основные логические операции? Что такое таблица истинности?
2. Для таблицы, приведенной в данном параграфе, определите результаты отбора записей по следующим условиям:
а) А=2ИВ=2;
б) А=2 ИЛИ В=2;
в) А=2ИВ=1 ИЛИ С=3;
г) А>В;
д) С=А+В;
е) А=1ИЛИА=2;
ж) В>1 ИВ<3.
3. Все условия из предыдущего задания представьте в табличной форме, т. е. на языке конструктора запросов.
ВЕРНУТЬСЯ НА СТРАНИЦУ ПЛАНИРОВАНИЯ
Page 2 of 2 12