На Горох
Информатика, 10 класс

§ 37. Логика СУБД Access

"Информатика (базовый уровень)", Гейн А.Г., Юнерман Н.А.

Объяснение темы В оглавлении: § 37. Логика СУБД Access

Кратко о теме

Логика СУБД Access помогает отбирать из таблиц только нужные записи. Для этого задают критерий — логическое условие, которое программа проверяет для каждой записи и оценивает как истинное или ложное. Простые условия сравнивают значение поля с заданным значением, а логические операции И, ИЛИ и НЕ позволяют соединять или изменять условия. Чтобы запрос выбрал именно нужные данные, важно правильно расположить критерии в бланке и учитывать порядок операций.

Объяснение темы

Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.

Определения и обозначения

Логическое выражение — условие, которое СУБД проверяет для каждой записи и оценивает как «истина» или «ложь». Например, выражение Класс = 10 истинно для записи ученика десятого класса и ложно для остальных. Такой результат позволяет программе решать, подходит ли запись для запроса.

Критерий отбора — условие, по которому Access определяет, какие записи включить в результат запроса. Его задают по значениям полей, чтобы получить не всю таблицу, а только нужную часть данных. Например, можно выбрать товары дешевле заданной суммы.

Логическая операция — способ соединить логические выражения или изменить одно из них. В Access используют И, ИЛИ и НЕ, чтобы описать сложные критерии отбора. Благодаря им можно задать, должны ли выполниться все условия, достаточно ли одного или нужно исключить подходящие под условие записи.

Логическое поле — поле таблицы, которое принимает одно из двух значений: Да/Нет или Истина/Ложь. Оно удобно для хранения признака, у которого нет промежуточных вариантов, например «Оплачено» или «Есть в наличии». Значение такого поля можно непосредственно использовать в условии запроса.

Как это устроено

Access проверяет критерий отдельно для каждой записи, потому что значения полей у записей различаются. Программа подставляет значения текущей записи в условие и получает результат: истину или ложь. Если итоговое условие истинно, запись остаётся в выборке, а если ложно — не попадает в неё. Поэтому один критерий может отобрать несколько записей, одну запись или ни одной.

Простое логическое выражение часто возникает при сравнении значения поля с константой — заданным числом или текстом. Например, Возраст > 15 сравнивает возраст в записи с числом 15, а Город = "Москва" проверяет совпадение текста. Сравнение делает значение поля проверяемым по ясному правилу. Для чисел используют знаки сравнения, а для текста важно указать само значение как текст.

Операция И нужна, когда запись обязана удовлетворять нескольким требованиям сразу. Например, для запроса об учениках десятого класса со средним баллом не ниже 4 должны одновременно выполняться Класс = 10 и СреднийБал ≥ 4. Если хотя бы один критерий не выполнен, вся связка И ложна. Поэтому И подходит для отбора по пересечению признаков.

Операция ИЛИ задаёт альтернативу: достаточно выполнения одного из условий. Например, запрос может выбирать записи учеников десятого или одиннадцатого класса. Если использовать здесь И, одна запись должна была бы одновременно относиться к двум классам, что обычно невозможно. Значит, выбор между И и ИЛИ зависит от смысла требования, а не от того, насколько похожи записи.

Операция НЕ обращает результат условия: если оно истинно, выражение с НЕ ложно, и наоборот. Её применяют, когда нужно исключить записи с определённым признаком, например выбрать неоплаченные заказы условием NOT Оплачено. В бланке запроса условия одной строки обычно соединяются И, а критерии в разных строках — ИЛИ. При сочетании операций порядок тоже влияет на итог, поэтому скобки помогают сгруппировать нужные условия и не допустить неоднозначного отбора.

Логические операции и условия отбора в Access

ОперацияОбозначение или запись в AccessКогда результат истиненПример условия
ИANDИстинны оба условияГород = "Москва" AND Возраст > 15
ИЛИORИстинно хотя бы одно условиеКласс = 10 OR Класс = 11
НЕNOTИсходное условие ложноNOT Оплачено
Сравнение на равенство=Значения совпадаютОценка = 5
Сравнение на неравенство<>Значения различаютсяГород <> "Москва"

В столбце с примерами показано, как записать сравнение и соединить несколько условий. Перед вводом критерия проверьте тип поля: числа и текст задаются по-разному. Если в условии есть разные операции, используйте скобки, чтобы явно показать нужную группировку.

Разбор задач

Отобрать учеников 10 класса

Нужно получить только записи учеников, у которых в поле «Класс» указано значение 10. Другие признаки проверять не требуется, поэтому составного условия не нужно. Сначала выбираем поле, которое содержит нужные сведения, а затем задаём сравнение с числом.

  1. В бланке запроса найдите столбец поля «Класс».
  2. В строке условия укажите: Класс = 10.
  3. Запустите запрос: Access проверит равенство в каждой записи и оставит подходящие.

Ответ: в результат попадут записи учеников 10 класса.

Ученики 10 класса со средним баллом не ниже 4

