- •1. Базы данных. Основные понятия и определения
- •1.2. Основные определения.
- •2. Нормализация баз данных
- •2.1. Задача нормализации бд
- •2.2. Первая нормальная форма (1нф)
- •2.3. Вторая нормальная форма (2нф)
- •2.4. Третья нормальная форма (3нф)
- •3. Отношения между таблицами
- •3.1. Связи между таблицами
- •3.2. Отношение "Один-к-одному"
- •3.3. Отношение "Один-ко-многим"
- •3.4. Отношение "Многие-ко-многим"
- •4. Субд Microsoft Access
- •4.1. Особенности субд Microsoft Access
- •4.2. Объекты ms Access
- •4.3. Режимы работы с объектами ms Access
- •5. Таблицы ms Access
- •5.1. Создание таблиц
- •5.3. Создание связей между таблицами в ms Access
- •6. Запросы ms Access
- •6.1. Что такое запросы
- •6.2. Краткие сведения об sql
- •6.3. Создание запросов
- •6.4. Условия отбора записей
- •6.5. Запросы-действия
- •6.6. Запросы sql
- •7. Формы ms Access
- •7.1. Общие сведения
- •7.2. Создание форм
- •7.3. Элементы управления
- •7.4. Кнопочные формы
- •8. Отчеты ms Access
- •8.1. Общие сведения
5.3. Создание связей между таблицами в ms Access
Для создания связей между таблицами СУБД Access имеет специальное диалоговое окно, которое называется "Схема данных", располагающееся на вкладке Работа с базами данных.
Если ранее никаких связей между таблицами базы не было, то при открытии окна "Схема данных" одновременно открывается окно "Добавление таблицы", в котором можно выбрать нужные таблицы для включения в структуру межтабличных связей. Если связи между таблицами уже были заданы, то для введения в схему данных новой таблицы надо щелкнуть правой кнопкой мыши на схеме данных и в контекстном меню выбрать пункт "Добавить таблицу".
Добавив в схему данных все таблицы, которые необходимо связать, можно приступать к созданию связей между полями таблиц. Связь между полями таблиц устанавливают путем перетаскивания имени поля из одной в таблицы в другую на соответствующее ему связанное поле, после чего открывается диалоговое окно "Связи", в котором можно задать свойства образующейся связи (см. рисунок 5.3.3).
Включение флажка "Обеспечение целостности данных "позволяет защититься от случаев удаления записей из одной таблицы, при которых связанные с ними данные других таблиц останутся без связи.
Термин Целостность данных означает систему правил, используемых в MS Access для поддержания связей между записями в связанных таблицах, а также обеспечивает защиту от случайного удаления или изменения связанных данных. Установить целостность данных можно, если выполнены следующие условия:
Связанное поле главной таблицы является ключевым полем или имеет уникальный индекс.
Связанные поля имеют один тип данных. Здесь существует два исключения. Поле счетчика может быть связано с числовым полем, если в последнем в свойстве "Размер поля "(Field Size) указано значение "Длинное целое". А также поле счетчика можно связать с числовым полем, если и в обеих ячейках свойства "Размер поля" (Field Size) задано значение "Код репликации".
Обе таблицы принадлежат одной базе данных MS Access. Если таблицы являются связанными, то они должны быть таблицами MS Access. Для установки целостности данных база данных, в которой находятся таблицы, должна быть открыта. Для связанных таблиц из баз данных других форматов установить целостность данных стандартными средствами MS Access невозможно.
Установив целостность данных, необходимо следовать следующим правилам:
Невозможно ввести в поле внешнего ключа связанной таблицы значение, не содержащееся в ключевом поле главной таблицы. Однако в поле внешнего ключа возможен ввод пустых значений, показывающих, что записи не являются связанными. Например, нельзя сохранить запись, регистрирующую заказ, сделанный несуществующим клиентом, но можно создать запись для заказа, который пока не отнесен ни к одному из клиентов, если ввести пустое значение в поле "Код Клиента".
Не допускается удаление записи из главной таблицы, если существуют связанные с ней записи в подчиненной таблице. Например, невозможно удалить запись из таблицы "Сотрудники", если в таблице "Заказы" имеются заказы, относящиеся к данному сотруднику.
Невозможно изменить значение ключевого поля в главной таблице, если существуют записи, связанные с данной. Например, невозможно изменить код сотрудника в таблице "Сотрудники", если в таблице "Заказы" имеются заказы, относящиеся к этому сотруднику.
Чтобы наложить эти правила на конкретную связь, при ее создании следует установить флажок . Если данный флажок установлен, то любая попытка выполнить действие, нарушающее одно из перечисленных выше правил, приведет к выводу на экран предупреждения, а само действие выполнено не будет.
Чтобы преодолеть ограничения на удаление или изменение связанных записей, сохраняя при этом целостность данных, следует установить флажки "Каскадное обновление связанных полей" и "Каскадное удаление связанных полей". Если установлен флажок "Каскадное обновление связанных полей", то при изменении ключевого поля главной таблицы автоматически изменяются и соответствующие значения связанных записей. Если установлен флажок"Каскадное удаление связанных полей", то при удалении записи в главной таблице удаляются и все связанные записи в подчиненной таблице.
