Как сделать составной ключ в access?

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

Начало — здесь.

4. ТАБЛИЦЫ И ПЕРВИЧНЫЕ КЛЮЧИ

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

В таблице имеются 6 уроков. Все 6 – разные, но для каждого урока значения одинаковых полей хранятся в таблице, а именно: tutorial_id (идентификатор урока), title (заголовок)и category (категория). Tutorial_idпервичный ключ таблицы уроков. Первичный ключ – это значение, которое уникально для каждой записи в таблице.

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

Первичные ключи в повседневной жизни

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

Все базы данных способны автоматически генерировать уникальное значение для каждой записи в виде числа, которое автоматически увеличивается и вставляется вместе с каждой новой записью [Т.н. синтетический или суррогатный первичный ключ – прим.перев.]).

Несколько примеров

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

Что объединяет эти примеры? То, что во всех из них в качестве первичного ключа выбирается уникальное, не повторяющееся значение для каждой записи. Еще раз. Значения поля таблицы базы данных, выбранного в качестве первичного ключа, всегда уникально.

Что характеризует первичный ключ? Характеристики первичного ключа

Первичный ключ служит для идентификации записей.

Первичный ключ используется для идентификации записей в таблице, для того, чтобы каждая запись стала уникальной. Еще одна аналогия… Когда вы звоните в службу технической поддержки, оператор обычно просит вас назвать какой-либо номер (договора, телефона и пр.), по которому вас можно идентифицировать в системе.

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

  • Первичный ключ уникален.
  • Типы первичных ключей.
  • Автонумерация.

Первичный ключ всегда имеет уникальное значение. Представьте, что его значение не уникально. Тогда его бы нельзя было использовать для того, чтобы идентифицировать данные в таблице. Это значит, что какое-либо значение первичного ключа может встретиться в столбце, который выбран в качестве первичного ключа, только один раз. РСУБД устроены так, что не позволят вам вставить дубликаты в поле первичного ключа, получите ошибку. Еще один пример. Представьте, что у вас есть таблица с полями 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. СВЯЗЫВАНИЕ ТАБЛИЦ С ПОМОЩЬЮ ВНЕШНИХ КЛЮЧЕЙ

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

И тому и другому нужна своя собственная таблица. А записи в этих двух таблицах могут быть связаны для того, чтобы установить отношения между ними.

Проектирование базы данных – это решение двух вопросов:

  • определение того, какие сущности вы хотите хранить в ней
  • какие связи между этими сущностями существуют

Один-ко-многим

Клиенты и заказы имеют связь (состоят в отношениях) один-ко-многим потому, что один клиент может иметь много заказов, но каждый конкретный заказ (их множество) оформлен только одним клиентом, т.е. может иметь только одного клиента.

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

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

Давайте немного попрактикуемся, создавая эти две таблицы.

Какую информацию мы будем хранить? Решаем первый вопрос

Для начала мы определимся какую информацию о заказах и о клиентах мы будем хранить. Чтобы это сделать мы должны задать себе вопрос: “Какие единичные блоки информации относятся к клиентам, а какие единичные блоки информации относятся к заказам?”

Проектируем таблицу клиентов.

Заказы действительно принадлежат клиентам, но заказ – это это не минимальный блок информации, который относится к клиентам (т.е. этот блок можно разбить на более мелкие: дата заказа, адрес доставки заказа и пр., к примеру).

Поля ниже – это минимальные блоки информации, которые относятся к клиентам:

  • customer_id (primary key) – идентификатор клиента
  • first_name — имя
  • last_name — отчество
  • address — адрес
  • zip_code – почтовый индекс
  • country — страна
  • birth_date – дата рождения
  • username – регистрационное имя пользователя (логин)
  • password – пароль

Давайте перейдем к непосредственному созданию этой таблицы в SQLyog (естественно, что вы можете использовать любую другую программу). Ниже приведен пример того, как могла бы выглядеть таблица в программе SQLyog после создания. Все графические приложения для управления базами данных имеют приблизительно одинаковую структуру интерфейса. Вы также можете создать таблицу с помощью командной строки без использования графической утилиты. Как сделать составной ключ в access? Создание таблицы в SQLyog. Обратите внимание, что выбран флажок первичного ключа (PK) для поля customer_id. Поле customer_id является первичным ключом. Также выбран флажок Auto Incr, что означает, что база данных будет автоматически подставлять уникальное числовое значение, которое, начиная с нуля, будет каждый раз увеличиваться на одну единицу.

