Определение ключевого поля

Для создания связей между таблицами необходимо в каждой таблице определить ключевое поле. В качестве такового выбирают поле, данные в котором повторяться не могут (например идентификационный код). Если в таблице такого поля нет, то его можно создать искусственно комбинацией полей, например для таблицы где содержится расписание занятий такой комбинацией являются поля «Время занятий» и «Номер аудитории». Если в таблице вообще нет полей, которые могут быть использоваться в качестве ключевых, то следует ввести дополнительное поле типа Счетчик – оно не может содержать повторяющихся данных по определению.

Для определения ключевого поля, необходимо в режиме конструктора, выделить нужное поля и нажать клавишу на панели инструментов или отдать команду Ключевое поле в меню Правка или в контекстном меню. Если необходимо создать ключевое поле на базе нескольких полей, то нужно сначала выделить эти поля (удерживая клавишу Ctrl щелкать на квадратных маркерах слева от имен полей), а затем отдать команду Ключевое поле.

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

 

Создание связей между таблицами

Чтобы определить связи, необходимо использовать команду Сервис\Схема данных(или кнопка ). Если связь определяется впервые в базе данных, то Access откроет пустое окно Схема данных, а затем выведет на экран окно диалога Добавление таблицы. В этом окне необходимо выделить нужные таблицы и нажать кнопку Добавить. Окно диалога Добавление таблицыдает возможность добавить как таблицы, так и запросы. Кнопка Закрытьзакрывает окно диалога Добавление таблицы(данное окно можно вызвать по нажатию кнопки ). После этого окно Схемы данныхбудет выглядеть примерно так, как показано на рис.1.а. Чтобы установить связь между таблицами, надо выбрать поле, которое есть в обеих таблицах (поле по которому будут связываться таблицы) и перетащить его из одной таблицы в другую. Когда вы отпустите кнопку мыши, Microsoft Access откроет окно диалога Связи, представленное на рис.2.

 

а) б)

Рис.1 . Окно Схема данных.

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

Рис. 2. Окно диалога Связи

 

После нажатия кнопки Создать Access создаст связь и нарисует линию между двумя таблицами, указывающую на наличие связи между ними. Заметьте, когда вы просите обеспечить целостность данных, Access изображает на конце линии у таблицы, находящейся на стороне отношения «один», цифру 1, а на другом конце у таблицы со стороны отношения «многие» – символ бесконечности (см. рис.1.б). Чтобы удалить связь, щелкните по ее линии и нажмите клавишу Del. Если вы хотите отредактировать или изменить существующую связь, дважды щелкните по соответствующей линии, чтобы снова открыть окно диалога Связи.

 

Задание 1.

  1. Откройте базу данных, созданную Вами на прошлом занятии.
  2. Задайте ключевые поля в таблицах БД. В таблице Сотрудники таким полем является Идент Код, в таблице Штатное расписаниеДолжность.В таблице Состав семьисамостоятельно создайте ключевое поле из комбинации полей.
  3. Создайте связь между таблицами Сотрудники и Состав семьи по полю Идент Код.При создании связиобеспечьте целостность данных и каскадное обновление связанных полей и каскадное удаление связанных записей.
  4. Создайте связь между таблицами Сотрудники и Штатное расписание по полю Должность. При создании связиобеспечьте целостность данных и каскадное обновление связанных полей и каскадное удаление связанных записей.
  5. Сохраните изменения в БД.

 

Изменение таблиц