
- •Общие сведения о реляционных базах данных (БД)
- •Проектирование базы данных
- •Создание новой базы данных
- •Создание таблиц БД
- •Ввод данных в таблицы БД
- •Ввод данных в режиме таблицы
- •Создание форм
- •Ввод данных с использованием форм
- •Создание связей между таблицами
- •Создание запросов
- •Создание отчетов
- •Задание 1. Формулирование задания на проектирование БД.
- •Задание 2. Создание таблиц «Товары», «Клиенты», «Продажи»
- •Задание 3. Заполнение таблицы ТТовары в режиме таблицы
- •Задание 4. Создание форм фТовары, фКлиенты, фПродажи
- •Задание 5. Заполнение таблиц ТТовары, ТКлиенты, ТПродажи
- •Задание 6. Создание схемы данных
- •Задание 7. Создание запросов на выборку
- •Задание 8. Создание запросов на выборку с критерием в виде неравенства
- •Задание 9. Создание запросов на выборку с параметром
- •Задание 10. Создание отчетов
- •Задание 11. Оформление отчета по выполненной работе
- •Контрольные вопросы

Лабораторные работы №22, 23. Разработка базы данных с использованием СУБД OpenOffice.org Base
Создание связей между таблицами
Таблицы БД должны быть связаны отношениями. В данном случае необходимо установить связь между таблицами тТовары и тПродажи по полю Код товара и между таблицами тКлиенты и тПродажи по полю Код клиента. Для этого необходимо выполнить следующее:
●выбрать режим База данных;
●выбрать в основном меню группу Сервис, затем команду Связи... (рисунок 18). В окне Проектирование связей OpenOffice.org Base автоматически откроется диалоговое окно Добавление таблицы;
●следует добавить все три таблицы и закрыть диалоговое окно;
●установить курсор мыши на поле КодТовара таблицы тТовары и перетащить его на поле КодТовара таблицы тПродажи, выполнить аналогичные действия с полями
КодКлиента таблиц тКлиенты и тПродажи;
●придать схеме желаемый вид, переместив символы таблиц за заголовки с помощью мыши по полю окна (рисунок 19);
●сохранить схему данных.
Рисунок 18 – Выбор команды Связи...
Рисунок 19 – Создана схема данных
12
Лабораторные работы №22, 23. Разработка базы данных с использованием СУБД OpenOffice.org Base
Создание запросов
Запрос – это специальная таблица для получения необходимых данных из БД. Пользователь не должен работать непосредственно с таблицами БД, ввод данных следует выполнять с помощью форм, а вывод – с помощью запросов.
В запросе могут отображаться выбранные записи или поля внутри записей, а также может выполняться сортировка этих записей. Запрос может относиться к одной или нескольким таблицам, если они связаны общими полями данных.
Запросы используются для поиска записей в таблицах данных на основе заданных условий. Все запросы, созданные для базы данных, отображаются в режиме Запросы.
Запросы, как и таблицы, удобно создавать в режиме дизайна.
Вокне База данных следует выбрать режим Запросы, в окне Задачи – Создать запрос
врежиме дизайна. Окно Дизайнера (Конструктора) запросов выглядит аналогично окну Дизайнера таблиц.
Формирование запроса выполняется в нижней области Дизайнера. Чтобы определить запрос, следует указать имена полей базы данных, которые требуется включить, а также условия отображения полей. Чтобы изменить порядок столбцов в нижней области Дизайнера, надо перетащить заголовок столбца в новое расположение или выбрать столбец и нажать CTRL и клавишу со стрелкой.
В верхней части окна Дизайнера отображаются значки панели Дизайнера запросов и
панели Дизайнер.
Простейший запрос на выборку
Вначале следует выбрать условия для определения запроса. Каждый столбец таблицы Дизайнера содержит поле данных для запроса. Условия в одной строке связаны логическим И.
Пример 1. Создание запроса зКлиент-Товар
Требуется создать запрос – таблицу, в которой будут собраны данные из трех таблиц БД, характеризующие приобретение товаров клиентами. Запись запроса имеет следующие поля:
НаименКлиента, КодТовара, НаименТовара, Количество.
Вокне База данных следует выбрать режим Запросы, в окне Задачи – Создать запрос
врежиме дизайна.
Вокне Дизайнера запросов OpenOffice.org Base отображается созданная ранее схема данных (рисунок 20), в строке Поле окна Дизайнера следует выбрать имя нужного поля, в
строке Таблица – имя соответствующей таблицы (рисунок 20).
Все поля запроса сохраняются видимыми, никакие функции и сортировка не используются (рисунок 21).
Запрос сохранен с именем зКлиент-Товар.
Результатом выполнения созданного запроса является таблица, показанная на рисунке 22. В этой таблице представлены данные всех продаж из таблицы тПродажи, сгруппированные с соответствующими данными из таблиц тКлиенты и тТовары.
13

