<< Предыдущая

стр. 86
(из 106 стр.)

ОГЛАВЛЕНИЕ

Следующая >>


Окно, используемое для форматирования столбца
по шири не




Сохранение таблицы
Для сохранения созданной таблицы выберите в меню Файл (File) команду
Сохранить (Save) или нажмите клавиши Ctrl+S. На экране отобразится окно
Сохранение (Save As) (рис. 23.20). В диалоговое окно Сохранение (Save As) в поле
Имя таблицы (Table Name) введите ее название. После того как вы закончите
создание таблицы, закройте окно конструктора таблицы.
Рис. 23.20
Окно, позволяющее задать имя таблице




Связи между таблицами в базе данных
Современные базы данных обычно содержат большое количество взаимо-
связанных таблиц, что позволяет избежать повторов. Например, крупные фир-
мы могут хранить сведения о магазинах в одной таблице, номенклатуру това-
ров, полученных этими магазинами в текущем месяце в другой таблице, а све-
дения об оптовых покупателях в третьей таблице. Access позволяет работать
одновременно с несколькими таблицами, каждая из которых должна содержать
записи, посвященные определенной теме. Связь между ними устанавливается
по общим для нескольких таблиц полям, например, номера магазинов, через ко-
торые осуществляется реализация товара. Желательно, чтобы в одной из таблиц
общее поле было ключевым. Если таблицы взаимосвязаны, то изменения, вы-
полненные в записи одной таблицы, могут влиять на записи в другой таблице.
Для сохранения полноты и целостности данных Access накладывает опреде-
ленные ограничения на ввод и редактирование данных, например, невозможно
удалить запись из одной таблицы, если существуют связанные с ней записи
в других таблицах.
472 Глава 23

Вилы связей между таблицами
Реляционная база данных может содержать большое количество взаимосвя-
занных таблиц. Связи устанавливается между двумя общими полями (столбца-
ми) двух таблиц. Связываемые поля могут иметь разные имена, но должны
иметь одинаковый тип данных за исключением случая, когда поле первичного
ключа является полем типа Счетчик. Поле счетчика связывается с числовым
полем, если значения свойства Размер поля (FieldSize) обоих полей совпадают,
Например, если свойство обоих полей имеет значение Длинное целое. Даже
в том случае, когда связываются поля типа «Числовой», их свойства Размер поля
(FieldSize) должны иметь одинаковые значения.
Задав связи между таблицами, можно создать запросы, формы и отчеты для
отображения сведений, представленных в нескольких таблицах. Между двумя
таблицами могут существовать следующие связи:
• один к одному — при таком типе связи одной записи в первой таблице со-
ответствует только одна запись в другой таблице. В этом случае следует
проверить возможность размещения всех записей в одной таблице. Одна-
ко в ряде случаев можно использовать несколько более простых таблиц.
Соответствие записей устанавливается по полю, которое является первич-
ным ключом в первой таблице, и полю, называемым внешним ключом
другой таблицы;
• один ко многим — в этом случае запись одной таблицы может иметь не-
сколько согласованных с ней записей в другой таблице. При этом каждая
запись во второй таблице согласуется только с одной записью в первой
таблице. Например, каждый покупатель может купить несколько товаров,
но каждый проданный товар имеет только одного покупателя. Поле, со-
держащее первичный ключ новой таблицы, связывается с внешним клю-
чом старой. Значения в поле с внешним ключом могут повторяться;
• многие к одному — любой записи таблицы, связь с которой мы рассматри-
ваем, могут соответствовать несколько записей новой таблицы, но не на-
оборот. Фактически это отношение один ко многим, рассматриваемое
в обратном порядке. В этом случае ключевое поле новой таблицы является
внешним ключом;
• многие ко многим — каждой записи из одной таблицы может соответство-
вать любое количество записей в другой таблице и наоборот. Например,
каждый человек может звонить с нескольких телефонов. С другой сторо-
ны некоторыми телефонами могут пользоваться несколько человек.
В этом случае поля, по которым устанавливается связь, являются внешни-
ми ключами. Они могут содержать повторяющиеся значения.
Математически такие связи можно записать 1:1, 1:т, т;1 и т:п. Более ши-
рокое распространение получили связи один ко многим, Например, один и тот
же товар со склада может вывозиться в разные магазины, и одной записи в таб-
лице Склад будет соответствовать несколько записей в таблице Магазины, Таб-
лица Склад будет главной таблицей, а Магазины — связанной. В главной таб-
лице для описания объекта используется одна запись. Избежать дублирования
записей в этой таблице позволяет первичный ключ.
Две таблицы связывает общее поле, что позволяет объединить данные из
двух таблиц для просмотра, редактирования или печати. Записи из таблиц, свя-
Знакомимся с Microsoft Access 2003 473

