Bazaprogram.ru

Новости из мира ПК
5 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Первичный ключ access

Добавление и изменение первичного ключа таблицы в Access

Первичный ключ — это поле или набор полей со значениями, уникальными во всей таблице. Значения первичного ключа можно использовать для ссылки на любую запись, поскольку у каждой записи свое значение. В таблице может быть только один первичный ключ. Access может автоматически создавать поле первичного ключа при создании таблицы. Вы также можете самостоятельно указать поля, которые нужно использовать в качестве первичного ключа. В этой статье объясняется, как и зачем использовать первичные ключи.

Чтобы задать первичный ключ таблицы, откройте таблицу в режиме конструктора. Выберите нужное поле (или поля), а затем на ленте щелкните Ключевое поле.

Примечание: Эта статья относится только к классическим базам данных Access. В веб-приложениях Access и веб-базах данных первичный ключ для новых таблиц назначается автоматически. Несмотря на то что автоматические первичные ключи можно менять, делать это не рекомендуется.

В этой статье

Общие сведения о первичных ключах в Access

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

1. Первичный ключ

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

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

При создании таблицы в режиме таблицы Access автоматически создает первичный ключ с именем «Код» и типом данных «Счетчик».

Создание приемлемого первичного ключа

Чтобы правильно выбрать первичный ключ, следует учитывать несколько характеристик.

Ключ должен однозначно определять каждую строку.

В нем не должно быть пустых или отсутствующих значений — он всегда содержит значение.

Ключ крайне редко изменяется (в идеале — никогда).

Если не удается определить приемлемый ключ, создайте для него поле с типом данных «Счетчик». Поле «Счетчик» заполняется автоматически созданными значениями при первом сохранении каждой записи. Таким образом, поле «Счетчик» соответствует всем трем характеристикам приемлемого первичного ключа. Дополнительные сведения о добавлении поля «Счетчик» см. в статье Добавление поля счетчика в качестве первичного ключа.

Поле с типом данных «Счетчик» является хорошим первичным ключом.

Примеры неудачных первичных ключей

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

Неподходящий первичный ключ

Может быть не уникальным и может изменяться

How to dou

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

Table of Contents:

Первичный ключ таблицы — это специальное поле в ваших таблицах. Почти каждая таблица, которую вы создаете, должна иметь первичный ключ. Зачем?

Он упорядочивает ваши данные уникально , идентифицируя каждую запись. Например, в таблице Customer, номером клиента будет первичный ключ — есть только один клиент номер 1, один клиент номер 2 и т. Д.

Ботаники подходят, если вы этого не сделаете.

Перед запуском нужно знать несколько правил о первичном ключе:

В таблице может быть только один первичный ключ.

В одной таблице может быть много индексов, но только один первичный ключ.

Access 2002 автоматически индексирует поле первичного ключа (это одна из причин, по которой первичный ключ делает вашу базу данных немного быстрее).

Если вы создаете новую таблицу без первичного ключа, Access 2002 автоматически спрашивает, хотите ли вы добавить ее.

Если вы говорите «да», программа радостно создает поле «AutoNumber» в начале вашей таблицы и устанавливает его как первичный ключ. Если первое поле является типом AutoNumber, Access 2002 помазывает его как первичный ключ, не добавляя ничего в таблицу.

В большинстве случаев первичный ключ представляет собой одно поле, но в особых случаях очень , два или более полей могут совместно использовать задание. Техническим термином для этого типа ключа является многопользовательский ключ. Супер-технический термин для этого типа ключа — это составной ключ.

Вы не можете использовать типы полей Memo, OLE Object или Hyperlink в первичном ключе.

Хотя вы можете использовать тип поля Да / Нет в первичном ключе, вы можете иметь только две записи (Да и Нет) в такой таблице.

Читать еще:  Google access online

Первичный ключ автоматически сортирует записи в таблице. Это просто держит ваши столы аккуратными и аккуратными.

Access 2002 все равно, где поле первичного ключа находится в дизайне таблицы. Ключ может быть первым полем, последним полем или посередине. Выбор места размещения принадлежит вам. Для вашего здравого смысла вы можете поместить ключевое поле сначала в таблицу. Фактически, сделайте это привычкой (вы будете так счастливы, что сделали позже).

Все первичные ключи должны иметь имя, точно так же, как поле имеет имя. Это может стать шоком, поэтому держитесь за свое место, но Access 2002 автоматически называет все первичные ключи первичного ключа.

Чтобы назначить поле для задания первичного ключа, выполните следующие действия:

