16. Ключи. Типы ключей, их назначение. Использование ключей.
Первичный ключ – это уникальная характеристика для каждой записи в пределах таблицы. Программа Access поддерживает два типа первичных ключей: простой и составной.
В роли простого ключа может выступать одно уже из существующих полей таблицы, если в данном поле нет пустых и повторяющихся значений. Примерами таких полей могут быть номера машин, инвентарные номера, идентификационные коды. Составной ключ строится как комбинация двух и более элементов данных. Для таблицы Сотрудники, например, теоретически можно использовать в качестве первичного ключа комбинацию двух полей, Фамилию и Имя. Однако вполне возможно, что в компании появится еще один сотрудник с таким же именем и фамилией, как у кого-либо из уже работающих.
Очевидно, что к полю (полям), претендующему на роль первичного ключа, предъявляются довольно жесткие требования. Поэтому общепринятой практикой считается создание специального поля идентифицирующего поля, которое выполняет функции ключа (например, Код клиента, Код заказа). С добавлением каждой новой записи в таблицу в это поле заносится специальное значение (как правило, числовое), уникально определяющее запись. В приложении Access организовать такую нумерацию можно благодаря типу данных Счетчик, который присваивает каждой новой записи свой номер, генерируя последовательность чисел с шагом 1 (или случайным образом).
Существуют основные правила, которые приняты для ключей в Access:
- Для удобства ключевое поле обычно указывается в структуре таблицы первым;
- Если для таблицы определен первичный ключ, программа Access автоматически блокирует ввод в это поле повторяющихся значений или значения Null (пусто);
- Access автоматически сортирует записи таблицы по первичному ключу;
- Поле первичного ключа является индексом, с помощью которого ускоряется сортировка и поиск записей.
- В режиме конструктора выделите поле, которое будет играть роль первичного ключа;
- Кликните по кнопке Ключевое поле панели инструментов Конструктора таблиц или выберите команду главного меню Правка – Ключевое поле (слева возле имени выделенного поля появится символ ключа);
- После указания ключевого поля таблицу необходимо сохранить, для чего необходимо кликнуть по кнопке Сохранить панели инструментов конструктор таблиц и в открывшемся окне ввести имя таблицы и кликнуть по кнопке Ок.
17. Типы связей и их реализация. Ссылочная целостность и ее обеспечение.
В реляционной базе данных связи позволяют избежать избыточности данных. Например, в ходе создания базы данных, содержащей сведения о книгах, может появиться таблица под названием «Книги», в которой будут храниться параметры каждой книги, такие как ее название, дата публикации и издатель. Кроме того, есть и дополнительные сведения об издателе, которые может потребоваться сохранить, такие как его телефонный номер, адрес и почтовый индекс. Если хранить их в таблице с книгами, то телефонный номер издателя будет повторяться для каждой опубликованной им книги. Более правильным вариантом является вынесение сведений об издателях в отдельную таблицу «Издатели». При этом таблица «Книги» будет содержать ссылки на записи таблицы «Издатели». Чтобы сохранить синхронизацию, следует обеспечить целостность данных между таблицами «Книги» и «Издатели». Связи с обеспечением целостности данных позволяют следить за тем, чтобы данные в одной таблице соответствовали данным в другой. Например, каждая книга в таблице «Книги» связана с определенным издателем в таблице «Издатели». Добавить в таблицу книгу для издателя, отсутствующего в базе данных, невозможно. Виды связей между таблицами Связь осуществляется путем сопоставления данных в ключевых столбцах; обычно это столбцы, имеющие в обеих таблицах одинаковые названия. В большинстве случаев сопоставляются первичный ключ одной таблицы, содержащий для каждой из строк уникальный идентификатор, и внешний ключ другой таблицы. Например, с каждым из изданий, находящихся в продаже, можно связать объемы его продаж путем создания столбца «ИД_издания» в таблице «Книги» (первичный ключ) и столбца «ИД_издания» в таблице «Продажи» (внешний ключ). Существует три вида связей между таблицами. Вид создаваемой связи зависит от того, как заданы связанные столбцы. Связи «один ко многим» Связь «один ко многим» — наиболее распространенный вид связи. При такой связи каждой строке таблицы А может соответствовать множество строк таблицы Б, однако каждой строке таблицы Б может соответствовать только одна строка таблицы А. Например, между таблицами «Издатели» и «Книги» установлена связь «один ко многим»: каждый из издателей может опубликовать множество книг, однако каждая книга публикуется лишь одним издателем. Связь «один ко многим» создается в том случае, когда только на один из связываемых столбцов наложено ограничение уникальности или он является первичным ключом. В Microsoft Access сторона связи «один ко многим», которой соответствует первичный ключ, обозначается символом ключа. Сторона связи, которой соответствует внешний ключ, обозначается символом бесконечности. Связи «многие ко многим» При установлении связи «многие ко многим» каждой строке таблицы А может соответствовать множество строк таблицы Б и наоборот. Такая связь создается при помощи третьей таблицы, называемой соединительной, первичный ключ которой состоит из внешних ключей, связанных с таблицами А и Б. Например, между таблицами «Авторы» и «Книги» установлена связь вида «многие ко многим», задаваемая с помощью связей вида «один ко многим» между каждой из этих таблиц и таблицей «АвторыКниг». Первичный ключ таблицы «АвторыКниг» — это сочетание столбцов «ИД_автора» (первичного ключа таблицы авторов) и «ИД_книги» (первичного ключа таблицы заголовков). Связи «один к одному» При установлении связи «один к одному» каждой строке таблицы А может соответствовать только одна строка таблицы Б и наоборот. Связь «один к одному» создается в том случае, когда оба связанные столбца являются первичными ключами или на них наложены ограничения уникальности. Этот вид связи используется редко, поскольку в такой ситуации связываемые данные обычно можно хранить в одной таблице. Использовать связь вида «один к одному» можно в указанных ниже случаях. • Чтобы разделить таблицу, содержащую слишком много столбцов. • Чтобы изолировать часть таблицы по соображениям безопасности. • Для хранения данных кратковременного использования, удалить которые проще всего путем очистки таблицы. • Для хранения данных, имеющих отношение только к подмножеству основной таблицы. В Microsoft Access сторона связи «один к одному», которой соответствует первичный ключ, обозначается символом ключа. Сторона связи, которой соответствует внешний ключ, также обозначается символом ключа. Создание связей между таблицами При установлении связи между таблицами связанные поля не обязательно должны иметь одинаковые названия. При этом у них должен быть один и тот же тип данных, если только поле, являющееся первичным ключом, не относится к типу «Счетчик». Поле типа «Счетчик» можно связать с полем типа «Числовой» только в том случае, если для свойства FieldSize (размер поля) каждого из них задано одно и то же значение. Например, можно связать столбцы типов «Счетчик» и «Числовой», если для свойства FieldSize каждого из них установлено значение «Длинное целое». Даже если оба связываемых столбца относятся к типу «Числовой», значение свойства FieldSize для обоих полей должно быть одинаковым.
Добавление и изменение первичного ключа таблицы в Access
Первичный ключ — это поле или набор полей со значениями, которые являются уникальными для всей таблицы. Значения ключа могут использоваться для обозначения всех записей, при этом каждая запись имеет отдельное значение ключа. Каждая таблица может содержать только один первичный ключ. Access может автоматически создавать поле первичного ключа при создании таблицы. Вы также можете самостоятельно указать поля, которые нужно использовать в качестве первичного ключа. В этой статье объясняется, как и зачем использовать первичные ключи.
Чтобы задать первичный ключ таблицы, откройте таблицу в режиме конструктора. Выберите нужное поле (или поля), а затем на ленте щелкните Ключевое поле.
Примечание: Эта статья относится только к классическим базам данных Access. В веб-приложениях Access и веб-базах данных первичный ключ для новых таблиц назначается автоматически. Несмотря на то что автоматические первичные ключи можно менять, делать это не рекомендуется.
В этой статье
- Общие сведения о первичных ключах в Access
- Определение первичного ключа в Access с помощью имеющихся полей
- Удаление первичного ключа
- Изменение первичного ключа в Access
- Дополнительные сведения
Общие сведения о первичных ключах в Access
Используя поля первичных ключей, Access быстро связывает данные из нескольких таблиц и объединяет их понятным образом. Вы можете добавить поля первичных ключей в другие таблицы, чтобы ссылаться на таблицу, которая является источником первичного ключа. В других таблицах поля называются внешними ключами. Например, поле «ИД клиента» в таблице «Клиенты» также может отображаться в таблице «Заказы». В таблице «Клиенты» оно является первичным ключом. В таблице «Заказы» оно называется внешним ключом. Проще говоря, внешний ключ — это первичный ключ другой таблицы. Дополнительные сведения см. в статье Основные сведения о создании баз данных.
1. Первичный ключ
При переносе существующих данных в базу данных в них уже может существовать поле, которое можно использовать как первичный ключ. Часто в роли первичного ключа таблицы выступает уникальный идентификационный номер, например порядковый или инвентарный номер или код. Например, в таблице «Клиенты» для каждого клиента может быть указан уникальный код клиента. Поле кода клиента является первичным ключом.
Для первичного ключа автоматически создается индекс, ускоряющий выполнение запросов и операций. Кроме того, приложение Access проверяет наличие и уникальность значений в поле первичного ключа.
При создании таблицы в режиме таблицы Access автоматически создает первичный ключ с именем «Код» и типом данных «Счетчик».
Создание приемлемого первичного ключа
Чтобы правильно выбрать первичный ключ, следует учитывать несколько характеристик.
- Ключ должен однозначно определять каждую строку.
- В нем не должно быть пустых или отсутствующих значений — он всегда содержит значение.
- Ключ крайне редко изменяется (в идеале — никогда).
Если не удается определить приемлемый ключ, создайте для него поле с типом данных «Счетчик». Поле «Счетчик» заполняется автоматически созданными значениями при первом сохранении каждой записи. Таким образом, поле «Счетчик» соответствует всем трем характеристикам приемлемого первичного ключа. Дополнительные сведения о добавлении поля «Счетчик» см. в статье Добавление поля счетчика в качестве первичного ключа.
Поле с типом данных «Счетчик» является хорошим первичным ключом.
Примеры неудачных первичных ключей
Любое поле, не имеющее одной или нескольких характеристик подходящего первичного ключа, не следует выбирать в качестве первичного ключа. Ниже представлено несколько примеров полей, которые не годятся на роль первичного ключа в таблице «Контакты», и пояснения, почему их не следует использовать.
Неподходящий первичный ключ
Может быть не уникальным и может изменяться
Адрес электронной почты
Почтовый индекс может соответствовать нескольким контактным данным
Сочетание фактов и цифр
Факты могут изменяться, тем самым усложняя работу. Если фактическая часть повторяется в виде отдельного поля, это может привести к путанице. Например, не следует соединять название города и порядковый номер (например, САМАРА0579), если название города уже указано в отдельном поле.
Номера социального страхования или ИНН
- Личные сведения запрещено указывать в государственных учреждениях и некоторых организациях.
- Некоторые люди не имеют ИНН
- На одного человека может быть зарегистрировано несколько ИНН на протяжении жизни
Составные ключи: использование сочетания нескольких полей в качестве первичного ключа
В некоторых случаях в качестве первичного ключа таблицы нужно использовать несколько полей. Например, для таблицы сведений о заказах, в которой хранятся элементы строк для заказов, в первичном ключе можно использовать два столбца: «Номер заказа» и «Артикул». Если ключ состоит из нескольких полей, он также называется составным ключом.
Определение первичного ключа в Access с помощью имеющихся полей
Для правильной работы первичного ключа поле должно однозначно определять каждую строку, не содержать пустых и отсутствующих значений и редко изменяться (в идеале — не изменяться никогда). Чтобы задать первичный ключ, выполните указанные ниже действия.
- Откройте базу данных, которую нужно изменить.
- В области навигации щелкните правой кнопкой мыши таблицу, в которой нужно определить первичный ключ, и в контекстном меню выберите пункт Конструктор.
Совет: Если область навигации не отображается, нажмите клавишу F11.
Удаление первичного ключа в Access
При удалении первичного ключа одно или несколько полей, использовавшихся ранее в качестве первичного ключа, больше не являются идентификаторами записи.
Удаление первичного ключа не приводит к удалению полей таблицы, но при этом удаляется индекс, созданный для первичного ключа.
-
Перед удалением первичного ключа необходимо убедиться, что он не используется в связях между таблицами. Если вы попытаетесь удалить первичный ключ, являющийся частью одной или нескольких связей, Access предупредит вас, что сначала необходимо удалить связи.
Чтобы удалить связь между таблицами, сделайте следующее:
- Закройте связанные таблицы, если они открыты. Связь между открытыми таблицами удалить невозможно.
- На вкладке Работа с базами данных в группе Отношения нажмите кнопку Схема данных.
- Выберите Добавить таблицы (Показать таблицу в Access 2013).
- Щелкните линию связи между таблицами, которую необходимо удалить (выделенная линия становится жирной), а затем нажмите клавишу DEL.
- На вкладке Конструктор в группе Связи нажмите кнопку Закрыть.
Совет: Если область навигации не отображается, нажмите клавишу F11.
Примечание: При сохранении новой таблицы без указания первичного ключа будет предложено создать этот ключ. Если нажать кнопку Да, приложение Access создаст поле «ИД» с типом данных «Счетчик» для сохранения уникального значения для каждой записи. Если в таблице уже есть поле с таким типом данных, оно будет использоваться в качестве первичного ключа.
Изменение первичного ключа в Access
Чтобы изменить первичный ключ таблицы, выполните указанные ниже действия.
- Удалите существующий первичный ключ, следуя инструкциям в разделе Удаление первичного ключа.
- Определите первичный ключ в соответствии с инструкциями в разделе Определение первичного ключа.
Дополнительные сведения
Дополнительные сведения о создании базы данных и выборе подходящего первичного ключа см. в указанных ниже статьях.
- Основные сведения о базах данных
- Структура базы данных Access
- Создание базы данных Access
- Создание таблиц в базе данных
Создание связей между таблицами
База данных содержит множество таблиц, связь между которыми устанавливается с помощью совпадающих полей, называемых ключами. В общем случае ключи записи бывают двух видов: первичный (уникальный) и вторичный ключи (внешний ключ).
Первичный ключ – это одно или несколько полей, однозначно идентифицирующих запись. В качестве ключей обычно используют табельные номера, электронные адреса, паспортные номера и серии или просто порядковые номера записей, т.е. те поля, значения в которых не повторяются. Если первичный ключ состоит из одного поля, он называется простым, если из нескольких полей – составным ключом.
На практике составной ключ определяется, как правило, только для таблицы, которая используется для связывания двух таблиц в отношении «многие ко многим».
Внешний ключ – это такое поле, значение которого может повторяться в нескольких записях, т.е. он не является уникальным. Если по значению первичного ключа может быть найден один единственный экземпляр записи, то по вторичному ключу – несколько записей.
Чтобы установить для таблицы первичный ключ и завершить ее создание в режиме конструктора, необходимо выполнить следующее:
- В режиме конструктора выделить поле (или несколько полей, удерживая нажатой клавишу ), которое будет играть роль первичного ключа.
- На вкладке Конструктор группы Сервис выбрать команду Ключевое поле (или выбрать данную команду в контекстном меню). Справа возле имени поля появится символ ключа.
Если первичный ключ не определен, то при выходе из режима конструктора появится соответствующее предупреждение, и программа Access предложит вам создать ключевое поле до закрытия таблицы. Щелкнув на кнопке Да в окне сообщения, вы оставляете выбор ключевого поля за Access, и если в таблице определено поле с типом данных Счетчик, Access сделает это поле ключевым. Если такого поля нет, в таблице появится новое поле с типом данных Счетчик, выполняющее функции первичного ключа. Перед определением связей между таблицами необходимо четко уяснить, какие именно данные содержатся в каждом из объектов и какие отношения установлены между ними. Существует три типа отношений между таблицами: «один к одному», «один ко многим» («многие к одному») и «многие ко многим». «Один к одному». Каждой записи первой таблицы соответствует одна (и не более) связанная запись второй таблицы (и, соответственно, наоборот). Такой тип отношений используется редко, так как фактически все данные могут быть помещены в одну таблицу. Он полезен, когда, например, целесообразно разделить одну громоздкую таблицу, содержащую множество полей, на две, в которых поля будут логически сгруппированы. «Один ко многим». Одна запись первой таблицы связана со множеством записей другой таблицы, однако одной записи второй таблицы не может соответствовать больше одной записи в первой таблице. «Многие ко многим», или непрямая табличная связь. На практике отношение «многие ко многим» реализуется через связующую таблицу. Существуют условия, которым должны соответствовать типы данных связываемых полей:
- Связываемые поля должны быть одинакового типа.
- Если оба связываемых поля имеют числовой тип, они должны иметь и одинаковые значения свойства Размер поля.
- Поле с типом данных Счетчик можно, кроме того, связать с числовым полем, у которого свойство Размер поля имеет значение Длинное целое.
Для того, чтобы создать межтабличную связь необходимо выполнить следующие действия:
- Выбрать на вкладке Работа с базами данных команду Схема данных (группа Показать или скрыть). При этом таблицы, для которых создается связь, должны быть закрыты.
Окно Схема данных – это удобное и наглядное графическое представление связей для открытой базы данных, где можно добавить таблицы, определить тип связи и установить параметры целостности данных между таблицами.
- В том случае, если в окне Схема данных еще не добавлены никакие таблицы, сразу откроется диалоговое окно Добавление таблицы. Если окно не появится, выберите команду Отобразить таблицу группы Показать или скрыть.
- Добавьте в окно Схемы данных необходимые таблицы. Для этого дважды щелкните на имени таблицы или щелкните на имени таблицы в списке, а затем – на кнопке Добавить.
- После добавления всех таблиц щелкните на кнопке Закрыть. В итоге все они появятся в окне Схема данных в виде отдельных окон, где перечислены поля, содержащиеся в таблице.
- Создадим теперь связь между таблицами. Переместите с помощью мыши используемое для связи поле (ключевое поле) первой таблицы к соответствующему полю второй таблицы.
- После того, как поле перенесено, появится диалоговое окно Изменение связей, внизу которого буден предложен тип связи между таблицами (рис.3). Также в этом окне доступна опция Обеспечение целостности данных, с помощью которой обеспечивается корректность связи между таблицами.
- Установите связь между таблицами, щелкнув на кнопке Создать. В окне Схема данных между двумя связываемыми полями появится линия объединения.
Рис. 3. Диалоговое окно Изменение связей
При подготовке материала использовались источники:
https://studfile.net/preview/2082364/page:6/
https://support.microsoft.com/ru-ru/office/%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B8-%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BF%D0%B5%D1%80%D0%B2%D0%B8%D1%87%D0%BD%D0%BE%D0%B3%D0%BE-%D0%BA%D0%BB%D1%8E%D1%87%D0%B0-%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D1%8B-%D0%B2-access-07b4a84b-0063-4d56-8b00-65f2975e4379
https://studfile.net/preview/719841/page:2/