Создание связей между таблицами
База данных содержит множество таблиц, связь между которыми устанавливается с помощью совпадающих полей, называемых ключами. В общем случае ключи записи бывают двух видов: первичный (уникальный) и вторичный ключи (внешний ключ).
Первичный ключ – это одно или несколько полей, однозначно идентифицирующих запись. В качестве ключей обычно используют табельные номера, электронные адреса, паспортные номера и серии или просто порядковые номера записей, т.е. те поля, значения в которых не повторяются. Если первичный ключ состоит из одного поля, он называется простым, если из нескольких полей – составным ключом.
На практике составной ключ определяется, как правило, только для таблицы, которая используется для связывания двух таблиц в отношении «многие ко многим».
Внешний ключ – это такое поле, значение которого может повторяться в нескольких записях, т.е. он не является уникальным. Если по значению первичного ключа может быть найден один единственный экземпляр записи, то по вторичному ключу – несколько записей.
Чтобы установить для таблицы первичный ключ и завершить ее создание в режиме конструктора, необходимо выполнить следующее:
В режиме конструктора выделить поле (или несколько полей, удерживая нажатой клавишу <Ctrl>), которое будет играть роль первичного ключа.
На вкладке Конструктор группы Сервис выбрать команду Ключевое поле (или выбрать данную команду в контекстном меню). Справа возле имени поля появится символ ключа.
Если первичный ключ не определен, то при выходе из режима конструктора появится соответствующее предупреждение, и программа Access предложит вам создать ключевое поле до закрытия таблицы. Щелкнув на кнопке Да в окне сообщения, вы оставляете выбор ключевого поля за Access, и если в таблице определено поле с типом данных Счетчик, Access сделает это поле ключевым. Если такого поля нет, в таблице появится новое поле с типом данных Счетчик, выполняющее функции первичного ключа.
Перед определением связей между таблицами необходимо четко уяснить, какие именно данные содержатся в каждом из объектов и какие отношения установлены между ними. Существует три типа отношений между таблицами: «один к одному», «один ко многим» («многие к одному») и «многие ко многим».
«Один к одному». Каждой записи первой таблицы соответствует одна (и не более) связанная запись второй таблицы (и, соответственно, наоборот). Такой тип отношений используется редко, так как фактически все данные могут быть помещены в одну таблицу. Он полезен, когда, например, целесообразно разделить одну громоздкую таблицу, содержащую множество полей, на две, в которых поля будут логически сгруппированы.
«Один ко многим». Одна запись первой таблицы связана со множеством записей другой таблицы, однако одной записи второй таблицы не может соответствовать больше одной записи в первой таблице.
«Многие ко многим», или непрямая табличная связь. На практике отношение «многие ко многим» реализуется через связующую таблицу.
Существуют условия, которым должны соответствовать типы данных связываемых полей:
Связываемые поля должны быть одинакового типа.
Если оба связываемых поля имеют числовой тип, они должны иметь и одинаковые значения свойства Размер поля.
Поле с типом данных Счетчик можно, кроме того, связать с числовым полем, у которого свойство Размер поля имеет значение Длинное целое.