Проектируем таблицу заказов.

Какие минимальные блоки информации, необходимые нам, относятся к заказу?

  • order_id (primary key) – идентификатор заказа
  • order_date – дата и время заказа
  • customer – клиент, который сделал заказ

Ниже – пример таблицы в SQLyog. Как сделать составной ключ в access? Проект таблицы. Поле customer является ссылкой (внешним ключом) для поля customer_id в таблице клиентов.

Эти две таблицы (клиентов и заказов) связаны потому, что поле customer в таблице заказов ссылается на первичный ключ (customer_id) таблицы клиентов. Такая связь называется связью по внешнему ключу.

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

И заказов у каждого клиента может быть много, как и говорилось выше.

Создание связи по внешнему ключу.

Вы можете задаться вопросом: “Каким образом я могу убедиться или как я могу увидеть, что поле customer в таблице заказов ссылается на поле customer_id в таблице клиентов”. Ответ прост – вы не можете сделать этого потому, что я еще не показал вам как создать связь. Ниже – окно SQLyog с окном, которое я использовал для создания связи между таблицами. Как сделать составной ключ в access? Создание связи по внешнему ключу между таблицами заказов и клиентов. В окне выше вы можете видеть, как поле customer таблицы заказов слева связывается с первичным ключом (customer_id) таблицы клиентов справа. Теперь, когда вы посмотрите на данные, которые могли бы быть в таблицах, вы увидите, что две таблицы связаны. Как сделать составной ключ в access? Заказы связаны с клиентами через поле customer, которое ссылается на таблицу клиентов.

На изображении вы видите, что клиент mary поместила три заказа, клиент pablo поместил один, а клиент john – ни одного.

Вы можете спросить: “А что же именно заказали все эти люди?” Это хороший вопрос. Вы возможно ожидали увидеть заказанные товары в таблице заказов. Но это плохой пример проектирования. Как бы вы поместили множественные продукты в единственную запись? Товары – это отдельные сущности, которые должны храниться в отдельной таблице. И связь между таблицами заказов и товаров будет являться связью один-ко-многим. Я расскажу об этом далее.

6. СОЗДАНИЕ ДИАГРАММЫ СУЩНОСТЬ-СВЯЗЬ

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

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

В проектировании баз данных сущности и их отношения обычно предоставляются в диаграмме сущность-связь (англ. entity-relationship diagram, ERD). Данная диаграмма является результатом процесса проектирования базы данных.

Сущности

Вы можете задаться вопросом, что же такое сущность. Нуу… это “вещь” в системе. Там. Моя Мама всегда хотела, чтобы я стал учителем потому, что я очень хорошо объясняю различные вещи.

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

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

Читайте также:  Как сделать последовательность в Excel?

Давайте возьмем интернет-магазин для примера. Интернет-магазин продает товары. Товар мог бы стать очевидной сущностью в системе интернет-магазина. Товары заказываются клиентами. Вот мы с вами и увидели еще две очевидных сущности: заказы и клиенты.

Заказ оплачивается клиентом… это интересно. Мы собираемся создавать отдельную таблицу для платежей в базе данных нашего интернет-магазина? Возможно. Но разве платежи – это минимальный блок информации, который относится к заказам? Это тоже возможно.

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

Метод платежа — метод платежа заказа. Дата платежа – дата платежа заказа. Таким образом, я не вижу необходимости выносить платежи в отдельную таблицу, хотя концептуально вы бы могли выделить платежи как сущность, т.к.

вы могли бы рассматривать платежи как контейнер информации (метод платежа, дата платежа).

Давайте не будет слишком академичными.

