27
Связывание Связывание таблиц на таблиц на схеме данных схеме данных

ACCESS связывание таблиц на схеме данных

Embed Size (px)

Citation preview

Page 1: ACCESS связывание таблиц на схеме данных

Связывание Связывание таблиц на таблиц на

схеме данныхсхеме данных

Page 2: ACCESS связывание таблиц на схеме данных

необходимы для:

• поддержания ссылочной целостности

• задания способа выборки данных из нескольких таблиц

Связи между таблицами

Page 3: ACCESS связывание таблиц на схеме данных

Связи между таблицами могут быть трех видов:

Один-ко-многим

Многие-ко-многим

Один-к-одному

Связи между таблицами

Page 4: ACCESS связывание таблиц на схеме данных

Один Преподаватель может вести несколько Предметов

Связи между таблицами

Является наиболее часто употребимым видом связи. При такой связи каждой записи таблицы А может соответство-вать много записей таблицы Б. В свою очередь, каждой записи таблицы Б может соответствовать только одна запись таблицы А.

Один ко многим

Page 5: ACCESS связывание таблиц на схеме данных

Связи между таблицами

Многие-ко-многим

При этом типе связи многим записям из таблицы А может соответствовать много записей из таблицы Б (и наоборот). Такую связь можно организовать при помощи третьей вспомогательной таблицы, в которой каждому первичному ключу из таблицы А сопоставлен первичный ключ из таблицы Б.

Page 6: ACCESS связывание таблиц на схеме данных

Пример:

Несколько Деталей может поставляться несколькими Поставщиками

код поставщикаимя

адрес

телефон

код детали

наименование

материал

размер

код поставщика

код детали

дата

1 1

Деталь ПоставщикПоставка

По сути, связь типа «многие-ко-многим» представляет собой две связи типа «один-ко-многим». При этом таблицы А и Б расположены со стороны один, а вспомогательная таблица – со стороны многие. Такой тип связи используется реже, но существуют ситуации, когда без нее не обойтись.

Связи между таблицами

Page 7: ACCESS связывание таблиц на схеме данных

Один-к-одному

Одной записи таблицы А соответствует одна запись таблицы Б и наоборот. Этот тип связи практически никогда не применяется. Единственный случай, когда применение этого типа связи оправданно – разбиение таблицы, содержащей очень большое количество полей, на несколько частей.

Связи между таблицами

Page 8: ACCESS связывание таблиц на схеме данных

Связи между таблицамиВ некоторых случаях связи между

таблицами Access строит автоматически. Это происходит тогда, когда:

1. две таблицы имеют одинаковые названия связанных полей;

2. В связанных полях хранятся данные, согласованные по типу;

3. хотя бы в одной из таблиц связанное поле является ключевым.

Согласованные типы данных означают следующее: если ключевое поле имеет тип данных Счетчик (AutoNumber), то соответствующее ему поле в другой таблице должно иметь тип Number, а в свойстве Размер поля (FieldSize) указано значение «Длинное целое» (Long Integer). В остальных случаях типы данных должны просто совпадать.

Page 9: ACCESS связывание таблиц на схеме данных

1.Закройте все открытые таблицы. Создавать или изменять связи между открытыми таблицами нельзя.

2.Переключитесь в окно базы данных. Для переключения в окно базы данных из других окон нажмите клавишу F11.

3.Нажмите кнопку Схема данных (Relationships) на панели инструментов.

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

Page 10: ACCESS связывание таблиц на схеме данных

Если в базе данных не определено никаких связей, то на экран автоматически будет выведено окно Добавление таблицы (Show Table).

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

Page 11: ACCESS связывание таблиц на схеме данных

Если необходимо добавить таблицы для определения связей, а диалогового окна Добавление таблицы на экране нет, нажмите кнопку Добавить таблицу (Show Table)

на панели инструментов.

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

Page 12: ACCESS связывание таблиц на схеме данных

5. Дважды щелкните имена таблиц, для которых требуется определить связи. Затем закройте диалоговое окно Добавление таблицы.

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

Page 13: ACCESS связывание таблиц на схеме данных

6. Следует выбрать в главной таблице поле для связи, нажать левую кнопку мыши и перетащить поле во вторую таблицу. Отпустить левую кнопку мыши над тем полем подчиненной таблицы, с которым устанавливается связь. (Для связывания сразу нескольких полей переместите их при нажатой клавише CTRL).После этого появится диалоговое окно Изменение связей (Edit

Relationships)

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

Page 14: ACCESS связывание таблиц на схеме данных

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

