Лекция № 18 ЗАПРОСЫ КАК ПРИЛОЖЕНИЯ ИНФОРМАЦИОННОЙ СИСТЕМЫ
ПЛАН
1. Запросы как приложения информационной системы.
2. Логические условия выбора данных.
1 Запросы как приложения информационной системы
Действия, выполняемые над информацией, хранящейся в базе данных, называются .манипулированием данными. К ним относятся выборка данных по некоторым условиям, сортировка данных, обновление, удаление устаревших и добавление новых данных. Выполнение этих действий производится с помощью запросов.
Запрос - это команда к СУБД на выполнение определенного вида манипулирования данными.
Существует универсальный язык, на котором формулируются запросы во многих СУБД. Он называется SQL (Structured Query Language) - структурированный язык запросов. Здесь мы оказываемся перед выбором, с которым часто приходится сталкиваться в информатике: обучаться составлению запросов на языке SQL или воспользоваться каким-то более высокоуровневым вспомогательным средством. В большинстве современных СУБД такие средства имеются. Например, в Microsoft Access это конструктор запросов.
В учебных целях мы будем использовать строчное описание команд запросов на придуманном (гипотетическом) языке . Он близок к SQL, однако имеет не такой строгий синтаксис и, кроме того, использует русские служебные слова.
Команда запроса на выборку данных из БД на гипотетическом языке запросов имеет следующий формат:
.выбрать ˂ список выводимых полей > где ˂условие выбора>
сортировать ˂ключ сортировки> по ˂ порядок сортировки>
Не все составляющие этой команды являются обязательными. Могут отсутствовать условие выбора и порядок сортировки. Кроме того, ключей сортировки может быть несколько. Тогда они записываются в порядке приоритетов: первый, второй и т. д.
Опишем серию запросов на гипотетическом языке, которую позже в практикуме реализуем средствами СУБД. В курсе информатики основной школы вы учились составлять запросы к однотабличной БД. Теперь рассмотрим примеры запросов, для выполнения которых потребуется извлекать данные из нескольких таблиц.
Запрос 1. Требуется получить список всех специальностей университета с указанием факультета и плана приема на специальность. Список отсортировать в алфавитном порядке по двум ключам: названию факультета (первый ключ) и названию специальности (второй ключ). В этом запросе не будет использовано условие выбора, поскольку в итоговый список войдет информация из всех записей таблиц ФАКУЛЬТЕТЫ и СПЕЦИАЛЬНОСТИ. В разделе сортировки должно быть указано два ключа по порядку. Напомним, что в таком случае сортировка сначала происходит по первому ключу, и в случае совпадения у нескольких записей его значения они упорядочиваются по второму ключу.
Если в запросе используются поля из разных таблиц, то для их обозначения применяются составные имена, включающие раз деленные точкой имя таблицы и имя поля в этой таблице.
Команда для данного запроса будет следующей:
.выбрать ФАКУЛЬТЕТЫ. ФАКУЛЬТЕТ, СПЕЦИАЛЬНОСТИ. СПЕЦИАЛЬНОСТЬ, СПЕЦИАЛЬНОСТИ. ПЛАН сортировать ФАКУЛЬТЕТЫ.ФАКУЛЬТЕТ по возрастанию, СПЕЦИАЛЬНОСТИ.СПЕЦИАЛЬНОСТЬ по возрастанию
Результат выполнения запроса - таблица 1.15.
Таблица 1.15 - План приема: запрос на выборку
Запрос 2. Получить список всех абитуриентов, поступающих на юридический факультет, имеющих производственный стаж. Указать фамилию, город, специальность и стаж. Упорядочить по фамилиям.
В этом запросе должны использоваться четыре таблицы одно временно: АНКЕТЫ, СПЕЦИАЛЬНОСТИ, АБИТУРИЕНТЫ, ФАКУЛЬТЕТЫ. Условие выбора в этом запросе будет представлять собой логическое выражение, содержащее операцию логического умножения «И» - конъюнкцию. Подробнее способы записи логических выражений мы обсудим в следующем пара графе.
На гипотетическом языке запросов команда будет выглядеть так: .выбрать АНКЕТЫ. ФАМИЛИЯ, АНКЕТЫ. ГОРОД,
СПЕЦИАЛЬНОСТИ.СПЕЦИАЛЬНОСТЬ,
АБИТУРИЕНТЫ. СТАЖ
где ФАКУЛЬТЕТЫ.ФАКУЛЬТЕТ= " Юридический"
и АБИТУРИЕНТЫ. СТАЖ>0 сортировать
АНКЕТЫ. ФАМИЛИЯ по возрастанию
В результате будет получена таблица 1.16 .
Таблица 1.16 - Юристы со стажем: запрос на выборку
В компьютерном практикуме вы научитесь реализовывать та кие запросы в среде СУБД Microsoft Access. Кроме того, вы буде те строить запросы на удаление записей, научитесь организовывать вычисляемые поля в запросах, создавать формы для ввода и просмотра таблиц, формировать отчетные печатные документы.
Система основных понятий
2 Логические условия выбора данных
При построении запросов на выборку важное значение имеет правильная запись условий выбора.
Условие выбора - это логическое выражение, которое должно быть истинным для выбираемых записей БД.
Логические выражения представляются на языке математической логики, с элементами которой вы знакомились в курсе основ ной школы. Вспомним основные понятия логики, знание которых нам понадобится в дальнейшем.
1. Логическая величина - это величина, принимающая одно из двух значений - ИСТИНА (TRUE) и ЛОЖЬ (FALSE). В базах данных поле логического типа - это логическая величина.
2. Логическое выражение - это утверждение, которое может быть либо истинным, либо ложным. Логическое выражение состоит из логических констант, логических переменных, операций отношения и логических операций.
3. Операции отношения сравнивают значения двух величин. Знаки операций отношения: = (равно), <> (не равно), > (больше), < (меньше),
>= (больше или равно), <= (меньше или равно). Сравнение числовых величин производится в их арифметическом смысле; сравнение символьных величин - с учетом порядка символов в таблице кодировки; величины типа « дата» и «время » сравниваются по их последовательности во времени.
4. Существуют три основные логические операции: отрицание - НЕ (NOT), конъюнкция - И (AND), дизъюнкция - ИЛИ (OR). Их правила выполнения отражаются в таблице истинности:
5. По убыванию старшинства логические операции расположены в следующем порядке: НЕ, И, ИЛИ. Для влияния на последовательность выполнения операций в логических выражениях могут употребляться круглые скобки.
Сначала потренируемся на формальном примере в составлении логических выражений - условий выбора записей из БД. Рассмотрим следующую таблицу:
Это однотабличная БД, в которой А, В, С являются числовыми полями, а Rl , R2 и т. д. - идентификаторами (ключами) за писей. Ниже приведены примеры условий выбора, содержащих логические операции, и результаты выбора, т. е. записи, удовлетворяющие этим условиям. Внимательно изучите эти примеры и постарайтесь понять их.
Из этих примеров важно усвоить правила выполнения операций конъюнкции (И) и дизъюнкции (ИЛИ). Каждая из этих операций объединяет два условия (отношения). В результате выполнения операции ИЛИ в одну выборку объединяются записи, удовлетворяющие каждому из условий. Операция И работает иначе: сначала выбираются все записи, удовлетворяющие первому условию, затем из отобранных записей выбираются те, которые удовлетворяют второму условию.
В каждом из следующих выражений присутствуют разные логические операции, поэтому при их выполнении нужно учитывать старшинство операций.
И наконец, приведем примеры , в которых значения одних по лей сравниваются со значениями других полей, а также с арифметическими выражениями.
В компьютерном практикуме вы уже познакомились с табличной формой представления условий запроса в конструкторе запросов. Можно говорить о том, что в конструкторе запросов используется табличный способ представления логических выражений. Разберемся подробнее с этим способом.
В ячейках таблицы конструктора запросов записываются условия, накладываемые на значения соответствующих полей. Условия, стоящие в одной строке, выполняются одновременно, т. е. они соединяются между собой операцией И; условия в разных строках соединяются операцией ИЛИ.
Таблица играет роль фильтра при выборе записей из БД: сначала отбираются записи, удовлетворяющие условиям первой строки, затем к ним добавляются записи, удовлетворяющие условиям второй строки, и т. д.
В следующей таблице приведены примеры реализации логических выражений табличным методом, применяемым в конструкторе запросов. Использованы условия выбора из рассмотренного выше формального примера.
Продолжение таблицы
Обратите внимание на условие в примере 10. При записи в таблицу фактически произошло раскрытие скобок и данное логическое выражение заменилось эквивалентным выражением:
A=l И С=З ИЛИ В=2 И С=З
Имя поля, заключенное в квадратные скобки, идентифицирует значение этого поля в записи. Такое обозначение в принципе можно использовать во всех условных выражениях в конструкторе. Например, отношение A=l в конструкторе запроса в столбце А можно записать в двух вариантах: 1) [A]=l, 2) = 1 . Второй вариант короче, поэтому обычно пользуются им. Условие в примере 13 можно было бы записать так: [А]=[В] OR [А]=[С].
Система основных понятий
ВОПРОСЫ И ЗАДАНИЯ
1. Запросы как приложения информационной системы
1. а) Что входит в понятие манипулирования данными в БД?
б) Какова цель запроса на выборку?
2. Напишите на гипотетическом языке запросов команду, формирующую таблицу расшифровки кодов специальностей. Строки должны быть упорядочены по возрастанию кодов.
3. Придумайте серию запросов к базе данных, построенной по индивидуальному заданию в практикуме. Представьте эти запросы на гипотетическом языке.
2. Логические условия выбора данных
1. а) Что такое логическое выражение?
б) Какие существуют основные логические операции? Что такое таблица истинности?
2. Для таблицы, приведенной в данном параграфе, определите результаты отбора записей по следующим условиям:
а) А=2 И В=2;
б) А=2 ИЛИ В=2;
в) А=2 И В=1 ИЛИ С=3;
г) А>В;
д) С=А+В;
е) A=l ИЛИ А=2;
ж) В> l И В ˂3.
3. Все условия из предыдущего задания представьте в табличной форме, т. е. на языке конструктора запросов.
• Ввод данных в БД
• Высказывание. Простые и сложные высказывания. Основные логические операции
• Запросы на выборку данных
• Понятие СУБД. Классификация СУБД
• Проектирование баз данных
• Проектирование объектов данных
• Проектирование отчетов
• Проектирование экранных форм
• Создание отчетов в БД
• Этапы разработки ИС
ЭОР к главе 1 на сайте ФЦИОР (http://fcior. edu . ru)
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.