Как вы видите, есть разница между сущностью и непосредственно таблицей в базе данных, т.е. это не одно и то же. Специалисты отрасли информационных технологий могут быть ОЧЕНЬ академичными и педантичными в этом вопросе. Я не такой специалист. Эта разница зависит от вашей точки зрения на ваши данные, вашу информацию. Если вы смотрите на моделирование данных с точки зрения программного обеспечения, то вы можете прийти к множеству сущностей, которые нельзя будет перенести напрямую в базу данных. В данном руководстве мы смотрим на данные строго с точки зрения баз данных и в нашем маленьком мире сущность – это таблица. Как сделать составной ключ в access? Держитесь там, вы действительно близки к получению вашей ученой степени по базам данных. Как вы видите определение того, какие сущности имеет ваша система – это немного интеллектуальный процесс, который требует некоторого опыта и часто – это предмет для внесения изменений, пересмотров, раздумий, но, конечно, это не ракетостроение. Как сделать составной ключ в access? Диаграмма сущность-связь может быть достаточно большой, если вы работаете над сложным приложением. Некоторые диаграммы могут содержать сотни или даже тысячи таблиц.

Связи

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

Итак. Я рассказал вам о связи один-ко-многим и я расскажу вам больше о связях в дальнейших частях этого руководства, поэтому сейчас я больше не буду останавливаться на этом. Просто запомните, что решение о том, какие связи будут иметь ваши сущности – важная часть проектирования баз данных и эти связи отображаются в диаграмме сущность-связь.

Источник: https://habr.com/post/193284/

Вопрос по foreign-key-relationship, ms-access, foreign-keys, composite-primary-key, ms-access-2007 – Ссылка на составной первичный ключ в Access 2007

Я осмотрелся и нашел несколько похожих вопросов, но они были для SQL Server.

Вот небольшая структурированная база данных, которую я создал, чтобы показать вам отношения, которые я хочу смоделировать. По существу, это довольно просто, каждый год имеет 12 периодов, и экземпляр периода-года не может встречаться дважды (период 9-го года 2012 г. не может встречаться более одного раза).

Как сделать составной ключ в access?

Поэтому я подумал, что лучший способ смоделировать это будет иметь период таблицы с одним полем со значениями от 1 до 12, год таблицы, следуя той же логике (2011,2012 …

), и так как это N- отношение к N Я создал таблицу period_by_year, которая объединяет их для использования в rpt_maintenance_kpi.

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

По моему мнению, это решает проблему элегантно, но затем я застрял на том, как ссылаться на этот составной первичный ключ из rpt_maintenance_kpi (или любой другой таблицы в этом отношении). Я попытался сделать два соединения, но это, похоже, не работает (создает вторую таблицу rpt_maintenance_kpi, и я считаю, что это не будет делать то, что я хочу сделать).

Итак, как я могу обработать внешний ключ для составного первичного ключа?

Спасибо заранее.

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

Как сделать составной ключ в access?

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

1301
1302
1303



1312
1401
1402


etc….

Вы можете иметь дополнительные атрибуты в той же таблице в более описательной форме, например, второе поле может быть 13 января, 13 февраля …. и т. Д.

Поле MthYear может быть вашим основным полем, которое может быть связано с MthYear в вашей таблице отчетов. Это не только позволит избежать использования составных первичных ключей, но и поможет вам фильтровать только год или месяц, если вам требуется использование подстановочных знаков в ваших запросах или отчетах. Надеюсь, что это полезно для вас …… Арвинд

Источник: https://vike.io/ru/28424/

Создание первичного ключа в Access 2002 — манекены 2019

Как сделать составной ключ в access?

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

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

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

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

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

  • В большинстве случаев первичный ключ представляет собой одно поле, но в особых случаях очень , два или более полей могут совместно использовать задание. Техническим термином для этого типа ключа является многопользовательский ключ. Супер-технический термин для этого типа ключа — это составной ключ.
  • Вы не можете использовать типы полей Memo, OLE Object или Hyperlink в первичном ключе.
  • Хотя вы можете использовать тип поля Да / Нет в первичном ключе, вы можете иметь только две записи (Да и Нет) в такой таблице.
  • Первичный ключ автоматически сортирует записи в таблице. Это просто держит ваши столы аккуратными и аккуратными.
  • Access 2002 все равно, где поле первичного ключа находится в дизайне таблицы. Ключ может быть первым полем, последним полем или посередине. Выбор места размещения принадлежит вам. Для вашего здравого смысла вы можете поместить ключевое поле сначала в таблицу. Фактически, сделайте это привычкой (вы будете так счастливы, что сделали позже).
  • Все первичные ключи должны иметь имя, точно так же, как поле имеет имя. Это может стать шоком, поэтому держитесь за свое место, но Access 2002 автоматически называет все первичные ключи первичного ключа.

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

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

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

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

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

    Что делает хорошее ключевое поле? Как вы находите правильный? Главным критерием для хорошего ключевого поля является уникальность.

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

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

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

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

    Как сделать составной ключ в access? Создается первичный ключ (и записи радуют ) «width =» 430 «> Создается первичный ключ (и записи радуют )

