Команда запроса на выборку данных из БД обычно имеет следующий вид:
<выбрать список выводимых полей> где <условие выбора> сортировать <ключ сортировки> по <порядок сортировки>
Не все составляющие этой команды являются обязательными. Могут отсутствовать условие выбора и порядок сортировки. Кроме того, ключей сортировки может быть несколько. Тогда они записываются в порядке приоритетов: первый, второй и т. д.
Для созданного запроса, как и для таблицы, можно создавать формы и отчёты.
4. Создание форм и отчётов БД.
а) создание формы. Записи БД можно просматривать и редактировать в виде таблицы или в виде формы. Работая с таблицей, мы видим несколько записей одновременно, но если в таблице много полей, а данные в них содержат много символов, то не все поля и данные умещаются на экране. Это значительно затрудняет работу с отдельными записями. В такой ситуации лучше создать форму, выводящую на экран только одну запись. При создании формы можно указать, какие поля из таблицы включать в неё, как расположить поля в окне формы, придать форме удобный привлекательный вид с различными элементами управления (кнопками, текстовыми полями, переключателями и т. п.), авторским дизайном. В результате создаётся новый графический интерфейс доступа к базе данных.
Создавать форму можно как по шаблонам, используя мастер форм, так и вручную, через конструктор форм. Работа с мастером сводится к заполнению диалоговых окон, выбору из предлагаемых программой вариантов наиболее подходящего для вас. Это быстрый способ создания стандартных форм. Работа с конструктором форм намного сложнее, зато она предоставляет пользователю полную свободу действий и позволяет создать уникальную форму для вашей базы данных.
б) создание отчёта. Отчёт создаётся на основе уже имеющихся таблиц, форм или запросов. Их можно создавать с помощью мастера отчётов и изменять в режиме конструктора. Как и при создании формы, при создании отчёта можно указать, какие поля из таблицы или запроса в него включать, как их расположить на листе. Работа с мастером сводится к заполнению диалоговых окон, выбору из предлагаемых программой вариантов наиболее подходящего для вас. Изменить форму вывода отчёта можно в режиме конструктора вручную.
7.7. Примеры решения задач на сортировку и поиск в БД
Пример 1.
Потренируемся на формальном примере в составлении логических выражений — условий выбора записей из БД. Рассмотрим следующую таблицу:
Ключи записей | Поля | ||
А | В | С | |
R1 | 1 | 2 | 3 |
R2 | 1 | 3 | 1 |
RЗ | 2 | 2 | 2 |
R4 | 3 | 3 | 3 |
R5 | 3 | 2 | 3 |
Это однотабличная БД, в которой А, В, С являются числовыми полями, а R1, R2 и т. д. — идентификаторами (ключами) записей. Ниже приведены примеры условий выбора, содержащих логические операции, и результаты выбора, т. е. записи, удовлетворяющие этим условиям. Внимательно изучите эти примеры и постарайтесь понять их.
Условие: 1) А=1 И В=2 2) А=1 ИЛИ А=3 3) А=1 ИЛИ В=2 4) А=1 ИЛИ В=2 ИЛИ С=3 5) А=1 И В=2 И С=3 6) НЕ А=1 | Ответ: R1 R1, R2, R4, R5 R1, R2,R3, R5 R1, R2, R3, R4, R5 R1 R3, R4, R5 |
Из этих примеров важно усвоить правила выполнения операций конъюнкции (И) и дизъюнкции (ИЛИ). Каждая из этих операций объединяет два условия (отношения). В результате выполнения операции ИЛИ в одну выборку объединяются записи, удовлетворяющие каждому из условий. Операция И работает иначе: сначала выбираются все записи, удовлетворяющие первому условию, затем из отобранных записей выбираются те, которые удовлетворяют второму условию.
Пример 2.
В каждом из следующих выражений присутствуют разные логические операции, поэтому при их выполнении нужно учитывать старшинство операций.
Условие: 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 : R1, R5 |
Пример 3.
Примеры, в которых значения одних полей сравниваются со значениями других полей, а также с арифметическими выражениями.
Условие: 11) B >=А 12) В >= А И В >= С 13) А = В ИЛИ А=С 14) С = А + В | Ответ: R1, R2, RЗ, R4 R2, RЗ, R4 R2, R3, R4, R5 R1 |
Пример 4.
В таблице представлены результаты тестирования учащихся:
Фамилия | Пол | Математика | Русский язык | Химия | Информатика | Биология |
Аганян | ж | 82 | 56 | 46 | 32 | 70 |
Воронин | м | 43 | 62 | 45 | 74 | 23 |
Григорчук | м | 54 | 74 | 68 | 75 | 83 |
Роднина | ж | 71 | 63 | 56 | 82 | 79 |
Сергеенко | ж | 33 | 25 | 74 | 38 | 46 |
Черепанова | ж | 18 | 92 | 83 | 28 | 61 |
Сколько записей в ней удовлетворяют условию «Пол=’ж’ ИЛИ Химия>Биология»?
Решение.
Заданное сложное условие отбора состоит из двух простых, связанных логической операции «ИЛИ»
1) Пол =’ж’ ИЛИ 2) Химия > Биология
Ключами поиска являются поля «Пол», «Химия» и «Биология». Остальные поля не влияют на результат, их мы не будем рассматривать. Проверим поочерёдно для каждой записи, выполняются ли условия 1) и 2). Так как они соединены операцией «ИЛИ», то для истинности сложного условия (для его выполнения) достаточно, чтобы хотя бы одно из двух простых условий 1) или 2) было истинным (выполнялось).
Записи с фамилиями Аганян, Роднина, Сергеенко, Черепанова удовлетворяют условию 1) и, значит, входят в ответ. Проверим оставшиеся 2 записи на выполнение условия 2). Запись с фамилией Воронин удовлетворяет условие 2). Получилось, что нашему сложному условию соответствуют 4+1=5 записей.
Ответ: 5 записей.
Пример 5.
По таблице из примера 4 определить, сколько записей удовлетворяют условию
«Пол<>’м’ И Математика>50»?
Решение.
Заданное сложное условие отбора состоит из двух простых, связанных логической операции «И»
1) Пол<>’м’ И 2) Математика>50
Ключами поиска являются поля «Пол», «Математика». Остальные поля не влияют на результат, их мы не будем рассматривать. Проверим поочерёдно для каждой записи, выполняются ли условия 1) и 2). Так как они соединены операцией «И», для истинности сложного условия (для его выполнения) необходимо, чтобы оба простых условия 1) и 2) были истинны (выполнялось) в одной записи.
Записи с фамилиями Воронин и Григорчук не удовлетворяют условию 1) и далее не рассматриваются. Записи с фамилиями Аганян, Роднина, Сергеенко, Черепанова удовлетворяют условию 1), проверим, выполняется ли в этих записях условие 2). Записи с фамилиями Аганян и Роднина соответствуют условию 2) и условию 1) также соответствуют. Значит, они входят в ответ. Получилось, что нашему сложному условию соответствуют 2 записи.
Ответ: 2 записи.
Пример 6.
В конструкторе запросов используется табличный способ представления логических выражений. Разберемся подробнее с этим способом.
В ячейках таблицы конструктора запросов записываются условия, накладываемые на значения соответствующих полей. Условия, стоящие в одной строке, выполняются одновременно, т. е. они соединяются между собой операцией И; условия в разных строках соединяются операцией ИЛИ.
Таблица играет роль фильтра при выборе записей из БД: сначала отбираются записи, удовлетворяющие условиям первой строки, затем к ним добавляются записи, удовлетворяющие условиям второй строки, и т. д.
В следующей таблице приведены примеры реализации логических выражений табличным методом, применяемым в конструкторе запросов. Использованы условия выбора из рассмотренного примера 1.
Условие | А | В | С |
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) А=В ИЛИ А=С | =[В] OR [С] | ||
14) С=А+В | =[А]+[В] |
Обратите внимание на условие в примере 10. При записи в таблицу фактически произошло раскрытие скобок и данное логическое выражение заменилось эквивалентным выражением:
А=1 И С=3 ИЛИ В=2 И С=3
Имя поля, заключенное в квадратные скобки, идентифицирует значение этого поля в записи. Такое обозначение в принципе можно использовать во всех условных выражениях в конструкторе. Например, отношение А=1 в конструкторе запроса в столбце А можно записать в двух вариантах: 1) [А]=1, 2) =1. Второй вариант короче, поэтому обычно пользуются им. Условие в примере 13 можно было бы записать так: [А]=[В] OR [А]=[С].
Вопросы и задания
1. Что такое информационная система?
2. Каковы средства поддержки ИС? Охарактеризуйте их.
3. Какие бывают ИС по использованию технических средств? Охарактеризуйте их.
4. Какие бывают ИС по назначению? Охарактеризуйте их.
5. К каким типам ИС относятся, например, такие системы:
a) система прогноза погоды для различных регионов страны;
b) система управления беспилотным космическим кораблем;
c) система диспетчерской службы крупного аэропорта;
d) система диагностики в кардиологической клинике?
6. Для чего предназначены базы данных?
7. В чём разница между БД и СУБД?
8. Что такое предметная область?
9. Что такое информационный объект?
10. Что такое связи между объектами?
----------------------------------------------------------------
11. Какова структура связи «1 к 1»? Ваш пример.
12. Какова структура связи «1 ко многим»? Ваш пример.
13. Какова структура связи «Многие ко многим»? Ваш пример.
14. Что представляет собой структурирование данных?
15. Каковы типы организации структурированных данных?
16. Какую БД называют централизованной, а какую распределённой?
17. Какую СУБД называют реляционной?
18. Что такое поле БД и каковы его атрибуты?
19. Перечислите известные вам типы данных.
20. Что такое запись БД? Экземпляр записи?
21. Для чего нужно ключевое поле?
22. Какой ключ в БД называют первичным?
23. Чем отличается простой ключ от составного ключа?
24. Что такое таблица в реляционной базе данных?
----------------------------------------------------------------
25. Для чего нужны запросы в реляционных БД?
26. Что такое выборка?
27. Для чего нужны формы в реляционных БД? Как их можно создать?
28. Для чего нужны отчёты в реляционных БД? Как их можно создать?
29. Каковы режимы работы с БД? Кратко охарактеризуйте их.
30. Для чего нужны связи между таблицами?
31. Что представляют собой условия поиска?
32. Что такое ключи поиска?
33. Что такое логическое выражение?
34. Какие существуют основные логические операции?
35. Какова структура простого логического выражения?
36. Какова структура сложного логического выражения?
37. Для чего нужен фильтр?
----------------------------------------------------------------
38. Что такое SQL?
39. Определите главный ключ и типы записей в следующих отношениях:
АВТОБУСЫ (НОМЕР_МАРШРУТА, НАЧАЛЬНАЯ_ОСТАНОВКА, КОНЕЧНАЯ_ОСТАНОВКА)
КИНО (КИНОТЕАТР, СЕАНС, ФИЛЬМ, РОССИЙСКИЙ, ДЛИТЕЛЬНОСТЬ)
УРОКИ (ДЕНЬ_НЕДЕЛИ, НОМЕР_УРОКА, КЛАСС, ПРЕДМЕТ, ПРЕПОДАВАТЕЛЬ)
40. Опишите структуру записей (имена полей, типы полей, главные ключи) для баз данных:
РЕЙСЫ САМОЛЕТОВ.
41. При проектировании БД были определены следующие отношения:
МАГАЗИН (НОМЕР_МАГ, ТИП, АДРЕС, ДИРЕКТОР, ТЕЛЕФОН)
ОТДЕЛ (НАЗВАНИЕ_ОТД, ЗАВЕДУЮЩИЙ, ТЕЛЕФОН)
ПРОДАВЕЦ (ТАБЕЛЬНЫЙ_НОМ, ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО, КАТЕГОРИЯ)
Являются ли эти отношения связанными? Добавьте все, что необходимо для их связи; изобразите схему БД, показывающую все таблицы, их поля и связи (Связи обозначаются стрелками).
42. Для таблицы, приведенной в примере 1, определите результаты отбора записей по следующим условиям:
а) А=2 И В=2
б) А=2 ИЛИ В= 2
в) А=2 И В=1 ИЛИ С=3
г) А>В
д) С=А+В
е) А=1 ИЛИ А=2
ж) В>1 И В<3.
Ключи записей | Поля | ||
А | В | С | |
R1 | 1 | 2 | 3 |
R2 | 1 | 3 | 1 |
RЗ | 2 | 2 | 2 |
R4 | 3 | 3 | 3 |
R5 | 3 | 2 | 3 |
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 |



