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

1к 1семестр / INFORMATIKA / Создание БД

.pdf
Скачиваний:
121
Добавлен:
02.04.2015
Размер:
2.76 Mб
Скачать

41

Замечание

Кнопка Новое (Create New) в окне Изменение связей (Edit Relationships) позволяет пе-

рейти к созданию связи между любыми двумя таблицами базы, не выходя в окно схемы данных.

12.Разместите таблицы в окне схемы данных в соответствии с их относительной подчиненностью, перемещая и изменяя их размеры, как показано на рис. 31.

Рис. 31. Схема данных БД Поставка товаров

В созданной схеме данных БД Поставка товаров все связи отмечены символами 1, . Это свидетельствует о том, что между таблицами установлены одномногозначные связи (по простому или составному ключу) и для них задан параметр обеспечения целостности данных.

Упражнение 2. Проверка поддержания связной целостности

Проверьте, как влияют установленные ранее параметры поддержания целостности при внесении изменений в таблицы ПОКУПАТЕЛЬ — ДОГОВОР, связанные одномногозначными отношениями.

1.Откройте таблицы ПОКУПАТЕЛЬ и ДОГОВОР в режиме таблицы.

2.Измените значение ключевого поля КОД_ПОК (код покупателя) в записи главной таблицы ПОКУПАТЕЛЬ, которая имеет подчиненные записи. Для завершения режима редактирования перейдите к другой записи. Убедитесь, что во всех записях подчиненной таблицы ДОГОВОР, для договоров, заключенных этим покупателем, автоматически изменится значение поля КОД_ПОК. Изменение происходит, поскольку был установлен параметр каскадного обновления связанных полей.

3.Измените значение ключа связи КОД_ПОК в подчиненной таблице ДОГОВОР на значение, не существующее в записях таблицы ПОКУПАТЕЛЬ, и убедитесь, что такое изменение запрещено, так как при поддержании целостности не может су-

42

ществовать запись подчиненной таблицы с ключом связи, которого нет в главной таблице.

4.Убедитесь, что невозможно включить новую запись в подчиненную таблицу ДОГОВОР со значением ключа связи КОД_ПОК, не представленным в таблице ПОКУПАТЕЛЬ.

5.Выделите в главной таблице ПОКУПАТЕЛЬ запись, у которой есть подчиненные, и выполните команду Удалить на ленте Главная в группе Записи. Убедитесь, что вместе с удалением записи в главной таблице удаляются все подчиненные записи в таблице ДОГОВОР, так как был установлен параметр каскадного удаления связанных записей. Заметим, если каскадное удаление не разрешено, невозможно удалить запись в главной таблице, если имеются связанные с ней записи в подчиненной

Упражнение 3. Просмотр и ввод данных в связанные таблицы с использованием подтаблиц

В Access имеется возможность при просмотре главной таблицы отображать для каждой строки связанные с ней строки подчиненной таблицы, называемой в этом случае подтаблицей. Это позволяет пользователю при добавлении, удалении и корректировке записей осуществлять контроль за корректностью связей в отображаемой цепочке таблиц.

1.Откройте таблицу СКЛАД.

2.Выберите запись о складе, для которого нужно ввести накладные, и нажмите значок плюс в строке выбранной записи. Откроется подчиненная таблица НАКЛАДНАЯ (рис. 32). Если Access автоматически не определил подтаблицу таблицы СКЛАД, откроется окно Вставка подтаблицы (Insert Subdatasheet) (рис. 33). Вы-

берите подчиненную таблицу НАКЛАДНАЯ и укажите поля связи.

Замечание

При составном ключе имена полей связи в окне Вставка подтаблицы (Insert Subdatasheet) разделяются точкой с запятой.

3.Чтобы принудительно открыть окно Вставка подтаблицы и определить подтаблицу, выполните на ленте Главная (Home) в группе Записи (Records) в списке кнопки Дополнительно (More) команду Подтаблица (Subdatasheet).

43

Рис. 32. Таблица СКЛАД с открытыми подтаблицами НАКЛАДНАЯ и ОТГРУЗКА

Рис. 33. Окно для выбора подтаблицы и поля связи с ней

4.Создайте несколько накладных, связанных с выбранной записью таблицы СКЛАД. При этом значение ключа связи Код склада — КОД_СК вводится в поле

44

подчиненной записи автоматически. Таким образом, для создания подчиненной записи достаточно ввести только недостающую часть ключа Номер накладной — НОМ_НАКЛ и описательные реквизиты.

5.Выберите запись о накладной, для которой нужно ввести строки спецификации — записи подчиненной таблицы ОТГРУЗКА, и нажмите значок плюс в строке выбранной записи. Откроется подчиненная таблица ОТГРУЗКА.