Источник: https://ru.howtodou.com/creating-primary-key-in-access-2002

Создание баз данных Access: Учебное пособие, страница 2

  Модуль — объект, содержащий программы на языке Visual Basic для
прило­жений.

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

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

Проектирование базы данных

   Основой любой реляционной БД являются
таблицы. Разработка таблиц яв­ляется одним из наиболее сложных этапов в
проектировании БД. Грамотно спро­ектированные таблицы являются основой для
создания работоспособной и эффек­тивной БД.

   Понятие таблицы в Access полностью соответствует аналогичному
понятию реляционной модели данных. Любая таблица реляционной БД состоит из строк
(называемых также записями) и столбцов (называемых
также полями).

  Строки таблицы содержат сведения об
однотипных объектах — документах, людях, предметах. На пересечении столбца и
строки находится конкретное значе­ние, характеризующее объект.

   Можно сформулировать ряд основных
требований, которым должны удов­летворять таблицы.

    1. Информация в таблице не должна
дублироваться, т.е. в таблице не должно существовать двух записей с полностью
совпадающим набором значений ее по­лей.

    2. На пересечении любого столбца и
любой строки должно находиться одно

значение.

    3.  Не рекомендуется включать в
таблицу данные, которые являются резуль­татом вычислений.

    4.  Значения данных в одном и том же
столбце должны принадлежать к од­ному и тому же типу, доступному для
использования в данной СУБД.

    5. Каждое поле должно иметь уникальное
имя.

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

    7. Таблицы БД должны быть связаны
через внешние ключи.

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

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

   В Access можно выделить три типа ключевых полей: простой ключ, состав­ной
ключ и поле счетчика.

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

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

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

Не
рекомендуется определять ключ по полям Имена и Фамилии, поскольку нельзя исключить
повторения этой пары значений для раз­ных людей.

   Составной ключ необходим для таблицы,
используемой для связывания двух таблиц в отношении «многие — ко — многим»
Обычно такой ключ состоит из ключевых полей связываемых таблиц.

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

При создании каждой новой за­писи Access генерирует уникальный номер записи,
называемый счетчиком.

Ука­зание такого поля в качестве ключевого
является наиболее простым способом соз­дания ключевых полей.

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

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

Таблицы реляционных БД
связываются через одинако­вые значения одноименных полей, содержащихся в
связываемых таблицах. Такие поля называются внешним ключом для
этих таблиц.

Все таблицы БД Access должны
быть связаны с помощью внешних ключей.

Создание файла базы данных

   При запуске Access открывается диалоговое окно — Окно запуска, в котором
предлагается создать новую БД, запустить Мастера БД или открыть существую­щую
БД.

   В Access поддерживаются два способа создания БД.
Можно создать пустой файл БД, а затем разрабатывать таблицы, формы, отчеты и
другие объекты, добав­ляя их в БД.

Такой способ является профессиональным и
наиболее гибким, но тре­бует отдельного определения каждого элемента БД. При
выборе такого способа создания БД надо в окне запуска установить флажок Новая
база данных.

В рас­крывшемся окне Файл новой базы данных следует
выбрать каталог и задать имя создаваемой БД. Раскроется Окно базы данных.

Вниманию студентов! Студенческие БД должны создаваться в
директории Student/GRNNN.

Как сделать составной ключ в access?

   Для создания БД можно восполь­зоваться Мастером
базы данных,
уста­новив в окне запуска флажок Мастера, страницы и
проекты.
Мастер создает БД, содержащую все необходимые объ­екты, и
остается только ввести в табли­цы данные.

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

   Флажок  Открыть базу данных окна
запуска позволяет открыть ранее