Откройте таблицу в представлении «Дизайн».

Если вы не знакомы с этим шагом, вы, вероятно, не должны возиться с первичным ключом.

Щелкните правой кнопкой мыши кнопку рядом с полем, выбранным для первичного ключа.

Появится одно из этих интересных всплывающих меню.

Что делает хорошее ключевое поле? Как вы находите правильный? Главным критерием для хорошего ключевого поля является уникальность. Значения в ключевом поле должны быть уникальными, например, номера клиентов, единицы хранения запасов, идентификаторы транспортных средств или другое поле, которое отличается в каждой записи? Если у вас есть это, используйте его! Если вы этого не сделаете, создайте уникальное поле, добавив в таблицу поле AutoNumber. Этот тип поля автоматически вставляет новый уникальный номер в каждую запись вашей таблицы. AutoNumber даже отслеживает числа, которые вы удаляете, чтобы Access не использовал их снова. Лучший из всех, Access заботится о деталях, так что вам не нужно беспокоиться о программировании или каких-либо специальных трюках, чтобы программа работала.

Выберите главный ключ из меню (как показано на рисунке).

В кнопке появляется небольшой символ ключа. Первичный ключ установлен!

Создается первичный ключ (и записи радуют ) «w >

Создается первичный ключ (и записи радуют)

Ключи и индексы

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

Базы данных InterBase могут использовать следующие виды ограничений:

  • PRIMARY KEY — первичный ключ таблицы.
  • UNIQUE — уникальный ключ таблицы.
  • FOREIGN KEY — внешний ключ , обеспечивает ссылку на другую таблицу и гарантирует ссылочную целостность между родительской и дочерней таблицами .

Примечание о терминологии

Если вы похожи на автора данного курса в том, что любите искать ответы на интересующий вас вопрос комплексно, в разных трудах разных авторов, то вы не могли не заметить некоторую путаницу в определениях главная (master) -> подчиненная (detail) таблицы. Напомним, что главную таблицу часто называют родительской, а подчиненную — дочерней.

Связано это, вероятно, с тем, как интерпретируются эти определения в локальных и SQL -серверных СУБД .

В локальных СУБД главной называется та таблица , которая содержит основные данные, а подчиненной — дополнительные. Возьмем, к примеру, три связанные таблицы. Первая содержит данные о продажах, вторая — о товарах и третья — о покупателях:

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

Но в SQL -серверах баз данных имеется другое определение связей: когда одно поле в таблице ссылается на поле другой таблицы, оно называется внешним ключом . А поле , на которое оно ссылается, называется родительским или первичным ключом . Таблицу, которая имеет внешний ключ (ссылку на запись другой таблицы) нередко называют дочерней, а таблицу с родительским ключом — родительской. Еще в определении связей говорят, что родитель может иметь только одну уникальную запись , на которую могут ссылаться несколько записей дочерней таблицы .

Так что в приведенном выше примере таблица продаж имеет два внешних ключа: идентификатор товара, и идентификатор покупателя. А обе таблицы в правой части рисунка имеют родительский ключ » Идентификатор «. Поскольку один покупатель или товар могут неоднократно встречаться в таблице продаж, то получается, что обе таблицы в правой части рисунка — родители, а таблица слева — дочерняя. Поскольку сейчас мы изучаем InterBase — SQL сервер БД , этими определениями мы и будем руководствоваться в последующих лекциях. Чтобы далее не ломать голову над этой путаницей, сразу договоримся: дочерняя таблица имеет внешний ключ ( FOREIGN KEY ) на другую таблицу.

PRIMARY KEY

PRIMARY KEY — первичный ключ , является одним из основных видов ограничений в базе данных. Первичный ключ предназначен для однозначной идентификации записи в таблице, и должен быть уникальным. Первичные ключи PRIMARY KEY находятся в таблицах, которые принято называть родительскими ( Parent ). Не стоит путать первичный ключ с первичными индексами локальных баз данных, первичный ключ является не индексом, а именно ограничением. При создании первичного ключа InterBase автоматически создает для него уникальный индекс . Однако если мы создадим уникальный индекс , это не приведет к созданию ограничения первичного ключа . Таблица может иметь только один первичный ключ PRIMARY KEY .

Читать еще:  Шаблоны access скачать бесплатно