6.Введите несколько строк в таблицу ОТГРУЗКА. При этом значение ключа связи (Код склада — КОД_СК и Номер накладной — НОМ_НАКЛ) вводится в поле подчиненной записи автоматически. Таким образом для создания подчиненной записи достаточно ввести только недостающую часть ключа Код товара — КОД_ТОВ и количество.

7.Выполните на ленте Главная (Home) в группе Записи (Records) в списке кнопки

Дополнительно (More) команду Подтаблица | Развернуть все (Subdatasheet | Expand All). Откроются все записи подчиненной таблицы, разбитые на подмножества, связанные с конкретными записями главной таблицы (при условии, что для связи заданы параметры обеспечения целостности).

8.Чтобы скрыть все записи подчиненной таблицы, выполните команду Свернуть все (Collapse All).

Задание 5. Отображение подтаблиц

Просмотрите подтаблицы всех уровней для таблиц ПОКУПАТЕЛЬ и ТОВАР.

Контрольные вопросы по теме создание схемы данных

1.Для чего создается Схема данных базы Access?

2.В каких отношениях должны находиться таблицы, чтобы для них можно было установить параметры поддержания связной целостности данных?

3.По какому полю должна быть установлена связь между таблицами, чтобы появилась возможность установить параметры поддержания связной целостности данных?

4.Можно ли в подчиненную таблицу ДОГОВОР ввести запись о договоре покупателя, который не представлен в таблице ПОКУПАТЕЛЬ, если для этих таблиц обеспечивается целостность данных?

5.Можно ли удалить запись о покупателе, если в таблице ДОГОВОР представлены записи о договорах этого покупателя и не установлен параметр Каскадное уда-

ление связанных записей?

6.Что произойдет при изменении значения ключевого поля в главной таблице, если для ее связи с подчиненной установлен параметр Каскадное обновление связан-

ных полей?

7.Для чего предназначен значок плюса в левом столбце таблицы?

45

8.Какая команда позволяет открыть в таблице связанные записи нужной подчиненной таблицы?

9.Возможно ли установление между двумя таблицами связи, если поле связи имеет разные имена в связываемых таблицах?

10.Возможно ли установление между двумя таблицами связи, если поле связи имеет разный тип данных в связываемых таблицах?

46

Раздел II. Запросы

Запросы являются основным инструментом выборки, обновления и обработки данных в таблицах базы данных.

Access в соответствии с концепций реляционных баз данных для выполнения запросов использует язык структурированных запросов SQL (Structured Query Language). Любой запрос в Access реализуется с помощью инструкций языка SQL, которые передаются на выполнение в ядро базы данных Database Engine, являющееся версией ядра Microsoft Jet, настроенной на Microsoft Office 2007.

В то же время Access позволяет создавать запросы, не используя язык SQL. Простейшие запросы могут быть созданы с помощью мастера, практически любой запрос можно создать в режиме графического конструктора. При создании запроса этими средствами Access автоматически создает эквивалентную инструкцию SQL, которую можно увидеть, переключившись в режим SQL. Конструктор позволяет создавать запросы простым и удобным способом, а просмотр этих запросов в режиме SQL позволяет понять и освоить синтаксис основных инструкций языка SQL, реализованного в Access.

Основным видом запроса является запрос на выборку. Результатом выполнения этого запроса является это новая таблица, которая существует до закрытия запроса. Структура такой таблицы определяется выбранными из одной или нескольких взаимосвязанных таблиц полями. Записи формируются путем объединения записей таблиц, на которых построен запрос. Способ объединения записей таблиц указывается при определении их связи в схеме данных или при создании запроса. Условия отбора, сформулированные в запросе, позволяют фильтровать записи, составляющие результат объединения таблиц. Запрос на выборку позволяет сформировать пользовательское представление о данных, не обязательно отвечающее требованиям нормализации.

В Access может быть создано несколько видов запроса:

Запрос на выборку — выбирает данные из одной таблицы или запроса или нескольких взаимосвязанных таблиц и других запросов. Результатом является таблица, которая существует до закрытия запроса. Формирование записей таблицы результата производится в соответствии с заданными условиями отбора и при использовании нескольких таблиц путем объединения их записей.

Запрос на создание таблицы — также выбирает данные из взаимосвязанных таблиц и других запросов, но, в отличие от запроса на выборку, результат сохраняет в новой постоянной таблице.

Запросы на обновление, добавление, удаление — являются запросами действия, в результате выполнения которых изменяются данные в таблицах.

Запрос в режиме конструктора содержит схему данных, отображающую используемые таблицы, и бланк запроса, в котором конструируется структура таблицы запроса и условия выборки записей (рис. 34).

47

Рис. 34. Окно конструктора запросов