созданную БД, выбрав ее имя из
предлагаемого списка. При выборе Другие файлы предоставляется
каталог, из которого можно открыть нужную БД.

Источник: https://vunivere.ru/work15772/page2

Как сделать составной ключ в access?

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

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

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

Однако вполне возможно, что в компании появится еще один сотрудник с таким же именем и фамилией, как у кого-либо из уже работающих.

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

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

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

  • Существуют основные правила, которые приняты для ключей в Access:
  • – для удобства ключевое поле обычно указывается в структуре таблицы первым;
  • – если для таблицы определен первичный ключ, программа Access автоматически блокирует ввод в это поле повторяющихся значений или значения Null (пусто);
  • – Access автоматически сортирует записи таблицы по первичному ключу;
  • – поле первичного ключа является индексом, с помощью которого ускоряется сортировка и поиск записей.
  • Чтобы установить для таблицы первичный ключ и завершить ее создание в режиме конструктора, выполните следующие действия:
  • – в режиме конструктора выделите поле, которое будет играть роль первичного ключа;
  • – кликните по кнопке Ключевое поле панели инструментов Конструктора таблиц или выберите команду главного меню Правка – Ключевое поле (слева возле имени выделенного поля появится символ ключа);
  • – после указания ключевого поля таблицу необходимо сохранить, для чего необходимо кликнуть по кнопке Сохранить панели инструментов конструктор таблиц и в открывшемся окне ввести имя таблицы и кликнуть по кнопке Ок.
  • Если первичный ключ не определен, то при выходе из режима конструктора появится соответствующее предупреждение, и программа Access предложит Вам создать ключевое поле до закрытия таблицы.

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

Если для таблицы определены ключевые поля, то Microsoft Access предотвращает дублирование или ввод пустых значений в ключевое поле.

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

В Microsoft Access можно выделить три типа ключевых полей: счетчик, простой ключ и составной ключ. Рассмотрим каждый из этих типов.

Для создания ключевого поля типа Счетчик необходимо в режиме Конструктора таблиц:

  1. Включить в таблицу поле счетчика.
  2. Задать для него автоматическое увеличение на 1.
  3. Указать это поле в качестве ключевого путем нажатия на кнопку Ключевое поле (Primary Key) на панели инструментов Конструктор таблиц (Table Design).

Если до сохранения созданной таблицы ключевые поля не были определены, то при сохранении будет выдано сообщение о создании ключевого поля. При нажатии кнопки Да (Yes) будет создано ключевое поле счетчика с именем Код (ID) и типом данных Счетчик (AutoNumber).

Для создания простого ключа достаточно иметь поле, которое содержит уникальные значения (например, коды или номера). Если выбранное поле содержит повторяющиеся или пустые значения, его нельзя определить как ключевое.

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

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

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

  1. Открыть таблицу в режиме Конструктора.
  2. Выделить поля, которые необходимо определить как ключевые.
  3. Нажать кнопку Ключевое поле (Primary Key) на панели инструментов Конструктор таблиц (Table Design).

Замечание

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

Если необходимо указать другой порядок сортировки без изменения порядка ключевых полей, то сначала нужно определить ключ, а затем нажать кнопку Индексы (Indexes) на панели инструментов Конструктор таблиц (Table Design).

Затем в появившемся окне Индексы (Indexes) нужно указать другой порядок полей для индекса с именем Ключевое поле (Primary Key).

Рассмотрим в качестве примера применения составного ключа таблицу «Заказано» (OrderDetails) базы данных (Northwind) (рис. 2.23).

В данном случае в качестве составного ключа используются поля «Код заказа» (OrderlD) и «КодТовара» (ProductID), т. к. ни одно из этих полей в отдельности не гарантирует уникальность записи. При этом в таблице выводится не код товара, а наименование товара, т. к.

поле «КодТовара» (ProductID) данной таблицы содержит подстановку из таблицы «Товары» (Products), а значения полей «КодТовара» (ProductID) этих таблиц связаны отношением «один-ко-многим» (одной записи таблицы «Товары» (Products) может соответствовать несколько записей таблицы «Заказано» (OrderDetails)). Оба поля могут содержать повторяющиеся значения. Так, один заказ может включать в себя несколько товаров, а в разные заказы могут включаться одинаковые товары. В то же время сочетание полей «КодЗаказа» (OrderlD) и «КодТовара» (ProductID) однозначно определяет каждую запись таблицы «Заказы» (OrderDetails).