Предположим, имеется таблица со списком сотрудников. Поле «Фамилия» может содержать одинаковые значения (однофамильцы), поэтому его нельзя использовать в качестве первичного ключа. Редко, но встречаются однофамильцы, которые вдобавок имеют и одинаковые имена. Еще реже, но встречаются полные тезки, поэтому даже все три поля «Фамилия» + «Имя» + «Отчество» не могут гарантировать уникальности записи, и не могут быть первичным ключом. В данном случае выход , как и прежде, в том, чтобы добавить поле — идентификатор , которое содержит порядковый номер данного лица. Такие поля обычно делают автоинкрементными (об организации автоинкрементных полей поговорим на следующих лекциях). Итак,

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

Если в первичный ключ входит единственный столбец (как чаще всего и бывает), спецификатор PRIMARY KEY ставится при определении столбца :

Если первичный ключ строится по нескольким столбцам, то спецификатор ставится после определения всех полей:

Как видно из примеров, первичный ключ обязательно должен иметь ограничение столбца (столбцов) NOT NULL.

UNIQUE

UNIQUE — уникальный ключ . Спецификатор UNIQUE указывает, что все значения данного поля должны быть уникальными, в связи с этим такие поля также не могут содержать значения NULL. Можно сказать, что уникальный ключ UNIQUE является альтернативным вариантом первичного ключа, однако имеются различия. Главное различие в том, что первичный ключ должен быть только один, тогда как уникальных ключей может быть несколько. Кроме того, ограничение UNIQUE не может быть построено по тому же набору столбцов, который был использован для ограничения PRIMARY KEY или другого UNIQUE . Уникальные ключи, как и первичные, находятся в таблицах, которые являются родительскими по отношению к другим таблицам.

Столбец, объявленный с ограничением UNIQUE , как и первичный ключ , может применяться для обеспечения ссылочной целостности между родительской и дочерней таблицами . При этом внешний ключ дочерней таблицы будет ссылаться на это поле (поля). Как и в случае первичного ключа, при создании уникального ключа, для него автоматически будет создан уникальный индекс . Но не наоборот. Пример создания таблицы с одним первичным и двумя уникальными ключами:

FOREIGN KEY

FOREIGN KEY — внешний ключ . Это очень мощное средство для обеспечения ссылочной целостности между таблицами, которое позволяет не только следить за наличиями правильных ссылок, но и автоматически управлять ими. Внешние ключи содержатся в таблицах, которые являются дочерними ( Child ) по отношению к другим таблицам. Ссылочная целостность обеспечивается именно внешним ключом, который ссылается на первичный или уникальный ключ родительской таблицы .

Вернемся к рисунку 18.1. Если мы удалим сведения о каком-то покупателе в таблице покупателей, таблица продаж станет недостоверной — она будет содержать ссылки, которые на самом деле никуда не ссылаются. Чтобы обеспечить достоверность данных, нужно воспрепятствовать удалению записи с покупателем, если на эту запись есть ссылки в таблице продаж. Либо же при удалении записи с покупателем нужно автоматически удалить и все записи таблицы продаж, ссылающиеся на этого покупателя. Если же меняется значение идентификатора в таблице покупателей, значит нужно также изменить это значение во всех записях таблицы продаж, которые ссылаются на данного покупателя.

Для обеспечения достоверности данных и применяют внешний ключ .

Внешний ключ — это столбец или набор столбцов в дочерней таблице, который в точности соответствует столбцу или набору столбцов, определенных в родительской таблице как первичный (или уникальный) ключ, и ссылается на них.

В отличие от первичного ключа, ключ FOREIGN KEY может содержать пустое значение , для него не обязателен атрибут NOT NULL. Строки с пустым внешним ключом не ссылаются ни на какую запись родительской таблицы , и называются «зависшими». Чтобы продемонстрировать работу с внешним ключом, создадим две таблицы — родительскую и дочернюю:

Что мы получили в итоге? Родительская таблица имеет первичный ключ — поле текстового типа, и ни на кого не ссылается. Дочерняя таблица имеет такое же текстовое поле , которое может иметь значение NULL и является внешним ключом, ссылающимся на первичный ключ родительской таблицы . При совместной работе этих таблиц справедливы следующие замечания:

Первичный ключ

Для эффективной работы в Access каждая таблица в реляционной базе данных должна иметь первичный ключ. Для выбора первого ключевого поля таблицы в окне конструктора необходимо выделить это поле и нажать кнопку Ключевое поле на панели инструментов. В подтверждении того, что ключ задан, слева от поля появится символ ключа (рис.1.3). В качестве первичного ключа таблицы должно быть определено поле, в котором хранится уникальный код.

Читать еще:  Формат видео для презентации powerpoint 2020

Для удаления первичного ключа нужно выделить ключевое поле и нажать кнопку Ключевое поле.