С помощью запроса можно выполнить следующие виды обработки данных:

включить в таблицу запроса выбранные пользователем поля таблицы;

произвести вычисления в каждой из полученных записей;

выбрать записи, удовлетворяющие условиям отбора;

сформировать на основе объединения записей взаимосвязанных таблиц новую виртуальную таблицу;

сгруппировать записи, которые имеют одинаковые значения в одном или нескольких полях, одновременно выполнить над другими полями группы статистические функции и в результат включить одну запись для каждой группы;

создать новую таблицу базы данных, используя данные из существующих таблиц;

произвести обновление полей в выбранном подмножестве записей;

удалить выбранное подмножество записей из таблицы базы данных;

добавить выбранное подмножество записей в другую таблицу.

Последовательное выполнение ряда запросов позволяет решать достаточно сложные задачи, не прибегая к программированию.

Запросы служат источниками записей для других запросов, форм, отчетов. С помощью запроса можно собрать полные сведения для формирования некоторого документа предметной области из нескольких таблиц, далее использовать его для создания формы — электронного представления этого документа. Если форма или отчет создается мастером на основе нескольких взаимосвязанных таблиц, то для них в ка-

48

честве источника записей автоматически формируется запрос. Ненормализованная с повторяющимися данными таблица запроса не хранится в базе данных. Хранится запрос, который может быть использован различными пользователями для выполнения своих задач.

Этот раздел пособия включает три темы:

Тема 3. Однотабличные запросы на выборку

Тема 4. Многотабличные запросы на выборку

Тема 5. Запросы на изменение

49

Тема 3. Однотабличные запросы на выборку

Тема включает следующие упражнения:

Упражнение 1. Создание запросов на выборку с условиями отбора

Упражнение 2. Вычисляемые поля в запросах

Упражнение 3. Параметры в запросах

Упражнение 4. Групповые операции в запросах

Упражнение 5. Условия отбора в запросах с групповыми операциями

Упражнение 6. Отображение строки итогов по столбцу

Упражнение 7. Просмотр инструкции SQL для существующего запроса

Выполнив эти упражнения, вы узнаете:

Что запрос позволяет выбрать из таблицы только нужные столбцы (поля) и строки (записи).

Что сложный запрос может быть построен простыми средствами конструктора.

Какую структуру имеет окно запроса.

Как подготовить и выполнить запрос на выборку в режиме конструктора.

Что результаты выполнения запроса представляются в виде таблицы, записи которой могут быть отфильтрованы в соответствии с заданными условиями отбора.

Как выполнить вычисления над значениями полей в сформированных записях запроса.

Что такое параметры запроса.

Что можно сгруппировать записи, которые имеют одинаковые значения в одном или нескольких полях, выполнить статистические функции в других полях группы и получить в таблице запроса одну запись для группы.

Как выполнить группировку записей запроса и вычислить итоговые значения для них.

Как просмотреть запрос на языке SQL, соответствующий построенному в конструкторе.

Упражнение 1. Конструирование запросов на выборку с условиями отбора

В простейшем случае запрос реализует выбор требуемых полей из одной таблицы, задание некоторых условий отбора записей и просмотр результатов выполнения запроса. Рассмотрим процесс конструирования однотабличного запроса на выборку на примере получения информации из таблицы ТОВАР базы данных Поставка товаров.

50

Пример 1. Пусть необходимо выбрать ряд характеристик товара по его наименованию.

11. Для создания запроса в окне базы данных выберите вкладку ленты — Создание

(Create) и в группе Другие (Other) нажмите кнопку Конструктор запросов (Design View).

Откроется пустое окно запроса на выборку в режиме конструктора — ЗапросN

(QueryN) и диалоговое окно Добавление таблицы (Show Table) (рис. 35).

12. В окне Добавление таблицы (Show Table) выберите таблицу ТОВАР и нажмите кнопку Добавить (Add). Выбранная таблица будет отображена в области схемы данных запроса. Закройте окно Добавление таблицы (Show Table), нажав кнопку Закрыть (Close).

Рис. 35. Окно выбора таблиц и запросов для схемы данных запроса

В результате выполненных действий в окне конструктора запросов (рис. 34) в верхней панели появится схема данных запроса, которая включает выбранные для данного запроса таблицы. В данном случае одна таблица ТОВАР. Таблица представлена списком полей. Первая строка в списке полей таблицы, отмеченная звездочкой (*), обозначает все множество полей таблицы. Нижняя панель является бланком запроса, который нужно заполнить.

Кроме того, на ленте появляется и автоматически активизируется новая вкладка Ра-

бота с запросами|Конструктор (Query Tools|Design) (на рис. 36 представлена часть

Соседние файлы в папке INFORMATIKA