- •Лабораторная работа 3. Описание структуры бд на языках субд (6 часов) Первое знакомство с интерфейсомAccess
- •Создание таблиц в режиме «Конструктор»
- •Контроль данных в таблицах
- •Описание связей между данными
- •Работа со схемой данных
- •Документирование схемы бд
- •Поля с подстановкой значений из списка
- •Оптимизация источников для подстановочных полей
- •Контроль целостности на уровне записей таблицы
- •Ввод и коррекция данных
- •Язык определения данныхSql-ddl
- •Отчет о работе
Описание связей между данными
Записи в разных таблицах БД могут быть логически связаны друг с другом: например, таблица «Заказанные товары» должна содержать только те товары, которые описаны в справочнике «Товары». Для описания и контроля логических связей между данными Accessимеет несколько инструментов:
схема данных,
подстановочные поля,
описание связи между полями внутри одной записи.
Работа со схемой данных
Схема данных, представленная вAccessв формеER-диаграммы, позволяет наглядно описать постоянные связи между таблицами. Для взаимосвязи обе таблицы должны иметь общие поля. В одной из таблиц (родительской) поле для связи является ключом, а в другой (дочерней) таблице соответствующее поле называют внешним ключом. ВAccessдля внешнего ключа автоматически создается индекс. Связи, установленные с помощью схемы данных, используются системой для автоматизации построения запросов, отчетов и форм.
Контроль правильности ввода данных во внешний ключ таблицы называется контролем ссылочной целостности:Accessпроверяет, что введенные значения внешнего ключа существуют в родительской таблице. В случае ошибки выдается сообщение.
Определение связей между таблицами с помощью схемы данных проводится в следующем порядке:
закрыть все открытые таблицы,
выполнить команду ленты «Работа с базами данных / Схема данных» (рисунок 12),
Рисунок 12 - команда "Показать схему данных"
в открытом окне «Схема данных» добавить все таблицы с помощью команды «Связи / Отобразить таблицу» (рисунок 13),
Рисунок 13 - добавление таблиц в схему данных
перетащить с помощью мыши ключевое поле одной таблицы на поле внешнего ключа в другой таблице (рисунок 14),
Рисунок 14 -определение связей таблиц
определить правило ссылочной целостности (рисунок 15).
Рисунок 15- определение свойств отношения между таблицами
В окне описания связи удостоверьтесь, что связываются именно те столбцы: слева должна быть родительская таблица, а справа – дочерняя. Затем установите переключатели:
«Обеспечение целостности»,
«Каскадное обновление», если ключевое поле – не счетчик,
«Каскадное удаление», если удаление строки в родительской таблице должно автоматически удалить связанные записи в дочерней.
Затем нажмите кнопку «Создать». Между изображениями таблиц появится линия с отметкой типа связи.
Accessразрешает описывать два типа отношений: 1 : М и 1 : 1.
Отношение «Один ко многим». Рассмотрим в БД «Борей» связанные таблицы «Клиенты» и «Заказы». ИД-клиента в таблице «Заказы» может содержать идентификаторы только зарегистрированных клиентов. Поскольку каждому клиенту может соответствовать 0, один или несколько заказов, а каждый заказ всегда относится к одному конкретному клиенту, то мощность отношения между таблицами равна 1 : М. Такие связи характерны для большинства связей в схеме БД. При изменении идентификатора клиентаAccessавтоматически заменит его и в таблице заказов. При удалении клиента заказы также должны быть удалены, иначе будет не понятно, к кому они относятся.
Отношение "один-к-одному". В этом случае каждая запись в одной таблице может быть связана только с одной записью в другой таблице и наоборот. В этом случае ключ одной таблицы совпадает с ключом другой таблицы либо внешний ключ имеет индекс с неповторяющимися значениями. Этот тип связи используют редко, например, для разделения таблицы с очень большим количеством столбцов, для отделения общедоступных данных таблицы от конфиденциальных и др.
Отношение "многие-ко-многим" между двумя таблицами описывают с помощью дополнительной третьей таблицы, то есть разбивают на две связи типа 1 : М (рисунок 22).
Рисунок 16 - реализация связи М : М с помощью таблицы «Заказано»
Например, между таблицами "Заказы" и "Товары" имеется отношение «многие ко многим»: каждый заказ может включать несколько товаров, и каждый вид товара может быть заказан несколько раз. Для реализации этого отношения создается связующая таблица «Заказано», в которую включают два поля – КодЗаказа и КодТовара.
Кроме собственно связи, в этой таблице описаны атрибуты каждого экземпляра связи: количество и цена заказанного товара, скидка в зависимости от объема заказа (таблица 4). Мы видим, что 31 заказ включает 3 товара, каждому из которых соответствует одна строка в связующей таблице.
Таблица 4 – пример связующей таблицы между товарами и заказами
Заказано | |||||
ИД |
Код заказа |
Код Товара |
Количество |
Цена за единицу |
Скидка |
27 |
30 |
Пиво |
1000 |
14,00р. |
5,00% |
28 |
30 |
Сушеные сливы |
30 |
3,50р. |
0,00% |
29 |
31 |
Сушеные груши |
10 |
30,00р. |
0,00% |
30 |
31 |
Сушеные яблоки |
10 |
53,00р. |
0,00% |
31 |
31 |
Сушеные сливы |
10 |
3,50р. |
0,00% |
32 |
32 |
Цейлонский чай |
15 |
18,00р. |
0,00% |
Для изменения свойств связинужно дважды щелкнуть по линии связи, чтобы выйти в окно "Изменение связи".Для удалениясуществующей связи следует выделить ее щелчком мыши и нажать клавишу «Delete». Например, чтобы изменить тип данных поля, которое связывает таблицу с другой таблицей, необходимо предварительно удалить установленную связь.
Из окна схемы данных можно быстро перейти в режим конструктора таблиц: щелкните по изображению таблицы на схеме правой кнопкой мыши и выберите «Конструктор таблиц».