Здесь запись подходит, только если выполняются два требования: ученик учится в десятом классе и его средний балл равен 4 или выше. Между ними нужна операция И, потому что недостаточно соответствовать только одному критерию. В бланке запроса это удобно выразить условиями в одной строке.

  1. В столбце «Класс» задайте условие Класс = 10.
  2. В столбце «Средний балл» задайте СреднийБал ≥ 4.
  3. Поместите оба критерия в одну строку: Access проверит их одновременно для каждой записи.

Ответ: запрос оставит только учеников десятого класса со средним баллом не ниже 4.

Товары двух категорий дешевле 1000 рублей в наличии

Товар должен относиться к одной из двух категорий, стоить меньше 1000 рублей и быть в наличии. Сначала объединяем названия категорий через ИЛИ, потому что подходит любая из них. Затем применяем И к цене и наличию: эти требования должны выполняться вместе с выбранной категорией.

  1. Сгруппируйте альтернативы: (Категория = "Книги" OR Категория = "Диски").
  2. Добавьте общее для обеих категорий условие: Цена < 1000.
  3. Исключите товары не в наличии. Если поле «В наличии» хранит Да/Нет, задайте ВНаличии = Да.
  4. Запишите итог как (Категория = "Книги" OR Категория = "Диски") AND Цена < 1000 AND ВНаличии = Да.

Ответ: в выборке будут недорогие товары категорий «Книги» или «Диски», которые есть в наличии. Скобки показывают, что сначала выбирается одна из двух категорий, а остальные требования относятся к обеим.

Типичные ошибки

Соединять через И условия, из которых достаточно одного, — значит потребовать их одновременного выполнения. Так бывает, если ученик воспринимает «или» невнимательно или автоматически ставит И. Проверьте себя вопросом: может ли одна запись удовлетворять обоим условиям сразу? Если требуется альтернатива, используйте ИЛИ.

Ещё одна ошибка — помещать альтернативные критерии в одну строку бланка. Access трактует условия одной строки как одновременные, поэтому результат может оказаться пустым или слишком узким. Для ИЛИ размещайте альтернативы в разных строках и перед запуском запроса проверьте, действительно ли достаточно выполнения одной из них.

Если забыть кавычки у текстового значения, Access может принять его за имя поля или сообщить об ошибке. Ошибки также возникают из-за неверного знака сравнения или неподходящего разделителя. Сверьте тип поля и запись критерия: например, текстовое значение указывайте в кавычках, а число обычно записывайте без них.

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

Связь с другими темами

Чтобы задавать критерии отбора, нужно понимать строение таблицы базы данных: записи содержат данные об объектах, а поля — отдельные характеристики. Также нужно различать типы полей и уметь сравнивать числовые и текстовые значения. Эти знания помогают выбрать подходящий столбец и правильно сформулировать простое условие.

Логические критерии используют в запросах на выборку и при фильтрации данных. Те же правила пригодятся при проектировании форм и отчётов, когда нужно показывать или вводить только определённые сведения. В SQL условия записываются иначе по форме, но смысл операций И, ИЛИ и НЕ остаётся важным для построения отбора.

Что запомнить

  • Критерий отбора — логическое условие для каждой записи.
  • И требует одновременной истинности всех объединённых условий.
  • ИЛИ даёт истину, если истинно хотя бы одно условие.
  • НЕ меняет значение истинности условия на противоположное.
  • В одной строке бланка запроса условия обычно объединяются операцией И.
  • В разных строках бланка запроса условия объединяются операцией ИЛИ.
  • Скобки помогают явно задать нужный порядок выполнения логических операций.

Частые вопросы по теме

Чем отличаются условия И и ИЛИ в запросе Access?

При И запись попадёт в результат, только если истинны все соединённые условия. При ИЛИ достаточно, чтобы истинным было хотя бы одно условие.

Почему условия ИЛИ записывают в разных строках бланка запроса?

В бланке запроса Access условия одной строки проверяет одновременно, то есть соединяет операцией И. Размещение критериев в разных строках задаёт альтернативы: достаточно выполнения одной из них.

Как отобрать записи, в которых одновременно выполняются три условия?

Задайте все три условия в одной строке бланка запроса, в соответствующих столбцах. Access соединит их операцией И и оставит записи, для которых истинны все три.

Когда в критерии нужны кавычки и скобки?

Текстовые значения, например "Москва", обычно заключают в кавычки, чтобы Access распознал их как текст, а не имя поля. Скобки нужны, чтобы явно сгруппировать условия и задать нужный порядок выполнения И, ИЛИ и НЕ.

Как Access определяет, какие записи попадут в результат запроса?

СУБД проверяет критерий отбора для каждой записи отдельно. В результат попадают записи, для которых всё условие запроса истинно.

Спросить по теме параграфа

§ 37. Логика СУБД Access

Эта же тема в других учебниках

Учебник

Оглавление →
Предмет
Информатика
Класс
10 класс
Учебник
"Информатика (базовый уровень)", Гейн А.Г., Юнерман Н.А.