Чтобы изменить ключ, необходимо:

  1. Открыть таблицу в режиме Конструктора.
  2. Выбрать имеющиеся ключевые поля.
  3. Нажать на кнопку Ключевое поле (Primary Key), при этом кнопка должна принять положение Выкл., а из области выделения должны исчезнуть значки ключевого поля.
  4. Выбрать поле, которое необходимо сделать ключевым.
  5. Нажать на кнопку Ключевое поле (Primary Key). При этом в области выделения должен появиться значок ключевого поля.

Рис. 2.23. Пример таблицы с использованием составного ключа

Чтобы удалить ключ, необходимо:

  1. Открыть таблицу в режиме Конструктора.
  2. Выбрать имеющееся ключевое поле (ключевые поля).
  3. Нажать на кнопку Ключевое поле (Primary Key), при этом кнопка должна принять положение Выкл., а из области выделения должен исчезнуть значок (значки) ключевого поля.

Компьютеры Составной ключ просмотров — 105

  1. Простой ключ
  2. Ключевые поля счетчика
  3. Типы используемых ключевых полей

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

В Microsoft Access можно выделить три типа ключевых полей: счетчик, простой ключ и составной ключ.

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

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

Для получения дополнительных сведений нажмите кнопку .

В случае если поле содержит уникальные значения, такие как коды или инвентарные номера, то это поле можно определить как ключевое. В случае если выбранное поле содержит повторяющиеся или пустые значения, то оно не будет определœено как ключевое.

Для определœения записей, содержащих повторяющиеся данные можно выполнить запрос на поиск повторяющихся записей.

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

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

Примером такой таблицы может служить таблица «Заказано» из демонстрационной базы данных «Борей», связывающая таблицы «Заказы» и «Товары». Ключ в этой таблице состоит из двух полей: «КодЗаказа» и «КодТовара».

В таблице «Заказано» может быть представлено много товаров и много заказов, но каждый товар включается в заказ только один раз, в связи с этим комбинация значений полей «КодЗаказа» и «КодТовара» достаточна для образования ключа.

{bml bm219.WMF}

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

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

  • Для получения дополнительных сведений о создании ключевых полей нажмите кнопку .
  • {ewc HLP95EN.DLL, DYNALINK, «Связь с Web или другими источниками»:»acconWhatKindPrimaryKeyDoINeedSW»:1:»Foo»:»Invisible»}
  • $!AKСодание и изменение ключевых полей
  • Откройте таблицу в режиме конструктора.
  • Выделите одно или несколько полей, которые крайне важно определить как ключевые.
  • Для выделœения одного поля выберите область выделœения строки нужного поля.
  • Для выделœения нескольких полей нажмите и удерживайте клавишу CTRL и выберите область выделœения для каждого поля.
  • Нажмите кнопку Ключевое поле на панели инструментов.
  • Для получения дополнительных сведений о выборе ключевых полей нажмите кнопку .
  • Примечания

·Допускается назначение ключевым полем поля, содержащего данные, однако, если в этом поле имеются повторяющиеся или пустые значения, будет выведено сообщение об ошибке.

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

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

В случае если крайне важно указать другой порядок сортировки без изменения порядка ключевых полей, то сначала определите ключ, как это описано выше, а затем нажатием кнопки Индексы на панели инструментов откройте окно «Индексы» и укажите другой порядок полей для индекса с именем «PrimaryKey».

{ewc HLP95EN.DLL, DYNALINK, «Связь с Web или другими источниками»:»achowSetChangePrimaryKeySW»:1:»Foo»:»Invisible»}

  1. — Составной ключ
  2. Простой ключ Ключевые поля счетчика Типы используемых ключевых полей Сила реляционных баз данных, таких как Microsoft Access, заключается в том, что они могут быстро найти и связать данные из разных таблиц при помощи запросов,форм и отчетов. Для этого каждая таблица…
  3. — Составной ключ
  4. Составной транзисторный ключ Остаточные параметры насыщенного транзистора Принципиальная схема составного транзисторного ключа Состав: VT1 ключ-звезда; VT3 ключ ОК; VT2 ключ ОЭ; VD — вспомогательный диод, обеспечивающий запирание VT3. Eпом = -L diскв/dt …

