Применение отношений

 

Отношение, или связь между Dolls и Manufacturers, подразумеваемая или неявная, — это означает, что вы знаете о существовании связи, а программа Access нет. Подобная организация не устраивает проектировщиков БД. Вместо этого они почти всегда определяют устанавливаемые связи явно. Когда создается явная связь, вы явно сообщаете Access о том, как взаимосвязаны две таблицы. Программа сохраняет сведения об этой связи в файле БД,

 

У вас есть серьезные основания открыть ваши связи. После того как программа Access узнает о них, она может лучше отслеживать ошибки. Она также может предоставить удобные средства просмотра связанных данных и корректировки связанных полей. Вы познакомитесь со всеми этими средствами в следующих разделах. Но сначала необходимо научиться определять связь, или отношение.

 

 

Определение отношения

 

Приведенные далее действия можно выполнить, используя файл Bobblehead.accdb, включенный в примеры к данной главе, размещенные в Интернете. Файл содержит таблицы Dolls и Manufacturers в первоначальной форме (без определенных отношений). В файле БД BobbleheadRelationships.accdb представлен окончательный продукт: две таблицы с корректным отношением.

Далее перечислены действия, необходимые для определения связи или отношения.

1.   Любое отношение связывает два поля, находящиеся в разных таблицах. Сначала нужно определить в родительской таблице поле, которое следует использовать.

В хорошо спроектированной БД в родительской таблице применяется поле первичного ключа (см, разд. "Первичный ключ" главы 2). Например, в таблице Manufacturers используется поле ID, однозначно определяющее каждого изготовителя.

2.   Откройте дочернюю таблицу в Конструкторе. (Самый быстрый способ — щелкнуть правой кнопкой мыши таблицу в Области переходов и выбрать строку Конструктор.)

В данном примере дочерняя таблица — Dolls.

Рис. 5.1. В таблице Dolls должно быть поле, определяющее изготовителя данной куклы. Имеет смысл вставить новое поле ManufacturerlD. Задайте тип данных Числовой и размер поля Длинное целое, чтобы поле соответствовало полю ID в таблице Manufacturers. После вставки этого поля следует заполнить его правильными данными. (В записи для каждой куклы следует указать идентификационный номер соответствующего изготовителя.)

 

3.   Создайте нужное вам поле в таблице-потомке, если его еще нет.

Каждая дочерняя запись создает ссылку, сохраняя порцию данных, указывающую на запись в таблице-родителе. Вы должны вставить новое поле для хранения этой информации, как показано на рис. 5.1.

 

 

Примечание

У полей, которые вы связываете в родительской и дочерней таблицах, должны быть совместимые типы данных. Но существует небольшое затруднение. В поле родительской таблицы используется тип данных Счетчик, а поле дочерней таблицы должно быть Числового типа (с размером поля Длинное целое). На диске типы Счетчик и Длинное целое в действительности хранят одинаковые данные. Но тип Счетчик, когда вы создаете запись, сообщает программе Access о необходимости заполнения поля новым автоматически генерируемым значением. Это поведение, очевидно, не годится при заполнении поля ManufacturerlD в таблице Dolls.

 

 

4.  Закройте обе таблицы.

Программа Access предложит сохранить внесенные изменения. Теперь ваши таблицы готовы к установке связи.

5.   Выберите Работа с базами данных >  Показать или скрыть >  Схема данных (Database Tools >  Show/Hide >  Relationships).

Программа Access откроет на ленте новую вкладку Работа со связями (Relationships). Это специализированное окно, в котором можно определить связи между всеми таблицами вашей БД. В данном примере вы создадите единственную связь, но эту вкладку можно применять для формирования множества связей.

Прежде чем программа Access разрешит вам работать на вкладке Работа со связями, она выведет на экран диалоговое окно Добавление таблицы (Show Table), запрашивая необходимые вам для работы таблицы (рис. 5.2).

Рис. 5.5. Программа Access соединяет линией связанные поля на вкладке Работа со связями, маленькие значки 1 и бесконечность (?) дают возможность в данном отношении "один-ко-многим" различить стороны "один" и "многие". Для редактирования связи дважды щелкните кнопкой мыши линию связи. Для того чтобы полностью удалить ее, щелкните дважды кнопкой мыши линию связи и выберите команду Удалить

11. Закройте вкладку Работа со связями. (Вы можете щелкнуть мышью кнопку в правом верхнем углу вкладки или выбрать Работа со связями ¦ Конструктор > Связи > Закрыть.)

Программа Access спросит, хотите ли вы сохранить макет вкладки Работа со связями. На самом деле речь идет о сохранении схемы данных, созданной вами. Неважно, что вы выберите, связь останется в БД, и вы сможете использовать ее тем же способом. Единственное различие заключается в возможности быстрого просмотра или редактирования связи на вкладке Работа со связями.

Если вы выберете сохранение схемы данных, в следующий раз при переходе на вкладку Работа со связями (при выборе Работа с базами данных > Показать или скрыть > Схема данных) вы увидите ту же структуру таблиц. Это функциональная возможность удобна.

 

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

 

 

Подсказка

Многие профессиональные проектировщики БД предпочитают сохранять схему данных, поскольку хотят видеть все свои связи на вкладке Работа со связями такими, какими они их оставили. Но реальные БД часто обрастают запутанной паутиной связей. В такой ситуации вы можете отказаться от сохранения всей схемы и сможете сосредоточить внимание на нескольких таблицах.

 

 

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100