Если отношение между таблицами "один-ко-многим", то слева из списка Таблица/запрос (Table/ Query) выбирается главная таблица и поле в этой таблице, а справа из списка Связанная таблица/запрос — подчиненная и соответственно поле в ней. Если отношение "один-к-одному", то порядок таблиц значения не имеет.

Если вы устанавливали связь графически, то все поля в списках уже выбраны, и нужно только определить правила ссылочной целостности.

Page 15: ACCESS связывание таблиц на схеме данных

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

Когда создается новая связь, можно также воспользоваться кнопкой Создать новую... (Create New)

и в окне Создание (Create New) ввести имена связываемых таблиц и имена полей, используемых для связи. Нажать кнопку ОК.

Page 16: ACCESS связывание таблиц на схеме данных

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

Чтобы убрать какую-либо таблицу из схемы данных, необходимо щелкнуть правой кнопкой мыши на любом месте этой таблицы и из контекстного меню выбрать команду Скрыть таблицу (Hide table).

Удаление таблицы из схемы данных не означает удаление ее из базы данных, просто она не присутствует в схеме.

Page 17: ACCESS связывание таблиц на схеме данных

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

Чтобы вновь добавить в эту схему свернутую таблицу или таблицу, у которой связи еще не установлены, необходимо:

Щелкнуть правой кнопкой мыши на свободном пространстве схемы данных и из контекстного меню выбрать команду Добавить таблицу (Show table).

В диалоговом окне Добавление таблицы (Show table) раскрыть вкладку Таблицы (Tables), выбрать из списка таблицу и нажать кнопку Добавить (Add)

Page 18: ACCESS связывание таблиц на схеме данных

Ссылочная целостность

Если вы устанавливали связь графически, то все поля в списках уже выбраны, и нужно только определить правила ссылочной целостности.

Page 19: ACCESS связывание таблиц на схеме данных

Ссылочная целостность

Целостность данных означает систему правил, используемых в Microsoft Access для поддержания связей между записями в связанных таблицах, а также обеспечивает защиту от случайного удаления или изменения связанных данных.

Page 20: ACCESS связывание таблиц на схеме данных

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

Связанные поля имеют один тип данных. Здесь существует два исключения. Поле счетчика (Date Type – Autonumber) может быть связано с числовым полем (Date Type – Number) , если в последнем в свойстве Размер поля (FieldSize) указано значение «Длинное целое» (Long Integer). А также поле счетчика можно связать с числовым полем, если и в обеи ячейках свойства Размер поля (FieldSize) задано значение «Код репликации».

Обе таблицы принадлежат одной базе данных Microsoft Access. Если таблицы являются связанными, то они должны быть таблицами Microsoft Access. Для установки целостности данных база данных, в которой находятся таблицы, должна быть открыта. Для связанных таблиц из баз данных других форматов установить целостность данных невозможно.

Page 21: ACCESS связывание таблиц на схеме данных

Ссылочная целостностьУстановив целостность данных, необходимо следовать следующим правилам.

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

Главная таблицаКлючевое поле – код группы

Код группыВнешний

ключ

Page 22: ACCESS связывание таблиц на схеме данных

Ссылочная целостностьУстановив целостность данных, необходимо следовать следующим правилам.

2. Не допускается удаление записи из главной таблицы, если существуют связанные с ней записи в подчиненной таблице. Например, невозможно удалить запись из таблицы «группа», если в таблице «Студент» имеются

студенты, относящиеся к данной группе.

Page 23: ACCESS связывание таблиц на схеме данных

Ссылочная целостностьУстановив целостность данных, необходимо следовать следующим правилам.

3. Невозможно изменить значение ключевого поля в главной таблице, если существуют записи, связанные с данной. Например, невозможно изменить код группы в таблице «Группы», если в таблице «Студент» имеются студенты,

относящиеся к данной группе.

Page 24: ACCESS связывание таблиц на схеме данных

Ссылочная целостность

Чтобы установить эти правила на конкретную связь, при ее создании следует установить флажок Обеспечение целостности данных (Enforce Referential Integrity).

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

Page 25: ACCESS связывание таблиц на схеме данных

Ссылочная целостность

Чтобы преодолеть ограничения на удаление или изменение связанных записей, сохраняя при этом целостность данных, следует установить флажки Каскадное обновление связанных полей (Cascade Update Related Fields) и Каскадное удаление связанных полей (Cascade Delete Related Records).

Page 26: ACCESS связывание таблиц на схеме данных

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

Page 27: ACCESS связывание таблиц на схеме данных

Ссылочная целостность

Если установлен флажок Каскадное удаление связанных полей, то при удалении записи в главной таблице удаляются и все связанные записи в подчиненной таблице.