Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практическая работа №5.doc
Скачиваний:
40
Добавлен:
14.11.2018
Размер:
937.47 Кб
Скачать

Многотабличные базы данных. Отношения между таблицами

Реляционные базы данных состоят из нескольких таблиц, связь между которыми устанавливается с помощью совпадающих полей. Каждая запись в таблицах идентифицирует один объект. Отношение между объектами определяет отношение между таблицами. Существует 4 типа отношений:

  1. Отношение «один-к-одному» означает, что каждая запись в одной таблице соответствует только одной записи в другой таблице.

  2. Отношение «один-ко-многим» означает, что каждой записи в одной таблице соответствует одна или несколько записей в другой таблице.

  3. Отношение «многие-ко-одному» аналогично рассмотренному ранее типу. Тип отношения между объектами зависит от вашей точки зрения.

  4. Отношение «многие-ко-многим» возникает между двумя таблицами в тех случаях, когда:

  • одна запись из первой таблицы может быть связана более чем с одной записью из второй таблицы;

  • одна запись из второй таблицы может быть связана более чем с одной записью из первой таблицы.

В большинстве случаев любые две таблицы связаны отношением «один-ко-многим». Это означает, что любая запись в первой таблице может быть связана с несколькими записями во второй, однако любая запись второй таблицы связана только с одной записью в первой.

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

Если же между таблицами необходимо организовать связь  «многие-ко-многим», то в Access придется создать дополнительную таблицу пересечения, с помощью которой одна связь будет сведена к двум связям типа «один-ко-многим».

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

Для того, чтобы рассмотреть создание связей между таблицами построим в базе данных «Профконсультант» еще две таблицы:

1. Таблица тАбитуриенты:

Имя           Тип         Размер
КодАб       Счетчик          4
Фамилия     Текстовый        15
Имя         Текстовый        10
Отчество    Текстовый        1
Паспорт     Текстовый        15
Индекс      Числовой         4
Город       Текстовый        20
Адрес       Текстовый        50
СреднийБалл Числовой         4
Фото        Поле объекта OLE -
Примечания  Поле МЕМО        -

КодАб является ключевым полем.

2. Таблица пересечения тСвязьАбВУЗ:

    Имя                  Тип                Размер
КодАб             Числовой (Длинное целое)     4
КодВУЗа           Числовой (Длинное целое)     4
СтатусПоступления Логический                   1
СтатусПосещения   Логический                   1

Первые два поля являются ключевыми, причем для таблицы тСвязьАбВУЗы они являются чужими ключами.

Чтобы определить связи, необходимо использовать команду Сервис->Схема данных (кнопка ). Если связь определяется впервые в базе данных, то Access откроет пустое окно Схема данных, а затем выведет на экран окно диалога Добавление таблицы. В этом окне необходимо выделить нужные таблицы и нажать кнопку Добавить. В нашем случае в окно схемы данных надо добавить все три таблицы. Кнопка Закрыть закрывает окно диалога Добавление таблицы (данное окно можно вызвать по нажатию кнопки ). После этого окно Схемы данных должно выглядеть примерно так, как показано на рис. 6.4 (кроме линий соединения). Чтобы установить связь между таблицами тВУЗы и тСвязьАбВУЗ, надо выделить поле КодВУЗа в таблице тВУЗы (щелкнуть левой кнопкой «мыши»), перетащить и опустить его на поле КодВУЗа в таблице тСвязьАбВУЗ. Аналогично устанавливается связь между двумя другими таблицами.

Рис. 6.4. Окно Схема данных, показывающее связи между основными таблицами в  базе данных «Профконсультант»

Когда вы отпустите кнопку мыши, Microsoft Access откроет окно диалога Связи, представленное на рис. 6.5.

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

После установки флажка Обеспечение целостности данных, Access делает доступными еще два флажка: Каскадное обновление связанных полей и Каскадное удаление связанных записей. При установленном флажке Каскадное обновление связанных полей Microsoft Access обновляет все значения чужих ключей в дочерних таблицах (то есть в таблицах на стороне отношения «многие» при связи «один-ко-многим») при изменении значения первичного ключа в родительской таблице, которая находится на стороне отношения «один» при связи «один-ко-многим». Если же вы установите флажок Каскадное удаление связанных записей, Microsoft Access удалит дочерние строки (связанные строки в дочерних таблицах) при удалении родительской строки (связанная строка в родительской таблице). Например, если вы решили удалить некоторый вуз из базы данных, то в этом случае следует удалить соответствующие данные в связующей таблице. Access автоматически выполнит эту операцию, если установлен флажок Каскадное удаление связанных записей. Кроме того, коды вузов время от времени могут меняться. Установите флажок Каскадное обновление связанных полей, чтобы при изменении кода вуза Access автоматически обновлял записи в таблице тСвязьАбВУЗ.

Окно диалога Добавление таблицы дает возможность добавить как таблицы, так и запросы. Иногда требуется определить связи между таблицами и запросами или только между запросами. Вы можете также определить так называемые внешние объединения, нажав кнопку Объединение в окне диалога Связи. С помощью внешнего объединения вы сможете найти, например, те вузы, к которым студенты не проявили интереса.

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