занных с текущей таблицей, можно отображать в подтаблицах в пределах ос-
новной таблицы.
Связанная таблица — это таблица, которая сохраняется в файле, не принад-
лежащем открытой базе данных, однако, является доступной из Microsoft
Access. Пользователь имеет возможность добавлять, удалять и изменить записи
в связанной таблице, но не может изменять ее структуру. Для обеспечения це-
лостности данных нельзя произвольно удалять или изменять связанные записи.
Например, в таблицу Магазины можно включать только те записи, которые со-
держат сведения о товарах, поступивших со склада.

Использование ключевых полей для задания связи между
таблицами
В большинстве случаев ключевое поле одной таблицы связывают с совпа-
дающим полем (внешним ключом) другой таблицы. Внешний ключ — это одно
или несколько полей (столбцов) в таблице, содержащих ссылку на поле или
поля первичного ключа в другой таблице. Поле внешнего ключа определяет
способ связывания таблиц — содержимое поля внешнего ключа должно совпа-
дать с содержимым ключевого поля, хотя имена полей могут при этом не сов-
падать. Например, для связывания сотрудников с заказами, за которые они от-
вечают, следует создать между таблицами «Сотрудники» и «Заказы» связь с по-
мощью полей «КодСотрудника». Таблица «Товары» в демонстрационной базе
данных «Борей» содержит поле внешнего ключа «КодПоставщика», которое
ссылается на ключевое поле «КодПоставщика» в таблице «Поставщики».
Внешний ключ может иметь значение Null; если внешний ключ состоит из
нескольких полей, и хотя бы одно из них имеет значение Null, то все поля
должны иметь значение Null.
Для установления отношения многие-ко-многим необходимо создать тре-
тью (связующую) таблицу и добавить в нее ключевые поля из обеих таблиц. На-
пример, в демонстрационной базе данных Борей имеются таблицы Заказы
и Товары. Заказ может включать несколько товаров, а товар входить в несколь-
ко заказов. Необходимо создать связующую таблицу (таблица Заказано, кото-
рая имеет связь с отношением «один-ко-многим» с каждой из таблиц Заказы
и Товары.

Схема данных
Для управления базой данных используются связи между таблицами.

Запомните
Дляустановки связей закроит© see. открытые таблицы ишберите команду Схема
• данных (Relationships), в-меню Сервис (Tools) или нажмите одноименную кнЬгМу-
на панели инструментов в окне бдзы данных.

Если между таблицами базы данных связи не были заданы, откроется диало-
говое окно Добавление таблицы (Show Table). Выберите в окне требуемые табли-
цы и запросы и нажмите кнопку Добавить (Add). Они отобразятся в окне Схема
данных (Relationships).
На рис. 23.21 показаны линии связи между таблицами учебной базы данных,
поставляемой с Access. В каждом небольшом окне отображены списки полей
одной из таблиц. Ключевые поля выделено жирным шрифтом. Таблицы, не
Глава 23
474


Рис. 23.21
Линии связи между таблицами базы
данных




имеющие первичных ключей, невозможно связать и в окне Схема данных они
не отображаются.
Символы на линиях связи показывают тип связи. Символ бесконечности
используется для обозначения «много», и если мы видим на одной линии связи
символы единицы и бесконечности, то между таблицами существует связь один
ко многим. Можно связывать поля с разными именами, а также запросы с таб-
лицами или запросами (см. главу 24).
Кнопки панели инструментов Отобразить прямые связи (Show Direct
Relationships) и Отобразить все (Show All Relationships) позволяют показать схему
прямых связей только одной таблицы или схемы связей всех таблиц в базе дан-
ных.

Рис. 23.22 Добавление таблицы
Диалоговое окно Добавление таблицы
апросы



Заказано
Заказы
Клиенты
Поставщики
Сотрудники
Типы
Товары




Установление связи между таблицами
Если вы хотите ввести новую таблицу в окно Схема данных (Relationships)
(см. рис. 23.21) и установить связь между таблицами, то выполните следующие
действия:
• закройте все таблицы и формы;
• в окне базы данных выберите команду Схема данных (Relationships)
в меню Сервис (Tools) или нажмите одноименную кнопку на панели инст-
рументов;
• если в окне Схема данных (Relationships) будет представлена какая-либо
информация, то нажмите сначала кнопку Очистить макет (Clear Layout),
а затем кнопку Да (Yes), чтобы продолжить выполнение намеченной опе-
рации;
Знакомимся с Microsoft Access 2003 475


• в меню Связи (Relationships) выберите команду Добавить таблицу (Show
Table) или нажмите одноименную кнопку на панели инструментов;
• в диалоговом окне Добавление таблицы (Show Table) на вкладке Таблицы
(Tables) выделите требуемую таблицу и нажмите кнопку Добавить (Add)
или дважды щелкните имя этой таблицы (рис. 23.22);
• в окне Схема данных (Relationships) отобразится список полей выбранной
таблицы с выделенным полем ключа;
• в диалоговом окне Добавление таблицы (Show Table) выделите таблицу,
с которой устанавливается взаимосвязь и нажмите кнопку Добавить (Add);
• в окне Схема данных (Relationships) перетащите ключевое поле из списка
главной таблицы в список связанной таблицы.
Для задания связи можно перетащить имя поля из списка полей таблицы
и поместить его в другой список. При задании связи «один ко многим» первич-
ный ключ первой таблицы перетаскивают в такое же поле во второй таблице.
||
|Я9 |Е
| »| Л^
^НИМ«
« «НМВНННЙ
| Ш ^_^^
^^___^
^


Запомните
1
Таблица, из рписка -полей' которой перемещают ключевое поле, является г/
-''/••ной, а таблица, куда; перемещают пол© — связанной, "Можно "Связывать пол?
, если совпадают тип данных и размер полей
" '

Изменение связи между таблицами
Для изменения связи между таблицами, выберите в меню Связи (Relation-
ships) команду Изменить связь (Edit Relationship). В диалоговом окне Изменение
связей (Edit Relationship) нажмите кнопку Новое (Create), чтобы создать связь
(рис. 23.23).
! и сменен не связей
Рис. 23.23 •

Изменение связей между таблицами ^эагдгос! С^ианная табпица/запрсс:
Т,:,„,
; QK'*;!".'.-'|;,
ека _^J Заказы
i '

ОгиЫа
;-•, эставки .Доставка if*
'

., ,,,ии,„(,...

| Новое..:,д
:jrf?. Обеспечение целостности данных: -'-˜˜ Т -1
ы*
' Г"˜ ' ?

', ;1˜ каскадное удалила связанны)! етписей

Тип йтноцинид: : одик-кс'-мнагип




Чтобы изменить существующую связь, дважды щелкните ее мышью.

Запомните
При установке связей между таблицами в диалоговом окне
(Edit Relationship) установите флажок Обеспечение целостности данных (Enf®$
Referential Integrity); если имеется возможность обеспечить пблнре совпадение;
значений в выбранных полях в обеих таблицах, v

Чтобы связать совпадающие поля в главной и связанной таблицах, щелкните,
пустую верхнюю ячейку в столбце Таблица/Запрос (Table/Query). В этой ячейке
появится кнопка со стрелкой, открывающая список. Выделите в списке совпа-
Глава 23
476 _ _^____ _

дающее поле. Затем щелкните, пустую верхнюю ячейку в столбце Связанная таб-
лица/запрос (Related Table/Query) и выберите имя требуемого поля.
После того, как связь между таблицами установлена, их поля можно объеди-

<< Предыдущая

стр. 86
(из 106 стр.)

ОГЛАВЛЕНИЕ

Следующая >>