Что такое первичный ключ в access
Ключи в Ms Access
В роли простого ключа может выступать одно уже из существующих полей таблицы, если в данном поле нет пустых и повторяющихся значений. Примерами таких полей могут быть номера машин, инвентарные номера, идентификационные коды. Составной ключ строится как комбинация двух и более элементов данных. Для таблицы Сотрудники, например, теоретически можно использовать в качестве первичного ключа комбинацию двух полей, Фамилию и Имя. Однако вполне возможно, что в компании появится еще один сотрудник с таким же именем и фамилией, как у кого-либо из уже работающих.
Очевидно, что к полю (полям), претендующему на роль первичного ключа, предъявляются довольно жесткие требования. Поэтому общепринятой практикой считается создание специального поля идентифицирующего поля, которое выполняет функции ключа (например, Код клиента, Код заказа). С добавлением каждой новой записи в таблицу в это поле заносится специальное значение (как правило, числовое), уникально определяющее запись. В приложении Access организовать такую нумерацию можно благодаря типу данных Счетчик, который присваивает каждой новой записи свой номер, генерируя последовательность чисел с шагом 1 (или случайным образом).
– для удобства ключевое поле обычно указывается в структуре таблицы первым;
– если для таблицы определен первичный ключ, программа Access автоматически блокирует ввод в это поле повторяющихся значений или значения Null (пусто);
– Access автоматически сортирует записи таблицы по первичному ключу;
– поле первичного ключа является индексом, с помощью которого ускоряется сортировка и поиск записей.
Чтобы установить для таблицы первичный ключ и завершить ее создание в режиме конструктора, выполните следующие действия:
– в режиме конструктора выделите поле, которое будет играть роль первичного ключа;
– кликните по кнопке Ключевое поле панели инструментов Конструктора таблиц или выберите команду главного меню Правка – Ключевое поле (слева возле имени выделенного поля появится символ ключа);
– после указания ключевого поля таблицу необходимо сохранить, для чего необходимо кликнуть по кнопке Сохранить панели инструментов конструктор таблиц и в открывшемся окне ввести имя таблицы и кликнуть по кнопке Ок.
Если первичный ключ не определен, то при выходе из режима конструктора появится соответствующее предупреждение, и программа Access предложит Вам создать ключевое поле до закрытия таблицы.
Руководство по проектированию реляционных баз данных (4-6 часть из 15) [перевод]
Выкладываю продолжение перевода цикла статей для новичков.
В настоящих и последующих — больше информации по существу.
Начало — здесь.
4. ТАБЛИЦЫ И ПЕРВИЧНЫЕ КЛЮЧИ
Как вы уже знаете из прошлых частей, данные хранятся в таблицах, которые содержат строки или по-другому записи. Ранее я приводил пример таблицы, содержащей информацию об уроках. Давайте снова на нее взглянем.
В таблице имеются 6 уроков. Все 6 – разные, но для каждого урока значения одинаковых полей хранятся в таблице, а именно: tutorial_id (идентификатор урока), title (заголовок)и category (категория). Tutorial_id – первичный ключ таблицы уроков. Первичный ключ – это значение, которое уникально для каждой записи в таблице.
В таблице клиентов ниже customer_id – первичный ключ. В данном случае первичный ключ – также уникальное значение (число) для каждой записи.
Первичные ключи в повседневной жизни
В базе данных первичные ключи используются для идентификации. В жизни первичные ключи вокруг нас везде. Каждый раз, когда вы сталкиваетесь с уникальным числом это число может служить первичным ключом в базе данных (может, но не обязательно должно использоваться как таковое. Все базы данных способны автоматически генерировать уникальное значение для каждой записи в виде числа, которое автоматически увеличивается и вставляется вместе с каждой новой записью [Т.н. синтетический или суррогатный первичный ключ – прим.перев.]).
Что объединяет эти примеры? То, что во всех из них в качестве первичного ключа выбирается уникальное, не повторяющееся значение для каждой записи. Еще раз. Значения поля таблицы базы данных, выбранного в качестве первичного ключа, всегда уникально.
Что характеризует первичный ключ? Характеристики первичного ключа.
Первичный ключ служит для идентификации записей.
Первичный ключ используется для идентификации записей в таблице, для того, чтобы каждая запись стала уникальной. Еще одна аналогия… Когда вы звоните в службу технической поддержки, оператор обычно просит вас назвать какой-либо номер (договора, телефона и пр.), по которому вас можно идентифицировать в системе.
Если вы забыли свой номер, то оператор службы технической поддержки попросит предоставить вас какую-либо другую информацию, которая поможет уникальным образом идентифицировать вас. Например, комбинация вашего дня рождения и фамилия. Они тоже могут являться первичным ключом, точнее их комбинация.
Первичный ключ уникален.
Первичный ключ всегда имеет уникальное значение. Представьте, что его значение не уникально. Тогда его бы нельзя было использовать для того, чтобы идентифицировать данные в таблице. Это значит, что какое-либо значение первичного ключа может встретиться в столбце, который выбран в качестве первичного ключа, только один раз. РСУБД устроены так, что не позволят вам вставить дубликаты в поле первичного ключа, получите ошибку.
Еще один пример. Представьте, что у вас есть таблица с полями first_name и last_name и есть две записи:
| first_name | last_name |
| vasya |pupkin |
| vasya |pupkin |
Т.е. есть два Васи. Вы хотите выбрать из таблицы какого-то конкретного Васю. Как это сделать? Записи ничем друг от друга не отличаются. Вот здесь и помогает первичный ключ. Добавляем столбец id (классический вариант синтетического первичного ключа) и…
Id | first_name | last_name |
1 | vasya |pupkin |
2 | vasya |pupkin |
Теперь каждый Вася уникален.
Типы первичных ключей.
Обычно первичный ключ – числовое значение. Но он также может быть и любым другим типом данных. Не является обычной практикой использование строки в качестве первичного ключа (строка – фрагмент текста), но теоретически и практически это возможно.
Составные первичные ключи.
Часто первичный ключ состоит из одного поля, но он может быть и комбинацией нескольких столбцов, например, двух (трех, четырех…). Но вы помните, что первичный ключ всегда уникален, а значит нужно, чтобы комбинация n-го количества полей, в данном случае 2-х, была уникальна. Подробнее об этом расскажу позднее.
Поле первичного ключа часто, но не всегда, обрабатывается самой базой данных. Вы можете, условно говоря, сказать базе данных, чтобы она сама автоматически присваивала уникальное числовое значение каждой записи при ее создании. База данных, обычно, начинает нумерацию с 1 и увеличивает это число для каждой записи на одну единицу. Такой первичный ключ называется автоинкрементным или автонумерованным. Использование автоинкрементных ключей – хороший способ для задания уникальных первичных ключей. Классическое название такого ключа – суррогатный первичный ключ [Как и упоминалось выше. – прим. перев.]. Такой ключ не содержит полезной информации, относящейся к сущности (объекту), информация о которой хранится в таблице, поэтому он и называется суррогатным.
5. СВЯЗЫВАНИЕ ТАБЛИЦ С ПОМОЩЬЮ ВНЕШНИХ КЛЮЧЕЙ
Когда я начинал разрабатывать базы данных я часто пытался сохранять информацию, которая казалась родственной, в одной таблице. Я мог, например, хранить информацию о заказах в таблице клиентов. Ведь заказы принадлежат клиентам, верно? Нет. Клиенты и заказы представляют собой отдельные сущности в базе данных. И тому и другому нужна своя собственная таблица. А записи в этих двух таблицах могут быть связаны для того, чтобы установить отношения между ними. Проектирование базы данных – это решение двух вопросов:
Один-ко-многим.
Клиенты и заказы имеют связь (состоят в отношениях) один-ко-многим потому, что один клиент может иметь много заказов, но каждый конкретный заказ (их множество) оформлен только одним клиентом, т.е. может иметь только одного клиента. Не беспокойтесь, если на данный момент понимание этой связи смутно. Я еще расскажу о связях в следующих частях.
Одно является важным сейчас – то, что для связи один-ко-многим необходимо две отдельные таблицы. Одна для клиентов, другая для заказов. Давайте немного попрактикуемся, создавая эти две таблицы.
Какую информацию мы будем хранить? Решаем первый вопрос.
Для начала мы определимся какую информацию о заказах и о клиентах мы будем хранить. Чтобы это сделать мы должны задать себе вопрос: “Какие единичные блоки информации относятся к клиентам, а какие единичные блоки информации относятся к заказам?”
Проектируем таблицу клиентов.
Заказы действительно принадлежат клиентам, но заказ – это это не минимальный блок информации, который относится к клиентам (т.е. этот блок можно разбить на более мелкие: дата заказа, адрес доставки заказа и пр., к примеру).
Поля ниже – это минимальные блоки информации, которые относятся к клиентам:
Давайте перейдем к непосредственному созданию этой таблицы в SQLyog (естественно, что вы можете использовать любую другую программу). Ниже приведен пример того, как могла бы выглядеть таблица в программе SQLyog после создания. Все графические приложения для управления базами данных имеют приблизительно одинаковую структуру интерфейса. Вы также можете создать таблицу с помощью командной строки без использования графической утилиты.
Создание таблицы в SQLyog. Обратите внимание, что выбран флажок первичного ключа (PK) для поля customer_id. Поле customer_id является первичным ключом. Также выбран флажок Auto Incr, что означает, что база данных будет автоматически подставлять уникальное числовое значение, которое, начиная с нуля, будет каждый раз увеличиваться на одну единицу.
Проектируем таблицу заказов.
Какие минимальные блоки информации, необходимые нам, относятся к заказу?
Ниже – пример таблицы в SQLyog.
Проект таблицы. Поле customer является ссылкой (внешним ключом) для поля customer_id в таблице клиентов.
Эти две таблицы (клиентов и заказов) связаны потому, что поле customer в таблице заказов ссылается на первичный ключ (customer_id) таблицы клиентов. Такая связь называется связью по внешнему ключу. Вы должны представлять себе внешний ключ как простую копию (копию значения) первичного ключа другой таблицы. В нашем случае значение поля customer_id из таблицы клиентов копируется в таблицу заказов при вставке каждой записи. Таким образом, у нас каждый заказ привязан к клиенту. И заказов у каждого клиента может быть много, как и говорилось выше.
Создание связи по внешнему ключу.
Вы можете задаться вопросом: “Каким образом я могу убедиться или как я могу увидеть, что поле customer в таблице заказов ссылается на поле customer_id в таблице клиентов”. Ответ прост – вы не можете сделать этого потому, что я еще не показал вам как создать связь.
Ниже – окно SQLyog с окном, которое я использовал для создания связи между таблицами.
Создание связи по внешнему ключу между таблицами заказов и клиентов.
В окне выше вы можете видеть, как поле customer таблицы заказов слева связывается с первичным ключом (customer_id) таблицы клиентов справа.
Теперь, когда вы посмотрите на данные, которые могли бы быть в таблицах, вы увидите, что две таблицы связаны.
Заказы связаны с клиентами через поле customer, которое ссылается на таблицу клиентов.
На изображении вы видите, что клиент mary поместила три заказа, клиент pablo поместил один, а клиент john – ни одного.
Вы можете спросить: “А что же именно заказали все эти люди?” Это хороший вопрос. Вы возможно ожидали увидеть заказанные товары в таблице заказов. Но это плохой пример проектирования. Как бы вы поместили множественные продукты в единственную запись? Товары – это отдельные сущности, которые должны храниться в отдельной таблице. И связь между таблицами заказов и товаров будет являться связью один-ко-многим. Я расскажу об этом далее.
6. СОЗДАНИЕ ДИАГРАММЫ СУЩНОСТЬ-СВЯЗЬ
Ранее вы узнали как записи из разных таблиц связываются друг с другом в реляционных базах данных. Перед созданием и связыванием таблиц важно, чтобы вы подумали о сущностях, которые существуют в вашей системе (для которой вы создаете базу данных) и решили каким образом эти сущности бы связывались друг с другом. В проектировании баз данных сущности и их отношения обычно предоставляются в диаграмме сущность-связь (англ. entity-relationship diagram, ERD). Данная диаграмма является результатом процесса проектирования базы данных.
Сущности.
Вы можете задаться вопросом, что же такое сущность. Нуу… это “вещь” в системе. Там. Моя Мама всегда хотела, чтобы я стал учителем потому, что я очень хорошо объясняю различные вещи.
В контексте проектирования баз данных сущность – это нечто, что заслуживает своей собственной таблицы в модели вашей базы данных. Когда вы проектируете базу данных, вы должны определить эти сущности в системе, для которой вы создаете базу данных. Это скорее вопрос диалога с клиентом или с собой с целью выяснения того, с какими данными будет работать ваша система.
Давайте возьмем интернет-магазин для примера. Интернет-магазин продает товары. Товар мог бы стать очевидной сущностью в системе интернет-магазина. Товары заказываются клиентами. Вот мы с вами и увидели еще две очевидных сущности: заказы и клиенты.
Заказ оплачивается клиентом… это интересно. Мы собираемся создавать отдельную таблицу для платежей в базе данных нашего интернет-магазина? Возможно. Но разве платежи – это минимальный блок информации, который относится к заказам? Это тоже возможно.
Если вы не уверены, то просто подумайте о том, какую информацию о платежах вы хотите хранить. Возможно, вы захотите хранить метод платежа или дату платежа. Но это все еще минимальные блоки информации, которые могли бы относиться к заказу. Можно изменить формулировки. Метод платежа — метод платежа заказа. Дата платежа – дата платежа заказа. Таким образом, я не вижу необходимости выносить платежи в отдельную таблицу, хотя концептуально вы бы могли выделить платежи как сущность, т.к. вы могли бы рассматривать платежи как контейнер информации (метод платежа, дата платежа).
Давайте не будет слишком академичными.
Как вы видите, есть разница между сущностью и непосредственно таблицей в базе данных, т.е. это не одно и то же. Специалисты отрасли информационных технологий могут быть ОЧЕНЬ академичными и педантичными в этом вопросе. Я не такой специалист. Эта разница зависит от вашей точки зрения на ваши данные, вашу информацию. Если вы смотрите на моделирование данных с точки зрения программного обеспечения, то вы можете прийти к множеству сущностей, которые нельзя будет перенести напрямую в базу данных. В данном руководстве мы смотрим на данные строго с точки зрения баз данных и в нашем маленьком мире сущность – это таблица.
Держитесь там, вы действительно близки к получению вашей ученой степени по базам данных.
Как вы видите определение того, какие сущности имеет ваша система – это немного интеллектуальный процесс, который требует некоторого опыта и часто – это предмет для внесения изменений, пересмотров, раздумий, но, конечно, это не ракетостроение.
Диаграмма сущность-связь может быть достаточно большой, если вы работаете над сложным приложением. Некоторые диаграммы могут содержать сотни или даже тысячи таблиц.
Связи.
Второй шаг в проектировании баз данных – это выбор того, какие связи существуют между сущностями в вашей системе. Сейчас это может быть немного сложно для понимания, но, повторюсь еще раз, это не ракетостроение. С приобретением некоторого опыта и переосмысления выполненной работы вы будете завершать очередную модель базы данных верным или почти верным образом.
Итак. Я рассказал вам о связи один-ко-многим и я расскажу вам больше о связях в дальнейших частях этого руководства, поэтому сейчас я больше не буду останавливаться на этом. Просто запомните, что решение о том, какие связи будут иметь ваши сущности – важная часть проектирования баз данных и эти связи отображаются в диаграмме сущность-связь.
Первичный ключ и внешний ключ таблиц реляционных баз данных
Вступление
В прошлой статье (устройство реляционной БД) мы разбирали, как устроена реляционная (табличная) база данных и выяснили, что основными элементами реляционной базы данных являются: таблицы, столбцы и строки, а в математических понятиях: отношения, атрибуты и кортежи. Также часто, строки называют записями, столбцы называют колонками, а пересечение записи и колонки называют ячейкой.
Важно вспомнить, что содержание строки и названия столбцов должны быть уникальны в пределах одной базы данных.
Типы данных в базах
Важно понимать, что можно создавать базы для любых типов данных: текстов, дат, времени, событий, цифр. В зависимости от типа информации реляционные базы данных делят на типы. Каждый тип данных (атрибут) имеет свое обозначение:
Это основные типы данных, которых на самом деле гораздо больше. Причем, каждый язык программирования имеет свой набор системных атрибутов (типов данных).
Что такое первичный ключ и внешний ключ таблиц реляционных баз данных
Первичный ключ
Выше мы вспоминали: каждая строка (запись) БД должна быть уникальна. Именно первичный ключ в виде наборов определенных значений, максимально идентифицируют каждую запись. Можно определить по-другому. Первичный ключ: набор определенных признаков, уникальных для каждой записи. Обозначается первичный ключ, как primary key.
Primary key (PK) очень важен для каждой таблицы. Поясню почему.
На логической связи между таблицами, стоит остановиться подробнее.
Ключ внешний
Foreign key, кратко FK. Обеспечивает однозначную логическую связь, между таблицами одной БД.
Например, есть две таблицы А и В. В таблице А (обувь), есть первичный ключ: размер, в таблице В (цвет) должна быть колонка с названием размер. В этой таблице «размер» это и будет внешний ключ для логической связи таблиц В и А.
Более сложный пример.
Две таблицы данных: Люди и Номера телефонов.
Таблица: Люди
primary key | Имя |
1 | Зайцев |
2 | Белкин |
3 | Волков |
Таблица: Номера телефонов
primary key | телефон | foreign key |
1 | 12345 | 1 |
2 | 54321 | 1 |
3 | 678910 | 2 |
4 | 109876 | 3 |
5 | 13579 | 3 |
В таблице Номера телефонов PK уникален. FK этой таблицы является PK таблицы Люди. Связь между номерами телефонов и людьми обеспечивает FK таблицы телефонов. То есть:
В завершении добавлю, что любая СУБД, управляющая базой данных, имеет технические возможности составить первичный ключ.
Порядок создания первичного ключа
Каждая таблица должна содержать первичный ключ — одно или несколько полей, содержимое которых уникально для каждой записи. Например, поле ID_doc— это первичный ключ в таблице DoctorTab, т.е. каждая запись в этой таблице имеет свой уникальный номер врача. Наличие неповторяющегося первичного ключа в каждой записи (как поле ID_doc в таблице DoctorTab) позволяет рассматривать любые две запи-си обособленно.
Первичные ключи создаются для гарантирования уникальности каждой записи. Создавая таблицы, Access всегда предлагает задать первичный ключ с типом данных Счетчик (AutoNumber). Значение такого поля будет автоматически увеличиваться на единицу при добав-лении новой записи. В Access для обеспечения целостности данных нельзя использовать в таблицах поля с типом данных Счетчик (AutoNumber). Поэтому для первичного ключа важно задать иной тип данных, например Текстовый или Числовой.
Так, для заполнения текстового поля идентификатора используется одно из правил генерации уникального значения. Правила могут очень простыми. Например, можно использовать конкатенацию некоего символьного выражения и порядкового номера (А001, А002; В001, В002 и т.д.), а также сложное выражение, вычисленное на основе информации из нескольких полей таблицы.
Обычно в базах данных есть несколько связанных таблиц. Связы-вая таблицы, следует связывать первичный ключ одной таблицы с полем такой же структуры и типа другой. Если поле связи во второй таблице не является первичным ключом (обычно так и бывает), его называют внешним ключом.
Поле первичного ключа в Access не только выполняет роль связующего поля между двумя таблицами, но и предоставляет другие преимущества.
• Поле первичного ключа является индексом, который значительно ускоряет выполнение запросов, поиск и сортировку.
• При вводе новых записей вы должны ввести значение в поле (или поля) первичного ключа; Access не позволит вам оставить это поле незаполненным и проследит, чтобы вы ввели только допустимые значения для текущей записи.
• При добавлении новых записей Access проверяет, не дублируются ли поля первичного ключа, что обеспечивает целостность данных.
• По умолчанию Access сортирует данные по первичному ключу.
Для создания первичного ключа нужно выделить нужное поле, щелк-нуть на кнопке Ключевое поле (Primary Key) панели инструментов. Если необходимо создать первичный ключ, состоящий из нескольких полей (составной первичный ключ), то следует выделить все эти поля (удерживая нажатой клавишу ) и щелкнуть на кнопке Ключевое поле (Primary Key).
Диалоговое окно Индексы (рис. 2) открывается (при условии, что таблица открыта в режиме конструктора) с помощью выбора из главного меню Access команды Вид =>Индексы (View => Indexes) или щелчка на кнопке Индексы (Indexes) (кнопка с изображением серии параллельных
линий и молнии, расположенная в середине панели инструментов, справа от кнопки Ключевое поле).
Рис.1. Создание первичного ключа
В окне Индексы отображены все индексы таблицы, включая первичный и внешние ключи, а также другие индексы, служащие для ускорения сортировки и поиска по определенным полям.
Рис.2. Диалоговое окноИндексы
Обратите внимание, что тип индекса PrimaryKey отображен только возле поля Id_doc, хотя графический символ отображается для обоих полей, составляющих первичный ключ.
Порядок расположения этих полей критичен, если вы измените его на обратный, сделав поле Id_pat первой частью первичного ключа, это приведет к некорректной работе — может сложиться ситуация, когда невозможно будет создать уникальную запись в таблице.
1. Открыть таблицу в режиме Конструктора.
2. На панели инструментов нажать кнопку Индексы.
3. В первой пустой строке поля Индексввести имя индекса.
4. В поле Имя полянажать на стрелку и выбрать первое поле, для которого необходимо создать индекс.
5. В следующей строке поля Имя поляуказать второе индексируемое поле. (Для данной строки поле Индексдолжно оставаться пустым.) Повторить эту операцию для всех полей, которые необходимо включить в индекс. В индексе может быть использовано до 10 полей.
По умолчанию устанавливается порядок сортировки По возрастанию. Для сортировки данных полей по убыванию в поле Порядок сортировки надо указать значение По убыванию.
Диалоговое окно Индексыиспользуется также для просмотра, изменения и удаления существующих индексов. Изменить можно:
Например, если в одном и том же запросе часто задаются условия для полей Имя врача и Фамилия врача, то для этих двух полей имеет смысл создать составной индекс.
При сортировке таблицы по составному индексу Microsoft Access сначала выполняет сортировку по первому полю, определенному для данного индекса. Если в первом поле содержатся записи с повторяющимися значениями, то выполняется сортировка по второму полю, определенному для данного индекса, и так далее.
Создание связей между таблицами
Для пояснения возможных отношений между объектами БД обратимся к уже рассмотренной базе данных о врачах и пациентах. Таблица DoctorTab содержит информацию о врачах, таблица PatientTab— информация о пациентах. Связь между ними можно осуществить с помощью таблицы VisistTab (информация о посещении пациентами врачей). Например, вы можете получить информацию о том, кто и когда посещал какого-либо врача. Каждая запись в таблицах идентифицирует один объект группы (врач, пациент и прием). Отно-шение между объектами определяет отношение между таблицами. Предполагая, что один врач может принять несколько пациентов, а один пациент может посетить несколько врачей. Таким образом, между пациентом и его посещениями врача существует отношение один-ко-многим, такая же связь существует между врачом и его приемами. Связь таблиц осуществляется на основании данных в совпадающих полях ID_doc и ID_pat.
Access поддерживает четыре типа отношений между таблицами: один-к-одному, один-ко-многим, много-к-одному, много-ко-многим.
Связи на уровне таблиц можно создать с помощью окна Схема данных (Relationships). В случае необходимости связи между таблицами можно разорвать или изменить. Для обычного ввода данных и вывода отчетов связи на уровне таблиц очень удобны в использовании.
В Access 2002 встроено мощное средство установки связей. Оно позво-ляет добавлять таблицы, использовать метод перетащить и опустить для связи таблиц, легко определять тип связи и устанавливать любые параметры целостности данных между таблицами.
Связи начинают устанавливать в окне базы данных. При акти-визированном окне базы данных, выберите команду Сервис => Схема данных (Tools => Relationships) или щелкните на кнопке Схема данных (Relationships) панели инструментов. При этом появится окно Схема данных (Relationships), которое позволяет добавлять таблицы и создавать связи между ними (рис. 3).
Рис. 3. ОкноСхема данных
Обратите внимание, что с ним связана новая панель инструментов, которая имеет две кнопки, характерные для окна Схема данных — Отобразить прямые связи (Show Direct Relationships) и Отобразить все связи (Show All Relationships). Изначально окно Схема данных (Relationships) не содержит таблиц.
Добавлять таблицы в окно можно следующими способами:
• Использованием диалогового окна Добавление таблицы (Show Table), которое открывается автоматически, если окно Схема данных (Relationships) для базы данных открывается впервые.
• Нажатием кнопки Отобразить таблицу (Show Table) панели инструментов.
• С помощью команды Связи => Добавить таблицу (Relationships => Show Table).
• Находясь в окне Схема данных (Relationships), щелкните правой кнопкой мыши и выберите из контекстного меню команду Добавить таблицу (Show Table).
Для вызова окна Схема данных (Relationships) и добавления в него таблиц выполните следующие действия.
1. Щелкните на кнопке Схема данных (Relationships) панели инструментов, и Access откроет диалоговое окно Добавление таблицы (Show Table).
2. Выберите все таблицы (DoctorTab, VisitTab, PatTab).После этого
щелкните на кнопке Добавить (Add).
3. Щелкните на кнопке Закрыть (Close) диалогового окна добавление таблицы (Show Table). Экран будет выглядеть так, как на рисунке 3. Каждая таблица представлена в окне Схема данных списком своих полей, в качестве заголовков этих списков используются имена
таблиц. Никаких связей между таблицами нет, но теперь вы можете их установить.
После добавления нужного количества таблиц в окно Схема данных (Relationships) можно создать связи между таблицами. Для этого просто выберите общее поле в одной из таблиц и перетащите его в общее поле той таблицы, которую вы хотите связать с первой (рис. 4).
Рис.4. Отображение связей между таблицами в окне Схема данных
Access автоматически определяет тип отношения в связи между двумя таблицами, основываясь на данных в записях этих таблиц. Тип отношения отображается в нижней части диалогового окна Изменение связей (рис. 5).
Рис. 5. Окно Изменение связей