Лабораторные работы №22, 23. Разработка базы данных с использованием СУБД OpenOffice.org Base
Рисунок 20 – Создание запроса; выбор поля КодТовара
Рисунок 21 – Запрос зКлиент-Товар создан
14

Лабораторные работы №22, 23. Разработка базы данных с использованием СУБД OpenOffice.org Base
Рисунок 22 – Результат выполнения запроса зКлиент-Товар
Естественно, что такой запрос при большом числе продаж и значительном количестве клиентов не всегда удобен.
Выполним простейшую модификацию этого запроса: проведем сортировку записей по клиентам. Удобно поступить следующим образом: ввести в запрос еще одно поле КодКлиента и провести сортировку по этому полю (например, по возрастанию). Это поле можно сделать скрытым (рисунок 23).
Рисунок 23 – Модифицированный запрос зКлиент-Товар Результат выполнения запроса показан на рисунке 24.
15

Лабораторные работы №22, 23. Разработка базы данных с использованием СУБД OpenOffice.org Base
Рисунок 24 – Результат выполнения модифицированного запроса зКлиент-Товар
Пример 2. Создание запроса с выбором конкретного товара
Для целей анализа могут потребоваться данные по конкретному товару. Для выбора сведений о продаже товара с кодом 10006 в поле КодТовара достаточно указать значение кода.
Пример запроса на выборку сведений по товару с кодом 10006 приведен на рисунке 25.
Рисунок 25 – Запрос зТовар-10006 создан
Рисунок 26 – Результат выполнения запроса зТовар-10006
16

Лабораторные работы №22, 23. Разработка базы данных с использованием СУБД OpenOffice.org Base
Пример 3. Создание запроса с выбором группы товаров
Для выборки данных по группе проданных товаров можно использовать неравенство 10009<КодТовара<10021. При этом наименование товара и цена товара определяются заданным кодом и определяются по таблице тТовары (рисунок 27). Для записи неравенства использована логическая функция AND.
Рисунок 27 – Запрос зПродажа-Принтеры
Если закрыть Дизайнер, а затем открыть запрос командой Правка, то получится следующий результат (рисунок 28): создан новый столбец КодТовара, неравенство (логическое выражение) оказалось записанным в двух столбцах с одним именем.
Рисунок 28 – Запрос зПродажа-Принтеры – запись OpenOffice.org Base
17

Лабораторные работы №22, 23. Разработка базы данных с использованием СУБД OpenOffice.org Base
Результат выполнения запроса показан на рисунке 29.
Рисунок 29 – Результат выполнения запроса зПродажа-Принтеры
Пример 3. Создание запроса с параметром
OpenOffice.org Base позволяет конструировать такие запросы, в которые значение параметра в строке Критерий может быть задано в диалоговом режиме в процессе выполнения запроса.
Чтобы создать запрос с переменными параметрами, можно использовать знак равенства и двоеточие (=:x). При выполнении запроса программа открывает диалоговое окно для ввода выражения, которому будет присвоено значение переменной x.
При одновременном запросе нескольких параметров в диалоговом окне появится список всех параметров со строкой ввода рядом с каждым из них. Введите значения желательно в направлении сверху вниз, нажимая клавишу ВВОД после каждой строки.
Если параметрический запрос сформулирован и сохранен с переменными, позже можно создать запрос, переменные в котором будут заменены требуемыми выражениями. При открытии запроса в OpenOffice.org появится диалоговое окно для ввода этих выражений.
На рисунке 30 показан запрос, в котором параметром является код клиента.
Рисунок 30 – Конструирование запроса с параметром КодКлиента
18

Лабораторные работы №22, 23. Разработка базы данных с использованием СУБД OpenOffice.org Base
Если после сохранения запроса закрыть Дизайнер, а затем открыть запрос в режиме Правка, то запрос приобретает вид, показанный на рисунке 31. Естественно, что при выполнении запроса в диалоговом окне будет выведено имя переменной х. Удобнее, однако, вместо х использовать фактическое имя переменной из БД – КодКлиента (рисунок 32).
Рисунок 31 – Запрос зКлиенты-Параметр – запись OpenOffice.org Base
Рисунок 32 – Редактирование запроса зКлиенты-Параметр
19

Лабораторные работы №22, 23. Разработка базы данных с использованием СУБД OpenOffice.org Base
В результате запрос примет вид, показанный на рисунке 33, ход его выполнения показан на рисунке 34.
Рисунок 33 – Запрос зКлиенты-Параметр – окончательный вид
Рисунок 34 – Диалоговое окно выполнения запроса зКлиенты-Параметр
На рисунках 35, 36 приведены результаты выполнения запроса с различными значениями параметра.
Рисунок 35 – Результат выполнения запроса (КодКлиента=:20003)
Рисунок 36 – Результат выполнения запроса (КодКлиента=:20004)
20