Вторник, 26.11.2024, 23:37
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
Меню сайта
Статистика
Конкурс!
конкурс сайтов
 п. 13 Условия выбора и простые логические выражения

§ 13. Условия выбора и простые логические выражения


Основные темы параграфа:

♦ понятие логического выражения;
♦ операции отношения;
♦ запрос на выборку и простые логические выражения.

Понятие логического выражения

Чаще всего для справки требуются не все записи, а только часть из них, удовлетворяющая какому-то условию. Это условие называется условием выбора. Например, из таблицы «Погода» требуется узнать, в какие дни шел дождь; или из таблицы «Факультативы» — определить, кто занимается одновременно цветоводством и танцами; или из таблицы «Успеваемость» — получить список всех отличников по алгебре и физике.

В командах СУБД условие выбора записывается в форме логического выражения.

Логическое выражение, подобно математическому выражению, выполняется (вычисляется), но в результате получается не число, а логическое значение: истина (true) или ложь (false). Логическая величина — это всегда ответ на вопрос, истинно ли данное высказывание.

Таблица 3.4. Высказывания и их логические значения

Высказывания Номер записи Значение

БД «Погода»
1. Идет дождь. 1 Ложь
2. Давление больше 740 мм рт. ст. 2 Истина
3. Влажность не 100%. 3 Ложь

БД «Домашняя библиотека»
4. Книга стоит ниже пятой полки. 3 Истина
5. Автор книги — Толстой Л. Н. 3 Ложь

БД «Факультативы»
6. Фамилия ученика — Русанов. 1 Истина
7. Ученик занимается цветоводством. 1 Ложь
8. Ученик занимается танцами. 1 Истина

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

1. ОСАДКИ = "дождь" 5. АВТОР = "Толстой Л.Н."
2. ДАВЛЕНИЕ > 740 6. ФАМИЛИЯ = "Русанов"
3. ВЛАЖНОСТЬ <> 100 7. ЦВЕТОВОДСТВО
4. ПОЛКА < 5 8. ТАНЦЫ


Операции отношения

Шесть первых выражений называются отношениями. В каждом из них имя поля базы данных связано с соответствующими значениями знаками отношений. Вот все возможные знаки отношений:

= равно; < меньше;
<> не равно; >= больше или равно;
> больше; <= меньше или равно.

Как выполняются отношения для числовых величин, вам должно быть понятно из математики. (В математике отношения называются неравенствами.) Для символьных величин требуется пояснение.

Отношение «равно» истинно для двух символьных величин, если их длины одинаковы и все соответствующие символы совпадают. Следует учитывать, что пробел — это тоже символ. Например, отношение

АВТОР="Беляев А.Р."

не будет истинным ни для одной записи нашей таблицы, поскольку в таблице везде между фамилией и инициалами стоит один пробел, а в данном отношении — два.

Символьные величины можно сопоставлять и в отношениях <, >, <=, >=. Здесь упорядоченность слов (последовательностей символов) определяется по алфавитному принципу. Вот фрагмент из орфографического словаря, содержащий последовательно расположенные в нем слова:

квартет, компонент, конверт, конвульсия.

Между этими словами истинны следующие отношения:

квартет < компонент;
компонент < конверт;
конверт < конвульсия.

Значения полей типа «дата» при выполнении отношений сравниваются в соответствии с календарной последовательностью. Например, истинны отношения:

3/12/1998 < 23/04/2001;
24/09/2004 > 23/09/2004.

В некоторых СУБД используется тип «время» со следующим форматом значений: ЧЧ:ММ:СС (часы, минуты, секунды). При выполнении отношений учитывается хронологическая последовательность. Например, истинны отношения:

12:53:08 > 03:40:00;
23:05:12 < 23:05:13.

А теперь вернемся к приведенным выше примерам логических выражений. В примерах 7 и 8 нет никаких знаков отношений. Дело в том, что поля с именами ЦВЕТОВОДСТВО иТАНЦЫ имеют логический тип. Поэтому в каждой записи их значения — это логические величины «ложь», «истина».

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


Запрос на выборку и простые логические выражения

Запишем несколько команд для получения справки, используя условия выбора. Вот как выглядит команда запроса информации из БД «Погода» о датах всех дождливых дней:

. выбрать ДЕНЬ где ОСАДКИ = "дождь"

В итоговую справку попадут лишь те записи, для которых истинно условие поиска. Значит, получим:

ДЕНЬ
18/03/04

Следующая команда позволяет вывести даты и влажность, соответствующие тем дням, когда атмосферное давление было выше 745 мм рт. ст.:

