Как сделать ключевое поле в access
Создание базы данных следует начинать с детальной разработки структуры ее таблиц. Эта структура должна быть такой, чтобы при работе с базой требовалось вводить в нее как можно меньше данных. Уже имеющиеся данные, должны быть доступны для выбора при добавлении новой записи с идентичными полями. Если ручной ввод каких-то данных приходится повторять неоднократно, то структуру базы необходимо изменить, придумав другой набор связанных таблиц, устраняющий этот недостаток.
Для надежной работы связей между всеми таблицами базы данных и быстрого поиска по данным из одной таблицы всех связанных с ними записей в других таблицах, необходимо предусмотреть так называемые уникальные поля.
Уникальное поле — это поле, значения в котором не могут повторяться.
Поле Фамилия в таблице Автор вполне может содержать нескольких Ивановых, Петровых или Сидоровых, точно также как поле Имя может пестрить различными Аланами, Эдуардами и Робертами. Это означает, что эти поля не являются уникальными и поэтому их нельзя использовать для связи между таблицами. Поле Название — более удачный кандидат на почетное звание уникального поля, но не тут то было. Многие современные авторы очень любят называть свои произведения в точности так, как это делали Пушкин, Лермонтов или Толстой. Что же тогда остается делать?
Выход всегда есть! Если ни одно поле в Вашей таблице не приемлемо как уникальное, то его можно создать искусственно. Например, введя в таблицу шифр записи. Это могут быть буквы (например, первые буквы слов названия кники), цифры или их комбинация, но самое главное — они не будут повторяться, а значит, станут уникальными для каждой записи в таблице.
Скорее всего, поле Шифр окажется уникальным и позволит создать связи между таблицами, но было бы хорошо, если бы компьютер сигнализировал нам в том случае, если вдруг записи в этом поле повторяться. Для этого вводится понятие ключевое поле. При создании структуры таблиц, можно одно поле (или одну комбинацию полей) сделать ключевым. С такими полями компьютер работает особо. Он автоматически проверяет их уникальность и значительно быстрее выполняет сортировку по таким полям. Ключевое поле в этой ситуации становится очевидным кандидатом для создания связей между таблицами. Иногда такое поле еще называют первичным ключом.
Если при создании таблицы Вы не задали ключевое поле, то СУБД вежливо напомнит о том, что первичный ключ не задан и предложит создать такое поле.
Часто в качестве уникального поля создают поле, имеющее тип Счетчик (см. типы полей в «Шаг 3 — Свойства и типы полей»). Ввести два одинаковых значения в такое поле просто невозможно. Приращение значения этого поля происходит автоматически, при добавлении новой записи в таблицу, независимо от желания создающего эту запись. Компьютер сам следит за этим полем и не позволит вносить туда какие-либо изменения.
MS Access составной ключ
- Выделите в конструкторе таблицы с Ctrl 2 поля для ключа.
- Поставьте ключ на эти выделенные поля.
Отслеживать
ответ дан 17 ноя 2018 в 23:42
173 1 1 серебряный знак 8 8 бронзовых знаков
- база-данных
- ms-access
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.4.30.8420
Как сделать ключевое поле в access
Цель изучения темы: научиться выбирать ключевые поля для таблиц, освоить методику установки связей между таблицами и осуществлять их корректировку.
Access 2010 даёт возможность организовывать и отображать межтабличные связи двумя способами: непосредственно связей между таблицами и создание вложенных таблиц данных. В Access 2010 система самостоятельно устанавливает связи между таблицами, если в таблицах уже установлены ключевые поля.
Для создания связей необходимо установить соответствие величин одной таблицы величинам из другой таблицы. Связи устанавливаются через определяемые пользователем поля. Для этого связывают ключевое поле родительской таблицы (внешний ключ) с соответствующим ему полем дочерней таблицы. Эти поля в таблицах часто имеют одинаковые имена, но в общем случае это не обязательно. Строго обязательными являются следующие условия.
Ø В одной или в обеих таблицах должно быть поле, содержащее уникальные (не имеющие повторений) значения во всех записях, это и есть первичный ключ.
Ø Связываемые поля должны иметь одинаковые типы данных, кроме исключений из этого правила:
· Поле Счётчика (Код) разрешается связывать с Числовым полем, если в числовом поле в свойствах Размер поля задано значение Длинное целое ( Long Integer );
· Поле Счётчика (Код) разрешается связывать с Числовым полем, если для обоих полей в свойстве Размер поля задано значение Код репликации ( Replication ID – идентификатор связи).
Ø Связываемые поля Числового типа должны иметь одинаковые значения свойства Размер поля.
Ø Для полей, содержащие данные типа OLE и MEMO , первичный ключ назначить невозможно.
В сбалансированной структуре реляционной базы данных каждая запись в любой таблице должна уникально идентифицироваться, т.е. значения некоторых полей в таблице не должны повторяться во всём множестве записей. Этот уникальный идентификатор называется первичным ключом . Как вы заметили, после создания таблиц в Access 2010 в режиме Конструктор, при выполнении операций «Закрыть» или «Сохранить», система делает напоминание:
. В том случае, если нажать на кнопку «Нет», то ключевого поля система создавать не будет (в рассмотренных примерах дано объяснение, почему удобнее ключ устанавливать позже). При создании таблицы в режиме Таблица, система автоматически создаёт первое поле, которое называется «Код» с типом данных «Счётчик». Это поле является ключевым, например, на рисунке 60 показан вариант создаваемой таблицы вручную, при вводе данных в поле «Стаж…» система автоматически в поле «Код» устанавливает порядковые номера записей, а после закрытия таблицы поле «Код» становится ключевым.
Рис. 60. Пример созданной таблицы в режиме Таблица
В том случае, если ключевое поле не было установлено в таблице, то понадобится установить ключ самостоятельно (в рассматриваемых примерах, для таблиц «Личные сведения» и «Доплаты» ключи не устанавливались). Для добавления первичного ключа к таблице или для его удаления, необходимо таблицу открыть в режиме Конструктор. Рассмотрим на примере правила создания первичного ключа.
1. Откройте в режиме Конструктор таблицу «Личные сведения».
2. Выделите строку с наименованием поля «Фамилия».
3. На вкладке «Работа с таблицами» щёлкните по надписи .
4. Сохраните таблицу.
Понятно, что убрать ключ из таблицы можно выполнив те же действия. Проверьте, существуют ли ключи в других таблицах, которые были созданы на предыдущих этапах («Надбавка за стаж», «Номенклатура должностей» и «Доплаты»). Если в режиме Конструктор попытаться открыть таблицу, , которая является связанной с внешним файлом, то система выдаст сообщение, текст которого представлен на рисунке 61.
Рис. 61. Сообщение системы о том, что даненая таблица является связанной
1. Может ли Access 2010 самостоятельно устанавливать связи между таблицами, при каких условиях это происходит?
2. Для чего необходимо устанавливать первичный ключ в таблице?
3. Каким типам полей не удаётся установить первичный ключ?
4. Можно ли полю с типом данных Текстовый назначать первичный ключ?
5. Как понимать термин «Уникальное значение записей»?
6. В каких случаях Access 2010 самостоятельно создаёт ключевое поле?
7. Что необходимо сделать, чтобы переназначить ключевое поле в таблице?
Для отображения, корректировки и удаления связей между таблицами в Access предложено прекрасное визуальное средство – Схема данных. Для того, чтобы увидеть, какие связи между таблицами существуют, достаточно закрыть все таблицы, активизировать вкладку «Работа с базами данных», а затем нажать на пиктограмму «Схема данных», которая показана в начале раздела слева. Часто разработчик базы данных изменяет наименования ключевых полей, что потребует от него проведения операции создания связи вручную или её удаление. В некоторых версиях Access 2010 система не создаёт связей. Поэтому, полезно ознакомиться с последовательностью установления связей вручную.
1. Закройте все таблицы в базе данных.
2. Выделите одну из таблиц, например, «Доплаты», при этом появится вкладка «Работа со связями».
3. Щёлкните по пиктограмме , будет открыто окно для добавления таблиц при создании схемы данных. Нажмите на кнопку
. Обратите внимание, что ещё имеются способы добавления таблицы на поле «Схема данных». Например, можно в области переходов ухватить левой клавишей мыши нужную таблицу, а затем перетащить её в поле «Схема данных», либо на поле «Схема данных» щёлкнуть правой кнопкой мыши, а затем выбрать из списка
. На рисунке 62 представлен пример добавления таблицы «Личные сведения» на поле «Схема данных» методом выбора из списка. Как видите, связи можно устанавливать не только с таблицами, а и с запросами, которые на выходе формируют новые таблицы (о создании запросов будет сказано ниже). Добавьте на поле «Схема данных» таблицы, которые были созданы ранее.
Рис. 62. Пример добавления таблиц на поле «Схема данных»
4. Добавьте все таблицы, созданные ранее, на поле «Схема связей». Проведите операцию установление связей между таблицами «Доплаты» (родительская таблица) и «Личные сведения» (Дочерняя таблица). Для выполнения установления связей левой кнопкой мыши выделите в таблице «Доплаты» поле , а затем переместите указатель мыши на поле
таблицы «Личные сведения», когда освободите указатель мыши, появится окно «Изменение связей» (Рис. 63).
Рис. 63. Окно для установления параметров связей между таблицами
5. В окне «Изменение связей» указано откуда и куда проложена связь, если типы данных соединяемых полей совпадают (выполняются правила создания связей), то в поле «Тип отношения» появится сообщение: Один-ко-многим. Обязательно установите отметку в поле , тогда в окне «Схема данных» появится связь. На одном конце будет стоять единица (эти данные являются уникальными, а на другом конце связи будет стоять знак
— много). Желательно сделать пометки и в остальных полях, тогда при внесении коррекций в исходную таблицу в записи или их удаление, в запросах произойдёт автоматическое изменение результатов. Нажмите на кнопку
.
Почему при устанвлении связей между таблицами не обязательно ставить пометки в полях «Каскадное обновление связанных полей» и «Каскадное удаление связанных полей»? Это естественный вопрос, тем не менее, обратите внимание, если использовать в качестве связываемых полей поле «Счётчик», то это поле невозможно видоизменить пользователем, следовательно, нет смысла ставить в этом случае пометку (напомним, что при установлении ключевого поля «Текстовое», пользователь имеет возможность видоизменять данные в этом поле, например заменить фамилию.). «Каскадное удаление связанных записей» используется для того, чтобы при удалении записи из одной таблицы, в запросах или других связанных таблицах, данные помеченного поля так же будут удаляться.
1. Что следует сделать, чтобы создать схему связей между таблицами?
2. Какими способами можно добавить таблицу на поле схемы данных?
3. Для чего используется окно «Изменение связей»?
4. Для чего ставится пометка в окне «Щбеспечение целостности данных»?
При попытке создать связь между таблицами «Надбавки за стаж» и «Личные сведения» ничего не получится. Ответ ясен, в таблице «Личные сведения» отсутствует поле, которое можно связать с таблицей «Надбавки за стаж». Выходов из положения два. Первый способ – создать поле в таблице «Личные сведения», например, используя приём связанных таблиц, а затем из списка выбрать необходимые данные для заполнения вновь созданного поля. Второй способ – воспользоваться промежуточной таблицей, например, которая будет создана в запросе, этот приём довольно трудоёмкий, но позволяет наращивать базу данных новыми таблицами, а затем использовать их для выполнения вычислений в запросах (этот способ будет рассмотрен ниже). Создадим в таблице «Личные сведения» новое поле, например, «Стаж». Создание вложенных таблиц уже обсуждалось. Напомним, что сначала необходимо определить место нового поля в таблице, затем выбрать режим , далее —
, а затем выполнить шаги по подстановки необходимого поля в виде списка из другой таблицы. В результате выполняемых действий будет получена связь между таблицами «Надбавка за стаж» (Родительская) и «Личные сведения» (Дочерняя). На рисунке 64 показан пример автоматического установления связей между таблицами, когда используется метод вложения таблиц. Когда будет раскрыта таблица «Надбавки за стаж», то в ней появляется символ
. Если щёлкнуть по символу
, то будут отображены строки (записи) из дочерней таблицы (в данном примере показаны записи со сведениями о сотрудниках, которые имеют стаж работы от 1 года до 3-х лет).
Рис. 64. Пример установления связей между таблицами методом вложенния таблиц
Автоматически созданная связь отображает отношение «Один ко многим», действительно, в таблице «Надбавки за стаж» каждая строка является уникальной, в то время как в таблице «Личные сведения» данные о стаже работы сотрудника могут относиться к нескольким строкам.
Для того, чтобы увидеть, какие связи между таблицами существуют, достаточно закрыть все таблицы, активизировать вкладку «Работа с базами данных», а затем нажать на пиктограмму «Схема данных». Часто разработчик базы данных изменяет наименования ключевых полей, что потребует от него проведения операции создания связи вручную или её удаление. На рисунке 65 показана схема связей для рассматриваемого примера.
Рис. 65. Вариант сформированных связей между таблицами в базе данных
1. Каки образом можно удалить имеющуюся связь между таблицами?
2. Что обозначает символ в таблице, которая открыта в режиме Таблица?
3. Что обозначает символ на линии связи между таблицами в окне «Схема связей»?
4. Можно ли в таблице изменять значение в поле «Счётчик»?
что такое ключевое поле
Ключевое поле — это одно или несколько полей, комбинация значений которых однозначно определяет каждую запись в таблице. Если для таблицы определены ключевые поля, то Microsoft Access предотвращает дублирование или ввод пустых значений в ключевое поле. Ключевые поля используются для быстрого поиска и связи данных из разных таблиц при помощи запросов, форм и отчетов.
В Microsoft Access можно выделить три типа ключевых полей: счетчик, простой ключ и составной ключ. Рассмотрим каждый из этих типов.
Для создания ключевого поля типа Счетчик необходимо в режиме Конструктора таблиц:
1. Включить в таблицу поле счетчика.
2. Задать для него автоматическое увеличение на 1.
3. Указать это поле в качестве ключевого путем нажатия на кнопку Ключевое поле (Primary Key) на панели инструментов Конструктор таблиц (Table Design).
Источник: http://www.basegroup.ru/glossary/definitions/pri_key/
Остальные ответы
Ключевое поле — это одно или несколько полей, комбинация значений которых однозначно определяет каждую запись в таблице. Если для таблицы определены ключевые поля, то Microsoft Access предотвращает дублирование или ввод пустых значений в ключевое поле. Ключевые поля используются для быстрого поиска и связи данных из разных таблиц при помощи запросов, форм и отчетов.