Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
38
Добавлен:
08.06.2015
Размер:
1.56 Mб
Скачать

Лабораторные работы №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

Соседние файлы в папке ЛР-22_23