Поиск информации в базе данных
Введение
Поиск информации в базе данных может осуществляться несколькими способами:
- Перебором записей базы данных. Способ неудобен, если база данных большая и/или с большим количеством полей.
- Используя встроенные возможности системы управления базы данных. Данный способ максимально адаптирован к пользователю.
Как правило, при использовании встроенных возможностей СУБД: используется язык SQL (Structured Query Language). Этот язык представляет собой непроцедурный язык, используемый для управления данными реляционных СУБД. Термин «непроцедурный» означает, что на данном языке можно сформулировать, что нужно сделать с данными, но нельзя проинструктировать, как именно это следует сделать. Иными словами, в этом языке отсутствуют алгоритмические конструкции, такие как метки, операторы цикла, условные переходы и др.
Часто сам язык скрыт от пользователя, но с некоторыми его возможностями пользователь СУБД должен быть знаком. Например, данный язык использует, в том числе, возможности математической логики.
Основы использования математической логики при работе с СУБД
Условия выбора и простые логические выражения
Логическое выражение – это некоторое высказывание, по поводу которого можно заключить истинно оно или ложно.
Оно выполняется (вычисляется), но в результате получается не число, а логическое значение: истина (true) или ложь (false). Логическая величина – это всегда ответ на вопрос: истинно ли данное высказывание.
Условие выбора – это условие, по которому выбираются только те записи, которые ему удовлетворяют.
Если в выражении имена полей базы данных связываются с соответствующими значениями знаками отношений, то такие выражения называются отношениями.
|
Знаки отношений:
= | Равно | >= | больше или равно |
< > | не равно | ||
> | Больше | <= | меньше или равно |
< | меньше |
Примеры простых логических выражений:
1. ОСАДКИ = «дождь»
2. Давление > 740
3. Влажность < > 100
4. Полка < 5
5. Автор = «Толстой Л.Н.»
6. Фамилия = «Русанов»
7. Рисование
Обратите внимание, что шесть выражений являются отношениями, так как использованы знаки отношений. Для составления отношений слева от знака располагается имя поля базы данных, а справа – значение конкретной записи. При этом единицы измерения НЕ пишутся. А текстовые значения указываются в кавычках.
Последнее простое логическое выражение не является отношением (не использованы знаки отношений).
Отношение «равно» истинно для двух символьных величин, если их длина одинакова и все соответствующие символы совпадают. При этом пробел – это тоже символ.
При сравнении (>, <, >=, <=) символьных величин сравниваются не сами символы, а их внутренние коды.
- Например, справедливо следующее отношение: А < Б < В < … < Ю < Я
Лексикографический порядок – это упорядоченность слов по алфавитному принципу.
Мы встречаемся с лексикографическим порядком при работе со словарями, списками людей и т.д.
Примеры сравнения пар слов:
квартет < конвульсия
компонент > квартет
конверт > компонент
Сравнение между собой дат осуществляется в соответствии с календарной последовательностью.
Примеры сравнения дат:
|
3.12.56 < 23.04.65
24.09.79 > 23.09.79
Сравнение между собой времени осуществляется в соответствии с хронологической последовательностью.
Примеры сравнения времени:
12:53:08 > 03:40:00
23:05:12 < 23:05:13
Для логических величин истинно следующее отношение: true > false (так как логический код true = 1, а код false = 0).
Одна величина логического типа – простейшая форма логического выражения.
Условия выбора и сложные логические выражения
Кроме отношений и логических полей используются смысловые связки «И», «ИЛИ», «НЕ». Это знаки логических операций.
Определение: Выражения, содержащие логические операции, будем называть сложными логическими выражениями.
Логические операции (по убыванию старшинства):
1. Операция отрицания (инверсия), знак операции «НЕ ».
2. Операция логического умножения (конъюнкция), знак операции «И ».
3. Операция логического сложения (дизъюнкция), знак операции «ИЛИ ».
Операция «отрицание» - одноместная операция, так как использует один операнд (одну логическую величину). Операции «логическое умножение» и «логическое сложение» - двухместные операции, так как используют два операнда (две логические величины).
1. Операция отрицания (инверсия), знак операции «НЕ».
Правило: Отрицание изменяет значение логической величины на противоположное: НЕ (истина) = ложь; НЕ (ложь) = истина.
Пример: Пусть надо получить список всех книг, кроме книг Беляева А.Р.
Логическое выражение: НЕ (Автор = «Беляев А.Р.»)
Ход решения:
1) Из базы данных вырезаются все записи, которые удовлетворяют условию (Автор = «Беляев А.Р.»)
|
Примечание: если необходимо показывать не все столбцы базы данных, то вторым шагом оставляются только нужные столбцы
2. Операция логического умножения (конъюнкция), знак операции «И».
Правило: В результате логического умножения получается истина, если оба операнда истинны.
Пример: Пусть надо найти книги Беляева А.Р., изданные не раньше 1990 года.
Логическое выражение: (Автор = «Беляев А.Р.») И (Год >= 1990)
Ход решения:
1) Из базы данных сначала выбираются все записи, которые удовлетворяют первому условию (Автор = «Беляев А.Р.»)
2) Затем из найденных записей выбираются те записи, которые удовлетворяют второму условию (Год >= 1990)
Примечание: если необходимо показывать не все столбцы базы данных, то третьим шагом оставляются только нужные столбцы
3. Операция логического сложения (дизъюнкция), знак операции «ИЛИ».
Правило: В результате логического сложения получается истина, если значение хотя бы одного операнда истинно.
Пример: Пусть надо получить список всех книг Толстого Л.Н. и Тургенева И.С.
Логическое выражение: (Автор = «Толстой Л.Н.») ИЛИ (Автор = «Тургенев И.С.»)
Ход решения:
1) Из базы данных выбираются все записи, которые удовлетворяют первому условию (Автор = «Толстой Л.Н.»)
2) Из базы данных выбираются все записи, которые удовлетворяют первому условию (Автор = «Тургенев И.С.»)
3) Полученные результаты первых двух шагов склеиваются (отображаются в единой таблице)
Примечание: если необходимо показывать не все столбцы базы данных, то четвертым шагом оставляются только нужные столбцы
Примечание.
Если используются логические операции, то простые логические выражения записываются в скобках.
Таблицы истинности.
Пусть А и В – это логические операнды (то есть могут принимать значения И или Л). Тогда составим так называемую таблицу истинности.
А | В | А и В | А или В | Не А |
И | И | И | И | Л |
Л | Л | Л | Л | И |
И | Л | Л | И | Л |
Л | И | Л | И | И |