Источник: http://word-office.ru/kak-sdelat-sostavnoy-klyuch-v-access.html

16. Ключи. Типы ключей, их назначение. Использование ключей

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

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

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

Однако вполне возможно, что в
компании появится еще один сотрудник
с таким же именем и фамилией, как у
кого-либо из уже работающих.

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

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

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

Существуют
основные правила, которые приняты для
ключей в Access:

  • Для удобства ключевое поле обычно указывается в структуре таблицы первым;
  • Если для таблицы определен первичный ключ, программа Access автоматически блокирует ввод в это поле повторяющихся значений или значения Null (пусто);
  • Access автоматически сортирует записи таблицы по первичному ключу;
  • Поле первичного ключа является индексом, с помощью которого ускоряется сортировка и поиск записей.

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

  • В режиме конструктора выделите поле, которое будет играть роль первичного ключа;
  • Кликните по кнопке Ключевое поле панели инструментов Конструктора таблиц или выберите команду главного меню Правка – Ключевое поле (слева возле имени выделенного поля появится символ ключа);
  • После указания ключевого поля таблицу необходимо сохранить, для чего необходимо кликнуть по кнопке Сохранить панели инструментов конструктор таблиц и в открывшемся окне ввести имя таблицы и кликнуть по кнопке Ок.

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

17. Типы связей и их реализация. Ссылочная целостность и ее обеспечение

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

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

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

Более
правильным вариантом является вынесение
сведений об издателях в отдельную
таблицу «Издатели». При этом таблица
«Книги» будет содержать ссылки на
записи таблицы «Издатели».

Чтобы
сохранить синхронизацию, следует
обеспечить целостность данных между
таблицами «Книги» и «Издатели».

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

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

Виды
связей между таблицами

Связь
осуществляется путем сопоставления
данных в ключевых столбцах; обычно это
столбцы, имеющие в обеих таблицах
одинаковые названия.

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

Например,
с каждым из изданий, находящихся в
продаже, можно связать объемы его продаж
путем создания столбца «ИД_издания»
в таблице «Книги» (первичный ключ)
и столбца «ИД_издания» в таблице
«Продажи» (внешний ключ).

Существует
три вида связей между таблицами. Вид
создаваемой связи зависит от того, как
заданы связанные столбцы.

Связи
«один ко многим»

Связь
«один ко многим» — наиболее
распространенный вид связи.

При такой
связи каждой строке таблицы А может
соответствовать множество строк таблицы
Б, однако каждой строке таблицы Б может
соответствовать только одна строка
таблицы А.

Например, между таблицами
«Издатели» и «Книги» установлена
связь «один ко многим»: каждый из
издателей может опубликовать множество
книг, однако каждая книга публикуется
лишь одним издателем.

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

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

Связи
«многие ко многим»

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

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

Первичный
ключ таблицы «АвторыКниг» — это
сочетание столбцов «ИД_автора»
(первичного ключа таблицы авторов) и
«ИД_книги» (первичного ключа таблицы
заголовков).

Связи
«один к одному»

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

Этот
вид связи используется редко, поскольку
в такой ситуации связываемые данные
обычно можно хранить в одной таблице.
Использовать связь вида «один к
одному» можно в указанных ниже случаях.

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

В
Microsoft Access сторона связи «один к одному»,
которой соответствует первичный ключ,
обозначается символом ключа. Сторона
связи, которой соответствует внешний
ключ, также обозначается символом ключа.

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

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

Поле типа «Счетчик» можно связать
с полем типа «Числовой» только в
том случае, если для свойства FieldSize
(размер поля) каждого из них задано одно
и то же значение. Например, можно связать
столбцы типов «Счетчик» и «Числовой»,
если для свойства FieldSize каждого из них
установлено значение «Длинное целое».

Даже если оба связываемых столбца
относятся к типу «Числовой», значение
свойства FieldSize для обоих полей должно
быть одинаковым.

Источник: https://studfile.net/preview/2082364/page:6/

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