Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
access ТЕОРИЯ.doc
Скачиваний:
12
Добавлен:
02.05.2015
Размер:
898.56 Кб
Скачать

VI. Определение связей между таблицами

Большинство людей, проектируя в первый раз БД, пытаются втиснуть все в одну таблицу. Как уже говорили, такая организация приводит к избыточности данных. Показан пример БД в 1 главе.

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

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

1. Это поле необязательно имеет одинаковое имя в обеих таблицах, но должны быть одинаковые данные (один тип).

2. Accessработает быстрее, если это поле индексированно (первичный ключ индексирован по определению), а во второй таблице – с возможностью повторения одинаковых значений.

Итог:перед установлением связей необходимо индексировать связываемые поля, проверить типы связываемых полей, и определить первичные ключи.

Определить связи можно в окне БД (перед этим закрыть таблицы, которые собираемся связывать).

  1. Нажать кнопку ПИ «Схема данных».

  2. Если связи определяются впервые откроется окно «Добавить таблицу» Выберите таблицу, отметьте ее и кнопка Добавить. Если несколько соседних таблиц, пометить все и Добавить, окно закрыть.

  3. Появится окно Схема данных, у него своя панель инструментов. Перетащите имя первичного ключа из одного списка поле к связанному имени поля в другом списке полей. Появиться окно Связи.

Первичный ключ

Связанное поле

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

  2. После этого указать, что связь 1→ и кнопка Создать.

Если хотите удалить связь, то щелкните по ней мышью и Del.

Если хотите отредактировать, дважды щелкните по линии связи, откроется окно Связи.

После того, как создали все необходимые связи, Accessспросит вас хотите ли вы сохранить изменения, нажмите ДА. Вот все.

Возможные ошибки при связывании таблиц

  1. Сообщение о том, что поле главной таблицы не является первичным ключом. Необходимо открыть структуру таблицы и убедиться, что поле является первичным ключом или проиндексировано(Совпадения не допускаются)

  2. Невозможно создать связь с обеспечением целостности. Необходимо сравнить значения в связанной таблице со значениями в главной. В связанной таблице есть такие значения, которых нет в главной, а по определению целостности этого быть не может.