Преимущество использования первичного ключа:

cкорость.Используя первичный ключ, Access создает индексы, позволяющие ускорить работу запросов и других функций;

упорядочение. Access автоматически сортирует записи в порядке возрастания или убывания первичного ключа таблицы;

отсутствие совпадений. Access не позволяет пользователю вводить данные с таким же первичным ключом, как и у существующей записи;

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

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

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

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

Отношение «один-ко-многим» является наиболее часто используемым типом связи между таблицами. В отношении «один-ко-многим» каждой записи в таблице A могут соответствовать несколько записей в таблице B, но запись в таблице B не может иметь более одной соответствующей ей записи в таблице A.

При отношении «многие-ко-многим» одной записи в таблице A могут соответствовать несколько записей в таблице B, а одной записи в таблице B несколько записей в таблице A. Этот тип связи возможен только с помощью третьей (связующей) таблицы, первичный ключ которой состоит из двух полей, которые являются внешними ключами таблиц A и B. Отношение «многие-ко-многим» по сути дела представляет собой два отношения «один-ко-многим» с третьей таблицей.

При отношении «один-к-одному» запись в таблице A может иметь не более одной связанной записи в таблице B и наоборот. Отношения этого типа используются не очень часто, поскольку большая часть сведений, связанных таким образом, может быть помещена в одну таблицу. Отношение «один-к-одному» может использоваться для разделения очень широких таблиц, для отделения части таблицы по соображениям защиты, а также для сохранения сведений, относящихся к подмножеству записей в главной таблице.

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

Рис. 1.4. Схема данных БД Учебный процесс

Установление связей между таблицами.

Чтобы установить связи, нужно открыть окно базы данных и выбрать команду Сервис ® Схема данных. Если связи для базы данных устанавливаются впервые, то Access выведет на экран пустое окно Схема данных и затем окно диалога Добавление таблицы. В этом окне нужно выделить все таблицы, между которыми будут установлены связи и нажать кнопки Добавить и Закрыть. После этого в окне Схема данных связи между таблицами устанавливаются путем перетаскивания мышью поля одной таблицы на поле, по которому устанавливается связь, другой таблицы. При отпускании кнопки мыши на экран выводится окно диалога Связь, в котором выводятся связанные поля. Необходимо установить флажки: Обеспечение целостности данных, Каскадной обновление связанных полей, Каскадное удаление связанных записей. После этого нужно нажать кнопку Создать.

Установление флажка «Каскадное обновление связанных полей» позволяет:

— если в главной таблице СТУДЕНТ изменить значение поля Номер группы (например, вместо 11 написать 12), то и в подчиненных таблицах 11 поменяется на 12;

— если в таблице СТУДЕНТ изменить значение поля Номер группы на такое, которое нет в таблице ГРУППА, то это не удастся сделать.

Установление флажка «Каскадное удаление связанных записей» позволяет: если в таблице, например, ГРУППА удалить какую – либо группу, то и в подчиненных таблицах исчезнут все записи, связанные с удаленной группой.

При установлении связей между таблицами ключ связи может быть составной, например, связь между таблицами Успеваемость и Изучение осуществляется по нескольким полям. В этом случае установление связи осуществляется так: при нажатой клавише выделяются все ключи и затем перетаскиваются. Чтобы удалить связь, нужно щелкнуть на ее линии и нажать клавишу Del.

Имена полей, по которым осуществляется связь между таблицами:

ГРУППА ® СТУДЕНТ ( Номер группы)

КАФЕДРА ® ПРЕПОДАВАТЕЛЬ ( Код кафедры)

ПРЕДМЕТ ® ИЗУЧЕНИЕ ( Код предмета)

ПРЕПОДАВАТЕЛЬ ® ИЗУЧЕНИЕ ( Таб номер)

ГРУППА ® ИЗУЧЕНИЕ ( Номер группы

СТУДЕНТ ® УСПЕВАЕМОСТЬ (Номер студента и Номер Группы)

ИЗУЧЕНИЕ ® УСПЕВАЕМОСТЬ (Номер Группы, Код предмета, Таб номер, Вид занятия)

Примечание. Если связь между таблицами не устанавливается, возможны следующие причины: а) имена полей, по которым устанавливается связь — различны б) типы связываемых полей — не одинаковы и др. Необходимо проверить все таблицы.

1. 5. Изменение проекта базы данных

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: Студент — человек, постоянно откладывающий неизбежность. 11309 — | 7590 — или читать все.

Ссылка на основную публикацию
Adblock
detector