Как было отмечено выше, Access является реляционной базой данных,котораяпредполагает наличие нескольких взаимосвязанных таблиц. Например, пусть идет речь о составлении заявки на товары. Если всю информацию о товарах хранить в одной таблице, то в ней наряду с полями, относящимися к товару должны были бы быть поля, относящиеся к поставщикам. Если несколько товаров отпускается одним поставщиком, то многие записи хранили бы дублирующуюся информацию об одном и том же поставщике:
Поставки
№
Поставщик
Адрес
Телефон
С кем общаться
Др. поля П-ка
Наимен Товара
Количество
Цена
Др. поля Товара
П1
А1
Т1
И1
...
Н1
К1
Ц1
...
П1
А1
Т1
И1
...
Н2
К2
Ц2
...
П1
А1
Т1
И1
...
Н3
К3
Ц3
...
П2
А2
Т2
И2
...
Н4
К4
Ц4
...
П2
А2
Т2
И2
...
Н5
К5
Ц5
...
Такая организация базы данных имеет явные недостатки: повторный ввод информации об одном и том же поставщике с вероятностью появления ошибки, нерациональный расход памяти и увеличение времени поиска записей, при изменении информации о поставщике пришлось бы проверить и обновить все записи, содержащие информацию об этом поставщике. Чтобы избежать этого используется процесс нормализации, который и обеспечивает преимущество реляционных баз данных, состоящее в том, что для каждого самостоятельного набора данных (физического или логического объекта) создается собственная таблица, т.е. в нашем примере - это таблица товаров и таблица поставщиков. В таблице товаров поставщик указывается в виде ссылки на номер записи в таблице поставщиков. Преимущества такой модели базы данных налицо - централизованное хранение информации о поставщиках и как следствие меньшие затраты времени на ввод, на поиск, устойчивость к ошибкам ввода. Поля номеров записей в таблице поставщиков и в таблице товаров назначим первичными ключами этих таблиц. С помощью ключей и устанавливается связь (отношение, реляция) в данном случае «один®ко®многим» между этими таблицами:
Поставщики
1 ¥
Товары
№ П-ка
П-к
Адр
Тел
С кем
Др.
один
№ Т-ра
№ П-ка
Наим Т.
К-во
Цена
Др.
П1
А1
Т1
И1
...
®
Н1
К1
Ц1
...
П2
А2
Т2
И2
...
ко
Н2
К2
Ц2
...
®
Н3
К3
Ц3
...
мно
Н4
К4
Ц4
...
гим
Н5
К5
Ц5
...
Но что делать, когда один поставщик предлагает много товаров, а один и тот же товар может поставляться несколькими поставщиками. Возникает связь «многие®ко ® многим», которая в рамках двух таблиц не может быть развязана. Тогда надо вводить третью таблицу (она называется таблицей пересечения), с помощью которой можно разбить связь «многие®ко ® многим» на две связи «один®ко®многим». В нашем примере это таблица Предложения:
Поставщики
1 ¥
Предложения
¥ 1
Каталог Товаров
№ П-ка
П-к
Адрес
Тел
С кем
Др. П-ка
один®
№ Предл
№ П-ка
№ Т-ра
№ зак
К-во
Цена
Др. Предл
од
ин
®
№ Т-ра
Наим.Т-ра
Др. Т-ра
П1
А1
Т1
И1
...
ко
К1
Ц1
...
ко
Н1
...
П2
А2
Т2
И2
...
®
К2
Ц2
...
®
Н2
...
мн
К3
Ц3
...
мн
Н3
...
ог
К4
Ц4
...
ог
Н4
...
им
К5
Ц5
...
им
Н5
...
Заказы
К6
Ц6
...
№ Заказа
Дата
Др.Заказа
1 ¥
К7
Ц7
...
Д1
...
Д2
...
См. пример базы данных.
Существуют 4 правила, которым надо следовать при нормализации:
1) каждое поле любой таблицы должно быть уникальным;
2) каждая таблица должна иметь первичный ключ;
3) для каждого значения первичного ключа должно быть одно и только одно значение любого поля и это значение должно относиться к объекту таблицы. Т.е. каждая таблица должна описывать определенный объект (физический или логический) и описывать его полностью (в какой-либо таблице не должны появляться атрибуты или свойства другого объекта);
4) должна иметься возможность изменить значение любого поля (не входящего в первичный ключ), и это не должно повлечь за собой необходимости изменения другого поля.
Связь между таблицами для дальнейшего использования в запросах, формах и отчетах может устанавливаться из окна базы данных по команде Сервис/Схема данныхс добавлением в схему необходимых таблиц и открытием диалогового окна Схема данных.Чтобы установить связь между двумя таблицами, например Поставщики и Предложения, надо в окне Схема данных щелкнуть по полю № П-ка таблицы Поставщики, перетащить и бросить его на поле № П-катаблицы Предложения с последующей отметкой в открывающемся диалоговом окне Связи флажка Обеспечение целостности данных и нажатием кнопки Создать. При этом в окне Схема данных между таблицами будет проведена линия с символом 1 со стороны таблицы Поставщики и символом ¥ со стороны таблицы Предложения. Для удаления связи надо щелкнуть по ее линии и нажать клавишу Delete. Для изменения существующей связи надо дважды щелкнуть по ее линии, чтобы открыть диалоговое окно Связи. Для сохранения установленных связей надо закрыть окно Схема данных и подтвердить сохранение.