.выбрать ДЕНЬ, ВЛАЖНОСТЬ где ДАВЛЕНИЕ >745.

ДЕНЬ ВЛАЖНОСТЬ
15/03/04 67
16/03/04 62
19/03/04 87

Запишем команду запроса справки к БД «Домашняя библиотека»: вывести названия книг и фамилиии и инициалы авторов, фамилии которых начинаются с буквы «О» и далее по алфавиту:

.выбрать АВТОР, НАЗВАНИЕ где АВТОР >= «О»

АВТОР НАЗВАНИЕ
Тургенев И.С Повести и рассказы
Олеша Ю.К. Избранное
Тынянов Ю.Н. Кюхля
Толстой Л.Н. Повести и рассказы

А теперь запрос к БД «Факультативы»: вывести список фамилий всех учеников, посещающих танцы:

.выбрать ФАМИЛИЯ где ТАНЦЫ.

ФАМИЛИЯ
Русанов
Зотова
Шляпина

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

Многие СУБД позволяют в отношениях использовать арифметические выражения. Арифметические выражения могут включать в себя числа, имена полей числового типа, знаки арифметических операций, круглые скобки*.

*В некоторых СУБД такая возможность реализуется через специально организуемые вычисляемые поля.

Рассмотрим базу данных, содержащую таблицу успеваемости учеников (табл. 2.3).

Требуется получить список учеников, у которых сумма баллов по гуманитарным предметам больше, чем по естественным. Следует отдать команду:

.выбрать УЧЕНИК где РУССКИЙ + ИСТОРИЯ + МУЗЫКА > АЛГЕБРА + ХИМИЯ + ФИЗИКА

В результате получим:

Ботов Иван;
Галкина Нина.

Следующая команда запрашивает фамилии учеников, у которых оценка по алгебре выше их среднего балла:

.выбрать УЧЕНИК где АЛГЕБРА > (РУССКИЙ + АЛГЕБРА + ХИМИЯ + ФИЗИКА + ИСТОРИЯ + МУЗЫКА)/6

Ответ:          Аликин Петр;
                     Галкина Нина.


Коротко о главном

Логическое выражение вычисляется подобно математическому, но может принимать всего два значения: истина (true) или ложь (false).

Простейшая форма логического выражения — одна величина логического типа.

Отношение — форма логического выражения. Существует шесть вариантов отношений: «равно», «не равно», «больше», «меньше», «больше или равно», «меньше или равно». Отношения применимы ко всем типам полей.

Условия выбора в командах СУБД записываются в виде логических выражений.


Вопросы и задания

1. Какую роль выполняет условие выбора? После какого служебного слова записывается это условие в команде выбрать?
2. Что такое логическое выражение? Какие значения оно принимает?
3. Какое логическое выражение называется простым?
4. Какие виды отношений используются в логических выражениях? Как записываются знаки отношений?
5. Как сравниваются символьные величины, даты, логические величины?
6. В следующих простых логических выражениях поставьте вместо знаков вопроса такие знаки отношений, при которых эти выражения будут истинны в указанных записях баз данных.
а) БД «Погода», запись номер 3.
       ВЛАЖНОСТЬ ? 90
       ОСАДКИ ? "дождь"
б) БД «Домашняя библиотека», запись номер 1.
       АВТОР ? "Толстой Л.Н."
       ГОД ? 1990
в) БД «Успеваемость», запись номер 4.
       ФИЗИКА ? 2
7. Данные высказывания запишите в форме простых логических выражений и определите результат их вычисления для указанных записей.
а) БД «Погода», запись номер 2.
       Температура выше нуля.
       Осадков нет.
б) БД «Домашняя библиотека», запись номер 3.
       Книга издана в 1982 году.
       Книга находится ниже пятой полки.
в) БД «Факультативы», запись номер 4.
       Ученик занимается геологией.
       Фамилия ученицы — Шляпина.
8. Запишите следующие высказывания в форме логических выражений:
а) фамилия ученика — не Семенов;
б) ученик занимается геологией;
в) дата — раньше 5 мая 1989 года;
г) дата — не позже 23 сентября 1996 года;
д) по алгебре — не отлично;
е) автор книги — Беляев А.Р.;
ж) книга издана до 1990 года;
з) книга находится не ниже третьей полки.
9. Запишите в форме команды. Выбрать запросы, использующие в качестве условий простые логические выражения, полученные в результате выполнения предыдущего задания.


Интерактивный задачник, раздел "Реляционные структуры данных"

Copyright MyCorp © 2024
ИКТ 2014
Архив записей
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Бесплатный хостинг uCoz