Добавил:
Меня зовут Катунин Виктор, на данный момент являюсь абитуриентом в СГЭУ, пытаюсь рассортировать все файлы СГЭУ, преобразовать, улучшить и добавить что-то от себя Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика / Методички / Методичка Патлань_Киселева.doc
Скачиваний:
13
Добавлен:
02.08.2023
Размер:
971.26 Кб
Скачать

6.3. Связи в базе данных

Преимуществом установки связей является поддержка целостности базы данных: данные автоматически защищаются от изменения и удаления тех записей, которые могут нарушить связи между таблицами. Например, невозможно удалить код клиента из таблицы “КЛИЕНТЫ”, если в таблице “ЗАКАЗЫ И ПРОДАЖИ” имеются сведения об операциях с данным клиентом. Связываемые поля обычно имеют одинаковые имена (это не обязательно), и одинаковые типы данных (это обязательно!). Чаще всего связывают ключевое поле одной таблицы с совпадающим полем другой.

ACCESS поддерживает три типа отношений между таблицами:

  • Один-к-одному, когда каждая запись в одной таблице соответствует только одной записи в другой таблице (оба поля уникальные);

  • Один-ко-многим (например, может быть много записей в таблице "ЗАКАЗЫ И ПРОДАЖИ" для одного и того же клиента);

  • Много-ко-многим.

Создание и удаление связей осуществляется командой СЕРВИС/СХЕМА ДАННЫХ. Создание и удаление связей между открытыми таблицами не допустимо, их нужно предварительно закрыть.

В окне “Схема данных” связываемое поле одной таблицы перемещается на соответствующее поле второй таблицы, при этом открывается окно "Изменение связей". Тип отношения устанавливается автоматически с учётом уже заданного свойства связываемых полей "Индексированное поле" (см. рис. 6.5)

Рис. 6.5. Пример окна "Изменение связей" для связывания таблиц "ТОВАРЫ" и "ЗАКАЗЫ И ПРОДАЖИ"

В этом же окне необходимо установить флажок “Обеспечение целостности данных” и нажать на кнопку “Создать”. После создания связи в окне “Схема данных” связанные поля будут соединены линией с соответствующими обозначениями.

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

7. Проектирование запросов

7.1. Порядок создания запроса и условия отбора

Запросы, так же, как и фильтры, служат для отбора записей по заданным критериям. Но в отличие от инструмента "Фильтр" запрос – это компонент БД, допускающий многократное использование.

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

Для построения запроса в Access могут быть использованы мастер запросов или конструктор запросов. Исходными компонентами для проектирования запросов могут служить таблицы, уже существующие запросы или те и другие одновременно.

Создание запроса обычно начинается с команды ЗАПРОС/СОЗДАТЬ/КОНСТРУКТОР, далее в окне “Добавление таблицы” следует выбрать исходные компоненты нового запроса (таблицы и/или запросы) и нажать последовательно кнопки "Добавить" и "Закрыть". В возникшем окне бланка запроса следует занести: поля результатов запроса (строка "Поле"), необходимость вывода на экран полей результатов запроса (строка "Вывод на экран"), критерии выборки записей (строка "Условия отбора"), критерий упорядочивания результатов отбора (строка "Сортировка") (см. рис. 7.1).

Рис. 7.1. Пример бланка запроса

Запуск запроса на выполнение - команда ЗАПРОС/ЗАПУСК (кнопка ). Созданный запрос можно использовать и в дальнейшем, для этого нужно ему присвоить имя и сохранить, при этом имя запроса не должно повторять имя таблицы. Этот сохраненный запрос можно в дальнейшем и модифицировать.

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

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

Таблица 3

ПОЛЕ

ВЫРАЖЕНИЕ

РЕЗУЛЬТАТ

Фамилия

Сидоров

Извлекает записи, содержащие в поле “Фамилия” текст “Сидоров”

Страна

Not Украина или <>Украина

Извлекает все записи, кроме содержащих в поле “Страна” текст “Украина”

Город

Москва or Самара

Выбор клиентов из Москвы или Самары

Фамилия

Like “Р*в”

Извлекает все фамилии, начинающиеся на "Р" и кончающиеся на "в" (Рыков, Расторгуев, Рысь-Лесоватов и т.п.). Like - это оператор неточного совпадения.

Цена

>=13500

Извлекает записи о товарах с ценой не менее 13500

Дата заказа

Between #3.1.2004#and#31.1.2004#

Извлекает записи о заказах, сделанных между 3 и 31 января 2004 года. # - элемент синтаксиса, так выделяются только даты.

Телефон

(095)278-????

Извлекает записи о клиентах, московские телефоны которых начинаются с 278-

Часто возникают ситуации, когда необходимо задать условия для нескольких полей таблицы или несколько условий для одного поля. Такие запросы называются И-запросами (если запись выбирается в случае выполнения всех условий) или ИЛИ-запрос (если запись выбирается при выполнении хотя бы одного из указанных условий). Логическое условие может содержать функции, операторы сравнения, операторы Or, And, Not и скобки для изменения порядка выполнения выражения.