Применение связанных таблиц
В реляционных базах данных существует три способа для задания связей между таблицами. Таблицы могут иметь связи типа "один-к-одному", "один-ко-многим" и "многие-ко-многим". Программа Access напрямую поддерживает только два первых типа связей, но связь типа «многие-ко-многим» можно создать косвенным путем. Для этого структура базы создается таким образом, чтобы группа таблиц, последовательно связанных отношениями "один-ко-многим", имитировала бы пару таблиц, связанных отношением «многие-ко-многим»
Основными понятиями реляционных баз данных являются понятия главная таблица и подчиненные таблицы, которые связаны с главной. Иногда подчиненную таблицу называют "чужой" (foreign) таблицей. Связь "один-к-одному" определяет такое отношение между таблицами, когда каждой записи в подчиненной таблице соответствует только одна запись в главной таблице. Наличие связей между таблицами "один-к- одному" обычно не говорит о хорошей структуре базе данных, поскольку свидетельствует о том, что две таблицы имеют полностью совпадающие поля, а это ведет к нерациональному расходу дискового пространства. В большинстве случаев можно было бы просто добавить поля из подчиненной таблицы в главную и сделать одну большую таблицу. Однако встречаются ситуации, когда связь "один-к-одному" является необходимой. Например, общие сведения о сотрудниках и их медицинские данные должны храниться в разных таблицах одной базы, поскольку уровень доступа к ним должен быть разным. Если для разных данных желательно установить разные уровни доступа, то целесообразно хранить их в разных таблицах, обеспечив связь между этими таблицами "один-к-одному".
Связь «один-ко-многим» в структурах баз данных является наиболее общепринятой. При этом типе связи каждой записи главной таблицы соответствует одна или несколько записей в подчиненной таблице. Структура связей типа «один-ко-многим» позволяет избежать избыточности данных и дублирования записей.
Связь типа «многие-ко-многим» выражает такое отношение между таблицами, когда многие записи одной таблицы могут быть связаны со многими записями другой таблицы. Access (как и многие другие системы управления базами данных на платформе IBM PC) напрямую не поддерживает такой тип связей. Однако такую связь можно обеспечить, объединив две связи «один-ко-многим» в один запрос. Общепринятым примером связи типа «многие-ко-многим» является структура базы, хранящей информацию о комплектующих изделиях и их поставщиках. Таблица Комплектующие содержит список изделий, поступающих от одного или более поставщиков, а каждый поставщик из таблицы Поставщики обеспечивает поступление одного или более изделий. Таблица Комплектующие должна содержать для каждого изделия его описание, стоимость, остаток на складе, а также один уникальный номер (артикул), присвоенный этому изделию. Таблица Поставщики должна содержать имя и адрес каждого поставщика, а также уникальный идентификационный номер, присвоенный данному поставщику. Для того чтобы связать эти две таблицы и обеспечить отношение связи «многие-ко-многим», необходима третья таблица, содержащая только два поля: Артикул изделия и Идентификационный номер поставщика. Эта третья таблица служит в качестве промежуточной таблицы, связывающей две другие таблицы.
Независимо от того, какой тип связи применяется, для реализации связей между таблицами вам понадобятся так называемые ключевые поля, содержащие уникальные (неповторяющиеся) данные. При наличии ключевых полей связь между таблицами устанавливается просто и эффективно. Вот почему программа Access так настойчиво предлагает задать поле первичного ключа после создания новой таблицы.
Связь между двумя таблицами создается следующим образом.
Щелкните на вкладке Таблицы в окне База данных .
Дайте команду Сервис - Схема данных. Откроется окно Схема данных . Если вы устанавливаете связь в базе в первый раз, откроется диалоговое окно Добавление таблицы - оно располагается поверх окна Схема данных.
Выберите таблицу или запрос, используемые для создания связи, и щелкните на кнопке Добавить, чтобы добавить список полей данной таблицы или запроса к окну Связи.
Повторите операцию п.3 для каждой таблицы или запроса, участвующих в создании новой связи.
Связи между полями устанавливаются методом перетаскивания поля (или полей) с помощью мыши из одной таблицы в другую, к полям, с которыми они связываются. Обычно связывают поле первичного ключа одной таблицы с полем, содержащим аналогичные данные в другой таблице. После перетаскивания поля открывается диалоговое окно Связи.
6. Проверьте правильность выбора полей, представленных в диалоговом окне. Программа Access может достаточно точно «угадывать» поля, для которых можно создать связь, вы же можете предпочесть не те установки, которые Access предлагает по умолчанию, а другие.
7. Установите флажок Обеспечение целостности данных, чтобы программа автоматически поддерживала сохранение связи между данными двух таблиц. Если этот флажок установлен, Access предотвратит внесение вами данных, не соответствующих типу связи между таблицами.
8. Для создания связи щелкните на кнопке Создать . Связи между таблицами в окне Схема данных
будут показаны с помощью линий.
Удаление связи
В программе Access связи удаляются путем удаления соединительных линий между связанными полями в окне Схема данных.
Дайте команду Сервис - Схема данных. Откроется окно Схема данных.
Щелчком левой кнопки мыши выделите соединительную линию между таблицами, с помощью которой отображается связь.
Нажмите клавишу DEL.
Когда Access предложит вам подтвердить удаление связи, щелкните на кнопке ОК.
Удаление таблицы из окна "Схема данных"
Таблицу из окна Схема данных можно удалить, причем без удаления самих таблиц из базы данных. Для этого надо выделить таблицу в окне Схема данных и дать команду Связи - Скрыть таблицу. По такой команде программа Access удалит таблицу из окна Схема данных . Удаление таблицы не изменяет тех связей, которые эта таблица имеет. Вернуть таблицу на место можно командой Схема данных- Добавление таблицы или щелчком на кнопке Добавить таблицу .
Каскадное обновление связанных полей и каскадное удаление связанных записей — это средства, определяющие режим работы программы Access с данными при изменении или удалении записей в главной таблице, имеющей связи с записями подчиненных таблиц. При включенном режиме каскадного обновления связанных полей все записи в подчиненных таблицах будут обновлены при изменении данных в главной таблице. Например, если вы измените регистрационные номера клиентов в таблице Клиенты, все подчиненные таблицы, которые содержат регистрационные номера клиентов, обновят свои записи, использовав новые номера. Если включен режим каскадного удаления записей, то при удалении записей в главной таблице все связанные записи в подчиненных таблицах удаляются. Это значит, что если вы удалите запись о клиенте из таблицы Клиенты, то Access удалит все записи, относящиеся к данному клиенту в подчиненных таблицах.
Каскадное обновление связанных полей и каскадное удаление связанных записей могут быть полезны, потому что они повышают скорость ввода данных и создают уверенность в том, что все связанные записи обновляются одновременно. С другой стороны, в таком режиме может произойти неосознанное вами изменение или удаление данных. И режим каскадного обновления, и режим каскадного удаления не устанавливаются автоматически. Их можно задать при создании связей. После установки флажка Обеспечение целостности данных в диалоговом окне Связи появляется дополнительная возможность установки флажков. Вы можете установить флажок Каскадное обновление связанных полей и флажок Каскадное удаление связанных записей. После этого щелкните на кнопке Создать для создания связи. Если ни один из этих флажков не установлен, режимы каскадного обновления и каскадного удаления не действуют.
Достарыңызбен бөлісу: |